diff options
author | lagergren <none@none> | 2013-05-07 14:36:57 +0200 |
---|---|---|
committer | lagergren <none@none> | 2013-05-07 14:36:57 +0200 |
commit | c50c02ff3ba59060448f9b98778e9304b828eb94 (patch) | |
tree | 72699ff4c9325da6e516e4827c4fbb925a4a9eca /src/jdk/nashorn/internal/ir/LiteralNode.java | |
parent | 0a0c0f3e8384865948bb0e34a3de7046bb417731 (diff) |
8013913: Removed Source field from all nodes except FunctionNode in order to save footprint
Reviewed-by: jlaskey, attila
Diffstat (limited to 'src/jdk/nashorn/internal/ir/LiteralNode.java')
-rw-r--r-- | src/jdk/nashorn/internal/ir/LiteralNode.java | 102 |
1 files changed, 45 insertions, 57 deletions
diff --git a/src/jdk/nashorn/internal/ir/LiteralNode.java b/src/jdk/nashorn/internal/ir/LiteralNode.java index 5d41c956..4c2f932c 100644 --- a/src/jdk/nashorn/internal/ir/LiteralNode.java +++ b/src/jdk/nashorn/internal/ir/LiteralNode.java @@ -37,7 +37,6 @@ import jdk.nashorn.internal.parser.Token; import jdk.nashorn.internal.parser.TokenType; import jdk.nashorn.internal.runtime.JSType; import jdk.nashorn.internal.runtime.ScriptRuntime; -import jdk.nashorn.internal.runtime.Source; import jdk.nashorn.internal.runtime.Undefined; /** @@ -50,16 +49,15 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** Literal value */ protected final T value; - /** + /** * Constructor * - * @param source the source * @param token token * @param finish finish * @param value the value of the literal */ - protected LiteralNode(final Source source, final long token, final int finish, final T value) { - super(source, token, finish); + protected LiteralNode(final long token, final int finish, final T value) { + super(token, finish); this.value = value; } @@ -238,14 +236,13 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new null literal * - * @param source the source * @param token token * @param finish finish * * @return the new literal node */ - public static LiteralNode<Node> newInstance(final Source source, final long token, final int finish) { - return new NodeLiteralNode(source, token, finish); + public static LiteralNode<Node> newInstance(final long token, final int finish) { + return new NodeLiteralNode(token, finish); } /** @@ -256,14 +253,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent) { - return new NodeLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish()); + return new NodeLiteralNode(parent.getToken(), parent.getFinish()); } @Immutable private static final class BooleanLiteralNode extends LiteralNode<Boolean> { - private BooleanLiteralNode(final Source source, final long token, final int finish, final boolean value) { - super(source, Token.recast(token, value ? TokenType.TRUE : TokenType.FALSE), finish, value); + private BooleanLiteralNode(final long token, final int finish, final boolean value) { + super(Token.recast(token, value ? TokenType.TRUE : TokenType.FALSE), finish, value); } private BooleanLiteralNode(final BooleanLiteralNode literalNode) { @@ -289,15 +286,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new boolean literal * - * @param source the source * @param token token * @param finish finish * @param value true or false * * @return the new literal node */ - public static LiteralNode<Boolean> newInstance(final Source source, final long token, final int finish, final boolean value) { - return new BooleanLiteralNode(source, token, finish, value); + public static LiteralNode<Boolean> newInstance(final long token, final int finish, final boolean value) { + return new BooleanLiteralNode(token, finish, value); } /** @@ -309,7 +305,7 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final boolean value) { - return new BooleanLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value); + return new BooleanLiteralNode(parent.getToken(), parent.getFinish(), value); } @Immutable @@ -317,8 +313,8 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { private final Type type = numberGetType(value); - private NumberLiteralNode(final Source source, final long token, final int finish, final Number value) { - super(source, Token.recast(token, TokenType.DECIMAL), finish, value); + private NumberLiteralNode(final long token, final int finish, final Number value) { + super(Token.recast(token, TokenType.DECIMAL), finish, value); } private NumberLiteralNode(final NumberLiteralNode literalNode) { @@ -353,15 +349,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new number literal * - * @param source the source * @param token token * @param finish finish * @param value literal value * * @return the new literal node */ - public static LiteralNode<Number> newInstance(final Source source, final long token, final int finish, final Number value) { - return new NumberLiteralNode(source, token, finish, value); + public static LiteralNode<Number> newInstance(final long token, final int finish, final Number value) { + return new NumberLiteralNode(token, finish, value); } /** @@ -373,12 +368,12 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final Number value) { - return new NumberLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value); + return new NumberLiteralNode(parent.getToken(), parent.getFinish(), value); } private static class UndefinedLiteralNode extends LiteralNode<Undefined> { - private UndefinedLiteralNode(final Source source, final long token, final int finish) { - super(source, Token.recast(token, TokenType.OBJECT), finish, ScriptRuntime.UNDEFINED); + private UndefinedLiteralNode(final long token, final int finish) { + super(Token.recast(token, TokenType.OBJECT), finish, ScriptRuntime.UNDEFINED); } private UndefinedLiteralNode(final UndefinedLiteralNode literalNode) { @@ -389,15 +384,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new undefined literal * - * @param source the source * @param token token * @param finish finish * @param value undefined value, passed only for polymorphisism discrimination * * @return the new literal node */ - public static LiteralNode<Undefined> newInstance(final Source source, final long token, final int finish, final Undefined value) { - return new UndefinedLiteralNode(source, token, finish); + public static LiteralNode<Undefined> newInstance(final long token, final int finish, final Undefined value) { + return new UndefinedLiteralNode(token, finish); } /** @@ -409,13 +403,13 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final Undefined value) { - return new UndefinedLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish()); + return new UndefinedLiteralNode(parent.getToken(), parent.getFinish()); } @Immutable private static class StringLiteralNode extends LiteralNode<String> { - private StringLiteralNode(final Source source, final long token, final int finish, final String value) { - super(source, Token.recast(token, TokenType.STRING), finish, value); + private StringLiteralNode(final long token, final int finish, final String value) { + super(Token.recast(token, TokenType.STRING), finish, value); } private StringLiteralNode(final StringLiteralNode literalNode) { @@ -433,15 +427,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new string literal * - * @param source the source * @param token token * @param finish finish * @param value string value * * @return the new literal node */ - public static LiteralNode<String> newInstance(final Source source, final long token, final int finish, final String value) { - return new StringLiteralNode(source, token, finish, value); + public static LiteralNode<String> newInstance(final long token, final int finish, final String value) { + return new StringLiteralNode(token, finish, value); } /** @@ -453,13 +446,13 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final String value) { - return new StringLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value); + return new StringLiteralNode(parent.getToken(), parent.getFinish(), value); } @Immutable private static class LexerTokenLiteralNode extends LiteralNode<LexerToken> { - private LexerTokenLiteralNode(final Source source, final long token, final int finish, final LexerToken value) { - super(source, Token.recast(token, TokenType.STRING), finish, value); //TODO is string the correct token type here? + private LexerTokenLiteralNode(final long token, final int finish, final LexerToken value) { + super(Token.recast(token, TokenType.STRING), finish, value); //TODO is string the correct token type here? } private LexerTokenLiteralNode(final LexerTokenLiteralNode literalNode) { @@ -480,15 +473,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new literal node for a lexer token * - * @param source the source * @param token token * @param finish finish * @param value lexer token value * * @return the new literal node */ - public static LiteralNode<LexerToken> newInstance(final Source source, final long token, final int finish, final LexerToken value) { - return new LexerTokenLiteralNode(source, token, finish, value); + public static LiteralNode<LexerToken> newInstance(final long token, final int finish, final LexerToken value) { + return new LexerTokenLiteralNode(token, finish, value); } /** @@ -500,17 +492,17 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final LexerToken value) { - return new LexerTokenLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value); + return new LexerTokenLiteralNode(parent.getToken(), parent.getFinish(), value); } private static final class NodeLiteralNode extends LiteralNode<Node> { - private NodeLiteralNode(final Source source, final long token, final int finish) { - this(source, token, finish, null); + private NodeLiteralNode(final long token, final int finish) { + this(token, finish, null); } - private NodeLiteralNode(final Source source, final long token, final int finish, final Node value) { - super(source, Token.recast(token, TokenType.OBJECT), finish, value); + private NodeLiteralNode(final long token, final int finish, final Node value) { + super(Token.recast(token, TokenType.OBJECT), finish, value); } private NodeLiteralNode(final LiteralNode<Node> literalNode) { @@ -550,15 +542,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new node literal for an arbitrary node * - * @param source the source * @param token token * @param finish finish * @param value the literal value node * * @return the new literal node */ - public static LiteralNode<Node> newInstance(final Source source, final long token, final int finish, final Node value) { - return new NodeLiteralNode(source, token, finish, value); + public static LiteralNode<Node> newInstance(final long token, final int finish, final Node value) { + return new NodeLiteralNode(token, finish, value); } /** @@ -570,7 +561,7 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final Node value) { - return new NodeLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value); + return new NodeLiteralNode(parent.getToken(), parent.getFinish(), value); } /** @@ -645,13 +636,12 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Constructor * - * @param source the source * @param token token * @param finish finish * @param value array literal value, a Node array */ - protected ArrayLiteralNode(final Source source, final long token, final int finish, final Node[] value) { - super(source, Token.recast(token, TokenType.ARRAY), finish, value); + protected ArrayLiteralNode(final long token, final int finish, final Node[] value) { + super(Token.recast(token, TokenType.ARRAY), finish, value); this.elementType = Type.UNKNOWN; } @@ -886,15 +876,14 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { /** * Create a new array literal of Nodes from a list of Node values * - * @param source the source * @param token token * @param finish finish * @param value literal value list * * @return the new literal node */ - public static LiteralNode<Node[]> newInstance(final Source source, final long token, final int finish, final List<Node> value) { - return new ArrayLiteralNode(source, token, finish, value.toArray(new Node[value.size()])); + public static LiteralNode<Node[]> newInstance(final long token, final int finish, final List<Node> value) { + return new ArrayLiteralNode(token, finish, value.toArray(new Node[value.size()])); } @@ -907,20 +896,19 @@ public abstract class LiteralNode<T> extends Node implements PropertyKey { * @return the new literal node */ public static LiteralNode<?> newInstance(final Node parent, final List<Node> value) { - return new ArrayLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value.toArray(new Node[value.size()])); + return new ArrayLiteralNode(parent.getToken(), parent.getFinish(), value.toArray(new Node[value.size()])); } /** * Create a new array literal of Nodes * - * @param source the source * @param token token * @param finish finish * @param value literal value array * * @return the new literal node */ - public static LiteralNode<Node[]> newInstance(final Source source, final long token, final int finish, final Node[] value) { - return new ArrayLiteralNode(source, token, finish, value); + public static LiteralNode<Node[]> newInstance(final long token, final int finish, final Node[] value) { + return new ArrayLiteralNode(token, finish, value); } } |