8059843: Make AST serializable

Fri, 17 Oct 2014 14:24:26 +0200

author
attila
date
Fri, 17 Oct 2014 14:24:26 +0200
changeset 1063
8c51767d534d
parent 1062
bf5f28dafa7c
child 1064
03c06c337d9d

8059843: Make AST serializable
Reviewed-by: hannesw, lagergren

src/jdk/nashorn/internal/codegen/CompileUnit.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/Label.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/ArrayType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/BitwiseType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/BooleanType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/IntType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/LongType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/NumberType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/NumericType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/ObjectType.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/codegen/types/Type.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/AccessNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/BaseNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/BinaryNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/Block.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/BlockStatement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/BreakNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/BreakableStatement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/CallNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/CaseNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/CatchNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ContinueNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/EmptyNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/Expression.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ExpressionStatement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ForNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/FunctionNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/IdentNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/IfNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/IndexNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/JoinPredecessorExpression.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/JumpStatement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/LabelNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/LexicalContextExpression.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/LexicalContextStatement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/LiteralNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/LoopNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/Node.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ObjectNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/PropertyNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ReturnNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/RuntimeNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/SplitNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/Statement.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/SwitchNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/TernaryNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/ThrowNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/TryNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/UnaryNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/VarNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/WhileNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/ir/WithNode.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/parser/Lexer.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/jdk/nashorn/internal/codegen/CompileUnit.java	Mon Oct 20 14:09:17 2014 +0200
     1.2 +++ b/src/jdk/nashorn/internal/codegen/CompileUnit.java	Fri Oct 17 14:24:26 2014 +0200
     1.3 @@ -25,24 +25,29 @@
     1.4  
     1.5  package jdk.nashorn.internal.codegen;
     1.6  
     1.7 +import java.io.Serializable;
     1.8  import java.util.Set;
     1.9  import java.util.TreeSet;
    1.10  
    1.11  /**
    1.12 - * Used to track split class compilation.
    1.13 - */
    1.14 -public final class CompileUnit implements Comparable<CompileUnit> {
    1.15 +  * Used to track split class compilation. Note that instances of the class are serializable, but all fields are
    1.16 +  * transient, making the serialized version of the class only useful for tracking the referential topology of other
    1.17 +  * AST nodes referencing the same or different compile units.
    1.18 +  */
    1.19 +public final class CompileUnit implements Comparable<CompileUnit>, Serializable {
    1.20 +    private static final long serialVersionUID = 1L;
    1.21 +
    1.22      /** Current class name */
    1.23 -    private final String className;
    1.24 +    private transient final String className;
    1.25  
    1.26      /** Current class generator */
    1.27 -    private ClassEmitter classEmitter;
    1.28 +    private transient ClassEmitter classEmitter;
    1.29  
    1.30 -    private long weight;
    1.31 +    private transient long weight;
    1.32  
    1.33 -    private Class<?> clazz;
    1.34 +    private transient Class<?> clazz;
    1.35  
    1.36 -    private boolean isUsed;
    1.37 +    private transient boolean isUsed;
    1.38  
    1.39      private static int emittedUnitCount;
    1.40  
     2.1 --- a/src/jdk/nashorn/internal/codegen/Label.java	Mon Oct 20 14:09:17 2014 +0200
     2.2 +++ b/src/jdk/nashorn/internal/codegen/Label.java	Fri Oct 17 14:24:26 2014 +0200
     2.3 @@ -24,6 +24,7 @@
     2.4   */
     2.5  package jdk.nashorn.internal.codegen;
     2.6  
     2.7 +import java.io.Serializable;
     2.8  import java.util.ArrayList;
     2.9  import java.util.Arrays;
    2.10  import java.util.BitSet;
    2.11 @@ -39,7 +40,9 @@
    2.12   *
    2.13   * see -Dnashorn.codegen.debug, --log=codegen
    2.14   */
    2.15 -public final class Label {
    2.16 +public final class Label implements Serializable {
    2.17 +    private static final long serialVersionUID = 1L;
    2.18 +
    2.19      //byte code generation evaluation type stack for consistency check
    2.20      //and correct opcode selection. one per label as a label may be a
    2.21      //join point
    2.22 @@ -491,7 +494,7 @@
    2.23      private final String name;
    2.24  
    2.25      /** Type stack at this label */
    2.26 -    private Label.Stack stack;
    2.27 +    private transient Label.Stack stack;
    2.28  
    2.29      /** ASM representation of this label */
    2.30      private jdk.internal.org.objectweb.asm.Label label;
    2.31 @@ -500,9 +503,9 @@
    2.32      private final int id;
    2.33  
    2.34      /** Is this label reachable (anything ever jumped to it)? */
    2.35 -    private boolean reachable;
    2.36 +    private transient boolean reachable;
    2.37  
    2.38 -    private boolean breakTarget;
    2.39 +    private transient boolean breakTarget;
    2.40  
    2.41      /**
    2.42       * Constructor
     3.1 --- a/src/jdk/nashorn/internal/codegen/types/ArrayType.java	Mon Oct 20 14:09:17 2014 +0200
     3.2 +++ b/src/jdk/nashorn/internal/codegen/types/ArrayType.java	Fri Oct 17 14:24:26 2014 +0200
     3.3 @@ -37,6 +37,7 @@
     3.4   * This is an array type, i.e. OBJECT_ARRAY, NUMBER_ARRAY.
     3.5   */
     3.6  public class ArrayType extends ObjectType implements BytecodeArrayOps {
     3.7 +    private static final long serialVersionUID = 1L;
     3.8  
     3.9      /**
    3.10       * Constructor
     4.1 --- a/src/jdk/nashorn/internal/codegen/types/BitwiseType.java	Mon Oct 20 14:09:17 2014 +0200
     4.2 +++ b/src/jdk/nashorn/internal/codegen/types/BitwiseType.java	Fri Oct 17 14:24:26 2014 +0200
     4.3 @@ -29,6 +29,7 @@
     4.4   * This class represents a numeric type that can be used for bit operations.
     4.5   */
     4.6  public abstract class BitwiseType extends NumericType implements BytecodeBitwiseOps {
     4.7 +    private static final long serialVersionUID = 1L;
     4.8  
     4.9      /**
    4.10       * Constructor
     5.1 --- a/src/jdk/nashorn/internal/codegen/types/BooleanType.java	Mon Oct 20 14:09:17 2014 +0200
     5.2 +++ b/src/jdk/nashorn/internal/codegen/types/BooleanType.java	Fri Oct 17 14:24:26 2014 +0200
     5.3 @@ -69,6 +69,7 @@
     5.4   * The boolean type class
     5.5   */
     5.6  public final class BooleanType extends Type {
     5.7 +    private static final long serialVersionUID = 1L;
     5.8  
     5.9      private static final CompilerConstants.Call VALUE_OF = staticCallNoLookup(Boolean.class, "valueOf", Boolean.class, boolean.class);
    5.10      private static final CompilerConstants.Call TO_STRING = staticCallNoLookup(Boolean.class, "toString", String.class, boolean.class);
     6.1 --- a/src/jdk/nashorn/internal/codegen/types/IntType.java	Mon Oct 20 14:09:17 2014 +0200
     6.2 +++ b/src/jdk/nashorn/internal/codegen/types/IntType.java	Fri Oct 17 14:24:26 2014 +0200
     6.3 @@ -60,6 +60,7 @@
     6.4   * Type class: INT
     6.5   */
     6.6  class IntType extends BitwiseType {
     6.7 +    private static final long serialVersionUID = 1L;
     6.8  
     6.9      private static final CompilerConstants.Call TO_STRING = staticCallNoLookup(Integer.class, "toString", String.class, int.class);
    6.10      private static final CompilerConstants.Call VALUE_OF  = staticCallNoLookup(Integer.class, "valueOf", Integer.class, int.class);
     7.1 --- a/src/jdk/nashorn/internal/codegen/types/LongType.java	Mon Oct 20 14:09:17 2014 +0200
     7.2 +++ b/src/jdk/nashorn/internal/codegen/types/LongType.java	Fri Oct 17 14:24:26 2014 +0200
     7.3 @@ -54,6 +54,7 @@
     7.4   * Type class: LONG
     7.5   */
     7.6  class LongType extends BitwiseType {
     7.7 +    private static final long serialVersionUID = 1L;
     7.8  
     7.9      private static final CompilerConstants.Call VALUE_OF = staticCallNoLookup(Long.class, "valueOf", Long.class, long.class);
    7.10  
     8.1 --- a/src/jdk/nashorn/internal/codegen/types/NumberType.java	Mon Oct 20 14:09:17 2014 +0200
     8.2 +++ b/src/jdk/nashorn/internal/codegen/types/NumberType.java	Fri Oct 17 14:24:26 2014 +0200
     8.3 @@ -46,6 +46,7 @@
     8.4  import jdk.nashorn.internal.runtime.JSType;
     8.5  
     8.6  class NumberType extends NumericType {
     8.7 +    private static final long serialVersionUID = 1L;
     8.8  
     8.9      private static final CompilerConstants.Call VALUE_OF = staticCallNoLookup(Double.class, "valueOf", Double.class, double.class);
    8.10  
     9.1 --- a/src/jdk/nashorn/internal/codegen/types/NumericType.java	Mon Oct 20 14:09:17 2014 +0200
     9.2 +++ b/src/jdk/nashorn/internal/codegen/types/NumericType.java	Fri Oct 17 14:24:26 2014 +0200
     9.3 @@ -29,6 +29,8 @@
     9.4   * This is a numeric type, i.e. NUMBER, LONG, INT, INT32.
     9.5   */
     9.6  public abstract class NumericType extends Type implements BytecodeNumericOps {
     9.7 +    private static final long serialVersionUID = 1L;
     9.8 +
     9.9      /**
    9.10       * Constructor
    9.11       *
    10.1 --- a/src/jdk/nashorn/internal/codegen/types/ObjectType.java	Mon Oct 20 14:09:17 2014 +0200
    10.2 +++ b/src/jdk/nashorn/internal/codegen/types/ObjectType.java	Fri Oct 17 14:24:26 2014 +0200
    10.3 @@ -47,6 +47,7 @@
    10.4   * contain a class that is a more specialized object
    10.5   */
    10.6  class ObjectType extends Type {
    10.7 +    private static final long serialVersionUID = 1L;
    10.8  
    10.9      protected ObjectType() {
   10.10          this(Object.class);
    11.1 --- a/src/jdk/nashorn/internal/codegen/types/Type.java	Mon Oct 20 14:09:17 2014 +0200
    11.2 +++ b/src/jdk/nashorn/internal/codegen/types/Type.java	Fri Oct 17 14:24:26 2014 +0200
    11.3 @@ -47,9 +47,11 @@
    11.4  import static jdk.internal.org.objectweb.asm.Opcodes.T_INT;
    11.5  import static jdk.internal.org.objectweb.asm.Opcodes.T_LONG;
    11.6  import static jdk.nashorn.internal.codegen.CompilerConstants.staticCallNoLookup;
    11.7 +
    11.8  import java.io.DataInput;
    11.9  import java.io.DataOutput;
   11.10  import java.io.IOException;
   11.11 +import java.io.Serializable;
   11.12  import java.lang.invoke.CallSite;
   11.13  import java.lang.invoke.MethodHandle;
   11.14  import java.lang.invoke.MethodHandles;
   11.15 @@ -88,19 +90,20 @@
   11.16   * INTs rather than OBJECTs
   11.17   */
   11.18  
   11.19 -public abstract class Type implements Comparable<Type>, BytecodeOps {
   11.20 +public abstract class Type implements Comparable<Type>, BytecodeOps, Serializable {
   11.21 +    private static final long serialVersionUID = 1L;
   11.22  
   11.23      /** Human readable name for type */
   11.24 -    private final String name;
   11.25 +    private transient final String name;
   11.26  
   11.27      /** Descriptor for type */
   11.28 -    private final String descriptor;
   11.29 +    private transient final String descriptor;
   11.30  
   11.31      /** The "weight" of the type. Used for picking widest/least specific common type */
   11.32 -    private final int weight;
   11.33 +    private transient final int weight;
   11.34  
   11.35      /** How many bytecode slots does this type occupy */
   11.36 -    private final int slots;
   11.37 +    private transient final int slots;
   11.38  
   11.39      /** The class for this type */
   11.40      private final Class<?> clazz;
   11.41 @@ -113,7 +116,7 @@
   11.42              Collections.synchronizedMap(new WeakHashMap<Class<?>, jdk.internal.org.objectweb.asm.Type>());
   11.43  
   11.44      /** Internal ASM type for this Type - computed once at construction */
   11.45 -    private final jdk.internal.org.objectweb.asm.Type internalType;
   11.46 +    private transient final jdk.internal.org.objectweb.asm.Type internalType;
   11.47  
   11.48      /** Weights are used to decide which types are "wider" than other types */
   11.49      protected static final int MIN_WEIGHT = -1;
   11.50 @@ -934,6 +937,8 @@
   11.51       * This is the singleton for integer arrays
   11.52       */
   11.53      public static final ArrayType INT_ARRAY = new ArrayType(int[].class) {
   11.54 +        private static final long serialVersionUID = 1L;
   11.55 +
   11.56          @Override
   11.57          public void astore(final MethodVisitor method) {
   11.58              method.visitInsn(IASTORE);
   11.59 @@ -961,6 +966,8 @@
   11.60       * This is the singleton for long arrays
   11.61       */
   11.62      public static final ArrayType LONG_ARRAY = new ArrayType(long[].class) {
   11.63 +        private static final long serialVersionUID = 1L;
   11.64 +
   11.65          @Override
   11.66          public void astore(final MethodVisitor method) {
   11.67              method.visitInsn(LASTORE);
   11.68 @@ -988,6 +995,8 @@
   11.69       * This is the singleton for numeric arrays
   11.70       */
   11.71      public static final ArrayType NUMBER_ARRAY = new ArrayType(double[].class) {
   11.72 +        private static final long serialVersionUID = 1L;
   11.73 +
   11.74          @Override
   11.75          public void astore(final MethodVisitor method) {
   11.76              method.visitInsn(DASTORE);
   11.77 @@ -1022,6 +1031,8 @@
   11.78  
   11.79      /** This type, always an object type, just a toString override */
   11.80      public static final Type THIS = new ObjectType() {
   11.81 +        private static final long serialVersionUID = 1L;
   11.82 +
   11.83          @Override
   11.84          public String toString() {
   11.85              return "this";
   11.86 @@ -1030,6 +1041,8 @@
   11.87  
   11.88      /** Scope type, always an object type, just a toString override */
   11.89      public static final Type SCOPE = new ObjectType() {
   11.90 +        private static final long serialVersionUID = 1L;
   11.91 +
   11.92          @Override
   11.93          public String toString() {
   11.94              return "scope";
   11.95 @@ -1041,6 +1054,7 @@
   11.96      }
   11.97  
   11.98      private abstract static class ValueLessType extends Type {
   11.99 +        private static final long serialVersionUID = 1L;
  11.100  
  11.101          ValueLessType(final String name) {
  11.102              super(name, Unknown.class, MIN_WEIGHT, 1);
  11.103 @@ -1092,6 +1106,8 @@
  11.104       * inference. It has the minimum type width
  11.105       */
  11.106      public static final Type UNKNOWN = new ValueLessType("<unknown>") {
  11.107 +        private static final long serialVersionUID = 1L;
  11.108 +
  11.109          @Override
  11.110          public String getDescriptor() {
  11.111              return "<unknown>";
  11.112 @@ -1108,6 +1124,7 @@
  11.113       * inference. It has the minimum type width
  11.114       */
  11.115      public static final Type SLOT_2 = new ValueLessType("<slot_2>") {
  11.116 +        private static final long serialVersionUID = 1L;
  11.117  
  11.118          @Override
  11.119          public String getDescriptor() {
  11.120 @@ -1124,4 +1141,8 @@
  11.121          cache.put(type.getTypeClass(), type);
  11.122          return type;
  11.123      }
  11.124 +
  11.125 +    protected final Object readResolve() {
  11.126 +        return Type.typeFor(clazz);
  11.127 +    }
  11.128  }
    12.1 --- a/src/jdk/nashorn/internal/ir/AccessNode.java	Mon Oct 20 14:09:17 2014 +0200
    12.2 +++ b/src/jdk/nashorn/internal/ir/AccessNode.java	Fri Oct 17 14:24:26 2014 +0200
    12.3 @@ -34,6 +34,8 @@
    12.4   */
    12.5  @Immutable
    12.6  public final class AccessNode extends BaseNode {
    12.7 +    private static final long serialVersionUID = 1L;
    12.8 +
    12.9      /** Property name. */
   12.10      private final String property;
   12.11  
    13.1 --- a/src/jdk/nashorn/internal/ir/BaseNode.java	Mon Oct 20 14:09:17 2014 +0200
    13.2 +++ b/src/jdk/nashorn/internal/ir/BaseNode.java	Fri Oct 17 14:24:26 2014 +0200
    13.3 @@ -39,6 +39,7 @@
    13.4   */
    13.5  @Immutable
    13.6  public abstract class BaseNode extends Expression implements FunctionCall, Optimistic {
    13.7 +    private static final long serialVersionUID = 1L;
    13.8  
    13.9      /** Base Node. */
   13.10      protected final Expression base;
    14.1 --- a/src/jdk/nashorn/internal/ir/BinaryNode.java	Mon Oct 20 14:09:17 2014 +0200
    14.2 +++ b/src/jdk/nashorn/internal/ir/BinaryNode.java	Fri Oct 17 14:24:26 2014 +0200
    14.3 @@ -43,6 +43,8 @@
    14.4   */
    14.5  @Immutable
    14.6  public final class BinaryNode extends Expression implements Assignment<Expression>, Optimistic {
    14.7 +    private static final long serialVersionUID = 1L;
    14.8 +
    14.9      // Placeholder for "undecided optimistic ADD type". Unfortunately, we can't decide the type of ADD during optimistic
   14.10      // type calculation as it can have local variables as its operands that will decide its ultimate type.
   14.11      private static final Type OPTIMISTIC_UNDECIDED_TYPE = Type.typeFor(new Object(){/*empty*/}.getClass());
   14.12 @@ -56,8 +58,8 @@
   14.13  
   14.14      private final Type type;
   14.15  
   14.16 -    private Type cachedType;
   14.17 -    private Object cachedTypeFunction;
   14.18 +    private transient Type cachedType;
   14.19 +    private transient Object cachedTypeFunction;
   14.20  
   14.21      @Ignore
   14.22      private static final Set<TokenType> CAN_OVERFLOW =
    15.1 --- a/src/jdk/nashorn/internal/ir/Block.java	Mon Oct 20 14:09:17 2014 +0200
    15.2 +++ b/src/jdk/nashorn/internal/ir/Block.java	Fri Oct 17 14:24:26 2014 +0200
    15.3 @@ -42,6 +42,8 @@
    15.4   */
    15.5  @Immutable
    15.6  public class Block extends Node implements BreakableNode, Terminal, Flags<Block> {
    15.7 +    private static final long serialVersionUID = 1L;
    15.8 +
    15.9      /** List of statements */
   15.10      protected final List<Statement> statements;
   15.11  
    16.1 --- a/src/jdk/nashorn/internal/ir/BlockStatement.java	Mon Oct 20 14:09:17 2014 +0200
    16.2 +++ b/src/jdk/nashorn/internal/ir/BlockStatement.java	Fri Oct 17 14:24:26 2014 +0200
    16.3 @@ -32,6 +32,8 @@
    16.4   * Represents a block used as a statement.
    16.5   */
    16.6  public class BlockStatement extends Statement {
    16.7 +    private static final long serialVersionUID = 1L;
    16.8 +
    16.9      /** Block to execute. */
   16.10      private final Block block;
   16.11  
    17.1 --- a/src/jdk/nashorn/internal/ir/BreakNode.java	Mon Oct 20 14:09:17 2014 +0200
    17.2 +++ b/src/jdk/nashorn/internal/ir/BreakNode.java	Fri Oct 17 14:24:26 2014 +0200
    17.3 @@ -34,6 +34,7 @@
    17.4   */
    17.5  @Immutable
    17.6  public final class BreakNode extends JumpStatement {
    17.7 +    private static final long serialVersionUID = 1L;
    17.8  
    17.9      /**
   17.10       * Constructor
    18.1 --- a/src/jdk/nashorn/internal/ir/BreakableStatement.java	Mon Oct 20 14:09:17 2014 +0200
    18.2 +++ b/src/jdk/nashorn/internal/ir/BreakableStatement.java	Fri Oct 17 14:24:26 2014 +0200
    18.3 @@ -32,6 +32,7 @@
    18.4  
    18.5  @Immutable
    18.6  abstract class BreakableStatement extends LexicalContextStatement implements BreakableNode {
    18.7 +    private static final long serialVersionUID = 1L;
    18.8  
    18.9      /** break label. */
   18.10      protected final Label breakLabel;
    19.1 --- a/src/jdk/nashorn/internal/ir/CallNode.java	Mon Oct 20 14:09:17 2014 +0200
    19.2 +++ b/src/jdk/nashorn/internal/ir/CallNode.java	Fri Oct 17 14:24:26 2014 +0200
    19.3 @@ -27,6 +27,7 @@
    19.4  
    19.5  import static jdk.nashorn.internal.runtime.UnwarrantedOptimismException.INVALID_PROGRAM_POINT;
    19.6  
    19.7 +import java.io.Serializable;
    19.8  import java.util.Collections;
    19.9  import java.util.List;
   19.10  import java.util.function.Function;
   19.11 @@ -40,6 +41,7 @@
   19.12   */
   19.13  @Immutable
   19.14  public final class CallNode extends LexicalContextExpression implements Optimistic {
   19.15 +    private static final long serialVersionUID = 1L;
   19.16  
   19.17      /** Function identifier or function body. */
   19.18      private final Expression function;
   19.19 @@ -64,7 +66,8 @@
   19.20      /**
   19.21       * Arguments to be passed to builtin {@code eval} function
   19.22       */
   19.23 -    public static class EvalArgs {
   19.24 +    public static class EvalArgs implements Serializable {
   19.25 +        private static final long serialVersionUID = 1L;
   19.26          private final List<Expression> args;
   19.27  
   19.28          /** location string for the eval call */
    20.1 --- a/src/jdk/nashorn/internal/ir/CaseNode.java	Mon Oct 20 14:09:17 2014 +0200
    20.2 +++ b/src/jdk/nashorn/internal/ir/CaseNode.java	Fri Oct 17 14:24:26 2014 +0200
    20.3 @@ -37,6 +37,8 @@
    20.4   */
    20.5  @Immutable
    20.6  public final class CaseNode extends Node implements JoinPredecessor, Labels, Terminal {
    20.7 +    private static final long serialVersionUID = 1L;
    20.8 +
    20.9      /** Test expression. */
   20.10      private final Expression test;
   20.11  
    21.1 --- a/src/jdk/nashorn/internal/ir/CatchNode.java	Mon Oct 20 14:09:17 2014 +0200
    21.2 +++ b/src/jdk/nashorn/internal/ir/CatchNode.java	Fri Oct 17 14:24:26 2014 +0200
    21.3 @@ -33,6 +33,8 @@
    21.4   */
    21.5  @Immutable
    21.6  public final class CatchNode extends Statement {
    21.7 +    private static final long serialVersionUID = 1L;
    21.8 +
    21.9      /** Exception identifier. */
   21.10      private final IdentNode exception;
   21.11  
    22.1 --- a/src/jdk/nashorn/internal/ir/ContinueNode.java	Mon Oct 20 14:09:17 2014 +0200
    22.2 +++ b/src/jdk/nashorn/internal/ir/ContinueNode.java	Fri Oct 17 14:24:26 2014 +0200
    22.3 @@ -34,6 +34,8 @@
    22.4   */
    22.5  @Immutable
    22.6  public class ContinueNode extends JumpStatement {
    22.7 +    private static final long serialVersionUID = 1L;
    22.8 +
    22.9      /**
   22.10       * Constructor
   22.11       *
   22.12 @@ -80,4 +82,3 @@
   22.13          return ((LoopNode)target).getContinueLabel();
   22.14      }
   22.15  }
   22.16 -
    23.1 --- a/src/jdk/nashorn/internal/ir/EmptyNode.java	Mon Oct 20 14:09:17 2014 +0200
    23.2 +++ b/src/jdk/nashorn/internal/ir/EmptyNode.java	Fri Oct 17 14:24:26 2014 +0200
    23.3 @@ -33,6 +33,7 @@
    23.4   */
    23.5  @Immutable
    23.6  public final class EmptyNode extends Statement {
    23.7 +    private static final long serialVersionUID = 1L;
    23.8  
    23.9      /**
   23.10       * Constructor
    24.1 --- a/src/jdk/nashorn/internal/ir/Expression.java	Mon Oct 20 14:09:17 2014 +0200
    24.2 +++ b/src/jdk/nashorn/internal/ir/Expression.java	Fri Oct 17 14:24:26 2014 +0200
    24.3 @@ -35,6 +35,8 @@
    24.4   *
    24.5   */
    24.6  public abstract class Expression extends Node {
    24.7 +    private static final long serialVersionUID = 1L;
    24.8 +
    24.9      static final String OPT_IDENTIFIER = "%";
   24.10  
   24.11      private static final Function<Symbol, Type> UNKNOWN_LOCALS = new Function<Symbol, Type>() {
    25.1 --- a/src/jdk/nashorn/internal/ir/ExpressionStatement.java	Mon Oct 20 14:09:17 2014 +0200
    25.2 +++ b/src/jdk/nashorn/internal/ir/ExpressionStatement.java	Fri Oct 17 14:24:26 2014 +0200
    25.3 @@ -35,6 +35,8 @@
    25.4   */
    25.5  @Immutable
    25.6  public final class ExpressionStatement extends Statement {
    25.7 +    private static final long serialVersionUID = 1L;
    25.8 +
    25.9      /** Expression to execute. */
   25.10      private final Expression expression;
   25.11  
    26.1 --- a/src/jdk/nashorn/internal/ir/ForNode.java	Mon Oct 20 14:09:17 2014 +0200
    26.2 +++ b/src/jdk/nashorn/internal/ir/ForNode.java	Fri Oct 17 14:24:26 2014 +0200
    26.3 @@ -33,6 +33,8 @@
    26.4   */
    26.5  @Immutable
    26.6  public final class ForNode extends LoopNode {
    26.7 +    private static final long serialVersionUID = 1L;
    26.8 +
    26.9      /** Initialize expression for an ordinary for statement, or the LHS expression receiving iterated-over values in a
   26.10       * for-in statement. */
   26.11      private final Expression init;
    27.1 --- a/src/jdk/nashorn/internal/ir/FunctionNode.java	Mon Oct 20 14:09:17 2014 +0200
    27.2 +++ b/src/jdk/nashorn/internal/ir/FunctionNode.java	Fri Oct 17 14:24:26 2014 +0200
    27.3 @@ -57,6 +57,8 @@
    27.4   */
    27.5  @Immutable
    27.6  public final class FunctionNode extends LexicalContextExpression implements Flags<FunctionNode>, CompileUnitHolder {
    27.7 +    private static final long serialVersionUID = 1L;
    27.8 +
    27.9      /** Type used for all FunctionNodes */
   27.10      public static final Type FUNCTION_TYPE = Type.typeFor(ScriptFunction.class);
   27.11  
    28.1 --- a/src/jdk/nashorn/internal/ir/IdentNode.java	Mon Oct 20 14:09:17 2014 +0200
    28.2 +++ b/src/jdk/nashorn/internal/ir/IdentNode.java	Fri Oct 17 14:24:26 2014 +0200
    28.3 @@ -42,6 +42,8 @@
    28.4   */
    28.5  @Immutable
    28.6  public final class IdentNode extends Expression implements PropertyKey, FunctionCall, Optimistic, JoinPredecessor {
    28.7 +    private static final long serialVersionUID = 1L;
    28.8 +
    28.9      private static final int PROPERTY_NAME     = 1 << 0;
   28.10      private static final int INITIALIZED_HERE  = 1 << 1;
   28.11      private static final int FUNCTION          = 1 << 2;
    29.1 --- a/src/jdk/nashorn/internal/ir/IfNode.java	Mon Oct 20 14:09:17 2014 +0200
    29.2 +++ b/src/jdk/nashorn/internal/ir/IfNode.java	Fri Oct 17 14:24:26 2014 +0200
    29.3 @@ -33,6 +33,8 @@
    29.4   */
    29.5  @Immutable
    29.6  public final class IfNode extends Statement implements JoinPredecessor {
    29.7 +    private static final long serialVersionUID = 1L;
    29.8 +
    29.9      /** Test expression. */
   29.10      private final Expression test;
   29.11  
    30.1 --- a/src/jdk/nashorn/internal/ir/IndexNode.java	Mon Oct 20 14:09:17 2014 +0200
    30.2 +++ b/src/jdk/nashorn/internal/ir/IndexNode.java	Fri Oct 17 14:24:26 2014 +0200
    30.3 @@ -33,6 +33,8 @@
    30.4   */
    30.5  @Immutable
    30.6  public final class IndexNode extends BaseNode {
    30.7 +    private static final long serialVersionUID = 1L;
    30.8 +
    30.9      /** Property index. */
   30.10      private final Expression index;
   30.11  
    31.1 --- a/src/jdk/nashorn/internal/ir/JoinPredecessorExpression.java	Mon Oct 20 14:09:17 2014 +0200
    31.2 +++ b/src/jdk/nashorn/internal/ir/JoinPredecessorExpression.java	Fri Oct 17 14:24:26 2014 +0200
    31.3 @@ -33,6 +33,7 @@
    31.4   * A wrapper for an expression that is in a position to be a join predecessor.
    31.5   */
    31.6  public class JoinPredecessorExpression extends Expression implements JoinPredecessor {
    31.7 +    private static final long serialVersionUID = 1L;
    31.8  
    31.9      private final Expression expression;
   31.10      private final LocalVariableConversion conversion;
    32.1 --- a/src/jdk/nashorn/internal/ir/JumpStatement.java	Mon Oct 20 14:09:17 2014 +0200
    32.2 +++ b/src/jdk/nashorn/internal/ir/JumpStatement.java	Fri Oct 17 14:24:26 2014 +0200
    32.3 @@ -31,6 +31,7 @@
    32.4   * Common base class for jump statements (e.g. {@code break} and {@code continue}).
    32.5   */
    32.6  public abstract class JumpStatement extends Statement implements JoinPredecessor {
    32.7 +    private static final long serialVersionUID = 1L;
    32.8  
    32.9      private final String labelName;
   32.10      private final LocalVariableConversion conversion;
    33.1 --- a/src/jdk/nashorn/internal/ir/LabelNode.java	Mon Oct 20 14:09:17 2014 +0200
    33.2 +++ b/src/jdk/nashorn/internal/ir/LabelNode.java	Fri Oct 17 14:24:26 2014 +0200
    33.3 @@ -35,6 +35,8 @@
    33.4   */
    33.5  @Immutable
    33.6  public final class LabelNode extends LexicalContextStatement implements JoinPredecessor {
    33.7 +    private static final long serialVersionUID = 1L;
    33.8 +
    33.9      /** Label ident. */
   33.10      private final String labelName;
   33.11  
    34.1 --- a/src/jdk/nashorn/internal/ir/LexicalContextExpression.java	Mon Oct 20 14:09:17 2014 +0200
    34.2 +++ b/src/jdk/nashorn/internal/ir/LexicalContextExpression.java	Fri Oct 17 14:24:26 2014 +0200
    34.3 @@ -28,6 +28,7 @@
    34.4  import jdk.nashorn.internal.ir.visitor.NodeVisitor;
    34.5  
    34.6  abstract class LexicalContextExpression extends Expression implements LexicalContextNode {
    34.7 +    private static final long serialVersionUID = 1L;
    34.8  
    34.9      LexicalContextExpression(final LexicalContextExpression expr) {
   34.10          super(expr);
    35.1 --- a/src/jdk/nashorn/internal/ir/LexicalContextStatement.java	Mon Oct 20 14:09:17 2014 +0200
    35.2 +++ b/src/jdk/nashorn/internal/ir/LexicalContextStatement.java	Fri Oct 17 14:24:26 2014 +0200
    35.3 @@ -28,6 +28,8 @@
    35.4  import jdk.nashorn.internal.ir.visitor.NodeVisitor;
    35.5  
    35.6  abstract class LexicalContextStatement extends Statement implements LexicalContextNode {
    35.7 +    private static final long serialVersionUID = 1L;
    35.8 +
    35.9      /**
   35.10       * Constructor
   35.11       *
    36.1 --- a/src/jdk/nashorn/internal/ir/LiteralNode.java	Mon Oct 20 14:09:17 2014 +0200
    36.2 +++ b/src/jdk/nashorn/internal/ir/LiteralNode.java	Fri Oct 17 14:24:26 2014 +0200
    36.3 @@ -25,6 +25,7 @@
    36.4  
    36.5  package jdk.nashorn.internal.ir;
    36.6  
    36.7 +import java.io.Serializable;
    36.8  import java.util.Arrays;
    36.9  import java.util.Collections;
   36.10  import java.util.List;
   36.11 @@ -49,6 +50,8 @@
   36.12   */
   36.13  @Immutable
   36.14  public abstract class LiteralNode<T> extends Expression implements PropertyKey {
   36.15 +    private static final long serialVersionUID = 1L;
   36.16 +
   36.17      /** Literal value */
   36.18      protected final T value;
   36.19  
   36.20 @@ -270,6 +273,8 @@
   36.21       * @param <T> the literal type
   36.22       */
   36.23      public static class PrimitiveLiteralNode<T> extends LiteralNode<T> {
   36.24 +        private static final long serialVersionUID = 1L;
   36.25 +
   36.26          private PrimitiveLiteralNode(final long token, final int finish, final T value) {
   36.27              super(token, finish, value);
   36.28          }
   36.29 @@ -304,6 +309,7 @@
   36.30  
   36.31      @Immutable
   36.32      private static final class BooleanLiteralNode extends PrimitiveLiteralNode<Boolean> {
   36.33 +        private static final long serialVersionUID = 1L;
   36.34  
   36.35          private BooleanLiteralNode(final long token, final int finish, final boolean value) {
   36.36              super(Token.recast(token, value ? TokenType.TRUE : TokenType.FALSE), finish, value);
   36.37 @@ -356,6 +362,7 @@
   36.38  
   36.39      @Immutable
   36.40      private static final class NumberLiteralNode extends PrimitiveLiteralNode<Number> {
   36.41 +        private static final long serialVersionUID = 1L;
   36.42  
   36.43          private final Type type = numberGetType(value);
   36.44  
   36.45 @@ -418,6 +425,8 @@
   36.46      }
   36.47  
   36.48      private static class UndefinedLiteralNode extends PrimitiveLiteralNode<Undefined> {
   36.49 +        private static final long serialVersionUID = 1L;
   36.50 +
   36.51          private UndefinedLiteralNode(final long token, final int finish) {
   36.52              super(Token.recast(token, TokenType.OBJECT), finish, ScriptRuntime.UNDEFINED);
   36.53          }
   36.54 @@ -454,6 +463,8 @@
   36.55  
   36.56      @Immutable
   36.57      private static class StringLiteralNode extends PrimitiveLiteralNode<String> {
   36.58 +        private static final long serialVersionUID = 1L;
   36.59 +
   36.60          private StringLiteralNode(final long token, final int finish, final String value) {
   36.61              super(Token.recast(token, TokenType.STRING), finish, value);
   36.62          }
   36.63 @@ -497,6 +508,8 @@
   36.64  
   36.65      @Immutable
   36.66      private static class LexerTokenLiteralNode extends LiteralNode<LexerToken> {
   36.67 +        private static final long serialVersionUID = 1L;
   36.68 +
   36.69          private LexerTokenLiteralNode(final long token, final int finish, final LexerToken value) {
   36.70              super(Token.recast(token, TokenType.STRING), finish, value); //TODO is string the correct token type here?
   36.71          }
   36.72 @@ -560,6 +573,7 @@
   36.73      }
   36.74  
   36.75      private static final class NullLiteralNode extends PrimitiveLiteralNode<Object> {
   36.76 +        private static final long serialVersionUID = 1L;
   36.77  
   36.78          private NullLiteralNode(final long token, final int finish) {
   36.79              super(Token.recast(token, TokenType.OBJECT), finish, null);
   36.80 @@ -590,6 +604,7 @@
   36.81       */
   36.82      @Immutable
   36.83      public static final class ArrayLiteralNode extends LiteralNode<Expression[]> implements LexicalContextNode {
   36.84 +        private static final long serialVersionUID = 1L;
   36.85  
   36.86          /** Array element type. */
   36.87          private final Type elementType;
   36.88 @@ -607,7 +622,9 @@
   36.89           * An ArrayUnit is a range in an ArrayLiteral. ArrayLiterals can
   36.90           * be split if they are too large, for bytecode generation reasons
   36.91           */
   36.92 -        public static final class ArrayUnit implements CompileUnitHolder {
   36.93 +        public static final class ArrayUnit implements CompileUnitHolder, Serializable {
   36.94 +            private static final long serialVersionUID = 1L;
   36.95 +
   36.96              /** Compile unit associated with the postsets range. */
   36.97              private final CompileUnit compileUnit;
   36.98  
    37.1 --- a/src/jdk/nashorn/internal/ir/LoopNode.java	Mon Oct 20 14:09:17 2014 +0200
    37.2 +++ b/src/jdk/nashorn/internal/ir/LoopNode.java	Fri Oct 17 14:24:26 2014 +0200
    37.3 @@ -34,6 +34,8 @@
    37.4   * A loop node, for example a while node, do while node or for node
    37.5   */
    37.6  public abstract class LoopNode extends BreakableStatement {
    37.7 +    private static final long serialVersionUID = 1L;
    37.8 +
    37.9      /** loop continue label. */
   37.10      protected final Label continueLabel;
   37.11  
    38.1 --- a/src/jdk/nashorn/internal/ir/Node.java	Mon Oct 20 14:09:17 2014 +0200
    38.2 +++ b/src/jdk/nashorn/internal/ir/Node.java	Fri Oct 17 14:24:26 2014 +0200
    38.3 @@ -25,6 +25,7 @@
    38.4  
    38.5  package jdk.nashorn.internal.ir;
    38.6  
    38.7 +import java.io.Serializable;
    38.8  import java.util.ArrayList;
    38.9  import java.util.List;
   38.10  import jdk.nashorn.internal.ir.visitor.NodeVisitor;
   38.11 @@ -34,7 +35,9 @@
   38.12  /**
   38.13   * Nodes are used to compose Abstract Syntax Trees.
   38.14   */
   38.15 -public abstract class Node implements Cloneable {
   38.16 +public abstract class Node implements Cloneable, Serializable {
   38.17 +    private static final long serialVersionUID = 1L;
   38.18 +
   38.19      /** Start of source range. */
   38.20      protected final int start;
   38.21  
    39.1 --- a/src/jdk/nashorn/internal/ir/ObjectNode.java	Mon Oct 20 14:09:17 2014 +0200
    39.2 +++ b/src/jdk/nashorn/internal/ir/ObjectNode.java	Fri Oct 17 14:24:26 2014 +0200
    39.3 @@ -37,6 +37,7 @@
    39.4   */
    39.5  @Immutable
    39.6  public final class ObjectNode extends Expression {
    39.7 +    private static final long serialVersionUID = 1L;
    39.8  
    39.9      /** Literal elements. */
   39.10      private final List<PropertyNode> elements;
    40.1 --- a/src/jdk/nashorn/internal/ir/PropertyNode.java	Mon Oct 20 14:09:17 2014 +0200
    40.2 +++ b/src/jdk/nashorn/internal/ir/PropertyNode.java	Fri Oct 17 14:24:26 2014 +0200
    40.3 @@ -33,6 +33,7 @@
    40.4   */
    40.5  @Immutable
    40.6  public final class PropertyNode extends Node {
    40.7 +    private static final long serialVersionUID = 1L;
    40.8  
    40.9      /** Property key. */
   40.10      private final PropertyKey key;
    41.1 --- a/src/jdk/nashorn/internal/ir/ReturnNode.java	Mon Oct 20 14:09:17 2014 +0200
    41.2 +++ b/src/jdk/nashorn/internal/ir/ReturnNode.java	Fri Oct 17 14:24:26 2014 +0200
    41.3 @@ -36,6 +36,8 @@
    41.4   */
    41.5  @Immutable
    41.6  public class ReturnNode extends Statement {
    41.7 +    private static final long serialVersionUID = 1L;
    41.8 +
    41.9      /** Optional expression. */
   41.10      private final Expression expression;
   41.11  
    42.1 --- a/src/jdk/nashorn/internal/ir/RuntimeNode.java	Mon Oct 20 14:09:17 2014 +0200
    42.2 +++ b/src/jdk/nashorn/internal/ir/RuntimeNode.java	Fri Oct 17 14:24:26 2014 +0200
    42.3 @@ -42,6 +42,7 @@
    42.4   */
    42.5  @Immutable
    42.6  public class RuntimeNode extends Expression implements Optimistic {
    42.7 +    private static final long serialVersionUID = 1L;
    42.8  
    42.9      /**
   42.10       * Request enum used for meta-information about the runtime request
    43.1 --- a/src/jdk/nashorn/internal/ir/SplitNode.java	Mon Oct 20 14:09:17 2014 +0200
    43.2 +++ b/src/jdk/nashorn/internal/ir/SplitNode.java	Fri Oct 17 14:24:26 2014 +0200
    43.3 @@ -40,6 +40,8 @@
    43.4   */
    43.5  @Immutable
    43.6  public class SplitNode extends LexicalContextStatement implements Labels, CompileUnitHolder {
    43.7 +    private static final long serialVersionUID = 1L;
    43.8 +
    43.9      /** Split node method name. */
   43.10      private final String name;
   43.11  
    44.1 --- a/src/jdk/nashorn/internal/ir/Statement.java	Mon Oct 20 14:09:17 2014 +0200
    44.2 +++ b/src/jdk/nashorn/internal/ir/Statement.java	Fri Oct 17 14:24:26 2014 +0200
    44.3 @@ -31,6 +31,7 @@
    44.4   * location information is the Statement
    44.5   */
    44.6  public abstract class Statement extends Node implements Terminal {
    44.7 +    private static final long serialVersionUID = 1L;
    44.8  
    44.9      private final int lineNumber;
   44.10  
    45.1 --- a/src/jdk/nashorn/internal/ir/SwitchNode.java	Mon Oct 20 14:09:17 2014 +0200
    45.2 +++ b/src/jdk/nashorn/internal/ir/SwitchNode.java	Fri Oct 17 14:24:26 2014 +0200
    45.3 @@ -37,6 +37,8 @@
    45.4   */
    45.5  @Immutable
    45.6  public final class SwitchNode extends BreakableStatement {
    45.7 +    private static final long serialVersionUID = 1L;
    45.8 +
    45.9      /** Switch expression. */
   45.10      private final Expression expression;
   45.11  
    46.1 --- a/src/jdk/nashorn/internal/ir/TernaryNode.java	Mon Oct 20 14:09:17 2014 +0200
    46.2 +++ b/src/jdk/nashorn/internal/ir/TernaryNode.java	Fri Oct 17 14:24:26 2014 +0200
    46.3 @@ -37,6 +37,8 @@
    46.4   */
    46.5  @Immutable
    46.6  public final class TernaryNode extends Expression {
    46.7 +    private static final long serialVersionUID = 1L;
    46.8 +
    46.9      private final Expression test;
   46.10      private final JoinPredecessorExpression trueExpr;
   46.11      private final JoinPredecessorExpression falseExpr;
    47.1 --- a/src/jdk/nashorn/internal/ir/ThrowNode.java	Mon Oct 20 14:09:17 2014 +0200
    47.2 +++ b/src/jdk/nashorn/internal/ir/ThrowNode.java	Fri Oct 17 14:24:26 2014 +0200
    47.3 @@ -33,6 +33,8 @@
    47.4   */
    47.5  @Immutable
    47.6  public final class ThrowNode extends Statement implements JoinPredecessor {
    47.7 +    private static final long serialVersionUID = 1L;
    47.8 +
    47.9      /** Exception expression. */
   47.10      private final Expression expression;
   47.11  
    48.1 --- a/src/jdk/nashorn/internal/ir/TryNode.java	Mon Oct 20 14:09:17 2014 +0200
    48.2 +++ b/src/jdk/nashorn/internal/ir/TryNode.java	Fri Oct 17 14:24:26 2014 +0200
    48.3 @@ -36,6 +36,8 @@
    48.4   */
    48.5  @Immutable
    48.6  public final class TryNode extends Statement implements JoinPredecessor {
    48.7 +    private static final long serialVersionUID = 1L;
    48.8 +
    48.9      /** Try statements. */
   48.10      private final Block body;
   48.11  
    49.1 --- a/src/jdk/nashorn/internal/ir/UnaryNode.java	Mon Oct 20 14:09:17 2014 +0200
    49.2 +++ b/src/jdk/nashorn/internal/ir/UnaryNode.java	Fri Oct 17 14:24:26 2014 +0200
    49.3 @@ -46,6 +46,8 @@
    49.4   */
    49.5  @Immutable
    49.6  public final class UnaryNode extends Expression implements Assignment<Expression>, Optimistic {
    49.7 +    private static final long serialVersionUID = 1L;
    49.8 +
    49.9      /** Right hand side argument. */
   49.10      private final Expression expression;
   49.11  
    50.1 --- a/src/jdk/nashorn/internal/ir/VarNode.java	Mon Oct 20 14:09:17 2014 +0200
    50.2 +++ b/src/jdk/nashorn/internal/ir/VarNode.java	Fri Oct 17 14:24:26 2014 +0200
    50.3 @@ -34,6 +34,8 @@
    50.4   */
    50.5  @Immutable
    50.6  public final class VarNode extends Statement implements Assignment<IdentNode> {
    50.7 +    private static final long serialVersionUID = 1L;
    50.8 +
    50.9      /** Var name. */
   50.10      private final IdentNode name;
   50.11  
    51.1 --- a/src/jdk/nashorn/internal/ir/WhileNode.java	Mon Oct 20 14:09:17 2014 +0200
    51.2 +++ b/src/jdk/nashorn/internal/ir/WhileNode.java	Fri Oct 17 14:24:26 2014 +0200
    51.3 @@ -34,6 +34,8 @@
    51.4   */
    51.5  @Immutable
    51.6  public final class WhileNode extends LoopNode {
    51.7 +    private static final long serialVersionUID = 1L;
    51.8 +
    51.9  
   51.10      /** is this a do while node ? */
   51.11      private final boolean isDoWhile;
    52.1 --- a/src/jdk/nashorn/internal/ir/WithNode.java	Mon Oct 20 14:09:17 2014 +0200
    52.2 +++ b/src/jdk/nashorn/internal/ir/WithNode.java	Fri Oct 17 14:24:26 2014 +0200
    52.3 @@ -33,6 +33,8 @@
    52.4   */
    52.5  @Immutable
    52.6  public final class WithNode extends LexicalContextStatement {
    52.7 +    private static final long serialVersionUID = 1L;
    52.8 +
    52.9     /** This expression. */
   52.10      private final Expression expression;
   52.11  
    53.1 --- a/src/jdk/nashorn/internal/parser/Lexer.java	Mon Oct 20 14:09:17 2014 +0200
    53.2 +++ b/src/jdk/nashorn/internal/parser/Lexer.java	Fri Oct 17 14:24:26 2014 +0200
    53.3 @@ -46,6 +46,7 @@
    53.4  import static jdk.nashorn.internal.parser.TokenType.STRING;
    53.5  import static jdk.nashorn.internal.parser.TokenType.XML;
    53.6  
    53.7 +import java.io.Serializable;
    53.8  import jdk.nashorn.internal.runtime.ECMAErrors;
    53.9  import jdk.nashorn.internal.runtime.ErrorManager;
   53.10  import jdk.nashorn.internal.runtime.JSErrorType;
   53.11 @@ -1717,7 +1718,9 @@
   53.12       * Helper class for Lexer tokens, e.g XML or RegExp tokens.
   53.13       * This is the abstract superclass
   53.14       */
   53.15 -    public static abstract class LexerToken {
   53.16 +    public static abstract class LexerToken implements Serializable {
   53.17 +        private static final long serialVersionUID = 1L;
   53.18 +
   53.19          private final String expression;
   53.20  
   53.21          /**
   53.22 @@ -1741,6 +1744,8 @@
   53.23       * Temporary container for regular expressions.
   53.24       */
   53.25      public static class RegexToken extends LexerToken {
   53.26 +        private static final long serialVersionUID = 1L;
   53.27 +
   53.28          /** Options. */
   53.29          private final String options;
   53.30  
   53.31 @@ -1773,6 +1778,7 @@
   53.32       * Temporary container for XML expression.
   53.33       */
   53.34      public static class XMLToken extends LexerToken {
   53.35 +        private static final long serialVersionUID = 1L;
   53.36  
   53.37          /**
   53.38           * Constructor.

mercurial