Class JSAstTranslator

  • All Implemented Interfaces:
    com.ibm.wala.cast.ir.translator.ArrayOpHandler, com.ibm.wala.cast.ir.translator.TranslatorToIR

    public class JSAstTranslator
    extends com.ibm.wala.cast.ir.translator.AstTranslator
    Specialization of AstTranslator for JavaScript.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.ibm.wala.cast.ir.translator.AstTranslator

        com.ibm.wala.cast.ir.translator.AstTranslator.AbstractScope, com.ibm.wala.cast.ir.translator.AstTranslator.AbstractSymbol, com.ibm.wala.cast.ir.translator.AstTranslator.AstCFG, com.ibm.wala.cast.ir.translator.AstTranslator.AstLexicalInformation, com.ibm.wala.cast.ir.translator.AstTranslator.CodeEntityContext, com.ibm.wala.cast.ir.translator.AstTranslator.FinalCAstSymbol, com.ibm.wala.cast.ir.translator.AstTranslator.IncipientCFG, com.ibm.wala.cast.ir.translator.AstTranslator.InternalCAstSymbol, com.ibm.wala.cast.ir.translator.AstTranslator.PreBasicBlock, com.ibm.wala.cast.ir.translator.AstTranslator.RootContext, com.ibm.wala.cast.ir.translator.AstTranslator.Scope, com.ibm.wala.cast.ir.translator.AstTranslator.ScopeType, com.ibm.wala.cast.ir.translator.AstTranslator.Symbol, com.ibm.wala.cast.ir.translator.AstTranslator.TypeContext, com.ibm.wala.cast.ir.translator.AstTranslator.UnwindState, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext
      • Nested classes/interfaces inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor

        com.ibm.wala.cast.tree.visit.CAstVisitor.Context
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static com.ibm.wala.cast.tree.CAstType Any  
      • Fields inherited from class com.ibm.wala.cast.ir.translator.AstTranslator

        DEBUG_ALL, DEBUG_CFG, DEBUG_LEXICAL, DEBUG_NAMES, DEBUG_TOP, entity2ExposedNames, entity2WrittenNames, insts, loader, namedEntityResolver
      • Fields inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor

        currentPosition
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String composeEntityName​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext parent, com.ibm.wala.cast.tree.CAstEntity f)  
      protected void declareFunction​(com.ibm.wala.cast.tree.CAstEntity N, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)  
      protected com.ibm.wala.types.TypeReference defaultCatchType()  
      protected void defineField​(com.ibm.wala.cast.tree.CAstEntity topEntity, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc, com.ibm.wala.cast.tree.CAstEntity n)  
      protected void defineFunction​(com.ibm.wala.cast.tree.CAstEntity N, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext definingContext, com.ibm.wala.cfg.AbstractCFG<com.ibm.wala.ssa.SSAInstruction,​? extends com.ibm.wala.cfg.IBasicBlock<com.ibm.wala.ssa.SSAInstruction>> cfg, com.ibm.wala.ssa.SymbolTable symtab, boolean hasCatchBlock, java.util.Map<com.ibm.wala.cfg.IBasicBlock<com.ibm.wala.ssa.SSAInstruction>,​com.ibm.wala.types.TypeReference[]> caughtTypes, boolean hasMonitorOp, com.ibm.wala.cast.ir.translator.AstTranslator.AstLexicalInformation LI, com.ibm.wala.cast.loader.AstMethod.DebuggingInformation debugInfo)  
      protected boolean defineType​(com.ibm.wala.cast.tree.CAstEntity type, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc)  
      void doArrayRead​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int result, int arrayValue, com.ibm.wala.cast.tree.CAstNode arrayRef, int[] dimValues)  
      void doArrayWrite​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int arrayValue, com.ibm.wala.cast.tree.CAstNode arrayRef, int[] dimValues, int rval)  
      protected void doCall​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, com.ibm.wala.cast.tree.CAstNode call, int result, int exception, com.ibm.wala.cast.tree.CAstNode name, int receiver, int[] arguments)  
      protected void doFieldRead​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int result, int receiver, com.ibm.wala.cast.tree.CAstNode elt, com.ibm.wala.cast.tree.CAstNode readNode)  
      protected void doFieldWrite​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int receiver, com.ibm.wala.cast.tree.CAstNode elt, com.ibm.wala.cast.tree.CAstNode parent, int rval)  
      protected int doGlobalRead​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, java.lang.String name, com.ibm.wala.types.TypeReference type)  
      protected int doLexicallyScopedRead​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, java.lang.String name, com.ibm.wala.types.TypeReference type)  
      protected void doMaterializeFunction​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int result, int exception, com.ibm.wala.cast.tree.CAstEntity fn)  
      protected void doNewObject​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, com.ibm.wala.cast.tree.CAstNode newNode, int result, java.lang.Object type, int[] arguments)  
      protected void doPrimitive​(int resultVal, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, com.ibm.wala.cast.tree.CAstNode primitiveCall)  
      protected void doPrologue​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)  
      protected void doThrow​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int exception)  
      protected boolean doVisit​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)  
      protected com.ibm.wala.cast.tree.CAstType exceptionType()  
      protected com.ibm.wala.cast.tree.CAstSourcePositionMap.Position[] getParameterPositions​(com.ibm.wala.cast.tree.CAstEntity e)  
      protected boolean hasImplicitGlobals()  
      protected boolean ignoreName​(java.lang.String name)  
      protected void leaveInstanceOf​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext c, com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)  
      protected java.lang.String[] makeNameMap​(com.ibm.wala.cast.tree.CAstEntity n, java.util.Set<com.ibm.wala.cast.ir.translator.AstTranslator.Scope> scopes, com.ibm.wala.ssa.SSAInstruction[] insts)  
      protected com.ibm.wala.types.TypeReference makeType​(com.ibm.wala.cast.tree.CAstType type)  
      protected com.ibm.wala.cast.tree.CAstType topType()  
      protected boolean treatGlobalsAsLexicallyScoped()  
      protected boolean useDefaultInitValues()  
      protected boolean visitInstanceOf​(com.ibm.wala.cast.tree.CAstNode n, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext c, com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)  
      • Methods inherited from class com.ibm.wala.cast.ir.translator.AstTranslator

        assignValue, closeFunctionEntity, doGlobalWrite, doIsFieldDefined, doLexicallyScopedWrite, doLocalRead, doLocalWrite, enterEntity, getArgumentCount, getArgumentNames, getCodeContext, getIncludedEntity, getTypeForNode, handleUnspecifiedLiteralKey, hasSpecialUndeclaredVariables, initFunctionEntity, isExceptionLabel, leaveArrayLength, leaveArrayLiteral, leaveArrayLiteralInitElement, leaveArrayLiteralObject, leaveArrayRef, leaveArrayRefAssign, leaveArrayRefAssignOp, leaveAssert, leaveAssign, leaveBinaryExpr, leaveBlockExpr, leaveBlockExprAssign, leaveBlockExprAssignOp, leaveBlockStmt, leaveCall, leaveCatch, leaveConstant, leaveDeclStmt, leaveEachElementGet, leaveEachElementHasNext, leaveEcho, leaveEmpty, leaveFieldEntity, leaveFileEntity, leaveFunctionEntity, leaveFunctionExpr, leaveFunctionStmt, leaveGetCaughtException, leaveGlobalEntity, leaveGoto, leaveIfExpr, leaveIfExprCondition, leaveIfExprTrueClause, leaveIfgoto, leaveIfStmt, leaveIfStmtCondition, leaveIfStmtTrueClause, leaveInclude, leaveIsDefinedExpr, leaveLabelStmt, leaveLocalScope, leaveLoop, leaveLoopHeader, leaveNew, leaveObjectLiteral, leaveObjectLiteralFieldInit, leaveObjectRef, leaveObjectRefAssign, leaveObjectRefAssignOp, leavePrimitive, leaveReturn, leaveScriptEntity, leaveSpecialParentScope, leaveSuper, leaveSwitch, leaveSwitchValue, leaveThis, leaveThrow, leaveTry, leaveTryBlock, leaveTypeEntity, leaveTypeLiteralExpr, leaveUnaryExpr, leaveUnwind, leaveVar, leaveVarAssign, leaveVarAssignOp, leaveVoid, leaveYield, liftDeclarationsForLexicalScoping, makeCodeContext, makeFileContext, makeGlobalRef, makeLocalContext, makeScriptScope, makeSpecialParentContext, makeTypeContext, makeTypeScope, makeUnwindContext, processAssignOp, processFunctionExpr, processIf, setDefaultValue, topLevelFunctionsInGlobalScope, translate, translate, translateBinaryOpcode, translateConditionOpcode, translateUnaryOpcode, visitArrayLength, visitArrayLiteral, visitArrayRef, visitArrayRefAssign, visitArrayRefAssignOp, visitAssert, visitAssign, visitBinaryExpr, visitBlockExpr, visitBlockExprAssign, visitBlockExprAssignOp, visitBlockStmt, visitCall, visitCatch, visitConstant, visitDeclStmt, visitEachElementGet, visitEachElementHasNext, visitEcho, visitEmpty, visitFieldEntity, visitFileEntity, visitFunctionEntity, visitFunctionExpr, visitFunctionStmt, visitGetCaughtException, visitGlobalEntity, visitGoto, visitIfExpr, visitIfgoto, visitIfStmt, visitIsDefinedExpr, visitLabelStmt, visitLocalScope, visitLoop, visitMacroEntity, visitNew, visitObjectLiteral, visitObjectRef, visitObjectRefAssign, visitObjectRefAssignOp, visitPrimitive, visitReturn, visitScriptEntity, visitSpecialParentScope, visitSuper, visitSwitch, visitThis, visitThrow, visitTry, visitTypeEntity, visitTypeLiteralExpr, visitUnaryExpr, visitUnwind, visitVar, visitVarAssign, visitVarAssignOp, visitVoid, visitYield, walkEntities
      • Methods inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor

        doVisitArrayRefNode, doVisitAssignNodes, doVisitEntity, enterNode, getCurrentPosition, getParent, leaveArrayLiteralAssign, leaveCast, leaveClassStmt, leaveEntity, leaveForIn, leaveMacroEntity, leaveMacroVar, leaveNode, leaveObjectLiteralAssign, postProcessEntity, postProcessNode, setParent, visit, visitAllChildren, visitArrayLiteralAssign, visitAssignNodes, visitCast, visitChildren, visitClassStmt, visitEntities, visitEntity, visitForIn, visitInclude, visitMacroVar, visitNode, visitObjectLiteralAssign, visitScopedEntities, visitScopedEntities
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • Any

        public static final com.ibm.wala.cast.tree.CAstType Any
    • Method Detail

      • useDefaultInitValues

        protected boolean useDefaultInitValues()
        Specified by:
        useDefaultInitValues in class com.ibm.wala.cast.ir.translator.AstTranslator
      • hasImplicitGlobals

        protected boolean hasImplicitGlobals()
        Overrides:
        hasImplicitGlobals in class com.ibm.wala.cast.ir.translator.AstTranslator
      • treatGlobalsAsLexicallyScoped

        protected boolean treatGlobalsAsLexicallyScoped()
        Specified by:
        treatGlobalsAsLexicallyScoped in class com.ibm.wala.cast.ir.translator.AstTranslator
      • defaultCatchType

        protected com.ibm.wala.types.TypeReference defaultCatchType()
        Specified by:
        defaultCatchType in class com.ibm.wala.cast.ir.translator.AstTranslator
      • makeType

        protected com.ibm.wala.types.TypeReference makeType​(com.ibm.wala.cast.tree.CAstType type)
        Specified by:
        makeType in class com.ibm.wala.cast.ir.translator.AstTranslator
      • ignoreName

        protected boolean ignoreName​(java.lang.String name)
        Overrides:
        ignoreName in class com.ibm.wala.cast.ir.translator.AstTranslator
      • makeNameMap

        protected java.lang.String[] makeNameMap​(com.ibm.wala.cast.tree.CAstEntity n,
                                                 java.util.Set<com.ibm.wala.cast.ir.translator.AstTranslator.Scope> scopes,
                                                 com.ibm.wala.ssa.SSAInstruction[] insts)
        Overrides:
        makeNameMap in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doLexicallyScopedRead

        protected int doLexicallyScopedRead​(com.ibm.wala.cast.tree.CAstNode n,
                                            com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                            java.lang.String name,
                                            com.ibm.wala.types.TypeReference type)
        Overrides:
        doLexicallyScopedRead in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doGlobalRead

        protected int doGlobalRead​(com.ibm.wala.cast.tree.CAstNode n,
                                   com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                   java.lang.String name,
                                   com.ibm.wala.types.TypeReference type)
        Overrides:
        doGlobalRead in class com.ibm.wala.cast.ir.translator.AstTranslator
      • defineType

        protected boolean defineType​(com.ibm.wala.cast.tree.CAstEntity type,
                                     com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc)
        Specified by:
        defineType in class com.ibm.wala.cast.ir.translator.AstTranslator
      • defineField

        protected void defineField​(com.ibm.wala.cast.tree.CAstEntity topEntity,
                                   com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc,
                                   com.ibm.wala.cast.tree.CAstEntity n)
        Specified by:
        defineField in class com.ibm.wala.cast.ir.translator.AstTranslator
      • composeEntityName

        protected java.lang.String composeEntityName​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext parent,
                                                     com.ibm.wala.cast.tree.CAstEntity f)
        Specified by:
        composeEntityName in class com.ibm.wala.cast.ir.translator.AstTranslator
      • declareFunction

        protected void declareFunction​(com.ibm.wala.cast.tree.CAstEntity N,
                                       com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)
        Specified by:
        declareFunction in class com.ibm.wala.cast.ir.translator.AstTranslator
      • defineFunction

        protected void defineFunction​(com.ibm.wala.cast.tree.CAstEntity N,
                                      com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext definingContext,
                                      com.ibm.wala.cfg.AbstractCFG<com.ibm.wala.ssa.SSAInstruction,​? extends com.ibm.wala.cfg.IBasicBlock<com.ibm.wala.ssa.SSAInstruction>> cfg,
                                      com.ibm.wala.ssa.SymbolTable symtab,
                                      boolean hasCatchBlock,
                                      java.util.Map<com.ibm.wala.cfg.IBasicBlock<com.ibm.wala.ssa.SSAInstruction>,​com.ibm.wala.types.TypeReference[]> caughtTypes,
                                      boolean hasMonitorOp,
                                      com.ibm.wala.cast.ir.translator.AstTranslator.AstLexicalInformation LI,
                                      com.ibm.wala.cast.loader.AstMethod.DebuggingInformation debugInfo)
        Specified by:
        defineFunction in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doThrow

        protected void doThrow​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                               int exception)
        Specified by:
        doThrow in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doCall

        protected void doCall​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                              com.ibm.wala.cast.tree.CAstNode call,
                              int result,
                              int exception,
                              com.ibm.wala.cast.tree.CAstNode name,
                              int receiver,
                              int[] arguments)
        Specified by:
        doCall in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doNewObject

        protected void doNewObject​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                   com.ibm.wala.cast.tree.CAstNode newNode,
                                   int result,
                                   java.lang.Object type,
                                   int[] arguments)
        Specified by:
        doNewObject in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doMaterializeFunction

        protected void doMaterializeFunction​(com.ibm.wala.cast.tree.CAstNode n,
                                             com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                             int result,
                                             int exception,
                                             com.ibm.wala.cast.tree.CAstEntity fn)
        Specified by:
        doMaterializeFunction in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doArrayRead

        public void doArrayRead​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                int result,
                                int arrayValue,
                                com.ibm.wala.cast.tree.CAstNode arrayRef,
                                int[] dimValues)
        Specified by:
        doArrayRead in interface com.ibm.wala.cast.ir.translator.ArrayOpHandler
        Specified by:
        doArrayRead in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doArrayWrite

        public void doArrayWrite​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                 int arrayValue,
                                 com.ibm.wala.cast.tree.CAstNode arrayRef,
                                 int[] dimValues,
                                 int rval)
        Specified by:
        doArrayWrite in interface com.ibm.wala.cast.ir.translator.ArrayOpHandler
        Specified by:
        doArrayWrite in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doFieldRead

        protected void doFieldRead​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                   int result,
                                   int receiver,
                                   com.ibm.wala.cast.tree.CAstNode elt,
                                   com.ibm.wala.cast.tree.CAstNode readNode)
        Specified by:
        doFieldRead in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doFieldWrite

        protected void doFieldWrite​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                    int receiver,
                                    com.ibm.wala.cast.tree.CAstNode elt,
                                    com.ibm.wala.cast.tree.CAstNode parent,
                                    int rval)
        Specified by:
        doFieldWrite in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doPrimitive

        protected void doPrimitive​(int resultVal,
                                   com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                   com.ibm.wala.cast.tree.CAstNode primitiveCall)
        Specified by:
        doPrimitive in class com.ibm.wala.cast.ir.translator.AstTranslator
      • visitInstanceOf

        protected boolean visitInstanceOf​(com.ibm.wala.cast.tree.CAstNode n,
                                          com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext c,
                                          com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)
        Overrides:
        visitInstanceOf in class com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext>
      • leaveInstanceOf

        protected void leaveInstanceOf​(com.ibm.wala.cast.tree.CAstNode n,
                                       com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext c,
                                       com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)
        Overrides:
        leaveInstanceOf in class com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext>
      • doPrologue

        protected void doPrologue​(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)
        Overrides:
        doPrologue in class com.ibm.wala.cast.ir.translator.AstTranslator
      • doVisit

        protected boolean doVisit​(com.ibm.wala.cast.tree.CAstNode n,
                                  com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context,
                                  com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext> visitor)
        Overrides:
        doVisit in class com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext>
      • topType

        protected com.ibm.wala.cast.tree.CAstType topType()
        Specified by:
        topType in class com.ibm.wala.cast.ir.translator.AstTranslator
      • exceptionType

        protected com.ibm.wala.cast.tree.CAstType exceptionType()
        Specified by:
        exceptionType in class com.ibm.wala.cast.ir.translator.AstTranslator
      • getParameterPositions

        protected com.ibm.wala.cast.tree.CAstSourcePositionMap.Position[] getParameterPositions​(com.ibm.wala.cast.tree.CAstEntity e)
        Specified by:
        getParameterPositions in class com.ibm.wala.cast.ir.translator.AstTranslator