Package | Description |
---|---|
com.google.javascript.jscomp |
Provides the core compiler and its public API.
|
Modifier and Type | Field and Description |
---|---|
private DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> |
ControlFlowGraph.entry |
private java.util.Map<DiGraph.DiGraphEdge<Node,ControlFlowGraph.Branch>,TypeEnv> |
NewTypeInference.envs |
private static com.google.common.base.Predicate<DiGraph.DiGraphEdge<Node,ControlFlowGraph.Branch>> |
CheckMissingReturn.GOES_THROUGH_TRUE_CONDITION_PREDICATE |
private DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> |
ControlFlowGraph.implicitReturn
A special node marked by the node value key null to a singleton
"return" when control is transferred outside of the current control flow
graph.
|
private java.util.Map<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>,java.lang.Integer> |
ControlFlowAnalysis.nodePriorities |
protected java.util.Set<DiGraph.DiGraphNode<N,ControlFlowGraph.Branch>> |
DataFlowAnalysis.orderedWorkSet |
private java.util.Map<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>,java.lang.Integer> |
ControlFlowAnalysis.AstControlFlowGraph.priorities |
private java.util.Comparator<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> |
ControlFlowAnalysis.priorityComparator |
Modifier and Type | Method and Description |
---|---|
static ControlFlowGraph.Branch |
ControlFlowGraph.Branch.valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static ControlFlowGraph.Branch[] |
ControlFlowGraph.Branch.values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
Modifier and Type | Method and Description |
---|---|
DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> |
ControlFlowGraph.getEntry()
Gets the entry point of the control flow graph.
|
DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> |
ControlFlowGraph.getImplicitReturn()
Gets the implicit return node.
|
java.util.Comparator<DiGraph.DiGraphNode<N,ControlFlowGraph.Branch>> |
ControlFlowGraph.getOptionalNodeComparator(boolean isForward)
Gets a comparator for the nodes.
|
java.util.Comparator<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> |
ControlFlowAnalysis.AstControlFlowGraph.getOptionalNodeComparator(boolean isForward) |
Modifier and Type | Method and Description |
---|---|
private void |
ControlFlowAnalysis.createEdge(Node fromNode,
ControlFlowGraph.Branch branch,
Node toNode)
Connects the two nodes in the control flow graph.
|
Modifier and Type | Method and Description |
---|---|
private void |
NewTypeInference.analyzeConditionalStmFwd(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> stm,
Node cond,
TypeEnv inEnv) |
private void |
NewTypeInference.analyzeFunctionBwd(java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private void |
NewTypeInference.analyzeFunctionFwd(java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
boolean |
CheckUnreachableCode.ReachablePredicate.apply(GraphReachability.EdgeTuple<Node,ControlFlowGraph.Branch> input) |
private void |
NewTypeInference.buildWorkset(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private void |
NewTypeInference.buildWorkset(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset) |
private void |
NewTypeInference.buildWorksetHelper(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset,
java.util.Set<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> seen) |
private void |
NewTypeInference.buildWorksetHelper(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset,
java.util.Set<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> seen) |
private void |
NewTypeInference.buildWorksetHelper(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
java.util.List<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> workset,
java.util.Set<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>> seen) |
protected boolean |
DataFlowAnalysis.flow(DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> node)
Performs a single flow through a node.
|
protected boolean |
DataFlowAnalysis.BranchedForwardDataFlowAnalysis.flow(DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> node) |
private TypeEnv |
NewTypeInference.getInEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn) |
private TypeEnv |
NewTypeInference.getOutEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn) |
private int |
ControlFlowAnalysis.AstControlFlowGraph.getPosition(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> n)
Gets the pre-order traversal position of the given node.
|
boolean |
ControlFlowGraph.isImplicitReturn(DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> node)
Checks whether node is the implicit return.
|
protected void |
DataFlowAnalysis.joinInputs(DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> node)
Computes the new flow state at a given node's entry by merging the
output (input) lattice of the node's predecessor (successor).
|
protected void |
DataFlowAnalysis.BranchedForwardDataFlowAnalysis.joinInputs(DiGraph.DiGraphNode<N,ControlFlowGraph.Branch> node) |
private void |
ControlFlowAnalysis.prioritizeFromEntryNode(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> entry)
Given an entry node, find all the nodes reachable from that node
and prioritize them.
|
private TypeEnv |
NewTypeInference.setOutEnv(DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch> dn,
TypeEnv e) |
Constructor and Description |
---|
AstControlFlowGraph(Node entry,
java.util.Map<DiGraph.DiGraphNode<Node,ControlFlowGraph.Branch>,java.lang.Integer> priorities,
boolean edgeAnnotations)
Constructor.
|