
com.google.javascript.jscomp.FunctionToBlockMutator.class Maven / Gradle / Ivy
The newest version!
???? 3? ?
t ? s ? s ?
O ?
s ?
O ?
s ?
?
?
? ?
? ?
?
? ?
O
s
s
s
s
O
?
O
O
O
O
O
O
O
?
O
O
O
?
O
?
)
(
!"#$
/%
.&
.'
()*+
5 ?,
5-./01
5234 ?
56
@78
B ?
?94:;<;=? H@4A ?
;B
?C HDE
OF
?G
sH
?I
OJKL
OM>N>OK:
P QRS
\ ?
?U
sV
sW
sX
Y
Z
[
s\
O]
^
s_
O`
sa
Ob
Oc
d
?e
Of
?g
h
Oijk LabelNameSupplier InnerClasses compiler /Lcom/google/javascript/jscomp/AbstractCompiler; safeNameIdSupplier !Lcom/google/common/base/Supplier; Signature 5Lcom/google/common/base/Supplier; S(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/common/base/Supplier;)V Code LineNumberTable LocalVariableTable this 5Lcom/google/javascript/jscomp/FunctionToBlockMutator; LocalVariableTypeTable g(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/common/base/Supplier;)V mutate ?(Ljava/lang/String;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;Ljava/lang/String;ZZ)Lcom/google/javascript/rhino/Node; inlineResult "Lcom/google/javascript/rhino/Node; fnName Ljava/lang/String; fnNode callNode
resultName needsDefaultResult Z isCallInLoop newFnNode namesToAlias Ljava/util/Set; args Ljava/util/LinkedHashMap; hasArgs newBlock labelName injectableBlock #Ljava/util/Set; OLjava/util/LinkedHashMap;
StackMapTableElm1 rewriteFunctionDeclarations %(Lcom/google/javascript/rhino/Node;)V
fnNameNode name var c next n fixUnitializedVarDeclarations G(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)V srcLocation containingBlock makeLocalNamesUnique &(Lcom/google/javascript/rhino/Node;Z)V
idSupplier getLabelNameForFunction &(Ljava/lang/String;)Ljava/lang/String; getUniqueThisName ()Ljava/lang/String; aliasAndInlineArguments n(Lcom/google/javascript/rhino/Node;Ljava/util/LinkedHashMap;Ljava/util/Set;)Lcom/google/javascript/rhino/Node; result newName newValue newNode referencesThis value entry Entry Ljava/util/Map$Entry; newArgMap Ljava/util/Map; newVars Ljava/util/List; fnTemplateRoot argMap KLjava/util/Map$Entry; ELjava/util/Map; 4Ljava/util/List;nopj? ?(Lcom/google/javascript/rhino/Node;Ljava/util/LinkedHashMap;Ljava/util/Set;)Lcom/google/javascript/rhino/Node; replaceReturns k(Lcom/google/javascript/rhino/Node;Ljava/lang/String;Ljava/lang/String;Z)Lcom/google/javascript/rhino/Node; label newRoot block resultMustBeSet root hasReturnAtExit returnCount I addDummyAssignment 7(Lcom/google/javascript/rhino/Node;Ljava/lang/String;)V node retVal
resultNode convertLastReturnToStatement ret createAssignStatementNode X(Ljava/lang/String;Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/rhino/Node;
expression nameNode assign getReplacementReturnStatement X(Lcom/google/javascript/rhino/Node;Ljava/lang/String;)Lcom/google/javascript/rhino/Node; %(Lcom/google/javascript/rhino/Node;)Z replaceReturnWithBreak ?(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;Ljava/lang/String;Ljava/lang/String;)Lcom/google/javascript/rhino/Node; breakNode current parent
SourceFile FunctionToBlockMutator.java 5com/google/javascript/jscomp/FunctionArgumentInjector }q w x y zrs ? ?ts ? ?uvwxmyz{|}~????s ? ???? ? ? ? ? ? ??z? ??s? ?? ???? ?? ??? ?? ??s? ??z?z?z??? ??? 4com/google/javascript/jscomp/MakeDeclaredNamesUnique Bcom/google/javascript/jscomp/MakeDeclaredNamesUnique$InlineRenamer
InlineRenamer inline_ }? }???? )com/google/javascript/jscomp/RenameLabels Ecom/google/javascript/jscomp/FunctionToBlockMutator$LabelNameSupplier }? }?? ???? anon java/lang/StringBuilder JSCompiler_inline_label_?? _??? java/lang/String? ? JSCompiler_inline_this_l?? java/util/HashMap }? java/util/LinkedList????p?z ??n java/util/Map$Entry?????? ? ??? com/google/javascript/rhino/Node?z?? ? ?? ???o????????????? ;com/google/javascript/jscomp/NodeUtil$MatchShallowStatement MatchShallowStatement?? ? ? ? ? ? ? ?? ?? ?s ? ??z?? ? ??z ? ?? ?? ? ?????z? ? ??? ? 3com/google/javascript/jscomp/FunctionToBlockMutator java/lang/Object
java/util/Set java/util/LinkedHashMap
java/util/Map java/util/List java/util/Iterator ()V cloneTree $()Lcom/google/javascript/rhino/Node; getLastChild findModifiedParameters 3(Lcom/google/javascript/rhino/Node;)Ljava/util/Set; getFunctionCallParameterMap ?(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;Lcom/google/common/base/Supplier;)Ljava/util/LinkedHashMap; isEmpty ()Z -com/google/javascript/jscomp/AbstractCompiler getCodingConvention 1()Lcom/google/javascript/jscomp/CodingConvention; maybeAddTempsForCallArguments r(Lcom/google/javascript/rhino/Node;Ljava/util/Map;Ljava/util/Set;Lcom/google/javascript/jscomp/CodingConvention;)V %com/google/javascript/jscomp/NodeUtil getFunctionBody F(Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/rhino/Node; detach $com/google/common/base/Preconditions
checkState (Z)V
isFunction isFunctionDeclaration
getFirstChild getString com/google/javascript/rhino/IR 6(Ljava/lang/String;)Lcom/google/javascript/rhino/Node; srcref setString (Ljava/lang/String;)V replaceWith addChildToFront getNext isLoopStructure isVar hasOneChild hasChildren newUndefinedNode addChildToBack getUniqueNameIdSupplier #()Lcom/google/common/base/Supplier;? Renamer ?(Lcom/google/javascript/jscomp/CodingConvention;Lcom/google/common/base/Supplier;Ljava/lang/String;ZZLcom/google/javascript/jscomp/MakeDeclaredNamesUnique$Renamer;)V A(Lcom/google/javascript/jscomp/MakeDeclaredNamesUnique$Renamer;)V *com/google/javascript/jscomp/NodeTraversal traverseEs6? Callback ?(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/NodeTraversal$Callback;)V $(Lcom/google/common/base/Supplier;)V T(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/common/base/Supplier;Z)V process com/google/common/base/Strings
isNullOrEmpty (Ljava/lang/String;)Z append -(Ljava/lang/String;)Ljava/lang/StringBuilder; com/google/common/base/Supplier get ()Ljava/lang/Object; toString inject ?(Lcom/google/javascript/jscomp/AbstractCompiler;Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;Ljava/util/Map;)Lcom/google/javascript/rhino/Node; (Ljava/util/Map;)V entrySet ()Ljava/util/Set; iterator ()Ljava/util/Iterator; hasNext getKey contains (Ljava/lang/Object;)Z equals getValue isThis mayHaveSideEffects T(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/jscomp/AbstractCompiler;)Z
newVarNode !useSourceInfoIfMissingFromForTree add (ILjava/lang/Object;)V
srcrefTree put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; remove &(Ljava/lang/Object;)Ljava/lang/Object; checkNotNull !com/google/javascript/rhino/Token RETURN #Lcom/google/javascript/rhino/Token; getNodeTypeReferenceCount j(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Token;Lcom/google/common/base/Predicate;)I h(Lcom/google/javascript/rhino/Node;Lcom/google/javascript/rhino/Node;)Lcom/google/javascript/rhino/Node; isBlock
checkArgument isReturn removeChild replaceChild newExpr isExprResult isStatementBlock addChildBefore