mirror of
https://github.com/nodejs/node.git
synced 2025-04-28 13:40:37 +00:00
deps: update acorn to 8.14.1
PR-URL: https://github.com/nodejs/node/pull/57382 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
This commit is contained in:
parent
2a553d80b3
commit
33955b7c02
12
deps/acorn/acorn/CHANGELOG.md
vendored
12
deps/acorn/acorn/CHANGELOG.md
vendored
@ -1,3 +1,15 @@
|
||||
## 8.14.1 (2025-03-05)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix an issue where `await` expressions in class field initializers were inappropriately allowed.
|
||||
|
||||
Properly allow await inside an async arrow function inside a class field initializer.
|
||||
|
||||
Mention the source file name in syntax error messages when given.
|
||||
|
||||
Properly add an empty `attributes` property to every form of `ExportNamedDeclaration`.
|
||||
|
||||
## 8.14.0 (2024-10-27)
|
||||
|
||||
### New features
|
||||
|
55
deps/acorn/acorn/dist/acorn.js
vendored
55
deps/acorn/acorn/dist/acorn.js
vendored
@ -493,6 +493,7 @@
|
||||
SCOPE_SUPER = 64,
|
||||
SCOPE_DIRECT_SUPER = 128,
|
||||
SCOPE_CLASS_STATIC_BLOCK = 256,
|
||||
SCOPE_CLASS_FIELD_INIT = 512,
|
||||
SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
|
||||
|
||||
function functionFlags(async, generator) {
|
||||
@ -603,15 +604,16 @@
|
||||
|
||||
prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
|
||||
|
||||
prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };
|
||||
prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };
|
||||
|
||||
prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };
|
||||
prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };
|
||||
|
||||
prototypeAccessors.canAwait.get = function () {
|
||||
for (var i = this.scopeStack.length - 1; i >= 0; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false }
|
||||
if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }
|
||||
var ref = this.scopeStack[i];
|
||||
var flags = ref.flags;
|
||||
if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }
|
||||
if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }
|
||||
}
|
||||
return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
|
||||
};
|
||||
@ -619,8 +621,7 @@
|
||||
prototypeAccessors.allowSuper.get = function () {
|
||||
var ref = this.currentThisScope();
|
||||
var flags = ref.flags;
|
||||
var inClassFieldInit = ref.inClassFieldInit;
|
||||
return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
|
||||
return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod
|
||||
};
|
||||
|
||||
prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
|
||||
@ -628,10 +629,13 @@
|
||||
prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
|
||||
|
||||
prototypeAccessors.allowNewDotTarget.get = function () {
|
||||
var ref = this.currentThisScope();
|
||||
for (var i = this.scopeStack.length - 1; i >= 0; i--) {
|
||||
var ref = this.scopeStack[i];
|
||||
var flags = ref.flags;
|
||||
var inClassFieldInit = ref.inClassFieldInit;
|
||||
return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit
|
||||
if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||
|
||||
((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }
|
||||
}
|
||||
return false
|
||||
};
|
||||
|
||||
prototypeAccessors.inClassStaticBlock.get = function () {
|
||||
@ -1558,11 +1562,9 @@
|
||||
|
||||
if (this.eat(types$1.eq)) {
|
||||
// To raise SyntaxError if 'arguments' exists in the initializer.
|
||||
var scope = this.currentThisScope();
|
||||
var inClassFieldInit = scope.inClassFieldInit;
|
||||
scope.inClassFieldInit = true;
|
||||
this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);
|
||||
field.value = this.parseMaybeAssign();
|
||||
scope.inClassFieldInit = inClassFieldInit;
|
||||
this.exitScope();
|
||||
} else {
|
||||
field.value = null;
|
||||
}
|
||||
@ -1704,6 +1706,8 @@
|
||||
{ this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
|
||||
node.specifiers = [];
|
||||
node.source = null;
|
||||
if (this.options.ecmaVersion >= 16)
|
||||
{ node.attributes = []; }
|
||||
} else { // export { x, y as z } [from '...']
|
||||
node.declaration = null;
|
||||
node.specifiers = this.parseExportSpecifiers(exports);
|
||||
@ -1727,6 +1731,8 @@
|
||||
}
|
||||
|
||||
node.source = null;
|
||||
if (this.options.ecmaVersion >= 16)
|
||||
{ node.attributes = []; }
|
||||
}
|
||||
this.semicolon();
|
||||
}
|
||||
@ -3306,9 +3312,10 @@
|
||||
};
|
||||
|
||||
pp$5.parseGetterSetter = function(prop) {
|
||||
prop.kind = prop.key.name;
|
||||
var kind = prop.key.name;
|
||||
this.parsePropertyName(prop);
|
||||
prop.value = this.parseMethod(false);
|
||||
prop.kind = kind;
|
||||
var paramCount = prop.kind === "get" ? 0 : 1;
|
||||
if (prop.value.params.length !== paramCount) {
|
||||
var start = prop.value.start;
|
||||
@ -3331,9 +3338,9 @@
|
||||
prop.kind = "init";
|
||||
} else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
|
||||
if (isPattern) { this.unexpected(); }
|
||||
prop.kind = "init";
|
||||
prop.method = true;
|
||||
prop.value = this.parseMethod(isGenerator, isAsync);
|
||||
prop.kind = "init";
|
||||
} else if (!isPattern && !containsEsc &&
|
||||
this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
|
||||
(prop.key.name === "get" || prop.key.name === "set") &&
|
||||
@ -3345,7 +3352,6 @@
|
||||
this.checkUnreserved(prop.key);
|
||||
if (prop.key.name === "await" && !this.awaitIdentPos)
|
||||
{ this.awaitIdentPos = startPos; }
|
||||
prop.kind = "init";
|
||||
if (isPattern) {
|
||||
prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
|
||||
} else if (this.type === types$1.eq && refDestructuringErrors) {
|
||||
@ -3355,6 +3361,7 @@
|
||||
} else {
|
||||
prop.value = this.copyNode(prop.key);
|
||||
}
|
||||
prop.kind = "init";
|
||||
prop.shorthand = true;
|
||||
} else { this.unexpected(); }
|
||||
};
|
||||
@ -3530,7 +3537,7 @@
|
||||
{ this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
|
||||
if (this.inAsync && name === "await")
|
||||
{ this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); }
|
||||
if (this.currentThisScope().inClassFieldInit && name === "arguments")
|
||||
if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments")
|
||||
{ this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); }
|
||||
if (this.inClassStaticBlock && (name === "arguments" || name === "await"))
|
||||
{ this.raise(start, ("Cannot use " + name + " in class static initialization block")); }
|
||||
@ -3643,6 +3650,9 @@
|
||||
pp$4.raise = function(pos, message) {
|
||||
var loc = getLineInfo(this.input, pos);
|
||||
message += " (" + loc.line + ":" + loc.column + ")";
|
||||
if (this.sourceFile) {
|
||||
message += " in " + this.sourceFile;
|
||||
}
|
||||
var err = new SyntaxError(message);
|
||||
err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
|
||||
throw err
|
||||
@ -3666,8 +3676,6 @@
|
||||
this.lexical = [];
|
||||
// A list of lexically-declared FunctionDeclaration names in the current lexical scope
|
||||
this.functions = [];
|
||||
// A switch to disallow the identifier reference 'arguments'
|
||||
this.inClassFieldInit = false;
|
||||
};
|
||||
|
||||
// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
|
||||
@ -3737,7 +3745,7 @@
|
||||
pp$3.currentVarScope = function() {
|
||||
for (var i = this.scopeStack.length - 1;; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.flags & SCOPE_VAR) { return scope }
|
||||
if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }
|
||||
}
|
||||
};
|
||||
|
||||
@ -3745,7 +3753,8 @@
|
||||
pp$3.currentThisScope = function() {
|
||||
for (var i = this.scopeStack.length - 1;; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }
|
||||
if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&
|
||||
!(scope.flags & SCOPE_ARROW)) { return scope }
|
||||
}
|
||||
};
|
||||
|
||||
@ -6099,7 +6108,7 @@
|
||||
// [walk]: util/walk.js
|
||||
|
||||
|
||||
var version = "8.14.0";
|
||||
var version = "8.14.1";
|
||||
|
||||
Parser.acorn = {
|
||||
Parser: Parser,
|
||||
|
55
deps/acorn/acorn/dist/acorn.mjs
vendored
55
deps/acorn/acorn/dist/acorn.mjs
vendored
@ -487,6 +487,7 @@ var
|
||||
SCOPE_SUPER = 64,
|
||||
SCOPE_DIRECT_SUPER = 128,
|
||||
SCOPE_CLASS_STATIC_BLOCK = 256,
|
||||
SCOPE_CLASS_FIELD_INIT = 512,
|
||||
SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
|
||||
|
||||
function functionFlags(async, generator) {
|
||||
@ -597,15 +598,16 @@ Parser.prototype.parse = function parse () {
|
||||
|
||||
prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
|
||||
|
||||
prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };
|
||||
prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };
|
||||
|
||||
prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };
|
||||
prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };
|
||||
|
||||
prototypeAccessors.canAwait.get = function () {
|
||||
for (var i = this.scopeStack.length - 1; i >= 0; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false }
|
||||
if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }
|
||||
var ref = this.scopeStack[i];
|
||||
var flags = ref.flags;
|
||||
if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }
|
||||
if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }
|
||||
}
|
||||
return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
|
||||
};
|
||||
@ -613,8 +615,7 @@ prototypeAccessors.canAwait.get = function () {
|
||||
prototypeAccessors.allowSuper.get = function () {
|
||||
var ref = this.currentThisScope();
|
||||
var flags = ref.flags;
|
||||
var inClassFieldInit = ref.inClassFieldInit;
|
||||
return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
|
||||
return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod
|
||||
};
|
||||
|
||||
prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
|
||||
@ -622,10 +623,13 @@ prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThis
|
||||
prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
|
||||
|
||||
prototypeAccessors.allowNewDotTarget.get = function () {
|
||||
var ref = this.currentThisScope();
|
||||
for (var i = this.scopeStack.length - 1; i >= 0; i--) {
|
||||
var ref = this.scopeStack[i];
|
||||
var flags = ref.flags;
|
||||
var inClassFieldInit = ref.inClassFieldInit;
|
||||
return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit
|
||||
if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||
|
||||
((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }
|
||||
}
|
||||
return false
|
||||
};
|
||||
|
||||
prototypeAccessors.inClassStaticBlock.get = function () {
|
||||
@ -1552,11 +1556,9 @@ pp$8.parseClassField = function(field) {
|
||||
|
||||
if (this.eat(types$1.eq)) {
|
||||
// To raise SyntaxError if 'arguments' exists in the initializer.
|
||||
var scope = this.currentThisScope();
|
||||
var inClassFieldInit = scope.inClassFieldInit;
|
||||
scope.inClassFieldInit = true;
|
||||
this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);
|
||||
field.value = this.parseMaybeAssign();
|
||||
scope.inClassFieldInit = inClassFieldInit;
|
||||
this.exitScope();
|
||||
} else {
|
||||
field.value = null;
|
||||
}
|
||||
@ -1698,6 +1700,8 @@ pp$8.parseExport = function(node, exports) {
|
||||
{ this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
|
||||
node.specifiers = [];
|
||||
node.source = null;
|
||||
if (this.options.ecmaVersion >= 16)
|
||||
{ node.attributes = []; }
|
||||
} else { // export { x, y as z } [from '...']
|
||||
node.declaration = null;
|
||||
node.specifiers = this.parseExportSpecifiers(exports);
|
||||
@ -1721,6 +1725,8 @@ pp$8.parseExport = function(node, exports) {
|
||||
}
|
||||
|
||||
node.source = null;
|
||||
if (this.options.ecmaVersion >= 16)
|
||||
{ node.attributes = []; }
|
||||
}
|
||||
this.semicolon();
|
||||
}
|
||||
@ -3300,9 +3306,10 @@ pp$5.parseProperty = function(isPattern, refDestructuringErrors) {
|
||||
};
|
||||
|
||||
pp$5.parseGetterSetter = function(prop) {
|
||||
prop.kind = prop.key.name;
|
||||
var kind = prop.key.name;
|
||||
this.parsePropertyName(prop);
|
||||
prop.value = this.parseMethod(false);
|
||||
prop.kind = kind;
|
||||
var paramCount = prop.kind === "get" ? 0 : 1;
|
||||
if (prop.value.params.length !== paramCount) {
|
||||
var start = prop.value.start;
|
||||
@ -3325,9 +3332,9 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
|
||||
prop.kind = "init";
|
||||
} else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
|
||||
if (isPattern) { this.unexpected(); }
|
||||
prop.kind = "init";
|
||||
prop.method = true;
|
||||
prop.value = this.parseMethod(isGenerator, isAsync);
|
||||
prop.kind = "init";
|
||||
} else if (!isPattern && !containsEsc &&
|
||||
this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
|
||||
(prop.key.name === "get" || prop.key.name === "set") &&
|
||||
@ -3339,7 +3346,6 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
|
||||
this.checkUnreserved(prop.key);
|
||||
if (prop.key.name === "await" && !this.awaitIdentPos)
|
||||
{ this.awaitIdentPos = startPos; }
|
||||
prop.kind = "init";
|
||||
if (isPattern) {
|
||||
prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
|
||||
} else if (this.type === types$1.eq && refDestructuringErrors) {
|
||||
@ -3349,6 +3355,7 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
|
||||
} else {
|
||||
prop.value = this.copyNode(prop.key);
|
||||
}
|
||||
prop.kind = "init";
|
||||
prop.shorthand = true;
|
||||
} else { this.unexpected(); }
|
||||
};
|
||||
@ -3524,7 +3531,7 @@ pp$5.checkUnreserved = function(ref) {
|
||||
{ this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
|
||||
if (this.inAsync && name === "await")
|
||||
{ this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); }
|
||||
if (this.currentThisScope().inClassFieldInit && name === "arguments")
|
||||
if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments")
|
||||
{ this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); }
|
||||
if (this.inClassStaticBlock && (name === "arguments" || name === "await"))
|
||||
{ this.raise(start, ("Cannot use " + name + " in class static initialization block")); }
|
||||
@ -3637,6 +3644,9 @@ var pp$4 = Parser.prototype;
|
||||
pp$4.raise = function(pos, message) {
|
||||
var loc = getLineInfo(this.input, pos);
|
||||
message += " (" + loc.line + ":" + loc.column + ")";
|
||||
if (this.sourceFile) {
|
||||
message += " in " + this.sourceFile;
|
||||
}
|
||||
var err = new SyntaxError(message);
|
||||
err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
|
||||
throw err
|
||||
@ -3660,8 +3670,6 @@ var Scope = function Scope(flags) {
|
||||
this.lexical = [];
|
||||
// A list of lexically-declared FunctionDeclaration names in the current lexical scope
|
||||
this.functions = [];
|
||||
// A switch to disallow the identifier reference 'arguments'
|
||||
this.inClassFieldInit = false;
|
||||
};
|
||||
|
||||
// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
|
||||
@ -3731,7 +3739,7 @@ pp$3.currentScope = function() {
|
||||
pp$3.currentVarScope = function() {
|
||||
for (var i = this.scopeStack.length - 1;; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.flags & SCOPE_VAR) { return scope }
|
||||
if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }
|
||||
}
|
||||
};
|
||||
|
||||
@ -3739,7 +3747,8 @@ pp$3.currentVarScope = function() {
|
||||
pp$3.currentThisScope = function() {
|
||||
for (var i = this.scopeStack.length - 1;; i--) {
|
||||
var scope = this.scopeStack[i];
|
||||
if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }
|
||||
if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&
|
||||
!(scope.flags & SCOPE_ARROW)) { return scope }
|
||||
}
|
||||
};
|
||||
|
||||
@ -6093,7 +6102,7 @@ pp.readWord = function() {
|
||||
// [walk]: util/walk.js
|
||||
|
||||
|
||||
var version = "8.14.0";
|
||||
var version = "8.14.1";
|
||||
|
||||
Parser.acorn = {
|
||||
Parser: Parser,
|
||||
|
2
deps/acorn/acorn/package.json
vendored
2
deps/acorn/acorn/package.json
vendored
@ -16,7 +16,7 @@
|
||||
],
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"version": "8.14.0",
|
||||
"version": "8.14.1",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
},
|
||||
|
@ -2,5 +2,5 @@
|
||||
// Refer to tools/dep_updaters/update-acorn.sh
|
||||
#ifndef SRC_ACORN_VERSION_H_
|
||||
#define SRC_ACORN_VERSION_H_
|
||||
#define ACORN_VERSION "8.14.0"
|
||||
#define ACORN_VERSION "8.14.1"
|
||||
#endif // SRC_ACORN_VERSION_H_
|
||||
|
Loading…
Reference in New Issue
Block a user