warnAboutNonJSObject(x); return x == y;
private static boolean eqString(CharSequence x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof CharSequence) { CharSequence c = (CharSequence)y; return x.length() == c.length() && x.toString().equals(c.toString()); } else if (y instanceof Number) { return toNumber(x.toString()) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x.toString()) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x.toString()); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
private static boolean eqString(CharSequence x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof CharSequence) { CharSequence c = (CharSequence)y; return x.length() == c.length() && x.toString().equals(c.toString()); } else if (y instanceof Number) { return toNumber(x.toString()) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x.toString()) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x.toString()); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
private static boolean eqString(CharSequence x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof CharSequence) { CharSequence c = (CharSequence)y; return x.length() == c.length() && x.toString().equals(c.toString()); } else if (y instanceof Number) { return toNumber(x.toString()) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x.toString()) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x.toString()); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
private static boolean eqString(CharSequence x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof CharSequence) { CharSequence c = (CharSequence)y; return x.length() == c.length() && x.toString().equals(c.toString()); } else if (y instanceof Number) { return toNumber(x.toString()) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x.toString()) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x.toString()); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
private static boolean eqString(String x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof String) { return x.equals(y); } else if (y instanceof Number) { return toNumber(x) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
private static boolean eqString(String x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof String) { return x.equals(y); } else if (y instanceof Number) { return toNumber(x) == ((Number)y).doubleValue(); } else if (y instanceof Boolean) { return toNumber(x) == (((Boolean)y).booleanValue() ? 1.0 : 0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object test = ((ScriptableObject)y).equivalentValues(x); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); continue; } else { warnAboutNonJSObject(y); return false; } } } public static boolean shallowEq(Object x, Object y)
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof String) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof CharSequence) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof CharSequence) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof CharSequence) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof String) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
static boolean eqNumber(double x, Object y) { for (;;) { if (y == null || y == Undefined.instance) { return false; } else if (y instanceof Number) { return x == ((Number)y).doubleValue(); } else if (y instanceof CharSequence) { return x == toNumber(y); } else if (y instanceof Boolean) { return x == (((Boolean)y).booleanValue() ? 1.0 : +0.0); } else if (y instanceof Scriptable) { if (y instanceof ScriptableObject) { Object xval = wrapNumber(x); Object test = ((ScriptableObject)y).equivalentValues(xval); if (test != Scriptable.NOT_FOUND) { return ((Boolean)test).booleanValue(); } } y = toPrimitive(y); } else { warnAboutNonJSObject(y); return false; } } }
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof CharSequence) return toNumber(val.toString()); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof CharSequence) return toNumber(val.toString()); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof CharSequence) return toNumber(val.toString()); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof CharSequence) return toNumber(val.toString()); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
continue; warnAboutNonJSObject(val); return true;