| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 5f82bd7f2e7ee184975588e4de3e6b7fcebbe325..6d5ec0d0dba11d54704cf25b3898ed0c598a62a6 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -8377,6 +8377,29 @@ TEST(TryCatchFinallyUsingTryCatchHandler) {
|
| }
|
|
|
|
|
| +void CEvaluate(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| + v8::HandleScope scope(args.GetIsolate());
|
| + CompileRun(args[0]->ToString());
|
| +}
|
| +
|
| +
|
| +TEST(TryCatchFinallyStoresMessageUsingTryCatchHandler) {
|
| + v8::Isolate* isolate = CcTest::isolate();
|
| + v8::HandleScope scope(isolate);
|
| + Local<ObjectTemplate> templ = ObjectTemplate::New(isolate);
|
| + templ->Set(v8_str("CEvaluate"),
|
| + v8::FunctionTemplate::New(isolate, CEvaluate));
|
| + LocalContext context(0, templ);
|
| + v8::TryCatch try_catch;
|
| + CompileRun("try {"
|
| + " CEvaluate('throw 1;');"
|
| + "} finally {"
|
| + "}");
|
| + CHECK(try_catch.HasCaught());
|
| + CHECK(!try_catch.Message().IsEmpty());
|
| +}
|
| +
|
| +
|
| // For use within the TestSecurityHandler() test.
|
| static bool g_security_callback_result = false;
|
| static bool NamedSecurityTestCallback(Local<v8::Object> global,
|
|
|