Don't accept '\08' or '\09' in strict mode (#9769)
This commit is contained in:
parent
123fdfd314
commit
c7587c016e
@ -1213,7 +1213,13 @@ export default class Tokenizer extends LocationParser {
|
|||||||
octalStr = octalStr.slice(0, -1);
|
octalStr = octalStr.slice(0, -1);
|
||||||
octal = parseInt(octalStr, 8);
|
octal = parseInt(octalStr, 8);
|
||||||
}
|
}
|
||||||
if (octal > 0) {
|
this.state.pos += octalStr.length - 1;
|
||||||
|
const next = this.input.charCodeAt(this.state.pos);
|
||||||
|
if (
|
||||||
|
octalStr !== "0" ||
|
||||||
|
next === charCodes.digit8 ||
|
||||||
|
next === charCodes.digit9
|
||||||
|
) {
|
||||||
if (inTemplate) {
|
if (inTemplate) {
|
||||||
this.state.invalidTemplateEscapePosition = codePos;
|
this.state.invalidTemplateEscapePosition = codePos;
|
||||||
return null;
|
return null;
|
||||||
@ -1226,7 +1232,7 @@ export default class Tokenizer extends LocationParser {
|
|||||||
this.state.octalPosition = codePos;
|
this.state.octalPosition = codePos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.state.pos += octalStr.length - 1;
|
|
||||||
return String.fromCharCode(octal);
|
return String.fromCharCode(octal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -409,8 +409,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/expressions/template-literal/invalid-legacy-octal-escape-sequence.js(default)
|
|
||||||
language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js(strict mode)
|
|
||||||
language/expressions/template-literal/unicode-escape-nls-err.js(default)
|
language/expressions/template-literal/unicode-escape-nls-err.js(default)
|
||||||
language/expressions/template-literal/unicode-escape-nls-err.js(strict mode)
|
language/expressions/template-literal/unicode-escape-nls-err.js(strict mode)
|
||||||
language/identifiers/unicode-escape-nls-err.js(default)
|
language/identifiers/unicode-escape-nls-err.js(default)
|
||||||
@ -586,7 +584,6 @@ language/literals/regexp/u-unicode-esc-non-hex.js(default)
|
|||||||
language/literals/regexp/u-unicode-esc-non-hex.js(strict mode)
|
language/literals/regexp/u-unicode-esc-non-hex.js(strict mode)
|
||||||
language/literals/regexp/unicode-escape-nls-err.js(default)
|
language/literals/regexp/unicode-escape-nls-err.js(default)
|
||||||
language/literals/regexp/unicode-escape-nls-err.js(strict mode)
|
language/literals/regexp/unicode-escape-nls-err.js(strict mode)
|
||||||
language/literals/string/legacy-non-octal-escape-sequence-strict.js(strict mode)
|
|
||||||
language/literals/string/unicode-escape-nls-err-double.js(default)
|
language/literals/string/unicode-escape-nls-err-double.js(default)
|
||||||
language/literals/string/unicode-escape-nls-err-double.js(strict mode)
|
language/literals/string/unicode-escape-nls-err-double.js(strict mode)
|
||||||
language/literals/string/unicode-escape-nls-err-single.js(default)
|
language/literals/string/unicode-escape-nls-err-single.js(default)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user