nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java Fri Feb 27 14:33:47 2015 +0100
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java Mon Mar 02 14:33:55 2015 +0100
@@ -311,7 +311,7 @@
return JSType.BOOLEAN;
}
- if (obj instanceof String || obj instanceof ConsString) {
+ if (isString(obj)) {
return JSType.STRING;
}
@@ -349,7 +349,7 @@
return JSType.BOOLEAN;
}
- if (obj instanceof String || obj instanceof ConsString) {
+ if (isString(obj)) {
return JSType.STRING;
}
@@ -455,8 +455,7 @@
obj == ScriptRuntime.UNDEFINED ||
obj instanceof Boolean ||
obj instanceof Number ||
- obj instanceof String ||
- obj instanceof ConsString;
+ isString(obj);
}
/**
@@ -577,7 +576,7 @@
return num != 0 && !Double.isNaN(num);
}
- if (obj instanceof String || obj instanceof ConsString) {
+ if (isString(obj)) {
return ((CharSequence)obj).length() > 0;
}
@@ -628,6 +627,15 @@
}
/**
+ * Returns true if object represents a primitive JavaScript string value.
+ * @param obj the object
+ * @return true if the object represents a primitive JavaScript string value.
+ */
+ public static boolean isString(final Object obj) {
+ return obj instanceof String || obj instanceof ConsString;
+ }
+
+ /**
* JavaScript compliant conversion of integer to String
*
* @param num an integer