| Index: test/cctest/test-api.cc
|
| ===================================================================
|
| --- test/cctest/test-api.cc (revision 4957)
|
| +++ test/cctest/test-api.cc (working copy)
|
| @@ -5035,6 +5035,31 @@
|
| }
|
|
|
|
|
| +static v8::Handle<v8::Array> NamedPropertyEnumerator(const AccessorInfo& info) {
|
| + v8::Handle<v8::Array> result = v8::Array::New(1);
|
| + result->Set(0, v8_str("x"));
|
| + return result;
|
| +}
|
| +
|
| +
|
| +THREADED_TEST(GetOwnPropertyNamesWithInterceptor) {
|
| + v8::HandleScope handle_scope;
|
| + v8::Handle<v8::ObjectTemplate> obj_template = v8::ObjectTemplate::New();
|
| +
|
| + obj_template->Set(v8_str("x"), v8::Integer::New(42));
|
| + obj_template->SetNamedPropertyHandler(NULL, NULL, NULL, NULL,
|
| + NamedPropertyEnumerator);
|
| +
|
| + LocalContext context;
|
| + v8::Handle<v8::Object> global = context->Global();
|
| + global->Set(v8_str("object"), obj_template->NewInstance());
|
| +
|
| + v8::Handle<Value> value =
|
| + CompileRun("Object.getOwnPropertyNames(object).join(',')");
|
| + CHECK_EQ(v8_str("x"), value);
|
| +}
|
| +
|
| +
|
| static v8::Handle<Value> ConstTenGetter(Local<String> name,
|
| const AccessorInfo& info) {
|
| return v8_num(10);
|
|
|