• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4const assert = require('assert');
5
6const { PerformanceObserver, performance } = require('perf_hooks');
7const DELAY = 1000;
8const ALLOWED_MARGIN = 10;
9
10const expected = ['Start to Now', 'A to Now', 'A to B'];
11const obs = new PerformanceObserver(common.mustCall((items) => {
12  items.getEntries().forEach(({ name, duration }) => {
13    assert.ok(duration > (DELAY - ALLOWED_MARGIN));
14    assert.strictEqual(expected.shift(), name);
15  });
16}));
17obs.observe({ entryTypes: ['measure'] });
18
19performance.mark('A');
20setTimeout(common.mustCall(() => {
21  performance.measure('Start to Now');
22  performance.measure('A to Now', 'A');
23
24  performance.mark('B');
25  performance.measure('A to B', 'A', 'B');
26}), DELAY);
27