| function shouldBe(actual, expected) | |
| { | |
| if (actual !== expected) | |
| throw new Error('bad value: ' + actual); | |
| } | |
| function gen1(value) | |
| { | |
| return 'he' + value; | |
| } | |
| noInline(gen1); | |
| function gen2(value) | |
| { | |
| return value + 'ld'; | |
| } | |
| noInline(gen2); | |
| function assign(object, name, value) | |
| { | |
| object[name] = value; | |
| } | |
| noInline(assign); | |
| for (var i = 0; i < 10000; ++i) { | |
| var object = {}; | |
| if (i % 2 === 0) { | |
| assign(object, gen1('llo'), 42); | |
| shouldBe(object.hello, 42); | |
| } else { | |
| assign(object, gen2('wor'), 42); | |
| shouldBe(object.world, 42); | |
| } | |
| } |