summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/generators/es6-syntax.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/jit-test/tests/generators/es6-syntax.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/jit-test/tests/generators/es6-syntax.js')
-rw-r--r--js/src/jit-test/tests/generators/es6-syntax.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/generators/es6-syntax.js b/js/src/jit-test/tests/generators/es6-syntax.js
new file mode 100644
index 000000000..e805a0b62
--- /dev/null
+++ b/js/src/jit-test/tests/generators/es6-syntax.js
@@ -0,0 +1,34 @@
+// Test interactions between ES6 generators and not-yet-standard
+// features.
+
+function assertSyntaxError(str) {
+ var msg;
+ var evil = eval;
+ try {
+ // Non-direct eval.
+ evil(str);
+ } catch (exc) {
+ if (exc instanceof SyntaxError)
+ return;
+ msg = "Assertion failed: expected SyntaxError, got " + exc;
+ }
+ if (msg === undefined)
+ msg = "Assertion failed: expected SyntaxError, but no exception thrown";
+ throw new Error(msg + " - " + str);
+}
+
+// Destructuring binding.
+assertSyntaxError("function* f(x = yield) {}");
+assertSyntaxError("function* f(x = yield 17) {}");
+assertSyntaxError("function* f([yield]) {}");
+assertSyntaxError("function* f({ yield }) {}");
+assertSyntaxError("function* f(...yield) {}");
+
+// For each.
+assertSyntaxError("for yield");
+assertSyntaxError("for yield (;;) {}");
+assertSyntaxError("for yield (x of y) {}");
+assertSyntaxError("for yield (var i in o) {}");
+
+// Expression bodies.
+assertSyntaxError("function* f() yield 7");