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:
Node.js GitHub Bot 2025-03-14 04:37:50 -04:00 committed by GitHub
parent 2a553d80b3
commit 33955b7c02
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 80 additions and 50 deletions

View File

@ -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) ## 8.14.0 (2024-10-27)
### New features ### New features

View File

@ -493,6 +493,7 @@
SCOPE_SUPER = 64, SCOPE_SUPER = 64,
SCOPE_DIRECT_SUPER = 128, SCOPE_DIRECT_SUPER = 128,
SCOPE_CLASS_STATIC_BLOCK = 256, SCOPE_CLASS_STATIC_BLOCK = 256,
SCOPE_CLASS_FIELD_INIT = 512,
SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
function functionFlags(async, generator) { function functionFlags(async, generator) {
@ -603,15 +604,16 @@
prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; 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 () { prototypeAccessors.canAwait.get = function () {
for (var i = this.scopeStack.length - 1; i >= 0; i--) { for (var i = this.scopeStack.length - 1; i >= 0; i--) {
var scope = this.scopeStack[i]; var ref = this.scopeStack[i];
if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false } var flags = ref.flags;
if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } 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 return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
}; };
@ -619,8 +621,7 @@
prototypeAccessors.allowSuper.get = function () { prototypeAccessors.allowSuper.get = function () {
var ref = this.currentThisScope(); var ref = this.currentThisScope();
var flags = ref.flags; var flags = ref.flags;
var inClassFieldInit = ref.inClassFieldInit; return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod
return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
}; };
prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; 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.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
prototypeAccessors.allowNewDotTarget.get = function () { prototypeAccessors.allowNewDotTarget.get = function () {
var ref = this.currentThisScope(); for (var i = this.scopeStack.length - 1; i >= 0; i--) {
var flags = ref.flags; var ref = this.scopeStack[i];
var inClassFieldInit = ref.inClassFieldInit; var flags = ref.flags;
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 () { prototypeAccessors.inClassStaticBlock.get = function () {
@ -1558,11 +1562,9 @@
if (this.eat(types$1.eq)) { if (this.eat(types$1.eq)) {
// To raise SyntaxError if 'arguments' exists in the initializer. // To raise SyntaxError if 'arguments' exists in the initializer.
var scope = this.currentThisScope(); this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);
var inClassFieldInit = scope.inClassFieldInit;
scope.inClassFieldInit = true;
field.value = this.parseMaybeAssign(); field.value = this.parseMaybeAssign();
scope.inClassFieldInit = inClassFieldInit; this.exitScope();
} else { } else {
field.value = null; field.value = null;
} }
@ -1704,6 +1706,8 @@
{ this.checkExport(exports, node.declaration.id, node.declaration.id.start); } { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
node.specifiers = []; node.specifiers = [];
node.source = null; node.source = null;
if (this.options.ecmaVersion >= 16)
{ node.attributes = []; }
} else { // export { x, y as z } [from '...'] } else { // export { x, y as z } [from '...']
node.declaration = null; node.declaration = null;
node.specifiers = this.parseExportSpecifiers(exports); node.specifiers = this.parseExportSpecifiers(exports);
@ -1727,6 +1731,8 @@
} }
node.source = null; node.source = null;
if (this.options.ecmaVersion >= 16)
{ node.attributes = []; }
} }
this.semicolon(); this.semicolon();
} }
@ -3306,9 +3312,10 @@
}; };
pp$5.parseGetterSetter = function(prop) { pp$5.parseGetterSetter = function(prop) {
prop.kind = prop.key.name; var kind = prop.key.name;
this.parsePropertyName(prop); this.parsePropertyName(prop);
prop.value = this.parseMethod(false); prop.value = this.parseMethod(false);
prop.kind = kind;
var paramCount = prop.kind === "get" ? 0 : 1; var paramCount = prop.kind === "get" ? 0 : 1;
if (prop.value.params.length !== paramCount) { if (prop.value.params.length !== paramCount) {
var start = prop.value.start; var start = prop.value.start;
@ -3331,9 +3338,9 @@
prop.kind = "init"; prop.kind = "init";
} else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
if (isPattern) { this.unexpected(); } if (isPattern) { this.unexpected(); }
prop.kind = "init";
prop.method = true; prop.method = true;
prop.value = this.parseMethod(isGenerator, isAsync); prop.value = this.parseMethod(isGenerator, isAsync);
prop.kind = "init";
} else if (!isPattern && !containsEsc && } else if (!isPattern && !containsEsc &&
this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
(prop.key.name === "get" || prop.key.name === "set") && (prop.key.name === "get" || prop.key.name === "set") &&
@ -3345,7 +3352,6 @@
this.checkUnreserved(prop.key); this.checkUnreserved(prop.key);
if (prop.key.name === "await" && !this.awaitIdentPos) if (prop.key.name === "await" && !this.awaitIdentPos)
{ this.awaitIdentPos = startPos; } { this.awaitIdentPos = startPos; }
prop.kind = "init";
if (isPattern) { if (isPattern) {
prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
} else if (this.type === types$1.eq && refDestructuringErrors) { } else if (this.type === types$1.eq && refDestructuringErrors) {
@ -3355,6 +3361,7 @@
} else { } else {
prop.value = this.copyNode(prop.key); prop.value = this.copyNode(prop.key);
} }
prop.kind = "init";
prop.shorthand = true; prop.shorthand = true;
} else { this.unexpected(); } } else { this.unexpected(); }
}; };
@ -3530,7 +3537,7 @@
{ this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
if (this.inAsync && name === "await") if (this.inAsync && name === "await")
{ this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } { 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"); } { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); }
if (this.inClassStaticBlock && (name === "arguments" || name === "await")) if (this.inClassStaticBlock && (name === "arguments" || name === "await"))
{ this.raise(start, ("Cannot use " + name + " in class static initialization block")); } { this.raise(start, ("Cannot use " + name + " in class static initialization block")); }
@ -3643,6 +3650,9 @@
pp$4.raise = function(pos, message) { pp$4.raise = function(pos, message) {
var loc = getLineInfo(this.input, pos); var loc = getLineInfo(this.input, pos);
message += " (" + loc.line + ":" + loc.column + ")"; message += " (" + loc.line + ":" + loc.column + ")";
if (this.sourceFile) {
message += " in " + this.sourceFile;
}
var err = new SyntaxError(message); var err = new SyntaxError(message);
err.pos = pos; err.loc = loc; err.raisedAt = this.pos; err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
throw err throw err
@ -3666,8 +3676,6 @@
this.lexical = []; this.lexical = [];
// A list of lexically-declared FunctionDeclaration names in the current lexical scope // A list of lexically-declared FunctionDeclaration names in the current lexical scope
this.functions = []; 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. // 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() { pp$3.currentVarScope = function() {
for (var i = this.scopeStack.length - 1;; i--) { for (var i = this.scopeStack.length - 1;; i--) {
var scope = this.scopeStack[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() { pp$3.currentThisScope = function() {
for (var i = this.scopeStack.length - 1;; i--) { for (var i = this.scopeStack.length - 1;; i--) {
var scope = this.scopeStack[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 // [walk]: util/walk.js
var version = "8.14.0"; var version = "8.14.1";
Parser.acorn = { Parser.acorn = {
Parser: Parser, Parser: Parser,

View File

@ -487,6 +487,7 @@ var
SCOPE_SUPER = 64, SCOPE_SUPER = 64,
SCOPE_DIRECT_SUPER = 128, SCOPE_DIRECT_SUPER = 128,
SCOPE_CLASS_STATIC_BLOCK = 256, SCOPE_CLASS_STATIC_BLOCK = 256,
SCOPE_CLASS_FIELD_INIT = 512,
SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
function functionFlags(async, generator) { 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.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 () { prototypeAccessors.canAwait.get = function () {
for (var i = this.scopeStack.length - 1; i >= 0; i--) { for (var i = this.scopeStack.length - 1; i >= 0; i--) {
var scope = this.scopeStack[i]; var ref = this.scopeStack[i];
if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false } var flags = ref.flags;
if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } 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 return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
}; };
@ -613,8 +615,7 @@ prototypeAccessors.canAwait.get = function () {
prototypeAccessors.allowSuper.get = function () { prototypeAccessors.allowSuper.get = function () {
var ref = this.currentThisScope(); var ref = this.currentThisScope();
var flags = ref.flags; var flags = ref.flags;
var inClassFieldInit = ref.inClassFieldInit; return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod
return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
}; };
prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; 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.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
prototypeAccessors.allowNewDotTarget.get = function () { prototypeAccessors.allowNewDotTarget.get = function () {
var ref = this.currentThisScope(); for (var i = this.scopeStack.length - 1; i >= 0; i--) {
var flags = ref.flags; var ref = this.scopeStack[i];
var inClassFieldInit = ref.inClassFieldInit; var flags = ref.flags;
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 () { prototypeAccessors.inClassStaticBlock.get = function () {
@ -1552,11 +1556,9 @@ pp$8.parseClassField = function(field) {
if (this.eat(types$1.eq)) { if (this.eat(types$1.eq)) {
// To raise SyntaxError if 'arguments' exists in the initializer. // To raise SyntaxError if 'arguments' exists in the initializer.
var scope = this.currentThisScope(); this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);
var inClassFieldInit = scope.inClassFieldInit;
scope.inClassFieldInit = true;
field.value = this.parseMaybeAssign(); field.value = this.parseMaybeAssign();
scope.inClassFieldInit = inClassFieldInit; this.exitScope();
} else { } else {
field.value = null; field.value = null;
} }
@ -1698,6 +1700,8 @@ pp$8.parseExport = function(node, exports) {
{ this.checkExport(exports, node.declaration.id, node.declaration.id.start); } { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
node.specifiers = []; node.specifiers = [];
node.source = null; node.source = null;
if (this.options.ecmaVersion >= 16)
{ node.attributes = []; }
} else { // export { x, y as z } [from '...'] } else { // export { x, y as z } [from '...']
node.declaration = null; node.declaration = null;
node.specifiers = this.parseExportSpecifiers(exports); node.specifiers = this.parseExportSpecifiers(exports);
@ -1721,6 +1725,8 @@ pp$8.parseExport = function(node, exports) {
} }
node.source = null; node.source = null;
if (this.options.ecmaVersion >= 16)
{ node.attributes = []; }
} }
this.semicolon(); this.semicolon();
} }
@ -3300,9 +3306,10 @@ pp$5.parseProperty = function(isPattern, refDestructuringErrors) {
}; };
pp$5.parseGetterSetter = function(prop) { pp$5.parseGetterSetter = function(prop) {
prop.kind = prop.key.name; var kind = prop.key.name;
this.parsePropertyName(prop); this.parsePropertyName(prop);
prop.value = this.parseMethod(false); prop.value = this.parseMethod(false);
prop.kind = kind;
var paramCount = prop.kind === "get" ? 0 : 1; var paramCount = prop.kind === "get" ? 0 : 1;
if (prop.value.params.length !== paramCount) { if (prop.value.params.length !== paramCount) {
var start = prop.value.start; var start = prop.value.start;
@ -3325,9 +3332,9 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
prop.kind = "init"; prop.kind = "init";
} else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
if (isPattern) { this.unexpected(); } if (isPattern) { this.unexpected(); }
prop.kind = "init";
prop.method = true; prop.method = true;
prop.value = this.parseMethod(isGenerator, isAsync); prop.value = this.parseMethod(isGenerator, isAsync);
prop.kind = "init";
} else if (!isPattern && !containsEsc && } else if (!isPattern && !containsEsc &&
this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
(prop.key.name === "get" || prop.key.name === "set") && (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); this.checkUnreserved(prop.key);
if (prop.key.name === "await" && !this.awaitIdentPos) if (prop.key.name === "await" && !this.awaitIdentPos)
{ this.awaitIdentPos = startPos; } { this.awaitIdentPos = startPos; }
prop.kind = "init";
if (isPattern) { if (isPattern) {
prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
} else if (this.type === types$1.eq && refDestructuringErrors) { } else if (this.type === types$1.eq && refDestructuringErrors) {
@ -3349,6 +3355,7 @@ pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
} else { } else {
prop.value = this.copyNode(prop.key); prop.value = this.copyNode(prop.key);
} }
prop.kind = "init";
prop.shorthand = true; prop.shorthand = true;
} else { this.unexpected(); } } else { this.unexpected(); }
}; };
@ -3524,7 +3531,7 @@ pp$5.checkUnreserved = function(ref) {
{ this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
if (this.inAsync && name === "await") if (this.inAsync && name === "await")
{ this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } { 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"); } { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); }
if (this.inClassStaticBlock && (name === "arguments" || name === "await")) if (this.inClassStaticBlock && (name === "arguments" || name === "await"))
{ this.raise(start, ("Cannot use " + name + " in class static initialization block")); } { 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) { pp$4.raise = function(pos, message) {
var loc = getLineInfo(this.input, pos); var loc = getLineInfo(this.input, pos);
message += " (" + loc.line + ":" + loc.column + ")"; message += " (" + loc.line + ":" + loc.column + ")";
if (this.sourceFile) {
message += " in " + this.sourceFile;
}
var err = new SyntaxError(message); var err = new SyntaxError(message);
err.pos = pos; err.loc = loc; err.raisedAt = this.pos; err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
throw err throw err
@ -3660,8 +3670,6 @@ var Scope = function Scope(flags) {
this.lexical = []; this.lexical = [];
// A list of lexically-declared FunctionDeclaration names in the current lexical scope // A list of lexically-declared FunctionDeclaration names in the current lexical scope
this.functions = []; 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. // 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() { pp$3.currentVarScope = function() {
for (var i = this.scopeStack.length - 1;; i--) { for (var i = this.scopeStack.length - 1;; i--) {
var scope = this.scopeStack[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() { pp$3.currentThisScope = function() {
for (var i = this.scopeStack.length - 1;; i--) { for (var i = this.scopeStack.length - 1;; i--) {
var scope = this.scopeStack[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 // [walk]: util/walk.js
var version = "8.14.0"; var version = "8.14.1";
Parser.acorn = { Parser.acorn = {
Parser: Parser, Parser: Parser,

View File

@ -16,7 +16,7 @@
], ],
"./package.json": "./package.json" "./package.json": "./package.json"
}, },
"version": "8.14.0", "version": "8.14.1",
"engines": { "engines": {
"node": ">=0.4.0" "node": ">=0.4.0"
}, },

View File

@ -2,5 +2,5 @@
// Refer to tools/dep_updaters/update-acorn.sh // Refer to tools/dep_updaters/update-acorn.sh
#ifndef SRC_ACORN_VERSION_H_ #ifndef SRC_ACORN_VERSION_H_
#define 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_ #endif // SRC_ACORN_VERSION_H_