NativeJavaMethod overloadCache was not sychonized on traversal which could lead to potential ConcurrentModificationException. Replaced the LinkedList implementation with CopyOnWriteArrayList which is guaranteed not to throw a ConcurrentModificationException during iteration.
…edeclaration error") initScript() only needs to special case the 'var' case for eval'ed code. Also throw a catchable TypeError when redeclaring a constant instead of calling Context.reportRuntimeError1().
…d]") To ensure a user-friendly representation is being used, ScriptRuntime.toString() is now called for each argument. Also added undefDeleteError() to get all undefXError() code at a single location in the ScriptRuntime class.
Not-defined and undefined elements are sorted to the end, cf. Array.prototype.sort [126.96.36.199] the SortCompare abstract operation steps 3-12. The previous implementation had two bugs: - same references (per Java == operator) were never compared - not-defined and undefined elements were treated as equal elements, although not-defined elements must appear after undefined elements in the sorted array
… cf. js1_5/Regress/regress-319391.js for a test case
…hout any overflow checks, this may result in a negative length which then throws a NegativeArraySizeException in Java, cf. js1_5/Array/regress-157652.js . A similar problem was found in NativeJSON, so I've handled that as well
…ses to take account of object destructuring parameters