| Index: test/cctest/test-accessors.cc
|
| diff --git a/test/cctest/test-accessors.cc b/test/cctest/test-accessors.cc
|
| index 54546993f0d1b66edc31ddaee5c5537240903bf2..bbb74c0a71ada861c959c3fdd9049d3cdb9995a9 100644
|
| --- a/test/cctest/test-accessors.cc
|
| +++ b/test/cctest/test-accessors.cc
|
| @@ -605,86 +605,3 @@
|
| "Object.defineProperty(obj, 'prop', { writable: false });"
|
| "Object.defineProperty(obj, 'prop', { writable: true });");
|
| }
|
| -
|
| -
|
| -static bool security_check_value = false;
|
| -
|
| -
|
| -static bool SecurityTestCallback(Local<v8::Object> global, Local<Value> name,
|
| - v8::AccessType type, Local<Value> data) {
|
| - return security_check_value;
|
| -}
|
| -
|
| -
|
| -TEST(PrototypeGetterAccessCheck) {
|
| - i::FLAG_allow_natives_syntax = true;
|
| - LocalContext env;
|
| - v8::Isolate* isolate = env->GetIsolate();
|
| - v8::HandleScope scope(isolate);
|
| - auto fun_templ = v8::FunctionTemplate::New(isolate);
|
| - auto getter_templ = v8::FunctionTemplate::New(isolate, handle_property);
|
| - getter_templ->SetLength(0);
|
| - fun_templ->InstanceTemplate()->SetAccessorProperty(v8_str("foo"),
|
| - getter_templ);
|
| - auto obj_templ = v8::ObjectTemplate::New(isolate);
|
| - obj_templ->SetAccessCheckCallbacks(SecurityTestCallback, nullptr);
|
| - env->Global()->Set(v8_str("Fun"), fun_templ->GetFunction());
|
| - env->Global()->Set(v8_str("obj"), obj_templ->NewInstance());
|
| - env->Global()->Set(v8_str("obj2"), obj_templ->NewInstance());
|
| -
|
| - security_check_value = true;
|
| - CompileRun("var proto = new Fun();");
|
| - CompileRun("obj.__proto__ = proto;");
|
| - ExpectInt32("proto.foo", 907);
|
| -
|
| - // Test direct.
|
| - security_check_value = true;
|
| - ExpectInt32("obj.foo", 907);
|
| - security_check_value = false;
|
| - {
|
| - v8::TryCatch try_catch(isolate);
|
| - CompileRun("obj.foo");
|
| - CHECK(try_catch.HasCaught());
|
| - }
|
| -
|
| - // Test through call.
|
| - security_check_value = true;
|
| - ExpectInt32("proto.__lookupGetter__('foo').call(obj)", 907);
|
| - security_check_value = false;
|
| - {
|
| - v8::TryCatch try_catch(isolate);
|
| - CompileRun("proto.__lookupGetter__('foo').call(obj)");
|
| - CHECK(try_catch.HasCaught());
|
| - }
|
| -
|
| - // Test ics.
|
| - CompileRun(
|
| - "function f() {"
|
| - " var x;"
|
| - " for (var i = 0; i < 4; i++) {"
|
| - " x = obj.foo;"
|
| - " }"
|
| - " return x;"
|
| - "}");
|
| -
|
| - security_check_value = true;
|
| - ExpectInt32("f()", 907);
|
| - security_check_value = false;
|
| - {
|
| - v8::TryCatch try_catch(isolate);
|
| - CompileRun("f();");
|
| - CHECK(try_catch.HasCaught());
|
| - }
|
| -
|
| - // Test crankshaft.
|
| - CompileRun("%OptimizeFunctionOnNextCall(f);");
|
| -
|
| - security_check_value = true;
|
| - ExpectInt32("f()", 907);
|
| - security_check_value = false;
|
| - {
|
| - v8::TryCatch try_catch(isolate);
|
| - CompileRun("f();");
|
| - CHECK(try_catch.HasCaught());
|
| - }
|
| -}
|
|
|