34 lines
575 B
JavaScript
34 lines
575 B
JavaScript
description(
|
|
"Tests correctness of method calls when the prototype is changed."
|
|
);
|
|
|
|
function Thingy() {
|
|
}
|
|
|
|
Thingy.prototype = {
|
|
foo: function() {
|
|
return 42;
|
|
}
|
|
};
|
|
|
|
function callFoo(o) {
|
|
return o.foo();
|
|
}
|
|
|
|
var o = new Thingy();
|
|
|
|
silentTestPass = true;
|
|
noInline(callFoo);
|
|
|
|
for (var i = 0; i < 200; i = dfgIncrement({f:callFoo, i:i + 1, n:100})) {
|
|
if (i == 150)
|
|
Thingy.prototype.foo = function() { return 56; }
|
|
var expected;
|
|
if (i < 150)
|
|
expected = 42;
|
|
else
|
|
expected = 56;
|
|
shouldBe("callFoo(o)", "" + expected);
|
|
}
|
|
|