Fast check undefined in EQUALS.
authorfeng@chromium.org <feng@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 28 Oct 2008 03:39:17 +0000 (03:39 +0000)
committerfeng@chromium.org <feng@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 28 Oct 2008 03:39:17 +0000 (03:39 +0000)
Review URL: http://codereview.chromium.org/7979

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

src/runtime.js

index 1355356..5e73d41 100644 (file)
@@ -78,12 +78,15 @@ function EQUALS(y) {
       // NOTE: This checks for both null and undefined.
       return (y == null) ? 0 : 1;
     } else {
+      // x is not a number, boolean, null or undefined.
+      if (y == null) return 1;  // not equal
       if (IS_OBJECT(y)) {
         return %_ObjectEquals(x, y) ? 0 : 1;
       }
       if (IS_FUNCTION(y)) {
         return %_ObjectEquals(x, y) ? 0 : 1;
       }
+
       x = %ToPrimitive(x, NO_HINT);
     }
   }