Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index fe87b2dd20d0d8bd4716690e944bf25c8e2fc79f..17c3d6272cd70db10d623ff29a629e4bfe3dcf40 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -8524,8 +8524,6 @@ TEST(ContextDetachGlobal) { |
// Detach env2's global, and reuse the global object of env2 |
env2->Exit(); |
env2->DetachGlobal(); |
- // env2 has a new global object. |
- CHECK(!env2->Global()->Equals(global2)); |
v8::Handle<Context> env3 = Context::New(env1->GetIsolate(), |
0, |
@@ -8560,7 +8558,7 @@ TEST(ContextDetachGlobal) { |
} |
-TEST(DetachAndReattachGlobal) { |
+TEST(DetachGlobal) { |
LocalContext env1; |
v8::HandleScope scope(env1->GetIsolate()); |
@@ -8625,16 +8623,6 @@ TEST(DetachAndReattachGlobal) { |
// so access should be blocked. |
result = CompileRun("other.p"); |
CHECK(result->IsUndefined()); |
- |
- // Detach the global for env3 and reattach it to env2. |
- env3->DetachGlobal(); |
- env2->ReattachGlobal(global2); |
- |
- // Check that we have access to other.p again in env1. |other| is now |
- // the global object for env2 which has the same security token as env1. |
- result = CompileRun("other.p"); |
- CHECK(result->IsInt32()); |
- CHECK_EQ(42, result->Int32Value()); |
} |
@@ -14248,8 +14236,10 @@ THREADED_TEST(TurnOnAccessCheck) { |
} |
// Detach the global and turn on access check. |
+ Local<Object> hidden_global = Local<Object>::Cast( |
+ context->Global()->GetPrototype()); |
context->DetachGlobal(); |
- context->Global()->TurnOnAccessCheck(); |
+ hidden_global->TurnOnAccessCheck(); |
// Failing access check to property get results in undefined. |
CHECK(f1->Call(global, 0, NULL)->IsUndefined()); |
@@ -14333,8 +14323,10 @@ THREADED_TEST(TurnOnAccessCheckAndRecompile) { |
// Detach the global and turn on access check now blocking access to property |
// a and function h. |
+ Local<Object> hidden_global = Local<Object>::Cast( |
+ context->Global()->GetPrototype()); |
context->DetachGlobal(); |
- context->Global()->TurnOnAccessCheck(); |
+ hidden_global->TurnOnAccessCheck(); |
// Failing access check to property get results in undefined. |
CHECK(f1->Call(global, 0, NULL)->IsUndefined()); |
@@ -14350,11 +14342,11 @@ THREADED_TEST(TurnOnAccessCheckAndRecompile) { |
// Now compile the source again. And get the newly compiled functions, except |
// for h for which access is blocked. |
CompileRun(source); |
- f1 = Local<Function>::Cast(context->Global()->Get(v8_str("f1"))); |
- f2 = Local<Function>::Cast(context->Global()->Get(v8_str("f2"))); |
- g1 = Local<Function>::Cast(context->Global()->Get(v8_str("g1"))); |
- g2 = Local<Function>::Cast(context->Global()->Get(v8_str("g2"))); |
- CHECK(context->Global()->Get(v8_str("h"))->IsUndefined()); |
+ f1 = Local<Function>::Cast(hidden_global->Get(v8_str("f1"))); |
+ f2 = Local<Function>::Cast(hidden_global->Get(v8_str("f2"))); |
+ g1 = Local<Function>::Cast(hidden_global->Get(v8_str("g1"))); |
+ g2 = Local<Function>::Cast(hidden_global->Get(v8_str("g2"))); |
+ CHECK(hidden_global->Get(v8_str("h"))->IsUndefined()); |
// Failing access check to property get results in undefined. |
CHECK(f1->Call(global, 0, NULL)->IsUndefined()); |
@@ -15221,23 +15213,6 @@ THREADED_TEST(ReplaceConstantFunction) { |
} |
-// Regression test for http://crbug.com/16276. |
-THREADED_TEST(Regress16276) { |
- LocalContext context; |
- v8::HandleScope scope(context->GetIsolate()); |
- // Force the IC in f to be a dictionary load IC. |
- CompileRun("function f(obj) { return obj.x; }\n" |
- "var obj = { x: { foo: 42 }, y: 87 };\n" |
- "var x = obj.x;\n" |
- "delete obj.y;\n" |
- "for (var i = 0; i < 5; i++) f(obj);"); |
- // Detach the global object to make 'this' refer directly to the |
- // global object (not the proxy), and make sure that the dictionary |
- // load IC doesn't mess up loading directly from the global object. |
- context->DetachGlobal(); |
- CHECK_EQ(42, CompileRun("f(this).foo")->Int32Value()); |
-} |
- |
static void CheckElementValue(i::Isolate* isolate, |
int expected, |
i::Handle<i::Object> obj, |