Skip to content

Commit d97ba2c

Browse files
nodejs-github-botaduh95
authored andcommitted
deps: update acorn to 8.18.0
PR-URL: #64941 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 261d78d commit d97ba2c

8 files changed

Lines changed: 67 additions & 16 deletions

File tree

deps/acorn/acorn/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 8.18.0 (2026-07-28)
2+
3+
### New features
4+
5+
The new `startLocation` option can now be used to tell the parser the line and column the parse starts at (mostly useful with `parseExpressionAt`).
6+
7+
### Bug fixes
8+
9+
Reject uses of `**` with a non-parenthesized arrow function as left-hand side.
10+
11+
Avoid computing the start line in `parseExpressionAt` when locations aren't used.
12+
113
## 8.17.0 (2026-06-11)
214

315
### New features

deps/acorn/acorn/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ required):
137137
one-based line and zero-based column numbers in `{line, column}`
138138
form. Default is `false`.
139139

140+
- **startLocation**: An optional `{line, column}` object to use for
141+
the start of the parse. This is mostly useful when using
142+
`parseExpressionAt` with `locations: true`, to prevent the parser
143+
from having to determine the line position at the start position.
144+
140145
- **onToken**: If a function is passed for this option, each found
141146
token will be passed in same format as tokens returned from
142147
`tokenizer().getToken()`.

deps/acorn/acorn/dist/acorn.d.mts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,14 @@ export interface Options {
693693
*/
694694
locations?: boolean
695695

696+
/**
697+
* Pass an optional `{line, column}` object to use for the start of
698+
* the parse. This is mostly useful when using `parseExpressionAt`
699+
* with `locations: true`, to prevent the parser from having to
700+
* determine the line position at the start position.
701+
*/
702+
startLocation?: {line: number, column: number}
703+
696704
/**
697705
* a callback that will cause Acorn to call that export function with object in the same
698706
* format as tokens returned from `tokenizer().getToken()`. Note

deps/acorn/acorn/dist/acorn.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,14 @@ export interface Options {
693693
*/
694694
locations?: boolean
695695

696+
/**
697+
* Pass an optional `{line, column}` object to use for the start of
698+
* the parse. This is mostly useful when using `parseExpressionAt`
699+
* with `locations: true`, to prevent the parser from having to
700+
* determine the line position at the start position.
701+
*/
702+
startLocation?: {line: number, column: number}
703+
696704
/**
697705
* a callback that will cause Acorn to call that export function with object in the same
698706
* format as tokens returned from `tokenizer().getToken()`. Note

deps/acorn/acorn/dist/acorn.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,11 @@
386386
// line being 1-based and column 0-based) will be attached to the
387387
// nodes.
388388
locations: false,
389+
// Pass an optional `{line, column}` object to use for the start of
390+
// the parse. This is mostly useful when using `parseExpressionAt`
391+
// with `locations: true`, to prevent the parser from having to
392+
// determine the line position at the start position.
393+
startLocation: null,
389394
// A function can be passed as `onToken` option, which will
390395
// cause Acorn to call that function with object in the same
391396
// format as tokens returned from `tokenizer().getToken()`. Note
@@ -539,13 +544,17 @@
539544
// Set up token state
540545

541546
// The current position of the tokenizer in the input.
542-
if (startPos) {
543-
this.pos = startPos;
547+
this.pos = startPos || 0;
548+
this.curLine = 1;
549+
if (options.startLocation) {
550+
this.lineStart = this.pos - options.startLocation.column;
551+
this.curLine = options.startLocation.line;
552+
} else if (startPos) {
544553
this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1;
545-
this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
554+
if (this.options.locations)
555+
{ this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; }
546556
} else {
547-
this.pos = this.lineStart = 0;
548-
this.curLine = 1;
557+
this.lineStart = 0;
549558
}
550559

551560
// Properties of the current token:
@@ -2888,7 +2897,7 @@
28882897
}
28892898
}
28902899

2891-
if (!incDec && this.eat(types$1.starstar)) {
2900+
if (!incDec && !(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.starstar)) {
28922901
if (sawUnary)
28932902
{ this.unexpected(this.lastTokStart); }
28942903
else
@@ -6258,7 +6267,7 @@
62586267
// [ghbt]: https://github.com/acornjs/acorn/issues
62596268

62606269

6261-
var version = "8.17.0";
6270+
var version = "8.18.0";
62626271

62636272
Parser.acorn = {
62646273
Parser: Parser,

deps/acorn/acorn/dist/acorn.mjs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,11 @@ var defaultOptions = {
380380
// line being 1-based and column 0-based) will be attached to the
381381
// nodes.
382382
locations: false,
383+
// Pass an optional `{line, column}` object to use for the start of
384+
// the parse. This is mostly useful when using `parseExpressionAt`
385+
// with `locations: true`, to prevent the parser from having to
386+
// determine the line position at the start position.
387+
startLocation: null,
383388
// A function can be passed as `onToken` option, which will
384389
// cause Acorn to call that function with object in the same
385390
// format as tokens returned from `tokenizer().getToken()`. Note
@@ -533,13 +538,17 @@ var Parser = function Parser(options, input, startPos) {
533538
// Set up token state
534539

535540
// The current position of the tokenizer in the input.
536-
if (startPos) {
537-
this.pos = startPos;
541+
this.pos = startPos || 0;
542+
this.curLine = 1;
543+
if (options.startLocation) {
544+
this.lineStart = this.pos - options.startLocation.column;
545+
this.curLine = options.startLocation.line;
546+
} else if (startPos) {
538547
this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1;
539-
this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
548+
if (this.options.locations)
549+
{ this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; }
540550
} else {
541-
this.pos = this.lineStart = 0;
542-
this.curLine = 1;
551+
this.lineStart = 0;
543552
}
544553

545554
// Properties of the current token:
@@ -2882,7 +2891,7 @@ pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forIni
28822891
}
28832892
}
28842893

2885-
if (!incDec && this.eat(types$1.starstar)) {
2894+
if (!incDec && !(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.starstar)) {
28862895
if (sawUnary)
28872896
{ this.unexpected(this.lastTokStart); }
28882897
else
@@ -6252,7 +6261,7 @@ pp.readWord = function() {
62526261
// [ghbt]: https://github.com/acornjs/acorn/issues
62536262

62546263

6255-
var version = "8.17.0";
6264+
var version = "8.18.0";
62566265

62576266
Parser.acorn = {
62586267
Parser: Parser,

deps/acorn/acorn/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
],
1717
"./package.json": "./package.json"
1818
},
19-
"version": "8.17.0",
19+
"version": "8.18.0",
2020
"engines": {
2121
"node": ">=0.4.0"
2222
},

src/acorn_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
// Refer to tools/dep_updaters/update-acorn.sh
33
#ifndef SRC_ACORN_VERSION_H_
44
#define SRC_ACORN_VERSION_H_
5-
#define ACORN_VERSION "8.17.0"
5+
#define ACORN_VERSION "8.18.0"
66
#endif // SRC_ACORN_VERSION_H_

0 commit comments

Comments
 (0)