static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info) { ExceptionState exceptionState(info.GetIsolate(), ExceptionState::EnumerationContext, "TestInterface2"); TestInterface2* impl = V8TestInterface2::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) { TestInterface2* impl = V8TestInterface2::toImpl(info.Holder()); Vector<String> names; ExceptionState exceptionState(ExceptionState::EnumerationContext, "TestInterface2", info.Holder(), info.GetIsolate()); impl->namedPropertyEnumerator(names, exceptionState); if (exceptionState.throwIfNeeded()) return; v8::Local<v8::Array> v8names = v8::Array::New(info.GetIsolate(), names.size()); for (size_t i = 0; i < names.size(); ++i) { if (!v8CallBoolean(v8names->CreateDataProperty(info.GetIsolate()->GetCurrentContext(), i, v8String(info.GetIsolate(), names[i])))) return; } v8SetReturnValue(info, v8names); }