Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index aa85e2a899e35f6bd0d2e201816f48d1af7956db..1dbc399479ed02dc2a7183a88b5bec1d32b97729 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -3720,6 +3720,30 @@ THREADED_TEST(TryCatchAndFinally) { |
} |
+static void TryCatchNestedHelper(int depth) { |
+ if (depth > 0) { |
+ v8::TryCatch try_catch; |
+ try_catch.SetVerbose(true); |
+ TryCatchNestedHelper(depth - 1); |
+ CHECK(try_catch.HasCaught()); |
+ try_catch.ReThrow(); |
+ } else { |
+ v8::ThrowException(v8_str("back")); |
+ } |
+} |
+ |
+ |
+TEST(TryCatchNested) { |
+ v8::V8::Initialize(); |
+ v8::HandleScope scope; |
+ LocalContext context; |
+ v8::TryCatch try_catch; |
+ TryCatchNestedHelper(5); |
+ CHECK(try_catch.HasCaught()); |
+ CHECK_EQ(0, strcmp(*v8::String::Utf8Value(try_catch.Exception()), "back")); |
+} |
+ |
+ |
THREADED_TEST(Equality) { |
v8::HandleScope scope; |
LocalContext context; |