This tests that arrays have holes that you can see the prototype through, not just missing values.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS var a = []; a.length = 1; showHoles(a) is '[hole]'
PASS var a = []; a[0] = undefined; showHoles(a) is '[undefined]'
PASS var a = []; a[0] = undefined; delete a[0]; showHoles(a) is '[hole]'
PASS showHoles([0, , 2]) is '[0, hole, 2]'
PASS showHoles([0, 1, ,]) is '[0, 1, hole]'
PASS showHoles([0, , 2].concat([3, , 5])) is '[0, hole, 2, 3, hole, 5]'
PASS showHoles([0, , 2, 3].reverse()) is '[3, 2, hole, 0]'
PASS a = [0, , 2, 3]; a.shift(); showHoles(a) is '[hole, 2, 3]'
PASS showHoles([0, , 2, 3].slice(0, 3)) is '[0, hole, 2]'
PASS showHoles([0, , 2, 3].sort()) is '[0, 2, 3, hole]'
PASS showHoles([0, undefined, 2, 3].sort()) is '[0, 2, 3, undefined]'
PASS a = [0, , 2, 3]; a.splice(2, 3, 5, 6); showHoles(a) is '[0, hole, 5, 6]'
PASS a = [0, , 2, 3]; a.unshift(4); showHoles(a) is '[4, 0, hole, 2, 3]'
PASS showHoles([0, , 2, 3].filter(returnTrue)) is '[0, 2, 3]'
PASS showHoles([0, undefined, 2, 3].filter(returnTrue)) is '[0, undefined, 2, 3]'
PASS showHoles([0, , 2, 3].map(returnTrue)) is '[true, hole, true, true]'
PASS showHoles([0, undefined, 2, 3].map(returnTrue)) is '[true, true, true, true]'
PASS a = []; [0, , 2, 3].every(addToArrayReturnTrue); showHoles(a) is '[0, 2, 3]'
PASS a = []; [0, undefined, 2, 3].every(addToArrayReturnTrue); showHoles(a) is '[0, undefined, 2, 3]'
PASS a = []; [0, , 2, 3].forEach(addToArray); showHoles(a) is '[0, 2, 3]'
PASS a = []; [0, undefined, 2, 3].forEach(addToArray); showHoles(a) is '[0, undefined, 2, 3]'
PASS a = []; [0, , 2, 3].some(addToArrayReturnFalse); showHoles(a) is '[0, 2, 3]'
PASS a = []; [0, undefined, 2, 3].some(addToArrayReturnFalse); showHoles(a) is '[0, undefined, 2, 3]'
PASS [0, , 2, 3].indexOf() is -1
PASS [0, undefined, 2, 3].indexOf() is 1
PASS [0, , 2, 3].lastIndexOf() is -1
PASS [0, undefined, 2, 3].lastIndexOf() is 1
PASS showHoles([0, , 2]) is '[0, hole, 2]'
PASS showHoles([0, 1, ,]) is '[0, 1, hole]'
PASS showHoles([0, , 2].concat([3, , 5])) is '[0, peekaboo, 2, 3, peekaboo, 5]'
PASS showHoles([0, , 2, 3].reverse()) is '[3, 2, peekaboo, 0]'
PASS a = [0, , 2, 3]; a.shift(); showHoles(a) is '[peekaboo, 2, 3]'
PASS showHoles([0, , 2, 3].slice(0, 3)) is '[0, peekaboo, 2]'
PASS showHoles([0, , 2, 3].sort()) is '[0, 2, 3, peekaboo]'
PASS showHoles([0, undefined, 2, 3].sort()) is '[0, 2, 3, undefined]'
PASS a = [0, , 2, 3]; a.splice(2, 3, 5, 6); showHoles(a) is '[0, hole, 5, 6]'
PASS a = [0, , 2, 3]; a.unshift(4); showHoles(a) is '[4, 0, peekaboo, 2, 3]'
PASS showHoles([0, , 2, 3].filter(returnTrue)) is '[0, peekaboo, 2, 3]'
PASS showHoles([0, undefined, 2, 3].filter(returnTrue)) is '[0, undefined, 2, 3]'
PASS showHoles([0, , 2, 3].map(returnTrue)) is '[true, true, true, true]'
PASS showHoles([0, undefined, 2, 3].map(returnTrue)) is '[true, true, true, true]'
PASS a = []; [0, , 2, 3].every(addToArrayReturnTrue); showHoles(a) is '[0, peekaboo, 2, 3]'
PASS a = []; [0, undefined, 2, 3].every(addToArrayReturnTrue); showHoles(a) is '[0, undefined, 2, 3]'
PASS a = []; [0, , 2, 3].forEach(addToArray); showHoles(a) is '[0, peekaboo, 2, 3]'
PASS a = []; [0, undefined, 2, 3].forEach(addToArray); showHoles(a) is '[0, undefined, 2, 3]'
PASS a = []; [0, , 2, 3].some(addToArrayReturnFalse); showHoles(a) is '[0, peekaboo, 2, 3]'
PASS a = []; [0, undefined, 2, 3].some(addToArrayReturnFalse); showHoles(a) is '[0, undefined, 2, 3]'
PASS [0, , 2, 3].indexOf() is -1
PASS [0, , 2, 3].indexOf('peekaboo') is 1
PASS [0, undefined, 2, 3].indexOf() is 1
PASS [0, , 2, 3].lastIndexOf() is -1
PASS [0, , 2, 3].lastIndexOf('peekaboo') is 1
PASS [0, undefined, 2, 3].lastIndexOf() is 1
PASS successfullyParsed is true

TEST COMPLETE

