Revision: 14437
Author:   [email protected]
Date:     Thu Apr 25 05:00:07 2013
Log:      Relax --debug-code checks that runtime returns are not the hole

ia32, unlike the other architectures, includes a --debug-code check that
asserts that runtime functions do not return the hole.  However the new
SuspendJSGeneratorObject runtime does return the hole at times.

This CL adds a wee hack that only signals an error if the callee was not
SuspendJSGeneratorObject.

[email protected]
BUG=

Review URL: https://codereview.chromium.org/13856011

Patch from Andy Wingo <[email protected]>.
http://code.google.com/p/v8/source/detail?r=14437

Modified:
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
 /branches/bleeding_edge/test/mjsunit/mjsunit.status

=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Apr 24 04:32:17 2013 +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Thu Apr 25 05:00:07 2013
@@ -5051,12 +5051,17 @@
     __ dec(Operand::StaticVariable(scope_depth));
   }

-  // Make sure we're not trying to return 'the hole' from the runtime
-  // call as this may lead to crashes in the IC code later.
+ // Runtime functions should not return 'the hole'. Allowing it to escape may
+  // lead to crashes in the IC code later.
   if (FLAG_debug_code) {
     Label okay;
     __ cmp(eax, masm->isolate()->factory()->the_hole_value());
     __ j(not_equal, &okay, Label::kNear);
+ // TODO(wingo): Currently SuspendJSGeneratorObject returns the hole. Change
+    // to return another sentinel like a harmony symbol.
+    __ cmp(ebx, Immediate(ExternalReference(
+        Runtime::kSuspendJSGeneratorObject, masm->isolate())));
+    __ j(equal, &okay, Label::kNear);
     __ int3();
     __ bind(&okay);
   }
=======================================
--- /branches/bleeding_edge/test/mjsunit/mjsunit.status Wed Apr 24 09:07:44 2013 +++ /branches/bleeding_edge/test/mjsunit/mjsunit.status Thu Apr 25 05:00:07 2013
@@ -34,9 +34,6 @@
 # Fails.
 regress/regress-1119: FAIL

-# TODO(wingo): Currently fails in no-snapshot mode, hence disabled for now.
-harmony/generators-objects: SKIP
-
 # Issue 1719: Slow to collect arrays over several contexts.
 regress/regress-524: SKIP
 # When that bug is fixed, revert the expectation to:

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to