Index: test/cctest/compiler/test-run-jscalls.cc |
diff --git a/test/cctest/compiler/test-run-jscalls.cc b/test/cctest/compiler/test-run-jscalls.cc |
index fa7e98d5ec8178940dcb901c0f29f71115453f14..20fa16c5d1f3119384f780144cbd7c051acd5606 100644 |
--- a/test/cctest/compiler/test-run-jscalls.cc |
+++ b/test/cctest/compiler/test-run-jscalls.cc |
@@ -245,3 +245,46 @@ TEST(CallEval) { |
T.CheckCall(T.Val(42), T.Val("x"), T.undefined()); |
} |
+ |
+#if V8_TURBOFAN_TARGET |
+ |
+TEST(ContextLoadedFromActivation) { |
+ const char* script = |
+ "var x = 42;" |
+ "(function() {" |
+ " return function () { return x };" |
+ "})()"; |
+ |
+ // Disable context specialization. |
+ FunctionTester T(script, false); |
+ T.CompileFunctionInSeparateContext( |
+ script, |
+ [&T](v8::Handle<v8::Context> context, Handle<JSFunction> function) { |
sigurds
2014/08/21 09:14:14
Look at this beautiful lambda :)
I'll replace it w
|
+ function->set_code(T.function->code()); |
+ context->Global()->Set(v8_str("foo"), v8::Utils::ToLocal(function)); |
+ CompileRun("var x = 24;"); |
+ ExpectInt32("foo();", 24); |
+ }); |
+} |
+ |
+ |
+TEST(BuiltinLoadedFromActivation) { |
+ const char* script = |
+ "var x = 42;" |
+ "(function() {" |
+ " return function () { return this; };" |
+ "})()"; |
+ |
+ // Disable context specialization. |
+ FunctionTester T(script, false); |
+ T.CompileFunctionInSeparateContext( |
+ script, |
+ [&T](v8::Handle<v8::Context> context, Handle<JSFunction> function) { |
+ function->set_code(T.function->code()); |
+ context->Global()->Set(v8_str("foo"), v8::Utils::ToLocal(function)); |
+ CompileRun("var x = 24;"); |
+ ExpectObject("foo()", context->Global()); |
+ }); |
+} |
+ |
+#endif // V8_TURBO_TARGET |