Edit C:\Program Files\Java\jre8\lib\ext\jdk\nashorn\internal\codegen\Lower.class
Êþº¾ 3e ÏÜ ÏÝ ÏÞ Ïßà á Óâ ãä Ïå Ïæ ;ç èé Ïê ëì Ïí ëî Ïï ðñ Ïò Ïó ðôõ áö ð÷ ðø ðù ú Óûüþ ÿ Ï ? Ï ' Ï Ï ?÷ Ï , ? 9 9 J 9 Ï Ï ! "#$ ?% &' () * +, - C. / 01 &2 345 Má 607 Pá b89:;<;=>9? V@ bA sB s÷ søC D E F ]GHI ]J cK bL bMN hO b0 ÷ ø bP sQ ÏRS pT s0U PV sWX vYZ b÷ bø[ b\ {]^ ~_9` Pa9b Vø bc sd be sf9V sg Ïh Ïij ?k sl sm sn op9q Ïr 's ht Puv ?wx ?B ?÷ ?ø ?y ?z ?0 { {g {B {÷ {ø 9| 90 ]}~ ¨ ? ]?? ¬á ?! ¬? ¬? ?? ¬? ??? ¬? ë? ? ]! !? J0? Ï? »? ë?? ¿? ?g Ï? b? ?? ?? '? ?? v? VM v? v? ] ¡¢ ,£¤ ¥¦§ ¨©ª InnerClasses log 2Ljdk/nashorn/internal/runtime/logging/DebugLogger; SAFE_PROPERTY_NAME Ljava/util/regex/Pattern; $assertionsDisabled Z <init> *(Ljdk/nashorn/internal/codegen/Compiler;)V Code LineNumberTable LocalVariableTable this $Ljdk/nashorn/internal/codegen/Lower; compiler 'Ljdk/nashorn/internal/codegen/Compiler; getLogger 4()Ljdk/nashorn/internal/runtime/logging/DebugLogger; initLogger Z(Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/internal/runtime/logging/DebugLogger; context &Ljdk/nashorn/internal/runtime/Context; enterBreakNode &(Ljdk/nashorn/internal/ir/BreakNode;)Z breakNode #Ljdk/nashorn/internal/ir/BreakNode; leaveCallNode B(Ljdk/nashorn/internal/ir/CallNode;)Ljdk/nashorn/internal/ir/Node; callNode "Ljdk/nashorn/internal/ir/CallNode; leaveCatchNode C(Ljdk/nashorn/internal/ir/CatchNode;)Ljdk/nashorn/internal/ir/Node; catchNode #Ljdk/nashorn/internal/ir/CatchNode; enterContinueNode )(Ljdk/nashorn/internal/ir/ContinueNode;)Z continueNode &Ljdk/nashorn/internal/ir/ContinueNode; enterJumpToInlinedFinally 1(Ljdk/nashorn/internal/ir/JumpToInlinedFinally;)Z jumpToInlinedFinally .Ljdk/nashorn/internal/ir/JumpToInlinedFinally; enterEmptyNode &(Ljdk/nashorn/internal/ir/EmptyNode;)Z emptyNode #Ljdk/nashorn/internal/ir/EmptyNode; leaveIndexNode C(Ljdk/nashorn/internal/ir/IndexNode;)Ljdk/nashorn/internal/ir/Node; indexNode #Ljdk/nashorn/internal/ir/IndexNode; name Ljava/lang/String; StackMapTable getConstantPropertyName 8(Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/String; value Ljava/lang/Object; expression $Ljdk/nashorn/internal/ir/Expression; leaveExpressionStatement M(Ljdk/nashorn/internal/ir/ExpressionStatement;)Ljdk/nashorn/internal/ir/Node; expressionStatement -Ljdk/nashorn/internal/ir/ExpressionStatement; expr node currentFunction &Ljdk/nashorn/internal/ir/FunctionNode;1x« leaveBlockStatement H(Ljdk/nashorn/internal/ir/BlockStatement;)Ljdk/nashorn/internal/ir/Node; blockStatement (Ljdk/nashorn/internal/ir/BlockStatement; leaveForNode A(Ljdk/nashorn/internal/ir/ForNode;)Ljdk/nashorn/internal/ir/Node; forNode !Ljdk/nashorn/internal/ir/ForNode; newForNode test leaveFunctionNode F(Ljdk/nashorn/internal/ir/FunctionNode;)Ljdk/nashorn/internal/ir/Node; functionNode leaveIfNode @(Ljdk/nashorn/internal/ir/IfNode;)Ljdk/nashorn/internal/ir/Node; ifNode Ljdk/nashorn/internal/ir/IfNode; leaveIN D(Ljdk/nashorn/internal/ir/BinaryNode;)Ljdk/nashorn/internal/ir/Node; binaryNode $Ljdk/nashorn/internal/ir/BinaryNode; leaveINSTANCEOF leaveLabelNode C(Ljdk/nashorn/internal/ir/LabelNode;)Ljdk/nashorn/internal/ir/Node; labelNode #Ljdk/nashorn/internal/ir/LabelNode; leaveReturnNode D(Ljdk/nashorn/internal/ir/ReturnNode;)Ljdk/nashorn/internal/ir/Node; returnNode $Ljdk/nashorn/internal/ir/ReturnNode; leaveCaseNode B(Ljdk/nashorn/internal/ir/CaseNode;)Ljdk/nashorn/internal/ir/Node; lit %Ljdk/nashorn/internal/ir/LiteralNode; caseNode "Ljdk/nashorn/internal/ir/CaseNode; Ljdk/nashorn/internal/ir/Node; LocalVariableTypeTable (Ljdk/nashorn/internal/ir/LiteralNode<*>;¬ leaveSwitchNode D(Ljdk/nashorn/internal/ir/SwitchNode;)Ljdk/nashorn/internal/ir/Node; switchNode $Ljdk/nashorn/internal/ir/SwitchNode; leaveThrowNode C(Ljdk/nashorn/internal/ir/ThrowNode;)Ljdk/nashorn/internal/ir/Node; throwNode #Ljdk/nashorn/internal/ir/ThrowNode; ensureUniqueNamesIn >(Ljdk/nashorn/internal/ir/Node;)Ljdk/nashorn/internal/ir/Node; TT; Signature *<T:Ljdk/nashorn/internal/ir/Node;>(TT;)TT; createFinallyBlock @(Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/Block; statement #Ljdk/nashorn/internal/ir/Statement; finallyBody Ljdk/nashorn/internal/ir/Block; newStatements Ljava/util/List; 5Ljava/util/List<Ljdk/nashorn/internal/ir/Statement;>;® catchAllBlock B(Ljdk/nashorn/internal/ir/TryNode;)Ljdk/nashorn/internal/ir/Block; tryNode !Ljdk/nashorn/internal/ir/TryNode; lineNumber I token J finish exception #Ljdk/nashorn/internal/ir/IdentNode; catchBody catchAllNode¤UCH compilerConstant U(Ljdk/nashorn/internal/codegen/CompilerConstants;)Ljdk/nashorn/internal/ir/IdentNode; cc 0Ljdk/nashorn/internal/codegen/CompilerConstants; isTerminalFinally "(Ljdk/nashorn/internal/ir/Block;)Z finallyBlock spliceFinally ?(Ljdk/nashorn/internal/ir/TryNode;Ljdk/nashorn/internal/ir/ThrowNode;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/TryNode; rethrow inlinedFinallies Ljava/util/ArrayList; fn newTryNode 6Ljava/util/ArrayList<Ljdk/nashorn/internal/ir/Block;>;I7 createJumpToInlinedFinally ?(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally; labelName 1Ljava/util/List<Ljdk/nashorn/internal/ir/Block;>; ¦(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List<Ljdk/nashorn/internal/ir/Block;>;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally; prependFinally c(Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Block; inlinedFinally stmts newStmts leaveTryNode A(Ljdk/nashorn/internal/ir/TryNode;)Ljdk/nashorn/internal/ir/Node; catches outerBody catchAll rethrows 5Ljava/util/List<Ljdk/nashorn/internal/ir/CatchNode;>; 5Ljava/util/List<Ljdk/nashorn/internal/ir/ThrowNode;>; ensureUnconditionalCatch D(Ljdk/nashorn/internal/ir/TryNode;)Ljdk/nashorn/internal/ir/TryNode; newCatchBlocks leaveVarNode A(Ljdk/nashorn/internal/ir/VarNode;)Ljdk/nashorn/internal/ir/Node; varNode !Ljdk/nashorn/internal/ir/VarNode; leaveWhileNode C(Ljdk/nashorn/internal/ir/WhileNode;)Ljdk/nashorn/internal/ir/Node; whileNode #Ljdk/nashorn/internal/ir/WhileNode; body leaveWithNode B(Ljdk/nashorn/internal/ir/WithNode;)Ljdk/nashorn/internal/ir/Node; withNode "Ljdk/nashorn/internal/ir/WithNode; markerFunction J(Ljdk/nashorn/internal/ir/Expression;)Ljdk/nashorn/internal/ir/Expression; function evalLocation 7(Ljdk/nashorn/internal/ir/IdentNode;)Ljava/lang/String; source %Ljdk/nashorn/internal/runtime/Source; pos checkEval F(Ljdk/nashorn/internal/ir/CallNode;)Ljdk/nashorn/internal/ir/CallNode; arg evalArgs args callee 6Ljava/util/List<Ljdk/nashorn/internal/ir/Expression;>;¯ controlFlowEscapes J(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/Block;)Z lex (Ljdk/nashorn/internal/ir/LexicalContext; loopBody escapes 0Ljava/util/List<Ljdk/nashorn/internal/ir/Node;>; checkEscape F(Ljdk/nashorn/internal/ir/LoopNode;)Ljdk/nashorn/internal/ir/LoopNode; loopNode "Ljdk/nashorn/internal/ir/LoopNode; .<T:Ljdk/nashorn/internal/ir/LoopNode;>(TT;)TT; addStatement C(Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Node; addStatementEnclosedInBlock &(Ljdk/nashorn/internal/ir/Statement;)V stmt bX isInternalExpression '(Ljdk/nashorn/internal/ir/Expression;)Z symbol Ljdk/nashorn/internal/ir/Symbol;° isEvalResultAssignment !(Ljdk/nashorn/internal/ir/Node;)Z lhs e access$000 x0 x1 access$100 x2 access$200 access$300 <clinit> ()V ?Ljdk/nashorn/internal/ir/visitor/NodeOperatorVisitor<Ljdk/nashorn/internal/ir/BlockLexicalContext;>;Ljdk/nashorn/internal/runtime/logging/Loggable; SourceFile Lower.java RuntimeVisibleAnnotations -Ljdk/nashorn/internal/runtime/logging/Logger; lowerMNrs??? $jdk/nashorn/internal/codegen/Lower$1 ÜÕ Ü±²³´ ç è Ö ×µ¶· 帽¾¯¹º¡¢»¼©ª½¾º Ú Û¿À java/lang/AssertionError "jdk/nashorn/internal/ir/AccessNodeÁÂÃÄź ÜÆ 8jdk/nashorn/internal/ir/LiteralNode$PrimitiveLiteralNode PrimitiveLiteralNode #jdk/nashorn/internal/ir/LiteralNodeÇÈ java/lang/String Ø ÙÉÊËÌÍÀκϴ +jdk/nashorn/internal/ir/BlockLexicalContextÐÑ«ÒÀÄÅÉÊ "jdk/nashorn/internal/ir/BinaryNodeÓÔÕÖ×ØÙÚqno ÜÛÜÝÞßàÀáÅâ㸹 jdk/nashorn/internal/ir/ForNode¿À java/lang/Object END FunctionNode: äåæçè #jdk/nashorn/internal/ir/RuntimeNode ÜéêÞºëÀ java/lang/IntegerìíîïðñÄòóôõö÷ "jdk/nashorn/internal/ir/ExpressionâøùúÀ $jdk/nashorn/internal/codegen/Lower$2¬ java/util/ArrayListûüýþ®ÿÀ È !jdk/nashorn/internal/ir/StatementÀÄ !jdk/nashorn/internal/ir/IdentNodeqå Ü jdk/nashorn/internal/ir/Block !jdk/nashorn/internal/ir/ThrowNode Ü Ü ÜÀ !jdk/nashorn/internal/ir/CatchNode ÜRS $jdk/nashorn/internal/codegen/Lower$3 Ü jdk/nashorn/internal/ir/TryNodeÀ &jdk/nashorn/internal/ir/BlockStatement Ü :finally !jdk/nashorn/internal/ir/LabelNodeÄ Ü ,jdk/nashorn/internal/ir/JumpToInlinedFinally ÜÄ Ü Ü!"#$Ä%ü&??]^ $jdk/nashorn/internal/codegen/Lower$4 Ü'(ü)#*+,-./uv012º Ü3 jdk/nashorn/internal/ir/VarNode45 +jdk/nashorn/internal/ir/ExpressionStatementä6 Ü78 Ü9:6 jdk/nashorn/internal/ir/BaseNode:;<=>Ä java/lang/StringBuilder?@A@BCD@EFD <eval>GåHüIqJ )jdk/nashorn/internal/ir/CallNode$EvalArgs EvalArgs¤¥ ÜKLM $jdk/nashorn/internal/codegen/Lower$5 ÜNO±²PQ)RSTUÀVWXYZ[\]^_°`À˺ "jdk/nashorn/internal/codegen/LowerabÀ [a-zA-Z_$][\w$]*cd 3jdk/nashorn/internal/ir/visitor/NodeOperatorVisitor -jdk/nashorn/internal/runtime/logging/Loggable $jdk/nashorn/internal/ir/FunctionNode jdk/nashorn/internal/ir/Node java/util/List java/util/Iterator jdk/nashorn/internal/ir/CallNode jdk/nashorn/internal/ir/Symbol +(Ljdk/nashorn/internal/ir/LexicalContext;)V %jdk/nashorn/internal/codegen/Compiler getContext (()Ljdk/nashorn/internal/runtime/Context; getClass ()Ljava/lang/Class; $jdk/nashorn/internal/runtime/Context E(Ljava/lang/Class;)Ljdk/nashorn/internal/runtime/logging/DebugLogger; getFunction &()Ljdk/nashorn/internal/ir/Expression; setFunction H(Ljdk/nashorn/internal/ir/Expression;)Ljdk/nashorn/internal/ir/CallNode; !jdk/nashorn/internal/ir/IndexNode getIndex isIndex ()Z getToken ()J getFinish ()I getBase ;(JILjdk/nashorn/internal/ir/Expression;Ljava/lang/String;)V getValue ()Ljava/lang/Object; java/util/regex/Pattern matcher 3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; java/util/regex/Matcher matches getExpression lc getCurrentFunction (()Ljdk/nashorn/internal/ir/FunctionNode; isProgram %jdk/nashorn/internal/parser/TokenType ASSIGN 'Ljdk/nashorn/internal/parser/TokenType; !jdk/nashorn/internal/parser/Token recast +(JLjdk/nashorn/internal/parser/TokenType;)J .jdk/nashorn/internal/codegen/CompilerConstants RETURN L(JLjdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/ir/Expression;)V setExpression S(Ljdk/nashorn/internal/ir/Expression;)Ljdk/nashorn/internal/ir/ExpressionStatement; getTest 5()Ljdk/nashorn/internal/ir/JoinPredecessorExpression; isForIn isAlwaysTrue setTest ~(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/JoinPredecessorExpression;)Ljdk/nashorn/internal/ir/ForNode; getName ()Ljava/lang/String; 0jdk/nashorn/internal/runtime/logging/DebugLogger info ([Ljava/lang/Object;)V '(Ljdk/nashorn/internal/ir/BinaryNode;)V jdk/nashorn/internal/ir/CaseNode isNumeric getNumber ()D #jdk/nashorn/internal/runtime/JSType isRepresentableAsInt (D)Z getInt32 valueOf (I)Ljava/lang/Integer; newInstance W(Ljdk/nashorn/internal/ir/Node;Ljava/lang/Number;)Ljdk/nashorn/internal/ir/LiteralNode; accept M(Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node; H(Ljdk/nashorn/internal/ir/Expression;)Ljdk/nashorn/internal/ir/CaseNode; "jdk/nashorn/internal/ir/SwitchNode isUniqueInteger getStatements ()Ljava/util/List; iterator ()Ljava/util/Iterator; hasNext next add (Ljava/lang/Object;)Z hasTerminalFlags setStatements Y(Ljdk/nashorn/internal/ir/LexicalContext;Ljava/util/List;)Ljdk/nashorn/internal/ir/Block; getLineNumber EXCEPTION_PREFIX symbolName uniqueName &(Ljava/lang/String;)Ljava/lang/String; (JILjava/lang/String;)V &(Ljdk/nashorn/internal/ir/IdentNode;)V +(IJILjdk/nashorn/internal/ir/Expression;Z)V )(JI[Ljdk/nashorn/internal/ir/Statement;)V isTerminal m(IJILjdk/nashorn/internal/ir/IdentNode;Ljdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/ir/Block;Z)V getLastStatement %()Ljdk/nashorn/internal/ir/Statement; getFinallyBody !()Ljdk/nashorn/internal/ir/Block; ¤(Ljdk/nashorn/internal/codegen/Lower;Ljdk/nashorn/internal/ir/ThrowNode;Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/ArrayList;)V isEmpty setInlinedFinallies [(Ljdk/nashorn/internal/ir/LexicalContext;Ljava/util/List;)Ljdk/nashorn/internal/ir/TryNode; "(Ljdk/nashorn/internal/ir/Block;)V getFirstStatementLineNumber 7(IJILjava/lang/String;Ljdk/nashorn/internal/ir/Block;)V (Ljava/lang/String;)V size (I)V addAll (Ljava/util/Collection;)Z (JILjava/util/List;)V setFinallyBody j(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/TryNode; getStatementCount getCatches getBody 7(Ljdk/nashorn/internal/codegen/Lower;Ljava/util/List;)V getCatchBlocks setBody setCatchBlocks java/util/Arrays asList %([Ljava/lang/Object;)Ljava/util/List; get (I)Ljava/lang/Object; replace ?(Ljdk/nashorn/internal/ir/LexicalContextNode;Ljdk/nashorn/internal/ir/LexicalContextNode;)Ljdk/nashorn/internal/ir/LexicalContextNode; getExceptionCondition (Ljava/util/Collection;)V getFlag (I)Z %()Ljdk/nashorn/internal/ir/IdentNode; *(IJILjdk/nashorn/internal/ir/Expression;)V !jdk/nashorn/internal/ir/WhileNode &(IJILjdk/nashorn/internal/ir/Block;I)V setIsFunction $()Ljdk/nashorn/internal/ir/BaseNode; getSource '()Ljdk/nashorn/internal/runtime/Source; position #jdk/nashorn/internal/runtime/Source append -(Ljava/lang/String;)Ljava/lang/StringBuilder; (C)Ljava/lang/StringBuilder; getLine (I)I (I)Ljava/lang/StringBuilder; getColumn toString getArgs EVAL equals %(Ljava/util/List;Ljava/lang/String;)V setEvalArgs O(Ljdk/nashorn/internal/ir/CallNode$EvalArgs;)Ljdk/nashorn/internal/ir/CallNode; ;(Ljava/util/List;Ljdk/nashorn/internal/ir/LexicalContext;)V jdk/nashorn/internal/ir/LoopNode setIsTerminal J(Ljdk/nashorn/internal/ir/LexicalContext;Z)Ljdk/nashorn/internal/ir/Block; k(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/LoopNode; setControlFlowEscapes M(Ljdk/nashorn/internal/ir/LexicalContext;Z)Ljdk/nashorn/internal/ir/LoopNode; appendStatement java/util/Collections singletonList $(Ljava/lang/Object;)Ljava/util/List; createReplacement ](Ljdk/nashorn/internal/ir/Statement;Ljava/util/List;)Ljdk/nashorn/internal/ir/BlockStatement; getBlock setBlock I(Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/BlockStatement; getSymbol "()Ljdk/nashorn/internal/ir/Symbol; isInternal java/lang/Class desiredAssertionStatus compile -(Ljava/lang/String;)Ljava/util/regex/Pattern; 0 Ï Ó Ô Ö × Ø Ù Ú Û 2 Ü Ý Þ T *» Y· · **+¶ ¶ µ ± ß l ? ? à á â ã ä å æ Þ / *´ ° ß ? à á â ç è Þ = +*¶ ¶ ° ß ? à á â é ê ë ì Þ @ *+· W¬ ß ¡ à á â í î ï ð Þ D *++¶ ¸ ¶ · ° ß ¦ à á â ñ ò ó ô Þ : *+· ° ß « à á â õ ö ÷ ø Þ @ *+· W¬ ß ° ± à á â ù ú û ü Þ @ *+· W¬ ß ¶ · à á â ý þ ÿ Þ 6 ¬ ß ¼ à á â Þ ? <+¶ ¸ M,Æ -² ? +¶ ? » Y· ¿» Y+¶ +¶ +¶ ,· °*+· ° ß Á Â Ä ! Å 6 Ç à <