function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
function getByVal(object, name) | |
{ | |
return object[name]; | |
} | |
noInline(getByVal); | |
var value = 'lo'; | |
function getStr1() | |
{ | |
return "hel" + value; | |
} | |
noInline(getStr1); | |
function getStr2() | |
{ | |
return "hello"; | |
} | |
noInline(getStr2); | |
var object = { | |
hello: 42, | |
world: 50 | |
}; | |
for (var i = 0; i < 10000; ++i) | |
shouldBe(getByVal(object, i % 2 === 0 ? getStr1() : getStr2()), 42); | |
shouldBe(getByVal(object, 'world'), 50); |