Package com.ibm.wala.cast.js.translator
Class JSAstTranslator
- java.lang.Object
-
- com.ibm.wala.cast.tree.visit.CAstVisitor<com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext>
-
- com.ibm.wala.cast.ir.translator.AstTranslator
-
- com.ibm.wala.cast.js.translator.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.AstTranslatorSpecialization ofAstTranslatorfor 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
-
-
Field Summary
Fields Modifier and Type Field Description static com.ibm.wala.cast.tree.CAstTypeAny
-
Constructor Summary
Constructors Constructor Description JSAstTranslator(JavaScriptLoader loader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringcomposeEntityName(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext parent, com.ibm.wala.cast.tree.CAstEntity f)protected voiddeclareFunction(com.ibm.wala.cast.tree.CAstEntity N, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)protected com.ibm.wala.types.TypeReferencedefaultCatchType()protected voiddefineField(com.ibm.wala.cast.tree.CAstEntity topEntity, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc, com.ibm.wala.cast.tree.CAstEntity n)protected voiddefineFunction(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 booleandefineType(com.ibm.wala.cast.tree.CAstEntity type, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext wc)voiddoArrayRead(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int result, int arrayValue, com.ibm.wala.cast.tree.CAstNode arrayRef, int[] dimValues)voiddoArrayWrite(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int arrayValue, com.ibm.wala.cast.tree.CAstNode arrayRef, int[] dimValues, int rval)protected voiddoCall(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 voiddoFieldRead(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 voiddoFieldWrite(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 intdoGlobalRead(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 intdoLexicallyScopedRead(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 voiddoMaterializeFunction(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 voiddoNewObject(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 voiddoPrimitive(int resultVal, com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, com.ibm.wala.cast.tree.CAstNode primitiveCall)protected voiddoPrologue(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context)protected voiddoThrow(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int exception)protected booleandoVisit(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.CAstTypeexceptionType()protected com.ibm.wala.cast.tree.CAstSourcePositionMap.Position[]getParameterPositions(com.ibm.wala.cast.tree.CAstEntity e)protected booleanhasImplicitGlobals()protected booleanignoreName(java.lang.String name)protected voidleaveInstanceOf(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.TypeReferencemakeType(com.ibm.wala.cast.tree.CAstType type)protected com.ibm.wala.cast.tree.CAstTypetopType()protected booleantreatGlobalsAsLexicallyScoped()protected booleanuseDefaultInitValues()protected booleanvisitInstanceOf(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
-
-
-
-
Constructor Detail
-
JSAstTranslator
public JSAstTranslator(JavaScriptLoader loader)
-
-
Method Detail
-
useDefaultInitValues
protected boolean useDefaultInitValues()
- Specified by:
useDefaultInitValuesin classcom.ibm.wala.cast.ir.translator.AstTranslator
-
hasImplicitGlobals
protected boolean hasImplicitGlobals()
- Overrides:
hasImplicitGlobalsin classcom.ibm.wala.cast.ir.translator.AstTranslator
-
treatGlobalsAsLexicallyScoped
protected boolean treatGlobalsAsLexicallyScoped()
- Specified by:
treatGlobalsAsLexicallyScopedin classcom.ibm.wala.cast.ir.translator.AstTranslator
-
defaultCatchType
protected com.ibm.wala.types.TypeReference defaultCatchType()
- Specified by:
defaultCatchTypein classcom.ibm.wala.cast.ir.translator.AstTranslator
-
makeType
protected com.ibm.wala.types.TypeReference makeType(com.ibm.wala.cast.tree.CAstType type)
- Specified by:
makeTypein classcom.ibm.wala.cast.ir.translator.AstTranslator
-
ignoreName
protected boolean ignoreName(java.lang.String name)
- Overrides:
ignoreNamein classcom.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:
makeNameMapin classcom.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:
doLexicallyScopedReadin classcom.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:
doGlobalReadin classcom.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:
defineTypein classcom.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:
defineFieldin classcom.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:
composeEntityNamein classcom.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:
declareFunctionin classcom.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:
defineFunctionin classcom.ibm.wala.cast.ir.translator.AstTranslator
-
doThrow
protected void doThrow(com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext context, int exception)- Specified by:
doThrowin classcom.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:
doCallin classcom.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:
doNewObjectin classcom.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:
doMaterializeFunctionin classcom.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:
doArrayReadin interfacecom.ibm.wala.cast.ir.translator.ArrayOpHandler- Specified by:
doArrayReadin classcom.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:
doArrayWritein interfacecom.ibm.wala.cast.ir.translator.ArrayOpHandler- Specified by:
doArrayWritein classcom.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:
doFieldReadin classcom.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:
doFieldWritein classcom.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:
doPrimitivein classcom.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:
visitInstanceOfin classcom.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:
leaveInstanceOfin classcom.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:
doProloguein classcom.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:
doVisitin classcom.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:
topTypein classcom.ibm.wala.cast.ir.translator.AstTranslator
-
exceptionType
protected com.ibm.wala.cast.tree.CAstType exceptionType()
- Specified by:
exceptionTypein classcom.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:
getParameterPositionsin classcom.ibm.wala.cast.ir.translator.AstTranslator
-
-