--- old/src/jdk/nashorn/internal/codegen/SpillObjectCreator.java 2016-01-20 14:14:39.715064503 +0100 +++ new/src/jdk/nashorn/internal/codegen/SpillObjectCreator.java 2016-01-20 14:14:39.635064504 +0100 @@ -109,8 +109,6 @@ //avoid blowing up the array if we can if (constantValue instanceof Integer) { arrayData = arrayData.set(index, ((Integer)constantValue).intValue(), false); - } else if (constantValue instanceof Long) { - arrayData = arrayData.set(index, ((Long)constantValue).longValue(), false); } else if (constantValue instanceof Double) { arrayData = arrayData.set(index, ((Double)constantValue).doubleValue(), false); } else { @@ -169,12 +167,12 @@ final int index = ArrayIndex.getArrayIndex(tuple.key); assert ArrayIndex.isValidArrayIndex(index); method.dup(); - method.load(ArrayIndex.toLongIndex(index)); - loadTuple(method, tuple); + loadIndex(method, ArrayIndex.toLongIndex(index)); + loadTuple(method, tuple, false); method.dynamicSetIndex(callSiteFlags); } else { method.dup(); - loadTuple(method, tuple); + loadTuple(method, tuple, false); method.dynamicSet(property.getKey(), codegen.getCallSiteFlags(), false); } }