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.JSToObjectNodeoperandNodeINTERMEDIATE_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, getOperandaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, execute, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsgetLanguage, getRealm, hasOverloadedOperatorsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecializeprotected 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