Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 9400b0fd169dc3a5264dd54ce5d7e03b0efc7976..e8069667092a08102f81f05965a65abf60345984 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -12789,203 +12789,6 @@ |
// Check that 'i' cannot be shadowed or changed. |
value = v8_compile("o.i = 3; o.i")->Run(context.local()).ToLocalChecked(); |
CHECK_EQ(42, value->Int32Value(context.local()).FromJust()); |
-} |
- |
- |
-static void ShouldThrowOnErrorGetter( |
- Local<Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { |
- ApiTestFuzzer::Fuzz(); |
- v8::Isolate* isolate = info.GetIsolate(); |
- Local<Boolean> should_throw_on_error = |
- Boolean::New(isolate, info.ShouldThrowOnError()); |
- info.GetReturnValue().Set(should_throw_on_error); |
-} |
- |
- |
-template <typename T> |
-static void ShouldThrowOnErrorSetter(Local<Name> name, Local<v8::Value> value, |
- const v8::PropertyCallbackInfo<T>& info) { |
- ApiTestFuzzer::Fuzz(); |
- v8::Isolate* isolate = info.GetIsolate(); |
- auto context = isolate->GetCurrentContext(); |
- Local<Boolean> should_throw_on_error_value = |
- Boolean::New(isolate, info.ShouldThrowOnError()); |
- CHECK(context->Global() |
- ->Set(isolate->GetCurrentContext(), v8_str("should_throw_setter"), |
- should_throw_on_error_value) |
- .FromJust()); |
-} |
- |
- |
-THREADED_TEST(AccessorShouldThrowOnError) { |
- i::FLAG_strong_mode = true; |
- LocalContext context; |
- v8::Isolate* isolate = context->GetIsolate(); |
- v8::HandleScope scope(isolate); |
- Local<Object> global = context->Global(); |
- |
- Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate); |
- Local<ObjectTemplate> instance_templ = templ->InstanceTemplate(); |
- instance_templ->SetAccessor(v8_str("f"), ShouldThrowOnErrorGetter, |
- ShouldThrowOnErrorSetter<void>); |
- |
- Local<v8::Object> instance = templ->GetFunction(context.local()) |
- .ToLocalChecked() |
- ->NewInstance(context.local()) |
- .ToLocalChecked(); |
- |
- CHECK(global->Set(context.local(), v8_str("o"), instance).FromJust()); |
- |
- // SLOPPY mode |
- Local<Value> value = v8_compile("o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- |
- // STRICT mode |
- value = v8_compile("'use strict';o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("'use strict'; o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsTrue()); |
- |
- // STRONG mode |
- value = v8_compile("'use strong';o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("'use strong'; o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsTrue()); |
-} |
- |
- |
-static void ShouldThrowOnErrorQuery( |
- Local<Name> name, const v8::PropertyCallbackInfo<v8::Integer>& info) { |
- ApiTestFuzzer::Fuzz(); |
- v8::Isolate* isolate = info.GetIsolate(); |
- info.GetReturnValue().Set(v8::None); |
- |
- auto context = isolate->GetCurrentContext(); |
- Local<Boolean> should_throw_on_error_value = |
- Boolean::New(isolate, info.ShouldThrowOnError()); |
- CHECK(context->Global() |
- ->Set(isolate->GetCurrentContext(), v8_str("should_throw_query"), |
- should_throw_on_error_value) |
- .FromJust()); |
-} |
- |
- |
-static void ShouldThrowOnErrorDeleter( |
- Local<Name> name, const v8::PropertyCallbackInfo<v8::Boolean>& info) { |
- ApiTestFuzzer::Fuzz(); |
- v8::Isolate* isolate = info.GetIsolate(); |
- info.GetReturnValue().Set(v8::True(isolate)); |
- |
- auto context = isolate->GetCurrentContext(); |
- Local<Boolean> should_throw_on_error_value = |
- Boolean::New(isolate, info.ShouldThrowOnError()); |
- CHECK(context->Global() |
- ->Set(isolate->GetCurrentContext(), v8_str("should_throw_deleter"), |
- should_throw_on_error_value) |
- .FromJust()); |
-} |
- |
- |
-static void ShouldThrowOnErrorPropertyEnumerator( |
- const v8::PropertyCallbackInfo<v8::Array>& info) { |
- ApiTestFuzzer::Fuzz(); |
- v8::Isolate* isolate = info.GetIsolate(); |
- Local<v8::Array> names = v8::Array::New(isolate, 1); |
- CHECK(names->Set(isolate->GetCurrentContext(), names, v8_num(1)).FromJust()); |
- info.GetReturnValue().Set(names); |
- |
- auto context = isolate->GetCurrentContext(); |
- Local<Boolean> should_throw_on_error_value = |
- Boolean::New(isolate, info.ShouldThrowOnError()); |
- CHECK(context->Global() |
- ->Set(isolate->GetCurrentContext(), |
- v8_str("should_throw_enumerator"), |
- should_throw_on_error_value) |
- .FromJust()); |
-} |
- |
- |
-THREADED_TEST(InterceptorShouldThrowOnError) { |
- i::FLAG_strong_mode = true; |
- LocalContext context; |
- v8::Isolate* isolate = context->GetIsolate(); |
- v8::HandleScope scope(isolate); |
- Local<Object> global = context->Global(); |
- |
- auto interceptor_templ = v8::ObjectTemplate::New(isolate); |
- v8::NamedPropertyHandlerConfiguration handler( |
- ShouldThrowOnErrorGetter, ShouldThrowOnErrorSetter<Value>, |
- ShouldThrowOnErrorQuery, ShouldThrowOnErrorDeleter, |
- ShouldThrowOnErrorPropertyEnumerator); |
- interceptor_templ->SetHandler(handler); |
- |
- Local<v8::Object> instance = |
- interceptor_templ->NewInstance(context.local()).ToLocalChecked(); |
- |
- CHECK(global->Set(context.local(), v8_str("o"), instance).FromJust()); |
- |
- // SLOPPY mode |
- Local<Value> value = v8_compile("o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- |
- v8_compile("delete o.f")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_deleter")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- |
- v8_compile("Object.getOwnPropertyNames(o)") |
- ->Run(context.local()) |
- .ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_enumerator")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- |
- // STRICT mode |
- value = v8_compile("'use strict';o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("'use strict'; o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsTrue()); |
- |
- v8_compile("'use strict'; delete o.f")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_deleter")) |
- .ToLocalChecked(); |
- CHECK(value->IsTrue()); |
- |
- v8_compile("'use strict'; Object.getOwnPropertyNames(o)") |
- ->Run(context.local()) |
- .ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_enumerator")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- |
- // STRONG mode |
- value = v8_compile("'use strong';o.f")->Run(context.local()).ToLocalChecked(); |
- CHECK(value->IsFalse()); |
- v8_compile("'use strong'; o.f = 153")->Run(context.local()).ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_setter")) |
- .ToLocalChecked(); |
- CHECK(value->IsTrue()); |
- |
- v8_compile("'use strong'; Object.getOwnPropertyNames(o)") |
- ->Run(context.local()) |
- .ToLocalChecked(); |
- value = global->Get(context.local(), v8_str("should_throw_enumerator")) |
- .ToLocalChecked(); |
- CHECK(value->IsFalse()); |
} |