nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java Fri Feb 27 14:33:47 2015 +0100
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java Mon Mar 02 14:33:55 2015 +0100
@@ -32,6 +32,7 @@
import static jdk.nashorn.internal.runtime.ECMAErrors.syntaxError;
import static jdk.nashorn.internal.runtime.ECMAErrors.typeError;
import static jdk.nashorn.internal.runtime.JSType.isRepresentableAsInt;
+import static jdk.nashorn.internal.runtime.JSType.isString;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
@@ -56,7 +57,6 @@
import jdk.nashorn.internal.parser.Lexer;
import jdk.nashorn.internal.runtime.linker.Bootstrap;
-
/**
* Utilities to be called by JavaScript runtime API and generated classes.
*/
@@ -564,8 +564,7 @@
final Object xPrim = JSType.toPrimitive(x);
final Object yPrim = JSType.toPrimitive(y);
- if (xPrim instanceof String || yPrim instanceof String
- || xPrim instanceof ConsString || yPrim instanceof ConsString) {
+ if (isString(xPrim) || isString(yPrim)) {
try {
return new ConsString(JSType.toCharSequence(xPrim), JSType.toCharSequence(yPrim));
} catch (final IllegalArgumentException iae) {
@@ -1010,7 +1009,7 @@
px = JSType.toPrimitive(x, Number.class);
}
- if (JSType.ofNoFunction(px) == JSType.STRING && JSType.ofNoFunction(py) == JSType.STRING) {
+ if (isString(px) && isString(py)) {
// May be String or ConsString
return px.toString().compareTo(py.toString()) < 0;
}