[web-fixit] Codify web number difference for language/double/identical_test

Change-Id: I12698ae70e499fe1ce591a5205f56fb4aed0c022
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/338483
Reviewed-by: Mayank Patke <fishythefish@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
diff --git a/tests/language/double/identical_test.dart b/tests/language/double/identical_test.dart
index 16b99fe..3080b39 100644
--- a/tests/language/double/identical_test.dart
+++ b/tests/language/double/identical_test.dart
@@ -9,6 +9,14 @@
   Expect.isTrue(identical(-0.0, -0.0));
   Expect.isTrue(identical(0.0, 0.0));
   Expect.isTrue(identical(1.234E9, 1.234E9));
-  Expect.isFalse(identical(0.0, -0.0));
-  Expect.isTrue(identical(double.nan, double.nan));
+  if (!webNumbers) {
+    Expect.isFalse(identical(0.0, -0.0));
+    Expect.isTrue(identical(double.nan, double.nan));
+  } else {
+    // Web numbers have different behavior for identical for zeros and NaNs.
+    // See: https://dart.dev/guides/language/numbers
+    // TODO(https://dartbug.com/42224): Reconsider this different behavior.
+    Expect.isTrue(identical(0.0, -0.0));
+    Expect.isFalse(identical(double.nan, double.nan));
+  }
 }