public abstract class Environment extends Object
| Modifier and Type | Class and Description |
|---|---|
class |
Environment.AbstractFrameVarRef |
class |
Environment.FrameSlotVarRef |
class |
Environment.GlobalLexVarRef |
class |
Environment.GlobalVarRef |
class |
Environment.MappedArgumentVarRef |
static class |
Environment.VarRef |
class |
Environment.WrappedVarRef |
| Modifier and Type | Field and Description |
|---|---|
static String |
ARGUMENTS_NAME |
protected JSContext |
context |
protected NodeFactory |
factory |
static String |
NEW_TARGET_NAME |
static String |
SUPER_NAME |
static String |
THIS_NAME |
| Constructor and Description |
|---|
Environment(Environment parent,
NodeFactory factory,
JSContext context) |
| Modifier and Type | Method and Description |
|---|---|
void |
addFrameSlotFromSymbol(Symbol symbol) |
void |
addFrameSlotsFromSymbols(Iterable<Symbol> symbols) |
void |
addFrameSlotsFromSymbols(Iterable<Symbol> symbols,
boolean onlyBlockScoped) |
JavaScriptNode |
createLocal(com.oracle.truffle.api.frame.FrameSlot frameSlot,
int level,
int scopeLevel) |
JavaScriptNode |
createLocal(com.oracle.truffle.api.frame.FrameSlot frameSlot,
int level,
int scopeLevel,
boolean checkTDZ) |
Environment.VarRef |
createTempVar() |
com.oracle.truffle.api.frame.FrameSlot |
declareLocalVar(Object name) |
com.oracle.truffle.api.frame.FrameSlot |
declareVar(Object name) |
Environment.VarRef |
findArgumentsVar() |
Environment.VarRef |
findAsyncContextVar() |
Environment.VarRef |
findAsyncResultVar() |
protected abstract com.oracle.truffle.api.frame.FrameSlot |
findBlockFrameSlot(String name) |
Environment.VarRef |
findDynamicScopeVar() |
protected Environment.VarRef |
findInternalSlot(String name) |
protected Environment.VarRef |
findInternalSlot(String name,
boolean allowDebug) |
Environment.VarRef |
findLocalVar(String name) |
Environment.VarRef |
findNewTargetVar() |
Environment.VarRef |
findSuperVar() |
Environment.VarRef |
findTempVar(com.oracle.truffle.api.frame.FrameSlot var) |
Environment.VarRef |
findThisVar() |
Environment.VarRef |
findVar(String name,
boolean skipWith) |
Environment.VarRef |
findVar(String name,
boolean skipWith,
boolean skipEval,
boolean skipBlockScoped,
boolean skipGlobal) |
Environment.VarRef |
findYieldValueVar() |
abstract FunctionEnvironment |
function() |
com.oracle.truffle.api.frame.FrameDescriptor |
getBlockFrameDescriptor() |
com.oracle.truffle.api.frame.FrameDescriptor |
getFunctionFrameDescriptor() |
Environment |
getParent() |
Environment |
getParentAt(int frameLevel,
int scopeLevel) |
com.oracle.truffle.api.frame.FrameSlot[] |
getParentSlots() |
com.oracle.truffle.api.frame.FrameSlot[] |
getParentSlots(int frameLevel,
int scopeLevel) |
int |
getScopeLevel() |
Environment |
getVariableEnvironment() |
boolean |
hasLocalVar(String name) |
boolean |
isDynamicallyScoped() |
boolean |
isDynamicScopeContext()
Environment chain contains a dynamic scope (eval or with) that may shadow variables.
|
boolean |
isStrictMode() |
public static final String ARGUMENTS_NAME
public static final String THIS_NAME
public static final String SUPER_NAME
public static final String NEW_TARGET_NAME
protected final NodeFactory factory
protected final JSContext context
public Environment(Environment parent, NodeFactory factory, JSContext context)
public com.oracle.truffle.api.frame.FrameSlot declareLocalVar(Object name)
public com.oracle.truffle.api.frame.FrameSlot declareVar(Object name)
public boolean hasLocalVar(String name)
public Environment.VarRef findThisVar()
public Environment.VarRef findSuperVar()
public Environment.VarRef findArgumentsVar()
public Environment.VarRef findNewTargetVar()
public Environment.VarRef findAsyncContextVar()
public Environment.VarRef findAsyncResultVar()
public Environment.VarRef findYieldValueVar()
public Environment.VarRef findDynamicScopeVar()
public final JavaScriptNode createLocal(com.oracle.truffle.api.frame.FrameSlot frameSlot, int level, int scopeLevel)
public final JavaScriptNode createLocal(com.oracle.truffle.api.frame.FrameSlot frameSlot, int level, int scopeLevel, boolean checkTDZ)
protected final Environment.VarRef findInternalSlot(String name)
protected final Environment.VarRef findInternalSlot(String name, boolean allowDebug)
public final Environment.VarRef findLocalVar(String name)
public final Environment.VarRef findVar(String name, boolean skipWith)
public final Environment.VarRef findVar(String name, boolean skipWith, boolean skipEval, boolean skipBlockScoped, boolean skipGlobal)
protected abstract com.oracle.truffle.api.frame.FrameSlot findBlockFrameSlot(String name)
public com.oracle.truffle.api.frame.FrameDescriptor getBlockFrameDescriptor()
public final Environment getParent()
public abstract FunctionEnvironment function()
public final Environment getParentAt(int frameLevel, int scopeLevel)
public Environment.VarRef createTempVar()
public Environment.VarRef findTempVar(com.oracle.truffle.api.frame.FrameSlot var)
public com.oracle.truffle.api.frame.FrameDescriptor getFunctionFrameDescriptor()
public boolean isStrictMode()
public int getScopeLevel()
public com.oracle.truffle.api.frame.FrameSlot[] getParentSlots()
public final com.oracle.truffle.api.frame.FrameSlot[] getParentSlots(int frameLevel,
int scopeLevel)
public void addFrameSlotsFromSymbols(Iterable<Symbol> symbols, boolean onlyBlockScoped)
public void addFrameSlotFromSymbol(Symbol symbol)
public boolean isDynamicallyScoped()
public boolean isDynamicScopeContext()
public Environment getVariableEnvironment()