Index: runtime/lib/double.dart |
diff --git a/runtime/lib/double.dart b/runtime/lib/double.dart |
index 95f026da931a9b59c3bfdd8f53a1c53869e8d8b4..280bf3b4a470ec0d8a898c2c4ce684c4a2eb2e01 100644 |
--- a/runtime/lib/double.dart |
+++ b/runtime/lib/double.dart |
@@ -47,12 +47,11 @@ class _Double extends _Num implements double { |
} |
double _remainder(double other) native "Double_remainder"; |
double operator -() { |
- if (this == 0.0) { |
- // -0.0 is canonicalized by the VM's parser, therefore no cycles. |
- return isNegative ? 0.0 : -0.0; |
- } |
- return 0.0 - this; |
+ // Handles properly 0.0, NAN, and other doubles. |
+ return this._flipSignBit; |
} |
+ double get _flipSignBit native "Double_flipSignBit"; |
+ |
bool operator ==(other) { |
if (!(other is num)) return false; |
return _equal(other.toDouble()); |