js/src/jit-test/tests/generators/es6-syntax.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Test interactions between ES6 generators and not-yet-standard
     2 // features.
     4 function assertSyntaxError(str) {
     5     var msg;
     6     var evil = eval;
     7     try {
     8         // Non-direct eval.
     9         evil(str);
    10     } catch (exc) {
    11         if (exc instanceof SyntaxError)
    12             return;
    13         msg = "Assertion failed: expected SyntaxError, got " + exc;
    14     }
    15     if (msg === undefined)
    16         msg = "Assertion failed: expected SyntaxError, but no exception thrown";
    17     throw new Error(msg + " - " + str);
    18 }
    20 // Destructuring binding.
    21 assertSyntaxError("function* f(x = yield) {}");
    22 assertSyntaxError("function* f(x = yield 17) {}");
    23 assertSyntaxError("function* f([yield]) {}");
    24 assertSyntaxError("function* f({ yield }) {}");
    25 assertSyntaxError("function* f(...yield) {}");
    27 // For each.
    28 assertSyntaxError("for yield");
    29 assertSyntaxError("for yield (;;) {}");
    30 assertSyntaxError("for yield (x of y) {}");
    31 assertSyntaxError("for yield (var i in o) {}");
    33 // Expression bodies.
    34 assertSyntaxError("function* f() yield 7");

mercurial