diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index a2a4cb4f7fa8a4..c2b31f55cda282 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -2,12 +2,18 @@ const { ArrayIsArray, + ArrayPrototypeFilter, + ArrayPrototypeIncludes, + ArrayPrototypeMap, + ArrayPrototypePush, + ArrayPrototypeSplice, + ArrayPrototypeUnshift, Boolean, NumberIsSafeInteger, ObjectDefineProperties, ObjectDefineProperty, ObjectKeys, - Set, + SafeSet, Symbol, } = primordials; @@ -394,7 +400,9 @@ class PerformanceObserver extends AsyncResource { if (!ArrayIsArray(entryTypes)) { throw new ERR_INVALID_ARG_VALUE('options.entryTypes', entryTypes); } - const filteredEntryTypes = entryTypes.filter(filterTypes).map(mapTypes); + const filteredEntryTypes = + ArrayPrototypeMap(ArrayPrototypeFilter(entryTypes, filterTypes), + mapTypes); if (filteredEntryTypes.length === 0) { throw new ERR_VALID_PERFORMANCE_ENTRY_TYPE(); } @@ -421,7 +429,7 @@ class PerformanceObserver extends AsyncResource { class Performance { constructor() { this[kIndex] = { - [kMarks]: new Set() + [kMarks]: new SafeSet() }; } @@ -588,7 +596,7 @@ function observersCallback(entry) { setupObservers(observersCallback); function filterTypes(i) { - return observerableTypes.indexOf(`${i}`) >= 0; + return ArrayPrototypeIncludes(observerableTypes, `${i}`); } function mapTypes(i) { @@ -626,15 +634,15 @@ function sortedInsert(list, entry) { const entryStartTime = entry.startTime; if (list.length === 0 || (list[list.length - 1].startTime < entryStartTime)) { - list.push(entry); + ArrayPrototypePush(list, entry); return; } if (list[0] && (list[0].startTime > entryStartTime)) { - list.unshift(entry); + ArrayPrototypeUnshift(list, entry); return; } const location = getInsertLocation(list, entryStartTime); - list.splice(location, 0, entry); + ArrayPrototypeSplice(list, location, 0, entry); } class ELDHistogram extends Histogram {