public abstract class JSIdenticalNode extends JSCompareNode
| Modifier and Type | Field and Description |
|---|---|
protected static int |
MAX_CLASSES |
protected static int |
SAME_VALUE |
protected static int |
SAME_VALUE_ZERO |
protected static int |
STRICT_EQUALITY_COMPARISON |
protected int |
type |
leftNode, rightNodeINTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
JSIdenticalNode(JavaScriptNode left,
JavaScriptNode right,
int type) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static JavaScriptNode |
create(JavaScriptNode left,
JavaScriptNode right) |
static JSIdenticalNode |
createSameValue() |
static JSIdenticalNode |
createSameValue(JavaScriptNode left,
JavaScriptNode right) |
static JSIdenticalNode |
createSameValueZero() |
static JSIdenticalNode |
createStrictEqualityComparison() |
static JavaScriptNode |
createUnoptimized(JavaScriptNode left,
JavaScriptNode right) |
protected static boolean |
differentNonObjectTypes(Class<?> classA,
Class<?> classB) |
protected static boolean |
doBigInt(BigInt a,
BigInt b) |
protected static boolean |
doBigIntDouble(BigInt a,
double b) |
protected static boolean |
doBoolean(boolean a,
boolean b) |
protected static boolean |
doBooleanNotBoolean(Object a,
Object b) |
protected static boolean |
doDifferentTypesCached(Object a,
Object b,
Class<?> cachedClassA,
Class<?> cachedClassB)
lhs and rhs are of different types.
|
protected boolean |
doDouble(double a,
double b) |
protected static boolean |
doDoubleBigInt(double a,
BigInt b) |
protected static boolean |
doFallback(Object a,
Object b) |
protected static boolean |
doForeignObject(Object a,
Object b,
com.oracle.truffle.api.interop.InteropLibrary aInterop,
com.oracle.truffle.api.interop.InteropLibrary bInterop) |
protected static boolean |
doInt(int a,
int b) |
protected static boolean |
doJSObjectA(com.oracle.truffle.api.object.DynamicObject a,
Object b) |
protected static boolean |
doJSObjectB(Object a,
com.oracle.truffle.api.object.DynamicObject b) |
protected static boolean |
doLazyString(JSLazyString a,
JSLazyString b,
com.oracle.truffle.api.profiles.ConditionProfile flattenA,
com.oracle.truffle.api.profiles.ConditionProfile flattenB,
com.oracle.truffle.api.profiles.ConditionProfile len) |
protected static boolean |
doLazyStringReference(JSLazyString a,
JSLazyString b) |
protected static boolean |
doLazyStringString(JSLazyString a,
String b,
com.oracle.truffle.api.profiles.ConditionProfile flattenA,
com.oracle.truffle.api.profiles.ConditionProfile len) |
protected static boolean |
doNullA(Object a,
Object b,
com.oracle.truffle.api.interop.InteropLibrary bInterop) |
protected static boolean |
doNullB(Object a,
Object b,
com.oracle.truffle.api.interop.InteropLibrary aInterop) |
protected static boolean |
doNullNull(Object a,
Object b) |
protected static boolean |
doNullUndefined(Object a,
Object b) |
protected boolean |
doNumber(Number a,
Number b) |
protected boolean |
doNumberCached(Object a,
Object b,
Class<?> cachedClassA,
Class<?> cachedClassB) |
protected static boolean |
doNumberNotNumber(Object a,
Object b) |
protected static boolean |
doString(String a,
String b) |
protected static boolean |
doStringIdentity(String a,
String b) |
protected static boolean |
doStringLazyString(String a,
JSLazyString b,
com.oracle.truffle.api.profiles.ConditionProfile flattenB,
com.oracle.truffle.api.profiles.ConditionProfile len) |
protected static boolean |
doStringNotString(Object a,
Object b) |
protected static boolean |
doSymbol(Symbol a,
Symbol b) |
protected static boolean |
doSymbolNotSymbol(Object a,
Object b) |
protected static boolean |
doUndefinedA(Object a,
Object b) |
protected static boolean |
doUndefinedB(Object a,
Object b) |
protected static boolean |
doUndefinedNull(Object a,
Object b) |
abstract boolean |
executeBoolean(Object left,
Object right) |
protected static boolean |
isNonObjectType(Class<?> clazz) |
execute, executeBoolean, isResultAlwaysOfType, stringToDoubleensureBothSameNumericType, expressionToString, getLeft, getNodeObject, getRight, hasTag, largerThan2e32addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, executeDouble, executeInt, executeLong, executeSafeInteger, executeString, executeVoid, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, lookupContextReference, lookupLanguageReference, notifyInserted, replace, replace, reportPolymorphicSpecializeprotected static final int MAX_CLASSES
protected static final int STRICT_EQUALITY_COMPARISON
protected static final int SAME_VALUE
protected static final int SAME_VALUE_ZERO
protected final int type
protected JSIdenticalNode(JavaScriptNode left, JavaScriptNode right, int type)
public static JSIdenticalNode createStrictEqualityComparison()
public static JSIdenticalNode createSameValue()
public static JSIdenticalNode createSameValue(JavaScriptNode left, JavaScriptNode right)
public static JSIdenticalNode createSameValueZero()
public static JavaScriptNode createUnoptimized(JavaScriptNode left, JavaScriptNode right)
public static JavaScriptNode create(JavaScriptNode left, JavaScriptNode right)
protected static boolean doInt(int a,
int b)
protected boolean doDouble(double a,
double b)
protected static boolean doBoolean(boolean a,
boolean b)
protected static boolean doBigIntDouble(BigInt a, double b)
protected static boolean doDoubleBigInt(double a,
BigInt b)
protected static boolean doJSObjectA(com.oracle.truffle.api.object.DynamicObject a,
Object b)
protected static boolean doJSObjectB(Object a, com.oracle.truffle.api.object.DynamicObject b)
protected static boolean doNullA(Object a, Object b, com.oracle.truffle.api.interop.InteropLibrary bInterop)
protected static boolean doNullB(Object a, Object b, com.oracle.truffle.api.interop.InteropLibrary aInterop)
protected static boolean doLazyStringReference(JSLazyString a, JSLazyString b)
protected static boolean doLazyString(JSLazyString a, JSLazyString b, com.oracle.truffle.api.profiles.ConditionProfile flattenA, com.oracle.truffle.api.profiles.ConditionProfile flattenB, com.oracle.truffle.api.profiles.ConditionProfile len)
protected static boolean doStringLazyString(String a, JSLazyString b, com.oracle.truffle.api.profiles.ConditionProfile flattenB, com.oracle.truffle.api.profiles.ConditionProfile len)
protected static boolean doLazyStringString(JSLazyString a, String b, com.oracle.truffle.api.profiles.ConditionProfile flattenA, com.oracle.truffle.api.profiles.ConditionProfile len)
protected static boolean isNonObjectType(Class<?> clazz)
protected static boolean differentNonObjectTypes(Class<?> classA, Class<?> classB)
protected static boolean doDifferentTypesCached(Object a, Object b, Class<?> cachedClassA, Class<?> cachedClassB)
protected boolean doNumberCached(Object a, Object b, Class<?> cachedClassA, Class<?> cachedClassB)
protected static boolean doForeignObject(Object a, Object b, com.oracle.truffle.api.interop.InteropLibrary aInterop, com.oracle.truffle.api.interop.InteropLibrary bInterop)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNode