[parser] Disallow numeric separators in legacy octal like inte… (#10493)
* Disallow numeric separators in lols * Update whitelist * Rename test * Better syntax when checking
This commit is contained in:
parent
eaa1474541
commit
490798a26d
@ -1035,8 +1035,8 @@ export default class Tokenizer extends LocationParser {
|
|||||||
next = this.input.charCodeAt(this.state.pos);
|
next = this.input.charCodeAt(this.state.pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
// disallow numeric separators in non octal decimals
|
// disallow numeric separators in non octal decimals and legacy octal likes
|
||||||
if (this.hasPlugin("numericSeparator") && isNonOctalDecimalInt) {
|
if (this.hasPlugin("numericSeparator") && (octal || isNonOctalDecimalInt)) {
|
||||||
const underscorePos = this.input
|
const underscorePos = this.input
|
||||||
.slice(start, this.state.pos)
|
.slice(start, this.state.pos)
|
||||||
.indexOf("_");
|
.indexOf("_");
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
00_0
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{ "throws": "Numeric separator can not be used after leading 0 (1:2)" }
|
||||||
@ -104,12 +104,6 @@ language/expressions/object/method-definition/private-name-early-error-gen-insid
|
|||||||
language/expressions/object/method-definition/private-name-early-error-gen-inside-class.js(strict mode)
|
language/expressions/object/method-definition/private-name-early-error-gen-inside-class.js(strict mode)
|
||||||
language/expressions/object/method-definition/private-name-early-error-method-inside-class.js(default)
|
language/expressions/object/method-definition/private-name-early-error-method-inside-class.js(default)
|
||||||
language/expressions/object/method-definition/private-name-early-error-method-inside-class.js(strict mode)
|
language/expressions/object/method-definition/private-name-early-error-method-inside-class.js(strict mode)
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-00-err.js(default)
|
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-01-err.js(default)
|
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-07-err.js(default)
|
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_0-err.js(default)
|
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_1-err.js(default)
|
|
||||||
language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_7-err.js(default)
|
|
||||||
language/module-code/privatename-not-valid-earlyerr-module-1.js(default)
|
language/module-code/privatename-not-valid-earlyerr-module-1.js(default)
|
||||||
language/module-code/privatename-not-valid-earlyerr-module-1.js(strict mode)
|
language/module-code/privatename-not-valid-earlyerr-module-1.js(strict mode)
|
||||||
language/module-code/privatename-not-valid-earlyerr-module-2.js(default)
|
language/module-code/privatename-not-valid-earlyerr-module-2.js(default)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user