function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
function test1(obj) | |
{ | |
return "hello" in obj | |
} | |
noInline(test1); | |
let object1 = { | |
hello: 42 | |
}; | |
let object2 = { | |
cocoa: 44 | |
}; | |
for (let i = 0; i < 1e5; ++i) { | |
shouldBe(test1(object1), true); | |
shouldBe(test1(object2), false); | |
} | |
object2.hello = 44; | |
for (let i = 0; i < 1e5; ++i) { | |
shouldBe(test1(object1), true); | |
shouldBe(test1(object2), true); | |
} | |
// OSRExits. | |
for (let i = 0; i < 1e5; ++i) | |
shouldBe(test1({}), false); |