
com.google.javascript.jscomp.ControlFlowAnalysis.class Maven / Gradle / Ivy
The newest version!
???? 3J ?7
?89
: ?;<
8 ?=
>? ?@ ?A ?B ?C ?D
EFG
HI ?J ?KL
8 ?MN
?O
P
QR
STUV ?W
XY
?Z
X[\]^_^`b $cd
&eUf
Hg
Xhi
+j
+k
+l
+m
Xn
+o ?p
&q
\rst
&u
&v
&w
Ex
Ey
Ezs{s|
?}
?~
?
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
&? ??
?? ??
??
E?
??
&?
E?
&? ??
&l? \? \?
??
&?
&? \?
&?
&?
E?
&? ??
&?
&?
&?
????
??
????
o?
???
H?
E?
&?s]
??
&?????] ??
X?
X?
??sl
&?
?]
??
??
??
&?
??
X?
&?
??????? InnerClasses AstControlFlowGraph compiler /Lcom/google/javascript/jscomp/AbstractCompiler; cfg /Lcom/google/javascript/jscomp/ControlFlowGraph; Signature SLcom/google/javascript/jscomp/ControlFlowGraph; astPosition Ljava/util/Map; FLjava/util/Map; nodePriorities DiGraphNode? Branch ?Ljava/util/Map;Ljava/lang/Integer;>; priorityComparator Ljava/util/Comparator; ?Ljava/util/Comparator;>; astPositionCounter I priorityCounter !shouldTraverseFunctionsAndClasses Z edgeAnnotations root "Lcom/google/javascript/rhino/Node; exceptionHandler Ljava/util/Deque; 5Ljava/util/Deque;
finallyMap $Lcom/google/common/collect/Multimap; jLcom/google/common/collect/Multimap; 4(Lcom/google/javascript/jscomp/AbstractCompiler;ZZ)V Code LineNumberTable LocalVariableTable this 2Lcom/google/javascript/jscomp/ControlFlowAnalysis; getCfg 1()Lcom/google/javascript/jscomp/ControlFlowGraph; U()Lcom/google/javascript/jscomp/ControlFlowGraph; process G(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V value candidate 8Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode; externs entry LocalVariableTypeTable ?Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;
StackMapTableb?d prioritizeFromEntryNode ;(Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;)V current
successors Ljava/util/List; worklist Ljava/util/PriorityQueue; ?Ljava/util/List;>; ?Ljava/util/PriorityQueue;>;i ?(Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;)V shouldTraverse s(Lcom/google/javascript/jscomp/NodeTraversal;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)Z
nodeTraversal ,Lcom/google/javascript/jscomp/NodeTraversal; n parent visit s(Lcom/google/javascript/jscomp/NodeTraversal;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V t handleIf %(Lcom/google/javascript/rhino/Node;)V node thenBlock elseBlock handleWhile cond handleDo handleFor item
collection body init iter forNode? handleSwitch next
handleCase deflt
handleDefault
handleWith handleStmtList child handleFunction
handleExpr handleThrow handleTry handleCatch handleBreak label Ljava/lang/String; cur previous lastJump? handleContinue handleReturn
curHandler
handleStmt computeFollowNode x(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/ControlFlowAnalysis;)Lcom/google/javascript/rhino/Node; cfa F(Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/rhino/Node; ?(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/ControlFlowAnalysis;)Lcom/google/javascript/rhino/Node; finallyNode fromNode nextSibling computeFallThrough
createEdge }(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/ControlFlowGraph$Branch;Lcom/google/javascript/rhino/Node;)V branch 6Lcom/google/javascript/jscomp/ControlFlowGraph$Branch; toNode !connectToPossibleExceptionHandler ancestor
catchBlock lastJumpInCatchBlock handler cfgNode target getNextSiblingOfType j(Lcom/google/javascript/rhino/Node;[Lcom/google/javascript/rhino/Token;)Lcom/google/javascript/rhino/Node; type #Lcom/google/javascript/rhino/Token; c first types $[Lcom/google/javascript/rhino/Token;!
isBreakTarget 7(Lcom/google/javascript/rhino/Node;Ljava/lang/String;)Z isContinueTarget
matchLabel mayThrowException %(Lcom/google/javascript/rhino/Node;)Z isBreakStructure &(Lcom/google/javascript/rhino/Node;Z)Z labeled isContinueStructure getExceptionHandler catchNode getCatchHandlerForBlock s block
access$000 C(Lcom/google/javascript/jscomp/ControlFlowAnalysis;)Ljava/util/Map; x0
SourceFile ControlFlowAnalysis.java ? ? ?? 2com/google/javascript/jscomp/ControlFlowAnalysis$1 ?? ? ? java/util/ArrayDeque ? ???? ? ? ? ? ? ? ? ? ? ???( %Unexpected control flow graph root %s??? ? ? ? ? java/util/HashMap ? ? Dcom/google/javascript/jscomp/ControlFlowAnalysis$AstControlFlowGraph
??????????? ? ???? ? ????????? ??? 6com/google/javascript/jscomp/graph/DiGraph$DiGraphNode?? com/google/javascript/rhino/Node???????? java/util/PriorityQueue ????????
(?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(? !com/google/javascript/rhino/Token !?"#$?%?&('?() *?+,#$-?./0123? java/lang/IllegalStateException Cannot find break target. ?4%$ Cannot find continue target.?56(78 9?
Not reachable:;<=>?@A'(BDE)*&$,(F??G?H(I?/ 0com/google/javascript/jscomp/ControlFlowAnalysis java/lang/Object 3com/google/javascript/jscomp/NodeTraversal$Callback Callback )com/google/javascript/jscomp/CompilerPass 2com/google/javascript/jscomp/ControlFlowAnalysis$2 4com/google/javascript/jscomp/ControlFlowGraph$Branch java/util/Iterator java/lang/String ()V 5(Lcom/google/javascript/jscomp/ControlFlowAnalysis;)V &com/google/common/collect/HashMultimap create *()Lcom/google/common/collect/HashMultimap; %com/google/javascript/jscomp/NodeUtil isValidCfgRoot $com/google/common/base/Preconditions
checkArgument ((ZLjava/lang/String;Ljava/lang/Object;)V i(Lcom/google/javascript/rhino/Node;Ljava/util/Map;ZLcom/google/javascript/jscomp/ControlFlowAnalysis$1;)V *com/google/javascript/jscomp/NodeTraversal traverseEs6 ?(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/NodeTraversal$Callback;)V java/lang/Integer valueOf (I)Ljava/lang/Integer;
java/util/Map put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -com/google/javascript/jscomp/ControlFlowGraph getEntry :()Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode; getDirectedGraphNodes ()Ljava/lang/Iterable; java/lang/Iterable iterator ()Ljava/util/Iterator; hasNext ()Z ()Ljava/lang/Object; *com/google/javascript/jscomp/graph/DiGraph getValue
isFunction containsKey (Ljava/lang/Object;)Z
checkState (Z)V getImplicitReturn (ILjava/util/Comparator;)V add isEmpty remove getDirectedSuccNodes J(Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;)Ljava/util/List; addAll (Ljava/util/Collection;)Z ,$SwitchMap$com$google$javascript$rhino$Token [I getToken %()Lcom/google/javascript/rhino/Token; ordinal ()I java/util/Deque push (Ljava/lang/Object;)V getLastChild $()Lcom/google/javascript/rhino/Node; getSecondChild
getFirstChild
hasFinally
getCatchBlock isTryFinallyNode G(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)Z peek pop getNext ON_TRUE ON_FALSE getConditionExpression isTrue isForIn isForOf UNCOND CASE EMPTY isCase getParent DEFAULT_CASE isBlock isTry hasCatchHandler isSyntheticBlock SYN_BLOCK
getChildCount hasChildren getString ()Ljava/lang/String; "com/google/common/collect/Multimap '(Ljava/lang/Object;Ljava/lang/Object;)Z -com/google/javascript/jscomp/AbstractCompiler
getOptions 0()Lcom/google/javascript/jscomp/CompilerOptions; ,com/google/javascript/jscomp/CompilerOptions canContinueAfterErrors (Ljava/lang/String;)V (ZLjava/lang/Object;)V isVanillaFor getChildAtIndex %(I)Lcom/google/javascript/rhino/Node;
isDefaultCase get *(Ljava/lang/Object;)Ljava/util/Collection; java/util/Collection ON_EX
createNode L(Ljava/lang/Object;)Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode; connectIfNotFound 9(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V getAncestors AncestorIterable 5()Lcom/google/javascript/rhino/Node$AncestorIterable; 1com/google/javascript/rhino/Node$AncestorIterable isLabel equals isEnteringNewCfgNode isScript 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ( ? ? ? ? 2*? *? Y*? ? *? Y? ? *? ?
*+? *? *?
? ? " ? D ] | " ? ' ? , ? 1 ? ? * 2 ? ? 2 ? ? 2 ? ? 2 ? ? ? ? ? / *? ? ? ? ? ? ? ? ? ? ? ? s N,? ,? *,? *? *? Y? ? *? Y? ? *? Y,? *? *?
? ? *? ,*? *? *Y? `Z? ? ? W*? *? ? N*-? *? ? e*? ? ? ! :? " ? M? # ? $:? % ? &:? -? '? %*? ? ( ? -? ? ? )*? ???*? ? ? ! :? " ? :? # ? $:*? ? ( ? *? *Y? `Z? ? ? W???*? *? ? **Y? `Z? ? ? W? ? r ? ? ?
? ? ? ? * ? B ? K ? d ? i ? q ? v ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+ ?. ?M ? ? H ? / ? ? ? ; ? ? ( ? ? N ? ? N ? ? N ? ? q ? ? ? ? ? ; ? ? ( ? ? q ? ? ? ? ' ? ? ? ?? B ? ?@? ? ?
?=? ? ? ? &