Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 65d56d108064709f4fb0463b38e0cebc169a9cb1..8db3fcb438d9743f58845f4844526172d1a12331 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -3363,6 +3363,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; |