var arr = [0,1,,3,4];
Object.prototype[2] = 2;

assertEq(arr.join(""), "01234");
assertEq(arr.join(","), "0,1,2,3,4");

arr[2] = "porkchops";
assertEq(arr.join("*"), "0*1*porkchops*3*4");

delete Object.prototype[2];
assertEq(arr.join("*"), "0*1*porkchops*3*4");

delete arr[2];
assertEq(arr.join("*"), "0*1**3*4");

Object.prototype[2] = null;
assertEq(arr.join("*"), "0*1**3*4");
Object.prototype[2] = undefined;
assertEq(arr.join("*"), "0*1**3*4");
arr[2] = null;
assertEq(arr.join("*"), "0*1**3*4");
arr[2] = undefined;
assertEq(arr.join("*"), "0*1**3*4");

var arr = new Array(10);
assertEq(arr.join(""), "");
assertEq(arr.join(), ",,,,,,,,,");
assertEq(arr.join("|"), "|||||||||");

arr[2] = "doubt";
assertEq(arr.join(","), ",,doubt,,,,,,,");

arr[9] = "failure";
assertEq(arr.join(","), ",,doubt,,,,,,,failure");

delete arr[2];
assertEq(arr.join(","), ",,,,,,,,,failure");

reportCompare(true, true);