"use strict";

function assertGood(x) {
    assertEq(x, "good");
}

(function() {
    var a = arguments;
    return function() {
        assertGood.apply(null, a);
    }
})("good")();

(function() {
    var a = arguments;
    return function() {
        a[0] = "good";
        assertGood.apply(null, a);
    }
})("bad")();

Object.prototype[0] = "good";

(function() {
    var a = arguments;
    return function() {
        delete a[0];
        assertGood.apply(null, a);
    }
})("bad")();

delete Object.prototype[0];

function assertUndefined(x) {
    assertEq(x, undefined);
}

(function() {
    var a = arguments;
    return function() {
        a[0] = "bad";
        assertUndefined.apply(null, a);
    }
})()();