com.oracle.truffle.js.nodes.binary.JSLessThanNodeGen Maven / Gradle / Ivy
// CheckStyle: start generated
package com.oracle.truffle.js.nodes.binary;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.UnexpectedResultException;
import com.oracle.truffle.api.strings.TruffleString;
import com.oracle.truffle.api.strings.TruffleString.CompareCharsUTF16Node;
import com.oracle.truffle.js.nodes.JSTypes;
import com.oracle.truffle.js.nodes.JSTypesGen;
import com.oracle.truffle.js.nodes.JavaScriptNode;
import com.oracle.truffle.js.nodes.cast.JSStringToNumberNode;
import com.oracle.truffle.js.nodes.cast.JSToBooleanNode;
import com.oracle.truffle.js.nodes.cast.JSToBooleanNodeGen;
import com.oracle.truffle.js.nodes.cast.JSToPrimitiveNode;
import com.oracle.truffle.js.nodes.cast.JSToStringOrNumberNode;
import com.oracle.truffle.js.runtime.BigInt;
import com.oracle.truffle.js.runtime.SafeInteger;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;
/**
* Debug Info:
* Specialization {@link JSLessThanNode#doInt}
* Activation probability: 0.10029
* With/without class size: 5/0 bytes
* Specialization {@link JSLessThanNode#doSafeInteger(int, SafeInteger)}
* Activation probability: 0.09503
* With/without class size: 5/0 bytes
* Specialization {@link JSLessThanNode#doSafeInteger(SafeInteger, int)}
* Activation probability: 0.08977
* With/without class size: 5/0 bytes
* Specialization {@link JSLessThanNode#doSafeInteger(SafeInteger, SafeInteger)}
* Activation probability: 0.08450
* With/without class size: 5/0 bytes
* Specialization {@link JSLessThanNode#doLong}
* Activation probability: 0.07924
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doDouble}
* Activation probability: 0.07398
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doString}
* Activation probability: 0.06871
* With/without class size: 5/4 bytes
* Specialization {@link JSLessThanNode#doStringDouble}
* Activation probability: 0.06345
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doDoubleString}
* Activation probability: 0.05819
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doStringBigInt}
* Activation probability: 0.05292
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doBigIntString}
* Activation probability: 0.04766
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doBigInt}
* Activation probability: 0.04240
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doBigIntAndInt}
* Activation probability: 0.03713
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doBigIntAndNumber}
* Activation probability: 0.03187
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doIntAndBigInt}
* Activation probability: 0.02661
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doNumberAndBigInt}
* Activation probability: 0.02135
* With/without class size: 4/0 bytes
* Specialization {@link JSLessThanNode#doOverloaded}
* Activation probability: 0.01608
* With/without class size: 4/10 bytes
* Specialization {@link JSLessThanNode#doGeneric}
* Activation probability: 0.01082
* With/without class size: 4/20 bytes
*
*/
@GeneratedBy(JSLessThanNode.class)
@SuppressWarnings("javadoc")
public final class JSLessThanNodeGen extends JSLessThanNode {
private static final StateField OVERLOADED__J_S_LESS_THAN_NODE_OVERLOADED_STATE_0_UPDATER = StateField.create(OverloadedData.lookup_(), "overloaded_state_0_");
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doOverloaded}
* Parameter: {@link JSToBooleanNode} toBooleanNode
* Inline method: {@link JSToBooleanNodeGen#inline}
*/
private static final JSToBooleanNode INLINED_OVERLOADED_TO_BOOLEAN_NODE_ = JSToBooleanNodeGen.inline(InlineTarget.create(JSToBooleanNode.class, OVERLOADED__J_S_LESS_THAN_NODE_OVERLOADED_STATE_0_UPDATER.subUpdater(0, 15), ReferenceField.create(OverloadedData.lookup_(), "overloaded_toBooleanNode__field1_", Node.class)));
/**
* State Info:
* 0: SpecializationActive {@link JSLessThanNode#doInt}
* 1: SpecializationActive {@link JSLessThanNode#doSafeInteger(int, SafeInteger)}
* 2: SpecializationActive {@link JSLessThanNode#doSafeInteger(SafeInteger, int)}
* 3: SpecializationActive {@link JSLessThanNode#doSafeInteger(SafeInteger, SafeInteger)}
* 4: SpecializationActive {@link JSLessThanNode#doLong}
* 5: SpecializationActive {@link JSLessThanNode#doDouble}
* 6: SpecializationActive {@link JSLessThanNode#doString}
* 7: SpecializationActive {@link JSLessThanNode#doGeneric}
* 8: SpecializationActive {@link JSLessThanNode#doStringDouble}
* 9: SpecializationActive {@link JSLessThanNode#doDoubleString}
* 10: SpecializationActive {@link JSLessThanNode#doStringBigInt}
* 11: SpecializationActive {@link JSLessThanNode#doBigIntString}
* 12: SpecializationActive {@link JSLessThanNode#doBigInt}
* 13: SpecializationActive {@link JSLessThanNode#doBigIntAndInt}
* 14: SpecializationActive {@link JSLessThanNode#doBigIntAndNumber}
* 15: SpecializationActive {@link JSLessThanNode#doIntAndBigInt}
* 16: SpecializationActive {@link JSLessThanNode#doNumberAndBigInt}
* 17: SpecializationActive {@link JSLessThanNode#doOverloaded}
* 18-20: ImplicitCast[type=double, index=0]
* 21-23: ImplicitCast[type=double, index=1]
*
*/
@CompilationFinal private int state_0_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doStringDouble}
* Parameter: {@link JSStringToNumberNode} stringToDouble
*/
@Child private JSStringToNumberNode stringToDouble;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doString}
* Parameter: {@link CompareCharsUTF16Node} compareNode
*/
@Child private CompareCharsUTF16Node string_compareNode_;
@Child private OverloadedData overloaded_cache;
@Child private GenericData generic_cache;
private JSLessThanNodeGen(JavaScriptNode left, JavaScriptNode right) {
super(left, right);
}
@Override
public boolean executeBoolean(Object leftNodeValue, Object rightNodeValue) {
int state_0 = this.state_0_;
if ((state_0 & 0x3ffff) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] || SpecializationActive[JSLessThanNode.doLong(long, long)] || SpecializationActive[JSLessThanNode.doDouble(double, double)] || SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] || SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] || SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
if ((state_0 & 0b11) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */ && leftNodeValue instanceof Integer) {
int leftNodeValue_ = (int) leftNodeValue;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] */ && rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
return JSLessThanNode.doInt(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue instanceof SafeInteger) {
SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0b1100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] */ && leftNodeValue instanceof SafeInteger) {
SafeInteger leftNodeValue_ = (SafeInteger) leftNodeValue;
if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] */ && rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] */ && rightNodeValue instanceof SafeInteger) {
SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0b10000) != 0 /* is SpecializationActive[JSLessThanNode.doLong(long, long)] */ && leftNodeValue instanceof Long) {
long leftNodeValue_ = (long) leftNodeValue;
if (rightNodeValue instanceof Long) {
long rightNodeValue_ = (long) rightNodeValue;
return JSLessThanNode.doLong(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0b100000) != 0 /* is SpecializationActive[JSLessThanNode.doDouble(double, double)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue)) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue);
if (JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue)) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue);
return JSLessThanNode.doDouble(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0b101000000) != 0 /* is SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue instanceof TruffleString) {
TruffleString leftNodeValue_ = (TruffleString) leftNodeValue;
if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */ && rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
{
CompareCharsUTF16Node compareNode__ = this.string_compareNode_;
if (compareNode__ != null) {
return JSLessThanNode.doString(leftNodeValue_, rightNodeValue_, compareNode__);
}
}
}
if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue)) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue);
{
JSStringToNumberNode stringToDouble_ = this.stringToDouble;
if (stringToDouble_ != null) {
return JSLessThanNode.doStringDouble(leftNodeValue_, rightNodeValue_, stringToDouble_);
}
}
}
}
if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue)) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue);
if (rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
{
JSStringToNumberNode stringToDouble_1 = this.stringToDouble;
if (stringToDouble_1 != null) {
return JSLessThanNode.doDoubleString(leftNodeValue_, rightNodeValue_, stringToDouble_1);
}
}
}
}
if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] */ && leftNodeValue instanceof TruffleString) {
TruffleString leftNodeValue_ = (TruffleString) leftNodeValue;
if (rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
return JSLessThanNode.doStringBigInt(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0b111100000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue instanceof BigInt) {
BigInt leftNodeValue_ = (BigInt) leftNodeValue;
if ((state_0 & 0b100000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] */ && rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
return JSLessThanNode.doBigIntString(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] */ && rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
return JSLessThanNode.doBigInt(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */ && rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
return JSLessThanNode.doBigIntAndInt(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue)) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue);
return JSLessThanNode.doBigIntAndNumber(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0x18000) != 0 /* is SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */ && leftNodeValue instanceof Integer) {
int leftNodeValue_ = (int) leftNodeValue;
return JSLessThanNode.doIntAndBigInt(leftNodeValue_, rightNodeValue_);
}
if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue)) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue);
return JSLessThanNode.doNumberAndBigInt(leftNodeValue_, rightNodeValue_);
}
}
if ((state_0 & 0x20080) != 0 /* is SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
if ((state_0 & 0x20000) != 0 /* is SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */) {
OverloadedData s16_ = this.overloaded_cache;
if (s16_ != null) {
if ((hasOverloadedOperators(leftNodeValue) || hasOverloadedOperators(rightNodeValue))) {
Node node__ = (s16_);
return JSLessThanNode.doOverloaded(leftNodeValue, rightNodeValue, node__, s16_.overloadedOperatorNode_, INLINED_OVERLOADED_TO_BOOLEAN_NODE_);
}
}
}
if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
GenericData s17_ = this.generic_cache;
if (s17_ != null) {
if ((!(hasOverloadedOperators(leftNodeValue))) && (!(hasOverloadedOperators(rightNodeValue)))) {
return JSLessThanNode.doGeneric(leftNodeValue, rightNodeValue, s17_.toStringOrNumber1_, s17_.toPrimitive1_, s17_.toStringOrNumber2_, s17_.toPrimitive2_, s17_.lessThanNode_);
}
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue, rightNodeValue);
}
@Override
public boolean executeBoolean(VirtualFrame frameValue) {
int state_0 = this.state_0_;
if ((state_0 & 0x3fffe) == 0 /* only-active SpecializationActive[JSLessThanNode.doInt(int, int)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_int_int0(state_0, frameValue);
} else if ((state_0 & 0x3ffdf) == 0 /* only-active SpecializationActive[JSLessThanNode.doDouble(double, double)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_double_double1(state_0, frameValue);
} else if ((state_0 & 0x37ffd) == 0 /* only-active SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_int2(state_0, frameValue);
} else if ((state_0 & 0x3dffb) == 0 /* only-active SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_int3(state_0, frameValue);
} else if ((state_0 & 0x3beff) == 0 /* only-active SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_double4(state_0, frameValue);
} else if ((state_0 & 0x2fdff) == 0 /* only-active SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
return executeBoolean_double5(state_0, frameValue);
} else {
return executeBoolean_generic6(state_0, frameValue);
}
}
private boolean executeBoolean_int_int0(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
int leftNodeValue_;
try {
leftNodeValue_ = super.leftNode.executeInt(frameValue);
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
Object rightNodeValue = super.rightNode.execute(frameValue);
return executeAndSpecialize(ex.getResult(), rightNodeValue);
}
int rightNodeValue_;
try {
rightNodeValue_ = super.rightNode.executeInt(frameValue);
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, ex.getResult());
}
assert (state_0 & 0b1) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] */;
return JSLessThanNode.doInt(leftNodeValue_, rightNodeValue_);
}
private boolean executeBoolean_double_double1(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
int leftNodeValue_int = 0;
double leftNodeValue_;
try {
if ((state_0 & 0x180000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
leftNodeValue_ = super.leftNode.executeDouble(frameValue);
} else if ((state_0 & 0x140000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
leftNodeValue_int = super.leftNode.executeInt(frameValue);
leftNodeValue_ = JSTypes.intToDouble(leftNodeValue_int);
} else {
Object leftNodeValue__ = super.leftNode.execute(frameValue);
leftNodeValue_ = JSTypesGen.expectImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue__);
}
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
Object rightNodeValue = super.rightNode.execute(frameValue);
return executeAndSpecialize(ex.getResult(), rightNodeValue);
}
int rightNodeValue_int = 0;
double rightNodeValue_;
try {
if ((state_0 & 0xc00000) == 0 /* only-active ImplicitCast[type=double, index=1] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
rightNodeValue_ = super.rightNode.executeDouble(frameValue);
} else if ((state_0 & 0xa00000) == 0 /* only-active ImplicitCast[type=double, index=1] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
rightNodeValue_int = super.rightNode.executeInt(frameValue);
rightNodeValue_ = JSTypes.intToDouble(rightNodeValue_int);
} else {
Object rightNodeValue__ = super.rightNode.execute(frameValue);
rightNodeValue_ = JSTypesGen.expectImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue__);
}
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(((state_0 & 0x140000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) ? (Object) leftNodeValue_int : (Object) leftNodeValue_), ex.getResult());
}
assert (state_0 & 0b100000) != 0 /* is SpecializationActive[JSLessThanNode.doDouble(double, double)] */;
return JSLessThanNode.doDouble(leftNodeValue_, rightNodeValue_);
}
private boolean executeBoolean_int2(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
int leftNodeValue_;
try {
leftNodeValue_ = super.leftNode.executeInt(frameValue);
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
Object rightNodeValue = super.rightNode.execute(frameValue);
return executeAndSpecialize(ex.getResult(), rightNodeValue);
}
Object rightNodeValue_ = super.rightNode.execute(frameValue);
if ((state_0 & 0b1000000000000010) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */) {
if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) {
SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue__);
}
if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */ && rightNodeValue_ instanceof BigInt) {
BigInt rightNodeValue__ = (BigInt) rightNodeValue_;
return JSLessThanNode.doIntAndBigInt(leftNodeValue_, rightNodeValue__);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, rightNodeValue_);
}
private boolean executeBoolean_int3(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
Object leftNodeValue_ = super.leftNode.execute(frameValue);
int rightNodeValue_;
try {
rightNodeValue_ = super.rightNode.executeInt(frameValue);
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, ex.getResult());
}
if ((state_0 & 0b10000000000100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */) {
if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] */ && leftNodeValue_ instanceof SafeInteger) {
SafeInteger leftNodeValue__ = (SafeInteger) leftNodeValue_;
return JSLessThanNode.doSafeInteger(leftNodeValue__, rightNodeValue_);
}
if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */ && leftNodeValue_ instanceof BigInt) {
BigInt leftNodeValue__ = (BigInt) leftNodeValue_;
return JSLessThanNode.doBigIntAndInt(leftNodeValue__, rightNodeValue_);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, rightNodeValue_);
}
private boolean executeBoolean_double4(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
Object leftNodeValue_ = super.leftNode.execute(frameValue);
int rightNodeValue_int = 0;
double rightNodeValue_;
try {
if ((state_0 & 0xc00000) == 0 /* only-active ImplicitCast[type=double, index=1] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
rightNodeValue_ = super.rightNode.executeDouble(frameValue);
} else if ((state_0 & 0xa00000) == 0 /* only-active ImplicitCast[type=double, index=1] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
rightNodeValue_int = super.rightNode.executeInt(frameValue);
rightNodeValue_ = JSTypes.intToDouble(rightNodeValue_int);
} else {
Object rightNodeValue__ = super.rightNode.execute(frameValue);
rightNodeValue_ = JSTypesGen.expectImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue__);
}
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, ex.getResult());
}
if ((state_0 & 0b100000100000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */) {
if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue_ instanceof TruffleString) {
TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_;
{
JSStringToNumberNode stringToDouble_ = this.stringToDouble;
if (stringToDouble_ != null) {
return JSLessThanNode.doStringDouble(leftNodeValue__, rightNodeValue_, stringToDouble_);
}
}
}
if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue_ instanceof BigInt) {
BigInt leftNodeValue__ = (BigInt) leftNodeValue_;
return JSLessThanNode.doBigIntAndNumber(leftNodeValue__, rightNodeValue_);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, ((state_0 & 0xa00000) == 0 /* only-active ImplicitCast[type=double, index=1] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) ? (Object) rightNodeValue_int : (Object) rightNodeValue_));
}
private boolean executeBoolean_double5(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
int leftNodeValue_int = 0;
double leftNodeValue_;
try {
if ((state_0 & 0x180000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
leftNodeValue_ = super.leftNode.executeDouble(frameValue);
} else if ((state_0 & 0x140000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */)) {
leftNodeValue_int = super.leftNode.executeInt(frameValue);
leftNodeValue_ = JSTypes.intToDouble(leftNodeValue_int);
} else {
Object leftNodeValue__ = super.leftNode.execute(frameValue);
leftNodeValue_ = JSTypesGen.expectImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue__);
}
} catch (UnexpectedResultException ex) {
CompilerDirectives.transferToInterpreterAndInvalidate();
Object rightNodeValue = super.rightNode.execute(frameValue);
return executeAndSpecialize(ex.getResult(), rightNodeValue);
}
Object rightNodeValue_ = super.rightNode.execute(frameValue);
if ((state_0 & 0x10200) != 0 /* is SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */) {
if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */ && rightNodeValue_ instanceof TruffleString) {
TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_;
{
JSStringToNumberNode stringToDouble_1 = this.stringToDouble;
if (stringToDouble_1 != null) {
return JSLessThanNode.doDoubleString(leftNodeValue_, rightNodeValue__, stringToDouble_1);
}
}
}
if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue_ instanceof BigInt) {
BigInt rightNodeValue__ = (BigInt) rightNodeValue_;
return JSLessThanNode.doNumberAndBigInt(leftNodeValue_, rightNodeValue__);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(((state_0 & 0x140000) == 0 /* only-active ImplicitCast[type=double, index=0] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSLessThanNode.doInt(int, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSLessThanNode.doLong(long, long)] && SpecializationActive[JSLessThanNode.doDouble(double, double)] && SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) ? (Object) leftNodeValue_int : (Object) leftNodeValue_), rightNodeValue_);
}
private boolean executeBoolean_generic6(int state_0__, VirtualFrame frameValue) {
int state_0 = state_0__;
Object leftNodeValue_ = super.leftNode.execute(frameValue);
Object rightNodeValue_ = super.rightNode.execute(frameValue);
if ((state_0 & 0x3ffff) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] || SpecializationActive[JSLessThanNode.doLong(long, long)] || SpecializationActive[JSLessThanNode.doDouble(double, double)] || SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] || SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] || SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
if ((state_0 & 0b11) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */ && leftNodeValue_ instanceof Integer) {
int leftNodeValue__ = (int) leftNodeValue_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSLessThanNode.doInt(int, int)] */ && rightNodeValue_ instanceof Integer) {
int rightNodeValue__ = (int) rightNodeValue_;
return JSLessThanNode.doInt(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) {
SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_;
return JSLessThanNode.doSafeInteger(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0b1100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] */ && leftNodeValue_ instanceof SafeInteger) {
SafeInteger leftNodeValue__ = (SafeInteger) leftNodeValue_;
if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] */ && rightNodeValue_ instanceof Integer) {
int rightNodeValue__ = (int) rightNodeValue_;
return JSLessThanNode.doSafeInteger(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) {
SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_;
return JSLessThanNode.doSafeInteger(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0b10000) != 0 /* is SpecializationActive[JSLessThanNode.doLong(long, long)] */ && leftNodeValue_ instanceof Long) {
long leftNodeValue__ = (long) leftNodeValue_;
if (rightNodeValue_ instanceof Long) {
long rightNodeValue__ = (long) rightNodeValue_;
return JSLessThanNode.doLong(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0b100000) != 0 /* is SpecializationActive[JSLessThanNode.doDouble(double, double)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_)) {
double leftNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_);
if (JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_)) {
double rightNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_);
return JSLessThanNode.doDouble(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0b101000000) != 0 /* is SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue_ instanceof TruffleString) {
TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_;
if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */ && rightNodeValue_ instanceof TruffleString) {
TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_;
{
CompareCharsUTF16Node compareNode__ = this.string_compareNode_;
if (compareNode__ != null) {
return JSLessThanNode.doString(leftNodeValue__, rightNodeValue__, compareNode__);
}
}
}
if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_)) {
double rightNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_);
{
JSStringToNumberNode stringToDouble_ = this.stringToDouble;
if (stringToDouble_ != null) {
return JSLessThanNode.doStringDouble(leftNodeValue__, rightNodeValue__, stringToDouble_);
}
}
}
}
if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_)) {
double leftNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_);
if (rightNodeValue_ instanceof TruffleString) {
TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_;
{
JSStringToNumberNode stringToDouble_1 = this.stringToDouble;
if (stringToDouble_1 != null) {
return JSLessThanNode.doDoubleString(leftNodeValue__, rightNodeValue__, stringToDouble_1);
}
}
}
}
if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] */ && leftNodeValue_ instanceof TruffleString) {
TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_;
if (rightNodeValue_ instanceof BigInt) {
BigInt rightNodeValue__ = (BigInt) rightNodeValue_;
return JSLessThanNode.doStringBigInt(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0b111100000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue_ instanceof BigInt) {
BigInt leftNodeValue__ = (BigInt) leftNodeValue_;
if ((state_0 & 0b100000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] */ && rightNodeValue_ instanceof TruffleString) {
TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_;
return JSLessThanNode.doBigIntString(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] */ && rightNodeValue_ instanceof BigInt) {
BigInt rightNodeValue__ = (BigInt) rightNodeValue_;
return JSLessThanNode.doBigInt(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */ && rightNodeValue_ instanceof Integer) {
int rightNodeValue__ = (int) rightNodeValue_;
return JSLessThanNode.doBigIntAndInt(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */ && JSTypesGen.isImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_)) {
double rightNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0xe00000) >>> 21 /* get-int ImplicitCast[type=double, index=1] */, rightNodeValue_);
return JSLessThanNode.doBigIntAndNumber(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0x18000) != 0 /* is SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue_ instanceof BigInt) {
BigInt rightNodeValue__ = (BigInt) rightNodeValue_;
if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */ && leftNodeValue_ instanceof Integer) {
int leftNodeValue__ = (int) leftNodeValue_;
return JSLessThanNode.doIntAndBigInt(leftNodeValue__, rightNodeValue__);
}
if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */ && JSTypesGen.isImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_)) {
double leftNodeValue__ = JSTypesGen.asImplicitDouble((state_0 & 0x1c0000) >>> 18 /* get-int ImplicitCast[type=double, index=0] */, leftNodeValue_);
return JSLessThanNode.doNumberAndBigInt(leftNodeValue__, rightNodeValue__);
}
}
if ((state_0 & 0x20080) != 0 /* is SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
if ((state_0 & 0x20000) != 0 /* is SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */) {
OverloadedData s16_ = this.overloaded_cache;
if (s16_ != null) {
if ((hasOverloadedOperators(leftNodeValue_) || hasOverloadedOperators(rightNodeValue_))) {
Node node__ = (s16_);
return JSLessThanNode.doOverloaded(leftNodeValue_, rightNodeValue_, node__, s16_.overloadedOperatorNode_, INLINED_OVERLOADED_TO_BOOLEAN_NODE_);
}
}
}
if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
GenericData s17_ = this.generic_cache;
if (s17_ != null) {
if ((!(hasOverloadedOperators(leftNodeValue_))) && (!(hasOverloadedOperators(rightNodeValue_)))) {
return JSLessThanNode.doGeneric(leftNodeValue_, rightNodeValue_, s17_.toStringOrNumber1_, s17_.toPrimitive1_, s17_.toStringOrNumber2_, s17_.toPrimitive2_, s17_.lessThanNode_);
}
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(leftNodeValue_, rightNodeValue_);
}
@Override
public void executeVoid(VirtualFrame frameValue) {
executeBoolean(frameValue);
return;
}
private boolean executeAndSpecialize(Object leftNodeValue, Object rightNodeValue) {
int state_0 = this.state_0_;
if (leftNodeValue instanceof Integer) {
int leftNodeValue_ = (int) leftNodeValue;
if (rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
state_0 = state_0 | 0b1 /* add SpecializationActive[JSLessThanNode.doInt(int, int)] */;
this.state_0_ = state_0;
return JSLessThanNode.doInt(leftNodeValue_, rightNodeValue_);
}
if (rightNodeValue instanceof SafeInteger) {
SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue;
state_0 = state_0 | 0b10 /* add SpecializationActive[JSLessThanNode.doSafeInteger(int, SafeInteger)] */;
this.state_0_ = state_0;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
}
if (leftNodeValue instanceof SafeInteger) {
SafeInteger leftNodeValue_ = (SafeInteger) leftNodeValue;
if (rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
state_0 = state_0 | 0b100 /* add SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, int)] */;
this.state_0_ = state_0;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
if (rightNodeValue instanceof SafeInteger) {
SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue;
state_0 = state_0 | 0b1000 /* add SpecializationActive[JSLessThanNode.doSafeInteger(SafeInteger, SafeInteger)] */;
this.state_0_ = state_0;
return JSLessThanNode.doSafeInteger(leftNodeValue_, rightNodeValue_);
}
}
if (leftNodeValue instanceof Long) {
long leftNodeValue_ = (long) leftNodeValue;
if (rightNodeValue instanceof Long) {
long rightNodeValue_ = (long) rightNodeValue;
state_0 = state_0 | 0b10000 /* add SpecializationActive[JSLessThanNode.doLong(long, long)] */;
this.state_0_ = state_0;
return JSLessThanNode.doLong(leftNodeValue_, rightNodeValue_);
}
}
{
int doubleCast0;
if ((doubleCast0 = JSTypesGen.specializeImplicitDouble(leftNodeValue)) != 0) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast0, leftNodeValue);
int doubleCast1;
if ((doubleCast1 = JSTypesGen.specializeImplicitDouble(rightNodeValue)) != 0) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast1, rightNodeValue);
state_0 = (state_0 | (doubleCast0 << 18) /* set-int ImplicitCast[type=double, index=0] */);
state_0 = (state_0 | (doubleCast1 << 21) /* set-int ImplicitCast[type=double, index=1] */);
state_0 = state_0 | 0b100000 /* add SpecializationActive[JSLessThanNode.doDouble(double, double)] */;
this.state_0_ = state_0;
return JSLessThanNode.doDouble(leftNodeValue_, rightNodeValue_);
}
}
}
if (leftNodeValue instanceof TruffleString) {
TruffleString leftNodeValue_ = (TruffleString) leftNodeValue;
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
CompareCharsUTF16Node compareNode__ = this.insert((CompareCharsUTF16Node.create()));
Objects.requireNonNull(compareNode__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value.");
VarHandle.storeStoreFence();
this.string_compareNode_ = compareNode__;
state_0 = state_0 | 0b1000000 /* add SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */;
this.state_0_ = state_0;
return JSLessThanNode.doString(leftNodeValue_, rightNodeValue_, compareNode__);
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
int doubleCast1;
if ((doubleCast1 = JSTypesGen.specializeImplicitDouble(rightNodeValue)) != 0) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast1, rightNodeValue);
JSStringToNumberNode stringToDouble_;
JSStringToNumberNode stringToDouble__shared = this.stringToDouble;
if (stringToDouble__shared != null) {
stringToDouble_ = stringToDouble__shared;
} else {
stringToDouble_ = this.insert((JSStringToNumberNode.create()));
if (stringToDouble_ == null) {
throw new IllegalStateException("A specialization returned a default value for a cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state.");
}
}
if (this.stringToDouble == null) {
VarHandle.storeStoreFence();
this.stringToDouble = stringToDouble_;
}
state_0 = (state_0 | (doubleCast1 << 21) /* set-int ImplicitCast[type=double, index=1] */);
state_0 = state_0 | 0b100000000 /* add SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */;
this.state_0_ = state_0;
return JSLessThanNode.doStringDouble(leftNodeValue_, rightNodeValue_, stringToDouble_);
}
}
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
int doubleCast0;
if ((doubleCast0 = JSTypesGen.specializeImplicitDouble(leftNodeValue)) != 0) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast0, leftNodeValue);
if (rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
JSStringToNumberNode stringToDouble_1;
JSStringToNumberNode stringToDouble_1_shared = this.stringToDouble;
if (stringToDouble_1_shared != null) {
stringToDouble_1 = stringToDouble_1_shared;
} else {
stringToDouble_1 = this.insert((JSStringToNumberNode.create()));
if (stringToDouble_1 == null) {
throw new IllegalStateException("A specialization returned a default value for a cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state.");
}
}
if (this.stringToDouble == null) {
VarHandle.storeStoreFence();
this.stringToDouble = stringToDouble_1;
}
state_0 = (state_0 | (doubleCast0 << 18) /* set-int ImplicitCast[type=double, index=0] */);
state_0 = state_0 | 0b1000000000 /* add SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */;
this.state_0_ = state_0;
return JSLessThanNode.doDoubleString(leftNodeValue_, rightNodeValue_, stringToDouble_1);
}
}
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && leftNodeValue instanceof TruffleString) {
TruffleString leftNodeValue_ = (TruffleString) leftNodeValue;
if (rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
state_0 = state_0 | 0b10000000000 /* add SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)] */;
this.state_0_ = state_0;
return JSLessThanNode.doStringBigInt(leftNodeValue_, rightNodeValue_);
}
}
if (leftNodeValue instanceof BigInt) {
BigInt leftNodeValue_ = (BigInt) leftNodeValue;
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && rightNodeValue instanceof TruffleString) {
TruffleString rightNodeValue_ = (TruffleString) rightNodeValue;
state_0 = state_0 | 0b100000000000 /* add SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)] */;
this.state_0_ = state_0;
return JSLessThanNode.doBigIntString(leftNodeValue_, rightNodeValue_);
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)] */;
this.state_0_ = state_0;
return JSLessThanNode.doBigInt(leftNodeValue_, rightNodeValue_);
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && rightNodeValue instanceof Integer) {
int rightNodeValue_ = (int) rightNodeValue;
state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)] */;
this.state_0_ = state_0;
return JSLessThanNode.doBigIntAndInt(leftNodeValue_, rightNodeValue_);
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
int doubleCast1;
if ((doubleCast1 = JSTypesGen.specializeImplicitDouble(rightNodeValue)) != 0) {
double rightNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast1, rightNodeValue);
state_0 = (state_0 | (doubleCast1 << 21) /* set-int ImplicitCast[type=double, index=1] */);
state_0 = state_0 | 0b100000000000000 /* add SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)] */;
this.state_0_ = state_0;
return JSLessThanNode.doBigIntAndNumber(leftNodeValue_, rightNodeValue_);
}
}
}
if (rightNodeValue instanceof BigInt) {
BigInt rightNodeValue_ = (BigInt) rightNodeValue;
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */ && leftNodeValue instanceof Integer) {
int leftNodeValue_ = (int) leftNodeValue;
state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)] */;
this.state_0_ = state_0;
return JSLessThanNode.doIntAndBigInt(leftNodeValue_, rightNodeValue_);
}
if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */) {
int doubleCast0;
if ((doubleCast0 = JSTypesGen.specializeImplicitDouble(leftNodeValue)) != 0) {
double leftNodeValue_ = JSTypesGen.asImplicitDouble(doubleCast0, leftNodeValue);
state_0 = (state_0 | (doubleCast0 << 18) /* set-int ImplicitCast[type=double, index=0] */);
state_0 = state_0 | 0x10000 /* add SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */;
this.state_0_ = state_0;
return JSLessThanNode.doNumberAndBigInt(leftNodeValue_, rightNodeValue_);
}
}
}
{
Node node__ = null;
if ((hasOverloadedOperators(leftNodeValue) || hasOverloadedOperators(rightNodeValue))) {
OverloadedData s16_ = this.insert(new OverloadedData());
node__ = (s16_);
JSOverloadedBinaryNode overloadedOperatorNode__ = s16_.insert((JSOverloadedBinaryNode.createHintNumberLeftToRight(getOverloadedOperatorName())));
Objects.requireNonNull(overloadedOperatorNode__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value.");
s16_.overloadedOperatorNode_ = overloadedOperatorNode__;
VarHandle.storeStoreFence();
this.overloaded_cache = s16_;
state_0 = state_0 | 0x20000 /* add SpecializationActive[JSLessThanNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */;
this.state_0_ = state_0;
return JSLessThanNode.doOverloaded(leftNodeValue, rightNodeValue, node__, overloadedOperatorNode__, INLINED_OVERLOADED_TO_BOOLEAN_NODE_);
}
}
if ((!(hasOverloadedOperators(leftNodeValue))) && (!(hasOverloadedOperators(rightNodeValue)))) {
GenericData s17_ = this.insert(new GenericData());
s17_.toStringOrNumber1_ = s17_.insert((JSToStringOrNumberNode.create()));
JSToPrimitiveNode toPrimitive1__ = s17_.insert((JSToPrimitiveNode.createHintNumber()));
Objects.requireNonNull(toPrimitive1__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value.");
s17_.toPrimitive1_ = toPrimitive1__;
s17_.toStringOrNumber2_ = s17_.insert((JSToStringOrNumberNode.create()));
JSToPrimitiveNode toPrimitive2__ = s17_.insert((JSToPrimitiveNode.createHintNumber()));
Objects.requireNonNull(toPrimitive2__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value.");
s17_.toPrimitive2_ = toPrimitive2__;
s17_.lessThanNode_ = s17_.insert((JSLessThanNode.create()));
VarHandle.storeStoreFence();
this.generic_cache = s17_;
this.string_compareNode_ = null;
this.stringToDouble = null;
state_0 = state_0 & 0xfffe00bf /* remove SpecializationActive[JSLessThanNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)], SpecializationActive[JSLessThanNode.doStringDouble(TruffleString, double, JSStringToNumberNode)], SpecializationActive[JSLessThanNode.doDoubleString(double, TruffleString, JSStringToNumberNode)], SpecializationActive[JSLessThanNode.doStringBigInt(TruffleString, BigInt)], SpecializationActive[JSLessThanNode.doBigIntString(BigInt, TruffleString)], SpecializationActive[JSLessThanNode.doBigInt(BigInt, BigInt)], SpecializationActive[JSLessThanNode.doBigIntAndInt(BigInt, int)], SpecializationActive[JSLessThanNode.doBigIntAndNumber(BigInt, double)], SpecializationActive[JSLessThanNode.doIntAndBigInt(int, BigInt)], SpecializationActive[JSLessThanNode.doNumberAndBigInt(double, BigInt)] */;
state_0 = state_0 | 0b10000000 /* add SpecializationActive[JSLessThanNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSLessThanNode)] */;
this.state_0_ = state_0;
return JSLessThanNode.doGeneric(leftNodeValue, rightNodeValue, s17_.toStringOrNumber1_, toPrimitive1__, s17_.toStringOrNumber2_, toPrimitive2__, s17_.lessThanNode_);
}
throw new UnsupportedSpecializationException(this, new Node[] {super.leftNode, super.rightNode}, leftNodeValue, rightNodeValue);
}
@NeverDefault
public static JSLessThanNode create(JavaScriptNode left, JavaScriptNode right) {
return new JSLessThanNodeGen(left, right);
}
@GeneratedBy(JSLessThanNode.class)
@DenyReplace
private static final class OverloadedData extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-14: InlinedCache
* Specialization: {@link JSLessThanNode#doOverloaded}
* Parameter: {@link JSToBooleanNode} toBooleanNode
* Inline method: {@link JSToBooleanNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int overloaded_state_0_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doOverloaded}
* Parameter: {@link JSOverloadedBinaryNode} overloadedOperatorNode
*/
@Child JSOverloadedBinaryNode overloadedOperatorNode_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doOverloaded}
* Parameter: {@link JSToBooleanNode} toBooleanNode
* Inline method: {@link JSToBooleanNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node overloaded_toBooleanNode__field1_;
OverloadedData() {
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(JSLessThanNode.class)
@DenyReplace
private static final class GenericData extends Node implements SpecializationDataNode {
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doGeneric}
* Parameter: {@link JSToStringOrNumberNode} toStringOrNumber1
*/
@Child JSToStringOrNumberNode toStringOrNumber1_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doGeneric}
* Parameter: {@link JSToPrimitiveNode} toPrimitive1
*/
@Child JSToPrimitiveNode toPrimitive1_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doGeneric}
* Parameter: {@link JSToStringOrNumberNode} toStringOrNumber2
*/
@Child JSToStringOrNumberNode toStringOrNumber2_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doGeneric}
* Parameter: {@link JSToPrimitiveNode} toPrimitive2
*/
@Child JSToPrimitiveNode toPrimitive2_;
/**
* Source Info:
* Specialization: {@link JSLessThanNode#doGeneric}
* Parameter: {@link JSLessThanNode} lessThanNode
*/
@Child JSLessThanNode lessThanNode_;
GenericData() {
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy