1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
8 #include "V8TestDictionary.h"
10 #include "bindings/core/v8/Dictionary.h"
11 #include "bindings/core/v8/ExceptionState.h"
12 #include "bindings/core/v8/ScriptValue.h"
13 #include "bindings/core/v8/V8Element.h"
14 #include "bindings/core/v8/V8TestInterface.h"
15 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h"
16 #include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
20 void V8TestDictionary::toImpl(v8::Isolate* isolate, v8::Handle<v8::Value> v8Value, TestDictionary& impl, ExceptionState& exceptionState)
22 if (isUndefinedOrNull(v8Value))
24 if (!v8Value->IsObject()) {
25 exceptionState.throwTypeError("cannot convert to dictionary.");
29 // FIXME: Do not use Dictionary and DictionaryHelper
30 // https://crbug.com/321462
31 Dictionary dictionary(v8Value, isolate);
32 // FIXME: Remove this v8::TryCatch once the code is switched from
33 // Dictionary/DictionaryHelper to something that uses ExceptionState.
36 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "booleanMember", booleanMember)) {
37 impl.setBooleanMember(booleanMember);
38 } else if (block.HasCaught()) {
39 exceptionState.rethrowV8Exception(block.Exception());
44 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "create", create)) {
45 impl.setCreateMember(create);
46 } else if (block.HasCaught()) {
47 exceptionState.rethrowV8Exception(block.Exception());
51 double doubleOrNullMember;
52 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "doubleOrNullMember", doubleOrNullMember)) {
53 impl.setDoubleOrNullMember(doubleOrNullMember);
54 } else if (block.HasCaught()) {
55 exceptionState.rethrowV8Exception(block.Exception());
59 RefPtrWillBeRawPtr<Element> elementOrNullMember;
60 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "elementOrNullMember", elementOrNullMember)) {
61 impl.setElementOrNullMember(elementOrNullMember);
62 } else if (block.HasCaught()) {
63 exceptionState.rethrowV8Exception(block.Exception());
68 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "enumMember", enumMember)) {
69 String string = enumMember;
70 if (!(string == "foo" || string == "bar" || string == "baz")) {
71 exceptionState.throwTypeError("member enumMember ('" + string + "') is not a valid enum value.");
74 impl.setEnumMember(enumMember);
75 } else if (block.HasCaught()) {
76 exceptionState.rethrowV8Exception(block.Exception());
81 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "longMember", longMember)) {
82 impl.setLongMember(longMember);
83 } else if (block.HasCaught()) {
84 exceptionState.rethrowV8Exception(block.Exception());
88 ScriptValue objectMember;
89 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "objectMember", objectMember)) {
90 if (!objectMember.isObject()) {
91 exceptionState.throwTypeError("member objectMember is not an object.");
94 impl.setObjectMember(objectMember);
95 } else if (block.HasCaught()) {
96 exceptionState.rethrowV8Exception(block.Exception());
100 ScriptValue objectOrNullMember;
101 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "objectOrNullMember", objectOrNullMember)) {
102 if (!objectOrNullMember.isObject()) {
103 exceptionState.throwTypeError("member objectOrNullMember is not an object.");
106 impl.setObjectOrNullMember(objectOrNullMember);
107 } else if (block.HasCaught()) {
108 exceptionState.rethrowV8Exception(block.Exception());
112 Vector<String> stringArrayMember;
113 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "stringArrayMember", stringArrayMember)) {
114 impl.setStringArrayMember(stringArrayMember);
115 } else if (block.HasCaught()) {
116 exceptionState.rethrowV8Exception(block.Exception());
121 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "stringMember", stringMember)) {
122 impl.setStringMember(stringMember);
123 } else if (block.HasCaught()) {
124 exceptionState.rethrowV8Exception(block.Exception());
128 String stringOrNullMember;
129 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "stringOrNullMember", stringOrNullMember)) {
130 impl.setStringOrNullMember(stringOrNullMember);
131 } else if (block.HasCaught()) {
132 exceptionState.rethrowV8Exception(block.Exception());
136 Vector<String> stringSequenceMember;
137 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "stringSequenceMember", stringSequenceMember)) {
138 impl.setStringSequenceMember(stringSequenceMember);
139 } else if (block.HasCaught()) {
140 exceptionState.rethrowV8Exception(block.Exception());
144 RawPtr<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedMember;
145 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceGarbageCollectedMember", testInterfaceGarbageCollectedMember)) {
146 impl.setTestInterfaceGarbageCollectedMember(testInterfaceGarbageCollectedMember);
147 } else if (block.HasCaught()) {
148 exceptionState.rethrowV8Exception(block.Exception());
152 RawPtr<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedOrNullMember;
153 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceGarbageCollectedOrNullMember", testInterfaceGarbageCollectedOrNullMember)) {
154 impl.setTestInterfaceGarbageCollectedOrNullMember(testInterfaceGarbageCollectedOrNullMember);
155 } else if (block.HasCaught()) {
156 exceptionState.rethrowV8Exception(block.Exception());
160 RefPtr<TestInterfaceImplementation> testInterfaceMember;
161 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceMember", testInterfaceMember)) {
162 impl.setTestInterfaceMember(testInterfaceMember);
163 } else if (block.HasCaught()) {
164 exceptionState.rethrowV8Exception(block.Exception());
168 RefPtr<TestInterfaceImplementation> testInterfaceOrNullMember;
169 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceOrNullMember", testInterfaceOrNullMember)) {
170 impl.setTestInterfaceOrNullMember(testInterfaceOrNullMember);
171 } else if (block.HasCaught()) {
172 exceptionState.rethrowV8Exception(block.Exception());
176 RefPtrWillBeRawPtr<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedMember;
177 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceWillBeGarbageCollectedMember", testInterfaceWillBeGarbageCollectedMember)) {
178 impl.setTestInterfaceWillBeGarbageCollectedMember(testInterfaceWillBeGarbageCollectedMember);
179 } else if (block.HasCaught()) {
180 exceptionState.rethrowV8Exception(block.Exception());
184 RefPtrWillBeRawPtr<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedOrNullMember;
185 if (DictionaryHelper::getWithUndefinedOrNullCheck(dictionary, "testInterfaceWillBeGarbageCollectedOrNullMember", testInterfaceWillBeGarbageCollectedOrNullMember)) {
186 impl.setTestInterfaceWillBeGarbageCollectedOrNullMember(testInterfaceWillBeGarbageCollectedOrNullMember);
187 } else if (block.HasCaught()) {
188 exceptionState.rethrowV8Exception(block.Exception());
194 v8::Handle<v8::Value> toV8(TestDictionary& impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
196 v8::Handle<v8::Object> v8Object = v8::Object::New(isolate);
197 if (impl.hasBooleanMember()) {
198 v8Object->Set(v8String(isolate, "booleanMember"), v8Boolean(impl.booleanMember(), isolate));
201 if (impl.hasCreateMember()) {
202 v8Object->Set(v8String(isolate, "create"), v8Boolean(impl.createMember(), isolate));
205 if (impl.hasDoubleOrNullMember()) {
206 v8Object->Set(v8String(isolate, "doubleOrNullMember"), v8::Number::New(isolate, impl.doubleOrNullMember()));
208 v8Object->Set(v8String(isolate, "doubleOrNullMember"), v8::Null(isolate));
211 if (impl.hasElementOrNullMember()) {
212 v8Object->Set(v8String(isolate, "elementOrNullMember"), toV8(impl.elementOrNullMember(), creationContext, isolate));
215 if (impl.hasEnumMember()) {
216 v8Object->Set(v8String(isolate, "enumMember"), v8String(isolate, impl.enumMember()));
218 v8Object->Set(v8String(isolate, "enumMember"), v8String(isolate, String("foo")));
221 if (impl.hasLongMember()) {
222 v8Object->Set(v8String(isolate, "longMember"), v8::Integer::New(isolate, impl.longMember()));
224 v8Object->Set(v8String(isolate, "longMember"), v8::Integer::New(isolate, 1));
227 if (impl.hasObjectMember()) {
228 ASSERT(impl.objectMember().isObject());
229 v8Object->Set(v8String(isolate, "objectMember"), impl.objectMember().v8Value());
232 if (impl.hasObjectOrNullMember()) {
233 ASSERT(impl.objectOrNullMember().isObject());
234 v8Object->Set(v8String(isolate, "objectOrNullMember"), impl.objectOrNullMember().v8Value());
237 if (impl.hasStringArrayMember()) {
238 v8Object->Set(v8String(isolate, "stringArrayMember"), v8Array(impl.stringArrayMember(), creationContext, isolate));
241 if (impl.hasStringMember()) {
242 v8Object->Set(v8String(isolate, "stringMember"), v8String(isolate, impl.stringMember()));
245 if (impl.hasStringOrNullMember()) {
246 v8Object->Set(v8String(isolate, "stringOrNullMember"), v8String(isolate, impl.stringOrNullMember()));
248 v8Object->Set(v8String(isolate, "stringOrNullMember"), v8String(isolate, String("default string value")));
251 if (impl.hasStringSequenceMember()) {
252 v8Object->Set(v8String(isolate, "stringSequenceMember"), v8Array(impl.stringSequenceMember(), creationContext, isolate));
255 if (impl.hasTestInterfaceGarbageCollectedMember()) {
256 v8Object->Set(v8String(isolate, "testInterfaceGarbageCollectedMember"), toV8(impl.testInterfaceGarbageCollectedMember(), creationContext, isolate));
259 if (impl.hasTestInterfaceGarbageCollectedOrNullMember()) {
260 v8Object->Set(v8String(isolate, "testInterfaceGarbageCollectedOrNullMember"), toV8(impl.testInterfaceGarbageCollectedOrNullMember(), creationContext, isolate));
263 if (impl.hasTestInterfaceMember()) {
264 v8Object->Set(v8String(isolate, "testInterfaceMember"), toV8(impl.testInterfaceMember(), creationContext, isolate));
267 if (impl.hasTestInterfaceOrNullMember()) {
268 v8Object->Set(v8String(isolate, "testInterfaceOrNullMember"), toV8(impl.testInterfaceOrNullMember(), creationContext, isolate));
271 if (impl.hasTestInterfaceWillBeGarbageCollectedMember()) {
272 v8Object->Set(v8String(isolate, "testInterfaceWillBeGarbageCollectedMember"), toV8(impl.testInterfaceWillBeGarbageCollectedMember(), creationContext, isolate));
275 if (impl.hasTestInterfaceWillBeGarbageCollectedOrNullMember()) {
276 v8Object->Set(v8String(isolate, "testInterfaceWillBeGarbageCollectedOrNullMember"), toV8(impl.testInterfaceWillBeGarbageCollectedOrNullMember(), creationContext, isolate));