Verify Array.prototype.join() properties

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


Function properties
PASS typeof Array.prototype.join is "function"
PASS Array.prototype.join.name is "join"
PASS Array.prototype.join.length is 1
PASS Object.getOwnPropertyDescriptor(Array.prototype, 'join').configurable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype, 'join').enumerable is false
PASS Object.getOwnPropertyDescriptor(Array.prototype, 'join').writable is true
Int32 Array
PASS [1, 2, 3].join() is "1,2,3"
PASS [1, 2, 3].join('') is "123"
PASS [1, 2, 3].join('柰') is "1柰2柰3"
Double Array
PASS [Math.PI, Math.E, 6.626].join() is "3.141592653589793,2.718281828459045,6.626"
PASS [Math.PI, Math.E, 6.626].join('') is "3.1415926535897932.7182818284590456.626"
PASS [Math.PI, Math.E, 6.626].join('柰') is "3.141592653589793柰2.718281828459045柰6.626"
Contiguous Array
PASS [1, 'WebKit', { toString: () => { return 'IsIncredible'} }].join() is "1,WebKit,IsIncredible"
PASS [1, 'WebKit', { toString: () => { return 'IsIncredible'} }].join('') is "1WebKitIsIncredible"
PASS [1, 'WebKit', { toString: () => { return 'IsIncredible'} }].join('柰') is "1柰WebKit柰IsIncredible"
Sparse Array
PASS smallSparseArray.join() is "WebKit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15"
PASS smallSparseArray.join('') is "WebKit15"
PASS smallSparseArray.join('柰') is "WebKit柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰柰15"
PASS largeSparseArray1.join('') is "WebKit42"
PASS largeSparseArray2.join('') is "WebKit42"
Out of memory
PASS oversizedArray.join('') threw exception RangeError: Out of memory.
ToLength is called first on "this", followed by ToString on the separator. Followed by ToString on each element.
PASS Array.prototype.join.call(calleeObject, separatorObject) is "WebKit0柰WebKit1"
PASS callSequence.join(', ') is "calle.length, length.valueOf, separator.toString, calle.get 0, index0.toString, calle.get 1, index0.toString"
We use ToLength on the object's length, not ToInt32 or ToUInt32.
PASS Array.prototype.join.call(lengthyObject) is ""
PASS Array.prototype.join.call(lengthyObject) is ""
PASS Array.prototype.join.call(lengthyObject) is ""
PASS successfullyParsed is true

TEST COMPLETE

