*** Freezing >>> Push test Pushing 0 to 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter x.length === 3 (should be 3) x[3] === undefined (should be 0) x[4] === undefined (should be undefined) >>> Pop test Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter x.length === 3 (should be 3) x === 1,2,3 Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter x.length === 3 (should be 3) x === 1,2,3 class jdk.nashorn.internal.runtime.arrays.FrozenArrayFilter *** Other length not writable issues >>> Push test Pushing 0 to 1,2,3 caught errorTypeError: "length" is not a writable property of [object Array] array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter x.length === 3 (should be 3) x[3] === 0 (should be 0) x[4] === undefined (should be undefined) >>> Pop test Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter x.length === 3 (should be 3) x === 1,2,3 Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Popping from 1,2,3 array is now [1,2,3] length is = 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter x.length === 3 (should be 3) x === 1,2,3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 0 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 1 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 2 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter array writing 0-3, with 1 stride, array = 0 length = 1, but elements are: 0 undefined 2 initial length = 1 Writing 0 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 3 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 6 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 9 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 12 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 15 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 18 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 21 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 24 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Writing 27 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter array writing 0-20, with 3 stride, array = 0 length = 1, but elements are: 0 undefined undefined 0 has length 1 class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter adding a new element high up in the array length before element was added 1 putting sparse at 2147483637 length after element was added 1 should be the same class jdk.nashorn.internal.runtime.arrays.LengthNotWritableFilter Printing arr2 - this will fail if length is > 28 and it is 1 arr2 = [0] new length that should not be writable = 1 true sparse 0 undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined 0:0 2147483637:sparse Checking if push works for bulkable non bulkable arrays - Setting length property not allowed 1 should be 1 bar should be bar [bar] should be [bar] 1 should STILL be 1 bar should be bar baz should be baz [bar] should be [bar] Checking if push works for bulkable non bulkable arrays - Setting length property not allowed 1 should be 1 bar should be bar [bar] should be [bar] got TypeError when redefining length, as expected Checking if push works for bulkable non bulkable arrays - Setting length property not allowed 1 should be 1 bar should be bar [bar] should be [bar] 2 should be 2 bar should be bar baz should be baz [bar,baz] should be [bar,baz] Done