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>
18 lines
977 B
JavaScript
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.');
|