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));
         }
 
         /**