summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/bug646968-6.js
blob: 11b1fa1c18e53496b4175f6b33d5a8c7cb496ef3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// In `for (let x = EXPR; ;)`, if `x` appears within EXPR, it refers to the
// loop variable. Actually doing this is typically a TDZ error.

load(libdir + "asserts.js");

assertThrowsInstanceOf(() => {
    for (let x = x; null.foo; null.foo++) {}
}, ReferenceError);

assertThrowsInstanceOf(() => {
    for (let x = eval('x'); null.foo; null.foo++) {}
}, ReferenceError);

assertThrowsInstanceOf(() => {
    for (let x = function () { with ({}) return x; }(); null.foo; null.foo++) {}
}, ReferenceError);