--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java 2015-12-10 13:50:59.532614983 +0100 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java 2015-12-10 13:50:59.400614984 +0100 @@ -131,7 +131,6 @@ UNDEFINED(Type.UNDEFINED), BOOLEAN(Type.BOOLEAN), INT(Type.INT), - LONG(Type.LONG), DOUBLE(Type.NUMBER), OBJECT(Type.OBJECT); @@ -272,12 +271,9 @@ } private static class SymbolConversions { - private static final byte I2L = 1 << 0; - private static final byte I2D = 1 << 1; - private static final byte I2O = 1 << 2; - private static final byte L2D = 1 << 3; - private static final byte L2O = 1 << 4; - private static final byte D2O = 1 << 5; + private static final byte I2D = 1 << 0; + private static final byte I2O = 1 << 1; + private static final byte D2O = 1 << 2; private byte conversions; @@ -288,9 +284,6 @@ case INT: case BOOLEAN: switch (to) { - case LONG: - recordConversion(I2L); - return; case DOUBLE: recordConversion(I2D); return; @@ -301,18 +294,6 @@ illegalConversion(from, to); return; } - case LONG: - switch (to) { - case DOUBLE: - recordConversion(L2D); - return; - case OBJECT: - recordConversion(L2O); - return; - default: - illegalConversion(from, to); - return; - } case DOUBLE: if(to == LvarType.OBJECT) { recordConversion(D2O); @@ -340,26 +321,15 @@ if(hasConversion(D2O)) { symbol.setHasSlotFor(Type.NUMBER); } - if(hasConversion(L2O)) { - symbol.setHasSlotFor(Type.LONG); - } if(hasConversion(I2O)) { symbol.setHasSlotFor(Type.INT); } } if(symbol.hasSlotFor(Type.NUMBER)) { - if(hasConversion(L2D)) { - symbol.setHasSlotFor(Type.LONG); - } if(hasConversion(I2D)) { symbol.setHasSlotFor(Type.INT); } } - if(symbol.hasSlotFor(Type.LONG)) { - if(hasConversion(I2L)) { - symbol.setHasSlotFor(Type.INT); - } - } } } @@ -378,7 +348,7 @@ if(lvarType != null) { return lvarType; } - assert type.isObject(); + assert type.isObject() : "Unsupported primitive type: " + type; return LvarType.OBJECT; } private static LvarType widestLvarType(final LvarType t1, final LvarType t2) {