--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/UnaryNode.java 2017-08-10 09:09:40.773698200 +0530 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/UnaryNode.java 2017-08-10 09:09:38.867602000 +0530 @@ -58,8 +58,8 @@ private static final List CAN_OVERFLOW = Collections.unmodifiableList( Arrays.asList(new TokenType[] { - TokenType.ADD, - TokenType.SUB, //negate + TokenType.POS, + TokenType.NEG, //negate TokenType.DECPREFIX, TokenType.DECPOSTFIX, TokenType.INCPREFIX, @@ -125,7 +125,7 @@ @Override public Type getWidestOperationType() { switch (tokenType()) { - case ADD: + case POS: final Type operandType = getExpression().getType(); if(operandType == Type.BOOLEAN) { return Type.INT; @@ -134,7 +134,7 @@ } assert operandType.isNumeric(); return operandType; - case SUB: + case NEG: // This might seems overly conservative until you consider that -0 can only be represented as a double. return Type.NUMBER; case NOT: @@ -182,8 +182,8 @@ switch (tokenType()) { case NEW: return false; - case ADD: - case SUB: + case POS: + case NEG: case NOT: case BIT_NOT: return expression.isLocal() && expression.getType().isJSPrimitive();