From d454b8389b07dae252c008adb64ae242b812c801 Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Thu, 13 May 2021 21:49:01 -0400 Subject: [PATCH] Move some AnnexB tests per proposed spec change Additionally, update test metadata and introduce two new tests to complete coverage. Reference: "Normative: Make B.1.{1,2} normative" https://github.com/tc39/ecma262/pull/1867 --- .../literals/regexp/legacy-octal-escape.js | 4 +- .../invalid-legacy-octal-escape-sequence-8.js | 14 ++++++- .../invalid-legacy-octal-escape-sequence-9.js | 14 ++++++- .../invalid-legacy-octal-escape-sequence.js | 14 ++++++- .../numeric/legacy-octal-integer-strict.js | 16 ++++++-- .../literals/numeric/legacy-octal-integer.js | 2 +- .../non-octal-decimal-integer-strict.js | 10 ++++- .../numeric/non-octal-decimal-integer.js | 2 +- ...scape-sequence-1-strict-explicit-pragma.js | 2 +- ...scape-sequence-2-strict-explicit-pragma.js | 2 +- ...scape-sequence-3-strict-explicit-pragma.js | 2 +- ...scape-sequence-4-strict-explicit-pragma.js | 2 +- ...scape-sequence-5-strict-explicit-pragma.js | 2 +- ...scape-sequence-6-strict-explicit-pragma.js | 2 +- ...scape-sequence-7-strict-explicit-pragma.js | 2 +- ...-non-octal-escape-sequence-8-non-strict.js | 19 +++++++++ ...scape-sequence-8-strict-explicit-pragma.js | 2 +- ...gacy-non-octal-escape-sequence-8-strict.js | 22 ++++++++--- ...-non-octal-escape-sequence-9-non-strict.js | 19 +++++++++ ...scape-sequence-9-strict-explicit-pragma.js | 2 +- ...gacy-non-octal-escape-sequence-9-strict.js | 22 ++++++++--- ...legacy-non-octal-escape-sequence-strict.js | 39 +++++++------------ .../legacy-octal-escape-sequence-strict.js | 39 +++++++------------ .../string/legacy-octal-escape-sequence.js | 4 +- 24 files changed, 172 insertions(+), 86 deletions(-) rename test/{annexB => }/language/literals/numeric/legacy-octal-integer.js (96%) rename test/{annexB => }/language/literals/numeric/non-octal-decimal-integer.js (98%) create mode 100644 test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js create mode 100644 test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js rename test/{annexB => }/language/literals/string/legacy-octal-escape-sequence.js (98%) diff --git a/test/annexB/language/literals/regexp/legacy-octal-escape.js b/test/annexB/language/literals/regexp/legacy-octal-escape.js index e0a4fac5e3..85885e16c1 100644 --- a/test/annexB/language/literals/regexp/legacy-octal-escape.js +++ b/test/annexB/language/literals/regexp/legacy-octal-escape.js @@ -20,8 +20,8 @@ info: | ZeroToThree OctalDigit OctalDigit The production CharacterEscape :: LegacyOctalEscapeSequence evaluates by - evaluating the SV of the LegacyOctalEscapeSequence (see B.1.2) and - returning its character result. + evaluating the SV of the LegacyOctalEscapeSequence and returning its + character result. ---*/ assert.sameValue(/\1/.exec('\x01')[0], '\x01', '\\1'); diff --git a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js index a4119588a9..cd2fbb191a 100644 --- a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js +++ b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js @@ -5,8 +5,18 @@ esid: sec-template-literal-lexical-components description: > Invalid octal escape sequence (regardless of the presence of Annex B) info: | - A conforming implementation must not use the extended definition of - EscapeSequence described in B.1.2 when parsing a TemplateCharacter. + TemplateCharacter :: + $ [lookahead ≠ {] + \ TemplateEscapeSequence + \ NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacter but not one of ` or \ or $ or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence negative: phase: parse type: SyntaxError diff --git a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js index fe69545b9a..f0be69b9ea 100644 --- a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js +++ b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js @@ -5,8 +5,18 @@ esid: sec-template-literal-lexical-components description: > Invalid octal escape sequence (regardless of the presence of Annex B) info: | - A conforming implementation must not use the extended definition of - EscapeSequence described in B.1.2 when parsing a TemplateCharacter. + TemplateCharacter :: + $ [lookahead ≠ {] + \ TemplateEscapeSequence + \ NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacter but not one of ` or \ or $ or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence negative: phase: parse type: SyntaxError diff --git a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js index 21923e5408..d3793ed0e1 100644 --- a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js +++ b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js @@ -4,8 +4,18 @@ es6id: 16.1 description: Invalid octal escape sequence info: | - TemplateCharacter (11.8.6) must not be extended to include - LegacyOctalEscapeSequence as defined in B.1.2. + TemplateCharacter :: + $ [lookahead ≠ {] + \ TemplateEscapeSequence + \ NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacter but not one of ` or \ or $ or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence negative: phase: parse type: SyntaxError diff --git a/test/language/literals/numeric/legacy-octal-integer-strict.js b/test/language/literals/numeric/legacy-octal-integer-strict.js index a14df1e559..f8f9c02aa2 100644 --- a/test/language/literals/numeric/legacy-octal-integer-strict.js +++ b/test/language/literals/numeric/legacy-octal-integer-strict.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-numeric-literals +esid: sec-literals-numeric-literals description: LegacyOctalIntegerLiteral is not enabled in strict mode code info: | NumericLiteral :: @@ -11,9 +11,17 @@ info: | HexIntegerLiteral LegacyOctalIntegerLiteral - LegacyOctalIntegerLiteral :: - 0 OctalDigit - LegacyOctalIntegerLiteral OctalDigit + LegacyOctalIntegerLiteral :: + 0 OctalDigit + LegacyOctalIntegerLiteral OctalDigit + + ## 12.8.3.1 Static Semantics: Early Errors + + NumericLiteral :: LegacyOctalIntegerLiteral + DecimalIntegerLiteral :: NonOctalDecimalIntegerLiteral + + - It is a Syntax Error if the source code matching this production is + strict mode code. flags: [onlyStrict] negative: phase: parse diff --git a/test/annexB/language/literals/numeric/legacy-octal-integer.js b/test/language/literals/numeric/legacy-octal-integer.js similarity index 96% rename from test/annexB/language/literals/numeric/legacy-octal-integer.js rename to test/language/literals/numeric/legacy-octal-integer.js index 96cddb847b..cd3be3b112 100644 --- a/test/annexB/language/literals/numeric/legacy-octal-integer.js +++ b/test/language/literals/numeric/legacy-octal-integer.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-numeric-literals +esid: sec-literals-numeric-literals description: Mathematical value for LegacyOctalIntegerLiteral info: | NumericLiteral :: diff --git a/test/language/literals/numeric/non-octal-decimal-integer-strict.js b/test/language/literals/numeric/non-octal-decimal-integer-strict.js index d7570f6123..446f885305 100644 --- a/test/language/literals/numeric/non-octal-decimal-integer-strict.js +++ b/test/language/literals/numeric/non-octal-decimal-integer-strict.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-numeric-literals +esid: sec-literals-numeric-literals description: NonOctalDecimalIntegerLiteral is not enabled in strict mode code info: | DecimalIntegerLiteral :: @@ -20,6 +20,14 @@ info: | NonOctalDigit :: one of 8 9 + + ## 12.8.3.1 Static Semantics: Early Errors + + NumericLiteral :: LegacyOctalIntegerLiteral + DecimalIntegerLiteral :: NonOctalDecimalIntegerLiteral + + - It is a Syntax Error if the source code matching this production is + strict mode code. flags: [onlyStrict] negative: phase: parse diff --git a/test/annexB/language/literals/numeric/non-octal-decimal-integer.js b/test/language/literals/numeric/non-octal-decimal-integer.js similarity index 98% rename from test/annexB/language/literals/numeric/non-octal-decimal-integer.js rename to test/language/literals/numeric/non-octal-decimal-integer.js index d0535df7d8..6905ba987f 100644 --- a/test/annexB/language/literals/numeric/non-octal-decimal-integer.js +++ b/test/language/literals/numeric/non-octal-decimal-integer.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-numeric-literals +esid: sec-literals-numeric-literals description: Mathematical value for NonOctalDecimalIntegerLiteral info: | DecimalIntegerLiteral :: diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js index 659d88e2a1..1ea37bb75c 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; ZeroToThree 1 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js index 434f3b954c..0b14624830 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; ZeroToThree 2 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js index 68c54a9a18..e118ba51f2 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; ZeroToThree 3 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js index 760c96bbcc..f5b0042792 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; FourToSeven 4 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js index 754f903d34..26e159552c 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; FourToSeven 5 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js index 7a2eb06a20..ffa4d14c6f 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; FourToSeven 6 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js index 2e65498e58..981625d03e 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; FourToSeven 7 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js b/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js new file mode 100644 index 0000000000..8886317c03 --- /dev/null +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js @@ -0,0 +1,19 @@ +// Copyright (C) 2021 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-string-literals +description: LegacyOctalEscapeSequence is not available in non-strict code - 8 +info: | + EscapeSequence :: + CharacterEscapeSequence + LegacyOctalEscapeSequence + NonOctalDecimalEscapeSequence + HexEscapeSequence + UnicodeEscapeSequence + + NonOctalDecimalEscapeSequence :: one of + 8 9 +flags: [noStrict] +---*/ + +assert.sameValue('\8', '8'); diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js index f2b19e355e..35ace83289 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; NonOctalDecimalEscapeSequence 8 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js b/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js index 492f0e2480..3917e634e7 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js @@ -2,12 +2,24 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-literals-string-literals -description: > - LegacyOctalEscapeSequence is not enabled in strict mode code - (regardless of the presence of Annex B) +description: LegacyOctalEscapeSequence is not enabled in strict mode code - 8 info: | - A conforming implementation, when processing strict mode code, must not extend the - syntax of EscapeSequence to include LegacyOctalEscapeSequence as described in B.1.2. + EscapeSequence :: + CharacterEscapeSequence + LegacyOctalEscapeSequence + NonOctalDecimalEscapeSequence + HexEscapeSequence + UnicodeEscapeSequence + + NonOctalDecimalEscapeSequence :: one of + 8 9 + + ## 12.8.4.1 Static Semantics: Early Errors + + EscapeSequence :: NonOctalDecimalEscapeSequence + + - It is a Syntax Error if the source code matching this production is strict + mode code. flags: [onlyStrict] negative: phase: parse diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js b/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js new file mode 100644 index 0000000000..68ad0a7164 --- /dev/null +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js @@ -0,0 +1,19 @@ +// Copyright (C) 2021 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-string-literals +description: LegacyOctalEscapeSequence is not available in non-strict code - 9 +info: | + EscapeSequence :: + CharacterEscapeSequence + LegacyOctalEscapeSequence + NonOctalDecimalEscapeSequence + HexEscapeSequence + UnicodeEscapeSequence + + NonOctalDecimalEscapeSequence :: one of + 8 9 +flags: [noStrict] +---*/ + +assert.sameValue('\9', '9'); diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js b/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js index cc945e9f4c..5858950135 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js @@ -1,7 +1,7 @@ // Copyright (C) 2020 Rick Waldron Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals +esid: sec-literals-string-literals description: > String Literals extensions disallowed in strict mode; NonOctalDecimalEscapeSequence 9 info: | diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js b/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js index bed527fbe9..c677c3c53a 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js @@ -2,12 +2,24 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-literals-string-literals -description: > - LegacyOctalEscapeSequence is not enabled in strict mode code - (regardless of the presence of Annex B) +description: LegacyOctalEscapeSequence is not enabled in strict mode code - 9 info: | - A conforming implementation, when processing strict mode code, must not extend the - syntax of EscapeSequence to include LegacyOctalEscapeSequence as described in B.1.2. + EscapeSequence :: + CharacterEscapeSequence + LegacyOctalEscapeSequence + NonOctalDecimalEscapeSequence + HexEscapeSequence + UnicodeEscapeSequence + + NonOctalDecimalEscapeSequence :: one of + 8 9 + + ## 12.8.4.1 Static Semantics: Early Errors + + EscapeSequence :: NonOctalDecimalEscapeSequence + + - It is a Syntax Error if the source code matching this production is strict + mode code. flags: [onlyStrict] negative: phase: parse diff --git a/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js b/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js index b4cca2ddd2..1743d4e26f 100644 --- a/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js +++ b/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js @@ -1,32 +1,21 @@ // Copyright (C) 2017 Kevin Gibbons. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals -es6id: B.1.2 -description: > - LegacyOctalEscapeSequence is not enabled in strict mode code (regardless of - the presence of Annex B) +esid: sec-template-literal-lexical-components +description: LegacyOctalEscapeSequence is not available in template literals info: | - EscapeSequence :: - CharacterEscapeSequence - LegacyOctalEscapeSequence - HexEscapeSequence - UnicodeEscapeSequence - - LegacyOctalEscapeSequence :: - OctalDigit [lookahead ∉ OctalDigit] - ZeroToThree OctalDigit [lookahead ∉ OctalDigit] - FourToSeven OctalDigit - ZeroToThree OctalDigit OctalDigit - - ZeroToThree :: one of - 0 1 2 3 - - FourToSeven :: one of - 4 5 6 7 - - This definition of EscapeSequence is not used in strict mode or when - parsing TemplateCharacter. + TemplateCharacter :: + $ [lookahead ≠ {] + \ TemplateEscapeSequence + \ NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacter but not one of ` or \ or $ or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence flags: [onlyStrict] negative: phase: parse diff --git a/test/language/literals/string/legacy-octal-escape-sequence-strict.js b/test/language/literals/string/legacy-octal-escape-sequence-strict.js index 4eb0ef9612..be603dd74c 100644 --- a/test/language/literals/string/legacy-octal-escape-sequence-strict.js +++ b/test/language/literals/string/legacy-octal-escape-sequence-strict.js @@ -1,32 +1,21 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals -es6id: B.1.2 -description: > - LegacyOctalEscapeSequence is not enabled in strict mode code (regardless of - the presence of Annex B) +esid: sec-template-literal-lexical-components +description: LegacyOctalEscapeSequence is not available in template literals info: | - EscapeSequence :: - CharacterEscapeSequence - LegacyOctalEscapeSequence - HexEscapeSequence - UnicodeEscapeSequence - - LegacyOctalEscapeSequence :: - OctalDigit [lookahead ∉ OctalDigit] - ZeroToThree OctalDigit [lookahead ∉ OctalDigit] - FourToSeven OctalDigit - ZeroToThree OctalDigit OctalDigit - - ZeroToThree :: one of - 0 1 2 3 - - FourToSeven :: one of - 4 5 6 7 - - This definition of EscapeSequence is not used in strict mode or when - parsing TemplateCharacter. + TemplateCharacter :: + $ [lookahead ≠ {] + \ TemplateEscapeSequence + \ NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacter but not one of ` or \ or $ or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence flags: [onlyStrict] negative: phase: parse diff --git a/test/annexB/language/literals/string/legacy-octal-escape-sequence.js b/test/language/literals/string/legacy-octal-escape-sequence.js similarity index 98% rename from test/annexB/language/literals/string/legacy-octal-escape-sequence.js rename to test/language/literals/string/legacy-octal-escape-sequence.js index 198f463073..d25a4e57a6 100644 --- a/test/annexB/language/literals/string/legacy-octal-escape-sequence.js +++ b/test/language/literals/string/legacy-octal-escape-sequence.js @@ -1,13 +1,13 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-additional-syntax-string-literals -es6id: B.1.2 +esid: sec-literals-string-literals description: String value for LegacyOctalEscapeSequence info: | EscapeSequence :: CharacterEscapeSequence LegacyOctalEscapeSequence + NonOctalDecimalEscapeSequence HexEscapeSequence UnicodeEscapeSequence