@@ -15,7 +15,6 @@ const {
15
15
ObjectDefineProperties,
16
16
ObjectFreeze,
17
17
ObjectKeys,
18
- ReflectConstruct,
19
18
SafeMap,
20
19
SafeSet,
21
20
Symbol,
@@ -171,9 +170,18 @@ function maybeIncrementObserverCount(type) {
171
170
}
172
171
}
173
172
173
+ const kSkipThrow = Symbol ( 'kSkipThrow' ) ;
174
+ const performanceObserverSorter = ( first , second ) => {
175
+ return first . startTime - second . startTime ;
176
+ } ;
177
+
174
178
class PerformanceObserverEntryList {
175
- constructor ( ) {
176
- throw new ERR_ILLEGAL_CONSTRUCTOR ( ) ;
179
+ constructor ( skipThrowSymbol = undefined , entries = [ ] ) {
180
+ if ( skipThrowSymbol !== kSkipThrow ) {
181
+ throw new ERR_ILLEGAL_CONSTRUCTOR ( ) ;
182
+ }
183
+
184
+ this [ kBuffer ] = ArrayPrototypeSort ( entries , performanceObserverSorter ) ;
177
185
}
178
186
179
187
getEntries ( ) {
@@ -232,14 +240,6 @@ ObjectDefineProperties(PerformanceObserverEntryList.prototype, {
232
240
} ,
233
241
} ) ;
234
242
235
- function createPerformanceObserverEntryList ( entries ) {
236
- return ReflectConstruct ( function PerformanceObserverEntryList ( ) {
237
- this [ kBuffer ] = ArrayPrototypeSort ( entries , ( first , second ) => {
238
- return first . startTime - second . startTime ;
239
- } ) ;
240
- } , [ ] , PerformanceObserverEntryList ) ;
241
- }
242
-
243
243
class PerformanceObserver {
244
244
#buffer = [ ] ;
245
245
#entryTypes = new SafeSet ( ) ;
@@ -349,8 +349,9 @@ class PerformanceObserver {
349
349
}
350
350
351
351
[ kDispatch ] ( ) {
352
- this . #callback( createPerformanceObserverEntryList ( this . takeRecords ( ) ) ,
353
- this ) ;
352
+ const entryList = new PerformanceObserverEntryList ( kSkipThrow , this . takeRecords ( ) ) ;
353
+
354
+ this . #callback( entryList , this ) ;
354
355
}
355
356
356
357
[ kInspect ] ( depth , options ) {
@@ -523,9 +524,7 @@ function filterBufferMapByNameAndType(name, type) {
523
524
bufferList = ArrayPrototypeSlice ( bufferList ) ;
524
525
}
525
526
526
- return ArrayPrototypeSort ( bufferList , ( first , second ) => {
527
- return first . startTime - second . startTime ;
528
- } ) ;
527
+ return ArrayPrototypeSort ( bufferList , performanceObserverSorter ) ;
529
528
}
530
529
531
530
function observerCallback ( name , type , startTime , duration , details ) {
0 commit comments