description(
'Tests to ensure that activations mark their values correctly in the face of duplicate parameter names and does not crash.'
);

function gc()
{
    if (this.GCController)
        GCController.collect();
    else
        for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
            ({});
}

function eatRegisters(param)
{
    if (param > 10)
        return;
    eatRegisters(param + 1);
}

function test(a, c) {
    var b = ["success"], a, c;
    return function() {
        return b[0];
    }
}

var testClosure = test();

var extra = test();
eatRegisters(0);
gc();

shouldBe('testClosure()', '"success"');
