Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 514a22fcf31fdf3fb93c3f147315535326d4ade6..53df072977cf8a51125768efd0f41cd00e74804e 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -8674,17 +8674,29 @@ static v8::Handle<Value> SpaghettiIncident(const v8::Arguments& args) { |
} |
-// Test that a stack overflow can be propagated down through a spaghetti |
+// Test that an exception can be propagated down through a spaghetti |
// stack using ReThrow. |
-THREADED_TEST(SpaghettiStackOverflow) { |
+THREADED_TEST(SpaghettiStackReThrow) { |
v8::HandleScope scope; |
LocalContext context; |
context->Global()->Set( |
v8::String::New("s"), |
v8::FunctionTemplate::New(SpaghettiIncident)->GetFunction()); |
v8::TryCatch try_catch; |
- CompileRun("var o = {toString: function () {return s(o);}}; s(o);"); |
+ CompileRun( |
+ "var i = 0;" |
+ "var o = {" |
+ " toString: function () {" |
+ " if (i == 10) {" |
+ " throw 'Hey!';" |
+ " } else {" |
+ " i++;" |
+ " return s(o);" |
+ " }" |
+ " }" |
+ "};" |
+ "s(o);"); |
CHECK(try_catch.HasCaught()); |
v8::String::Utf8Value value(try_catch.Exception()); |
- CHECK_NE(0, strstr(*value, "RangeError")); |
+ CHECK_EQ(0, strcmp(*value, "Hey!")); |
} |