diff -r 8c74590d5df1 -r f726e9d67629 nashorn/src/jdk/nashorn/internal/codegen/WeighNodes.java --- a/nashorn/src/jdk/nashorn/internal/codegen/WeighNodes.java Tue Feb 25 18:56:10 2014 +0530 +++ b/nashorn/src/jdk/nashorn/internal/codegen/WeighNodes.java Wed Feb 26 13:17:57 2014 +0100 @@ -27,7 +27,6 @@ import java.util.List; import java.util.Map; -import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.ir.AccessNode; import jdk.nashorn.internal.ir.BinaryNode; import jdk.nashorn.internal.ir.Block; @@ -69,24 +68,25 @@ * Weight constants. */ static final long FUNCTION_WEIGHT = 40; - static final long AASTORE_WEIGHT = 2; - static final long ACCESS_WEIGHT = 4; + static final long AASTORE_WEIGHT = 2; + static final long ACCESS_WEIGHT = 4; static final long ADD_WEIGHT = 10; - static final long BREAK_WEIGHT = 1; + static final long BREAK_WEIGHT = 1; static final long CALL_WEIGHT = 10; static final long CATCH_WEIGHT = 10; - static final long CONTINUE_WEIGHT = 1; - static final long IF_WEIGHT = 2; + static final long COMPARE_WEIGHT = 6; + static final long CONTINUE_WEIGHT = 1; + static final long IF_WEIGHT = 2; static final long LITERAL_WEIGHT = 10; - static final long LOOP_WEIGHT = 4; - static final long NEW_WEIGHT = 6; + static final long LOOP_WEIGHT = 4; + static final long NEW_WEIGHT = 6; static final long FUNC_EXPR_WEIGHT = 20; - static final long RETURN_WEIGHT = 2; + static final long RETURN_WEIGHT = 2; static final long SPLIT_WEIGHT = 40; - static final long SWITCH_WEIGHT = 8; - static final long THROW_WEIGHT = 2; + static final long SWITCH_WEIGHT = 8; + static final long THROW_WEIGHT = 2; static final long VAR_WEIGHT = 40; - static final long WITH_WEIGHT = 8; + static final long WITH_WEIGHT = 8; /** Accumulated weight. */ private long weight; @@ -446,22 +446,22 @@ @Override public Node leaveEQ(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override public Node leaveEQ_STRICT(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override public Node leaveGE(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override public Node leaveGT(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override @@ -478,12 +478,12 @@ @Override public Node leaveLE(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override public Node leaveLT(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override @@ -498,12 +498,12 @@ @Override public Node leaveNE(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override public Node leaveNE_STRICT(final BinaryNode binaryNode) { - return runtimeNodeWeight(binaryNode); + return compareWeight(binaryNode); } @Override @@ -546,8 +546,8 @@ return unaryNode; } - private Node runtimeNodeWeight(final BinaryNode binaryNode) { - weight += Type.widest(binaryNode.lhs().getType(), binaryNode.rhs().getType()).isObject() ? CALL_WEIGHT : 1; + private Node compareWeight(final BinaryNode binaryNode) { + weight += COMPARE_WEIGHT; return binaryNode; } }