aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/internal/ir/LiteralNode.java
diff options
context:
space:
mode:
authorlagergren <none@none>2013-05-07 14:36:57 +0200
committerlagergren <none@none>2013-05-07 14:36:57 +0200
commitc50c02ff3ba59060448f9b98778e9304b828eb94 (patch)
tree72699ff4c9325da6e516e4827c4fbb925a4a9eca /src/jdk/nashorn/internal/ir/LiteralNode.java
parent0a0c0f3e8384865948bb0e34a3de7046bb417731 (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.java102
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);
}
}