bool toV8TestDictionaryDerivedImplementedAs(const TestDictionaryDerivedImplementedAs& impl, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate* isolate) { if (!toV8TestDictionary(impl, dictionary, creationContext, isolate)) return false; if (impl.hasDerivedStringMember()) { if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "derivedStringMember"), v8String(isolate, impl.derivedStringMember())))) return false; } if (impl.hasDerivedStringMemberWithDefault()) { if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "derivedStringMemberWithDefault"), v8String(isolate, impl.derivedStringMemberWithDefault())))) return false; } else { if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "derivedStringMemberWithDefault"), v8String(isolate, String("default string value"))))) return false; } if (impl.hasRequiredLongMember()) { if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "requiredLongMember"), v8::Integer::New(isolate, impl.requiredLongMember())))) return false; } else { ASSERT_NOT_REACHED(); } if (impl.hasStringOrDoubleSequenceMember()) { if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "stringOrDoubleSequenceMember"), toV8(impl.stringOrDoubleSequenceMember(), creationContext, isolate)))) return false; } return true; }
v8::Local<v8::Value> toV8(const TestDictionaryDerivedImplementedAs& impl, v8::Local<v8::Object> creationContext, v8::Isolate* isolate) { v8::Local<v8::Object> v8Object = v8::Object::New(isolate); if (!toV8TestDictionary(impl, v8Object, creationContext, isolate)) return v8::Local<v8::Value>(); if (!toV8TestDictionaryDerivedImplementedAs(impl, v8Object, creationContext, isolate)) return v8::Local<v8::Value>(); return v8Object; }