infer-constant-global-property.js   [plain text]


function foo(p) {
    if (p)
        Math = {sin: function() { return 42; }, PI: 43, abs: Math.abs};
}

noInline(foo);

(function() {
    var n = 100000;
    var m = 100;
    var result = 0;
    for (var i = 0; i < n; ++i) {
        foo(i == n - m);
        result += Math.sin(Math.PI);
    }
    if (Math.abs(result - m * 42) > 1e-8)
        throw "Error: bad result: " + result;
})();