All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.truffle.js.nodes.binary.JSGreaterOrEqualNodeGen 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 JSGreaterOrEqualNode#doInt}
 *     Activation probability: 0.10029
 *     With/without class size: 5/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doSafeInteger(int, SafeInteger)}
 *     Activation probability: 0.09503
 *     With/without class size: 5/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doSafeInteger(SafeInteger, int)}
 *     Activation probability: 0.08977
 *     With/without class size: 5/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doSafeInteger(SafeInteger, SafeInteger)}
 *     Activation probability: 0.08450
 *     With/without class size: 5/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doLong}
 *     Activation probability: 0.07924
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doDouble}
 *     Activation probability: 0.07398
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doString}
 *     Activation probability: 0.06871
 *     With/without class size: 5/4 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doStringDouble}
 *     Activation probability: 0.06345
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doDoubleString}
 *     Activation probability: 0.05819
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doStringBigInt}
 *     Activation probability: 0.05292
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doBigIntString}
 *     Activation probability: 0.04766
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doBigInt}
 *     Activation probability: 0.04240
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doBigIntAndInt}
 *     Activation probability: 0.03713
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doBigIntAndNumber}
 *     Activation probability: 0.03187
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doIntAndBigInt}
 *     Activation probability: 0.02661
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doNumberAndBigInt}
 *     Activation probability: 0.02135
 *     With/without class size: 4/0 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doOverloaded}
 *     Activation probability: 0.01608
 *     With/without class size: 4/10 bytes
 *   Specialization {@link JSGreaterOrEqualNode#doGeneric}
 *     Activation probability: 0.01082
 *     With/without class size: 4/20 bytes
 * 
*/ @GeneratedBy(JSGreaterOrEqualNode.class) @SuppressWarnings("javadoc") public final class JSGreaterOrEqualNodeGen extends JSGreaterOrEqualNode { private static final StateField OVERLOADED__J_S_GREATER_OR_EQUAL_NODE_OVERLOADED_STATE_0_UPDATER = StateField.create(OverloadedData.lookup_(), "overloaded_state_0_"); /** * Source Info:
     *   Specialization: {@link JSGreaterOrEqualNode#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_GREATER_OR_EQUAL_NODE_OVERLOADED_STATE_0_UPDATER.subUpdater(0, 15), ReferenceField.create(OverloadedData.lookup_(), "overloaded_toBooleanNode__field1_", Node.class))); /** * State Info:
     *   0: SpecializationActive {@link JSGreaterOrEqualNode#doInt}
     *   1: SpecializationActive {@link JSGreaterOrEqualNode#doSafeInteger(int, SafeInteger)}
     *   2: SpecializationActive {@link JSGreaterOrEqualNode#doSafeInteger(SafeInteger, int)}
     *   3: SpecializationActive {@link JSGreaterOrEqualNode#doSafeInteger(SafeInteger, SafeInteger)}
     *   4: SpecializationActive {@link JSGreaterOrEqualNode#doLong}
     *   5: SpecializationActive {@link JSGreaterOrEqualNode#doDouble}
     *   6: SpecializationActive {@link JSGreaterOrEqualNode#doString}
     *   7: SpecializationActive {@link JSGreaterOrEqualNode#doGeneric}
     *   8: SpecializationActive {@link JSGreaterOrEqualNode#doStringDouble}
     *   9: SpecializationActive {@link JSGreaterOrEqualNode#doDoubleString}
     *   10: SpecializationActive {@link JSGreaterOrEqualNode#doStringBigInt}
     *   11: SpecializationActive {@link JSGreaterOrEqualNode#doBigIntString}
     *   12: SpecializationActive {@link JSGreaterOrEqualNode#doBigInt}
     *   13: SpecializationActive {@link JSGreaterOrEqualNode#doBigIntAndInt}
     *   14: SpecializationActive {@link JSGreaterOrEqualNode#doBigIntAndNumber}
     *   15: SpecializationActive {@link JSGreaterOrEqualNode#doIntAndBigInt}
     *   16: SpecializationActive {@link JSGreaterOrEqualNode#doNumberAndBigInt}
     *   17: SpecializationActive {@link JSGreaterOrEqualNode#doOverloaded}
     *   18-20: ImplicitCast[type=double, index=0]
     *   21-23: ImplicitCast[type=double, index=1]
     * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
     *   Specialization: {@link JSGreaterOrEqualNode#doStringDouble}
     *   Parameter: {@link JSStringToNumberNode} stringToDouble
*/ @Child private JSStringToNumberNode stringToDouble; /** * Source Info:
     *   Specialization: {@link JSGreaterOrEqualNode#doString}
     *   Parameter: {@link CompareCharsUTF16Node} compareNode
*/ @Child private CompareCharsUTF16Node string_compareNode_; @Child private OverloadedData overloaded_cache; @Child private GenericData generic_cache; private JSGreaterOrEqualNodeGen(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[JSGreaterOrEqualNode.doInt(int, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] || SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] || SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] || SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] || SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { if ((state_0 & 0b11) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */ && leftNodeValue instanceof Integer) { int leftNodeValue_ = (int) leftNodeValue; if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] */ && rightNodeValue instanceof Integer) { int rightNodeValue_ = (int) rightNodeValue; return JSGreaterOrEqualNode.doInt(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue instanceof SafeInteger) { SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0b1100) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] */ && leftNodeValue instanceof SafeInteger) { SafeInteger leftNodeValue_ = (SafeInteger) leftNodeValue; if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] */ && rightNodeValue instanceof Integer) { int rightNodeValue_ = (int) rightNodeValue; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] */ && rightNodeValue instanceof SafeInteger) { SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] */ && leftNodeValue instanceof Long) { long leftNodeValue_ = (long) leftNodeValue; if (rightNodeValue instanceof Long) { long rightNodeValue_ = (long) rightNodeValue; return JSGreaterOrEqualNode.doLong(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doDouble(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0b101000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue instanceof TruffleString) { TruffleString leftNodeValue_ = (TruffleString) leftNodeValue; if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */ && rightNodeValue instanceof TruffleString) { TruffleString rightNodeValue_ = (TruffleString) rightNodeValue; { CompareCharsUTF16Node compareNode__ = this.string_compareNode_; if (compareNode__ != null) { return JSGreaterOrEqualNode.doString(leftNodeValue_, rightNodeValue_, compareNode__); } } } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doStringDouble(leftNodeValue_, rightNodeValue_, stringToDouble_); } } } } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doDoubleString(leftNodeValue_, rightNodeValue_, stringToDouble_1); } } } } if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] */ && leftNodeValue instanceof TruffleString) { TruffleString leftNodeValue_ = (TruffleString) leftNodeValue; if (rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; return JSGreaterOrEqualNode.doStringBigInt(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0b111100000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue instanceof BigInt) { BigInt leftNodeValue_ = (BigInt) leftNodeValue; if ((state_0 & 0b100000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] */ && rightNodeValue instanceof TruffleString) { TruffleString rightNodeValue_ = (TruffleString) rightNodeValue; return JSGreaterOrEqualNode.doBigIntString(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] */ && rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; return JSGreaterOrEqualNode.doBigInt(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */ && rightNodeValue instanceof Integer) { int rightNodeValue_ = (int) rightNodeValue; return JSGreaterOrEqualNode.doBigIntAndInt(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doBigIntAndNumber(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0x18000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */ && leftNodeValue instanceof Integer) { int leftNodeValue_ = (int) leftNodeValue; return JSGreaterOrEqualNode.doIntAndBigInt(leftNodeValue_, rightNodeValue_); } if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doNumberAndBigInt(leftNodeValue_, rightNodeValue_); } } if ((state_0 & 0x20080) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { if ((state_0 & 0x20000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */) { OverloadedData s16_ = this.overloaded_cache; if (s16_ != null) { if ((hasOverloadedOperators(leftNodeValue) || hasOverloadedOperators(rightNodeValue))) { Node node__ = (s16_); return JSGreaterOrEqualNode.doOverloaded(leftNodeValue, rightNodeValue, node__, s16_.overloadedOperatorNode_, INLINED_OVERLOADED_TO_BOOLEAN_NODE_); } } } if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { GenericData s17_ = this.generic_cache; if (s17_ != null) { if ((!(hasOverloadedOperators(leftNodeValue))) && (!(hasOverloadedOperators(rightNodeValue)))) { return JSGreaterOrEqualNode.doGeneric(leftNodeValue, rightNodeValue, s17_.toStringOrNumber1_, s17_.toPrimitive1_, s17_.toStringOrNumber2_, s17_.toPrimitive2_, s17_.greaterOrEqualNode_); } } } } } 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[JSGreaterOrEqualNode.doInt(int, int)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { return executeBoolean_int_int0(state_0, frameValue); } else if ((state_0 & 0x3ffdf) == 0 /* only-active SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { return executeBoolean_double_double1(state_0, frameValue); } else if ((state_0 & 0x37ffd) == 0 /* only-active SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { return executeBoolean_int2(state_0, frameValue); } else if ((state_0 & 0x3dffb) == 0 /* only-active SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { return executeBoolean_int3(state_0, frameValue); } else if ((state_0 & 0x3beff) == 0 /* only-active SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { return executeBoolean_double4(state_0, frameValue); } else if ((state_0 & 0x2fdff) == 0 /* only-active SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */ && ((state_0 & 0x3ffff) != 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] */; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) ? (Object) leftNodeValue_int : (Object) leftNodeValue_), ex.getResult()); } assert (state_0 & 0b100000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] */; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */) { if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) { SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue_, rightNodeValue__); } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */ && rightNodeValue_ instanceof BigInt) { BigInt rightNodeValue__ = (BigInt) rightNodeValue_; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */) { if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] */ && leftNodeValue_ instanceof SafeInteger) { SafeInteger leftNodeValue__ = (SafeInteger) leftNodeValue_; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue__, rightNodeValue_); } if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */ && leftNodeValue_ instanceof BigInt) { BigInt leftNodeValue__ = (BigInt) leftNodeValue_; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */) { if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue_ instanceof TruffleString) { TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_; { JSStringToNumberNode stringToDouble_ = this.stringToDouble; if (stringToDouble_ != null) { return JSGreaterOrEqualNode.doStringDouble(leftNodeValue__, rightNodeValue_, stringToDouble_); } } } if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue_ instanceof BigInt) { BigInt leftNodeValue__ = (BigInt) leftNodeValue_; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) ? (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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */)) { 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[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */) { if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */ && rightNodeValue_ instanceof TruffleString) { TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_; { JSStringToNumberNode stringToDouble_1 = this.stringToDouble; if (stringToDouble_1 != null) { return JSGreaterOrEqualNode.doDoubleString(leftNodeValue_, rightNodeValue__, stringToDouble_1); } } } if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue_ instanceof BigInt) { BigInt rightNodeValue__ = (BigInt) rightNodeValue_; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doInt(int, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] && SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] && SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] && SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] && SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] && SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] && SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] && SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] && SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] && SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] && SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] && SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) ? (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[JSGreaterOrEqualNode.doInt(int, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] || SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] || SpecializationActive[JSGreaterOrEqualNode.doDouble(double, double)] || SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] || SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] || SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { if ((state_0 & 0b11) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */ && leftNodeValue_ instanceof Integer) { int leftNodeValue__ = (int) leftNodeValue_; if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doInt(int, int)] */ && rightNodeValue_ instanceof Integer) { int rightNodeValue__ = (int) rightNodeValue_; return JSGreaterOrEqualNode.doInt(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) { SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0b1100) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] || SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] */ && leftNodeValue_ instanceof SafeInteger) { SafeInteger leftNodeValue__ = (SafeInteger) leftNodeValue_; if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] */ && rightNodeValue_ instanceof Integer) { int rightNodeValue__ = (int) rightNodeValue_; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] */ && rightNodeValue_ instanceof SafeInteger) { SafeInteger rightNodeValue__ = (SafeInteger) rightNodeValue_; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doLong(long, long)] */ && leftNodeValue_ instanceof Long) { long leftNodeValue__ = (long) leftNodeValue_; if (rightNodeValue_ instanceof Long) { long rightNodeValue__ = (long) rightNodeValue_; return JSGreaterOrEqualNode.doLong(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doDouble(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0b101000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] || SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */ && leftNodeValue_ instanceof TruffleString) { TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_; if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */ && rightNodeValue_ instanceof TruffleString) { TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_; { CompareCharsUTF16Node compareNode__ = this.string_compareNode_; if (compareNode__ != null) { return JSGreaterOrEqualNode.doString(leftNodeValue__, rightNodeValue__, compareNode__); } } } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doStringDouble(leftNodeValue__, rightNodeValue__, stringToDouble_); } } } } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doDoubleString(leftNodeValue__, rightNodeValue__, stringToDouble_1); } } } } if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] */ && leftNodeValue_ instanceof TruffleString) { TruffleString leftNodeValue__ = (TruffleString) leftNodeValue_; if (rightNodeValue_ instanceof BigInt) { BigInt rightNodeValue__ = (BigInt) rightNodeValue_; return JSGreaterOrEqualNode.doStringBigInt(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0b111100000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] || SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] || SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */ && leftNodeValue_ instanceof BigInt) { BigInt leftNodeValue__ = (BigInt) leftNodeValue_; if ((state_0 & 0b100000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] */ && rightNodeValue_ instanceof TruffleString) { TruffleString rightNodeValue__ = (TruffleString) rightNodeValue_; return JSGreaterOrEqualNode.doBigIntString(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] */ && rightNodeValue_ instanceof BigInt) { BigInt rightNodeValue__ = (BigInt) rightNodeValue_; return JSGreaterOrEqualNode.doBigInt(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */ && rightNodeValue_ instanceof Integer) { int rightNodeValue__ = (int) rightNodeValue_; return JSGreaterOrEqualNode.doBigIntAndInt(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0b100000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doBigIntAndNumber(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0x18000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] || SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */ && rightNodeValue_ instanceof BigInt) { BigInt rightNodeValue__ = (BigInt) rightNodeValue_; if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */ && leftNodeValue_ instanceof Integer) { int leftNodeValue__ = (int) leftNodeValue_; return JSGreaterOrEqualNode.doIntAndBigInt(leftNodeValue__, rightNodeValue__); } if ((state_0 & 0x10000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.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 JSGreaterOrEqualNode.doNumberAndBigInt(leftNodeValue__, rightNodeValue__); } } if ((state_0 & 0x20080) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] || SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { if ((state_0 & 0x20000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */) { OverloadedData s16_ = this.overloaded_cache; if (s16_ != null) { if ((hasOverloadedOperators(leftNodeValue_) || hasOverloadedOperators(rightNodeValue_))) { Node node__ = (s16_); return JSGreaterOrEqualNode.doOverloaded(leftNodeValue_, rightNodeValue_, node__, s16_.overloadedOperatorNode_, INLINED_OVERLOADED_TO_BOOLEAN_NODE_); } } } if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { GenericData s17_ = this.generic_cache; if (s17_ != null) { if ((!(hasOverloadedOperators(leftNodeValue_))) && (!(hasOverloadedOperators(rightNodeValue_)))) { return JSGreaterOrEqualNode.doGeneric(leftNodeValue_, rightNodeValue_, s17_.toStringOrNumber1_, s17_.toPrimitive1_, s17_.toStringOrNumber2_, s17_.toPrimitive2_, s17_.greaterOrEqualNode_); } } } } } 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[JSGreaterOrEqualNode.doInt(int, int)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doInt(leftNodeValue_, rightNodeValue_); } if (rightNodeValue instanceof SafeInteger) { SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue; state_0 = state_0 | 0b10 /* add SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(int, SafeInteger)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, int)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doSafeInteger(leftNodeValue_, rightNodeValue_); } if (rightNodeValue instanceof SafeInteger) { SafeInteger rightNodeValue_ = (SafeInteger) rightNodeValue; state_0 = state_0 | 0b1000 /* add SpecializationActive[JSGreaterOrEqualNode.doSafeInteger(SafeInteger, SafeInteger)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doLong(long, long)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doDouble(double, double)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doDouble(leftNodeValue_, rightNodeValue_); } } } if (leftNodeValue instanceof TruffleString) { TruffleString leftNodeValue_ = (TruffleString) leftNodeValue; if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && 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[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doString(leftNodeValue_, rightNodeValue_, compareNode__); } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { 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[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doStringDouble(leftNodeValue_, rightNodeValue_, stringToDouble_); } } } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { 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[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doDoubleString(leftNodeValue_, rightNodeValue_, stringToDouble_1); } } } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && leftNodeValue instanceof TruffleString) { TruffleString leftNodeValue_ = (TruffleString) leftNodeValue; if (rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; state_0 = state_0 | 0b10000000000 /* add SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doStringBigInt(leftNodeValue_, rightNodeValue_); } } if (leftNodeValue instanceof BigInt) { BigInt leftNodeValue_ = (BigInt) leftNodeValue; if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && rightNodeValue instanceof TruffleString) { TruffleString rightNodeValue_ = (TruffleString) rightNodeValue; state_0 = state_0 | 0b100000000000 /* add SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doBigIntString(leftNodeValue_, rightNodeValue_); } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doBigInt(leftNodeValue_, rightNodeValue_); } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && rightNodeValue instanceof Integer) { int rightNodeValue_ = (int) rightNodeValue; state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doBigIntAndInt(leftNodeValue_, rightNodeValue_); } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { 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[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doBigIntAndNumber(leftNodeValue_, rightNodeValue_); } } } if (rightNodeValue instanceof BigInt) { BigInt rightNodeValue_ = (BigInt) rightNodeValue; if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */ && leftNodeValue instanceof Integer) { int leftNodeValue_ = (int) leftNodeValue; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doIntAndBigInt(leftNodeValue_, rightNodeValue_); } if (((state_0 & 0b10000000)) == 0 /* is-not SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */) { 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[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.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[JSGreaterOrEqualNode.doOverloaded(Object, Object, Node, JSOverloadedBinaryNode, JSToBooleanNode)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.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_.greaterOrEqualNode_ = s17_.insert((JSGreaterOrEqualNode.create())); VarHandle.storeStoreFence(); this.generic_cache = s17_; this.string_compareNode_ = null; this.stringToDouble = null; state_0 = state_0 & 0xfffe00bf /* remove SpecializationActive[JSGreaterOrEqualNode.doString(TruffleString, TruffleString, CompareCharsUTF16Node)], SpecializationActive[JSGreaterOrEqualNode.doStringDouble(TruffleString, double, JSStringToNumberNode)], SpecializationActive[JSGreaterOrEqualNode.doDoubleString(double, TruffleString, JSStringToNumberNode)], SpecializationActive[JSGreaterOrEqualNode.doStringBigInt(TruffleString, BigInt)], SpecializationActive[JSGreaterOrEqualNode.doBigIntString(BigInt, TruffleString)], SpecializationActive[JSGreaterOrEqualNode.doBigInt(BigInt, BigInt)], SpecializationActive[JSGreaterOrEqualNode.doBigIntAndInt(BigInt, int)], SpecializationActive[JSGreaterOrEqualNode.doBigIntAndNumber(BigInt, double)], SpecializationActive[JSGreaterOrEqualNode.doIntAndBigInt(int, BigInt)], SpecializationActive[JSGreaterOrEqualNode.doNumberAndBigInt(double, BigInt)] */; state_0 = state_0 | 0b10000000 /* add SpecializationActive[JSGreaterOrEqualNode.doGeneric(Object, Object, JSToStringOrNumberNode, JSToPrimitiveNode, JSToStringOrNumberNode, JSToPrimitiveNode, JSGreaterOrEqualNode)] */; this.state_0_ = state_0; return JSGreaterOrEqualNode.doGeneric(leftNodeValue, rightNodeValue, s17_.toStringOrNumber1_, toPrimitive1__, s17_.toStringOrNumber2_, toPrimitive2__, s17_.greaterOrEqualNode_); } throw new UnsupportedSpecializationException(this, new Node[] {super.leftNode, super.rightNode}, leftNodeValue, rightNodeValue); } @NeverDefault public static JSGreaterOrEqualNode create(JavaScriptNode left, JavaScriptNode right) { return new JSGreaterOrEqualNodeGen(left, right); } @GeneratedBy(JSGreaterOrEqualNode.class) @DenyReplace private static final class OverloadedData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-14: InlinedCache
         *        Specialization: {@link JSGreaterOrEqualNode#doOverloaded}
         *        Parameter: {@link JSToBooleanNode} toBooleanNode
         *        Inline method: {@link JSToBooleanNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int overloaded_state_0_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doOverloaded}
         *   Parameter: {@link JSOverloadedBinaryNode} overloadedOperatorNode
*/ @Child JSOverloadedBinaryNode overloadedOperatorNode_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#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(JSGreaterOrEqualNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doGeneric}
         *   Parameter: {@link JSToStringOrNumberNode} toStringOrNumber1
*/ @Child JSToStringOrNumberNode toStringOrNumber1_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doGeneric}
         *   Parameter: {@link JSToPrimitiveNode} toPrimitive1
*/ @Child JSToPrimitiveNode toPrimitive1_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doGeneric}
         *   Parameter: {@link JSToStringOrNumberNode} toStringOrNumber2
*/ @Child JSToStringOrNumberNode toStringOrNumber2_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doGeneric}
         *   Parameter: {@link JSToPrimitiveNode} toPrimitive2
*/ @Child JSToPrimitiveNode toPrimitive2_; /** * Source Info:
         *   Specialization: {@link JSGreaterOrEqualNode#doGeneric}
         *   Parameter: {@link JSGreaterOrEqualNode} greaterOrEqualNode
*/ @Child JSGreaterOrEqualNode greaterOrEqualNode_; GenericData() { } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy