
com.google.javascript.jscomp.PureFunctionIdentifier$FunctionAnalyzer.class Maven / Gradle / Ivy
The newest version!
???? 3? _ ?
` ?
? ? _ ? _ ? _ ?
? ? ? ?
? ?
? ? ? ? ?
? ? ?
? ?
? ? ?
? ?
? ?
? ?
? ?
? ? ? ?
? ? ? ? ? ? ? ? ? ?
? ?
_ ?
? ?
? ?
? ?
? ?
? ?
_ ?
_ ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ? ? ?
? ?
?
? ?
? ? ?
4 ? ?
4 ?
? ?
4 ?
4 ?
3 ?
? ?
? ?
? ?
? ? ?
? ?
?
_ ?
? ? ?
F
? ?
?
F ?
_
?
?
?
?
?
?
?
?
?
?
? ? ?
?
? blacklistedVarsByFunction 'Lcom/google/common/collect/SetMultimap; Signature mLcom/google/common/collect/SetMultimap; taintedVarsByFunction inExterns Z this$0 5Lcom/google/javascript/jscomp/PureFunctionIdentifier; 9(Lcom/google/javascript/jscomp/PureFunctionIdentifier;Z)V Code LineNumberTable LocalVariableTable this FunctionAnalyzer InnerClasses FLcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionAnalyzer; resetFunctionVars %(Lcom/google/javascript/rhino/Node;)V function "Lcom/google/javascript/rhino/Node; shouldTraverse s(Lcom/google/javascript/jscomp/NodeTraversal;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)Z functionInfo FunctionInformation ILcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionInformation; traversal ,Lcom/google/javascript/jscomp/NodeTraversal; node parent
StackMapTable visit s(Lcom/google/javascript/jscomp/NodeTraversal;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V sideEffectInfo enclosingFunction updateSideEffectsForNode ?(Lcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionInformation;Lcom/google/javascript/jscomp/NodeTraversal;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V scope $Lcom/google/javascript/jscomp/Scope; var "Lcom/google/javascript/jscomp/Var; value
enterScope /(Lcom/google/javascript/jscomp/NodeTraversal;)V t exitScope param localVar v ? varDeclaredInDifferentFunction I(Lcom/google/javascript/jscomp/Var;Lcom/google/javascript/jscomp/Scope;)Z declarationRoot scopeRoot visitAssignmentOrUnaryOperator ?(Lcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionInformation;Lcom/google/javascript/jscomp/Scope;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V rhs
objectNode op lhs visitCall n(Lcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionInformation;Lcom/google/javascript/rhino/Node;)V edge CallSitePropagationInfo MLcom/google/javascript/jscomp/PureFunctionIdentifier$CallSitePropagationInfo; sideEffectNode possibleSideEffects Ljava/util/List; LocalVariableTypeTable [Ljava/util/List;
SourceFile PureFunctionIdentifier.java i j k!"#$ b c f c g h%&'()*+,-./012 Gcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionInformation k456789:=>?@ABCDE,FGHI J2KLMNOPQRS,TUVWX ? ?YGZ,[,\,]^ ? ? ? ?_,`MaGbcdMeGfghijk,l!m,n! "java/lang/IllegalArgumentException java/lang/StringBuilder Unhandled side effect node type opqrostg kuv,w,xMLy %s has no side effect info.Wz{, t u|}~ com/google/javascript/jscomp/VarM?,?6?!?,?! ? ?? w ? ??G?c?M?,?G?,?!?,?D?,?G?????? Dcom/google/javascript/jscomp/PureFunctionIdentifier$FunctionAnalyzer java/lang/Object 9com/google/javascript/jscomp/NodeTraversal$ScopedCallback ScopedCallback com/google/javascript/rhino/Node java/util/Iterator Kcom/google/javascript/jscomp/PureFunctionIdentifier$CallSitePropagationInfo java/util/List ()V &com/google/common/collect/HashMultimap create *()Lcom/google/common/collect/HashMultimap; java/util/Collections emptySet ()Ljava/util/Set; %com/google/common/collect/SetMultimap
replaceValues 7(Ljava/lang/Object;Ljava/lang/Iterable;)Ljava/util/Set;
isFunction ()Z 3com/google/javascript/jscomp/PureFunctionIdentifier
access$200 [(Lcom/google/javascript/jscomp/PureFunctionIdentifier;)Lcom/google/common/collect/Multimap; "com/google/common/collect/Multimap containsKey (Ljava/lang/Object;)Z? :(Lcom/google/javascript/jscomp/PureFunctionIdentifier$1;)V put '(Ljava/lang/Object;Ljava/lang/Object;)Z
access$300 o(Lcom/google/javascript/jscomp/PureFunctionIdentifier;)Lcom/google/javascript/jscomp/graph/LinkedDirectedGraph; 6com/google/javascript/jscomp/graph/LinkedDirectedGraph
createNode? DiGraphNode L(Ljava/lang/Object;)Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode; graphNode 8Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;
access$400 f(Lcom/google/javascript/jscomp/PureFunctionIdentifier;)Lcom/google/javascript/jscomp/AbstractCompiler; %com/google/javascript/jscomp/NodeUtil nodeTypeMayHaveSideEffects T(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/AbstractCompiler;)Z isReturn isCallOrNew %(Lcom/google/javascript/rhino/Node;)Z
access$500 G(Lcom/google/javascript/jscomp/PureFunctionIdentifier;)Ljava/util/List; add *com/google/javascript/jscomp/NodeTraversal getEnclosingFunction $()Lcom/google/javascript/rhino/Node; get *(Ljava/lang/Object;)Ljava/util/Collection; java/util/Collection iterator ()Ljava/util/Iterator; hasNext next ()Ljava/lang/Object; $com/google/common/base/Preconditions checkNotNull &(Ljava/lang/Object;)Ljava/lang/Object; isAssignmentOp isInc isDelProp isDec getScope &()Lcom/google/javascript/jscomp/Scope; isName getParent isNameDeclaration
checkArgument (Z)V
getFirstChild evaluatesToLocalValue getString ()Ljava/lang/String; "com/google/javascript/jscomp/Scope getVar 6(Ljava/lang/String;)Lcom/google/javascript/jscomp/Var; isThrow setFunctionThrows hasChildren setTaintsReturn append -(Ljava/lang/String;)Ljava/lang/StringBuilder; getToken %()Lcom/google/javascript/rhino/Token; -(Ljava/lang/Object;)Ljava/lang/StringBuilder; toString (Ljava/lang/String;)V isFunctionBlockScope isFunctionScope getScopeRoot F(Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/rhino/Node; J(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; mutatesGlobalState getVarIterable ()Ljava/lang/Iterable; java/lang/Iterable
getParentNode isParamList
containsEntry setTaintsArguments isVar setTaintsGlobalState rootNode
access$600
checkState getLastChild isAssign isGet isThis
setTaintsThis isCall functionCallHasSideEffects isNew constructorCallHasSideEffects
access$700 i(Lcom/google/javascript/jscomp/PureFunctionIdentifier;Lcom/google/javascript/rhino/Node;)Ljava/util/List; computePropagationType q(Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/jscomp/PureFunctionIdentifier$CallSitePropagationInfo; connect ?(Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;Ljava/lang/Object;Lcom/google/javascript/jscomp/graph/DiGraph$DiGraphNode;)V 5com/google/javascript/jscomp/PureFunctionIdentifier$1? 6com/google/javascript/jscomp/graph/DiGraph$DiGraphNode *com/google/javascript/jscomp/graph/DiGraph _ ` a b c d e f c d e g h i j
k l m a *+? *? *? ? *? ? *? ? n ? ? ? ? ? o p s g h t u m Y *? +? ? W*? +? ? W? n ? ? ? o p s v w x y m ? D,? ? >*? ?
,? ? .? Y?
:*? ?
,? W*? ? ? ? ? n ? ? ? !? 1? B? o 4 ! ! z | D p s D } ~ D w D ? w ? ? B ? ? m ( ~*? ? ?,*? ? ? ? ,? ? ?,? ? *? ? ,? W+? :? ?*? ?
? ? :? ? "? ? :? W*+,? ??ڱ n : ? ? ? ? ? %? 3? 9? >? ?? j? p? z? }? o > j ? | ~ p s ~ } ~ ~ w ~ ? w 9 E ? w ? ? ?? ?? ( ? ? m ? ?-? ? -? ? -? !?
-? "? *+,? #-? $? ?-? ? *+-? %? ?-? &? B-? '? (? )-? *:? *? +? ",? #:-? ,? -:*? ? . W? N-? /?
+? 0? @-? ? -? 1? 2-? *? +? (+? 2? !? 3Y? 4Y? 56? 7-? 8? 9? :? ;?? n R ? ? ? %? +? 2? ;? B? L? R? _? e? p? ~? ?? ?? ?? ?? ?? ?? o R e ? ? p ? ? R , ? w ? p s ? ? | ? } ~ ? w ? ? w ? ? B
? ? m 5 ? n ? o p s ? ~ ? ? m ! +? #?