public abstract class JSBuiltinNode extends AbstractBodyNode
| Modifier and Type | Class and Description |
|---|---|
static interface |
JSBuiltinNode.Inlineable
Interface for trivial built-in nodes that can be inlined without going through a call.
|
static interface |
JSBuiltinNode.Inlined |
| Modifier and Type | Field and Description |
|---|---|
static String |
ARGUMENTS |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
JSBuiltinNode(JSContext context,
JSBuiltin builtin) |
protected |
JSBuiltinNode(JSContext context,
JSBuiltin builtin,
boolean construct,
boolean newTarget) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
boolean |
countsTowardsStackTraceLimit() |
static JSBuiltinNode |
createBuiltin(JSContext ctx,
JSBuiltin builtin,
boolean construct,
boolean newTarget) |
abstract JavaScriptNode[] |
getArguments() |
JSBuiltin |
getBuiltin() |
JSContext |
getContext() |
Object |
getNodeObject() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
boolean |
isCallerSensitive()
If true, this function needs the call source location.
|
boolean |
isInlineable() |
boolean |
isSplitImmediately()
Returns true if this built-in function should always be split per call site, if possible.
|
JSBuiltinNode.Inlined |
tryCreateInlined() |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, execute, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, 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, reportPolymorphicSpecializepublic static final String ARGUMENTS
public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNodehasTag in class AbstractBodyNodepublic Object getNodeObject()
public final JSContext getContext()
public JSBuiltin getBuiltin()
public abstract JavaScriptNode[] getArguments()
public boolean isInlineable()
public JSBuiltinNode.Inlined tryCreateInlined()
public boolean isCallerSensitive()
public boolean countsTowardsStackTraceLimit()
public boolean isSplitImmediately()
public static JSBuiltinNode createBuiltin(JSContext ctx, JSBuiltin builtin, boolean construct, boolean newTarget)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNode