summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-api-accessors.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/test-api-accessors.cc')
-rw-r--r--deps/v8/test/cctest/test-api-accessors.cc118
1 files changed, 90 insertions, 28 deletions
diff --git a/deps/v8/test/cctest/test-api-accessors.cc b/deps/v8/test/cctest/test-api-accessors.cc
index 8c2f92d665..5f82d78711 100644
--- a/deps/v8/test/cctest/test-api-accessors.cc
+++ b/deps/v8/test/cctest/test-api-accessors.cc
@@ -287,21 +287,30 @@ TEST(AccessorSetHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
obj->SetAccessor(context, v8_str("foo"), Getter).ToChecked();
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
obj->SetAccessor(context, v8_str("foo"), Getter, nullptr,
v8::MaybeLocal<v8::Value>(), v8::AccessControl::DEFAULT,
v8::PropertyAttribute::None,
v8::SideEffectType::kHasNoSideEffect)
.ToChecked();
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).ToLocalChecked();
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());
@@ -323,12 +332,16 @@ TEST(SetAccessorSetSideEffectReceiverCheck1) {
v8::SideEffectType::kHasNoSideEffect,
v8::SideEffectType::kHasSideEffectToReceiver)
.ToChecked();
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.ToLocalChecked()
->Equals(env.local(), v8_str("return value"))
.FromJust());
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
CHECK_EQ(0, set_accessor_call_count);
@@ -357,11 +370,15 @@ TEST(SetAccessorSetSideEffectReceiverCheck2) {
->Set(env.local(), v8_str("f"),
templ->GetFunction(env.local()).ToLocalChecked())
.FromJust());
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("new f().bar"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("new f().bar"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.ToLocalChecked()
->Equals(env.local(), v8_str("return value"))
.FromJust());
- v8::debug::EvaluateGlobal(isolate, v8_str("new f().bar = 1"), true)
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("new f().bar = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.ToLocalChecked();
CHECK_EQ(1, set_accessor_call_count);
}
@@ -377,20 +394,29 @@ TEST(AccessorSetNativeDataPropertyHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
obj->SetNativeDataProperty(context, v8_str("foo"), Getter).ToChecked();
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
obj->SetNativeDataProperty(
context, v8_str("foo"), Getter, nullptr, v8::Local<v8::Value>(),
v8::PropertyAttribute::None, v8::SideEffectType::kHasNoSideEffect)
.ToChecked();
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).ToLocalChecked();
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());
@@ -407,20 +433,29 @@ TEST(AccessorSetLazyDataPropertyHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
obj->SetLazyDataProperty(context, v8_str("foo"), Getter).ToChecked();
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
obj->SetLazyDataProperty(context, v8_str("foo"), Getter,
v8::Local<v8::Value>(), v8::PropertyAttribute::None,
v8::SideEffectType::kHasNoSideEffect)
.ToChecked();
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).ToLocalChecked();
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());
@@ -440,15 +475,24 @@ TEST(ObjectTemplateSetAccessorHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), true).ToLocalChecked();
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2 = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2 = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());
@@ -468,15 +512,24 @@ TEST(ObjectTemplateSetNativePropertyHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), true).ToLocalChecked();
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2 = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2 = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());
@@ -495,15 +548,24 @@ TEST(ObjectTemplateSetLazyPropertyHasNoSideEffect) {
v8::Local<v8::Object> obj = templ->NewInstance(env.local()).ToLocalChecked();
CHECK(env->Global()->Set(env.local(), v8_str("obj"), obj).FromJust());
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo"), true).IsEmpty());
- v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), true).ToLocalChecked();
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .IsEmpty());
+ v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
+ .ToLocalChecked();
// Check that setter is not whitelisted.
v8::TryCatch try_catch(isolate);
- CHECK(v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2 = 1"), true)
+ CHECK(v8::debug::EvaluateGlobal(
+ isolate, v8_str("obj.foo2 = 1"),
+ v8::debug::EvaluateGlobalMode::kDisableBreaksAndThrowOnSideEffect)
.IsEmpty());
CHECK(try_catch.HasCaught());
- CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"), false)
+ CHECK_NE(1, v8::debug::EvaluateGlobal(isolate, v8_str("obj.foo2"),
+ v8::debug::EvaluateGlobalMode::kDefault)
.ToLocalChecked()
->Int32Value(env.local())
.FromJust());