From ea46ca8cbf50bbd725157ccac297b06e023b0d9e Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 21 Nov 2020 20:21:01 +0100 Subject: [PATCH] perf_hooks: refactor to use more primordials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/36297 Reviewed-By: Rich Trott Reviewed-By: Michaƫl Zasso --- lib/perf_hooks.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) 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 {