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()); |