| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index ce37281b1e403110e74a5079cccbe5fed57921cd..1d790a1ad532624169d97f750e924f1a60379d54 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -5343,28 +5343,15 @@ THREADED_TEST(TryCatchAndFinally) {
|
| }
|
|
|
|
|
| -static void TryCatchNested1Helper(int depth) {
|
| +static void TryCatchNestedHelper(int depth) {
|
| if (depth > 0) {
|
| v8::TryCatch try_catch;
|
| try_catch.SetVerbose(true);
|
| - TryCatchNested1Helper(depth - 1);
|
| + TryCatchNestedHelper(depth - 1);
|
| CHECK(try_catch.HasCaught());
|
| try_catch.ReThrow();
|
| } else {
|
| - CcTest::isolate()->ThrowException(v8_str("E1"));
|
| - }
|
| -}
|
| -
|
| -
|
| -static void TryCatchNested2Helper(int depth) {
|
| - if (depth > 0) {
|
| - v8::TryCatch try_catch;
|
| - try_catch.SetVerbose(true);
|
| - TryCatchNested2Helper(depth - 1);
|
| - CHECK(try_catch.HasCaught());
|
| - try_catch.ReThrow();
|
| - } else {
|
| - CompileRun("throw 'E2';");
|
| + CcTest::isolate()->ThrowException(v8_str("back"));
|
| }
|
| }
|
|
|
| @@ -5373,22 +5360,10 @@ TEST(TryCatchNested) {
|
| v8::V8::Initialize();
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| -
|
| - {
|
| - // Test nested try-catch with a native throw in the end.
|
| - v8::TryCatch try_catch;
|
| - TryCatchNested1Helper(5);
|
| - CHECK(try_catch.HasCaught());
|
| - CHECK_EQ(0, strcmp(*v8::String::Utf8Value(try_catch.Exception()), "E1"));
|
| - }
|
| -
|
| - {
|
| - // Test nested try-catch with a JavaScript throw in the end.
|
| - v8::TryCatch try_catch;
|
| - TryCatchNested2Helper(5);
|
| - CHECK(try_catch.HasCaught());
|
| - CHECK_EQ(0, strcmp(*v8::String::Utf8Value(try_catch.Exception()), "E2"));
|
| - }
|
| + v8::TryCatch try_catch;
|
| + TryCatchNestedHelper(5);
|
| + CHECK(try_catch.HasCaught());
|
| + CHECK_EQ(0, strcmp(*v8::String::Utf8Value(try_catch.Exception()), "back"));
|
| }
|
|
|
|
|
| @@ -5434,28 +5409,6 @@ TEST(TryCatchMixedNesting) {
|
| }
|
|
|
|
|
| -void TryCatchNativeHelper(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| - ApiTestFuzzer::Fuzz();
|
| - v8::TryCatch try_catch;
|
| - args.GetIsolate()->ThrowException(v8_str("boom"));
|
| - CHECK(try_catch.HasCaught());
|
| -}
|
| -
|
| -
|
| -TEST(TryCatchNative) {
|
| - v8::Isolate* isolate = CcTest::isolate();
|
| - v8::HandleScope scope(isolate);
|
| - v8::V8::Initialize();
|
| - v8::TryCatch try_catch;
|
| - Local<ObjectTemplate> templ = ObjectTemplate::New(isolate);
|
| - templ->Set(v8_str("TryCatchNativeHelper"),
|
| - v8::FunctionTemplate::New(isolate, TryCatchNativeHelper));
|
| - LocalContext context(0, templ);
|
| - CompileRun("TryCatchNativeHelper();");
|
| - CHECK(!try_catch.HasCaught());
|
| -}
|
| -
|
| -
|
| THREADED_TEST(Equality) {
|
| LocalContext context;
|
| v8::Isolate* isolate = context->GetIsolate();
|
| @@ -13010,29 +12963,22 @@ THREADED_TEST(VariousGetPropertiesAndThrowingCallbacks) {
|
| Local<Value> result = instance->GetRealNamedProperty(v8_str("f"));
|
| CHECK(try_catch.HasCaught());
|
| try_catch.Reset();
|
| - // TODO(mstarzinger): The exception is propagated directly to the TryCatch
|
| - // scope and is never scheduled, because there is no real JavaScript frame
|
| - // between here and the ThrowingGetter. Fixing this will make the result a
|
| - // proper empty handle again.
|
| - CHECK(result->IsUndefined());
|
| + CHECK(result.IsEmpty());
|
|
|
| result = another->GetRealNamedProperty(v8_str("f"));
|
| CHECK(try_catch.HasCaught());
|
| try_catch.Reset();
|
| - // TODO(mstarzinger): Likewise.
|
| - CHECK(result->IsUndefined());
|
| + CHECK(result.IsEmpty());
|
|
|
| result = another->GetRealNamedPropertyInPrototypeChain(v8_str("f"));
|
| CHECK(try_catch.HasCaught());
|
| try_catch.Reset();
|
| - // TODO(mstarzinger): Likewise.
|
| - CHECK(result->IsUndefined());
|
| + CHECK(result.IsEmpty());
|
|
|
| result = another->Get(v8_str("f"));
|
| CHECK(try_catch.HasCaught());
|
| try_catch.Reset();
|
| - // TODO(mstarzinger): Likewise.
|
| - CHECK(result->IsUndefined());
|
| + CHECK(result.IsEmpty());
|
|
|
| result = with_js_getter->GetRealNamedProperty(v8_str("f"));
|
| CHECK(try_catch.HasCaught());
|
|
|