public abstract class IfNode extends StatementNode
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.ChildrenResumableNode.WithIntState, ResumableNode.WithObjectState| Modifier and Type | Field and Description |
|---|---|
protected JavaScriptNode |
condition |
protected JavaScriptNode |
elsePart |
protected JavaScriptNode |
thenPart |
EMPTYINTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
IfNode(JavaScriptNode condition,
JavaScriptNode thenPart,
JavaScriptNode elsePart) |
| Modifier and Type | Method and Description |
|---|---|
JavaScriptNode |
asResumableNode(int stateSlot) |
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
protected com.oracle.truffle.js.nodes.control.AbstractIfNode |
copyWith(JavaScriptNode newCondition,
JavaScriptNode newThenPart,
JavaScriptNode newElsePart) |
static IfNode |
create(JavaScriptNode condition,
JavaScriptNode thenPart,
JavaScriptNode elsePart) |
protected Object |
doBoolean(com.oracle.truffle.api.frame.VirtualFrame frame,
boolean conditionResult,
com.oracle.truffle.api.profiles.InlinedCountingConditionProfile conditionProfile) |
protected Object |
doObject(com.oracle.truffle.api.frame.VirtualFrame frame,
Object conditionResult,
JSToBooleanNode toBooleanNode,
com.oracle.truffle.api.profiles.InlinedCountingConditionProfile conditionProfile) |
JavaScriptNode |
getCondition() |
JavaScriptNode |
getElsePart() |
Object |
getNodeObject() |
JavaScriptNode |
getThenPart() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
boolean |
isResultAlwaysOfType(Class<?> clazz) |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
executeConditionAsBooleanaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, execute, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, 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, reportPolymorphicSpecializeclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitgetStateAsInt, getStateAsIntAndReset, getStateSlotKind, setStateAsIntcreateResumableNode, resetState, resumeprotected JavaScriptNode condition
protected JavaScriptNode thenPart
protected JavaScriptNode elsePart
protected IfNode(JavaScriptNode condition, JavaScriptNode thenPart, JavaScriptNode elsePart)
public static IfNode create(JavaScriptNode condition, JavaScriptNode thenPart, JavaScriptNode elsePart)
protected Object doBoolean(com.oracle.truffle.api.frame.VirtualFrame frame, boolean conditionResult, com.oracle.truffle.api.profiles.InlinedCountingConditionProfile conditionProfile)
protected Object doObject(com.oracle.truffle.api.frame.VirtualFrame frame, Object conditionResult, JSToBooleanNode toBooleanNode, com.oracle.truffle.api.profiles.InlinedCountingConditionProfile conditionProfile)
public JavaScriptNode getCondition()
public JavaScriptNode getThenPart()
public JavaScriptNode getElsePart()
protected com.oracle.truffle.js.nodes.control.AbstractIfNode copyWith(JavaScriptNode newCondition, JavaScriptNode newThenPart, JavaScriptNode newElsePart)
public JavaScriptNode asResumableNode(int stateSlot)
public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNodehasTag in class JavaScriptNodepublic Object getNodeObject()
getNodeObject in interface com.oracle.truffle.api.instrumentation.InstrumentableNodepublic com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
materializeInstrumentableNodes in interface com.oracle.truffle.api.instrumentation.InstrumentableNodepublic boolean isResultAlwaysOfType(Class<?> clazz)
isResultAlwaysOfType in class JavaScriptNodeprotected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNode