--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LiteralNode.java 2015-03-09 18:38:58.319674706 +0530 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LiteralNode.java 2015-03-09 18:38:58.231674270 +0530 @@ -181,6 +181,28 @@ } /** + * Test if the value is an array + * + * @return True if value is an array + */ + public boolean isArray() { + return false; + } + + public List 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. @@ -607,6 +629,12 @@ /** Sub units with indexes ranges, in which to split up code generation, for large literals */ private final List 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 @@ -834,6 +862,7 @@ * null. * @return a list of array element expressions. */ + @Override public List getElementExpressions() { return Collections.unmodifiableList(Arrays.asList(value)); }