@@ -15,7 +15,6 @@ const {
1515 ObjectDefineProperties,
1616 ObjectFreeze,
1717 ObjectKeys,
18- ReflectConstruct,
1918 SafeMap,
2019 SafeSet,
2120 Symbol,
@@ -171,9 +170,18 @@ function maybeIncrementObserverCount(type) {
171170 }
172171}
173172
173+ const kSkipThrow = Symbol ( 'kSkipThrow' ) ;
174+ const performanceObserverSorter = ( first , second ) => {
175+ return first . startTime - second . startTime ;
176+ } ;
177+
174178class 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 ) ;
177185 }
178186
179187 getEntries ( ) {
@@ -232,14 +240,6 @@ ObjectDefineProperties(PerformanceObserverEntryList.prototype, {
232240 } ,
233241} ) ;
234242
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-
243243class PerformanceObserver {
244244 #buffer = [ ] ;
245245 #entryTypes = new SafeSet ( ) ;
@@ -349,8 +349,9 @@ class PerformanceObserver {
349349 }
350350
351351 [ kDispatch ] ( ) {
352- this . #callback( createPerformanceObserverEntryList ( this . takeRecords ( ) ) ,
353- this ) ;
352+ const entryList = new PerformanceObserverEntryList ( kSkipThrow , this . takeRecords ( ) ) ;
353+
354+ this . #callback( entryList , this ) ;
354355 }
355356
356357 [ kInspect ] ( depth , options ) {
@@ -523,9 +524,7 @@ function filterBufferMapByNameAndType(name, type) {
523524 bufferList = ArrayPrototypeSlice ( bufferList ) ;
524525 }
525526
526- return ArrayPrototypeSort ( bufferList , ( first , second ) => {
527- return first . startTime - second . startTime ;
528- } ) ;
527+ return ArrayPrototypeSort ( bufferList , performanceObserverSorter ) ;
529528}
530529
531530function observerCallback ( name , type , startTime , duration , details ) {
0 commit comments