math-pow-becomes-custom-function.js   [plain text]


function mathPowWrapper(x, y) {
    return Math.pow(x, y);
}
noInline(mathPowWrapper);

function testChangingMathPow() {
    var result = 0;
    for (var i = 0; i < 10000; ++i) {
        result += mathPowWrapper(3, 2);
    }
    Math.pow = function(a, b) { return a + b; }
    for (var i = 0; i < 10000; ++i) {
        result += mathPowWrapper(3, 2);
    }
    if (result !== 140000)
        throw "Result = " + result + ", expected 140000";
}
testChangingMathPow();