1 : /* THIS FILE IS AUTOGENERATED - DO NOT EDIT */
2 :
3 : #include "DOMSVGLengthList.h"
4 : #include "DOMSVGNumberList.h"
5 : #include "DOMSVGPathSegList.h"
6 : #include "DOMSVGPointList.h"
7 : #include "DOMSVGTransformList.h"
8 : #include "nsClientRect.h"
9 : #include "nsDOMFile.h"
10 : #include "nsDOMSettableTokenList.h"
11 : #include "nsDOMTokenList.h"
12 : #include "nsHTMLSelectElement.h"
13 : #include "nsIContent.h"
14 : #include "nsIDOMClientRect.h"
15 : #include "nsIDOMFile.h"
16 : #include "nsIDOMHTMLOptionElement.h"
17 : #include "nsIDOMNode.h"
18 : #include "nsIDOMPaintRequest.h"
19 : #include "nsIDOMSVGLength.h"
20 : #include "nsIDOMSVGMatrix.h"
21 : #include "nsIDOMSVGNumber.h"
22 : #include "nsIDOMSVGPathSeg.h"
23 : #include "nsIDOMSVGPoint.h"
24 : #include "nsIDOMSVGTransform.h"
25 : #include "nsIHTMLCollection.h"
26 : #include "nsINodeList.h"
27 : #include "nsISupports.h"
28 : #include "nsIVariant.h"
29 : #include "nsPaintRequest.h"
30 :
31 : namespace mozilla {
32 : namespace dom {
33 : namespace binding {
34 :
35 : // Property name ids
36 :
37 1464 : static jsid s_add_id = JSID_VOID;
38 1464 : static jsid s_appendItem_id = JSID_VOID;
39 1464 : static jsid s_clear_id = JSID_VOID;
40 1464 : static jsid s_consolidate_id = JSID_VOID;
41 1464 : static jsid s_contains_id = JSID_VOID;
42 1464 : static jsid s_createSVGTransformFromMatrix_id = JSID_VOID;
43 1464 : static jsid s_getItem_id = JSID_VOID;
44 1464 : static jsid s_getItemAt_id = JSID_VOID;
45 1464 : static jsid s_initialize_id = JSID_VOID;
46 1464 : static jsid s_insertItemBefore_id = JSID_VOID;
47 1464 : static jsid s_item_id = JSID_VOID;
48 1464 : static jsid s_namedItem_id = JSID_VOID;
49 1464 : static jsid s_numberOfItems_id = JSID_VOID;
50 1464 : static jsid s_remove_id = JSID_VOID;
51 1464 : static jsid s_removeItem_id = JSID_VOID;
52 1464 : static jsid s_replaceItem_id = JSID_VOID;
53 1464 : static jsid s_selectedIndex_id = JSID_VOID;
54 1464 : static jsid s_setOption_id = JSID_VOID;
55 1464 : static jsid s_toString_id = JSID_VOID;
56 1464 : static jsid s_toggle_id = JSID_VOID;
57 1464 : static jsid s_value_id = JSID_VOID;
58 :
59 : bool
60 1404 : DefinePropertyStaticJSVals(JSContext *cx)
61 : {
62 1404 : return SET_JSID_TO_STRING(cx, add) &&
63 1404 : SET_JSID_TO_STRING(cx, appendItem) &&
64 1404 : SET_JSID_TO_STRING(cx, clear) &&
65 1404 : SET_JSID_TO_STRING(cx, consolidate) &&
66 1404 : SET_JSID_TO_STRING(cx, contains) &&
67 1404 : SET_JSID_TO_STRING(cx, createSVGTransformFromMatrix) &&
68 1404 : SET_JSID_TO_STRING(cx, getItem) &&
69 1404 : SET_JSID_TO_STRING(cx, getItemAt) &&
70 1404 : SET_JSID_TO_STRING(cx, initialize) &&
71 1404 : SET_JSID_TO_STRING(cx, insertItemBefore) &&
72 1404 : SET_JSID_TO_STRING(cx, item) &&
73 1404 : SET_JSID_TO_STRING(cx, namedItem) &&
74 1404 : SET_JSID_TO_STRING(cx, numberOfItems) &&
75 1404 : SET_JSID_TO_STRING(cx, remove) &&
76 1404 : SET_JSID_TO_STRING(cx, removeItem) &&
77 1404 : SET_JSID_TO_STRING(cx, replaceItem) &&
78 1404 : SET_JSID_TO_STRING(cx, selectedIndex) &&
79 1404 : SET_JSID_TO_STRING(cx, setOption) &&
80 1404 : SET_JSID_TO_STRING(cx, toString) &&
81 1404 : SET_JSID_TO_STRING(cx, toggle) &&
82 28080 : SET_JSID_TO_STRING(cx, value);
83 : }
84 :
85 : // Typedefs
86 :
87 : // DOMTokenList
88 :
89 : typedef ListClass<nsDOMTokenList, Ops<Getter<nsString> > > DOMTokenListClass;
90 : typedef ListBase<DOMTokenListClass> DOMTokenListWrapper;
91 :
92 :
93 : // HTMLCollection
94 :
95 : typedef ListClass<nsIHTMLCollection, Ops<Getter<nsIContent *> >, Ops<Getter<nsISupportsResult> > > HTMLCollectionClass;
96 : typedef ListBase<HTMLCollectionClass> HTMLCollectionWrapper;
97 :
98 :
99 : // ClientRectList
100 :
101 : typedef ListClass<nsClientRectList, Ops<Getter<nsIDOMClientRect *> > > ClientRectListClass;
102 : typedef ListBase<ClientRectListClass> ClientRectListWrapper;
103 :
104 :
105 : // DOMSettableTokenList
106 :
107 : typedef DerivedListClass<nsDOMSettableTokenList, DOMTokenListWrapper, Ops<Getter<nsString> > > DOMSettableTokenListClass;
108 : typedef ListBase<DOMSettableTokenListClass> DOMSettableTokenListWrapper;
109 :
110 :
111 : // FileList
112 :
113 : typedef ListClass<nsDOMFileList, Ops<Getter<nsIDOMFile *> > > FileListClass;
114 : typedef ListBase<FileListClass> FileListWrapper;
115 :
116 :
117 : // HTMLOptionsCollection
118 :
119 : typedef DerivedListClass<nsHTMLOptionCollection, HTMLCollectionWrapper, Ops<Getter<nsIContent *>, Setter<nsIDOMHTMLOptionElement *> >, Ops<Getter<nsISupportsResult> > > HTMLOptionsCollectionClass;
120 : typedef ListBase<HTMLOptionsCollectionClass> HTMLOptionsCollectionWrapper;
121 :
122 :
123 : // NodeList
124 :
125 : typedef ListClass<nsINodeList, Ops<Getter<nsIContent *> > > NodeListClass;
126 : typedef ListBase<NodeListClass> NodeListWrapper;
127 :
128 :
129 : // PaintRequestList
130 :
131 : typedef ListClass<nsPaintRequestList, Ops<Getter<nsIDOMPaintRequest *> > > PaintRequestListClass;
132 : typedef ListBase<PaintRequestListClass> PaintRequestListWrapper;
133 :
134 :
135 : // SVGLengthList
136 :
137 : typedef ListClass<mozilla::DOMSVGLengthList, Ops<Getter<nsIDOMSVGLength *> > > SVGLengthListClass;
138 : typedef ListBase<SVGLengthListClass> SVGLengthListWrapper;
139 :
140 :
141 : // SVGNumberList
142 :
143 : typedef ListClass<mozilla::DOMSVGNumberList, Ops<Getter<nsIDOMSVGNumber *> > > SVGNumberListClass;
144 : typedef ListBase<SVGNumberListClass> SVGNumberListWrapper;
145 :
146 :
147 : // SVGPathSegList
148 :
149 : typedef ListClass<mozilla::DOMSVGPathSegList, Ops<Getter<nsIDOMSVGPathSeg *> > > SVGPathSegListClass;
150 : typedef ListBase<SVGPathSegListClass> SVGPathSegListWrapper;
151 :
152 :
153 : // SVGPointList
154 :
155 : typedef ListClass<mozilla::DOMSVGPointList, Ops<Getter<nsIDOMSVGPoint *> > > SVGPointListClass;
156 : typedef ListBase<SVGPointListClass> SVGPointListWrapper;
157 :
158 :
159 : // SVGTransformList
160 :
161 : typedef ListClass<mozilla::DOMSVGTransformList, Ops<Getter<nsIDOMSVGTransform *> > > SVGTransformListClass;
162 : typedef ListBase<SVGTransformListClass> SVGTransformListWrapper;
163 :
164 :
165 : // Implementation
166 :
167 : // DOMTokenList
168 :
169 : template<>
170 : js::Class DOMTokenListWrapper::sInterfaceClass = {
171 : "DOMTokenList",
172 : 0,
173 : JS_PropertyStub, /* addProperty */
174 : JS_PropertyStub, /* delProperty */
175 : JS_PropertyStub, /* getProperty */
176 : JS_StrictPropertyStub, /* setProperty */
177 : JS_EnumerateStub,
178 : JS_ResolveStub,
179 : JS_ConvertStub,
180 : JS_FinalizeStub,
181 : NULL, /* checkAccess */
182 : NULL, /* call */
183 : NULL, /* construct */
184 : interface_hasInstance
185 : };
186 :
187 : template<>
188 : bool
189 0 : DOMTokenListWrapper::objIsList(JSObject *obj)
190 : {
191 0 : if (!js::IsProxy(obj))
192 0 : return false;
193 0 : js::ProxyHandler *handler = js::GetProxyHandler(obj);
194 0 : return proxyHandlerIsList(handler) ||
195 0 : DOMSettableTokenListWrapper::proxyHandlerIsList(handler);
196 : }
197 :
198 : template<>
199 : nsDOMTokenList*
200 0 : DOMTokenListWrapper::getNative(JSObject *obj)
201 : {
202 0 : js::ProxyHandler *handler = js::GetProxyHandler(obj);
203 0 : if (proxyHandlerIsList(handler))
204 0 : return static_cast<nsDOMTokenList*>(js::GetProxyPrivate(obj).toPrivate());
205 0 : if (DOMSettableTokenListWrapper::proxyHandlerIsList(handler))
206 0 : return DOMSettableTokenListWrapper::getNative(obj);
207 :
208 0 : NS_RUNTIMEABORT("Unknown list type!");
209 0 : return NULL;
210 : }
211 :
212 : template<>
213 : JSObject *
214 0 : DOMTokenListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
215 : {
216 0 : if (!scope->NewDOMBindingsEnabled()) {
217 0 : *enabled = false;
218 0 : return NULL;
219 : }
220 :
221 0 : *enabled = true;
222 0 : return getPrototype(cx, scope);
223 : }
224 :
225 : template<>
226 : JSString *
227 0 : DOMTokenListWrapper::obj_toString(JSContext *cx, JSObject *proxy)
228 : {
229 0 : nsString result;
230 0 : nsresult rv = DOMTokenListWrapper::getListObject(proxy)->ToString(result);
231 : JSString *jsresult;
232 0 : return NS_SUCCEEDED(rv) && xpc_qsStringToJsstring(cx, result, &jsresult) ? jsresult : NULL;
233 : }
234 :
235 : template<>
236 : bool
237 0 : DOMTokenListWrapper::getItemAt(nsDOMTokenList *list, uint32_t index, nsString &item)
238 : {
239 0 : list->Item(index, item);
240 0 : return !DOMStringIsNull(item);
241 : }
242 :
243 : static JSBool
244 0 : DOMTokenList_Add(JSContext *cx, unsigned argc, jsval *vp)
245 : {
246 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
247 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
248 0 : if (!obj)
249 0 : return JS_FALSE;
250 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
251 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
252 0 : return false;
253 0 : if (argc < 1)
254 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
255 0 : jsval *argv = JS_ARGV(cx, vp);
256 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eStringify, xpc_qsDOMString::eDefaultUndefinedBehavior);
257 0 : if (!arg0.IsValid())
258 0 : return JS_FALSE;
259 : nsresult rv;
260 0 : rv = DOMTokenListWrapper::getListObject(obj)->Add(arg0);
261 0 : if (NS_FAILED(rv))
262 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "add");
263 0 : *vp = JSVAL_VOID;
264 0 : return JS_TRUE;
265 : }
266 :
267 : static JSBool
268 0 : DOMTokenList_Contains(JSContext *cx, unsigned argc, jsval *vp)
269 : {
270 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
271 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
272 0 : if (!obj)
273 0 : return JS_FALSE;
274 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
275 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
276 0 : return false;
277 0 : if (argc < 1)
278 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
279 0 : jsval *argv = JS_ARGV(cx, vp);
280 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eStringify, xpc_qsDOMString::eDefaultUndefinedBehavior);
281 0 : if (!arg0.IsValid())
282 0 : return JS_FALSE;
283 : nsresult rv;
284 : bool result;
285 0 : rv = DOMTokenListWrapper::getListObject(obj)->Contains(arg0, &result);
286 0 : if (NS_FAILED(rv))
287 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "contains");
288 0 : *vp = (result ? JSVAL_TRUE : JSVAL_FALSE);
289 0 : return JS_TRUE;
290 : }
291 :
292 : static JSBool
293 0 : DOMTokenList_Item(JSContext *cx, unsigned argc, jsval *vp)
294 : {
295 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
296 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
297 0 : if (!obj)
298 0 : return JS_FALSE;
299 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
300 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
301 0 : return false;
302 0 : if (argc < 1)
303 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
304 0 : jsval *argv = JS_ARGV(cx, vp);
305 : uint32_t arg0;
306 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
307 0 : return JS_FALSE;
308 : nsresult rv;
309 0 : nsString result;
310 0 : rv = DOMTokenListWrapper::getListObject(obj)->Item(arg0, result);
311 0 : if (NS_FAILED(rv))
312 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "item");
313 0 : return xpc::StringToJsval(cx, result, vp);
314 : }
315 :
316 : static JSBool
317 0 : DOMTokenList_Remove(JSContext *cx, unsigned argc, jsval *vp)
318 : {
319 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
320 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
321 0 : if (!obj)
322 0 : return JS_FALSE;
323 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
324 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
325 0 : return false;
326 0 : if (argc < 1)
327 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
328 0 : jsval *argv = JS_ARGV(cx, vp);
329 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eStringify, xpc_qsDOMString::eDefaultUndefinedBehavior);
330 0 : if (!arg0.IsValid())
331 0 : return JS_FALSE;
332 : nsresult rv;
333 0 : rv = DOMTokenListWrapper::getListObject(obj)->Remove(arg0);
334 0 : if (NS_FAILED(rv))
335 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "remove");
336 0 : *vp = JSVAL_VOID;
337 0 : return JS_TRUE;
338 : }
339 :
340 : static JSBool
341 0 : DOMTokenList_ToString(JSContext *cx, unsigned argc, jsval *vp)
342 : {
343 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
344 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
345 0 : if (!obj)
346 0 : return JS_FALSE;
347 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
348 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
349 0 : return false;
350 : nsresult rv;
351 0 : nsString result;
352 0 : rv = DOMTokenListWrapper::getListObject(obj)->ToString(result);
353 0 : if (NS_FAILED(rv))
354 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "toString");
355 0 : return xpc::StringToJsval(cx, result, vp);
356 : }
357 :
358 : static JSBool
359 0 : DOMTokenList_Toggle(JSContext *cx, unsigned argc, jsval *vp)
360 : {
361 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
362 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
363 0 : if (!obj)
364 0 : return JS_FALSE;
365 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
366 0 : if (!DOMTokenListWrapper::instanceIsListObject(cx, obj, callee))
367 0 : return false;
368 0 : if (argc < 1)
369 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
370 0 : jsval *argv = JS_ARGV(cx, vp);
371 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eStringify, xpc_qsDOMString::eDefaultUndefinedBehavior);
372 0 : if (!arg0.IsValid())
373 0 : return JS_FALSE;
374 : nsresult rv;
375 : bool result;
376 0 : rv = DOMTokenListWrapper::getListObject(obj)->Toggle(arg0, &result);
377 0 : if (NS_FAILED(rv))
378 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMTokenList", "toggle");
379 0 : *vp = (result ? JSVAL_TRUE : JSVAL_FALSE);
380 0 : return JS_TRUE;
381 : }
382 :
383 : template<>
384 : DOMTokenListWrapper::Properties DOMTokenListWrapper::sProtoProperties[] = {
385 : { s_length_id, length_getter, NULL }
386 : };
387 :
388 : template<>
389 1464 : size_t DOMTokenListWrapper::sProtoPropertiesCount = ArrayLength(DOMTokenListWrapper::sProtoProperties);
390 :
391 : template<>
392 : DOMTokenListWrapper::Methods DOMTokenListWrapper::sProtoMethods[] = {
393 : { s_add_id, DOMTokenList_Add, 1 },
394 : { s_contains_id, DOMTokenList_Contains, 1 },
395 : { s_item_id, DOMTokenList_Item, 1 },
396 : { s_remove_id, DOMTokenList_Remove, 1 },
397 : { s_toString_id, DOMTokenList_ToString, 0 },
398 : { s_toggle_id, DOMTokenList_Toggle, 1 }
399 : };
400 :
401 : template<>
402 1464 : size_t DOMTokenListWrapper::sProtoMethodsCount = ArrayLength(DOMTokenListWrapper::sProtoMethods);
403 :
404 : template class ListBase<DOMTokenListClass>;
405 :
406 : JSObject*
407 0 : DOMTokenList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsDOMTokenList *list, nsWrapperCache *cache, bool *triedToWrap)
408 : {
409 0 : return DOMTokenListWrapper::create(cx, scope, list, cache, triedToWrap);
410 : }
411 :
412 : bool
413 0 : DOMTokenList::objIsWrapper(JSObject *obj)
414 : {
415 0 : return DOMTokenListWrapper::objIsList(obj);
416 : }
417 :
418 : nsDOMTokenList*
419 0 : DOMTokenList::getNative(JSObject *obj)
420 : {
421 0 : return DOMTokenListWrapper::getListObject(obj);
422 : }
423 :
424 : // HTMLCollection
425 :
426 : template<>
427 : js::Class HTMLCollectionWrapper::sInterfaceClass = {
428 : "HTMLCollection",
429 : 0,
430 : JS_PropertyStub, /* addProperty */
431 : JS_PropertyStub, /* delProperty */
432 : JS_PropertyStub, /* getProperty */
433 : JS_StrictPropertyStub, /* setProperty */
434 : JS_EnumerateStub,
435 : JS_ResolveStub,
436 : JS_ConvertStub,
437 : JS_FinalizeStub,
438 : NULL, /* checkAccess */
439 : NULL, /* call */
440 : NULL, /* construct */
441 : interface_hasInstance
442 : };
443 :
444 : template<>
445 : bool
446 17865 : HTMLCollectionWrapper::objIsList(JSObject *obj)
447 : {
448 17865 : if (!js::IsProxy(obj))
449 0 : return false;
450 17865 : js::ProxyHandler *handler = js::GetProxyHandler(obj);
451 17865 : return proxyHandlerIsList(handler) ||
452 17865 : HTMLOptionsCollectionWrapper::proxyHandlerIsList(handler);
453 : }
454 :
455 : template<>
456 : nsIHTMLCollection*
457 9103 : HTMLCollectionWrapper::getNative(JSObject *obj)
458 : {
459 9103 : js::ProxyHandler *handler = js::GetProxyHandler(obj);
460 9103 : if (proxyHandlerIsList(handler))
461 9103 : return static_cast<nsIHTMLCollection*>(js::GetProxyPrivate(obj).toPrivate());
462 0 : if (HTMLOptionsCollectionWrapper::proxyHandlerIsList(handler))
463 0 : return HTMLOptionsCollectionWrapper::getNative(obj);
464 :
465 0 : NS_RUNTIMEABORT("Unknown list type!");
466 0 : return NULL;
467 : }
468 :
469 : template<>
470 : bool
471 3141 : HTMLCollectionWrapper::getItemAt(nsIHTMLCollection *list, uint32_t index, nsIContent * &item)
472 : {
473 3141 : item = list->GetNodeAt(index);
474 3141 : return !!item;
475 : }
476 :
477 : template<>
478 : bool
479 0 : HTMLCollectionWrapper::getNamedItem(nsIHTMLCollection *list, const nsAString& index, nsISupportsResult &item)
480 : {
481 0 : item.mResult = list->GetNamedItem(index, &item.mCache);
482 0 : return !!item.mResult;
483 : }
484 :
485 : static JSBool
486 111 : HTMLCollection_Item(JSContext *cx, unsigned argc, jsval *vp)
487 : {
488 111 : XPC_QS_ASSERT_CONTEXT_OK(cx);
489 111 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
490 111 : if (!obj)
491 0 : return JS_FALSE;
492 111 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
493 111 : if (!HTMLCollectionWrapper::instanceIsListObject(cx, obj, callee))
494 0 : return false;
495 111 : if (argc < 1)
496 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
497 111 : jsval *argv = JS_ARGV(cx, vp);
498 : uint32_t arg0;
499 111 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
500 0 : return JS_FALSE;
501 : nsIContent *result;
502 111 : result = HTMLCollectionWrapper::getListObject(obj)->GetNodeAt(arg0);
503 111 : if (!result) {
504 0 : *vp = JSVAL_NULL;
505 0 : return JS_TRUE;
506 : }
507 111 : return Wrap(cx, obj, result, vp);
508 : }
509 :
510 : static JSBool
511 0 : HTMLCollection_NamedItem(JSContext *cx, unsigned argc, jsval *vp)
512 : {
513 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
514 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
515 0 : if (!obj)
516 0 : return JS_FALSE;
517 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
518 0 : if (!HTMLCollectionWrapper::instanceIsListObject(cx, obj, callee))
519 0 : return false;
520 0 : if (argc < 1)
521 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
522 0 : jsval *argv = JS_ARGV(cx, vp);
523 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eDefaultNullBehavior, xpc_qsDOMString::eDefaultUndefinedBehavior);
524 0 : if (!arg0.IsValid())
525 0 : return JS_FALSE;
526 : nsWrapperCache *cache;
527 : nsISupports *result;
528 0 : result = HTMLCollectionWrapper::getListObject(obj)->GetNamedItem(arg0, &cache);
529 0 : if (!result) {
530 0 : *vp = JSVAL_NULL;
531 0 : return JS_TRUE;
532 : }
533 0 : return Wrap(cx, obj, result, cache, vp);
534 : }
535 :
536 : template<>
537 : HTMLCollectionWrapper::Properties HTMLCollectionWrapper::sProtoProperties[] = {
538 : { s_length_id, length_getter, NULL }
539 : };
540 :
541 : template<>
542 1464 : size_t HTMLCollectionWrapper::sProtoPropertiesCount = ArrayLength(HTMLCollectionWrapper::sProtoProperties);
543 :
544 : template<>
545 : HTMLCollectionWrapper::Methods HTMLCollectionWrapper::sProtoMethods[] = {
546 : { s_item_id, HTMLCollection_Item, 1 },
547 : { s_namedItem_id, HTMLCollection_NamedItem, 1 }
548 : };
549 :
550 : template<>
551 1464 : size_t HTMLCollectionWrapper::sProtoMethodsCount = ArrayLength(HTMLCollectionWrapper::sProtoMethods);
552 :
553 : template class ListBase<HTMLCollectionClass>;
554 :
555 : JSObject*
556 2684 : HTMLCollection::create(JSContext *cx, XPCWrappedNativeScope *scope, nsIHTMLCollection *list, nsWrapperCache *cache, bool *triedToWrap)
557 : {
558 2684 : return HTMLCollectionWrapper::create(cx, scope, list, cache, triedToWrap);
559 : }
560 :
561 : bool
562 0 : HTMLCollection::objIsWrapper(JSObject *obj)
563 : {
564 0 : return HTMLCollectionWrapper::objIsList(obj);
565 : }
566 :
567 : nsIHTMLCollection*
568 0 : HTMLCollection::getNative(JSObject *obj)
569 : {
570 0 : return HTMLCollectionWrapper::getListObject(obj);
571 : }
572 :
573 : // ClientRectList
574 :
575 : template<>
576 : js::Class ClientRectListWrapper::sInterfaceClass = {
577 : "ClientRectList",
578 : 0,
579 : JS_PropertyStub, /* addProperty */
580 : JS_PropertyStub, /* delProperty */
581 : JS_PropertyStub, /* getProperty */
582 : JS_StrictPropertyStub, /* setProperty */
583 : JS_EnumerateStub,
584 : JS_ResolveStub,
585 : JS_ConvertStub,
586 : JS_FinalizeStub,
587 : NULL, /* checkAccess */
588 : NULL, /* call */
589 : NULL, /* construct */
590 : interface_hasInstance
591 : };
592 :
593 : template<>
594 : JSObject *
595 0 : ClientRectListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
596 : {
597 0 : if (!scope->NewDOMBindingsEnabled()) {
598 0 : *enabled = false;
599 0 : return NULL;
600 : }
601 :
602 0 : *enabled = true;
603 0 : return getPrototype(cx, scope);
604 : }
605 :
606 : template<>
607 : bool
608 0 : ClientRectListWrapper::getItemAt(nsClientRectList *list, uint32_t index, nsIDOMClientRect * &item)
609 : {
610 0 : item = list->GetItemAt(index);
611 0 : return !!item;
612 : }
613 :
614 : static JSBool
615 0 : ClientRectList_Item(JSContext *cx, unsigned argc, jsval *vp)
616 : {
617 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
618 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
619 0 : if (!obj)
620 0 : return JS_FALSE;
621 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
622 0 : if (!ClientRectListWrapper::instanceIsListObject(cx, obj, callee))
623 0 : return false;
624 0 : if (argc < 1)
625 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
626 0 : jsval *argv = JS_ARGV(cx, vp);
627 : uint32_t arg0;
628 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
629 0 : return JS_FALSE;
630 : nsIDOMClientRect *result;
631 0 : result = ClientRectListWrapper::getListObject(obj)->GetItemAt(arg0);
632 0 : if (!result) {
633 0 : *vp = JSVAL_NULL;
634 0 : return JS_TRUE;
635 : }
636 0 : return Wrap(cx, obj, result, vp);
637 : }
638 :
639 : template<>
640 : ClientRectListWrapper::Properties ClientRectListWrapper::sProtoProperties[] = {
641 : { s_length_id, length_getter, NULL }
642 : };
643 :
644 : template<>
645 1464 : size_t ClientRectListWrapper::sProtoPropertiesCount = ArrayLength(ClientRectListWrapper::sProtoProperties);
646 :
647 : template<>
648 : ClientRectListWrapper::Methods ClientRectListWrapper::sProtoMethods[] = {
649 : { s_item_id, ClientRectList_Item, 1 }
650 : };
651 :
652 : template<>
653 1464 : size_t ClientRectListWrapper::sProtoMethodsCount = ArrayLength(ClientRectListWrapper::sProtoMethods);
654 :
655 : template class ListBase<ClientRectListClass>;
656 :
657 : JSObject*
658 0 : ClientRectList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsClientRectList *list, nsWrapperCache *cache, bool *triedToWrap)
659 : {
660 0 : return ClientRectListWrapper::create(cx, scope, list, cache, triedToWrap);
661 : }
662 :
663 : bool
664 0 : ClientRectList::objIsWrapper(JSObject *obj)
665 : {
666 0 : return ClientRectListWrapper::objIsList(obj);
667 : }
668 :
669 : nsClientRectList*
670 0 : ClientRectList::getNative(JSObject *obj)
671 : {
672 0 : return ClientRectListWrapper::getListObject(obj);
673 : }
674 :
675 : // DOMSettableTokenList
676 :
677 : template<>
678 : js::Class DOMSettableTokenListWrapper::sInterfaceClass = {
679 : "DOMSettableTokenList",
680 : 0,
681 : JS_PropertyStub, /* addProperty */
682 : JS_PropertyStub, /* delProperty */
683 : JS_PropertyStub, /* getProperty */
684 : JS_StrictPropertyStub, /* setProperty */
685 : JS_EnumerateStub,
686 : JS_ResolveStub,
687 : JS_ConvertStub,
688 : JS_FinalizeStub,
689 : NULL, /* checkAccess */
690 : NULL, /* call */
691 : NULL, /* construct */
692 : interface_hasInstance
693 : };
694 :
695 : template<>
696 : JSObject *
697 0 : DOMSettableTokenListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
698 : {
699 0 : if (!scope->NewDOMBindingsEnabled()) {
700 0 : *enabled = false;
701 0 : return NULL;
702 : }
703 :
704 0 : *enabled = true;
705 0 : return getPrototype(cx, scope);
706 : }
707 :
708 : template<>
709 : JSString *
710 0 : DOMSettableTokenListWrapper::obj_toString(JSContext *cx, JSObject *proxy)
711 : {
712 0 : nsString result;
713 0 : nsresult rv = DOMSettableTokenListWrapper::getListObject(proxy)->ToString(result);
714 : JSString *jsresult;
715 0 : return NS_SUCCEEDED(rv) && xpc_qsStringToJsstring(cx, result, &jsresult) ? jsresult : NULL;
716 : }
717 :
718 : template<>
719 : bool
720 0 : DOMSettableTokenListWrapper::getItemAt(nsDOMSettableTokenList *list, uint32_t index, nsString &item)
721 : {
722 0 : list->Item(index, item);
723 0 : return !DOMStringIsNull(item);
724 : }
725 :
726 : static JSBool
727 0 : DOMSettableTokenList_GetValue(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
728 : {
729 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
730 0 : if (!DOMSettableTokenListWrapper::instanceIsListObject(cx, obj, NULL))
731 0 : return false;
732 : nsresult rv;
733 0 : nsString result;
734 0 : rv = DOMSettableTokenListWrapper::getListObject(obj)->GetValue(result);
735 0 : if (NS_FAILED(rv))
736 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMSettableTokenList", "value");
737 0 : return xpc::StringToJsval(cx, result, vp);
738 : }
739 :
740 : static JSBool
741 0 : DOMSettableTokenList_SetValue(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
742 : {
743 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
744 0 : if (!DOMSettableTokenListWrapper::instanceIsListObject(cx, obj, NULL))
745 0 : return false;
746 0 : xpc_qsDOMString arg0(cx, *vp, vp, xpc_qsDOMString::eDefaultNullBehavior, xpc_qsDOMString::eDefaultUndefinedBehavior);
747 0 : if (!arg0.IsValid())
748 0 : return JS_FALSE;
749 : nsresult rv;
750 0 : rv = DOMSettableTokenListWrapper::getListObject(obj)->SetValue(arg0);
751 0 : if (NS_FAILED(rv))
752 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "DOMSettableTokenList", "value");
753 0 : return JS_TRUE;
754 : }
755 :
756 : template<>
757 : DOMSettableTokenListWrapper::Properties DOMSettableTokenListWrapper::sProtoProperties[] = {
758 : { s_value_id, DOMSettableTokenList_GetValue, DOMSettableTokenList_SetValue }
759 : };
760 :
761 : template<>
762 1464 : size_t DOMSettableTokenListWrapper::sProtoPropertiesCount = ArrayLength(DOMSettableTokenListWrapper::sProtoProperties);
763 :
764 : template class ListBase<DOMSettableTokenListClass>;
765 :
766 : JSObject*
767 0 : DOMSettableTokenList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsDOMSettableTokenList *list, nsWrapperCache *cache, bool *triedToWrap)
768 : {
769 0 : return DOMSettableTokenListWrapper::create(cx, scope, list, cache, triedToWrap);
770 : }
771 :
772 : bool
773 0 : DOMSettableTokenList::objIsWrapper(JSObject *obj)
774 : {
775 0 : return DOMSettableTokenListWrapper::objIsList(obj);
776 : }
777 :
778 : nsDOMSettableTokenList*
779 0 : DOMSettableTokenList::getNative(JSObject *obj)
780 : {
781 0 : return DOMSettableTokenListWrapper::getListObject(obj);
782 : }
783 :
784 : // FileList
785 :
786 : template<>
787 : js::Class FileListWrapper::sInterfaceClass = {
788 : "FileList",
789 : 0,
790 : JS_PropertyStub, /* addProperty */
791 : JS_PropertyStub, /* delProperty */
792 : JS_PropertyStub, /* getProperty */
793 : JS_StrictPropertyStub, /* setProperty */
794 : JS_EnumerateStub,
795 : JS_ResolveStub,
796 : JS_ConvertStub,
797 : JS_FinalizeStub,
798 : NULL, /* checkAccess */
799 : NULL, /* call */
800 : NULL, /* construct */
801 : interface_hasInstance
802 : };
803 :
804 : template<>
805 : JSObject *
806 0 : FileListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
807 : {
808 0 : if (!scope->NewDOMBindingsEnabled()) {
809 0 : *enabled = false;
810 0 : return NULL;
811 : }
812 :
813 0 : *enabled = true;
814 0 : return getPrototype(cx, scope);
815 : }
816 :
817 : template<>
818 : bool
819 0 : FileListWrapper::getItemAt(nsDOMFileList *list, uint32_t index, nsIDOMFile * &item)
820 : {
821 0 : item = list->GetItemAt(index);
822 0 : return !!item;
823 : }
824 :
825 : static JSBool
826 0 : FileList_Item(JSContext *cx, unsigned argc, jsval *vp)
827 : {
828 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
829 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
830 0 : if (!obj)
831 0 : return JS_FALSE;
832 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
833 0 : if (!FileListWrapper::instanceIsListObject(cx, obj, callee))
834 0 : return false;
835 0 : if (argc < 1)
836 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
837 0 : jsval *argv = JS_ARGV(cx, vp);
838 : uint32_t arg0;
839 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
840 0 : return JS_FALSE;
841 : nsIDOMFile *result;
842 0 : result = FileListWrapper::getListObject(obj)->GetItemAt(arg0);
843 0 : if (!result) {
844 0 : *vp = JSVAL_NULL;
845 0 : return JS_TRUE;
846 : }
847 0 : return Wrap(cx, obj, result, vp);
848 : }
849 :
850 : template<>
851 : FileListWrapper::Properties FileListWrapper::sProtoProperties[] = {
852 : { s_length_id, length_getter, NULL }
853 : };
854 :
855 : template<>
856 1464 : size_t FileListWrapper::sProtoPropertiesCount = ArrayLength(FileListWrapper::sProtoProperties);
857 :
858 : template<>
859 : FileListWrapper::Methods FileListWrapper::sProtoMethods[] = {
860 : { s_item_id, FileList_Item, 1 }
861 : };
862 :
863 : template<>
864 1464 : size_t FileListWrapper::sProtoMethodsCount = ArrayLength(FileListWrapper::sProtoMethods);
865 :
866 : template class ListBase<FileListClass>;
867 :
868 : JSObject*
869 0 : FileList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsDOMFileList *list, nsWrapperCache *cache, bool *triedToWrap)
870 : {
871 0 : return FileListWrapper::create(cx, scope, list, cache, triedToWrap);
872 : }
873 :
874 : bool
875 0 : FileList::objIsWrapper(JSObject *obj)
876 : {
877 0 : return FileListWrapper::objIsList(obj);
878 : }
879 :
880 : nsDOMFileList*
881 0 : FileList::getNative(JSObject *obj)
882 : {
883 0 : return FileListWrapper::getListObject(obj);
884 : }
885 :
886 : // HTMLOptionsCollection
887 :
888 : template<>
889 : js::Class HTMLOptionsCollectionWrapper::sInterfaceClass = {
890 : "HTMLOptionsCollection",
891 : 0,
892 : JS_PropertyStub, /* addProperty */
893 : JS_PropertyStub, /* delProperty */
894 : JS_PropertyStub, /* getProperty */
895 : JS_StrictPropertyStub, /* setProperty */
896 : JS_EnumerateStub,
897 : JS_ResolveStub,
898 : JS_ConvertStub,
899 : JS_FinalizeStub,
900 : NULL, /* checkAccess */
901 : NULL, /* call */
902 : NULL, /* construct */
903 : interface_hasInstance
904 : };
905 :
906 : template<>
907 : bool
908 0 : HTMLOptionsCollectionWrapper::getItemAt(nsHTMLOptionCollection *list, uint32_t index, nsIContent * &item)
909 : {
910 0 : item = list->GetNodeAt(index);
911 0 : return !!item;
912 : }
913 :
914 : template<>
915 : bool
916 0 : HTMLOptionsCollectionWrapper::setItemAt(JSContext *cx, nsHTMLOptionCollection *list, uint32_t index, nsIDOMHTMLOptionElement * item)
917 : {
918 0 : nsresult rv = list->SetOption(index, item);
919 0 : return NS_SUCCEEDED(rv) ? true : Throw(cx, rv);
920 : }
921 :
922 : template<>
923 : bool
924 0 : HTMLOptionsCollectionWrapper::getNamedItem(nsHTMLOptionCollection *list, const nsAString& index, nsISupportsResult &item)
925 : {
926 0 : item.mResult = list->GetNamedItem(index, &item.mCache);
927 0 : return !!item.mResult;
928 : }
929 :
930 : static JSBool
931 0 : HTMLOptionsCollection_Add(JSContext *cx, unsigned argc, jsval *vp)
932 : {
933 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
934 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
935 0 : if (!obj)
936 0 : return JS_FALSE;
937 0 : XPCCallContext ccx(JS_CALLER, cx, obj, JSVAL_TO_OBJECT(JS_CALLEE(cx, vp)));
938 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
939 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, callee))
940 0 : return false;
941 0 : if (argc < 1)
942 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
943 0 : jsval *argv = JS_ARGV(cx, vp);
944 : nsresult rv;
945 : nsIDOMHTMLOptionElement *arg0;
946 0 : xpc_qsSelfRef arg0ref;
947 0 : rv = xpc_qsUnwrapArg<nsIDOMHTMLOptionElement>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
948 0 : if (NS_FAILED(rv)) {
949 0 : xpc_qsThrowBadArgWithCcx(ccx, rv, 0);
950 0 : return JS_FALSE;
951 : }
952 0 : nsCOMPtr<nsIVariant> arg1(already_AddRefed<nsIVariant>(XPCVariant::newVariant(ccx, (1 < argc ? argv[1] : JSVAL_NULL))));
953 0 : if (!arg1) {
954 0 : xpc_qsThrowBadArgWithCcx(ccx, NS_ERROR_XPC_BAD_CONVERT_JS, 1);
955 0 : return JS_FALSE;
956 : }
957 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->Add(arg0, arg1);
958 0 : if (NS_FAILED(rv))
959 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "add");
960 0 : *vp = JSVAL_VOID;
961 0 : return JS_TRUE;
962 : }
963 :
964 : static JSBool
965 0 : HTMLOptionsCollection_Item(JSContext *cx, unsigned argc, jsval *vp)
966 : {
967 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
968 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
969 0 : if (!obj)
970 0 : return JS_FALSE;
971 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
972 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, callee))
973 0 : return false;
974 0 : if (argc < 1)
975 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
976 0 : jsval *argv = JS_ARGV(cx, vp);
977 : uint32_t arg0;
978 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
979 0 : return JS_FALSE;
980 : nsresult rv;
981 0 : nsCOMPtr<nsIDOMNode> result;
982 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->Item(arg0, getter_AddRefs(result));
983 0 : if (NS_FAILED(rv))
984 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "item");
985 0 : if (!result) {
986 0 : *vp = JSVAL_NULL;
987 0 : return JS_TRUE;
988 : }
989 0 : return Wrap(cx, obj, result, vp);
990 : }
991 :
992 : static JSBool
993 0 : HTMLOptionsCollection_SetLength(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
994 : {
995 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
996 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, NULL))
997 0 : return false;
998 : uint32_t arg0;
999 0 : if (!JS_ValueToECMAUint32(cx, *vp, &arg0))
1000 0 : return JS_FALSE;
1001 : nsresult rv;
1002 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->SetLength(arg0);
1003 0 : if (NS_FAILED(rv))
1004 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "length");
1005 0 : return JS_TRUE;
1006 : }
1007 :
1008 : static JSBool
1009 0 : HTMLOptionsCollection_NamedItem(JSContext *cx, unsigned argc, jsval *vp)
1010 : {
1011 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1012 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1013 0 : if (!obj)
1014 0 : return JS_FALSE;
1015 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1016 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, callee))
1017 0 : return false;
1018 0 : if (argc < 1)
1019 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1020 0 : jsval *argv = JS_ARGV(cx, vp);
1021 0 : xpc_qsDOMString arg0(cx, argv[0], &argv[0], xpc_qsDOMString::eDefaultNullBehavior, xpc_qsDOMString::eDefaultUndefinedBehavior);
1022 0 : if (!arg0.IsValid())
1023 0 : return JS_FALSE;
1024 : nsWrapperCache *cache;
1025 : nsISupports *result;
1026 0 : result = HTMLOptionsCollectionWrapper::getListObject(obj)->GetNamedItem(arg0, &cache);
1027 0 : if (!result) {
1028 0 : *vp = JSVAL_NULL;
1029 0 : return JS_TRUE;
1030 : }
1031 0 : return Wrap(cx, obj, result, cache, vp);
1032 : }
1033 :
1034 : static JSBool
1035 0 : HTMLOptionsCollection_Remove(JSContext *cx, unsigned argc, jsval *vp)
1036 : {
1037 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1038 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1039 0 : if (!obj)
1040 0 : return JS_FALSE;
1041 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1042 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, callee))
1043 0 : return false;
1044 0 : if (argc < 1)
1045 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1046 0 : jsval *argv = JS_ARGV(cx, vp);
1047 : int32_t arg0;
1048 0 : if (!JS_ValueToECMAInt32(cx, argv[0], &arg0))
1049 0 : return JS_FALSE;
1050 : nsresult rv;
1051 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->Remove(arg0);
1052 0 : if (NS_FAILED(rv))
1053 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "remove");
1054 0 : *vp = JSVAL_VOID;
1055 0 : return JS_TRUE;
1056 : }
1057 :
1058 : static JSBool
1059 0 : HTMLOptionsCollection_GetSelectedIndex(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
1060 : {
1061 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1062 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, NULL))
1063 0 : return false;
1064 : nsresult rv;
1065 : PRInt32 result;
1066 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->GetSelectedIndex(&result);
1067 0 : if (NS_FAILED(rv))
1068 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "selectedIndex");
1069 0 : *vp = INT_TO_JSVAL(result);
1070 0 : return JS_TRUE;
1071 : }
1072 :
1073 : static JSBool
1074 0 : HTMLOptionsCollection_SetSelectedIndex(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
1075 : {
1076 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1077 0 : if (!HTMLOptionsCollectionWrapper::instanceIsListObject(cx, obj, NULL))
1078 0 : return false;
1079 : int32_t arg0;
1080 0 : if (!JS_ValueToECMAInt32(cx, *vp, &arg0))
1081 0 : return JS_FALSE;
1082 : nsresult rv;
1083 0 : rv = HTMLOptionsCollectionWrapper::getListObject(obj)->SetSelectedIndex(arg0);
1084 0 : if (NS_FAILED(rv))
1085 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "HTMLOptionsCollection", "selectedIndex");
1086 0 : return JS_TRUE;
1087 : }
1088 :
1089 : template<>
1090 : HTMLOptionsCollectionWrapper::Properties HTMLOptionsCollectionWrapper::sProtoProperties[] = {
1091 : { s_length_id, length_getter, HTMLOptionsCollection_SetLength },
1092 : { s_selectedIndex_id, HTMLOptionsCollection_GetSelectedIndex, HTMLOptionsCollection_SetSelectedIndex }
1093 : };
1094 :
1095 : template<>
1096 1464 : size_t HTMLOptionsCollectionWrapper::sProtoPropertiesCount = ArrayLength(HTMLOptionsCollectionWrapper::sProtoProperties);
1097 :
1098 : template<>
1099 : HTMLOptionsCollectionWrapper::Methods HTMLOptionsCollectionWrapper::sProtoMethods[] = {
1100 : { s_add_id, HTMLOptionsCollection_Add, 2 },
1101 : { s_item_id, HTMLOptionsCollection_Item, 1 },
1102 : { s_namedItem_id, HTMLOptionsCollection_NamedItem, 1 },
1103 : { s_remove_id, HTMLOptionsCollection_Remove, 1 }
1104 : };
1105 :
1106 : template<>
1107 1464 : size_t HTMLOptionsCollectionWrapper::sProtoMethodsCount = ArrayLength(HTMLOptionsCollectionWrapper::sProtoMethods);
1108 :
1109 : template class ListBase<HTMLOptionsCollectionClass>;
1110 :
1111 : JSObject*
1112 0 : HTMLOptionsCollection::create(JSContext *cx, XPCWrappedNativeScope *scope, nsHTMLOptionCollection *list, nsWrapperCache *cache, bool *triedToWrap)
1113 : {
1114 0 : return HTMLOptionsCollectionWrapper::create(cx, scope, list, cache, triedToWrap);
1115 : }
1116 :
1117 : bool
1118 0 : HTMLOptionsCollection::objIsWrapper(JSObject *obj)
1119 : {
1120 0 : return HTMLOptionsCollectionWrapper::objIsList(obj);
1121 : }
1122 :
1123 : nsHTMLOptionCollection*
1124 0 : HTMLOptionsCollection::getNative(JSObject *obj)
1125 : {
1126 0 : return HTMLOptionsCollectionWrapper::getListObject(obj);
1127 : }
1128 :
1129 : // NodeList
1130 :
1131 : template<>
1132 : js::Class NodeListWrapper::sInterfaceClass = {
1133 : "NodeList",
1134 : 0,
1135 : JS_PropertyStub, /* addProperty */
1136 : JS_PropertyStub, /* delProperty */
1137 : JS_PropertyStub, /* getProperty */
1138 : JS_StrictPropertyStub, /* setProperty */
1139 : JS_EnumerateStub,
1140 : JS_ResolveStub,
1141 : JS_ConvertStub,
1142 : JS_FinalizeStub,
1143 : NULL, /* checkAccess */
1144 : NULL, /* call */
1145 : NULL, /* construct */
1146 : interface_hasInstance
1147 : };
1148 :
1149 : template<>
1150 : bool
1151 793 : NodeListWrapper::getItemAt(nsINodeList *list, uint32_t index, nsIContent * &item)
1152 : {
1153 793 : item = list->GetNodeAt(index);
1154 793 : return !!item;
1155 : }
1156 :
1157 : static JSBool
1158 3593 : NodeList_Item(JSContext *cx, unsigned argc, jsval *vp)
1159 : {
1160 3593 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1161 3593 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1162 3593 : if (!obj)
1163 0 : return JS_FALSE;
1164 3593 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1165 3593 : if (!NodeListWrapper::instanceIsListObject(cx, obj, callee))
1166 0 : return false;
1167 3593 : if (argc < 1)
1168 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1169 3593 : jsval *argv = JS_ARGV(cx, vp);
1170 : uint32_t arg0;
1171 3593 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1172 0 : return JS_FALSE;
1173 : nsIContent *result;
1174 3593 : result = NodeListWrapper::getListObject(obj)->GetNodeAt(arg0);
1175 3593 : if (!result) {
1176 0 : *vp = JSVAL_NULL;
1177 0 : return JS_TRUE;
1178 : }
1179 3593 : return Wrap(cx, obj, result, vp);
1180 : }
1181 :
1182 : template<>
1183 : NodeListWrapper::Properties NodeListWrapper::sProtoProperties[] = {
1184 : { s_length_id, length_getter, NULL }
1185 : };
1186 :
1187 : template<>
1188 1464 : size_t NodeListWrapper::sProtoPropertiesCount = ArrayLength(NodeListWrapper::sProtoProperties);
1189 :
1190 : template<>
1191 : NodeListWrapper::Methods NodeListWrapper::sProtoMethods[] = {
1192 : { s_item_id, NodeList_Item, 1 }
1193 : };
1194 :
1195 : template<>
1196 1464 : size_t NodeListWrapper::sProtoMethodsCount = ArrayLength(NodeListWrapper::sProtoMethods);
1197 :
1198 : template class ListBase<NodeListClass>;
1199 :
1200 : JSObject*
1201 1637 : NodeList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsINodeList *list, nsWrapperCache *cache, bool *triedToWrap)
1202 : {
1203 1637 : return NodeListWrapper::create(cx, scope, list, cache, triedToWrap);
1204 : }
1205 :
1206 : bool
1207 0 : NodeList::objIsWrapper(JSObject *obj)
1208 : {
1209 0 : return NodeListWrapper::objIsList(obj);
1210 : }
1211 :
1212 : nsINodeList*
1213 0 : NodeList::getNative(JSObject *obj)
1214 : {
1215 0 : return NodeListWrapper::getListObject(obj);
1216 : }
1217 :
1218 : // PaintRequestList
1219 :
1220 : template<>
1221 : js::Class PaintRequestListWrapper::sInterfaceClass = {
1222 : "PaintRequestList",
1223 : 0,
1224 : JS_PropertyStub, /* addProperty */
1225 : JS_PropertyStub, /* delProperty */
1226 : JS_PropertyStub, /* getProperty */
1227 : JS_StrictPropertyStub, /* setProperty */
1228 : JS_EnumerateStub,
1229 : JS_ResolveStub,
1230 : JS_ConvertStub,
1231 : JS_FinalizeStub,
1232 : NULL, /* checkAccess */
1233 : NULL, /* call */
1234 : NULL, /* construct */
1235 : interface_hasInstance
1236 : };
1237 :
1238 : template<>
1239 : JSObject *
1240 0 : PaintRequestListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
1241 : {
1242 0 : if (!scope->NewDOMBindingsEnabled()) {
1243 0 : *enabled = false;
1244 0 : return NULL;
1245 : }
1246 :
1247 0 : *enabled = true;
1248 0 : return getPrototype(cx, scope);
1249 : }
1250 :
1251 : template<>
1252 : bool
1253 0 : PaintRequestListWrapper::getItemAt(nsPaintRequestList *list, uint32_t index, nsIDOMPaintRequest * &item)
1254 : {
1255 0 : item = list->GetItemAt(index);
1256 0 : return !!item;
1257 : }
1258 :
1259 : static JSBool
1260 0 : PaintRequestList_Item(JSContext *cx, unsigned argc, jsval *vp)
1261 : {
1262 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1263 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1264 0 : if (!obj)
1265 0 : return JS_FALSE;
1266 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1267 0 : if (!PaintRequestListWrapper::instanceIsListObject(cx, obj, callee))
1268 0 : return false;
1269 0 : if (argc < 1)
1270 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1271 0 : jsval *argv = JS_ARGV(cx, vp);
1272 : uint32_t arg0;
1273 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1274 0 : return JS_FALSE;
1275 : nsIDOMPaintRequest *result;
1276 0 : result = PaintRequestListWrapper::getListObject(obj)->GetItemAt(arg0);
1277 0 : if (!result) {
1278 0 : *vp = JSVAL_NULL;
1279 0 : return JS_TRUE;
1280 : }
1281 0 : return Wrap(cx, obj, result, vp);
1282 : }
1283 :
1284 : template<>
1285 : PaintRequestListWrapper::Properties PaintRequestListWrapper::sProtoProperties[] = {
1286 : { s_length_id, length_getter, NULL }
1287 : };
1288 :
1289 : template<>
1290 1464 : size_t PaintRequestListWrapper::sProtoPropertiesCount = ArrayLength(PaintRequestListWrapper::sProtoProperties);
1291 :
1292 : template<>
1293 : PaintRequestListWrapper::Methods PaintRequestListWrapper::sProtoMethods[] = {
1294 : { s_item_id, PaintRequestList_Item, 1 }
1295 : };
1296 :
1297 : template<>
1298 1464 : size_t PaintRequestListWrapper::sProtoMethodsCount = ArrayLength(PaintRequestListWrapper::sProtoMethods);
1299 :
1300 : template class ListBase<PaintRequestListClass>;
1301 :
1302 : JSObject*
1303 0 : PaintRequestList::create(JSContext *cx, XPCWrappedNativeScope *scope, nsPaintRequestList *list, nsWrapperCache *cache, bool *triedToWrap)
1304 : {
1305 0 : return PaintRequestListWrapper::create(cx, scope, list, cache, triedToWrap);
1306 : }
1307 :
1308 : bool
1309 0 : PaintRequestList::objIsWrapper(JSObject *obj)
1310 : {
1311 0 : return PaintRequestListWrapper::objIsList(obj);
1312 : }
1313 :
1314 : nsPaintRequestList*
1315 0 : PaintRequestList::getNative(JSObject *obj)
1316 : {
1317 0 : return PaintRequestListWrapper::getListObject(obj);
1318 : }
1319 :
1320 : // SVGLengthList
1321 :
1322 : template<>
1323 : js::Class SVGLengthListWrapper::sInterfaceClass = {
1324 : "SVGLengthList",
1325 : 0,
1326 : JS_PropertyStub, /* addProperty */
1327 : JS_PropertyStub, /* delProperty */
1328 : JS_PropertyStub, /* getProperty */
1329 : JS_StrictPropertyStub, /* setProperty */
1330 : JS_EnumerateStub,
1331 : JS_ResolveStub,
1332 : JS_ConvertStub,
1333 : JS_FinalizeStub,
1334 : NULL, /* checkAccess */
1335 : NULL, /* call */
1336 : NULL, /* construct */
1337 : interface_hasInstance
1338 : };
1339 :
1340 : template<>
1341 : JSObject *
1342 0 : SVGLengthListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
1343 : {
1344 0 : if (!scope->NewDOMBindingsEnabled()) {
1345 0 : *enabled = false;
1346 0 : return NULL;
1347 : }
1348 :
1349 0 : *enabled = true;
1350 0 : return getPrototype(cx, scope);
1351 : }
1352 :
1353 : template<>
1354 : bool
1355 0 : SVGLengthListWrapper::getItemAt(mozilla::DOMSVGLengthList *list, uint32_t index, nsIDOMSVGLength * &item)
1356 : {
1357 0 : item = list->GetItemAt(index);
1358 0 : return !!item;
1359 : }
1360 :
1361 : static JSBool
1362 0 : SVGLengthList_AppendItem(JSContext *cx, unsigned argc, jsval *vp)
1363 : {
1364 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1365 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1366 0 : if (!obj)
1367 0 : return JS_FALSE;
1368 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1369 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1370 0 : return false;
1371 0 : if (argc < 1)
1372 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1373 0 : jsval *argv = JS_ARGV(cx, vp);
1374 : nsresult rv;
1375 : nsIDOMSVGLength *arg0;
1376 0 : xpc_qsSelfRef arg0ref;
1377 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGLength>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1378 0 : if (NS_FAILED(rv)) {
1379 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1380 0 : return JS_FALSE;
1381 : }
1382 0 : nsCOMPtr<nsIDOMSVGLength> result;
1383 0 : rv = SVGLengthListWrapper::getListObject(obj)->AppendItem(arg0, getter_AddRefs(result));
1384 0 : if (NS_FAILED(rv))
1385 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "appendItem");
1386 0 : if (!result) {
1387 0 : *vp = JSVAL_NULL;
1388 0 : return JS_TRUE;
1389 : }
1390 0 : return Wrap(cx, obj, result, vp);
1391 : }
1392 :
1393 : static JSBool
1394 0 : SVGLengthList_Clear(JSContext *cx, unsigned argc, jsval *vp)
1395 : {
1396 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1397 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1398 0 : if (!obj)
1399 0 : return JS_FALSE;
1400 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1401 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1402 0 : return false;
1403 : nsresult rv;
1404 0 : rv = SVGLengthListWrapper::getListObject(obj)->Clear();
1405 0 : if (NS_FAILED(rv))
1406 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "clear");
1407 0 : *vp = JSVAL_VOID;
1408 0 : return JS_TRUE;
1409 : }
1410 :
1411 : static JSBool
1412 0 : SVGLengthList_GetItem(JSContext *cx, unsigned argc, jsval *vp)
1413 : {
1414 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1415 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1416 0 : if (!obj)
1417 0 : return JS_FALSE;
1418 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1419 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1420 0 : return false;
1421 0 : if (argc < 1)
1422 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1423 0 : jsval *argv = JS_ARGV(cx, vp);
1424 : uint32_t arg0;
1425 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1426 0 : return JS_FALSE;
1427 : nsresult rv;
1428 0 : nsCOMPtr<nsIDOMSVGLength> result;
1429 0 : rv = SVGLengthListWrapper::getListObject(obj)->GetItem(arg0, getter_AddRefs(result));
1430 0 : if (NS_FAILED(rv))
1431 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "getItem");
1432 0 : if (!result) {
1433 0 : *vp = JSVAL_NULL;
1434 0 : return JS_TRUE;
1435 : }
1436 0 : return Wrap(cx, obj, result, vp);
1437 : }
1438 :
1439 : static JSBool
1440 0 : SVGLengthList_Initialize(JSContext *cx, unsigned argc, jsval *vp)
1441 : {
1442 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1443 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1444 0 : if (!obj)
1445 0 : return JS_FALSE;
1446 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1447 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1448 0 : return false;
1449 0 : if (argc < 1)
1450 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1451 0 : jsval *argv = JS_ARGV(cx, vp);
1452 : nsresult rv;
1453 : nsIDOMSVGLength *arg0;
1454 0 : xpc_qsSelfRef arg0ref;
1455 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGLength>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1456 0 : if (NS_FAILED(rv)) {
1457 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1458 0 : return JS_FALSE;
1459 : }
1460 0 : nsCOMPtr<nsIDOMSVGLength> result;
1461 0 : rv = SVGLengthListWrapper::getListObject(obj)->Initialize(arg0, getter_AddRefs(result));
1462 0 : if (NS_FAILED(rv))
1463 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "initialize");
1464 0 : if (!result) {
1465 0 : *vp = JSVAL_NULL;
1466 0 : return JS_TRUE;
1467 : }
1468 0 : return Wrap(cx, obj, result, vp);
1469 : }
1470 :
1471 : static JSBool
1472 0 : SVGLengthList_InsertItemBefore(JSContext *cx, unsigned argc, jsval *vp)
1473 : {
1474 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1475 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1476 0 : if (!obj)
1477 0 : return JS_FALSE;
1478 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1479 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1480 0 : return false;
1481 0 : if (argc < 2)
1482 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1483 0 : jsval *argv = JS_ARGV(cx, vp);
1484 : nsresult rv;
1485 : nsIDOMSVGLength *arg0;
1486 0 : xpc_qsSelfRef arg0ref;
1487 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGLength>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1488 0 : if (NS_FAILED(rv)) {
1489 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1490 0 : return JS_FALSE;
1491 : }
1492 : uint32_t arg1;
1493 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
1494 0 : return JS_FALSE;
1495 0 : nsCOMPtr<nsIDOMSVGLength> result;
1496 0 : rv = SVGLengthListWrapper::getListObject(obj)->InsertItemBefore(arg0, arg1, getter_AddRefs(result));
1497 0 : if (NS_FAILED(rv))
1498 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "insertItemBefore");
1499 0 : if (!result) {
1500 0 : *vp = JSVAL_NULL;
1501 0 : return JS_TRUE;
1502 : }
1503 0 : return Wrap(cx, obj, result, vp);
1504 : }
1505 :
1506 : static JSBool
1507 0 : SVGLengthList_GetNumberOfItems(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
1508 : {
1509 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1510 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, NULL))
1511 0 : return false;
1512 : nsresult rv;
1513 : PRUint32 result;
1514 0 : rv = SVGLengthListWrapper::getListObject(obj)->GetNumberOfItems(&result);
1515 0 : if (NS_FAILED(rv))
1516 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "numberOfItems");
1517 0 : *vp = UINT_TO_JSVAL(result);
1518 0 : return JS_TRUE;
1519 : }
1520 :
1521 : static JSBool
1522 0 : SVGLengthList_RemoveItem(JSContext *cx, unsigned argc, jsval *vp)
1523 : {
1524 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1525 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1526 0 : if (!obj)
1527 0 : return JS_FALSE;
1528 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1529 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1530 0 : return false;
1531 0 : if (argc < 1)
1532 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1533 0 : jsval *argv = JS_ARGV(cx, vp);
1534 : uint32_t arg0;
1535 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1536 0 : return JS_FALSE;
1537 : nsresult rv;
1538 0 : nsCOMPtr<nsIDOMSVGLength> result;
1539 0 : rv = SVGLengthListWrapper::getListObject(obj)->RemoveItem(arg0, getter_AddRefs(result));
1540 0 : if (NS_FAILED(rv))
1541 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "removeItem");
1542 0 : if (!result) {
1543 0 : *vp = JSVAL_NULL;
1544 0 : return JS_TRUE;
1545 : }
1546 0 : return Wrap(cx, obj, result, vp);
1547 : }
1548 :
1549 : static JSBool
1550 0 : SVGLengthList_ReplaceItem(JSContext *cx, unsigned argc, jsval *vp)
1551 : {
1552 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1553 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1554 0 : if (!obj)
1555 0 : return JS_FALSE;
1556 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1557 0 : if (!SVGLengthListWrapper::instanceIsListObject(cx, obj, callee))
1558 0 : return false;
1559 0 : if (argc < 2)
1560 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1561 0 : jsval *argv = JS_ARGV(cx, vp);
1562 : nsresult rv;
1563 : nsIDOMSVGLength *arg0;
1564 0 : xpc_qsSelfRef arg0ref;
1565 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGLength>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1566 0 : if (NS_FAILED(rv)) {
1567 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1568 0 : return JS_FALSE;
1569 : }
1570 : uint32_t arg1;
1571 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
1572 0 : return JS_FALSE;
1573 0 : nsCOMPtr<nsIDOMSVGLength> result;
1574 0 : rv = SVGLengthListWrapper::getListObject(obj)->ReplaceItem(arg0, arg1, getter_AddRefs(result));
1575 0 : if (NS_FAILED(rv))
1576 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGLengthList", "replaceItem");
1577 0 : if (!result) {
1578 0 : *vp = JSVAL_NULL;
1579 0 : return JS_TRUE;
1580 : }
1581 0 : return Wrap(cx, obj, result, vp);
1582 : }
1583 :
1584 : template<>
1585 : SVGLengthListWrapper::Properties SVGLengthListWrapper::sProtoProperties[] = {
1586 : { s_length_id, length_getter, NULL },
1587 : { s_numberOfItems_id, SVGLengthList_GetNumberOfItems, xpc_qsGetterOnlyPropertyStub }
1588 : };
1589 :
1590 : template<>
1591 1464 : size_t SVGLengthListWrapper::sProtoPropertiesCount = ArrayLength(SVGLengthListWrapper::sProtoProperties);
1592 :
1593 : template<>
1594 : SVGLengthListWrapper::Methods SVGLengthListWrapper::sProtoMethods[] = {
1595 : { s_appendItem_id, SVGLengthList_AppendItem, 1 },
1596 : { s_clear_id, SVGLengthList_Clear, 0 },
1597 : { s_getItem_id, SVGLengthList_GetItem, 1 },
1598 : { s_initialize_id, SVGLengthList_Initialize, 1 },
1599 : { s_insertItemBefore_id, SVGLengthList_InsertItemBefore, 2 },
1600 : { s_removeItem_id, SVGLengthList_RemoveItem, 1 },
1601 : { s_replaceItem_id, SVGLengthList_ReplaceItem, 2 }
1602 : };
1603 :
1604 : template<>
1605 1464 : size_t SVGLengthListWrapper::sProtoMethodsCount = ArrayLength(SVGLengthListWrapper::sProtoMethods);
1606 :
1607 : template class ListBase<SVGLengthListClass>;
1608 :
1609 : JSObject*
1610 0 : SVGLengthList::create(JSContext *cx, XPCWrappedNativeScope *scope, mozilla::DOMSVGLengthList *list, nsWrapperCache *cache, bool *triedToWrap)
1611 : {
1612 0 : return SVGLengthListWrapper::create(cx, scope, list, cache, triedToWrap);
1613 : }
1614 :
1615 : bool
1616 0 : SVGLengthList::objIsWrapper(JSObject *obj)
1617 : {
1618 0 : return SVGLengthListWrapper::objIsList(obj);
1619 : }
1620 :
1621 : mozilla::DOMSVGLengthList*
1622 0 : SVGLengthList::getNative(JSObject *obj)
1623 : {
1624 0 : return SVGLengthListWrapper::getListObject(obj);
1625 : }
1626 :
1627 : // SVGNumberList
1628 :
1629 : template<>
1630 : js::Class SVGNumberListWrapper::sInterfaceClass = {
1631 : "SVGNumberList",
1632 : 0,
1633 : JS_PropertyStub, /* addProperty */
1634 : JS_PropertyStub, /* delProperty */
1635 : JS_PropertyStub, /* getProperty */
1636 : JS_StrictPropertyStub, /* setProperty */
1637 : JS_EnumerateStub,
1638 : JS_ResolveStub,
1639 : JS_ConvertStub,
1640 : JS_FinalizeStub,
1641 : NULL, /* checkAccess */
1642 : NULL, /* call */
1643 : NULL, /* construct */
1644 : interface_hasInstance
1645 : };
1646 :
1647 : template<>
1648 : JSObject *
1649 0 : SVGNumberListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
1650 : {
1651 0 : if (!scope->NewDOMBindingsEnabled()) {
1652 0 : *enabled = false;
1653 0 : return NULL;
1654 : }
1655 :
1656 0 : *enabled = true;
1657 0 : return getPrototype(cx, scope);
1658 : }
1659 :
1660 : template<>
1661 : bool
1662 0 : SVGNumberListWrapper::getItemAt(mozilla::DOMSVGNumberList *list, uint32_t index, nsIDOMSVGNumber * &item)
1663 : {
1664 0 : item = list->GetItemAt(index);
1665 0 : return !!item;
1666 : }
1667 :
1668 : static JSBool
1669 0 : SVGNumberList_AppendItem(JSContext *cx, unsigned argc, jsval *vp)
1670 : {
1671 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1672 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1673 0 : if (!obj)
1674 0 : return JS_FALSE;
1675 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1676 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1677 0 : return false;
1678 0 : if (argc < 1)
1679 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1680 0 : jsval *argv = JS_ARGV(cx, vp);
1681 : nsresult rv;
1682 : nsIDOMSVGNumber *arg0;
1683 0 : xpc_qsSelfRef arg0ref;
1684 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGNumber>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1685 0 : if (NS_FAILED(rv)) {
1686 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1687 0 : return JS_FALSE;
1688 : }
1689 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1690 0 : rv = SVGNumberListWrapper::getListObject(obj)->AppendItem(arg0, getter_AddRefs(result));
1691 0 : if (NS_FAILED(rv))
1692 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "appendItem");
1693 0 : if (!result) {
1694 0 : *vp = JSVAL_NULL;
1695 0 : return JS_TRUE;
1696 : }
1697 0 : return Wrap(cx, obj, result, vp);
1698 : }
1699 :
1700 : static JSBool
1701 0 : SVGNumberList_Clear(JSContext *cx, unsigned argc, jsval *vp)
1702 : {
1703 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1704 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1705 0 : if (!obj)
1706 0 : return JS_FALSE;
1707 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1708 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1709 0 : return false;
1710 : nsresult rv;
1711 0 : rv = SVGNumberListWrapper::getListObject(obj)->Clear();
1712 0 : if (NS_FAILED(rv))
1713 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "clear");
1714 0 : *vp = JSVAL_VOID;
1715 0 : return JS_TRUE;
1716 : }
1717 :
1718 : static JSBool
1719 0 : SVGNumberList_GetItem(JSContext *cx, unsigned argc, jsval *vp)
1720 : {
1721 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1722 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1723 0 : if (!obj)
1724 0 : return JS_FALSE;
1725 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1726 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1727 0 : return false;
1728 0 : if (argc < 1)
1729 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1730 0 : jsval *argv = JS_ARGV(cx, vp);
1731 : uint32_t arg0;
1732 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1733 0 : return JS_FALSE;
1734 : nsresult rv;
1735 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1736 0 : rv = SVGNumberListWrapper::getListObject(obj)->GetItem(arg0, getter_AddRefs(result));
1737 0 : if (NS_FAILED(rv))
1738 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "getItem");
1739 0 : if (!result) {
1740 0 : *vp = JSVAL_NULL;
1741 0 : return JS_TRUE;
1742 : }
1743 0 : return Wrap(cx, obj, result, vp);
1744 : }
1745 :
1746 : static JSBool
1747 0 : SVGNumberList_Initialize(JSContext *cx, unsigned argc, jsval *vp)
1748 : {
1749 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1750 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1751 0 : if (!obj)
1752 0 : return JS_FALSE;
1753 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1754 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1755 0 : return false;
1756 0 : if (argc < 1)
1757 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1758 0 : jsval *argv = JS_ARGV(cx, vp);
1759 : nsresult rv;
1760 : nsIDOMSVGNumber *arg0;
1761 0 : xpc_qsSelfRef arg0ref;
1762 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGNumber>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1763 0 : if (NS_FAILED(rv)) {
1764 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1765 0 : return JS_FALSE;
1766 : }
1767 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1768 0 : rv = SVGNumberListWrapper::getListObject(obj)->Initialize(arg0, getter_AddRefs(result));
1769 0 : if (NS_FAILED(rv))
1770 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "initialize");
1771 0 : if (!result) {
1772 0 : *vp = JSVAL_NULL;
1773 0 : return JS_TRUE;
1774 : }
1775 0 : return Wrap(cx, obj, result, vp);
1776 : }
1777 :
1778 : static JSBool
1779 0 : SVGNumberList_InsertItemBefore(JSContext *cx, unsigned argc, jsval *vp)
1780 : {
1781 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1782 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1783 0 : if (!obj)
1784 0 : return JS_FALSE;
1785 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1786 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1787 0 : return false;
1788 0 : if (argc < 2)
1789 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1790 0 : jsval *argv = JS_ARGV(cx, vp);
1791 : nsresult rv;
1792 : nsIDOMSVGNumber *arg0;
1793 0 : xpc_qsSelfRef arg0ref;
1794 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGNumber>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1795 0 : if (NS_FAILED(rv)) {
1796 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1797 0 : return JS_FALSE;
1798 : }
1799 : uint32_t arg1;
1800 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
1801 0 : return JS_FALSE;
1802 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1803 0 : rv = SVGNumberListWrapper::getListObject(obj)->InsertItemBefore(arg0, arg1, getter_AddRefs(result));
1804 0 : if (NS_FAILED(rv))
1805 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "insertItemBefore");
1806 0 : if (!result) {
1807 0 : *vp = JSVAL_NULL;
1808 0 : return JS_TRUE;
1809 : }
1810 0 : return Wrap(cx, obj, result, vp);
1811 : }
1812 :
1813 : static JSBool
1814 0 : SVGNumberList_GetNumberOfItems(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
1815 : {
1816 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1817 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, NULL))
1818 0 : return false;
1819 : nsresult rv;
1820 : PRUint32 result;
1821 0 : rv = SVGNumberListWrapper::getListObject(obj)->GetNumberOfItems(&result);
1822 0 : if (NS_FAILED(rv))
1823 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "numberOfItems");
1824 0 : *vp = UINT_TO_JSVAL(result);
1825 0 : return JS_TRUE;
1826 : }
1827 :
1828 : static JSBool
1829 0 : SVGNumberList_RemoveItem(JSContext *cx, unsigned argc, jsval *vp)
1830 : {
1831 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1832 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1833 0 : if (!obj)
1834 0 : return JS_FALSE;
1835 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1836 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1837 0 : return false;
1838 0 : if (argc < 1)
1839 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1840 0 : jsval *argv = JS_ARGV(cx, vp);
1841 : uint32_t arg0;
1842 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
1843 0 : return JS_FALSE;
1844 : nsresult rv;
1845 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1846 0 : rv = SVGNumberListWrapper::getListObject(obj)->RemoveItem(arg0, getter_AddRefs(result));
1847 0 : if (NS_FAILED(rv))
1848 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "removeItem");
1849 0 : if (!result) {
1850 0 : *vp = JSVAL_NULL;
1851 0 : return JS_TRUE;
1852 : }
1853 0 : return Wrap(cx, obj, result, vp);
1854 : }
1855 :
1856 : static JSBool
1857 0 : SVGNumberList_ReplaceItem(JSContext *cx, unsigned argc, jsval *vp)
1858 : {
1859 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1860 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1861 0 : if (!obj)
1862 0 : return JS_FALSE;
1863 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1864 0 : if (!SVGNumberListWrapper::instanceIsListObject(cx, obj, callee))
1865 0 : return false;
1866 0 : if (argc < 2)
1867 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1868 0 : jsval *argv = JS_ARGV(cx, vp);
1869 : nsresult rv;
1870 : nsIDOMSVGNumber *arg0;
1871 0 : xpc_qsSelfRef arg0ref;
1872 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGNumber>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1873 0 : if (NS_FAILED(rv)) {
1874 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1875 0 : return JS_FALSE;
1876 : }
1877 : uint32_t arg1;
1878 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
1879 0 : return JS_FALSE;
1880 0 : nsCOMPtr<nsIDOMSVGNumber> result;
1881 0 : rv = SVGNumberListWrapper::getListObject(obj)->ReplaceItem(arg0, arg1, getter_AddRefs(result));
1882 0 : if (NS_FAILED(rv))
1883 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGNumberList", "replaceItem");
1884 0 : if (!result) {
1885 0 : *vp = JSVAL_NULL;
1886 0 : return JS_TRUE;
1887 : }
1888 0 : return Wrap(cx, obj, result, vp);
1889 : }
1890 :
1891 : template<>
1892 : SVGNumberListWrapper::Properties SVGNumberListWrapper::sProtoProperties[] = {
1893 : { s_length_id, length_getter, NULL },
1894 : { s_numberOfItems_id, SVGNumberList_GetNumberOfItems, xpc_qsGetterOnlyPropertyStub }
1895 : };
1896 :
1897 : template<>
1898 1464 : size_t SVGNumberListWrapper::sProtoPropertiesCount = ArrayLength(SVGNumberListWrapper::sProtoProperties);
1899 :
1900 : template<>
1901 : SVGNumberListWrapper::Methods SVGNumberListWrapper::sProtoMethods[] = {
1902 : { s_appendItem_id, SVGNumberList_AppendItem, 1 },
1903 : { s_clear_id, SVGNumberList_Clear, 0 },
1904 : { s_getItem_id, SVGNumberList_GetItem, 1 },
1905 : { s_initialize_id, SVGNumberList_Initialize, 1 },
1906 : { s_insertItemBefore_id, SVGNumberList_InsertItemBefore, 2 },
1907 : { s_removeItem_id, SVGNumberList_RemoveItem, 1 },
1908 : { s_replaceItem_id, SVGNumberList_ReplaceItem, 2 }
1909 : };
1910 :
1911 : template<>
1912 1464 : size_t SVGNumberListWrapper::sProtoMethodsCount = ArrayLength(SVGNumberListWrapper::sProtoMethods);
1913 :
1914 : template class ListBase<SVGNumberListClass>;
1915 :
1916 : JSObject*
1917 0 : SVGNumberList::create(JSContext *cx, XPCWrappedNativeScope *scope, mozilla::DOMSVGNumberList *list, nsWrapperCache *cache, bool *triedToWrap)
1918 : {
1919 0 : return SVGNumberListWrapper::create(cx, scope, list, cache, triedToWrap);
1920 : }
1921 :
1922 : bool
1923 0 : SVGNumberList::objIsWrapper(JSObject *obj)
1924 : {
1925 0 : return SVGNumberListWrapper::objIsList(obj);
1926 : }
1927 :
1928 : mozilla::DOMSVGNumberList*
1929 0 : SVGNumberList::getNative(JSObject *obj)
1930 : {
1931 0 : return SVGNumberListWrapper::getListObject(obj);
1932 : }
1933 :
1934 : // SVGPathSegList
1935 :
1936 : template<>
1937 : js::Class SVGPathSegListWrapper::sInterfaceClass = {
1938 : "SVGPathSegList",
1939 : 0,
1940 : JS_PropertyStub, /* addProperty */
1941 : JS_PropertyStub, /* delProperty */
1942 : JS_PropertyStub, /* getProperty */
1943 : JS_StrictPropertyStub, /* setProperty */
1944 : JS_EnumerateStub,
1945 : JS_ResolveStub,
1946 : JS_ConvertStub,
1947 : JS_FinalizeStub,
1948 : NULL, /* checkAccess */
1949 : NULL, /* call */
1950 : NULL, /* construct */
1951 : interface_hasInstance
1952 : };
1953 :
1954 : template<>
1955 : JSObject *
1956 0 : SVGPathSegListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
1957 : {
1958 0 : if (!scope->NewDOMBindingsEnabled()) {
1959 0 : *enabled = false;
1960 0 : return NULL;
1961 : }
1962 :
1963 0 : *enabled = true;
1964 0 : return getPrototype(cx, scope);
1965 : }
1966 :
1967 : template<>
1968 : bool
1969 0 : SVGPathSegListWrapper::getItemAt(mozilla::DOMSVGPathSegList *list, uint32_t index, nsIDOMSVGPathSeg * &item)
1970 : {
1971 0 : item = list->GetItemAt(index);
1972 0 : return !!item;
1973 : }
1974 :
1975 : static JSBool
1976 0 : SVGPathSegList_AppendItem(JSContext *cx, unsigned argc, jsval *vp)
1977 : {
1978 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
1979 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
1980 0 : if (!obj)
1981 0 : return JS_FALSE;
1982 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
1983 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
1984 0 : return false;
1985 0 : if (argc < 1)
1986 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
1987 0 : jsval *argv = JS_ARGV(cx, vp);
1988 : nsresult rv;
1989 : nsIDOMSVGPathSeg *arg0;
1990 0 : xpc_qsSelfRef arg0ref;
1991 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPathSeg>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
1992 0 : if (NS_FAILED(rv)) {
1993 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
1994 0 : return JS_FALSE;
1995 : }
1996 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
1997 0 : rv = SVGPathSegListWrapper::getListObject(obj)->AppendItem(arg0, getter_AddRefs(result));
1998 0 : if (NS_FAILED(rv))
1999 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "appendItem");
2000 0 : if (!result) {
2001 0 : *vp = JSVAL_NULL;
2002 0 : return JS_TRUE;
2003 : }
2004 0 : return Wrap(cx, obj, result, vp);
2005 : }
2006 :
2007 : static JSBool
2008 0 : SVGPathSegList_Clear(JSContext *cx, unsigned argc, jsval *vp)
2009 : {
2010 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2011 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2012 0 : if (!obj)
2013 0 : return JS_FALSE;
2014 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2015 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2016 0 : return false;
2017 : nsresult rv;
2018 0 : rv = SVGPathSegListWrapper::getListObject(obj)->Clear();
2019 0 : if (NS_FAILED(rv))
2020 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "clear");
2021 0 : *vp = JSVAL_VOID;
2022 0 : return JS_TRUE;
2023 : }
2024 :
2025 : static JSBool
2026 0 : SVGPathSegList_GetItem(JSContext *cx, unsigned argc, jsval *vp)
2027 : {
2028 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2029 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2030 0 : if (!obj)
2031 0 : return JS_FALSE;
2032 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2033 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2034 0 : return false;
2035 0 : if (argc < 1)
2036 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2037 0 : jsval *argv = JS_ARGV(cx, vp);
2038 : uint32_t arg0;
2039 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2040 0 : return JS_FALSE;
2041 : nsresult rv;
2042 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
2043 0 : rv = SVGPathSegListWrapper::getListObject(obj)->GetItem(arg0, getter_AddRefs(result));
2044 0 : if (NS_FAILED(rv))
2045 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "getItem");
2046 0 : if (!result) {
2047 0 : *vp = JSVAL_NULL;
2048 0 : return JS_TRUE;
2049 : }
2050 0 : return Wrap(cx, obj, result, vp);
2051 : }
2052 :
2053 : static JSBool
2054 0 : SVGPathSegList_Initialize(JSContext *cx, unsigned argc, jsval *vp)
2055 : {
2056 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2057 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2058 0 : if (!obj)
2059 0 : return JS_FALSE;
2060 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2061 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2062 0 : return false;
2063 0 : if (argc < 1)
2064 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2065 0 : jsval *argv = JS_ARGV(cx, vp);
2066 : nsresult rv;
2067 : nsIDOMSVGPathSeg *arg0;
2068 0 : xpc_qsSelfRef arg0ref;
2069 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPathSeg>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2070 0 : if (NS_FAILED(rv)) {
2071 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2072 0 : return JS_FALSE;
2073 : }
2074 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
2075 0 : rv = SVGPathSegListWrapper::getListObject(obj)->Initialize(arg0, getter_AddRefs(result));
2076 0 : if (NS_FAILED(rv))
2077 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "initialize");
2078 0 : if (!result) {
2079 0 : *vp = JSVAL_NULL;
2080 0 : return JS_TRUE;
2081 : }
2082 0 : return Wrap(cx, obj, result, vp);
2083 : }
2084 :
2085 : static JSBool
2086 0 : SVGPathSegList_InsertItemBefore(JSContext *cx, unsigned argc, jsval *vp)
2087 : {
2088 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2089 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2090 0 : if (!obj)
2091 0 : return JS_FALSE;
2092 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2093 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2094 0 : return false;
2095 0 : if (argc < 2)
2096 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2097 0 : jsval *argv = JS_ARGV(cx, vp);
2098 : nsresult rv;
2099 : nsIDOMSVGPathSeg *arg0;
2100 0 : xpc_qsSelfRef arg0ref;
2101 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPathSeg>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2102 0 : if (NS_FAILED(rv)) {
2103 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2104 0 : return JS_FALSE;
2105 : }
2106 : uint32_t arg1;
2107 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2108 0 : return JS_FALSE;
2109 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
2110 0 : rv = SVGPathSegListWrapper::getListObject(obj)->InsertItemBefore(arg0, arg1, getter_AddRefs(result));
2111 0 : if (NS_FAILED(rv))
2112 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "insertItemBefore");
2113 0 : if (!result) {
2114 0 : *vp = JSVAL_NULL;
2115 0 : return JS_TRUE;
2116 : }
2117 0 : return Wrap(cx, obj, result, vp);
2118 : }
2119 :
2120 : static JSBool
2121 0 : SVGPathSegList_GetNumberOfItems(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
2122 : {
2123 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2124 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, NULL))
2125 0 : return false;
2126 : nsresult rv;
2127 : PRUint32 result;
2128 0 : rv = SVGPathSegListWrapper::getListObject(obj)->GetNumberOfItems(&result);
2129 0 : if (NS_FAILED(rv))
2130 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "numberOfItems");
2131 0 : *vp = UINT_TO_JSVAL(result);
2132 0 : return JS_TRUE;
2133 : }
2134 :
2135 : static JSBool
2136 0 : SVGPathSegList_RemoveItem(JSContext *cx, unsigned argc, jsval *vp)
2137 : {
2138 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2139 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2140 0 : if (!obj)
2141 0 : return JS_FALSE;
2142 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2143 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2144 0 : return false;
2145 0 : if (argc < 1)
2146 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2147 0 : jsval *argv = JS_ARGV(cx, vp);
2148 : uint32_t arg0;
2149 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2150 0 : return JS_FALSE;
2151 : nsresult rv;
2152 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
2153 0 : rv = SVGPathSegListWrapper::getListObject(obj)->RemoveItem(arg0, getter_AddRefs(result));
2154 0 : if (NS_FAILED(rv))
2155 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "removeItem");
2156 0 : if (!result) {
2157 0 : *vp = JSVAL_NULL;
2158 0 : return JS_TRUE;
2159 : }
2160 0 : return Wrap(cx, obj, result, vp);
2161 : }
2162 :
2163 : static JSBool
2164 0 : SVGPathSegList_ReplaceItem(JSContext *cx, unsigned argc, jsval *vp)
2165 : {
2166 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2167 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2168 0 : if (!obj)
2169 0 : return JS_FALSE;
2170 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2171 0 : if (!SVGPathSegListWrapper::instanceIsListObject(cx, obj, callee))
2172 0 : return false;
2173 0 : if (argc < 2)
2174 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2175 0 : jsval *argv = JS_ARGV(cx, vp);
2176 : nsresult rv;
2177 : nsIDOMSVGPathSeg *arg0;
2178 0 : xpc_qsSelfRef arg0ref;
2179 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPathSeg>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2180 0 : if (NS_FAILED(rv)) {
2181 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2182 0 : return JS_FALSE;
2183 : }
2184 : uint32_t arg1;
2185 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2186 0 : return JS_FALSE;
2187 0 : nsCOMPtr<nsIDOMSVGPathSeg> result;
2188 0 : rv = SVGPathSegListWrapper::getListObject(obj)->ReplaceItem(arg0, arg1, getter_AddRefs(result));
2189 0 : if (NS_FAILED(rv))
2190 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPathSegList", "replaceItem");
2191 0 : if (!result) {
2192 0 : *vp = JSVAL_NULL;
2193 0 : return JS_TRUE;
2194 : }
2195 0 : return Wrap(cx, obj, result, vp);
2196 : }
2197 :
2198 : template<>
2199 : SVGPathSegListWrapper::Properties SVGPathSegListWrapper::sProtoProperties[] = {
2200 : { s_length_id, length_getter, NULL },
2201 : { s_numberOfItems_id, SVGPathSegList_GetNumberOfItems, xpc_qsGetterOnlyPropertyStub }
2202 : };
2203 :
2204 : template<>
2205 1464 : size_t SVGPathSegListWrapper::sProtoPropertiesCount = ArrayLength(SVGPathSegListWrapper::sProtoProperties);
2206 :
2207 : template<>
2208 : SVGPathSegListWrapper::Methods SVGPathSegListWrapper::sProtoMethods[] = {
2209 : { s_appendItem_id, SVGPathSegList_AppendItem, 1 },
2210 : { s_clear_id, SVGPathSegList_Clear, 0 },
2211 : { s_getItem_id, SVGPathSegList_GetItem, 1 },
2212 : { s_initialize_id, SVGPathSegList_Initialize, 1 },
2213 : { s_insertItemBefore_id, SVGPathSegList_InsertItemBefore, 2 },
2214 : { s_removeItem_id, SVGPathSegList_RemoveItem, 1 },
2215 : { s_replaceItem_id, SVGPathSegList_ReplaceItem, 2 }
2216 : };
2217 :
2218 : template<>
2219 1464 : size_t SVGPathSegListWrapper::sProtoMethodsCount = ArrayLength(SVGPathSegListWrapper::sProtoMethods);
2220 :
2221 : template class ListBase<SVGPathSegListClass>;
2222 :
2223 : JSObject*
2224 0 : SVGPathSegList::create(JSContext *cx, XPCWrappedNativeScope *scope, mozilla::DOMSVGPathSegList *list, nsWrapperCache *cache, bool *triedToWrap)
2225 : {
2226 0 : return SVGPathSegListWrapper::create(cx, scope, list, cache, triedToWrap);
2227 : }
2228 :
2229 : bool
2230 0 : SVGPathSegList::objIsWrapper(JSObject *obj)
2231 : {
2232 0 : return SVGPathSegListWrapper::objIsList(obj);
2233 : }
2234 :
2235 : mozilla::DOMSVGPathSegList*
2236 0 : SVGPathSegList::getNative(JSObject *obj)
2237 : {
2238 0 : return SVGPathSegListWrapper::getListObject(obj);
2239 : }
2240 :
2241 : // SVGPointList
2242 :
2243 : template<>
2244 : js::Class SVGPointListWrapper::sInterfaceClass = {
2245 : "SVGPointList",
2246 : 0,
2247 : JS_PropertyStub, /* addProperty */
2248 : JS_PropertyStub, /* delProperty */
2249 : JS_PropertyStub, /* getProperty */
2250 : JS_StrictPropertyStub, /* setProperty */
2251 : JS_EnumerateStub,
2252 : JS_ResolveStub,
2253 : JS_ConvertStub,
2254 : JS_FinalizeStub,
2255 : NULL, /* checkAccess */
2256 : NULL, /* call */
2257 : NULL, /* construct */
2258 : interface_hasInstance
2259 : };
2260 :
2261 : template<>
2262 : JSObject *
2263 0 : SVGPointListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
2264 : {
2265 0 : if (!scope->NewDOMBindingsEnabled()) {
2266 0 : *enabled = false;
2267 0 : return NULL;
2268 : }
2269 :
2270 0 : *enabled = true;
2271 0 : return getPrototype(cx, scope);
2272 : }
2273 :
2274 : template<>
2275 : bool
2276 0 : SVGPointListWrapper::getItemAt(mozilla::DOMSVGPointList *list, uint32_t index, nsIDOMSVGPoint * &item)
2277 : {
2278 0 : item = list->GetItemAt(index);
2279 0 : return !!item;
2280 : }
2281 :
2282 : static JSBool
2283 0 : SVGPointList_AppendItem(JSContext *cx, unsigned argc, jsval *vp)
2284 : {
2285 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2286 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2287 0 : if (!obj)
2288 0 : return JS_FALSE;
2289 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2290 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2291 0 : return false;
2292 0 : if (argc < 1)
2293 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2294 0 : jsval *argv = JS_ARGV(cx, vp);
2295 : nsresult rv;
2296 : nsIDOMSVGPoint *arg0;
2297 0 : xpc_qsSelfRef arg0ref;
2298 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPoint>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2299 0 : if (NS_FAILED(rv)) {
2300 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2301 0 : return JS_FALSE;
2302 : }
2303 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2304 0 : rv = SVGPointListWrapper::getListObject(obj)->AppendItem(arg0, getter_AddRefs(result));
2305 0 : if (NS_FAILED(rv))
2306 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "appendItem");
2307 0 : if (!result) {
2308 0 : *vp = JSVAL_NULL;
2309 0 : return JS_TRUE;
2310 : }
2311 0 : return Wrap(cx, obj, result, vp);
2312 : }
2313 :
2314 : static JSBool
2315 0 : SVGPointList_Clear(JSContext *cx, unsigned argc, jsval *vp)
2316 : {
2317 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2318 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2319 0 : if (!obj)
2320 0 : return JS_FALSE;
2321 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2322 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2323 0 : return false;
2324 : nsresult rv;
2325 0 : rv = SVGPointListWrapper::getListObject(obj)->Clear();
2326 0 : if (NS_FAILED(rv))
2327 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "clear");
2328 0 : *vp = JSVAL_VOID;
2329 0 : return JS_TRUE;
2330 : }
2331 :
2332 : static JSBool
2333 0 : SVGPointList_GetItem(JSContext *cx, unsigned argc, jsval *vp)
2334 : {
2335 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2336 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2337 0 : if (!obj)
2338 0 : return JS_FALSE;
2339 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2340 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2341 0 : return false;
2342 0 : if (argc < 1)
2343 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2344 0 : jsval *argv = JS_ARGV(cx, vp);
2345 : uint32_t arg0;
2346 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2347 0 : return JS_FALSE;
2348 : nsresult rv;
2349 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2350 0 : rv = SVGPointListWrapper::getListObject(obj)->GetItem(arg0, getter_AddRefs(result));
2351 0 : if (NS_FAILED(rv))
2352 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "getItem");
2353 0 : if (!result) {
2354 0 : *vp = JSVAL_NULL;
2355 0 : return JS_TRUE;
2356 : }
2357 0 : return Wrap(cx, obj, result, vp);
2358 : }
2359 :
2360 : static JSBool
2361 0 : SVGPointList_Initialize(JSContext *cx, unsigned argc, jsval *vp)
2362 : {
2363 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2364 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2365 0 : if (!obj)
2366 0 : return JS_FALSE;
2367 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2368 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2369 0 : return false;
2370 0 : if (argc < 1)
2371 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2372 0 : jsval *argv = JS_ARGV(cx, vp);
2373 : nsresult rv;
2374 : nsIDOMSVGPoint *arg0;
2375 0 : xpc_qsSelfRef arg0ref;
2376 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPoint>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2377 0 : if (NS_FAILED(rv)) {
2378 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2379 0 : return JS_FALSE;
2380 : }
2381 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2382 0 : rv = SVGPointListWrapper::getListObject(obj)->Initialize(arg0, getter_AddRefs(result));
2383 0 : if (NS_FAILED(rv))
2384 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "initialize");
2385 0 : if (!result) {
2386 0 : *vp = JSVAL_NULL;
2387 0 : return JS_TRUE;
2388 : }
2389 0 : return Wrap(cx, obj, result, vp);
2390 : }
2391 :
2392 : static JSBool
2393 0 : SVGPointList_InsertItemBefore(JSContext *cx, unsigned argc, jsval *vp)
2394 : {
2395 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2396 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2397 0 : if (!obj)
2398 0 : return JS_FALSE;
2399 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2400 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2401 0 : return false;
2402 0 : if (argc < 2)
2403 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2404 0 : jsval *argv = JS_ARGV(cx, vp);
2405 : nsresult rv;
2406 : nsIDOMSVGPoint *arg0;
2407 0 : xpc_qsSelfRef arg0ref;
2408 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPoint>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2409 0 : if (NS_FAILED(rv)) {
2410 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2411 0 : return JS_FALSE;
2412 : }
2413 : uint32_t arg1;
2414 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2415 0 : return JS_FALSE;
2416 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2417 0 : rv = SVGPointListWrapper::getListObject(obj)->InsertItemBefore(arg0, arg1, getter_AddRefs(result));
2418 0 : if (NS_FAILED(rv))
2419 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "insertItemBefore");
2420 0 : if (!result) {
2421 0 : *vp = JSVAL_NULL;
2422 0 : return JS_TRUE;
2423 : }
2424 0 : return Wrap(cx, obj, result, vp);
2425 : }
2426 :
2427 : static JSBool
2428 0 : SVGPointList_GetNumberOfItems(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
2429 : {
2430 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2431 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, NULL))
2432 0 : return false;
2433 : nsresult rv;
2434 : PRUint32 result;
2435 0 : rv = SVGPointListWrapper::getListObject(obj)->GetNumberOfItems(&result);
2436 0 : if (NS_FAILED(rv))
2437 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "numberOfItems");
2438 0 : *vp = UINT_TO_JSVAL(result);
2439 0 : return JS_TRUE;
2440 : }
2441 :
2442 : static JSBool
2443 0 : SVGPointList_RemoveItem(JSContext *cx, unsigned argc, jsval *vp)
2444 : {
2445 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2446 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2447 0 : if (!obj)
2448 0 : return JS_FALSE;
2449 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2450 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2451 0 : return false;
2452 0 : if (argc < 1)
2453 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2454 0 : jsval *argv = JS_ARGV(cx, vp);
2455 : uint32_t arg0;
2456 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2457 0 : return JS_FALSE;
2458 : nsresult rv;
2459 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2460 0 : rv = SVGPointListWrapper::getListObject(obj)->RemoveItem(arg0, getter_AddRefs(result));
2461 0 : if (NS_FAILED(rv))
2462 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "removeItem");
2463 0 : if (!result) {
2464 0 : *vp = JSVAL_NULL;
2465 0 : return JS_TRUE;
2466 : }
2467 0 : return Wrap(cx, obj, result, vp);
2468 : }
2469 :
2470 : static JSBool
2471 0 : SVGPointList_ReplaceItem(JSContext *cx, unsigned argc, jsval *vp)
2472 : {
2473 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2474 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2475 0 : if (!obj)
2476 0 : return JS_FALSE;
2477 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2478 0 : if (!SVGPointListWrapper::instanceIsListObject(cx, obj, callee))
2479 0 : return false;
2480 0 : if (argc < 2)
2481 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2482 0 : jsval *argv = JS_ARGV(cx, vp);
2483 : nsresult rv;
2484 : nsIDOMSVGPoint *arg0;
2485 0 : xpc_qsSelfRef arg0ref;
2486 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGPoint>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2487 0 : if (NS_FAILED(rv)) {
2488 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2489 0 : return JS_FALSE;
2490 : }
2491 : uint32_t arg1;
2492 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2493 0 : return JS_FALSE;
2494 0 : nsCOMPtr<nsIDOMSVGPoint> result;
2495 0 : rv = SVGPointListWrapper::getListObject(obj)->ReplaceItem(arg0, arg1, getter_AddRefs(result));
2496 0 : if (NS_FAILED(rv))
2497 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGPointList", "replaceItem");
2498 0 : if (!result) {
2499 0 : *vp = JSVAL_NULL;
2500 0 : return JS_TRUE;
2501 : }
2502 0 : return Wrap(cx, obj, result, vp);
2503 : }
2504 :
2505 : template<>
2506 : SVGPointListWrapper::Properties SVGPointListWrapper::sProtoProperties[] = {
2507 : { s_length_id, length_getter, NULL },
2508 : { s_numberOfItems_id, SVGPointList_GetNumberOfItems, xpc_qsGetterOnlyPropertyStub }
2509 : };
2510 :
2511 : template<>
2512 1464 : size_t SVGPointListWrapper::sProtoPropertiesCount = ArrayLength(SVGPointListWrapper::sProtoProperties);
2513 :
2514 : template<>
2515 : SVGPointListWrapper::Methods SVGPointListWrapper::sProtoMethods[] = {
2516 : { s_appendItem_id, SVGPointList_AppendItem, 1 },
2517 : { s_clear_id, SVGPointList_Clear, 0 },
2518 : { s_getItem_id, SVGPointList_GetItem, 1 },
2519 : { s_initialize_id, SVGPointList_Initialize, 1 },
2520 : { s_insertItemBefore_id, SVGPointList_InsertItemBefore, 2 },
2521 : { s_removeItem_id, SVGPointList_RemoveItem, 1 },
2522 : { s_replaceItem_id, SVGPointList_ReplaceItem, 2 }
2523 : };
2524 :
2525 : template<>
2526 1464 : size_t SVGPointListWrapper::sProtoMethodsCount = ArrayLength(SVGPointListWrapper::sProtoMethods);
2527 :
2528 : template class ListBase<SVGPointListClass>;
2529 :
2530 : JSObject*
2531 0 : SVGPointList::create(JSContext *cx, XPCWrappedNativeScope *scope, mozilla::DOMSVGPointList *list, nsWrapperCache *cache, bool *triedToWrap)
2532 : {
2533 0 : return SVGPointListWrapper::create(cx, scope, list, cache, triedToWrap);
2534 : }
2535 :
2536 : bool
2537 0 : SVGPointList::objIsWrapper(JSObject *obj)
2538 : {
2539 0 : return SVGPointListWrapper::objIsList(obj);
2540 : }
2541 :
2542 : mozilla::DOMSVGPointList*
2543 0 : SVGPointList::getNative(JSObject *obj)
2544 : {
2545 0 : return SVGPointListWrapper::getListObject(obj);
2546 : }
2547 :
2548 : // SVGTransformList
2549 :
2550 : template<>
2551 : js::Class SVGTransformListWrapper::sInterfaceClass = {
2552 : "SVGTransformList",
2553 : 0,
2554 : JS_PropertyStub, /* addProperty */
2555 : JS_PropertyStub, /* delProperty */
2556 : JS_PropertyStub, /* getProperty */
2557 : JS_StrictPropertyStub, /* setProperty */
2558 : JS_EnumerateStub,
2559 : JS_ResolveStub,
2560 : JS_ConvertStub,
2561 : JS_FinalizeStub,
2562 : NULL, /* checkAccess */
2563 : NULL, /* call */
2564 : NULL, /* construct */
2565 : interface_hasInstance
2566 : };
2567 :
2568 : template<>
2569 : JSObject *
2570 0 : SVGTransformListWrapper::getPrototype(JSContext *cx, XPCWrappedNativeScope *scope, bool *enabled)
2571 : {
2572 0 : if (!scope->NewDOMBindingsEnabled()) {
2573 0 : *enabled = false;
2574 0 : return NULL;
2575 : }
2576 :
2577 0 : *enabled = true;
2578 0 : return getPrototype(cx, scope);
2579 : }
2580 :
2581 : template<>
2582 : bool
2583 0 : SVGTransformListWrapper::getItemAt(mozilla::DOMSVGTransformList *list, uint32_t index, nsIDOMSVGTransform * &item)
2584 : {
2585 0 : item = list->GetItemAt(index);
2586 0 : return !!item;
2587 : }
2588 :
2589 : static JSBool
2590 0 : SVGTransformList_AppendItem(JSContext *cx, unsigned argc, jsval *vp)
2591 : {
2592 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2593 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2594 0 : if (!obj)
2595 0 : return JS_FALSE;
2596 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2597 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2598 0 : return false;
2599 0 : if (argc < 1)
2600 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2601 0 : jsval *argv = JS_ARGV(cx, vp);
2602 : nsresult rv;
2603 : nsIDOMSVGTransform *arg0;
2604 0 : xpc_qsSelfRef arg0ref;
2605 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGTransform>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2606 0 : if (NS_FAILED(rv)) {
2607 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2608 0 : return JS_FALSE;
2609 : }
2610 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2611 0 : rv = SVGTransformListWrapper::getListObject(obj)->AppendItem(arg0, getter_AddRefs(result));
2612 0 : if (NS_FAILED(rv))
2613 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "appendItem");
2614 0 : if (!result) {
2615 0 : *vp = JSVAL_NULL;
2616 0 : return JS_TRUE;
2617 : }
2618 0 : return Wrap(cx, obj, result, vp);
2619 : }
2620 :
2621 : static JSBool
2622 0 : SVGTransformList_Clear(JSContext *cx, unsigned argc, jsval *vp)
2623 : {
2624 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2625 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2626 0 : if (!obj)
2627 0 : return JS_FALSE;
2628 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2629 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2630 0 : return false;
2631 : nsresult rv;
2632 0 : rv = SVGTransformListWrapper::getListObject(obj)->Clear();
2633 0 : if (NS_FAILED(rv))
2634 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "clear");
2635 0 : *vp = JSVAL_VOID;
2636 0 : return JS_TRUE;
2637 : }
2638 :
2639 : static JSBool
2640 0 : SVGTransformList_Consolidate(JSContext *cx, unsigned argc, jsval *vp)
2641 : {
2642 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2643 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2644 0 : if (!obj)
2645 0 : return JS_FALSE;
2646 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2647 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2648 0 : return false;
2649 : nsresult rv;
2650 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2651 0 : rv = SVGTransformListWrapper::getListObject(obj)->Consolidate(getter_AddRefs(result));
2652 0 : if (NS_FAILED(rv))
2653 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "consolidate");
2654 0 : if (!result) {
2655 0 : *vp = JSVAL_NULL;
2656 0 : return JS_TRUE;
2657 : }
2658 0 : return Wrap(cx, obj, result, vp);
2659 : }
2660 :
2661 : static JSBool
2662 0 : SVGTransformList_CreateSVGTransformFromMatrix(JSContext *cx, unsigned argc, jsval *vp)
2663 : {
2664 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2665 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2666 0 : if (!obj)
2667 0 : return JS_FALSE;
2668 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2669 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2670 0 : return false;
2671 0 : if (argc < 1)
2672 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2673 0 : jsval *argv = JS_ARGV(cx, vp);
2674 : nsresult rv;
2675 : nsIDOMSVGMatrix *arg0;
2676 0 : xpc_qsSelfRef arg0ref;
2677 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGMatrix>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2678 0 : if (NS_FAILED(rv)) {
2679 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2680 0 : return JS_FALSE;
2681 : }
2682 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2683 0 : rv = SVGTransformListWrapper::getListObject(obj)->CreateSVGTransformFromMatrix(arg0, getter_AddRefs(result));
2684 0 : if (NS_FAILED(rv))
2685 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "createSVGTransformFromMatrix");
2686 0 : if (!result) {
2687 0 : *vp = JSVAL_NULL;
2688 0 : return JS_TRUE;
2689 : }
2690 0 : return Wrap(cx, obj, result, vp);
2691 : }
2692 :
2693 : static JSBool
2694 0 : SVGTransformList_GetItem(JSContext *cx, unsigned argc, jsval *vp)
2695 : {
2696 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2697 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2698 0 : if (!obj)
2699 0 : return JS_FALSE;
2700 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2701 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2702 0 : return false;
2703 0 : if (argc < 1)
2704 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2705 0 : jsval *argv = JS_ARGV(cx, vp);
2706 : uint32_t arg0;
2707 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2708 0 : return JS_FALSE;
2709 : nsresult rv;
2710 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2711 0 : rv = SVGTransformListWrapper::getListObject(obj)->GetItem(arg0, getter_AddRefs(result));
2712 0 : if (NS_FAILED(rv))
2713 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "getItem");
2714 0 : if (!result) {
2715 0 : *vp = JSVAL_NULL;
2716 0 : return JS_TRUE;
2717 : }
2718 0 : return Wrap(cx, obj, result, vp);
2719 : }
2720 :
2721 : static JSBool
2722 0 : SVGTransformList_Initialize(JSContext *cx, unsigned argc, jsval *vp)
2723 : {
2724 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2725 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2726 0 : if (!obj)
2727 0 : return JS_FALSE;
2728 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2729 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2730 0 : return false;
2731 0 : if (argc < 1)
2732 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2733 0 : jsval *argv = JS_ARGV(cx, vp);
2734 : nsresult rv;
2735 : nsIDOMSVGTransform *arg0;
2736 0 : xpc_qsSelfRef arg0ref;
2737 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGTransform>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2738 0 : if (NS_FAILED(rv)) {
2739 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2740 0 : return JS_FALSE;
2741 : }
2742 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2743 0 : rv = SVGTransformListWrapper::getListObject(obj)->Initialize(arg0, getter_AddRefs(result));
2744 0 : if (NS_FAILED(rv))
2745 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "initialize");
2746 0 : if (!result) {
2747 0 : *vp = JSVAL_NULL;
2748 0 : return JS_TRUE;
2749 : }
2750 0 : return Wrap(cx, obj, result, vp);
2751 : }
2752 :
2753 : static JSBool
2754 0 : SVGTransformList_InsertItemBefore(JSContext *cx, unsigned argc, jsval *vp)
2755 : {
2756 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2757 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2758 0 : if (!obj)
2759 0 : return JS_FALSE;
2760 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2761 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2762 0 : return false;
2763 0 : if (argc < 2)
2764 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2765 0 : jsval *argv = JS_ARGV(cx, vp);
2766 : nsresult rv;
2767 : nsIDOMSVGTransform *arg0;
2768 0 : xpc_qsSelfRef arg0ref;
2769 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGTransform>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2770 0 : if (NS_FAILED(rv)) {
2771 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2772 0 : return JS_FALSE;
2773 : }
2774 : uint32_t arg1;
2775 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2776 0 : return JS_FALSE;
2777 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2778 0 : rv = SVGTransformListWrapper::getListObject(obj)->InsertItemBefore(arg0, arg1, getter_AddRefs(result));
2779 0 : if (NS_FAILED(rv))
2780 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "insertItemBefore");
2781 0 : if (!result) {
2782 0 : *vp = JSVAL_NULL;
2783 0 : return JS_TRUE;
2784 : }
2785 0 : return Wrap(cx, obj, result, vp);
2786 : }
2787 :
2788 : static JSBool
2789 0 : SVGTransformList_GetNumberOfItems(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
2790 : {
2791 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2792 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, NULL))
2793 0 : return false;
2794 : nsresult rv;
2795 : PRUint32 result;
2796 0 : rv = SVGTransformListWrapper::getListObject(obj)->GetNumberOfItems(&result);
2797 0 : if (NS_FAILED(rv))
2798 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "numberOfItems");
2799 0 : *vp = UINT_TO_JSVAL(result);
2800 0 : return JS_TRUE;
2801 : }
2802 :
2803 : static JSBool
2804 0 : SVGTransformList_RemoveItem(JSContext *cx, unsigned argc, jsval *vp)
2805 : {
2806 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2807 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2808 0 : if (!obj)
2809 0 : return JS_FALSE;
2810 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2811 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2812 0 : return false;
2813 0 : if (argc < 1)
2814 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2815 0 : jsval *argv = JS_ARGV(cx, vp);
2816 : uint32_t arg0;
2817 0 : if (!JS_ValueToECMAUint32(cx, argv[0], &arg0))
2818 0 : return JS_FALSE;
2819 : nsresult rv;
2820 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2821 0 : rv = SVGTransformListWrapper::getListObject(obj)->RemoveItem(arg0, getter_AddRefs(result));
2822 0 : if (NS_FAILED(rv))
2823 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "removeItem");
2824 0 : if (!result) {
2825 0 : *vp = JSVAL_NULL;
2826 0 : return JS_TRUE;
2827 : }
2828 0 : return Wrap(cx, obj, result, vp);
2829 : }
2830 :
2831 : static JSBool
2832 0 : SVGTransformList_ReplaceItem(JSContext *cx, unsigned argc, jsval *vp)
2833 : {
2834 0 : XPC_QS_ASSERT_CONTEXT_OK(cx);
2835 0 : JSObject *obj = JS_THIS_OBJECT(cx, vp);
2836 0 : if (!obj)
2837 0 : return JS_FALSE;
2838 0 : JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
2839 0 : if (!SVGTransformListWrapper::instanceIsListObject(cx, obj, callee))
2840 0 : return false;
2841 0 : if (argc < 2)
2842 0 : return xpc_qsThrow(cx, NS_ERROR_XPC_NOT_ENOUGH_ARGS);
2843 0 : jsval *argv = JS_ARGV(cx, vp);
2844 : nsresult rv;
2845 : nsIDOMSVGTransform *arg0;
2846 0 : xpc_qsSelfRef arg0ref;
2847 0 : rv = xpc_qsUnwrapArg<nsIDOMSVGTransform>(cx, argv[0], &arg0, &arg0ref.ptr, &argv[0]);
2848 0 : if (NS_FAILED(rv)) {
2849 0 : xpc_qsThrowBadArgWithDetails(cx, rv, 0, "", "");
2850 0 : return JS_FALSE;
2851 : }
2852 : uint32_t arg1;
2853 0 : if (!JS_ValueToECMAUint32(cx, argv[1], &arg1))
2854 0 : return JS_FALSE;
2855 0 : nsCOMPtr<nsIDOMSVGTransform> result;
2856 0 : rv = SVGTransformListWrapper::getListObject(obj)->ReplaceItem(arg0, arg1, getter_AddRefs(result));
2857 0 : if (NS_FAILED(rv))
2858 0 : return xpc_qsThrowMethodFailedWithDetails(cx, rv, "SVGTransformList", "replaceItem");
2859 0 : if (!result) {
2860 0 : *vp = JSVAL_NULL;
2861 0 : return JS_TRUE;
2862 : }
2863 0 : return Wrap(cx, obj, result, vp);
2864 : }
2865 :
2866 : template<>
2867 : SVGTransformListWrapper::Properties SVGTransformListWrapper::sProtoProperties[] = {
2868 : { s_length_id, length_getter, NULL },
2869 : { s_numberOfItems_id, SVGTransformList_GetNumberOfItems, xpc_qsGetterOnlyPropertyStub }
2870 : };
2871 :
2872 : template<>
2873 1464 : size_t SVGTransformListWrapper::sProtoPropertiesCount = ArrayLength(SVGTransformListWrapper::sProtoProperties);
2874 :
2875 : template<>
2876 : SVGTransformListWrapper::Methods SVGTransformListWrapper::sProtoMethods[] = {
2877 : { s_appendItem_id, SVGTransformList_AppendItem, 1 },
2878 : { s_clear_id, SVGTransformList_Clear, 0 },
2879 : { s_consolidate_id, SVGTransformList_Consolidate, 0 },
2880 : { s_createSVGTransformFromMatrix_id, SVGTransformList_CreateSVGTransformFromMatrix, 1 },
2881 : { s_getItem_id, SVGTransformList_GetItem, 1 },
2882 : { s_initialize_id, SVGTransformList_Initialize, 1 },
2883 : { s_insertItemBefore_id, SVGTransformList_InsertItemBefore, 2 },
2884 : { s_removeItem_id, SVGTransformList_RemoveItem, 1 },
2885 : { s_replaceItem_id, SVGTransformList_ReplaceItem, 2 }
2886 : };
2887 :
2888 : template<>
2889 1464 : size_t SVGTransformListWrapper::sProtoMethodsCount = ArrayLength(SVGTransformListWrapper::sProtoMethods);
2890 :
2891 : template class ListBase<SVGTransformListClass>;
2892 :
2893 : JSObject*
2894 0 : SVGTransformList::create(JSContext *cx, XPCWrappedNativeScope *scope, mozilla::DOMSVGTransformList *list, nsWrapperCache *cache, bool *triedToWrap)
2895 : {
2896 0 : return SVGTransformListWrapper::create(cx, scope, list, cache, triedToWrap);
2897 : }
2898 :
2899 : bool
2900 0 : SVGTransformList::objIsWrapper(JSObject *obj)
2901 : {
2902 0 : return SVGTransformListWrapper::objIsList(obj);
2903 : }
2904 :
2905 : mozilla::DOMSVGTransformList*
2906 0 : SVGTransformList::getNative(JSObject *obj)
2907 : {
2908 0 : return SVGTransformListWrapper::getListObject(obj);
2909 : }
2910 :
2911 : // Register prototypes
2912 :
2913 : void
2914 306 : Register(nsDOMClassInfoData *aData)
2915 : {
2916 : #define REGISTER_PROTO(_dom_class) \
2917 : aData[eDOMClassInfo_##_dom_class##_id].mDefineDOMInterface = _dom_class##Wrapper::getPrototype
2918 :
2919 306 : REGISTER_PROTO(ClientRectList);
2920 306 : REGISTER_PROTO(DOMTokenList);
2921 306 : REGISTER_PROTO(NodeList);
2922 306 : REGISTER_PROTO(HTMLCollection);
2923 306 : REGISTER_PROTO(SVGPathSegList);
2924 306 : REGISTER_PROTO(PaintRequestList);
2925 306 : REGISTER_PROTO(FileList);
2926 306 : REGISTER_PROTO(SVGLengthList);
2927 306 : REGISTER_PROTO(SVGTransformList);
2928 306 : REGISTER_PROTO(DOMSettableTokenList);
2929 306 : REGISTER_PROTO(SVGPointList);
2930 306 : REGISTER_PROTO(SVGNumberList);
2931 306 : REGISTER_PROTO(HTMLOptionsCollection);
2932 :
2933 : #undef REGISTER_PROTO
2934 306 : }
2935 :
2936 : }
2937 : }
2938 4392 : }
|