public abstract static class JSOverloadedBinaryNode.DispatchBinaryOperatorNode extends JavaScriptBaseNode
DispatchBinaryOperator spec function. Its responsibility is
to call the correct operator overload. This node aims to perform the overload lookup at
compile-time and then use direct, inlinable function calls, guarded by shape checks and type
checks.| Modifier | Constructor and Description |
|---|---|
protected |
DispatchBinaryOperatorNode(com.oracle.truffle.api.strings.TruffleString overloadedOperatorName) |
| Modifier and Type | Method and Description |
|---|---|
protected Object |
doBigIntOverloaded(BigInt left,
JSOverloadedOperatorsObject right,
int rightOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doGeneric(Object left,
Object right,
JSFunctionCallNode callNode) |
protected Object |
doNullishOverloaded(Object left,
JSOverloadedOperatorsObject right) |
protected Object |
doNumberOverloaded(Object left,
JSOverloadedOperatorsObject right,
int rightOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doOverloadedBigInt(JSOverloadedOperatorsObject left,
BigInt right,
int leftOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doOverloadedNullish(JSOverloadedOperatorsObject left,
Object right) |
protected Object |
doOverloadedNumber(JSOverloadedOperatorsObject left,
Object right,
int leftOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doOverloadedOverloaded(JSOverloadedOperatorsObject left,
JSOverloadedOperatorsObject right,
int leftOperatorCounter,
int rightOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doOverloadedString(JSOverloadedOperatorsObject left,
Object right,
int leftOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected Object |
doStringOverloaded(Object left,
JSOverloadedOperatorsObject right,
int rightOperatorCounter,
Object operatorImplementation,
JSFunctionCallNode callNode) |
protected abstract Object |
execute(Object left,
Object right) |
protected com.oracle.truffle.api.strings.TruffleString |
getOverloadedOperatorName() |
protected boolean |
isAddition() |
protected boolean |
isEquality() |
copy, getLanguage, getRealm, hasOverloadedOperators, onReplaceaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, toStringprotected DispatchBinaryOperatorNode(com.oracle.truffle.api.strings.TruffleString overloadedOperatorName)
protected Object doOverloadedOverloaded(JSOverloadedOperatorsObject left, JSOverloadedOperatorsObject right, int leftOperatorCounter, int rightOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doOverloadedNumber(JSOverloadedOperatorsObject left, Object right, int leftOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doOverloadedBigInt(JSOverloadedOperatorsObject left, BigInt right, int leftOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doOverloadedString(JSOverloadedOperatorsObject left, Object right, int leftOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doOverloadedNullish(JSOverloadedOperatorsObject left, Object right)
protected Object doNumberOverloaded(Object left, JSOverloadedOperatorsObject right, int rightOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doBigIntOverloaded(BigInt left, JSOverloadedOperatorsObject right, int rightOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doStringOverloaded(Object left, JSOverloadedOperatorsObject right, int rightOperatorCounter, Object operatorImplementation, JSFunctionCallNode callNode)
protected Object doNullishOverloaded(Object left, JSOverloadedOperatorsObject right)
protected Object doGeneric(Object left, Object right, JSFunctionCallNode callNode)
protected com.oracle.truffle.api.strings.TruffleString getOverloadedOperatorName()
protected boolean isAddition()
protected boolean isEquality()