From 7b6339da6a22c361747d68945fe8aca3f78f013b Mon Sep 17 00:00:00 2001 From: Kenta Moriuchi Date: Thu, 26 Jan 2023 20:26:42 +0900 Subject: fix(core): Add lint check for core (#17223) The prefer-primordials lint was skipped for `core/*.js`. --- core/00_primordials.js | 2 ++ core/01_core.js | 31 +++++++++++++++++++++---------- core/02_error.js | 3 ++- 3 files changed, 25 insertions(+), 11 deletions(-) (limited to 'core') diff --git a/core/00_primordials.js b/core/00_primordials.js index dbbba78b7..6495a5268 100644 --- a/core/00_primordials.js +++ b/core/00_primordials.js @@ -29,6 +29,8 @@ // benchmark all changes made in performance-sensitive areas of the codebase. // See: https://github.com/nodejs/node/pull/38248 +// deno-lint-ignore-file prefer-primordials + "use strict"; (() => { diff --git a/core/01_core.js b/core/01_core.js index 0b0804662..d3cd1d7be 100644 --- a/core/01_core.js +++ b/core/01_core.js @@ -9,22 +9,27 @@ SyntaxError, TypeError, URIError, - Map, Array, + ArrayFrom, ArrayPrototypeFill, + ArrayPrototypeJoin, ArrayPrototypePush, ArrayPrototypeMap, ErrorCaptureStackTrace, + Function, Promise, + ObjectAssign, ObjectFromEntries, + ObjectPrototypeHasOwnProperty, + Map, MapPrototypeGet, MapPrototypeHas, MapPrototypeDelete, MapPrototypeSet, PromisePrototypeThen, - PromisePrototypeFinally, + ReflectApply, + SafePromisePrototypeFinally, StringPrototypeSlice, - ObjectAssign, SymbolFor, setQueueMicrotask, } = window.__bootstrap.primordials; @@ -212,11 +217,17 @@ } // { : , ... } - for (const ele of Object.entries(ops.asyncOpsInfo())) { - if (!ele) continue; - const [name, argc] = ele; + const info = ops.asyncOpsInfo(); + for (const name in info) { + if (!ObjectPrototypeHasOwnProperty(info, name)) { + continue; + } + const argc = info[name]; const op = ops[name]; - const args = Array.from({ length: argc }, (_, i) => `arg${i}`).join(", "); + const args = ArrayPrototypeJoin( + ArrayFrom({ length: argc }, (_, i) => `arg${i}`), + ", ", + ); ops[name] = genAsyncOp(op, name, args); } } @@ -225,7 +236,7 @@ if (opCallTracingEnabled) { const stack = StringPrototypeSlice(new Error().stack, 6); MapPrototypeSet(opCallTraces, promiseId, { opName, stack }); - return PromisePrototypeFinally( + return SafePromisePrototypeFinally( p, () => MapPrototypeDelete(opCallTraces, promiseId), ); @@ -235,7 +246,7 @@ } function opAsync(opName, ...args) { - return ops[opName](...args); + return ReflectApply(ops[opName], ops, args); } function refOp(promiseId) { @@ -257,7 +268,7 @@ } function metrics() { - const [aggregate, perOps] = ops.op_metrics(); + const { 0: aggregate, 1: perOps } = ops.op_metrics(); aggregate.ops = ObjectFromEntries(ArrayPrototypeMap( ops.op_op_names(), (opName, opId) => [opName, perOps[opId]], diff --git a/core/02_error.js b/core/02_error.js index 2798b1aa7..b29dc9b4e 100644 --- a/core/02_error.js +++ b/core/02_error.js @@ -130,7 +130,8 @@ __callSiteEvals: { __proto__: null, value: [], configurable: true }, }); const formattedCallSites = []; - for (const cse of callSiteEvals) { + for (let i = 0; i < callSiteEvals.length; ++i) { + const cse = callSiteEvals[i]; ArrayPrototypePush(error.__callSiteEvals, cse); ArrayPrototypePush(formattedCallSites, formatCallSiteEval(cse)); } -- cgit v1.2.3