function shouldBe(actual, expected)
{
    if (actual !== expected)
        throw new Error('bad value: ' + actual);
}

function assign(object, name, value)
{
    object[name] = value;
}
noInline(assign);

var string = 'hello';
for (var i = 0; i < 10001; ++i) {
    var object = {};
    if (i === 10000) {
        assign(object, 42, 42);
        shouldBe(object[42], 42);
        shouldBe(object.hello, undefined);
    } else {
        assign(object, string, 42);
        shouldBe(object[string], 42);
    }
}

