2018-02-22 02:52:33 +01:00
|
|
|
import { thunk } from './thunk'
|
2018-01-17 09:59:15 +01:00
|
|
|
|
2018-02-22 02:52:33 +01:00
|
|
|
// Lazily invoke because URLSearchParams isn't supported in Edge 16,
|
|
|
|
// so we need the polyfill.
|
|
|
|
const enabled = thunk(() => process.browser &&
|
2018-02-10 20:36:31 +01:00
|
|
|
performance.mark &&
|
2018-02-22 02:52:33 +01:00
|
|
|
(
|
|
|
|
process.env.NODE_ENV !== 'production' ||
|
|
|
|
new URLSearchParams(location.search).get('marks') === 'true'
|
|
|
|
)
|
|
|
|
)
|
2018-01-17 09:59:15 +01:00
|
|
|
|
2018-02-10 20:36:31 +01:00
|
|
|
const perf = process.browser && performance
|
|
|
|
|
2018-02-22 02:52:33 +01:00
|
|
|
export function mark(name) {
|
|
|
|
if (enabled()) {
|
|
|
|
perf.mark(`start ${name}`)
|
|
|
|
}
|
2018-02-10 20:36:31 +01:00
|
|
|
}
|
|
|
|
|
2018-02-22 02:52:33 +01:00
|
|
|
export function stop(name) {
|
|
|
|
if (enabled()) {
|
|
|
|
perf.mark(`end ${name}`)
|
|
|
|
perf.measure(name, `start ${name}`, `end ${name}`)
|
|
|
|
}
|
|
|
|
}
|