public final class FunctionEnvironment extends Environment
| Modifier and Type | Class and Description |
|---|---|
class |
FunctionEnvironment.JumpTargetCloseable<T extends BreakTarget> |
Environment.AbstractFrameVarRef, Environment.FrameSlotVarRef, Environment.GlobalLexVarRef, Environment.GlobalVarRef, Environment.MappedArgumentVarRef, Environment.VarRef, Environment.WrappedVarRef| Modifier and Type | Field and Description |
|---|---|
static com.oracle.truffle.api.strings.TruffleString |
DYNAMIC_SCOPE_IDENTIFIER |
context, factory| Constructor and Description |
|---|
FunctionEnvironment(Environment parent,
NodeFactory factory,
JSContext context,
Scope scope,
boolean isStrictMode,
boolean isEval,
boolean isDirectEval,
boolean isArrowFunction,
boolean isGeneratorFunction,
boolean isDerivedConstructor,
boolean isAsyncFunction,
boolean isGlobal,
boolean hasSyntheticArguments) |
addFrameSlotFromSymbol, addFrameSlotsFromSymbols, addFrameSlotsFromSymbols, createLocal, createTempVar, findActiveModule, findArgumentsVar, findAsyncContextVar, findAsyncResultVar, findBlockScopedVar, findDynamicScopeVar, findInternalSlot, findInternalSlot, findInternalSlot, findLocalVar, findNewTargetVar, findSuperVar, findTempVar, findThisVar, findVar, findVar, findVar, findYieldValueVar, function, getBlockScopeSlot, getParent, getParentAt, hasLocalVar, hasScopeFrame, joinElements, reserveArgumentsSlot, reserveDynamicScopeSlot, reserveNewTargetSlot, reserveSuperSlot, reserveThisSlot, toStringpublic static final com.oracle.truffle.api.strings.TruffleString DYNAMIC_SCOPE_IDENTIFIER
public FunctionEnvironment(Environment parent, NodeFactory factory, JSContext context, Scope scope, boolean isStrictMode, boolean isEval, boolean isDirectEval, boolean isArrowFunction, boolean isGeneratorFunction, boolean isDerivedConstructor, boolean isAsyncFunction, boolean isGlobal, boolean hasSyntheticArguments)
public JSFrameSlot declareLocalVar(Object name)
declareLocalVar in class Environmentpublic JSFrameSlot declareInternalSlot(Object name)
declareInternalSlot in class Environmentpublic JSFrameSlot getReturnSlot()
public boolean hasReturnSlot()
public JSFrameSlot getAsyncResultSlot()
public JSFrameSlot getAsyncContextSlot()
public JSFrameSlot getYieldResultSlot()
public JSFrameSlot getCurrentBlockScopeSlot()
getCurrentBlockScopeSlot in class Environmentpublic boolean isEval()
public boolean isArrowFunction()
public boolean isGeneratorFunction()
public JSFrameDescriptor getBlockFrameDescriptor()
getBlockFrameDescriptor in class Environmentpublic JSFrameSlot findBlockFrameSlot(Object name)
findBlockFrameSlot in class Environmentpublic JSFrameSlot findFunctionFrameSlot(Object name)
findFunctionFrameSlot in class Environmentpublic FunctionEnvironment.JumpTargetCloseable<ContinueTarget> pushContinueTarget(String label)
public FunctionEnvironment.JumpTargetCloseable<BreakTarget> pushBreakTarget(String label)
public BreakTarget findBreakTarget(Object label)
public ContinueTarget findContinueTarget(Object label)
public boolean hasReturn()
public void addReturn()
public boolean hasAwait()
public void addAwait()
public boolean hasYield()
public void addYield()
public void setDirectArgumentsAccess(boolean directArgumentsAccess)
public boolean isDirectArgumentsAccess()
public void addMappedParameter(JSFrameSlot slot, int index)
public com.oracle.truffle.api.strings.TruffleString getFunctionName()
public void setFunctionName(com.oracle.truffle.api.strings.TruffleString functionName)
public com.oracle.truffle.api.strings.TruffleString getInternalFunctionName()
public void setInternalFunctionName(com.oracle.truffle.api.strings.TruffleString internalFunctionName)
public com.oracle.truffle.api.strings.TruffleString getExplicitOrInternalFunctionName()
public void setNamedFunctionExpression(boolean isNamedExpression)
protected boolean isNamedFunctionExpression()
public boolean needsParentFrame()
public void setNeedsParentFrame(boolean needsParentFrame)
public void freeze()
public boolean isFrozen()
public boolean isDeepFrozen()
public boolean hasMappedParameters()
public JSFrameDescriptor getFunctionFrameDescriptor()
getFunctionFrameDescriptor in class Environmentpublic boolean isStrictMode()
isStrictMode in class Environmentpublic FunctionEnvironment getParentFunction()
public FunctionEnvironment getParentFunction(int level)
public FunctionEnvironment getNonArrowParentFunction()
public int getScopeLevel()
getScopeLevel in class Environmentpublic boolean isGlobal()
public boolean hasSyntheticArguments()
public boolean returnsLastStatementResult()
public void setIsDynamicallyScoped(boolean isDynamicallyScoped)
public boolean isDynamicallyScoped()
isDynamicallyScoped in class Environmentpublic boolean isDynamicScopeContext()
EnvironmentisDynamicScopeContext in class Environmentpublic Environment getVariableEnvironment()
getVariableEnvironment in class Environmentpublic boolean isDirectEval()
public boolean isIndirectEval()
public boolean isCallerContextEval()
public boolean inDirectEval()
public void setNeedsNewTarget(boolean needsNewTarget)
public void setRestParameter(boolean restParameter)
public boolean hasRestParameter()
public void setSimpleParameterList(boolean simpleParameterList)
public boolean hasSimpleParameterList()
public int getLeadingArgumentCount()
public boolean isDerivedConstructor()
public int getThisFunctionLevel()
public boolean isAsyncFunction()
public boolean isAsyncGeneratorFunction()
public Scope getScope()
getScope in class Environmentpublic boolean isModule()
public boolean isScriptOrModule()
public void prepareForDirectEval()
protected String toStringImpl(Map<String,Integer> state)
toStringImpl in class Environment