| Index: test/cctest/test-api.cc | 
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc | 
| index 12e99a08474feee263357cfc58d938b2fbc258a2..839893e4a654aa3d241c79f44e72aaa23d86eec0 100644 | 
| --- a/test/cctest/test-api.cc | 
| +++ b/test/cctest/test-api.cc | 
| @@ -19646,6 +19646,39 @@ THREADED_TEST(CreationContextOfJsFunction) { | 
| } | 
|  | 
|  | 
| +THREADED_TEST(CreationContextOfJsBoundFunction) { | 
| +  HandleScope handle_scope(CcTest::isolate()); | 
| +  Local<Context> context1 = Context::New(CcTest::isolate()); | 
| +  InstallContextId(context1, 1); | 
| +  Local<Context> context2 = Context::New(CcTest::isolate()); | 
| +  InstallContextId(context2, 2); | 
| + | 
| +  Local<Function> target_function; | 
| +  { | 
| +    Context::Scope scope(context1); | 
| +    target_function = CompileRun("function foo() {}; foo").As<Function>(); | 
| +  } | 
| + | 
| +  Local<Function> bound_function1, bound_function2; | 
| +  { | 
| +    Context::Scope scope(context2); | 
| +    CHECK(context2->Global() | 
| +              ->Set(context2, v8_str("foo"), target_function) | 
| +              .FromJust()); | 
| +    bound_function1 = CompileRun("foo.bind(1)").As<Function>(); | 
| +    bound_function2 = | 
| +        CompileRun("Function.prototype.bind.call(foo, 2)").As<Function>(); | 
| +  } | 
| + | 
| +  Local<Context> other_context = Context::New(CcTest::isolate()); | 
| +  Context::Scope scope(other_context); | 
| +  CHECK(bound_function1->CreationContext() == context1); | 
| +  CheckContextId(bound_function1, 1); | 
| +  CHECK(bound_function2->CreationContext() == context2); | 
| +  CheckContextId(bound_function2, 1); | 
| +} | 
| + | 
| + | 
| void HasOwnPropertyIndexedPropertyGetter( | 
| uint32_t index, | 
| const v8::PropertyCallbackInfo<v8::Value>& info) { | 
|  |