Index: runtime/lib/identical.cc |
diff --git a/runtime/lib/identical.cc b/runtime/lib/identical.cc |
index 7508f03ac85b89431dcdab9ae78ea8384becb4b5..dac63b53f0cebba763c3136462145409b7a22899 100644 |
--- a/runtime/lib/identical.cc |
+++ b/runtime/lib/identical.cc |
@@ -11,21 +11,7 @@ namespace dart { |
DEFINE_NATIVE_ENTRY(Identical_comparison, 2) { |
GET_NATIVE_ARGUMENT(Instance, a, arguments->NativeArgAt(0)); |
GET_NATIVE_ARGUMENT(Instance, b, arguments->NativeArgAt(1)); |
- if (a.raw() == b.raw()) return Bool::True().raw(); |
- if (a.IsInteger() && b.IsInteger()) { |
- return Bool::Get(a.Equals(b)).raw(); |
- } |
- if (a.IsDouble() && b.IsDouble()) { |
- if (a.Equals(b)) return Bool::True().raw(); |
- // Check for NaN. |
- const Double& a_double = Double::Cast(a); |
- const Double& b_double = Double::Cast(b); |
- if (isnan(a_double.value()) && isnan(b_double.value())) { |
- return Bool::True().raw(); |
- } |
- } |
- return Bool::False().raw(); |
+ return Bool::Get(a.IsIdenticalTo(b)).raw(); |
} |
- |
} // namespace dart |