private class StripCode.Strip extends NodeTraversal.AbstractPostOrderCallback
| Modifier | Constructor and Description |
|---|---|
private |
Strip() |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
actsOnStripType(NodeTraversal t,
Node callNode)
Determines whether the given node helps to define a
strip type.
|
(package private) void |
eliminateKeysWithStripNamesFromObjLit(NodeTraversal t,
Node n)
Eliminates any object literal keys in an object literal declaration that
have strip names.
|
(package private) boolean |
isCallWhoseReturnValueShouldBeStripped(Node n)
Gets whether a node is a CALL node whose return value should be
stripped.
|
(package private) boolean |
isMethodOrCtorCallThatTriggersRemoval(NodeTraversal t,
Node n,
Node parent)
Gets whether a CALL node triggers statement removal, based on the name
of the object whose method is being called, or the name of the method.
|
(package private) boolean |
isReferenceToRemovedVar(NodeTraversal t,
Node n)
Determines whether a NAME node represents a reference to a variable that
has been removed.
|
(package private) boolean |
isStripName(java.lang.String name)
Gets whether a JavaScript identifier is the name of a variable or
property that should be stripped.
|
(package private) void |
maybeEliminateAssignmentByLvalueName(NodeTraversal t,
Node n,
Node parent)
Eliminates an assignment if the l-value is:
- A field name that's a strip name
- A qualified name that begins with a strip type
|
(package private) void |
maybeEliminateExpressionByName(NodeTraversal t,
Node n,
Node parent)
Eliminates an expression if it refers to:
- A field name that's a strip name
- A qualified name that begins with a strip type
This gets rid of construct like:
a.prototype.logger; (used instead of a.prototype.logger = null;)
This expression is not an assignment and so will not be caught by
maybeEliminateAssignmentByLvalueName.
|
(package private) void |
maybeRemoveCall(NodeTraversal t,
Node n,
Node parent)
Removes a method call if
isMethodOrCtorCallThatTriggersRemoval(com.google.javascript.jscomp.NodeTraversal, com.google.javascript.rhino.Node, com.google.javascript.rhino.Node)
indicates that it should be removed. |
(package private) void |
maybeRemoveReferenceToRemovedVariable(NodeTraversal t,
Node n,
Node parent)
Removes a reference if it is a reference to a removed variable.
|
(package private) boolean |
nameIncludesFieldNameToStrip(Node n) |
(package private) boolean |
qualifiedNameBeginsWithStripType(Node n)
Gets whether a qualified name begins with a strip name.
|
(package private) boolean |
qualifiedNameBeginsWithStripType(java.lang.String name)
Gets whether a qualified name begins with a strip name.
|
(package private) void |
removeVarDeclarationsByNameOrRvalue(NodeTraversal t,
Node n,
Node parent)
Removes declarations of any variables whose names are strip names or
whose whose r-values are static method calls on strip types.
|
(package private) void |
replaceHighestNestedCallWithNull(Node node,
Node parent)
Use a while loop to get up out of any nested calls.
|
(package private) void |
replaceWithEmpty(Node n,
Node parent)
Replaces a node with an EMPTY node.
|
(package private) void |
replaceWithNull(Node n,
Node parent)
Replaces a node with a NULL node.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children have been visited).
|
shouldTraversepublic void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.CallbackVisits a node in postorder (after its children have been visited).
A node is visited only if all its parents should be traversed
(NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)).
Implementations can have side effects (e.g. modifying the parse tree).
void removeVarDeclarationsByNameOrRvalue(NodeTraversal t, Node n, Node parent)
t - The traversaln - A VAR nodeparent - n's parentvoid maybeRemoveReferenceToRemovedVariable(NodeTraversal t, Node n, Node parent)
t - The traversaln - A NAME nodeparent - n's parentvoid replaceHighestNestedCallWithNull(Node node, Node parent)
void maybeEliminateAssignmentByLvalueName(NodeTraversal t, Node n, Node parent)
t - The traversaln - An ASSIGN nodeparent - n's parentvoid maybeEliminateExpressionByName(NodeTraversal t, Node n, Node parent)
t - The traversaln - An EXPR_RESULT nodeparent - n's parentvoid maybeRemoveCall(NodeTraversal t, Node n, Node parent)
isMethodOrCtorCallThatTriggersRemoval(com.google.javascript.jscomp.NodeTraversal, com.google.javascript.rhino.Node, com.google.javascript.rhino.Node)
indicates that it should be removed.t - The traversaln - A CALL nodeparent - n's parentvoid eliminateKeysWithStripNamesFromObjLit(NodeTraversal t, Node n)
t - The traversaln - An OBJLIT nodeboolean isCallWhoseReturnValueShouldBeStripped(@Nullable
Node n)
n - A node (typically a CALL node)boolean qualifiedNameBeginsWithStripType(Node n)
n - A node (typically a NAME or GETPROP node)boolean qualifiedNameBeginsWithStripType(java.lang.String name)
name - A qualified class nameboolean isReferenceToRemovedVar(NodeTraversal t, Node n)
t - The traversaln - A NAME nodeboolean isMethodOrCtorCallThatTriggersRemoval(NodeTraversal t, Node n, Node parent)
t - The traversaln - A CALL nodeboolean nameIncludesFieldNameToStrip(@Nullable
Node n)
private boolean actsOnStripType(NodeTraversal t, Node callNode)
t - The current traversalcallNode - The CALL nodeboolean isStripName(java.lang.String name)
name - A JavaScript identifiername is a name that triggers removalvoid replaceWithNull(Node n, Node parent)
n - A nodeparent - n's parent