< prev index next >
src/jdk/nashorn/internal/codegen/FoldConstants.java
Print this page
rev 1641 : 8144131: ArrayData.getInt implementations do not convert to int32
@@ -232,17 +232,21 @@
switch (parent.tokenType()) {
case ADD:
if (rhsInteger) {
literalNode = LiteralNode.newInstance(token, finish, rhs.getInt32());
+ } else if (rhsType.isLong()) {
+ literalNode = LiteralNode.newInstance(token, finish, rhs.getLong());
} else {
literalNode = LiteralNode.newInstance(token, finish, rhs.getNumber());
}
break;
case SUB:
if (rhsInteger && rhs.getInt32() != 0) { // @see test/script/basic/minuszero.js
literalNode = LiteralNode.newInstance(token, finish, -rhs.getInt32());
+ } else if (rhsType.isLong() && rhs.getLong() != 0L) {
+ literalNode = LiteralNode.newInstance(token, finish, -rhs.getLong());
} else {
literalNode = LiteralNode.newInstance(token, finish, -rhs.getNumber());
}
break;
case NOT:
< prev index next >