function assert(b, m) {
    if (!b)
        throw new Error(m);
}

function test4() {
    // scoped arguments
    function foo(o, i) {
        return o[i];
    }
    noInline(foo);

    function args(a, b) {
        function capture() { 
            return a + b;
        }
        return arguments;
    }

    let o1 = args(20, 30, 40);
    let o3 = {x:42}

    let start = Date.now();
    for (let i = 0; i < 8000000; ++i) {
        assert(foo(o1, 0) === 20);
        assert(foo(o1, 1) === 30);
        assert(foo(o1, 2) === 40);
        assert(foo(o1, 3) === undefined);
        assert(foo(o3, "x") === 42);
    }
}
test4();
