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 0000000000000000000000000000000000000000..64085f275d2e79584413808022ebe6c26df5c963 --- /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 0000000000000000000000000000000000000000..1fe553699f22865e13707a06d1e0e6710875e3d5 --- /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 0000000000000000000000000000000000000000..24b4ad5d6730efa4cba701522380bd8a92f35c87 --- /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 0000000000000000000000000000000000000000..d33d4f95f2cb3fd52f5d9ea0a02b9531d1b51fba --- /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 0000000000000000000000000000000000000000..a2d7c559b02089055e5adfd42c5a87dd4d186c68 --- /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}';