summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/let/syntax/escaped-let.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/let/syntax/escaped-let.js')
-rw-r--r--js/src/tests/test262/language/statements/let/syntax/escaped-let.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/let/syntax/escaped-let.js b/js/src/tests/test262/language/statements/let/syntax/escaped-let.js
new file mode 100644
index 0000000000..04c60ff840
--- /dev/null
+++ b/js/src/tests/test262/language/statements/let/syntax/escaped-let.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-grammar-notation
+description: >
+ The `let` contextual keyword must not contain Unicode escape sequences.
+info: |
+ Terminal symbols are shown
+ in fixed width font, both in the productions of the grammars and throughout this
+ specification whenever the text directly refers to such a terminal symbol. These
+ are to appear in a script exactly as written. All terminal symbol code points
+ specified in this way are to be understood as the appropriate Unicode code points
+ from the Basic Latin range, as opposed to any similar-looking code points from
+ other Unicode ranges.
+flags: [noStrict]
+---*/
+
+// Add a global property "let", so we won't get a runtime reference error below.
+this.let = 0;
+
+l\u0065t // ASI
+a;
+
+// If the parser treated the previous escaped "let" as a lexical declaration,
+// this variable declaration will result an early syntax error.
+var a;
+
+reportCompare(0, 0);