From 1e1d503c1bf42d88fc244ea411abc062d6a38fef Mon Sep 17 00:00:00 2001 From: Valerie Date: Wed, 28 Feb 2018 13:58:22 -0500 Subject: numeric literal seperators: test change in CodePoint production (#1464) --- .../template-literal/unicode-escape-nls-err.js | 55 ++++++++++++++++ .../language/identifiers/unicode-escape-nls-err.js | 48 ++++++++++++++ .../literals/regexp/unicode-escape-nls-err.js | 73 ++++++++++++++++++++++ .../string/unicode-escape-nls-err-double.js | 49 +++++++++++++++ .../string/unicode-escape-nls-err-single.js | 49 +++++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 test/language/expressions/template-literal/unicode-escape-nls-err.js create mode 100644 test/language/identifiers/unicode-escape-nls-err.js create mode 100644 test/language/literals/regexp/unicode-escape-nls-err.js create mode 100644 test/language/literals/string/unicode-escape-nls-err-double.js create mode 100644 test/language/literals/string/unicode-escape-nls-err-single.js (limited to 'test') diff --git a/test/language/expressions/template-literal/unicode-escape-nls-err.js b/test/language/expressions/template-literal/unicode-escape-nls-err.js new file mode 100644 index 000000000..64085f275 --- /dev/null +++ b/test/language/expressions/template-literal/unicode-escape-nls-err.js @@ -0,0 +1,55 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-Template +description: NumericLiteralSeperator disallowed in unicode CodePoint sequence +info: | + Template :: + NoSubstitutionTemplate + TemplateHead + + NoSubstitutionTemplate :: + `TemplateCharactersopt` + + TemplateCharacters :: + TemplateCharacterTemplateCharactersopt + + TemplateCharacter :: + $[lookahead ≠ {] + \EscapeSequence + \NotEscapeSequence + LineContinuation + LineTerminatorSequence + SourceCharacterbut not one of ` or \ or $ or LineTerminator + + EscapeSequence :: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence + + UnicodeEscapeSequence :: + uHex4Digits + u{CodePoint} + + CodePoint :: + HexDigit but only if MV of HexDigits ≤ 0x10FFFF + CodePointDigits but only if MV of HexDigits ≤ 0x10FFFF + + CodePointDigits :: + HexDigit + CodePointDigitsHexDigit + + HexDigit :: one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +`\u{1F_639}`; diff --git a/test/language/identifiers/unicode-escape-nls-err.js b/test/language/identifiers/unicode-escape-nls-err.js new file mode 100644 index 000000000..1fe553699 --- /dev/null +++ b/test/language/identifiers/unicode-escape-nls-err.js @@ -0,0 +1,48 @@ +// Copyright (C) 2014 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: prod-Identifier +description: NumericLiteralSeperator disallowed in unicode CodePoint escape sequence +info: | + Identifier: + IdentifierName but not ReservedWord + + IdentifierName :: + IdentifierStart + IdentifierNameIdentifierPart + + IdentifierStart :: + UnicodeIDStart + $ + _ + \UnicodeEscapeSequence + + IdentifierPart :: + UnicodeIDContinue + $ + \UnicodeEscapeSequence + + UnicodeEscapeSequence :: + uHex4Digits + u{CodePoint} + + CodePoint :: + HexDigit but only if MV of HexDigits ≤ 0x10FFFF + CodePointDigits but only if MV of HexDigits ≤ 0x10FFFF + + CodePointDigits :: + HexDigit + CodePointDigitsHexDigit + + HexDigit :: one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +var \u{00_76} = 1; diff --git a/test/language/literals/regexp/unicode-escape-nls-err.js b/test/language/literals/regexp/unicode-escape-nls-err.js new file mode 100644 index 000000000..24b4ad5d6 --- /dev/null +++ b/test/language/literals/regexp/unicode-escape-nls-err.js @@ -0,0 +1,73 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-Pattern +description: NumericLiteralSeperator disallowed in unicode CodePoint sequence +info: | + Pattern[U, N]:: + Disjunction[?U, ?N] + + Disjunction[U, N]:: + Alternative[?U, ?N] + Alternative[?U, ?N]|Disjunction[?U, ?N] + + Alternative[U, N]:: + [empty] + Alternative[?U, ?N]Term[?U, ?N] + + Term[U, N]:: + Assertion[?U, ?N] + Atom[?U, ?N] + Atom[?U, ?N]Quantifier + + Atom[U, N]:: + PatternCharacter + . + \AtomEscape[?U, ?N] + CharacterClass[?U] + (GroupSpecifier[?U]Disjunction[?U, ?N]) + (?:Disjunction[?U, ?N]) + + AtomEscape[U, N]:: + DecimalEscape + CharacterClassEscape[?U] + CharacterEscape[?U] + [+N]kGroupName[?U] + + CharacterEscape[U]:: + ControlEscape + cControlLetter + 0[lookahead ∉ DecimalDigit] + HexEscapeSequence + RegExpUnicodeEscapeSequence[?U] + IdentityEscape[?U] + + RegExpUnicodeEscapeSequence[U]:: + [+U]uLeadSurrogate\uTrailSurrogate + [+U]uLeadSurrogate + [+U]uTrailSurrogate + [+U]uNonSurrogate + [~U]uHex4Digits + [+U]u{CodePoint} + + CodePoint :: + HexDigit but only if MV of HexDigits ≤ 0x10FFFF + CodePointDigits but only if MV of HexDigits ≤ 0x10FFFF + + CodePointDigits :: + HexDigit + CodePointDigitsHexDigit + + HexDigit :: one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +/\u{1F_639}/u; diff --git a/test/language/literals/string/unicode-escape-nls-err-double.js b/test/language/literals/string/unicode-escape-nls-err-double.js new file mode 100644 index 000000000..d33d4f95f --- /dev/null +++ b/test/language/literals/string/unicode-escape-nls-err-double.js @@ -0,0 +1,49 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-StringLiteral +description: NumericLiteralSeperator disallowed in unicode CodePoint sequence (DoubleStringCharacters) +info: | + StringLiteral:: + "DoubleStringCharacters opt" + 'SingleStringCharacters opt' + + DoubleStringCharacters:: + DoubleStringCharacter DoubleStringCharacters opt + + DoubleStringCharacter:: + SourceCharacter but not one of " or \ or LineTerminator + \ EscapeSequence + LineContinuation + + EscapeSequence:: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence + + UnicodeEscapeSequence :: + uHex4Digits + u{CodePoint} + + CodePoint :: + HexDigit but only if MV of HexDigits ≤ 0x10FFFF + CodePointDigits but only if MV of HexDigits ≤ 0x10FFFF + + CodePointDigits :: + HexDigit + CodePointDigitsHexDigit + + HexDigit :: one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +"\u{1F_639}" diff --git a/test/language/literals/string/unicode-escape-nls-err-single.js b/test/language/literals/string/unicode-escape-nls-err-single.js new file mode 100644 index 000000000..a2d7c559b --- /dev/null +++ b/test/language/literals/string/unicode-escape-nls-err-single.js @@ -0,0 +1,49 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-StringLiteral +description: NumericLiteralSeperator disallowed in unicode CodePoint sequence (DoubleStringCharacters) +info: | + StringLiteral:: + "DoubleStringCharacters opt" + 'SingleStringCharacters opt' + + SingleStringCharacters:: + SingleStringCharacterSingleStringCharactersopt + + SingleStringCharacter:: + SourceCharacterbut not one of ' or \ or LineTerminator + \ EscapeSequence + LineContinuation + + EscapeSequence:: + CharacterEscapeSequence + 0 [lookahead ∉ DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence + + UnicodeEscapeSequence :: + uHex4Digits + u{CodePoint} + + CodePoint :: + HexDigit but only if MV of HexDigits ≤ 0x10FFFF + CodePointDigits but only if MV of HexDigits ≤ 0x10FFFF + + CodePointDigits :: + HexDigit + CodePointDigitsHexDigit + + HexDigit :: one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +'\u{1F_639}'; -- cgit v1.2.1