public abstract class JSPrepareThisNode extends JSUnaryNode
this
argument conversion upon entering non-strict
functions (OrdinaryCallBindThis).
Converts the caller provided thisArg to the ThisBinding of the callee's execution context,
replacing null or undefined with the global object and performing ToObject on primitives.JSToObjectNode
operandNode
INTERMEDIATE_VALUE
Modifier | Constructor and Description |
---|---|
protected |
JSPrepareThisNode(JSContext context,
JavaScriptNode child) |
Modifier and Type | Method and Description |
---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static JSPrepareThisNode |
createPrepareThisBinding(JSContext context,
JavaScriptNode child) |
protected JSObject |
doBigInt(BigInt value) |
protected JSObject |
doBoolean(boolean value) |
protected JSObject |
doDouble(double value) |
protected Object |
doForeignObject(Object value,
com.oracle.truffle.api.interop.InteropLibrary interop) |
protected JSObject |
doInt(int value) |
protected JSObject |
doJSObject(JSObject object) |
protected JSDynamicObject |
doJSObject(Object object) |
protected Object |
doJSObjectCached(Object object,
Class<?> cachedClass) |
protected JSObject |
doString(com.oracle.truffle.api.strings.TruffleString value) |
protected JSObject |
doSymbol(Symbol value) |
createWrapper, execute, expressionToString, getNodeObject, getOperand
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, execute, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, executeVoid, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTags
getLanguage, getRealm, hasOverloadedOperators
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize
protected JSPrepareThisNode(JSContext context, JavaScriptNode child)
public static JSPrepareThisNode createPrepareThisBinding(JSContext context, JavaScriptNode child)
protected JSDynamicObject doJSObject(Object object)
protected JSObject doBoolean(boolean value)
protected JSObject doString(com.oracle.truffle.api.strings.TruffleString value)
protected JSObject doInt(int value)
protected JSObject doDouble(double value)
protected final Object doForeignObject(Object value, com.oracle.truffle.api.interop.InteropLibrary interop)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized
in class JavaScriptNode