private static boolean fastNumEqualInternal(final ThreadContext context, final IRubyObject a, final IRubyObject b) { if (a instanceof RubyFixnum) { if (b instanceof RubyFixnum) return ((RubyFixnum) a).fastEqual((RubyFixnum) b); } else if (a instanceof RubyFloat) { if (b instanceof RubyFloat) return ((RubyFloat) a).fastEqual((RubyFloat) b); } return invokedynamic(context, a, OP_EQUAL, b).isTrue(); }
private static boolean fastNumEqualInternal(final ThreadContext context, final IRubyObject a, final IRubyObject b) { if (a instanceof RubyFixnum) { if (b instanceof RubyFixnum) return ((RubyFixnum) a).fastEqual((RubyFixnum) b); } else if (a instanceof RubyFloat) { if (b instanceof RubyFloat) return ((RubyFloat) a).fastEqual((RubyFloat) b); } return invokedynamic(context, a, OP_EQUAL, b).isTrue(); }
/** * Helper method for checking equality, first using Java identity * equality, and then calling the "==" method. */ protected static boolean equalInternal(final ThreadContext context, final IRubyObject a, final IRubyObject b){ if (a == b) { return true; } else if (a instanceof RubySymbol) { return false; } else if (a instanceof RubyFixnum && b instanceof RubyFixnum) { return ((RubyFixnum)a).fastEqual((RubyFixnum)b); } else if (a instanceof RubyFloat && b instanceof RubyFloat) { return ((RubyFloat)a).fastEqual((RubyFloat)b); } else { return invokedynamic(context, a, OP_EQUAL, b).isTrue(); } }
/** * Helper method for checking equality, first using Java identity * equality, and then calling the "==" method. */ protected static boolean equalInternal(final ThreadContext context, final IRubyObject a, final IRubyObject b){ if (a == b) { return true; } else if (a instanceof RubySymbol) { return false; } else if (a instanceof RubyFixnum && b instanceof RubyFixnum) { return ((RubyFixnum)a).fastEqual((RubyFixnum)b); } else if (a instanceof RubyFloat && b instanceof RubyFloat) { return ((RubyFloat)a).fastEqual((RubyFloat)b); } else { return invokedynamic(context, a, OP_EQUAL, b).isTrue(); } }