[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:
Gonzalo Rodríguez 2019-09-24 19:32:50 -04:00 committed by Nicolò Ribaudo
parent eaa1474541
commit 490798a26d
4 changed files with 4 additions and 8 deletions

View File

@ -1035,8 +1035,8 @@ export default class Tokenizer extends LocationParser {
next = this.input.charCodeAt(this.state.pos);
}
// disallow numeric separators in non octal decimals
if (this.hasPlugin("numericSeparator") && isNonOctalDecimalInt) {
// disallow numeric separators in non octal decimals and legacy octal likes
if (this.hasPlugin("numericSeparator") && (octal || isNonOctalDecimalInt)) {
const underscorePos = this.input
.slice(start, this.state.pos)
.indexOf("_");

View File

@ -0,0 +1 @@
{ "throws": "Numeric separator can not be used after leading 0 (1:2)" }

View File

@ -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-method-inside-class.js(default)
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(strict mode)
language/module-code/privatename-not-valid-earlyerr-module-2.js(default)