public class CustomContextSensitivityStrategy extends java.lang.Object implements IContextSensitivityStrategy
Constructor and Description |
---|
CustomContextSensitivityStrategy(IContextSensitivityStrategy defaultContextSensitivity)
Creates a new
CustomContextSensitivityWrapper by wrapping the given context sensitivity strategy. |
Modifier and Type | Method and Description |
---|---|
HeapContext |
makeActivationAndArgumentsHeapContext(State state,
ObjectLabel function,
Value thisval,
FunctionCalls.CallInfo callInfo,
GenericSolver.SolverInterface c)
Constructs a heap context for objects related to a call.
|
HeapContext |
makeClosureVariableContext(Function fun,
GenericSolver.SolverInterface c) |
HeapContext |
makeConstructorHeapContext(State state,
ObjectLabel function,
FunctionCalls.CallInfo callInfo,
GenericSolver.SolverInterface c)
Constructs a heap context for an object created at 'new'.
|
ContextArguments |
makeContextArguments(State edgeState,
ObjectLabel calleeObj,
Value thisval,
FunctionCalls.CallInfo callInfo)
Attempts to make a context for a call, but only for callees that have been made context sensitive.
|
Context |
makeForInEntryContext(Context currentContext,
BeginForInNode n,
Value v)
Constructs a context for entering a for-in body.
|
Context |
makeFunctionEntryContext(State state,
ObjectLabel function,
FunctionCalls.CallInfo callInfo,
Value thisval,
GenericSolver.SolverInterface c)
Constructs a context for call.
|
HeapContext |
makeFunctionHeapContext(Function fun,
GenericSolver.SolverInterface c)
Constructs a heap context for a function object.
|
Context |
makeInitialContext()
Constructs the initial context.
|
Context |
makeLoopExitContext(Context currentContext,
EndLoopNode node)
Constructs a context for leaving a loop.
|
Context |
makeNextLoopUnrollingContext(Context currentContext,
BeginLoopNode node)
Constructs a context for (re-)entering a loop.
|
HeapContext |
makeObjectLiteralHeapContext(AbstractNode node,
State state)
Constructs a heap context for an object literal.
|
void |
makeSensitive(Function function,
int sensitivity)
Makes a function context sensitive.
|
void |
makeSensitiveFromCaller(Function callee,
int sensitivity,
Function caller)
Makes a function context sensitive, but only when it is invoked from a specific caller.
|
void |
requestContextSensitiveParameter(Function function,
java.lang.String parameter)
Requests that a parameter is treated context sensitively.
|
public CustomContextSensitivityStrategy(IContextSensitivityStrategy defaultContextSensitivity)
CustomContextSensitivityWrapper
by wrapping the given context sensitivity strategy.public HeapContext makeActivationAndArgumentsHeapContext(State state, ObjectLabel function, Value thisval, FunctionCalls.CallInfo callInfo, GenericSolver.SolverInterface c)
IContextSensitivityStrategy
makeActivationAndArgumentsHeapContext
in interface IContextSensitivityStrategy
public HeapContext makeClosureVariableContext(Function fun, GenericSolver.SolverInterface c)
public HeapContext makeConstructorHeapContext(State state, ObjectLabel function, FunctionCalls.CallInfo callInfo, GenericSolver.SolverInterface c)
IContextSensitivityStrategy
makeConstructorHeapContext
in interface IContextSensitivityStrategy
public ContextArguments makeContextArguments(State edgeState, ObjectLabel calleeObj, Value thisval, FunctionCalls.CallInfo callInfo)
public Context makeForInEntryContext(Context currentContext, BeginForInNode n, Value v)
IContextSensitivityStrategy
makeForInEntryContext
in interface IContextSensitivityStrategy
public Context makeFunctionEntryContext(State state, ObjectLabel function, FunctionCalls.CallInfo callInfo, Value thisval, GenericSolver.SolverInterface c)
IContextSensitivityStrategy
makeFunctionEntryContext
in interface IContextSensitivityStrategy
public HeapContext makeFunctionHeapContext(Function fun, GenericSolver.SolverInterface c)
IContextSensitivityStrategy
makeFunctionHeapContext
in interface IContextSensitivityStrategy
public Context makeInitialContext()
IContextSensitivityStrategy
makeInitialContext
in interface IContextSensitivityStrategy
public Context makeLoopExitContext(Context currentContext, EndLoopNode node)
IContextSensitivityStrategy
makeLoopExitContext
in interface IContextSensitivityStrategy
public Context makeNextLoopUnrollingContext(Context currentContext, BeginLoopNode node)
IContextSensitivityStrategy
makeNextLoopUnrollingContext
in interface IContextSensitivityStrategy
public HeapContext makeObjectLiteralHeapContext(AbstractNode node, State state)
IContextSensitivityStrategy
makeObjectLiteralHeapContext
in interface IContextSensitivityStrategy
public void makeSensitive(Function function, int sensitivity)
public void makeSensitiveFromCaller(Function callee, int sensitivity, Function caller)
If the specific caller is null, then the function is always context sensitive.
The sensitivity flag can be:
callee
- the function to make sensitive.sensitivity
- indicates what kind of context sensitivity that should be used.caller
- the caller that is required for context sensitivity to be enabled.public void requestContextSensitiveParameter(Function function, java.lang.String parameter)
IContextSensitivityStrategy
requestContextSensitiveParameter
in interface IContextSensitivityStrategy
Copyright © 2009-2019 Aarhus University