This test checks that functions on the array prototype correctly handle exceptions from length getters when called on non-array objects.

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


PASS test(Array.prototype.join) is true
PASS test(Array.prototype.pop) is true
PASS test(Array.prototype.push) is true
PASS test(Array.prototype.reverse) is true
PASS test(Array.prototype.shift) is true
PASS test(Array.prototype.slice) is true
PASS test(Array.prototype.sort) is true
PASS test(Array.prototype.splice) is true
PASS test(Array.prototype.unshift) is true
PASS test(Array.prototype.indexOf) is true
PASS test(Array.prototype.lastIndexOf) is true
PASS test(Array.prototype.every) is true
PASS test(Array.prototype.some) is true
PASS test(Array.prototype.forEach) is true
PASS test(Array.prototype.map) is true
PASS test(Array.prototype.filter) is true
PASS test(Array.prototype.reduce) is true
PASS test(Array.prototype.reduceRight) is true
PASS successfullyParsed is true

TEST COMPLETE

