GeezerVison is showing github.com — deps: update acorn to 8.18.0 · nodejs/node@8b06457
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/CHANGELOG.md +12Lines changed: 12 additions & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
| | 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 | + | 1 | 13 | ## 8.17.0 (2026-06-11) | 2 | 14 |
| 3 | 15 | ### New features | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/README.md +5Lines changed: 5 additions & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
@@ -137,6 +137,11 @@ required): | 137 | 137 | one-based line and zero-based column numbers in `{line, column}` | 138 | 138 | form. Default is `false`. | 139 | 139 |
| | 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 | + | 140 | 145 | - **onToken**: If a function is passed for this option, each found | 141 | 146 | token will be passed in same format as tokens returned from | 142 | 147 | `tokenizer().getToken()`. | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/dist/acorn.d.mts +8Lines changed: 8 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -693,6 +693,14 @@ export interface Options { | 693 | 693 | */ | 694 | 694 | locations?: boolean | 695 | 695 |
| | 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 | + | 696 | 704 | /** | 697 | 705 | * a callback that will cause Acorn to call that export function with object in the same | 698 | 706 | * format as tokens returned from `tokenizer().getToken()`. Note | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/dist/acorn.d.ts +8Lines changed: 8 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -693,6 +693,14 @@ export interface Options { | 693 | 693 | */ | 694 | 694 | locations?: boolean | 695 | 695 |
| | 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 | + | 696 | 704 | /** | 697 | 705 | * a callback that will cause Acorn to call that export function with object in the same | 698 | 706 | * format as tokens returned from `tokenizer().getToken()`. Note | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/dist/acorn.js +16-7Lines changed: 16 additions & 7 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 386 | 386 | // line being 1-based and column 0-based) will be attached to the | 387 | 387 | // nodes. | 388 | 388 | 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, | 389 | 394 | // A function can be passed as `onToken` option, which will | 390 | 395 | // cause Acorn to call that function with object in the same | 391 | 396 | // format as tokens returned from `tokenizer().getToken()`. Note | | 539 | 544 | // Set up token state | 540 | 545 |
| 541 | 546 | // 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) { | 544 | 553 | 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; } | 546 | 556 | } else { | 547 | | - this.pos = this.lineStart = 0; | 548 | | - this.curLine = 1; | | 557 | + this.lineStart = 0; | 549 | 558 | } | 550 | 559 |
| 551 | 560 | // Properties of the current token: | | 2888 | 2897 | } | 2889 | 2898 | } | 2890 | 2899 |
| 2891 | | - if (!incDec && this.eat(types$1.starstar)) { | | 2900 | + if (!incDec && !(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.starstar)) { | 2892 | 2901 | if (sawUnary) | 2893 | 2902 | { this.unexpected(this.lastTokStart); } | 2894 | 2903 | else | | 6258 | 6267 | // [ghbt]: https://github.com/acornjs/acorn/issues | 6259 | 6268 |
| 6260 | 6269 |
| 6261 | | - var version = "8.17.0"; | | 6270 | + var version = "8.18.0"; | 6262 | 6271 |
| 6263 | 6272 | Parser.acorn = { | 6264 | 6273 | Parser: Parser, | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/dist/acorn.mjs +16-7Lines changed: 16 additions & 7 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -380,6 +380,11 @@ var defaultOptions = { | 380 | 380 | // line being 1-based and column 0-based) will be attached to the | 381 | 381 | // nodes. | 382 | 382 | 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, | 383 | 388 | // A function can be passed as `onToken` option, which will | 384 | 389 | // cause Acorn to call that function with object in the same | 385 | 390 | // format as tokens returned from `tokenizer().getToken()`. Note | @@ -533,13 +538,17 @@ var Parser = function Parser(options, input, startPos) { | 533 | 538 | // Set up token state | 534 | 539 |
| 535 | 540 | // 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) { | 538 | 547 | 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; } | 540 | 550 | } else { | 541 | | - this.pos = this.lineStart = 0; | 542 | | - this.curLine = 1; | | 551 | + this.lineStart = 0; | 543 | 552 | } | 544 | 553 |
| 545 | 554 | // Properties of the current token: | @@ -2882,7 +2891,7 @@ pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forIni | 2882 | 2891 | } | 2883 | 2892 | } | 2884 | 2893 |
| 2885 | | - if (!incDec && this.eat(types$1.starstar)) { | | 2894 | + if (!incDec && !(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.starstar)) { | 2886 | 2895 | if (sawUnary) | 2887 | 2896 | { this.unexpected(this.lastTokStart); } | 2888 | 2897 | else | @@ -6252,7 +6261,7 @@ pp.readWord = function() { | 6252 | 6261 | // [ghbt]: https://github.com/acornjs/acorn/issues | 6253 | 6262 |
| 6254 | 6263 |
| 6255 | | -var version = "8.17.0"; | | 6264 | +var version = "8.18.0"; | 6256 | 6265 |
| 6257 | 6266 | Parser.acorn = { | 6258 | 6267 | Parser: Parser, | |
Collapse file Copy file name to clipboardExpand all lines: deps/acorn/acorn/package.json +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
| 16 | 16 | ], | 17 | 17 | "./package.json": "./package.json" | 18 | 18 | }, | 19 | | - "version": "8.17.0", | | 19 | + "version": "8.18.0", | 20 | 20 | "engines": { | 21 | 21 | "node": ">=0.4.0" | 22 | 22 | }, | |
Collapse file Copy file name to clipboardExpand all lines: src/acorn_version.h +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
| 2 | 2 | // Refer to tools/dep_updaters/update-acorn.sh | 3 | 3 | #ifndef SRC_ACORN_VERSION_H_ | 4 | 4 | #define SRC_ACORN_VERSION_H_ | 5 | | -#define ACORN_VERSION "8.17.0" | | 5 | +#define ACORN_VERSION "8.18.0" | 6 | 6 | #endif // SRC_ACORN_VERSION_H_ |
|