static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info) { ExceptionState exceptionState(info.GetIsolate(), ExceptionState::EnumerationContext, "TestSpecialOperations"); TestSpecialOperations* impl = V8TestSpecialOperations::toImpl(info.Holder()); Vector<String> names; impl->namedPropertyEnumerator(names, exceptionState); if (exceptionState.hadException()) return; v8SetReturnValue(info, toV8(names, info.Holder(), info.GetIsolate()).As<v8::Array>()); }
static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info) { TestSpecialOperations* impl = V8TestSpecialOperations::toNative(info.Holder()); v8::Isolate* isolate = info.GetIsolate(); Vector<String> names; ExceptionState exceptionState(ExceptionState::EnumerationContext, "TestSpecialOperations", info.Holder(), isolate); impl->namedPropertyEnumerator(names, exceptionState); if (exceptionState.throwIfNeeded()) return; v8::Handle<v8::Array> v8names = v8::Array::New(isolate, names.size()); for (size_t i = 0; i < names.size(); ++i) v8names->Set(v8::Integer::New(isolate, i), v8String(isolate, names[i])); v8SetReturnValue(info, v8names); }