static v8::Handle<v8::Value> getter(v8::Local<v8::String> property, const v8::AccessorInfo& info) { // FIXME: Consider passing AtomicStringImpl directly. AtomicString name = toWebCoreAtomicString(property); HTMLDocument* htmlDocument = V8HTMLDocument::toNative(info.Holder()); ASSERT(htmlDocument); v8::Handle<v8::Value> result = getNamedProperty(htmlDocument, name, info.Holder(), info.GetIsolate()); if (!result.IsEmpty()) return result; v8::Handle<v8::Value> prototype = info.Holder()->GetPrototype(); if (prototype->IsObject()) return prototype.As<v8::Object>()->Get(property); return v8::Undefined(); }
static void getter(v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& info) { if (!property->IsString()) return; // FIXME: Consider passing StringImpl directly. AtomicString name = toCoreAtomicString(property.As<v8::String>()); HTMLDocument* htmlDocument = V8HTMLDocument::toImpl(info.Holder()); ASSERT(htmlDocument); v8::Local<v8::Value> result = getNamedProperty(htmlDocument, name, info.Holder(), info.GetIsolate()); if (!result.IsEmpty()) { v8SetReturnValue(info, result); return; } v8::Local<v8::Value> value; if (info.Holder()->GetRealNamedPropertyInPrototypeChain(info.GetIsolate()->GetCurrentContext(), property.As<v8::String>()).ToLocal(&value)) v8SetReturnValue(info, value); }
static void getter(v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) { // FIXME: Consider passing StringImpl directly. AtomicString name = toCoreAtomicString(property); HTMLDocument* htmlDocument = V8HTMLDocument::toNative(info.Holder()); ASSERT(htmlDocument); v8::Handle<v8::Value> result = getNamedProperty(htmlDocument, name, info.Holder(), info.GetIsolate()); if (!result.IsEmpty()) { v8SetReturnValue(info, result); return; } v8::Handle<v8::Value> prototype = info.Holder()->GetPrototype(); if (prototype->IsObject()) { v8SetReturnValue(info, prototype.As<v8::Object>()->Get(property)); return; } }