| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 06582526af8d8ea70bb246f3cc1fe16e82f052a1..a39d28888794159bf004eac1588b1872dc1b05df 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -21946,3 +21946,36 @@ TEST(ArrayIteratorMethods) {
|
| ExpectString("typeof values", "function");
|
| ExpectString("typeof entries", "function");
|
| }
|
| +
|
| +
|
| +TEST(ObjectTemplateIntrinsics) {
|
| + v8::Isolate* isolate = CcTest::isolate();
|
| + v8::HandleScope scope(isolate);
|
| + LocalContext env;
|
| +
|
| + Local<ObjectTemplate> object_template = v8::ObjectTemplate::New(isolate);
|
| + object_template->SetIntrinsicDataProperty(v8_str("values"),
|
| + v8::kArrayProto_values);
|
| + Local<Object> object = object_template->NewInstance();
|
| +
|
| + env->Global()->Set(v8_str("obj1"), object);
|
| + ExpectString("typeof obj1.values", "function");
|
| +
|
| + auto values = Local<Function>::Cast(object->Get(v8_str("values")));
|
| + auto fn = v8::Utils::OpenHandle(*values);
|
| + auto ctx = v8::Utils::OpenHandle(*env.local());
|
| + CHECK_EQ(fn->GetCreationContext(), *ctx);
|
| +
|
| + {
|
| + LocalContext env2;
|
| + Local<Object> object2 = object_template->NewInstance();
|
| + env2->Global()->Set(v8_str("obj2"), object2);
|
| + ExpectString("typeof obj2.values", "function");
|
| + CHECK_NE(*object->Get(v8_str("values")), *object2->Get(v8_str("values")));
|
| +
|
| + auto values2 = Local<Function>::Cast(object2->Get(v8_str("values")));
|
| + auto fn2 = v8::Utils::OpenHandle(*values2);
|
| + auto ctx2 = v8::Utils::OpenHandle(*env2.local());
|
| + CHECK_EQ(fn2->GetCreationContext(), *ctx2);
|
| + }
|
| +}
|
|
|