fix(core): Add lint check for core (#17223)

The prefer-primordials lint was skipped for `core/*.js`.
This commit is contained in:
Kenta Moriuchi 2023-01-26 20:26:42 +09:00 committed by GitHub
parent 87c2493855
commit 7b6339da6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 12 deletions

View File

@ -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";
(() => {

View File

@ -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 @@
}
// { <name>: <argc>, ... }
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]],

View File

@ -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));
}

View File

@ -89,7 +89,8 @@ async function dlintPreferPrimordials() {
const sourceFiles = await getSources(ROOT_PATH, [
"runtime/**/*.js",
"ext/**/*.js",
"core/**/*.js",
"core/*.js",
":!:core/*_test.js",
":!:core/examples/**",
]);