Index: test/cctest/test-api-interceptors.cc |
diff --git a/test/cctest/test-api-interceptors.cc b/test/cctest/test-api-interceptors.cc |
index f0f817ffc151893c0c5b31d4d0bfbcfd73a5a548..46163d43f98b49bfb8edc08ad1af7f367ae07a34 100644 |
--- a/test/cctest/test-api-interceptors.cc |
+++ b/test/cctest/test-api-interceptors.cc |
@@ -1658,6 +1658,12 @@ THREADED_TEST(IndexedInterceptorWithNoSetter) { |
} |
+static bool AccessAlwaysBlocked(Local<v8::Object> global, Local<Value> name, |
+ v8::AccessType type, Local<Value> data) { |
+ return false; |
+} |
+ |
+ |
THREADED_TEST(IndexedInterceptorWithAccessorCheck) { |
v8::Isolate* isolate = CcTest::isolate(); |
v8::HandleScope scope(isolate); |
@@ -1665,9 +1671,10 @@ THREADED_TEST(IndexedInterceptorWithAccessorCheck) { |
templ->SetHandler( |
v8::IndexedPropertyHandlerConfiguration(IdentityIndexedPropertyGetter)); |
+ templ->SetAccessCheckCallbacks(AccessAlwaysBlocked, nullptr); |
+ |
LocalContext context; |
Local<v8::Object> obj = templ->NewInstance(); |
- obj->TurnOnAccessCheck(); |
context->Global()->Set(v8_str("obj"), obj); |
const char* code = |
@@ -1686,46 +1693,6 @@ THREADED_TEST(IndexedInterceptorWithAccessorCheck) { |
} |
-THREADED_TEST(IndexedInterceptorWithAccessorCheckSwitchedOn) { |
- i::FLAG_allow_natives_syntax = true; |
- v8::Isolate* isolate = CcTest::isolate(); |
- v8::HandleScope scope(isolate); |
- Local<ObjectTemplate> templ = ObjectTemplate::New(isolate); |
- templ->SetHandler( |
- v8::IndexedPropertyHandlerConfiguration(IdentityIndexedPropertyGetter)); |
- |
- LocalContext context; |
- Local<v8::Object> obj = templ->NewInstance(); |
- context->Global()->Set(v8_str("obj"), obj); |
- |
- const char* code = |
- "var result = 'PASSED';" |
- "for (var i = 0; i < 100; i++) {" |
- " var expected = i;" |
- " if (i == 5) {" |
- " %EnableAccessChecks(obj);" |
- " }" |
- " try {" |
- " var v = obj[i];" |
- " if (i == 5) {" |
- " result = 'Should not have reached this!';" |
- " break;" |
- " } else if (v != expected) {" |
- " result = 'Wrong value ' + v + ' at iteration ' + i;" |
- " break;" |
- " }" |
- " } catch (e) {" |
- " if (i != 5) {" |
- " result = e;" |
- " }" |
- " }" |
- " if (i == 5) %DisableAccessChecks(obj);" |
- "}" |
- "result"; |
- ExpectString(code, "PASSED"); |
-} |
- |
- |
THREADED_TEST(IndexedInterceptorWithDifferentIndices) { |
v8::Isolate* isolate = CcTest::isolate(); |
v8::HandleScope scope(isolate); |
@@ -2975,7 +2942,7 @@ THREADED_TEST(NamedAllCanReadInterceptor) { |
LocalContext context; |
AccessCheckData access_check_data; |
- access_check_data.result = false; |
+ access_check_data.result = true; |
access_check_data.count = 0; |
ShouldInterceptData intercept_data_0; |
@@ -3007,7 +2974,7 @@ THREADED_TEST(NamedAllCanReadInterceptor) { |
auto checked = v8::ObjectTemplate::New(isolate); |
checked->SetAccessCheckCallbacks( |
SimpleAccessChecker, nullptr, |
- BuildWrappedObject<AccessCheckData>(isolate, &access_check_data), false); |
+ BuildWrappedObject<AccessCheckData>(isolate, &access_check_data)); |
context->Global()->Set(v8_str("intercepted_0"), intercepted_0->NewInstance()); |
context->Global()->Set(v8_str("intercepted_1"), intercepted_1->NewInstance()); |
@@ -3018,14 +2985,12 @@ THREADED_TEST(NamedAllCanReadInterceptor) { |
"checked.__proto__ = intercepted_1;" |
"intercepted_1.__proto__ = intercepted_0;"); |
- checked_instance->TurnOnAccessCheck(); |
- CHECK_EQ(0, access_check_data.count); |
+ CHECK_EQ(3, access_check_data.count); |
- access_check_data.result = true; |
ExpectInt32("checked.whatever", 17); |
CHECK(!CompileRun("Object.getOwnPropertyDescriptor(checked, 'whatever')") |
->IsUndefined()); |
- CHECK_EQ(2, access_check_data.count); |
+ CHECK_EQ(5, access_check_data.count); |
access_check_data.result = false; |
ExpectInt32("checked.whatever", intercept_data_0.value); |
@@ -3034,7 +2999,7 @@ THREADED_TEST(NamedAllCanReadInterceptor) { |
CompileRun("Object.getOwnPropertyDescriptor(checked, 'whatever')"); |
CHECK(try_catch.HasCaught()); |
} |
- CHECK_EQ(4, access_check_data.count); |
+ CHECK_EQ(7, access_check_data.count); |
intercept_data_1.should_intercept = true; |
ExpectInt32("checked.whatever", intercept_data_1.value); |
@@ -3043,7 +3008,7 @@ THREADED_TEST(NamedAllCanReadInterceptor) { |
CompileRun("Object.getOwnPropertyDescriptor(checked, 'whatever')"); |
CHECK(try_catch.HasCaught()); |
} |
- CHECK_EQ(6, access_check_data.count); |
+ CHECK_EQ(9, access_check_data.count); |
} |
@@ -3053,7 +3018,7 @@ THREADED_TEST(IndexedAllCanReadInterceptor) { |
LocalContext context; |
AccessCheckData access_check_data; |
- access_check_data.result = false; |
+ access_check_data.result = true; |
access_check_data.count = 0; |
ShouldInterceptData intercept_data_0; |
@@ -3085,7 +3050,7 @@ THREADED_TEST(IndexedAllCanReadInterceptor) { |
auto checked = v8::ObjectTemplate::New(isolate); |
checked->SetAccessCheckCallbacks( |
SimpleAccessChecker, nullptr, |
- BuildWrappedObject<AccessCheckData>(isolate, &access_check_data), false); |
+ BuildWrappedObject<AccessCheckData>(isolate, &access_check_data)); |
context->Global()->Set(v8_str("intercepted_0"), intercepted_0->NewInstance()); |
context->Global()->Set(v8_str("intercepted_1"), intercepted_1->NewInstance()); |
@@ -3096,14 +3061,13 @@ THREADED_TEST(IndexedAllCanReadInterceptor) { |
"checked.__proto__ = intercepted_1;" |
"intercepted_1.__proto__ = intercepted_0;"); |
- checked_instance->TurnOnAccessCheck(); |
- CHECK_EQ(0, access_check_data.count); |
+ CHECK_EQ(3, access_check_data.count); |
access_check_data.result = true; |
ExpectInt32("checked[15]", 17); |
CHECK(!CompileRun("Object.getOwnPropertyDescriptor(checked, '15')") |
->IsUndefined()); |
- CHECK_EQ(2, access_check_data.count); |
+ CHECK_EQ(5, access_check_data.count); |
access_check_data.result = false; |
ExpectInt32("checked[15]", intercept_data_0.value); |
@@ -3112,7 +3076,7 @@ THREADED_TEST(IndexedAllCanReadInterceptor) { |
CompileRun("Object.getOwnPropertyDescriptor(checked, '15')"); |
CHECK(try_catch.HasCaught()); |
} |
- CHECK_EQ(4, access_check_data.count); |
+ CHECK_EQ(7, access_check_data.count); |
intercept_data_1.should_intercept = true; |
ExpectInt32("checked[15]", intercept_data_1.value); |
@@ -3121,7 +3085,7 @@ THREADED_TEST(IndexedAllCanReadInterceptor) { |
CompileRun("Object.getOwnPropertyDescriptor(checked, '15')"); |
CHECK(try_catch.HasCaught()); |
} |
- CHECK_EQ(6, access_check_data.count); |
+ CHECK_EQ(9, access_check_data.count); |
} |