src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LiteralNode.java
Print this page
@@ -179,10 +179,32 @@
public Object getObject() {
return value;
}
/**
+ * Test if the value is an array
+ *
+ * @return True if value is an array
+ */
+ public boolean isArray() {
+ return false;
+ }
+
+ public List<Expression> getElementExpressions() {
+ return null;
+ }
+
+ /**
+ * Test if the value is a boolean.
+ *
+ * @return True if value is a boolean.
+ */
+ public boolean isBoolean() {
+ return value instanceof Boolean;
+ }
+
+ /**
* Test if the value is a string.
*
* @return True if value is a string.
*/
public boolean isString() {
@@ -605,10 +627,16 @@
private final int[] postsets;
/** Sub units with indexes ranges, in which to split up code generation, for large literals */
private final List<ArrayUnit> units;
+ @Override
+ public boolean isArray() {
+ return true;
+ }
+
+
/**
* An ArrayUnit is a range in an ArrayLiteral. ArrayLiterals can
* be split if they are too large, for bytecode generation reasons
*/
public static final class ArrayUnit implements CompileUnitHolder, Serializable {
@@ -832,10 +860,11 @@
/**
* Returns a list of array element expressions. Note that empty array elements manifest themselves as
* null.
* @return a list of array element expressions.
*/
+ @Override
public List<Expression> getElementExpressions() {
return Collections.unmodifiableList(Arrays.asList(value));
}
/**