//@ skip if $architecture == "x86"

"use strict";

var n = 1000000;

function shouldThrowTDZ(func) {
    var hasThrown = false;
    try {
        func();
    } catch(e) {
        if (e.name.indexOf("ReferenceError") !== -1)
            hasThrown = true;
    }
    if (!hasThrown)
        throw new Error("Did not throw TDZ error");
}

function bar(f) { }

function foo(b) {
    let result = 0;
    var set =  (x) => { result = x; return tdzPerpetrator; }
    if (b) {
        OSRExit();
        if (b) {
            bar(set);
            return tdzPerpetrator;
        }
    }
    let tdzPerpetrator;
    return result;
}

noInline(bar);
noInline(foo);
noInline(shouldThrowTDZ);

for (var i = 0; i < n; i++) {
    var bool = !(i % 100);
    if (bool)
        shouldThrowTDZ(()=> { foo(bool); });
    else {
        var result = foo(bool);
        if (result != 0)
            throw "Error: bad result: " + result;
    }
}
