function foo() { | |
return this.f; | |
} | |
noInline(foo); | |
String.prototype.f = 43; | |
String.prototype.g = foo; | |
Number.prototype.f = 78; | |
Number.prototype.g = foo; | |
for (var i = 0; i < 100000; ++i) { | |
var o = {f:foo}; | |
var result = o.f(); | |
if (result != foo) | |
throw "Error: bad object result: " + result; | |
o = "hello"; | |
result = o.g(); | |
if (result != 43) | |
throw "Error: bad string result: " + result; | |
o = 42; | |
result = o.g(); | |
if (result != 78) | |
throw "Error: bad number result: " + result; | |
} |