The following testcase asserts on TI revision 693a36f402ee (can be run without any options), tested on 64 bit: var length = 4294967295; var array1 = Array(length); array1.pop();
Bogus assert, we used setDenseArrayLength in array_pop_dense whose input should fit in an int32 as TI isn't informed if the length overflows an int32 (inference needs to know about arrays whose length may not fit in an int32). However, in this case the old length was already a uint32 so no update is needed. http://hg.mozilla.org/projects/jaegermonkey/rev/2649e0f0049f
A testcase for this bug was automatically identified at js/src/jit-test/tests/basic/bug657245.js.