Skip to content

Commit 8aebe6e

Browse files
committed
perf_hooks: add resourcetiming test parallel
1 parent 10aaf20 commit 8aebe6e

3 files changed

Lines changed: 29 additions & 4 deletions

File tree

lib/internal/perf/observe.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ const kSupportedEntryTypes = ObjectFreeze([
9191
// Performance timeline entry Buffers
9292
let markEntryBuffer = [];
9393
let measureEntryBuffer = [];
94+
let resourceTimingBuffer = [];
9495
const kMaxPerformanceEntryBuffers = 1e6;
9596
const kClearPerformanceEntryBuffers = ObjectFreeze({
9697
'mark': 'performance.clearMarks',
@@ -343,6 +344,7 @@ function enqueue(entry) {
343344
} else if (entryType === 'measure') {
344345
buffer = measureEntryBuffer;
345346
} else {
347+
buffer = resourceTimingBuffer;
346348
return;
347349
}
348350

@@ -367,16 +369,19 @@ function enqueue(entry) {
367369
}
368370

369371
function clearEntriesFromBuffer(type, name) {
370-
if (type !== 'mark' && type !== 'measure') {
372+
if (type !== 'mark' && type !== 'measure' && type !== 'resource') {
371373
return;
372374
}
373375

374376
if (type === 'mark') {
375377
markEntryBuffer = name === undefined ?
376378
[] : ArrayPrototypeFilter(markEntryBuffer, (entry) => entry.name !== name);
377-
} else {
379+
} else if (type === 'measure') {
378380
measureEntryBuffer = name === undefined ?
379381
[] : ArrayPrototypeFilter(measureEntryBuffer, (entry) => entry.name !== name);
382+
} else {
383+
resourceTimingBuffer = name === undefined ?
384+
[] : ArrayPrototypeFilter(resourceTimingBuffer, (entry) => entry.name !== name);
380385
}
381386
}
382387

@@ -386,11 +391,13 @@ function filterBufferMapByNameAndType(name, type) {
386391
bufferList = markEntryBuffer;
387392
} else if (type === 'measure') {
388393
bufferList = measureEntryBuffer;
394+
} else if (type === 'resource') {
395+
bufferList = resourceTimingBuffer;
389396
} else if (type !== undefined) {
390397
// Unrecognized type;
391398
return [];
392399
} else {
393-
bufferList = ArrayPrototypeConcat(markEntryBuffer, measureEntryBuffer);
400+
bufferList = ArrayPrototypeConcat(markEntryBuffer, measureEntryBuffer, resourceTimingBuffer);
394401
}
395402
if (name !== undefined) {
396403
bufferList = ArrayPrototypeFilter(bufferList, (buffer) => buffer.name === name);

lib/perf_hooks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const {
99
} = internalBinding('performance');
1010

1111
const { PerformanceEntry } = require('internal/perf/performance_entry');
12-
const { PerformanceResourceTiming } = require('internal/perf/performance_resource_timing')
12+
const { PerformanceResourceTiming } = require('internal/perf/resource_timing')
1313
const {
1414
PerformanceObserver,
1515
PerformanceObserverEntryList,
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict';
2+
3+
const assert = require('assert');
4+
const {
5+
PerformanceObserver,
6+
PerformanceEntry,
7+
PerformanceResourceTiming,
8+
performance: {
9+
clearResourceTimings
10+
},
11+
} = require('perf_hooks');
12+
13+
assert(PerformanceObserver);
14+
assert(PerformanceEntry);
15+
assert(PerformanceResourceTiming);
16+
assert(clearResourceTimings);
17+
18+
// TODO:continue once `markResourceTiming` is done

0 commit comments

Comments
 (0)