node/test/fixtures/wpt/resource-timing/buffered-flag.any.js
legendecas 364c0e196c
perf_hooks: fix webperf idlharness
1. Enforce receiver checks on IDL interfaces.
2. Avoid prototype manipulation on constructing IDL interfaces with
   `ReflectConstruct`.
3. `defineReplaceableAttribute` should create IDL getter/setter.
4. Corrected `PerformanceResourceTiming` to inherit the public interface
   `PerformanceEntry` instead of the internal interface
   `InternalPerformanceResourceTiming`.
5. `detail` is not a specified attribute on `PerfomanceEntry`. Node.js
   specific extensions are moved to a subclass of `PerformanceEntry` as
   `PerformanceNodeEntry`.

PR-URL: https://github.com/nodejs/node/pull/44483
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2022-10-04 00:55:58 +08:00

18 lines
977 B
JavaScript

async_test(t => {
performance.clearResourceTimings();
// First observer creates second in callback to ensure the entry has been dispatched by the time
// the second observer begins observing.
new PerformanceObserver(() => {
// Second observer requires 'buffered: true' to see an entry.
new PerformanceObserver(t.step_func_done(list => {
const entries = list.getEntries();
assert_equals(entries.length, 1, 'There should be 1 resource entry.');
assert_equals(entries[0].entryType, 'resource');
assert_greater_than(entries[0].startTime, 0);
assert_greater_than(entries[0].responseEnd, entries[0].startTime);
assert_greater_than(entries[0].duration, 0);
assert_true(entries[0].name.endsWith('resources/empty.js'));
})).observe({'type': 'resource', buffered: true});
}).observe({'entryTypes': ['resource']});
fetch('resources/empty.js');
}, 'PerformanceObserver with buffered flag sees previous resource entries.');