goofy-function-reentry-incorrect-inference.js   [plain text]


function foo(a) {
    var x;
    if (a)
        x = a;
    return [function() {
        return x;
    }, function(a) {
        x = a;
    }];
}

var array = foo(false);
noInline(array[0]);
noInline(array[1]);
array[1](42);
for (var i = 0; i < 10000; ++i) {
    var result = array[0]();
    if (result != 42)
        throw "Error: bad result in loop: " + result;
}

array[1](43);
var result = array[0]();
if (result != 43)
    throw "Error: bad result at end: " + result;