blob: f6dcf19219e9113b0d8d80ee4a56c496f0060dc8 [file] [log] [blame]
function ropify(a,b,c) {
return a + b + c;
}
noInline(ropify);
function ropify2(a,b,c) {
return a + b + c;
}
noInline(ropify2);
let test = new String("test");
for (let i = 0; i < 100000; i++) {
if (ropify("a", "b", test) !== "abtest")
throw "wrong on warmup";
}
String.prototype[Symbol.toPrimitive] = function() { return "changed"; }
if (ropify("a", "b", test) !== "abchanged")
throw "watchpoint didn't fire";
// Test we don't start doing the wrong thing if the prototype chain has been mucked with.
for (let i = 0; i < 100000; i++) {
if (ropify2("a", "b", test) !== "abchanged")
throw "wrong on warmup";
}