Please review JDK-8068872: Nashorn JSON.parse drops numeric keys:

http://cr.openjdk.java.net/~hannesw/8068872/

The main issue here was that ArrayData.ensure should only update the length if the new index is greater or equal to the old length.

I also fixed two other related issues:

- ScriptObject.defineProperty(int, Object) must call doesNotHaveEnsureDelete (which marks new unused slots as deleted) after having called ensure. - There's no need to call ensure(length - 1) on a newly created ArrayData(length). I've removed two such cases.

Thanks,
Hannes

Reply via email to