Add fast check for NaN in NumberCompare slow case.
authorager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 28 Oct 2009 10:19:56 +0000 (10:19 +0000)
committerager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 28 Oct 2009 10:19:56 +0000 (10:19 +0000)
Review URL: http://codereview.chromium.org/344010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/runtime.js

index 789bfdb..ba19871 100644 (file)
@@ -128,7 +128,10 @@ function COMPARE(x, ncr) {
   if (IS_STRING(a) && IS_STRING(b)) {
     return %StringCompare(a, b);
   } else {
-    return %NumberCompare(%ToNumber(a), %ToNumber(b), ncr);
+    var a_number = %ToNumber(a);
+    var b_number = %ToNumber(b);
+    if (NUMBER_IS_NAN(a_number) || NUMBER_IS_NAN(b_number)) return ncr;
+    return %NumberCompare(a_number, b_number, ncr);
   }
 }