Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dom/bindings/CSS2PropertiesBinding.cpp
Line
Count
Source (jump to first uncovered line)
1
/* THIS FILE IS AUTOGENERATED FROM CSS2Properties.webidl BY Codegen.py - DO NOT EDIT */
2
3
#include "CSS2PropertiesBinding.h"
4
#include "CSSStyleDeclarationBinding.h"
5
#include "WrapperFactory.h"
6
#include "mozilla/OwningNonNull.h"
7
#include "mozilla/Preferences.h"
8
#include "mozilla/dom/BindingUtils.h"
9
#include "mozilla/dom/CustomElementRegistry.h"
10
#include "mozilla/dom/DOMJSClass.h"
11
#include "mozilla/dom/DOMJSProxyHandler.h"
12
#include "mozilla/dom/DocGroup.h"
13
#include "mozilla/dom/NonRefcountedDOMObject.h"
14
#include "mozilla/dom/XrayExpandoClass.h"
15
#include "nsContentUtils.h"
16
#include "nsDOMCSSDeclaration.h"
17
18
namespace mozilla {
19
namespace dom {
20
21
namespace binding_detail {}; // Just to make sure it's known as a namespace
22
using namespace mozilla::dom::binding_detail;
23
24
25
namespace CSS2Properties_Binding {
26
27
static_assert(IsRefcounted<NativeType>::value == IsRefcounted<CSSStyleDeclaration_Binding::NativeType>::value,
28
              "Can't inherit from an interface with a different ownership model.");
29
30
MOZ_CAN_RUN_SCRIPT static bool
31
get_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32
0
{
33
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.alignContent", DOM, cx);
34
0
35
0
  FastErrorResult rv;
36
0
  DOMString result;
37
0
  self->GetAlignContent(result, rv);
38
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39
0
    return false;
40
0
  }
41
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43
0
    return false;
44
0
  }
45
0
  return true;
46
0
}
47
48
MOZ_CAN_RUN_SCRIPT static bool
49
set_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
50
0
{
51
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.alignContent", DOM, cx);
52
0
53
0
  binding_detail::FakeString arg0;
54
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
55
0
    return false;
56
0
  }
57
0
  Maybe<AutoCEReaction> ceReaction;
58
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
59
0
    DocGroup* docGroup = self->GetDocGroup();
60
0
    if (docGroup) {
61
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
62
0
    }
63
0
  }
64
0
  FastErrorResult rv;
65
0
  nsIPrincipal* subjectPrincipal;
66
0
  {
67
0
    JS::Realm* realm = js::GetContextRealm(cx);
68
0
    MOZ_ASSERT(realm);
69
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
70
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
71
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
72
0
      principal = nullptr;
73
0
    }
74
0
75
0
    subjectPrincipal = principal;
76
0
  }
77
0
  self->SetAlignContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
78
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
79
0
    return false;
80
0
  }
81
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
82
0
83
0
  return true;
84
0
}
85
86
static const JSJitInfo alignContent_getterinfo = {
87
  { (JSJitGetterOp)get_alignContent },
88
  { prototypes::id::CSS2Properties },
89
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
90
  JSJitInfo::Getter,
91
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
92
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
93
  false,  /* isInfallible. False in setters. */
94
  false,  /* isMovable.  Not relevant for setters. */
95
  false, /* isEliminatable.  Not relevant for setters. */
96
  false, /* isAlwaysInSlot.  Only relevant for getters. */
97
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
98
  false,  /* isTypedMethod.  Only relevant for methods. */
99
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
100
};
101
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
102
static_assert(0 < 1, "There is no slot for us");
103
static const JSJitInfo alignContent_setterinfo = {
104
  { (JSJitGetterOp)set_alignContent },
105
  { prototypes::id::CSS2Properties },
106
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
107
  JSJitInfo::Setter,
108
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
109
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
110
  false,  /* isInfallible. False in setters. */
111
  false,  /* isMovable.  Not relevant for setters. */
112
  false, /* isEliminatable.  Not relevant for setters. */
113
  false, /* isAlwaysInSlot.  Only relevant for getters. */
114
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
115
  false,  /* isTypedMethod.  Only relevant for methods. */
116
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
117
};
118
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
119
static_assert(0 < 1, "There is no slot for us");
120
121
MOZ_CAN_RUN_SCRIPT static bool
122
get_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
123
0
{
124
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.alignItems", DOM, cx);
125
0
126
0
  FastErrorResult rv;
127
0
  DOMString result;
128
0
  self->GetAlignItems(result, rv);
129
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
130
0
    return false;
131
0
  }
132
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
133
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
134
0
    return false;
135
0
  }
136
0
  return true;
137
0
}
138
139
MOZ_CAN_RUN_SCRIPT static bool
140
set_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
141
0
{
142
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.alignItems", DOM, cx);
143
0
144
0
  binding_detail::FakeString arg0;
145
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
146
0
    return false;
147
0
  }
148
0
  Maybe<AutoCEReaction> ceReaction;
149
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
150
0
    DocGroup* docGroup = self->GetDocGroup();
151
0
    if (docGroup) {
152
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
153
0
    }
154
0
  }
155
0
  FastErrorResult rv;
156
0
  nsIPrincipal* subjectPrincipal;
157
0
  {
158
0
    JS::Realm* realm = js::GetContextRealm(cx);
159
0
    MOZ_ASSERT(realm);
160
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
161
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
162
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
163
0
      principal = nullptr;
164
0
    }
165
0
166
0
    subjectPrincipal = principal;
167
0
  }
168
0
  self->SetAlignItems(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
169
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
170
0
    return false;
171
0
  }
172
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
173
0
174
0
  return true;
175
0
}
176
177
static const JSJitInfo alignItems_getterinfo = {
178
  { (JSJitGetterOp)get_alignItems },
179
  { prototypes::id::CSS2Properties },
180
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
181
  JSJitInfo::Getter,
182
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
183
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
184
  false,  /* isInfallible. False in setters. */
185
  false,  /* isMovable.  Not relevant for setters. */
186
  false, /* isEliminatable.  Not relevant for setters. */
187
  false, /* isAlwaysInSlot.  Only relevant for getters. */
188
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
189
  false,  /* isTypedMethod.  Only relevant for methods. */
190
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
191
};
192
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
193
static_assert(0 < 1, "There is no slot for us");
194
static const JSJitInfo alignItems_setterinfo = {
195
  { (JSJitGetterOp)set_alignItems },
196
  { prototypes::id::CSS2Properties },
197
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
198
  JSJitInfo::Setter,
199
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
200
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
201
  false,  /* isInfallible. False in setters. */
202
  false,  /* isMovable.  Not relevant for setters. */
203
  false, /* isEliminatable.  Not relevant for setters. */
204
  false, /* isAlwaysInSlot.  Only relevant for getters. */
205
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
206
  false,  /* isTypedMethod.  Only relevant for methods. */
207
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
208
};
209
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
210
static_assert(0 < 1, "There is no slot for us");
211
212
MOZ_CAN_RUN_SCRIPT static bool
213
get_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
214
0
{
215
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.alignSelf", DOM, cx);
216
0
217
0
  FastErrorResult rv;
218
0
  DOMString result;
219
0
  self->GetAlignSelf(result, rv);
220
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
221
0
    return false;
222
0
  }
223
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
224
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
225
0
    return false;
226
0
  }
227
0
  return true;
228
0
}
229
230
MOZ_CAN_RUN_SCRIPT static bool
231
set_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
232
0
{
233
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.alignSelf", DOM, cx);
234
0
235
0
  binding_detail::FakeString arg0;
236
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
237
0
    return false;
238
0
  }
239
0
  Maybe<AutoCEReaction> ceReaction;
240
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
241
0
    DocGroup* docGroup = self->GetDocGroup();
242
0
    if (docGroup) {
243
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
244
0
    }
245
0
  }
246
0
  FastErrorResult rv;
247
0
  nsIPrincipal* subjectPrincipal;
248
0
  {
249
0
    JS::Realm* realm = js::GetContextRealm(cx);
250
0
    MOZ_ASSERT(realm);
251
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
252
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
253
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
254
0
      principal = nullptr;
255
0
    }
256
0
257
0
    subjectPrincipal = principal;
258
0
  }
259
0
  self->SetAlignSelf(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
260
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
261
0
    return false;
262
0
  }
263
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
264
0
265
0
  return true;
266
0
}
267
268
static const JSJitInfo alignSelf_getterinfo = {
269
  { (JSJitGetterOp)get_alignSelf },
270
  { prototypes::id::CSS2Properties },
271
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
272
  JSJitInfo::Getter,
273
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
274
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
275
  false,  /* isInfallible. False in setters. */
276
  false,  /* isMovable.  Not relevant for setters. */
277
  false, /* isEliminatable.  Not relevant for setters. */
278
  false, /* isAlwaysInSlot.  Only relevant for getters. */
279
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
280
  false,  /* isTypedMethod.  Only relevant for methods. */
281
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
282
};
283
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
284
static_assert(0 < 1, "There is no slot for us");
285
static const JSJitInfo alignSelf_setterinfo = {
286
  { (JSJitGetterOp)set_alignSelf },
287
  { prototypes::id::CSS2Properties },
288
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
289
  JSJitInfo::Setter,
290
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
291
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
292
  false,  /* isInfallible. False in setters. */
293
  false,  /* isMovable.  Not relevant for setters. */
294
  false, /* isEliminatable.  Not relevant for setters. */
295
  false, /* isAlwaysInSlot.  Only relevant for getters. */
296
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
297
  false,  /* isTypedMethod.  Only relevant for methods. */
298
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
299
};
300
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
301
static_assert(0 < 1, "There is no slot for us");
302
303
MOZ_CAN_RUN_SCRIPT static bool
304
get_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
305
0
{
306
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backfaceVisibility", DOM, cx);
307
0
308
0
  FastErrorResult rv;
309
0
  DOMString result;
310
0
  self->GetBackfaceVisibility(result, rv);
311
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
312
0
    return false;
313
0
  }
314
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
315
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
316
0
    return false;
317
0
  }
318
0
  return true;
319
0
}
320
321
MOZ_CAN_RUN_SCRIPT static bool
322
set_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
323
0
{
324
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backfaceVisibility", DOM, cx);
325
0
326
0
  binding_detail::FakeString arg0;
327
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
328
0
    return false;
329
0
  }
330
0
  Maybe<AutoCEReaction> ceReaction;
331
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
332
0
    DocGroup* docGroup = self->GetDocGroup();
333
0
    if (docGroup) {
334
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
335
0
    }
336
0
  }
337
0
  FastErrorResult rv;
338
0
  nsIPrincipal* subjectPrincipal;
339
0
  {
340
0
    JS::Realm* realm = js::GetContextRealm(cx);
341
0
    MOZ_ASSERT(realm);
342
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
343
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
344
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
345
0
      principal = nullptr;
346
0
    }
347
0
348
0
    subjectPrincipal = principal;
349
0
  }
350
0
  self->SetBackfaceVisibility(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
351
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
352
0
    return false;
353
0
  }
354
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
355
0
356
0
  return true;
357
0
}
358
359
static const JSJitInfo backfaceVisibility_getterinfo = {
360
  { (JSJitGetterOp)get_backfaceVisibility },
361
  { prototypes::id::CSS2Properties },
362
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
363
  JSJitInfo::Getter,
364
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
365
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
366
  false,  /* isInfallible. False in setters. */
367
  false,  /* isMovable.  Not relevant for setters. */
368
  false, /* isEliminatable.  Not relevant for setters. */
369
  false, /* isAlwaysInSlot.  Only relevant for getters. */
370
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
371
  false,  /* isTypedMethod.  Only relevant for methods. */
372
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
373
};
374
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
375
static_assert(0 < 1, "There is no slot for us");
376
static const JSJitInfo backfaceVisibility_setterinfo = {
377
  { (JSJitGetterOp)set_backfaceVisibility },
378
  { prototypes::id::CSS2Properties },
379
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
380
  JSJitInfo::Setter,
381
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
382
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
383
  false,  /* isInfallible. False in setters. */
384
  false,  /* isMovable.  Not relevant for setters. */
385
  false, /* isEliminatable.  Not relevant for setters. */
386
  false, /* isAlwaysInSlot.  Only relevant for getters. */
387
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
388
  false,  /* isTypedMethod.  Only relevant for methods. */
389
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
390
};
391
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
392
static_assert(0 < 1, "There is no slot for us");
393
394
MOZ_CAN_RUN_SCRIPT static bool
395
get_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
396
0
{
397
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderCollapse", DOM, cx);
398
0
399
0
  FastErrorResult rv;
400
0
  DOMString result;
401
0
  self->GetBorderCollapse(result, rv);
402
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
403
0
    return false;
404
0
  }
405
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
406
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
407
0
    return false;
408
0
  }
409
0
  return true;
410
0
}
411
412
MOZ_CAN_RUN_SCRIPT static bool
413
set_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
414
0
{
415
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderCollapse", DOM, cx);
416
0
417
0
  binding_detail::FakeString arg0;
418
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
419
0
    return false;
420
0
  }
421
0
  Maybe<AutoCEReaction> ceReaction;
422
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
423
0
    DocGroup* docGroup = self->GetDocGroup();
424
0
    if (docGroup) {
425
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
426
0
    }
427
0
  }
428
0
  FastErrorResult rv;
429
0
  nsIPrincipal* subjectPrincipal;
430
0
  {
431
0
    JS::Realm* realm = js::GetContextRealm(cx);
432
0
    MOZ_ASSERT(realm);
433
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
434
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
435
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
436
0
      principal = nullptr;
437
0
    }
438
0
439
0
    subjectPrincipal = principal;
440
0
  }
441
0
  self->SetBorderCollapse(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
442
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
443
0
    return false;
444
0
  }
445
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
446
0
447
0
  return true;
448
0
}
449
450
static const JSJitInfo borderCollapse_getterinfo = {
451
  { (JSJitGetterOp)get_borderCollapse },
452
  { prototypes::id::CSS2Properties },
453
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
454
  JSJitInfo::Getter,
455
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
456
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
457
  false,  /* isInfallible. False in setters. */
458
  false,  /* isMovable.  Not relevant for setters. */
459
  false, /* isEliminatable.  Not relevant for setters. */
460
  false, /* isAlwaysInSlot.  Only relevant for getters. */
461
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
462
  false,  /* isTypedMethod.  Only relevant for methods. */
463
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
464
};
465
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
466
static_assert(0 < 1, "There is no slot for us");
467
static const JSJitInfo borderCollapse_setterinfo = {
468
  { (JSJitGetterOp)set_borderCollapse },
469
  { prototypes::id::CSS2Properties },
470
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
471
  JSJitInfo::Setter,
472
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
473
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
474
  false,  /* isInfallible. False in setters. */
475
  false,  /* isMovable.  Not relevant for setters. */
476
  false, /* isEliminatable.  Not relevant for setters. */
477
  false, /* isAlwaysInSlot.  Only relevant for getters. */
478
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
479
  false,  /* isTypedMethod.  Only relevant for methods. */
480
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
481
};
482
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
483
static_assert(0 < 1, "There is no slot for us");
484
485
MOZ_CAN_RUN_SCRIPT static bool
486
get_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
487
0
{
488
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImageRepeat", DOM, cx);
489
0
490
0
  FastErrorResult rv;
491
0
  DOMString result;
492
0
  self->GetBorderImageRepeat(result, rv);
493
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
494
0
    return false;
495
0
  }
496
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
497
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
498
0
    return false;
499
0
  }
500
0
  return true;
501
0
}
502
503
MOZ_CAN_RUN_SCRIPT static bool
504
set_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
505
0
{
506
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImageRepeat", DOM, cx);
507
0
508
0
  binding_detail::FakeString arg0;
509
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
510
0
    return false;
511
0
  }
512
0
  Maybe<AutoCEReaction> ceReaction;
513
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
514
0
    DocGroup* docGroup = self->GetDocGroup();
515
0
    if (docGroup) {
516
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
517
0
    }
518
0
  }
519
0
  FastErrorResult rv;
520
0
  nsIPrincipal* subjectPrincipal;
521
0
  {
522
0
    JS::Realm* realm = js::GetContextRealm(cx);
523
0
    MOZ_ASSERT(realm);
524
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
525
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
526
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
527
0
      principal = nullptr;
528
0
    }
529
0
530
0
    subjectPrincipal = principal;
531
0
  }
532
0
  self->SetBorderImageRepeat(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
533
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
534
0
    return false;
535
0
  }
536
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
537
0
538
0
  return true;
539
0
}
540
541
static const JSJitInfo borderImageRepeat_getterinfo = {
542
  { (JSJitGetterOp)get_borderImageRepeat },
543
  { prototypes::id::CSS2Properties },
544
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
545
  JSJitInfo::Getter,
546
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
547
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
548
  false,  /* isInfallible. False in setters. */
549
  false,  /* isMovable.  Not relevant for setters. */
550
  false, /* isEliminatable.  Not relevant for setters. */
551
  false, /* isAlwaysInSlot.  Only relevant for getters. */
552
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
553
  false,  /* isTypedMethod.  Only relevant for methods. */
554
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
555
};
556
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
557
static_assert(0 < 1, "There is no slot for us");
558
static const JSJitInfo borderImageRepeat_setterinfo = {
559
  { (JSJitGetterOp)set_borderImageRepeat },
560
  { prototypes::id::CSS2Properties },
561
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
562
  JSJitInfo::Setter,
563
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
564
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
565
  false,  /* isInfallible. False in setters. */
566
  false,  /* isMovable.  Not relevant for setters. */
567
  false, /* isEliminatable.  Not relevant for setters. */
568
  false, /* isAlwaysInSlot.  Only relevant for getters. */
569
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
570
  false,  /* isTypedMethod.  Only relevant for methods. */
571
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
572
};
573
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
574
static_assert(0 < 1, "There is no slot for us");
575
576
MOZ_CAN_RUN_SCRIPT static bool
577
get_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
578
0
{
579
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.boxDecorationBreak", DOM, cx);
580
0
581
0
  FastErrorResult rv;
582
0
  DOMString result;
583
0
  self->GetBoxDecorationBreak(result, rv);
584
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
585
0
    return false;
586
0
  }
587
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
588
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
589
0
    return false;
590
0
  }
591
0
  return true;
592
0
}
593
594
MOZ_CAN_RUN_SCRIPT static bool
595
set_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
596
0
{
597
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.boxDecorationBreak", DOM, cx);
598
0
599
0
  binding_detail::FakeString arg0;
600
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
601
0
    return false;
602
0
  }
603
0
  Maybe<AutoCEReaction> ceReaction;
604
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
605
0
    DocGroup* docGroup = self->GetDocGroup();
606
0
    if (docGroup) {
607
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
608
0
    }
609
0
  }
610
0
  FastErrorResult rv;
611
0
  nsIPrincipal* subjectPrincipal;
612
0
  {
613
0
    JS::Realm* realm = js::GetContextRealm(cx);
614
0
    MOZ_ASSERT(realm);
615
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
616
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
617
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
618
0
      principal = nullptr;
619
0
    }
620
0
621
0
    subjectPrincipal = principal;
622
0
  }
623
0
  self->SetBoxDecorationBreak(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
624
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
625
0
    return false;
626
0
  }
627
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
628
0
629
0
  return true;
630
0
}
631
632
static const JSJitInfo boxDecorationBreak_getterinfo = {
633
  { (JSJitGetterOp)get_boxDecorationBreak },
634
  { prototypes::id::CSS2Properties },
635
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
636
  JSJitInfo::Getter,
637
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
638
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
639
  false,  /* isInfallible. False in setters. */
640
  false,  /* isMovable.  Not relevant for setters. */
641
  false, /* isEliminatable.  Not relevant for setters. */
642
  false, /* isAlwaysInSlot.  Only relevant for getters. */
643
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
644
  false,  /* isTypedMethod.  Only relevant for methods. */
645
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
646
};
647
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
648
static_assert(0 < 1, "There is no slot for us");
649
static const JSJitInfo boxDecorationBreak_setterinfo = {
650
  { (JSJitGetterOp)set_boxDecorationBreak },
651
  { prototypes::id::CSS2Properties },
652
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
653
  JSJitInfo::Setter,
654
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
655
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
656
  false,  /* isInfallible. False in setters. */
657
  false,  /* isMovable.  Not relevant for setters. */
658
  false, /* isEliminatable.  Not relevant for setters. */
659
  false, /* isAlwaysInSlot.  Only relevant for getters. */
660
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
661
  false,  /* isTypedMethod.  Only relevant for methods. */
662
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
663
};
664
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
665
static_assert(0 < 1, "There is no slot for us");
666
667
MOZ_CAN_RUN_SCRIPT static bool
668
get_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
669
0
{
670
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.boxSizing", DOM, cx);
671
0
672
0
  FastErrorResult rv;
673
0
  DOMString result;
674
0
  self->GetBoxSizing(result, rv);
675
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
676
0
    return false;
677
0
  }
678
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
679
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
680
0
    return false;
681
0
  }
682
0
  return true;
683
0
}
684
685
MOZ_CAN_RUN_SCRIPT static bool
686
set_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
687
0
{
688
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.boxSizing", DOM, cx);
689
0
690
0
  binding_detail::FakeString arg0;
691
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
692
0
    return false;
693
0
  }
694
0
  Maybe<AutoCEReaction> ceReaction;
695
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
696
0
    DocGroup* docGroup = self->GetDocGroup();
697
0
    if (docGroup) {
698
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
699
0
    }
700
0
  }
701
0
  FastErrorResult rv;
702
0
  nsIPrincipal* subjectPrincipal;
703
0
  {
704
0
    JS::Realm* realm = js::GetContextRealm(cx);
705
0
    MOZ_ASSERT(realm);
706
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
707
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
708
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
709
0
      principal = nullptr;
710
0
    }
711
0
712
0
    subjectPrincipal = principal;
713
0
  }
714
0
  self->SetBoxSizing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
715
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
716
0
    return false;
717
0
  }
718
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
719
0
720
0
  return true;
721
0
}
722
723
static const JSJitInfo boxSizing_getterinfo = {
724
  { (JSJitGetterOp)get_boxSizing },
725
  { prototypes::id::CSS2Properties },
726
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
727
  JSJitInfo::Getter,
728
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
729
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
730
  false,  /* isInfallible. False in setters. */
731
  false,  /* isMovable.  Not relevant for setters. */
732
  false, /* isEliminatable.  Not relevant for setters. */
733
  false, /* isAlwaysInSlot.  Only relevant for getters. */
734
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
735
  false,  /* isTypedMethod.  Only relevant for methods. */
736
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
737
};
738
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
739
static_assert(0 < 1, "There is no slot for us");
740
static const JSJitInfo boxSizing_setterinfo = {
741
  { (JSJitGetterOp)set_boxSizing },
742
  { prototypes::id::CSS2Properties },
743
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
744
  JSJitInfo::Setter,
745
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
746
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
747
  false,  /* isInfallible. False in setters. */
748
  false,  /* isMovable.  Not relevant for setters. */
749
  false, /* isEliminatable.  Not relevant for setters. */
750
  false, /* isAlwaysInSlot.  Only relevant for getters. */
751
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
752
  false,  /* isTypedMethod.  Only relevant for methods. */
753
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
754
};
755
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
756
static_assert(0 < 1, "There is no slot for us");
757
758
MOZ_CAN_RUN_SCRIPT static bool
759
get_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
760
0
{
761
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.captionSide", DOM, cx);
762
0
763
0
  FastErrorResult rv;
764
0
  DOMString result;
765
0
  self->GetCaptionSide(result, rv);
766
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
767
0
    return false;
768
0
  }
769
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
770
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
771
0
    return false;
772
0
  }
773
0
  return true;
774
0
}
775
776
MOZ_CAN_RUN_SCRIPT static bool
777
set_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
778
0
{
779
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.captionSide", DOM, cx);
780
0
781
0
  binding_detail::FakeString arg0;
782
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
783
0
    return false;
784
0
  }
785
0
  Maybe<AutoCEReaction> ceReaction;
786
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
787
0
    DocGroup* docGroup = self->GetDocGroup();
788
0
    if (docGroup) {
789
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
790
0
    }
791
0
  }
792
0
  FastErrorResult rv;
793
0
  nsIPrincipal* subjectPrincipal;
794
0
  {
795
0
    JS::Realm* realm = js::GetContextRealm(cx);
796
0
    MOZ_ASSERT(realm);
797
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
798
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
799
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
800
0
      principal = nullptr;
801
0
    }
802
0
803
0
    subjectPrincipal = principal;
804
0
  }
805
0
  self->SetCaptionSide(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
806
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
807
0
    return false;
808
0
  }
809
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
810
0
811
0
  return true;
812
0
}
813
814
static const JSJitInfo captionSide_getterinfo = {
815
  { (JSJitGetterOp)get_captionSide },
816
  { prototypes::id::CSS2Properties },
817
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
818
  JSJitInfo::Getter,
819
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
820
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
821
  false,  /* isInfallible. False in setters. */
822
  false,  /* isMovable.  Not relevant for setters. */
823
  false, /* isEliminatable.  Not relevant for setters. */
824
  false, /* isAlwaysInSlot.  Only relevant for getters. */
825
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
826
  false,  /* isTypedMethod.  Only relevant for methods. */
827
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
828
};
829
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
830
static_assert(0 < 1, "There is no slot for us");
831
static const JSJitInfo captionSide_setterinfo = {
832
  { (JSJitGetterOp)set_captionSide },
833
  { prototypes::id::CSS2Properties },
834
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
835
  JSJitInfo::Setter,
836
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
837
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
838
  false,  /* isInfallible. False in setters. */
839
  false,  /* isMovable.  Not relevant for setters. */
840
  false, /* isEliminatable.  Not relevant for setters. */
841
  false, /* isAlwaysInSlot.  Only relevant for getters. */
842
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
843
  false,  /* isTypedMethod.  Only relevant for methods. */
844
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
845
};
846
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
847
static_assert(0 < 1, "There is no slot for us");
848
849
MOZ_CAN_RUN_SCRIPT static bool
850
get_clear(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
851
0
{
852
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.clear", DOM, cx);
853
0
854
0
  FastErrorResult rv;
855
0
  DOMString result;
856
0
  self->GetClear(result, rv);
857
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
858
0
    return false;
859
0
  }
860
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
861
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
862
0
    return false;
863
0
  }
864
0
  return true;
865
0
}
866
867
MOZ_CAN_RUN_SCRIPT static bool
868
set_clear(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
869
0
{
870
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.clear", DOM, cx);
871
0
872
0
  binding_detail::FakeString arg0;
873
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
874
0
    return false;
875
0
  }
876
0
  Maybe<AutoCEReaction> ceReaction;
877
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
878
0
    DocGroup* docGroup = self->GetDocGroup();
879
0
    if (docGroup) {
880
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
881
0
    }
882
0
  }
883
0
  FastErrorResult rv;
884
0
  nsIPrincipal* subjectPrincipal;
885
0
  {
886
0
    JS::Realm* realm = js::GetContextRealm(cx);
887
0
    MOZ_ASSERT(realm);
888
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
889
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
890
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
891
0
      principal = nullptr;
892
0
    }
893
0
894
0
    subjectPrincipal = principal;
895
0
  }
896
0
  self->SetClear(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
897
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
898
0
    return false;
899
0
  }
900
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
901
0
902
0
  return true;
903
0
}
904
905
static const JSJitInfo clear_getterinfo = {
906
  { (JSJitGetterOp)get_clear },
907
  { prototypes::id::CSS2Properties },
908
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
909
  JSJitInfo::Getter,
910
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
911
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
912
  false,  /* isInfallible. False in setters. */
913
  false,  /* isMovable.  Not relevant for setters. */
914
  false, /* isEliminatable.  Not relevant for setters. */
915
  false, /* isAlwaysInSlot.  Only relevant for getters. */
916
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
917
  false,  /* isTypedMethod.  Only relevant for methods. */
918
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
919
};
920
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
921
static_assert(0 < 1, "There is no slot for us");
922
static const JSJitInfo clear_setterinfo = {
923
  { (JSJitGetterOp)set_clear },
924
  { prototypes::id::CSS2Properties },
925
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
926
  JSJitInfo::Setter,
927
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
928
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
929
  false,  /* isInfallible. False in setters. */
930
  false,  /* isMovable.  Not relevant for setters. */
931
  false, /* isEliminatable.  Not relevant for setters. */
932
  false, /* isAlwaysInSlot.  Only relevant for getters. */
933
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
934
  false,  /* isTypedMethod.  Only relevant for methods. */
935
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
936
};
937
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
938
static_assert(0 < 1, "There is no slot for us");
939
940
MOZ_CAN_RUN_SCRIPT static bool
941
get_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
942
0
{
943
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.clipRule", DOM, cx);
944
0
945
0
  FastErrorResult rv;
946
0
  DOMString result;
947
0
  self->GetClipRule(result, rv);
948
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
949
0
    return false;
950
0
  }
951
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
952
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
953
0
    return false;
954
0
  }
955
0
  return true;
956
0
}
957
958
MOZ_CAN_RUN_SCRIPT static bool
959
set_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
960
0
{
961
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.clipRule", DOM, cx);
962
0
963
0
  binding_detail::FakeString arg0;
964
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
965
0
    return false;
966
0
  }
967
0
  Maybe<AutoCEReaction> ceReaction;
968
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
969
0
    DocGroup* docGroup = self->GetDocGroup();
970
0
    if (docGroup) {
971
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
972
0
    }
973
0
  }
974
0
  FastErrorResult rv;
975
0
  nsIPrincipal* subjectPrincipal;
976
0
  {
977
0
    JS::Realm* realm = js::GetContextRealm(cx);
978
0
    MOZ_ASSERT(realm);
979
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
980
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
981
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
982
0
      principal = nullptr;
983
0
    }
984
0
985
0
    subjectPrincipal = principal;
986
0
  }
987
0
  self->SetClipRule(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
988
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
989
0
    return false;
990
0
  }
991
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
992
0
993
0
  return true;
994
0
}
995
996
static const JSJitInfo clipRule_getterinfo = {
997
  { (JSJitGetterOp)get_clipRule },
998
  { prototypes::id::CSS2Properties },
999
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1000
  JSJitInfo::Getter,
1001
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1002
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1003
  false,  /* isInfallible. False in setters. */
1004
  false,  /* isMovable.  Not relevant for setters. */
1005
  false, /* isEliminatable.  Not relevant for setters. */
1006
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1007
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1008
  false,  /* isTypedMethod.  Only relevant for methods. */
1009
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1010
};
1011
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1012
static_assert(0 < 1, "There is no slot for us");
1013
static const JSJitInfo clipRule_setterinfo = {
1014
  { (JSJitGetterOp)set_clipRule },
1015
  { prototypes::id::CSS2Properties },
1016
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1017
  JSJitInfo::Setter,
1018
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1019
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1020
  false,  /* isInfallible. False in setters. */
1021
  false,  /* isMovable.  Not relevant for setters. */
1022
  false, /* isEliminatable.  Not relevant for setters. */
1023
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1024
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1025
  false,  /* isTypedMethod.  Only relevant for methods. */
1026
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1027
};
1028
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1029
static_assert(0 < 1, "There is no slot for us");
1030
1031
MOZ_CAN_RUN_SCRIPT static bool
1032
get_colorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1033
0
{
1034
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.colorAdjust", DOM, cx);
1035
0
1036
0
  FastErrorResult rv;
1037
0
  DOMString result;
1038
0
  self->GetColorAdjust(result, rv);
1039
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1040
0
    return false;
1041
0
  }
1042
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1043
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1044
0
    return false;
1045
0
  }
1046
0
  return true;
1047
0
}
1048
1049
MOZ_CAN_RUN_SCRIPT static bool
1050
set_colorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1051
0
{
1052
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.colorAdjust", DOM, cx);
1053
0
1054
0
  binding_detail::FakeString arg0;
1055
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1056
0
    return false;
1057
0
  }
1058
0
  Maybe<AutoCEReaction> ceReaction;
1059
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1060
0
    DocGroup* docGroup = self->GetDocGroup();
1061
0
    if (docGroup) {
1062
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1063
0
    }
1064
0
  }
1065
0
  FastErrorResult rv;
1066
0
  nsIPrincipal* subjectPrincipal;
1067
0
  {
1068
0
    JS::Realm* realm = js::GetContextRealm(cx);
1069
0
    MOZ_ASSERT(realm);
1070
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1071
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1072
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1073
0
      principal = nullptr;
1074
0
    }
1075
0
1076
0
    subjectPrincipal = principal;
1077
0
  }
1078
0
  self->SetColorAdjust(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1079
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1080
0
    return false;
1081
0
  }
1082
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1083
0
1084
0
  return true;
1085
0
}
1086
1087
static const JSJitInfo colorAdjust_getterinfo = {
1088
  { (JSJitGetterOp)get_colorAdjust },
1089
  { prototypes::id::CSS2Properties },
1090
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1091
  JSJitInfo::Getter,
1092
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1093
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1094
  false,  /* isInfallible. False in setters. */
1095
  false,  /* isMovable.  Not relevant for setters. */
1096
  false, /* isEliminatable.  Not relevant for setters. */
1097
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1098
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1099
  false,  /* isTypedMethod.  Only relevant for methods. */
1100
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1101
};
1102
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1103
static_assert(0 < 1, "There is no slot for us");
1104
static const JSJitInfo colorAdjust_setterinfo = {
1105
  { (JSJitGetterOp)set_colorAdjust },
1106
  { prototypes::id::CSS2Properties },
1107
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1108
  JSJitInfo::Setter,
1109
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1110
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1111
  false,  /* isInfallible. False in setters. */
1112
  false,  /* isMovable.  Not relevant for setters. */
1113
  false, /* isEliminatable.  Not relevant for setters. */
1114
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1115
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1116
  false,  /* isTypedMethod.  Only relevant for methods. */
1117
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1118
};
1119
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1120
static_assert(0 < 1, "There is no slot for us");
1121
1122
MOZ_CAN_RUN_SCRIPT static bool
1123
get_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1124
0
{
1125
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.colorInterpolation", DOM, cx);
1126
0
1127
0
  FastErrorResult rv;
1128
0
  DOMString result;
1129
0
  self->GetColorInterpolation(result, rv);
1130
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1131
0
    return false;
1132
0
  }
1133
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1134
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1135
0
    return false;
1136
0
  }
1137
0
  return true;
1138
0
}
1139
1140
MOZ_CAN_RUN_SCRIPT static bool
1141
set_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1142
0
{
1143
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.colorInterpolation", DOM, cx);
1144
0
1145
0
  binding_detail::FakeString arg0;
1146
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1147
0
    return false;
1148
0
  }
1149
0
  Maybe<AutoCEReaction> ceReaction;
1150
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1151
0
    DocGroup* docGroup = self->GetDocGroup();
1152
0
    if (docGroup) {
1153
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1154
0
    }
1155
0
  }
1156
0
  FastErrorResult rv;
1157
0
  nsIPrincipal* subjectPrincipal;
1158
0
  {
1159
0
    JS::Realm* realm = js::GetContextRealm(cx);
1160
0
    MOZ_ASSERT(realm);
1161
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1162
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1163
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1164
0
      principal = nullptr;
1165
0
    }
1166
0
1167
0
    subjectPrincipal = principal;
1168
0
  }
1169
0
  self->SetColorInterpolation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1170
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1171
0
    return false;
1172
0
  }
1173
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1174
0
1175
0
  return true;
1176
0
}
1177
1178
static const JSJitInfo colorInterpolation_getterinfo = {
1179
  { (JSJitGetterOp)get_colorInterpolation },
1180
  { prototypes::id::CSS2Properties },
1181
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1182
  JSJitInfo::Getter,
1183
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1184
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1185
  false,  /* isInfallible. False in setters. */
1186
  false,  /* isMovable.  Not relevant for setters. */
1187
  false, /* isEliminatable.  Not relevant for setters. */
1188
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1189
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1190
  false,  /* isTypedMethod.  Only relevant for methods. */
1191
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1192
};
1193
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1194
static_assert(0 < 1, "There is no slot for us");
1195
static const JSJitInfo colorInterpolation_setterinfo = {
1196
  { (JSJitGetterOp)set_colorInterpolation },
1197
  { prototypes::id::CSS2Properties },
1198
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1199
  JSJitInfo::Setter,
1200
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1201
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1202
  false,  /* isInfallible. False in setters. */
1203
  false,  /* isMovable.  Not relevant for setters. */
1204
  false, /* isEliminatable.  Not relevant for setters. */
1205
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1206
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1207
  false,  /* isTypedMethod.  Only relevant for methods. */
1208
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1209
};
1210
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1211
static_assert(0 < 1, "There is no slot for us");
1212
1213
MOZ_CAN_RUN_SCRIPT static bool
1214
get_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1215
0
{
1216
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.colorInterpolationFilters", DOM, cx);
1217
0
1218
0
  FastErrorResult rv;
1219
0
  DOMString result;
1220
0
  self->GetColorInterpolationFilters(result, rv);
1221
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1222
0
    return false;
1223
0
  }
1224
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1225
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1226
0
    return false;
1227
0
  }
1228
0
  return true;
1229
0
}
1230
1231
MOZ_CAN_RUN_SCRIPT static bool
1232
set_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1233
0
{
1234
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.colorInterpolationFilters", DOM, cx);
1235
0
1236
0
  binding_detail::FakeString arg0;
1237
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1238
0
    return false;
1239
0
  }
1240
0
  Maybe<AutoCEReaction> ceReaction;
1241
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1242
0
    DocGroup* docGroup = self->GetDocGroup();
1243
0
    if (docGroup) {
1244
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1245
0
    }
1246
0
  }
1247
0
  FastErrorResult rv;
1248
0
  nsIPrincipal* subjectPrincipal;
1249
0
  {
1250
0
    JS::Realm* realm = js::GetContextRealm(cx);
1251
0
    MOZ_ASSERT(realm);
1252
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1253
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1254
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1255
0
      principal = nullptr;
1256
0
    }
1257
0
1258
0
    subjectPrincipal = principal;
1259
0
  }
1260
0
  self->SetColorInterpolationFilters(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1261
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1262
0
    return false;
1263
0
  }
1264
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1265
0
1266
0
  return true;
1267
0
}
1268
1269
static const JSJitInfo colorInterpolationFilters_getterinfo = {
1270
  { (JSJitGetterOp)get_colorInterpolationFilters },
1271
  { prototypes::id::CSS2Properties },
1272
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1273
  JSJitInfo::Getter,
1274
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1275
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1276
  false,  /* isInfallible. False in setters. */
1277
  false,  /* isMovable.  Not relevant for setters. */
1278
  false, /* isEliminatable.  Not relevant for setters. */
1279
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1280
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1281
  false,  /* isTypedMethod.  Only relevant for methods. */
1282
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1283
};
1284
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1285
static_assert(0 < 1, "There is no slot for us");
1286
static const JSJitInfo colorInterpolationFilters_setterinfo = {
1287
  { (JSJitGetterOp)set_colorInterpolationFilters },
1288
  { prototypes::id::CSS2Properties },
1289
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1290
  JSJitInfo::Setter,
1291
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1292
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1293
  false,  /* isInfallible. False in setters. */
1294
  false,  /* isMovable.  Not relevant for setters. */
1295
  false, /* isEliminatable.  Not relevant for setters. */
1296
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1297
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1298
  false,  /* isTypedMethod.  Only relevant for methods. */
1299
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1300
};
1301
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1302
static_assert(0 < 1, "There is no slot for us");
1303
1304
MOZ_CAN_RUN_SCRIPT static bool
1305
get_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1306
0
{
1307
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnCount", DOM, cx);
1308
0
1309
0
  FastErrorResult rv;
1310
0
  DOMString result;
1311
0
  self->GetColumnCount(result, rv);
1312
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1313
0
    return false;
1314
0
  }
1315
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1316
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1317
0
    return false;
1318
0
  }
1319
0
  return true;
1320
0
}
1321
1322
MOZ_CAN_RUN_SCRIPT static bool
1323
set_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1324
0
{
1325
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnCount", DOM, cx);
1326
0
1327
0
  binding_detail::FakeString arg0;
1328
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1329
0
    return false;
1330
0
  }
1331
0
  Maybe<AutoCEReaction> ceReaction;
1332
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1333
0
    DocGroup* docGroup = self->GetDocGroup();
1334
0
    if (docGroup) {
1335
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1336
0
    }
1337
0
  }
1338
0
  FastErrorResult rv;
1339
0
  nsIPrincipal* subjectPrincipal;
1340
0
  {
1341
0
    JS::Realm* realm = js::GetContextRealm(cx);
1342
0
    MOZ_ASSERT(realm);
1343
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1344
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1345
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1346
0
      principal = nullptr;
1347
0
    }
1348
0
1349
0
    subjectPrincipal = principal;
1350
0
  }
1351
0
  self->SetColumnCount(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1352
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1353
0
    return false;
1354
0
  }
1355
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1356
0
1357
0
  return true;
1358
0
}
1359
1360
static const JSJitInfo columnCount_getterinfo = {
1361
  { (JSJitGetterOp)get_columnCount },
1362
  { prototypes::id::CSS2Properties },
1363
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1364
  JSJitInfo::Getter,
1365
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1366
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1367
  false,  /* isInfallible. False in setters. */
1368
  false,  /* isMovable.  Not relevant for setters. */
1369
  false, /* isEliminatable.  Not relevant for setters. */
1370
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1371
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1372
  false,  /* isTypedMethod.  Only relevant for methods. */
1373
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1374
};
1375
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1376
static_assert(0 < 1, "There is no slot for us");
1377
static const JSJitInfo columnCount_setterinfo = {
1378
  { (JSJitGetterOp)set_columnCount },
1379
  { prototypes::id::CSS2Properties },
1380
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1381
  JSJitInfo::Setter,
1382
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1383
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1384
  false,  /* isInfallible. False in setters. */
1385
  false,  /* isMovable.  Not relevant for setters. */
1386
  false, /* isEliminatable.  Not relevant for setters. */
1387
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1388
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1389
  false,  /* isTypedMethod.  Only relevant for methods. */
1390
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1391
};
1392
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1393
static_assert(0 < 1, "There is no slot for us");
1394
1395
MOZ_CAN_RUN_SCRIPT static bool
1396
get_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1397
0
{
1398
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnFill", DOM, cx);
1399
0
1400
0
  FastErrorResult rv;
1401
0
  DOMString result;
1402
0
  self->GetColumnFill(result, rv);
1403
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1404
0
    return false;
1405
0
  }
1406
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1407
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1408
0
    return false;
1409
0
  }
1410
0
  return true;
1411
0
}
1412
1413
MOZ_CAN_RUN_SCRIPT static bool
1414
set_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1415
0
{
1416
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnFill", DOM, cx);
1417
0
1418
0
  binding_detail::FakeString arg0;
1419
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1420
0
    return false;
1421
0
  }
1422
0
  Maybe<AutoCEReaction> ceReaction;
1423
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1424
0
    DocGroup* docGroup = self->GetDocGroup();
1425
0
    if (docGroup) {
1426
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1427
0
    }
1428
0
  }
1429
0
  FastErrorResult rv;
1430
0
  nsIPrincipal* subjectPrincipal;
1431
0
  {
1432
0
    JS::Realm* realm = js::GetContextRealm(cx);
1433
0
    MOZ_ASSERT(realm);
1434
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1435
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1436
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1437
0
      principal = nullptr;
1438
0
    }
1439
0
1440
0
    subjectPrincipal = principal;
1441
0
  }
1442
0
  self->SetColumnFill(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1443
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1444
0
    return false;
1445
0
  }
1446
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1447
0
1448
0
  return true;
1449
0
}
1450
1451
static const JSJitInfo columnFill_getterinfo = {
1452
  { (JSJitGetterOp)get_columnFill },
1453
  { prototypes::id::CSS2Properties },
1454
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1455
  JSJitInfo::Getter,
1456
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1457
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1458
  false,  /* isInfallible. False in setters. */
1459
  false,  /* isMovable.  Not relevant for setters. */
1460
  false, /* isEliminatable.  Not relevant for setters. */
1461
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1462
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1463
  false,  /* isTypedMethod.  Only relevant for methods. */
1464
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1465
};
1466
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1467
static_assert(0 < 1, "There is no slot for us");
1468
static const JSJitInfo columnFill_setterinfo = {
1469
  { (JSJitGetterOp)set_columnFill },
1470
  { prototypes::id::CSS2Properties },
1471
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1472
  JSJitInfo::Setter,
1473
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1474
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1475
  false,  /* isInfallible. False in setters. */
1476
  false,  /* isMovable.  Not relevant for setters. */
1477
  false, /* isEliminatable.  Not relevant for setters. */
1478
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1479
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1480
  false,  /* isTypedMethod.  Only relevant for methods. */
1481
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1482
};
1483
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1484
static_assert(0 < 1, "There is no slot for us");
1485
1486
MOZ_CAN_RUN_SCRIPT static bool
1487
get_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1488
0
{
1489
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnRuleStyle", DOM, cx);
1490
0
1491
0
  FastErrorResult rv;
1492
0
  DOMString result;
1493
0
  self->GetColumnRuleStyle(result, rv);
1494
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1495
0
    return false;
1496
0
  }
1497
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1498
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1499
0
    return false;
1500
0
  }
1501
0
  return true;
1502
0
}
1503
1504
MOZ_CAN_RUN_SCRIPT static bool
1505
set_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1506
0
{
1507
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnRuleStyle", DOM, cx);
1508
0
1509
0
  binding_detail::FakeString arg0;
1510
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1511
0
    return false;
1512
0
  }
1513
0
  Maybe<AutoCEReaction> ceReaction;
1514
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1515
0
    DocGroup* docGroup = self->GetDocGroup();
1516
0
    if (docGroup) {
1517
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1518
0
    }
1519
0
  }
1520
0
  FastErrorResult rv;
1521
0
  nsIPrincipal* subjectPrincipal;
1522
0
  {
1523
0
    JS::Realm* realm = js::GetContextRealm(cx);
1524
0
    MOZ_ASSERT(realm);
1525
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1526
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1527
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1528
0
      principal = nullptr;
1529
0
    }
1530
0
1531
0
    subjectPrincipal = principal;
1532
0
  }
1533
0
  self->SetColumnRuleStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1534
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1535
0
    return false;
1536
0
  }
1537
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1538
0
1539
0
  return true;
1540
0
}
1541
1542
static const JSJitInfo columnRuleStyle_getterinfo = {
1543
  { (JSJitGetterOp)get_columnRuleStyle },
1544
  { prototypes::id::CSS2Properties },
1545
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1546
  JSJitInfo::Getter,
1547
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1548
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1549
  false,  /* isInfallible. False in setters. */
1550
  false,  /* isMovable.  Not relevant for setters. */
1551
  false, /* isEliminatable.  Not relevant for setters. */
1552
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1553
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1554
  false,  /* isTypedMethod.  Only relevant for methods. */
1555
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1556
};
1557
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1558
static_assert(0 < 1, "There is no slot for us");
1559
static const JSJitInfo columnRuleStyle_setterinfo = {
1560
  { (JSJitGetterOp)set_columnRuleStyle },
1561
  { prototypes::id::CSS2Properties },
1562
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1563
  JSJitInfo::Setter,
1564
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1565
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1566
  false,  /* isInfallible. False in setters. */
1567
  false,  /* isMovable.  Not relevant for setters. */
1568
  false, /* isEliminatable.  Not relevant for setters. */
1569
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1570
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1571
  false,  /* isTypedMethod.  Only relevant for methods. */
1572
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1573
};
1574
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1575
static_assert(0 < 1, "There is no slot for us");
1576
1577
MOZ_CAN_RUN_SCRIPT static bool
1578
get_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1579
0
{
1580
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnSpan", DOM, cx);
1581
0
1582
0
  FastErrorResult rv;
1583
0
  DOMString result;
1584
0
  self->GetColumnSpan(result, rv);
1585
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1586
0
    return false;
1587
0
  }
1588
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1589
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1590
0
    return false;
1591
0
  }
1592
0
  return true;
1593
0
}
1594
1595
MOZ_CAN_RUN_SCRIPT static bool
1596
set_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1597
0
{
1598
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnSpan", DOM, cx);
1599
0
1600
0
  binding_detail::FakeString arg0;
1601
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1602
0
    return false;
1603
0
  }
1604
0
  Maybe<AutoCEReaction> ceReaction;
1605
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1606
0
    DocGroup* docGroup = self->GetDocGroup();
1607
0
    if (docGroup) {
1608
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1609
0
    }
1610
0
  }
1611
0
  FastErrorResult rv;
1612
0
  nsIPrincipal* subjectPrincipal;
1613
0
  {
1614
0
    JS::Realm* realm = js::GetContextRealm(cx);
1615
0
    MOZ_ASSERT(realm);
1616
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1617
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1618
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1619
0
      principal = nullptr;
1620
0
    }
1621
0
1622
0
    subjectPrincipal = principal;
1623
0
  }
1624
0
  self->SetColumnSpan(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1625
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1626
0
    return false;
1627
0
  }
1628
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1629
0
1630
0
  return true;
1631
0
}
1632
1633
static const JSJitInfo columnSpan_getterinfo = {
1634
  { (JSJitGetterOp)get_columnSpan },
1635
  { prototypes::id::CSS2Properties },
1636
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1637
  JSJitInfo::Getter,
1638
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1639
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1640
  false,  /* isInfallible. False in setters. */
1641
  false,  /* isMovable.  Not relevant for setters. */
1642
  false, /* isEliminatable.  Not relevant for setters. */
1643
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1644
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1645
  false,  /* isTypedMethod.  Only relevant for methods. */
1646
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1647
};
1648
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1649
static_assert(0 < 1, "There is no slot for us");
1650
static const JSJitInfo columnSpan_setterinfo = {
1651
  { (JSJitGetterOp)set_columnSpan },
1652
  { prototypes::id::CSS2Properties },
1653
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1654
  JSJitInfo::Setter,
1655
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1656
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1657
  false,  /* isInfallible. False in setters. */
1658
  false,  /* isMovable.  Not relevant for setters. */
1659
  false, /* isEliminatable.  Not relevant for setters. */
1660
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1661
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1662
  false,  /* isTypedMethod.  Only relevant for methods. */
1663
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1664
};
1665
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1666
static_assert(0 < 1, "There is no slot for us");
1667
1668
MOZ_CAN_RUN_SCRIPT static bool
1669
get_contain(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1670
0
{
1671
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.contain", DOM, cx);
1672
0
1673
0
  FastErrorResult rv;
1674
0
  DOMString result;
1675
0
  self->GetContain(result, rv);
1676
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1677
0
    return false;
1678
0
  }
1679
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1680
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1681
0
    return false;
1682
0
  }
1683
0
  return true;
1684
0
}
1685
1686
MOZ_CAN_RUN_SCRIPT static bool
1687
set_contain(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1688
0
{
1689
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.contain", DOM, cx);
1690
0
1691
0
  binding_detail::FakeString arg0;
1692
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1693
0
    return false;
1694
0
  }
1695
0
  Maybe<AutoCEReaction> ceReaction;
1696
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1697
0
    DocGroup* docGroup = self->GetDocGroup();
1698
0
    if (docGroup) {
1699
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1700
0
    }
1701
0
  }
1702
0
  FastErrorResult rv;
1703
0
  nsIPrincipal* subjectPrincipal;
1704
0
  {
1705
0
    JS::Realm* realm = js::GetContextRealm(cx);
1706
0
    MOZ_ASSERT(realm);
1707
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1708
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1709
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1710
0
      principal = nullptr;
1711
0
    }
1712
0
1713
0
    subjectPrincipal = principal;
1714
0
  }
1715
0
  self->SetContain(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1716
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1717
0
    return false;
1718
0
  }
1719
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1720
0
1721
0
  return true;
1722
0
}
1723
1724
static const JSJitInfo contain_getterinfo = {
1725
  { (JSJitGetterOp)get_contain },
1726
  { prototypes::id::CSS2Properties },
1727
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1728
  JSJitInfo::Getter,
1729
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1730
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1731
  false,  /* isInfallible. False in setters. */
1732
  false,  /* isMovable.  Not relevant for setters. */
1733
  false, /* isEliminatable.  Not relevant for setters. */
1734
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1735
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1736
  false,  /* isTypedMethod.  Only relevant for methods. */
1737
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1738
};
1739
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1740
static_assert(0 < 1, "There is no slot for us");
1741
static const JSJitInfo contain_setterinfo = {
1742
  { (JSJitGetterOp)set_contain },
1743
  { prototypes::id::CSS2Properties },
1744
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1745
  JSJitInfo::Setter,
1746
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1747
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1748
  false,  /* isInfallible. False in setters. */
1749
  false,  /* isMovable.  Not relevant for setters. */
1750
  false, /* isEliminatable.  Not relevant for setters. */
1751
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1752
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1753
  false,  /* isTypedMethod.  Only relevant for methods. */
1754
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1755
};
1756
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1757
static_assert(0 < 1, "There is no slot for us");
1758
1759
MOZ_CAN_RUN_SCRIPT static bool
1760
get_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1761
0
{
1762
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.direction", DOM, cx);
1763
0
1764
0
  FastErrorResult rv;
1765
0
  DOMString result;
1766
0
  self->GetDirection(result, rv);
1767
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1768
0
    return false;
1769
0
  }
1770
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1771
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1772
0
    return false;
1773
0
  }
1774
0
  return true;
1775
0
}
1776
1777
MOZ_CAN_RUN_SCRIPT static bool
1778
set_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1779
0
{
1780
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.direction", DOM, cx);
1781
0
1782
0
  binding_detail::FakeString arg0;
1783
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1784
0
    return false;
1785
0
  }
1786
0
  Maybe<AutoCEReaction> ceReaction;
1787
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1788
0
    DocGroup* docGroup = self->GetDocGroup();
1789
0
    if (docGroup) {
1790
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1791
0
    }
1792
0
  }
1793
0
  FastErrorResult rv;
1794
0
  nsIPrincipal* subjectPrincipal;
1795
0
  {
1796
0
    JS::Realm* realm = js::GetContextRealm(cx);
1797
0
    MOZ_ASSERT(realm);
1798
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1799
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1800
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1801
0
      principal = nullptr;
1802
0
    }
1803
0
1804
0
    subjectPrincipal = principal;
1805
0
  }
1806
0
  self->SetDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1807
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1808
0
    return false;
1809
0
  }
1810
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1811
0
1812
0
  return true;
1813
0
}
1814
1815
static const JSJitInfo direction_getterinfo = {
1816
  { (JSJitGetterOp)get_direction },
1817
  { prototypes::id::CSS2Properties },
1818
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1819
  JSJitInfo::Getter,
1820
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1821
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1822
  false,  /* isInfallible. False in setters. */
1823
  false,  /* isMovable.  Not relevant for setters. */
1824
  false, /* isEliminatable.  Not relevant for setters. */
1825
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1826
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1827
  false,  /* isTypedMethod.  Only relevant for methods. */
1828
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1829
};
1830
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1831
static_assert(0 < 1, "There is no slot for us");
1832
static const JSJitInfo direction_setterinfo = {
1833
  { (JSJitGetterOp)set_direction },
1834
  { prototypes::id::CSS2Properties },
1835
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1836
  JSJitInfo::Setter,
1837
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1838
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1839
  false,  /* isInfallible. False in setters. */
1840
  false,  /* isMovable.  Not relevant for setters. */
1841
  false, /* isEliminatable.  Not relevant for setters. */
1842
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1843
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1844
  false,  /* isTypedMethod.  Only relevant for methods. */
1845
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1846
};
1847
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1848
static_assert(0 < 1, "There is no slot for us");
1849
1850
MOZ_CAN_RUN_SCRIPT static bool
1851
get_display(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1852
0
{
1853
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.display", DOM, cx);
1854
0
1855
0
  FastErrorResult rv;
1856
0
  DOMString result;
1857
0
  self->GetDisplay(result, rv);
1858
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1859
0
    return false;
1860
0
  }
1861
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1862
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1863
0
    return false;
1864
0
  }
1865
0
  return true;
1866
0
}
1867
1868
MOZ_CAN_RUN_SCRIPT static bool
1869
set_display(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1870
0
{
1871
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.display", DOM, cx);
1872
0
1873
0
  binding_detail::FakeString arg0;
1874
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1875
0
    return false;
1876
0
  }
1877
0
  Maybe<AutoCEReaction> ceReaction;
1878
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1879
0
    DocGroup* docGroup = self->GetDocGroup();
1880
0
    if (docGroup) {
1881
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1882
0
    }
1883
0
  }
1884
0
  FastErrorResult rv;
1885
0
  nsIPrincipal* subjectPrincipal;
1886
0
  {
1887
0
    JS::Realm* realm = js::GetContextRealm(cx);
1888
0
    MOZ_ASSERT(realm);
1889
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1890
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1891
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1892
0
      principal = nullptr;
1893
0
    }
1894
0
1895
0
    subjectPrincipal = principal;
1896
0
  }
1897
0
  self->SetDisplay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1898
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1899
0
    return false;
1900
0
  }
1901
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1902
0
1903
0
  return true;
1904
0
}
1905
1906
static const JSJitInfo display_getterinfo = {
1907
  { (JSJitGetterOp)get_display },
1908
  { prototypes::id::CSS2Properties },
1909
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1910
  JSJitInfo::Getter,
1911
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1912
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
1913
  false,  /* isInfallible. False in setters. */
1914
  false,  /* isMovable.  Not relevant for setters. */
1915
  false, /* isEliminatable.  Not relevant for setters. */
1916
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1917
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1918
  false,  /* isTypedMethod.  Only relevant for methods. */
1919
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1920
};
1921
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1922
static_assert(0 < 1, "There is no slot for us");
1923
static const JSJitInfo display_setterinfo = {
1924
  { (JSJitGetterOp)set_display },
1925
  { prototypes::id::CSS2Properties },
1926
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
1927
  JSJitInfo::Setter,
1928
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
1929
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
1930
  false,  /* isInfallible. False in setters. */
1931
  false,  /* isMovable.  Not relevant for setters. */
1932
  false, /* isEliminatable.  Not relevant for setters. */
1933
  false, /* isAlwaysInSlot.  Only relevant for getters. */
1934
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
1935
  false,  /* isTypedMethod.  Only relevant for methods. */
1936
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
1937
};
1938
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
1939
static_assert(0 < 1, "There is no slot for us");
1940
1941
MOZ_CAN_RUN_SCRIPT static bool
1942
get_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
1943
0
{
1944
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.dominantBaseline", DOM, cx);
1945
0
1946
0
  FastErrorResult rv;
1947
0
  DOMString result;
1948
0
  self->GetDominantBaseline(result, rv);
1949
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1950
0
    return false;
1951
0
  }
1952
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1953
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
1954
0
    return false;
1955
0
  }
1956
0
  return true;
1957
0
}
1958
1959
MOZ_CAN_RUN_SCRIPT static bool
1960
set_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
1961
0
{
1962
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.dominantBaseline", DOM, cx);
1963
0
1964
0
  binding_detail::FakeString arg0;
1965
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
1966
0
    return false;
1967
0
  }
1968
0
  Maybe<AutoCEReaction> ceReaction;
1969
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
1970
0
    DocGroup* docGroup = self->GetDocGroup();
1971
0
    if (docGroup) {
1972
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
1973
0
    }
1974
0
  }
1975
0
  FastErrorResult rv;
1976
0
  nsIPrincipal* subjectPrincipal;
1977
0
  {
1978
0
    JS::Realm* realm = js::GetContextRealm(cx);
1979
0
    MOZ_ASSERT(realm);
1980
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
1981
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
1982
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
1983
0
      principal = nullptr;
1984
0
    }
1985
0
1986
0
    subjectPrincipal = principal;
1987
0
  }
1988
0
  self->SetDominantBaseline(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
1989
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
1990
0
    return false;
1991
0
  }
1992
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
1993
0
1994
0
  return true;
1995
0
}
1996
1997
static const JSJitInfo dominantBaseline_getterinfo = {
1998
  { (JSJitGetterOp)get_dominantBaseline },
1999
  { prototypes::id::CSS2Properties },
2000
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2001
  JSJitInfo::Getter,
2002
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2003
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2004
  false,  /* isInfallible. False in setters. */
2005
  false,  /* isMovable.  Not relevant for setters. */
2006
  false, /* isEliminatable.  Not relevant for setters. */
2007
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2008
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2009
  false,  /* isTypedMethod.  Only relevant for methods. */
2010
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2011
};
2012
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2013
static_assert(0 < 1, "There is no slot for us");
2014
static const JSJitInfo dominantBaseline_setterinfo = {
2015
  { (JSJitGetterOp)set_dominantBaseline },
2016
  { prototypes::id::CSS2Properties },
2017
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2018
  JSJitInfo::Setter,
2019
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2020
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2021
  false,  /* isInfallible. False in setters. */
2022
  false,  /* isMovable.  Not relevant for setters. */
2023
  false, /* isEliminatable.  Not relevant for setters. */
2024
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2025
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2026
  false,  /* isTypedMethod.  Only relevant for methods. */
2027
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2028
};
2029
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2030
static_assert(0 < 1, "There is no slot for us");
2031
2032
MOZ_CAN_RUN_SCRIPT static bool
2033
get_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2034
0
{
2035
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.emptyCells", DOM, cx);
2036
0
2037
0
  FastErrorResult rv;
2038
0
  DOMString result;
2039
0
  self->GetEmptyCells(result, rv);
2040
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2041
0
    return false;
2042
0
  }
2043
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2044
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2045
0
    return false;
2046
0
  }
2047
0
  return true;
2048
0
}
2049
2050
MOZ_CAN_RUN_SCRIPT static bool
2051
set_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2052
0
{
2053
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.emptyCells", DOM, cx);
2054
0
2055
0
  binding_detail::FakeString arg0;
2056
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2057
0
    return false;
2058
0
  }
2059
0
  Maybe<AutoCEReaction> ceReaction;
2060
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2061
0
    DocGroup* docGroup = self->GetDocGroup();
2062
0
    if (docGroup) {
2063
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2064
0
    }
2065
0
  }
2066
0
  FastErrorResult rv;
2067
0
  nsIPrincipal* subjectPrincipal;
2068
0
  {
2069
0
    JS::Realm* realm = js::GetContextRealm(cx);
2070
0
    MOZ_ASSERT(realm);
2071
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2072
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2073
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2074
0
      principal = nullptr;
2075
0
    }
2076
0
2077
0
    subjectPrincipal = principal;
2078
0
  }
2079
0
  self->SetEmptyCells(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2080
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2081
0
    return false;
2082
0
  }
2083
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2084
0
2085
0
  return true;
2086
0
}
2087
2088
static const JSJitInfo emptyCells_getterinfo = {
2089
  { (JSJitGetterOp)get_emptyCells },
2090
  { prototypes::id::CSS2Properties },
2091
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2092
  JSJitInfo::Getter,
2093
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2094
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2095
  false,  /* isInfallible. False in setters. */
2096
  false,  /* isMovable.  Not relevant for setters. */
2097
  false, /* isEliminatable.  Not relevant for setters. */
2098
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2099
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2100
  false,  /* isTypedMethod.  Only relevant for methods. */
2101
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2102
};
2103
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2104
static_assert(0 < 1, "There is no slot for us");
2105
static const JSJitInfo emptyCells_setterinfo = {
2106
  { (JSJitGetterOp)set_emptyCells },
2107
  { prototypes::id::CSS2Properties },
2108
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2109
  JSJitInfo::Setter,
2110
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2111
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2112
  false,  /* isInfallible. False in setters. */
2113
  false,  /* isMovable.  Not relevant for setters. */
2114
  false, /* isEliminatable.  Not relevant for setters. */
2115
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2116
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2117
  false,  /* isTypedMethod.  Only relevant for methods. */
2118
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2119
};
2120
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2121
static_assert(0 < 1, "There is no slot for us");
2122
2123
MOZ_CAN_RUN_SCRIPT static bool
2124
get_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2125
0
{
2126
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fillRule", DOM, cx);
2127
0
2128
0
  FastErrorResult rv;
2129
0
  DOMString result;
2130
0
  self->GetFillRule(result, rv);
2131
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2132
0
    return false;
2133
0
  }
2134
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2135
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2136
0
    return false;
2137
0
  }
2138
0
  return true;
2139
0
}
2140
2141
MOZ_CAN_RUN_SCRIPT static bool
2142
set_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2143
0
{
2144
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fillRule", DOM, cx);
2145
0
2146
0
  binding_detail::FakeString arg0;
2147
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2148
0
    return false;
2149
0
  }
2150
0
  Maybe<AutoCEReaction> ceReaction;
2151
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2152
0
    DocGroup* docGroup = self->GetDocGroup();
2153
0
    if (docGroup) {
2154
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2155
0
    }
2156
0
  }
2157
0
  FastErrorResult rv;
2158
0
  nsIPrincipal* subjectPrincipal;
2159
0
  {
2160
0
    JS::Realm* realm = js::GetContextRealm(cx);
2161
0
    MOZ_ASSERT(realm);
2162
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2163
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2164
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2165
0
      principal = nullptr;
2166
0
    }
2167
0
2168
0
    subjectPrincipal = principal;
2169
0
  }
2170
0
  self->SetFillRule(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2171
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2172
0
    return false;
2173
0
  }
2174
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2175
0
2176
0
  return true;
2177
0
}
2178
2179
static const JSJitInfo fillRule_getterinfo = {
2180
  { (JSJitGetterOp)get_fillRule },
2181
  { prototypes::id::CSS2Properties },
2182
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2183
  JSJitInfo::Getter,
2184
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2185
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2186
  false,  /* isInfallible. False in setters. */
2187
  false,  /* isMovable.  Not relevant for setters. */
2188
  false, /* isEliminatable.  Not relevant for setters. */
2189
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2190
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2191
  false,  /* isTypedMethod.  Only relevant for methods. */
2192
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2193
};
2194
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2195
static_assert(0 < 1, "There is no slot for us");
2196
static const JSJitInfo fillRule_setterinfo = {
2197
  { (JSJitGetterOp)set_fillRule },
2198
  { prototypes::id::CSS2Properties },
2199
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2200
  JSJitInfo::Setter,
2201
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2202
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2203
  false,  /* isInfallible. False in setters. */
2204
  false,  /* isMovable.  Not relevant for setters. */
2205
  false, /* isEliminatable.  Not relevant for setters. */
2206
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2207
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2208
  false,  /* isTypedMethod.  Only relevant for methods. */
2209
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2210
};
2211
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2212
static_assert(0 < 1, "There is no slot for us");
2213
2214
MOZ_CAN_RUN_SCRIPT static bool
2215
get_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2216
0
{
2217
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexDirection", DOM, cx);
2218
0
2219
0
  FastErrorResult rv;
2220
0
  DOMString result;
2221
0
  self->GetFlexDirection(result, rv);
2222
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2223
0
    return false;
2224
0
  }
2225
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2226
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2227
0
    return false;
2228
0
  }
2229
0
  return true;
2230
0
}
2231
2232
MOZ_CAN_RUN_SCRIPT static bool
2233
set_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2234
0
{
2235
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexDirection", DOM, cx);
2236
0
2237
0
  binding_detail::FakeString arg0;
2238
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2239
0
    return false;
2240
0
  }
2241
0
  Maybe<AutoCEReaction> ceReaction;
2242
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2243
0
    DocGroup* docGroup = self->GetDocGroup();
2244
0
    if (docGroup) {
2245
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2246
0
    }
2247
0
  }
2248
0
  FastErrorResult rv;
2249
0
  nsIPrincipal* subjectPrincipal;
2250
0
  {
2251
0
    JS::Realm* realm = js::GetContextRealm(cx);
2252
0
    MOZ_ASSERT(realm);
2253
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2254
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2255
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2256
0
      principal = nullptr;
2257
0
    }
2258
0
2259
0
    subjectPrincipal = principal;
2260
0
  }
2261
0
  self->SetFlexDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2262
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2263
0
    return false;
2264
0
  }
2265
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2266
0
2267
0
  return true;
2268
0
}
2269
2270
static const JSJitInfo flexDirection_getterinfo = {
2271
  { (JSJitGetterOp)get_flexDirection },
2272
  { prototypes::id::CSS2Properties },
2273
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2274
  JSJitInfo::Getter,
2275
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2276
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2277
  false,  /* isInfallible. False in setters. */
2278
  false,  /* isMovable.  Not relevant for setters. */
2279
  false, /* isEliminatable.  Not relevant for setters. */
2280
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2281
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2282
  false,  /* isTypedMethod.  Only relevant for methods. */
2283
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2284
};
2285
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2286
static_assert(0 < 1, "There is no slot for us");
2287
static const JSJitInfo flexDirection_setterinfo = {
2288
  { (JSJitGetterOp)set_flexDirection },
2289
  { prototypes::id::CSS2Properties },
2290
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2291
  JSJitInfo::Setter,
2292
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2293
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2294
  false,  /* isInfallible. False in setters. */
2295
  false,  /* isMovable.  Not relevant for setters. */
2296
  false, /* isEliminatable.  Not relevant for setters. */
2297
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2298
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2299
  false,  /* isTypedMethod.  Only relevant for methods. */
2300
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2301
};
2302
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2303
static_assert(0 < 1, "There is no slot for us");
2304
2305
MOZ_CAN_RUN_SCRIPT static bool
2306
get_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2307
0
{
2308
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexWrap", DOM, cx);
2309
0
2310
0
  FastErrorResult rv;
2311
0
  DOMString result;
2312
0
  self->GetFlexWrap(result, rv);
2313
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2314
0
    return false;
2315
0
  }
2316
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2317
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2318
0
    return false;
2319
0
  }
2320
0
  return true;
2321
0
}
2322
2323
MOZ_CAN_RUN_SCRIPT static bool
2324
set_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2325
0
{
2326
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexWrap", DOM, cx);
2327
0
2328
0
  binding_detail::FakeString arg0;
2329
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2330
0
    return false;
2331
0
  }
2332
0
  Maybe<AutoCEReaction> ceReaction;
2333
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2334
0
    DocGroup* docGroup = self->GetDocGroup();
2335
0
    if (docGroup) {
2336
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2337
0
    }
2338
0
  }
2339
0
  FastErrorResult rv;
2340
0
  nsIPrincipal* subjectPrincipal;
2341
0
  {
2342
0
    JS::Realm* realm = js::GetContextRealm(cx);
2343
0
    MOZ_ASSERT(realm);
2344
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2345
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2346
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2347
0
      principal = nullptr;
2348
0
    }
2349
0
2350
0
    subjectPrincipal = principal;
2351
0
  }
2352
0
  self->SetFlexWrap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2353
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2354
0
    return false;
2355
0
  }
2356
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2357
0
2358
0
  return true;
2359
0
}
2360
2361
static const JSJitInfo flexWrap_getterinfo = {
2362
  { (JSJitGetterOp)get_flexWrap },
2363
  { prototypes::id::CSS2Properties },
2364
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2365
  JSJitInfo::Getter,
2366
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2367
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2368
  false,  /* isInfallible. False in setters. */
2369
  false,  /* isMovable.  Not relevant for setters. */
2370
  false, /* isEliminatable.  Not relevant for setters. */
2371
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2372
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2373
  false,  /* isTypedMethod.  Only relevant for methods. */
2374
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2375
};
2376
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2377
static_assert(0 < 1, "There is no slot for us");
2378
static const JSJitInfo flexWrap_setterinfo = {
2379
  { (JSJitGetterOp)set_flexWrap },
2380
  { prototypes::id::CSS2Properties },
2381
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2382
  JSJitInfo::Setter,
2383
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2384
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2385
  false,  /* isInfallible. False in setters. */
2386
  false,  /* isMovable.  Not relevant for setters. */
2387
  false, /* isEliminatable.  Not relevant for setters. */
2388
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2389
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2390
  false,  /* isTypedMethod.  Only relevant for methods. */
2391
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2392
};
2393
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2394
static_assert(0 < 1, "There is no slot for us");
2395
2396
MOZ_CAN_RUN_SCRIPT static bool
2397
get_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2398
0
{
2399
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.cssFloat", DOM, cx);
2400
0
2401
0
  FastErrorResult rv;
2402
0
  DOMString result;
2403
0
  self->GetCssFloat(result, rv);
2404
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2405
0
    return false;
2406
0
  }
2407
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2408
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2409
0
    return false;
2410
0
  }
2411
0
  return true;
2412
0
}
2413
2414
MOZ_CAN_RUN_SCRIPT static bool
2415
set_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2416
0
{
2417
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.cssFloat", DOM, cx);
2418
0
2419
0
  binding_detail::FakeString arg0;
2420
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2421
0
    return false;
2422
0
  }
2423
0
  Maybe<AutoCEReaction> ceReaction;
2424
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2425
0
    DocGroup* docGroup = self->GetDocGroup();
2426
0
    if (docGroup) {
2427
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2428
0
    }
2429
0
  }
2430
0
  FastErrorResult rv;
2431
0
  nsIPrincipal* subjectPrincipal;
2432
0
  {
2433
0
    JS::Realm* realm = js::GetContextRealm(cx);
2434
0
    MOZ_ASSERT(realm);
2435
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2436
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2437
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2438
0
      principal = nullptr;
2439
0
    }
2440
0
2441
0
    subjectPrincipal = principal;
2442
0
  }
2443
0
  self->SetCssFloat(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2444
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2445
0
    return false;
2446
0
  }
2447
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2448
0
2449
0
  return true;
2450
0
}
2451
2452
static const JSJitInfo cssFloat_getterinfo = {
2453
  { (JSJitGetterOp)get_cssFloat },
2454
  { prototypes::id::CSS2Properties },
2455
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2456
  JSJitInfo::Getter,
2457
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2458
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2459
  false,  /* isInfallible. False in setters. */
2460
  false,  /* isMovable.  Not relevant for setters. */
2461
  false, /* isEliminatable.  Not relevant for setters. */
2462
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2463
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2464
  false,  /* isTypedMethod.  Only relevant for methods. */
2465
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2466
};
2467
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2468
static_assert(0 < 1, "There is no slot for us");
2469
static const JSJitInfo cssFloat_setterinfo = {
2470
  { (JSJitGetterOp)set_cssFloat },
2471
  { prototypes::id::CSS2Properties },
2472
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2473
  JSJitInfo::Setter,
2474
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2475
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2476
  false,  /* isInfallible. False in setters. */
2477
  false,  /* isMovable.  Not relevant for setters. */
2478
  false, /* isEliminatable.  Not relevant for setters. */
2479
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2480
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2481
  false,  /* isTypedMethod.  Only relevant for methods. */
2482
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2483
};
2484
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2485
static_assert(0 < 1, "There is no slot for us");
2486
2487
MOZ_CAN_RUN_SCRIPT static bool
2488
get_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2489
0
{
2490
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontKerning", DOM, cx);
2491
0
2492
0
  FastErrorResult rv;
2493
0
  DOMString result;
2494
0
  self->GetFontKerning(result, rv);
2495
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2496
0
    return false;
2497
0
  }
2498
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2499
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2500
0
    return false;
2501
0
  }
2502
0
  return true;
2503
0
}
2504
2505
MOZ_CAN_RUN_SCRIPT static bool
2506
set_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2507
0
{
2508
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontKerning", DOM, cx);
2509
0
2510
0
  binding_detail::FakeString arg0;
2511
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2512
0
    return false;
2513
0
  }
2514
0
  Maybe<AutoCEReaction> ceReaction;
2515
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2516
0
    DocGroup* docGroup = self->GetDocGroup();
2517
0
    if (docGroup) {
2518
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2519
0
    }
2520
0
  }
2521
0
  FastErrorResult rv;
2522
0
  nsIPrincipal* subjectPrincipal;
2523
0
  {
2524
0
    JS::Realm* realm = js::GetContextRealm(cx);
2525
0
    MOZ_ASSERT(realm);
2526
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2527
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2528
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2529
0
      principal = nullptr;
2530
0
    }
2531
0
2532
0
    subjectPrincipal = principal;
2533
0
  }
2534
0
  self->SetFontKerning(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2535
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2536
0
    return false;
2537
0
  }
2538
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2539
0
2540
0
  return true;
2541
0
}
2542
2543
static const JSJitInfo fontKerning_getterinfo = {
2544
  { (JSJitGetterOp)get_fontKerning },
2545
  { prototypes::id::CSS2Properties },
2546
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2547
  JSJitInfo::Getter,
2548
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2549
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2550
  false,  /* isInfallible. False in setters. */
2551
  false,  /* isMovable.  Not relevant for setters. */
2552
  false, /* isEliminatable.  Not relevant for setters. */
2553
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2554
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2555
  false,  /* isTypedMethod.  Only relevant for methods. */
2556
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2557
};
2558
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2559
static_assert(0 < 1, "There is no slot for us");
2560
static const JSJitInfo fontKerning_setterinfo = {
2561
  { (JSJitGetterOp)set_fontKerning },
2562
  { prototypes::id::CSS2Properties },
2563
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2564
  JSJitInfo::Setter,
2565
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2566
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2567
  false,  /* isInfallible. False in setters. */
2568
  false,  /* isMovable.  Not relevant for setters. */
2569
  false, /* isEliminatable.  Not relevant for setters. */
2570
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2571
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2572
  false,  /* isTypedMethod.  Only relevant for methods. */
2573
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2574
};
2575
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2576
static_assert(0 < 1, "There is no slot for us");
2577
2578
MOZ_CAN_RUN_SCRIPT static bool
2579
get_fontOpticalSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2580
0
{
2581
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontOpticalSizing", DOM, cx);
2582
0
2583
0
  FastErrorResult rv;
2584
0
  DOMString result;
2585
0
  self->GetFontOpticalSizing(result, rv);
2586
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2587
0
    return false;
2588
0
  }
2589
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2590
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2591
0
    return false;
2592
0
  }
2593
0
  return true;
2594
0
}
2595
2596
MOZ_CAN_RUN_SCRIPT static bool
2597
set_fontOpticalSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2598
0
{
2599
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontOpticalSizing", DOM, cx);
2600
0
2601
0
  binding_detail::FakeString arg0;
2602
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2603
0
    return false;
2604
0
  }
2605
0
  Maybe<AutoCEReaction> ceReaction;
2606
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2607
0
    DocGroup* docGroup = self->GetDocGroup();
2608
0
    if (docGroup) {
2609
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2610
0
    }
2611
0
  }
2612
0
  FastErrorResult rv;
2613
0
  nsIPrincipal* subjectPrincipal;
2614
0
  {
2615
0
    JS::Realm* realm = js::GetContextRealm(cx);
2616
0
    MOZ_ASSERT(realm);
2617
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2618
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2619
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2620
0
      principal = nullptr;
2621
0
    }
2622
0
2623
0
    subjectPrincipal = principal;
2624
0
  }
2625
0
  self->SetFontOpticalSizing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2626
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2627
0
    return false;
2628
0
  }
2629
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2630
0
2631
0
  return true;
2632
0
}
2633
2634
static const JSJitInfo fontOpticalSizing_getterinfo = {
2635
  { (JSJitGetterOp)get_fontOpticalSizing },
2636
  { prototypes::id::CSS2Properties },
2637
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2638
  JSJitInfo::Getter,
2639
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2640
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2641
  false,  /* isInfallible. False in setters. */
2642
  false,  /* isMovable.  Not relevant for setters. */
2643
  false, /* isEliminatable.  Not relevant for setters. */
2644
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2645
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2646
  false,  /* isTypedMethod.  Only relevant for methods. */
2647
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2648
};
2649
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2650
static_assert(0 < 1, "There is no slot for us");
2651
static const JSJitInfo fontOpticalSizing_setterinfo = {
2652
  { (JSJitGetterOp)set_fontOpticalSizing },
2653
  { prototypes::id::CSS2Properties },
2654
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2655
  JSJitInfo::Setter,
2656
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2657
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2658
  false,  /* isInfallible. False in setters. */
2659
  false,  /* isMovable.  Not relevant for setters. */
2660
  false, /* isEliminatable.  Not relevant for setters. */
2661
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2662
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2663
  false,  /* isTypedMethod.  Only relevant for methods. */
2664
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2665
};
2666
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2667
static_assert(0 < 1, "There is no slot for us");
2668
2669
MOZ_CAN_RUN_SCRIPT static bool
2670
get_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2671
0
{
2672
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontSizeAdjust", DOM, cx);
2673
0
2674
0
  FastErrorResult rv;
2675
0
  DOMString result;
2676
0
  self->GetFontSizeAdjust(result, rv);
2677
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2678
0
    return false;
2679
0
  }
2680
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2681
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2682
0
    return false;
2683
0
  }
2684
0
  return true;
2685
0
}
2686
2687
MOZ_CAN_RUN_SCRIPT static bool
2688
set_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2689
0
{
2690
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontSizeAdjust", DOM, cx);
2691
0
2692
0
  binding_detail::FakeString arg0;
2693
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2694
0
    return false;
2695
0
  }
2696
0
  Maybe<AutoCEReaction> ceReaction;
2697
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2698
0
    DocGroup* docGroup = self->GetDocGroup();
2699
0
    if (docGroup) {
2700
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2701
0
    }
2702
0
  }
2703
0
  FastErrorResult rv;
2704
0
  nsIPrincipal* subjectPrincipal;
2705
0
  {
2706
0
    JS::Realm* realm = js::GetContextRealm(cx);
2707
0
    MOZ_ASSERT(realm);
2708
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2709
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2710
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2711
0
      principal = nullptr;
2712
0
    }
2713
0
2714
0
    subjectPrincipal = principal;
2715
0
  }
2716
0
  self->SetFontSizeAdjust(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2717
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2718
0
    return false;
2719
0
  }
2720
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2721
0
2722
0
  return true;
2723
0
}
2724
2725
static const JSJitInfo fontSizeAdjust_getterinfo = {
2726
  { (JSJitGetterOp)get_fontSizeAdjust },
2727
  { prototypes::id::CSS2Properties },
2728
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2729
  JSJitInfo::Getter,
2730
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2731
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2732
  false,  /* isInfallible. False in setters. */
2733
  false,  /* isMovable.  Not relevant for setters. */
2734
  false, /* isEliminatable.  Not relevant for setters. */
2735
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2736
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2737
  false,  /* isTypedMethod.  Only relevant for methods. */
2738
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2739
};
2740
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2741
static_assert(0 < 1, "There is no slot for us");
2742
static const JSJitInfo fontSizeAdjust_setterinfo = {
2743
  { (JSJitGetterOp)set_fontSizeAdjust },
2744
  { prototypes::id::CSS2Properties },
2745
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2746
  JSJitInfo::Setter,
2747
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2748
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2749
  false,  /* isInfallible. False in setters. */
2750
  false,  /* isMovable.  Not relevant for setters. */
2751
  false, /* isEliminatable.  Not relevant for setters. */
2752
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2753
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2754
  false,  /* isTypedMethod.  Only relevant for methods. */
2755
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2756
};
2757
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2758
static_assert(0 < 1, "There is no slot for us");
2759
2760
MOZ_CAN_RUN_SCRIPT static bool
2761
get_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2762
0
{
2763
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontStretch", DOM, cx);
2764
0
2765
0
  FastErrorResult rv;
2766
0
  DOMString result;
2767
0
  self->GetFontStretch(result, rv);
2768
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2769
0
    return false;
2770
0
  }
2771
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2772
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2773
0
    return false;
2774
0
  }
2775
0
  return true;
2776
0
}
2777
2778
MOZ_CAN_RUN_SCRIPT static bool
2779
set_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2780
0
{
2781
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontStretch", DOM, cx);
2782
0
2783
0
  binding_detail::FakeString arg0;
2784
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2785
0
    return false;
2786
0
  }
2787
0
  Maybe<AutoCEReaction> ceReaction;
2788
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2789
0
    DocGroup* docGroup = self->GetDocGroup();
2790
0
    if (docGroup) {
2791
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2792
0
    }
2793
0
  }
2794
0
  FastErrorResult rv;
2795
0
  nsIPrincipal* subjectPrincipal;
2796
0
  {
2797
0
    JS::Realm* realm = js::GetContextRealm(cx);
2798
0
    MOZ_ASSERT(realm);
2799
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2800
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2801
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2802
0
      principal = nullptr;
2803
0
    }
2804
0
2805
0
    subjectPrincipal = principal;
2806
0
  }
2807
0
  self->SetFontStretch(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2808
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2809
0
    return false;
2810
0
  }
2811
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2812
0
2813
0
  return true;
2814
0
}
2815
2816
static const JSJitInfo fontStretch_getterinfo = {
2817
  { (JSJitGetterOp)get_fontStretch },
2818
  { prototypes::id::CSS2Properties },
2819
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2820
  JSJitInfo::Getter,
2821
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2822
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2823
  false,  /* isInfallible. False in setters. */
2824
  false,  /* isMovable.  Not relevant for setters. */
2825
  false, /* isEliminatable.  Not relevant for setters. */
2826
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2827
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2828
  false,  /* isTypedMethod.  Only relevant for methods. */
2829
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2830
};
2831
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2832
static_assert(0 < 1, "There is no slot for us");
2833
static const JSJitInfo fontStretch_setterinfo = {
2834
  { (JSJitGetterOp)set_fontStretch },
2835
  { prototypes::id::CSS2Properties },
2836
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2837
  JSJitInfo::Setter,
2838
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2839
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2840
  false,  /* isInfallible. False in setters. */
2841
  false,  /* isMovable.  Not relevant for setters. */
2842
  false, /* isEliminatable.  Not relevant for setters. */
2843
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2844
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2845
  false,  /* isTypedMethod.  Only relevant for methods. */
2846
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2847
};
2848
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2849
static_assert(0 < 1, "There is no slot for us");
2850
2851
MOZ_CAN_RUN_SCRIPT static bool
2852
get_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2853
0
{
2854
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontStyle", DOM, cx);
2855
0
2856
0
  FastErrorResult rv;
2857
0
  DOMString result;
2858
0
  self->GetFontStyle(result, rv);
2859
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2860
0
    return false;
2861
0
  }
2862
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2863
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2864
0
    return false;
2865
0
  }
2866
0
  return true;
2867
0
}
2868
2869
MOZ_CAN_RUN_SCRIPT static bool
2870
set_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2871
0
{
2872
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontStyle", DOM, cx);
2873
0
2874
0
  binding_detail::FakeString arg0;
2875
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2876
0
    return false;
2877
0
  }
2878
0
  Maybe<AutoCEReaction> ceReaction;
2879
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2880
0
    DocGroup* docGroup = self->GetDocGroup();
2881
0
    if (docGroup) {
2882
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2883
0
    }
2884
0
  }
2885
0
  FastErrorResult rv;
2886
0
  nsIPrincipal* subjectPrincipal;
2887
0
  {
2888
0
    JS::Realm* realm = js::GetContextRealm(cx);
2889
0
    MOZ_ASSERT(realm);
2890
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2891
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2892
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2893
0
      principal = nullptr;
2894
0
    }
2895
0
2896
0
    subjectPrincipal = principal;
2897
0
  }
2898
0
  self->SetFontStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2899
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2900
0
    return false;
2901
0
  }
2902
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2903
0
2904
0
  return true;
2905
0
}
2906
2907
static const JSJitInfo fontStyle_getterinfo = {
2908
  { (JSJitGetterOp)get_fontStyle },
2909
  { prototypes::id::CSS2Properties },
2910
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2911
  JSJitInfo::Getter,
2912
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2913
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
2914
  false,  /* isInfallible. False in setters. */
2915
  false,  /* isMovable.  Not relevant for setters. */
2916
  false, /* isEliminatable.  Not relevant for setters. */
2917
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2918
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2919
  false,  /* isTypedMethod.  Only relevant for methods. */
2920
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2921
};
2922
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2923
static_assert(0 < 1, "There is no slot for us");
2924
static const JSJitInfo fontStyle_setterinfo = {
2925
  { (JSJitGetterOp)set_fontStyle },
2926
  { prototypes::id::CSS2Properties },
2927
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
2928
  JSJitInfo::Setter,
2929
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
2930
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
2931
  false,  /* isInfallible. False in setters. */
2932
  false,  /* isMovable.  Not relevant for setters. */
2933
  false, /* isEliminatable.  Not relevant for setters. */
2934
  false, /* isAlwaysInSlot.  Only relevant for getters. */
2935
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
2936
  false,  /* isTypedMethod.  Only relevant for methods. */
2937
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
2938
};
2939
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
2940
static_assert(0 < 1, "There is no slot for us");
2941
2942
MOZ_CAN_RUN_SCRIPT static bool
2943
get_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
2944
0
{
2945
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontSynthesis", DOM, cx);
2946
0
2947
0
  FastErrorResult rv;
2948
0
  DOMString result;
2949
0
  self->GetFontSynthesis(result, rv);
2950
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2951
0
    return false;
2952
0
  }
2953
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2954
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
2955
0
    return false;
2956
0
  }
2957
0
  return true;
2958
0
}
2959
2960
MOZ_CAN_RUN_SCRIPT static bool
2961
set_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
2962
0
{
2963
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontSynthesis", DOM, cx);
2964
0
2965
0
  binding_detail::FakeString arg0;
2966
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
2967
0
    return false;
2968
0
  }
2969
0
  Maybe<AutoCEReaction> ceReaction;
2970
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
2971
0
    DocGroup* docGroup = self->GetDocGroup();
2972
0
    if (docGroup) {
2973
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
2974
0
    }
2975
0
  }
2976
0
  FastErrorResult rv;
2977
0
  nsIPrincipal* subjectPrincipal;
2978
0
  {
2979
0
    JS::Realm* realm = js::GetContextRealm(cx);
2980
0
    MOZ_ASSERT(realm);
2981
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
2982
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
2983
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
2984
0
      principal = nullptr;
2985
0
    }
2986
0
2987
0
    subjectPrincipal = principal;
2988
0
  }
2989
0
  self->SetFontSynthesis(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
2990
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
2991
0
    return false;
2992
0
  }
2993
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
2994
0
2995
0
  return true;
2996
0
}
2997
2998
static const JSJitInfo fontSynthesis_getterinfo = {
2999
  { (JSJitGetterOp)get_fontSynthesis },
3000
  { prototypes::id::CSS2Properties },
3001
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3002
  JSJitInfo::Getter,
3003
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3004
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3005
  false,  /* isInfallible. False in setters. */
3006
  false,  /* isMovable.  Not relevant for setters. */
3007
  false, /* isEliminatable.  Not relevant for setters. */
3008
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3009
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3010
  false,  /* isTypedMethod.  Only relevant for methods. */
3011
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3012
};
3013
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3014
static_assert(0 < 1, "There is no slot for us");
3015
static const JSJitInfo fontSynthesis_setterinfo = {
3016
  { (JSJitGetterOp)set_fontSynthesis },
3017
  { prototypes::id::CSS2Properties },
3018
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3019
  JSJitInfo::Setter,
3020
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3021
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3022
  false,  /* isInfallible. False in setters. */
3023
  false,  /* isMovable.  Not relevant for setters. */
3024
  false, /* isEliminatable.  Not relevant for setters. */
3025
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3026
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3027
  false,  /* isTypedMethod.  Only relevant for methods. */
3028
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3029
};
3030
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3031
static_assert(0 < 1, "There is no slot for us");
3032
3033
MOZ_CAN_RUN_SCRIPT static bool
3034
get_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3035
0
{
3036
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantCaps", DOM, cx);
3037
0
3038
0
  FastErrorResult rv;
3039
0
  DOMString result;
3040
0
  self->GetFontVariantCaps(result, rv);
3041
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3042
0
    return false;
3043
0
  }
3044
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3045
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3046
0
    return false;
3047
0
  }
3048
0
  return true;
3049
0
}
3050
3051
MOZ_CAN_RUN_SCRIPT static bool
3052
set_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3053
0
{
3054
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantCaps", DOM, cx);
3055
0
3056
0
  binding_detail::FakeString arg0;
3057
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3058
0
    return false;
3059
0
  }
3060
0
  Maybe<AutoCEReaction> ceReaction;
3061
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3062
0
    DocGroup* docGroup = self->GetDocGroup();
3063
0
    if (docGroup) {
3064
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3065
0
    }
3066
0
  }
3067
0
  FastErrorResult rv;
3068
0
  nsIPrincipal* subjectPrincipal;
3069
0
  {
3070
0
    JS::Realm* realm = js::GetContextRealm(cx);
3071
0
    MOZ_ASSERT(realm);
3072
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3073
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3074
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3075
0
      principal = nullptr;
3076
0
    }
3077
0
3078
0
    subjectPrincipal = principal;
3079
0
  }
3080
0
  self->SetFontVariantCaps(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3081
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3082
0
    return false;
3083
0
  }
3084
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3085
0
3086
0
  return true;
3087
0
}
3088
3089
static const JSJitInfo fontVariantCaps_getterinfo = {
3090
  { (JSJitGetterOp)get_fontVariantCaps },
3091
  { prototypes::id::CSS2Properties },
3092
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3093
  JSJitInfo::Getter,
3094
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3095
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3096
  false,  /* isInfallible. False in setters. */
3097
  false,  /* isMovable.  Not relevant for setters. */
3098
  false, /* isEliminatable.  Not relevant for setters. */
3099
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3100
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3101
  false,  /* isTypedMethod.  Only relevant for methods. */
3102
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3103
};
3104
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3105
static_assert(0 < 1, "There is no slot for us");
3106
static const JSJitInfo fontVariantCaps_setterinfo = {
3107
  { (JSJitGetterOp)set_fontVariantCaps },
3108
  { prototypes::id::CSS2Properties },
3109
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3110
  JSJitInfo::Setter,
3111
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3112
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3113
  false,  /* isInfallible. False in setters. */
3114
  false,  /* isMovable.  Not relevant for setters. */
3115
  false, /* isEliminatable.  Not relevant for setters. */
3116
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3117
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3118
  false,  /* isTypedMethod.  Only relevant for methods. */
3119
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3120
};
3121
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3122
static_assert(0 < 1, "There is no slot for us");
3123
3124
MOZ_CAN_RUN_SCRIPT static bool
3125
get_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3126
0
{
3127
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantEastAsian", DOM, cx);
3128
0
3129
0
  FastErrorResult rv;
3130
0
  DOMString result;
3131
0
  self->GetFontVariantEastAsian(result, rv);
3132
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3133
0
    return false;
3134
0
  }
3135
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3136
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3137
0
    return false;
3138
0
  }
3139
0
  return true;
3140
0
}
3141
3142
MOZ_CAN_RUN_SCRIPT static bool
3143
set_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3144
0
{
3145
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantEastAsian", DOM, cx);
3146
0
3147
0
  binding_detail::FakeString arg0;
3148
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3149
0
    return false;
3150
0
  }
3151
0
  Maybe<AutoCEReaction> ceReaction;
3152
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3153
0
    DocGroup* docGroup = self->GetDocGroup();
3154
0
    if (docGroup) {
3155
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3156
0
    }
3157
0
  }
3158
0
  FastErrorResult rv;
3159
0
  nsIPrincipal* subjectPrincipal;
3160
0
  {
3161
0
    JS::Realm* realm = js::GetContextRealm(cx);
3162
0
    MOZ_ASSERT(realm);
3163
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3164
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3165
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3166
0
      principal = nullptr;
3167
0
    }
3168
0
3169
0
    subjectPrincipal = principal;
3170
0
  }
3171
0
  self->SetFontVariantEastAsian(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3172
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3173
0
    return false;
3174
0
  }
3175
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3176
0
3177
0
  return true;
3178
0
}
3179
3180
static const JSJitInfo fontVariantEastAsian_getterinfo = {
3181
  { (JSJitGetterOp)get_fontVariantEastAsian },
3182
  { prototypes::id::CSS2Properties },
3183
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3184
  JSJitInfo::Getter,
3185
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3186
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3187
  false,  /* isInfallible. False in setters. */
3188
  false,  /* isMovable.  Not relevant for setters. */
3189
  false, /* isEliminatable.  Not relevant for setters. */
3190
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3191
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3192
  false,  /* isTypedMethod.  Only relevant for methods. */
3193
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3194
};
3195
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3196
static_assert(0 < 1, "There is no slot for us");
3197
static const JSJitInfo fontVariantEastAsian_setterinfo = {
3198
  { (JSJitGetterOp)set_fontVariantEastAsian },
3199
  { prototypes::id::CSS2Properties },
3200
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3201
  JSJitInfo::Setter,
3202
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3203
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3204
  false,  /* isInfallible. False in setters. */
3205
  false,  /* isMovable.  Not relevant for setters. */
3206
  false, /* isEliminatable.  Not relevant for setters. */
3207
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3208
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3209
  false,  /* isTypedMethod.  Only relevant for methods. */
3210
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3211
};
3212
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3213
static_assert(0 < 1, "There is no slot for us");
3214
3215
MOZ_CAN_RUN_SCRIPT static bool
3216
get_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3217
0
{
3218
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantLigatures", DOM, cx);
3219
0
3220
0
  FastErrorResult rv;
3221
0
  DOMString result;
3222
0
  self->GetFontVariantLigatures(result, rv);
3223
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3224
0
    return false;
3225
0
  }
3226
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3227
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3228
0
    return false;
3229
0
  }
3230
0
  return true;
3231
0
}
3232
3233
MOZ_CAN_RUN_SCRIPT static bool
3234
set_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3235
0
{
3236
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantLigatures", DOM, cx);
3237
0
3238
0
  binding_detail::FakeString arg0;
3239
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3240
0
    return false;
3241
0
  }
3242
0
  Maybe<AutoCEReaction> ceReaction;
3243
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3244
0
    DocGroup* docGroup = self->GetDocGroup();
3245
0
    if (docGroup) {
3246
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3247
0
    }
3248
0
  }
3249
0
  FastErrorResult rv;
3250
0
  nsIPrincipal* subjectPrincipal;
3251
0
  {
3252
0
    JS::Realm* realm = js::GetContextRealm(cx);
3253
0
    MOZ_ASSERT(realm);
3254
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3255
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3256
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3257
0
      principal = nullptr;
3258
0
    }
3259
0
3260
0
    subjectPrincipal = principal;
3261
0
  }
3262
0
  self->SetFontVariantLigatures(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3263
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3264
0
    return false;
3265
0
  }
3266
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3267
0
3268
0
  return true;
3269
0
}
3270
3271
static const JSJitInfo fontVariantLigatures_getterinfo = {
3272
  { (JSJitGetterOp)get_fontVariantLigatures },
3273
  { prototypes::id::CSS2Properties },
3274
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3275
  JSJitInfo::Getter,
3276
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3277
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3278
  false,  /* isInfallible. False in setters. */
3279
  false,  /* isMovable.  Not relevant for setters. */
3280
  false, /* isEliminatable.  Not relevant for setters. */
3281
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3282
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3283
  false,  /* isTypedMethod.  Only relevant for methods. */
3284
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3285
};
3286
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3287
static_assert(0 < 1, "There is no slot for us");
3288
static const JSJitInfo fontVariantLigatures_setterinfo = {
3289
  { (JSJitGetterOp)set_fontVariantLigatures },
3290
  { prototypes::id::CSS2Properties },
3291
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3292
  JSJitInfo::Setter,
3293
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3294
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3295
  false,  /* isInfallible. False in setters. */
3296
  false,  /* isMovable.  Not relevant for setters. */
3297
  false, /* isEliminatable.  Not relevant for setters. */
3298
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3299
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3300
  false,  /* isTypedMethod.  Only relevant for methods. */
3301
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3302
};
3303
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3304
static_assert(0 < 1, "There is no slot for us");
3305
3306
MOZ_CAN_RUN_SCRIPT static bool
3307
get_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3308
0
{
3309
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantNumeric", DOM, cx);
3310
0
3311
0
  FastErrorResult rv;
3312
0
  DOMString result;
3313
0
  self->GetFontVariantNumeric(result, rv);
3314
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3315
0
    return false;
3316
0
  }
3317
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3318
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3319
0
    return false;
3320
0
  }
3321
0
  return true;
3322
0
}
3323
3324
MOZ_CAN_RUN_SCRIPT static bool
3325
set_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3326
0
{
3327
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantNumeric", DOM, cx);
3328
0
3329
0
  binding_detail::FakeString arg0;
3330
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3331
0
    return false;
3332
0
  }
3333
0
  Maybe<AutoCEReaction> ceReaction;
3334
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3335
0
    DocGroup* docGroup = self->GetDocGroup();
3336
0
    if (docGroup) {
3337
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3338
0
    }
3339
0
  }
3340
0
  FastErrorResult rv;
3341
0
  nsIPrincipal* subjectPrincipal;
3342
0
  {
3343
0
    JS::Realm* realm = js::GetContextRealm(cx);
3344
0
    MOZ_ASSERT(realm);
3345
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3346
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3347
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3348
0
      principal = nullptr;
3349
0
    }
3350
0
3351
0
    subjectPrincipal = principal;
3352
0
  }
3353
0
  self->SetFontVariantNumeric(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3354
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3355
0
    return false;
3356
0
  }
3357
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3358
0
3359
0
  return true;
3360
0
}
3361
3362
static const JSJitInfo fontVariantNumeric_getterinfo = {
3363
  { (JSJitGetterOp)get_fontVariantNumeric },
3364
  { prototypes::id::CSS2Properties },
3365
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3366
  JSJitInfo::Getter,
3367
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3368
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3369
  false,  /* isInfallible. False in setters. */
3370
  false,  /* isMovable.  Not relevant for setters. */
3371
  false, /* isEliminatable.  Not relevant for setters. */
3372
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3373
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3374
  false,  /* isTypedMethod.  Only relevant for methods. */
3375
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3376
};
3377
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3378
static_assert(0 < 1, "There is no slot for us");
3379
static const JSJitInfo fontVariantNumeric_setterinfo = {
3380
  { (JSJitGetterOp)set_fontVariantNumeric },
3381
  { prototypes::id::CSS2Properties },
3382
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3383
  JSJitInfo::Setter,
3384
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3385
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3386
  false,  /* isInfallible. False in setters. */
3387
  false,  /* isMovable.  Not relevant for setters. */
3388
  false, /* isEliminatable.  Not relevant for setters. */
3389
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3390
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3391
  false,  /* isTypedMethod.  Only relevant for methods. */
3392
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3393
};
3394
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3395
static_assert(0 < 1, "There is no slot for us");
3396
3397
MOZ_CAN_RUN_SCRIPT static bool
3398
get_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3399
0
{
3400
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantPosition", DOM, cx);
3401
0
3402
0
  FastErrorResult rv;
3403
0
  DOMString result;
3404
0
  self->GetFontVariantPosition(result, rv);
3405
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3406
0
    return false;
3407
0
  }
3408
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3409
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3410
0
    return false;
3411
0
  }
3412
0
  return true;
3413
0
}
3414
3415
MOZ_CAN_RUN_SCRIPT static bool
3416
set_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3417
0
{
3418
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantPosition", DOM, cx);
3419
0
3420
0
  binding_detail::FakeString arg0;
3421
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3422
0
    return false;
3423
0
  }
3424
0
  Maybe<AutoCEReaction> ceReaction;
3425
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3426
0
    DocGroup* docGroup = self->GetDocGroup();
3427
0
    if (docGroup) {
3428
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3429
0
    }
3430
0
  }
3431
0
  FastErrorResult rv;
3432
0
  nsIPrincipal* subjectPrincipal;
3433
0
  {
3434
0
    JS::Realm* realm = js::GetContextRealm(cx);
3435
0
    MOZ_ASSERT(realm);
3436
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3437
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3438
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3439
0
      principal = nullptr;
3440
0
    }
3441
0
3442
0
    subjectPrincipal = principal;
3443
0
  }
3444
0
  self->SetFontVariantPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3445
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3446
0
    return false;
3447
0
  }
3448
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3449
0
3450
0
  return true;
3451
0
}
3452
3453
static const JSJitInfo fontVariantPosition_getterinfo = {
3454
  { (JSJitGetterOp)get_fontVariantPosition },
3455
  { prototypes::id::CSS2Properties },
3456
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3457
  JSJitInfo::Getter,
3458
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3459
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3460
  false,  /* isInfallible. False in setters. */
3461
  false,  /* isMovable.  Not relevant for setters. */
3462
  false, /* isEliminatable.  Not relevant for setters. */
3463
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3464
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3465
  false,  /* isTypedMethod.  Only relevant for methods. */
3466
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3467
};
3468
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3469
static_assert(0 < 1, "There is no slot for us");
3470
static const JSJitInfo fontVariantPosition_setterinfo = {
3471
  { (JSJitGetterOp)set_fontVariantPosition },
3472
  { prototypes::id::CSS2Properties },
3473
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3474
  JSJitInfo::Setter,
3475
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3476
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3477
  false,  /* isInfallible. False in setters. */
3478
  false,  /* isMovable.  Not relevant for setters. */
3479
  false, /* isEliminatable.  Not relevant for setters. */
3480
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3481
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3482
  false,  /* isTypedMethod.  Only relevant for methods. */
3483
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3484
};
3485
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3486
static_assert(0 < 1, "There is no slot for us");
3487
3488
MOZ_CAN_RUN_SCRIPT static bool
3489
get_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3490
0
{
3491
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontWeight", DOM, cx);
3492
0
3493
0
  FastErrorResult rv;
3494
0
  DOMString result;
3495
0
  self->GetFontWeight(result, rv);
3496
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3497
0
    return false;
3498
0
  }
3499
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3500
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3501
0
    return false;
3502
0
  }
3503
0
  return true;
3504
0
}
3505
3506
MOZ_CAN_RUN_SCRIPT static bool
3507
set_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3508
0
{
3509
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontWeight", DOM, cx);
3510
0
3511
0
  binding_detail::FakeString arg0;
3512
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3513
0
    return false;
3514
0
  }
3515
0
  Maybe<AutoCEReaction> ceReaction;
3516
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3517
0
    DocGroup* docGroup = self->GetDocGroup();
3518
0
    if (docGroup) {
3519
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3520
0
    }
3521
0
  }
3522
0
  FastErrorResult rv;
3523
0
  nsIPrincipal* subjectPrincipal;
3524
0
  {
3525
0
    JS::Realm* realm = js::GetContextRealm(cx);
3526
0
    MOZ_ASSERT(realm);
3527
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3528
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3529
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3530
0
      principal = nullptr;
3531
0
    }
3532
0
3533
0
    subjectPrincipal = principal;
3534
0
  }
3535
0
  self->SetFontWeight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3536
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3537
0
    return false;
3538
0
  }
3539
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3540
0
3541
0
  return true;
3542
0
}
3543
3544
static const JSJitInfo fontWeight_getterinfo = {
3545
  { (JSJitGetterOp)get_fontWeight },
3546
  { prototypes::id::CSS2Properties },
3547
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3548
  JSJitInfo::Getter,
3549
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3550
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3551
  false,  /* isInfallible. False in setters. */
3552
  false,  /* isMovable.  Not relevant for setters. */
3553
  false, /* isEliminatable.  Not relevant for setters. */
3554
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3555
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3556
  false,  /* isTypedMethod.  Only relevant for methods. */
3557
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3558
};
3559
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3560
static_assert(0 < 1, "There is no slot for us");
3561
static const JSJitInfo fontWeight_setterinfo = {
3562
  { (JSJitGetterOp)set_fontWeight },
3563
  { prototypes::id::CSS2Properties },
3564
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3565
  JSJitInfo::Setter,
3566
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3567
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3568
  false,  /* isInfallible. False in setters. */
3569
  false,  /* isMovable.  Not relevant for setters. */
3570
  false, /* isEliminatable.  Not relevant for setters. */
3571
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3572
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3573
  false,  /* isTypedMethod.  Only relevant for methods. */
3574
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3575
};
3576
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3577
static_assert(0 < 1, "There is no slot for us");
3578
3579
MOZ_CAN_RUN_SCRIPT static bool
3580
get_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3581
0
{
3582
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridAutoFlow", DOM, cx);
3583
0
3584
0
  FastErrorResult rv;
3585
0
  DOMString result;
3586
0
  self->GetGridAutoFlow(result, rv);
3587
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3588
0
    return false;
3589
0
  }
3590
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3591
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3592
0
    return false;
3593
0
  }
3594
0
  return true;
3595
0
}
3596
3597
MOZ_CAN_RUN_SCRIPT static bool
3598
set_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3599
0
{
3600
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridAutoFlow", DOM, cx);
3601
0
3602
0
  binding_detail::FakeString arg0;
3603
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3604
0
    return false;
3605
0
  }
3606
0
  Maybe<AutoCEReaction> ceReaction;
3607
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3608
0
    DocGroup* docGroup = self->GetDocGroup();
3609
0
    if (docGroup) {
3610
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3611
0
    }
3612
0
  }
3613
0
  FastErrorResult rv;
3614
0
  nsIPrincipal* subjectPrincipal;
3615
0
  {
3616
0
    JS::Realm* realm = js::GetContextRealm(cx);
3617
0
    MOZ_ASSERT(realm);
3618
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3619
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3620
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3621
0
      principal = nullptr;
3622
0
    }
3623
0
3624
0
    subjectPrincipal = principal;
3625
0
  }
3626
0
  self->SetGridAutoFlow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3627
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3628
0
    return false;
3629
0
  }
3630
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3631
0
3632
0
  return true;
3633
0
}
3634
3635
static const JSJitInfo gridAutoFlow_getterinfo = {
3636
  { (JSJitGetterOp)get_gridAutoFlow },
3637
  { prototypes::id::CSS2Properties },
3638
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3639
  JSJitInfo::Getter,
3640
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3641
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3642
  false,  /* isInfallible. False in setters. */
3643
  false,  /* isMovable.  Not relevant for setters. */
3644
  false, /* isEliminatable.  Not relevant for setters. */
3645
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3646
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3647
  false,  /* isTypedMethod.  Only relevant for methods. */
3648
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3649
};
3650
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3651
static_assert(0 < 1, "There is no slot for us");
3652
static const JSJitInfo gridAutoFlow_setterinfo = {
3653
  { (JSJitGetterOp)set_gridAutoFlow },
3654
  { prototypes::id::CSS2Properties },
3655
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3656
  JSJitInfo::Setter,
3657
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3658
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3659
  false,  /* isInfallible. False in setters. */
3660
  false,  /* isMovable.  Not relevant for setters. */
3661
  false, /* isEliminatable.  Not relevant for setters. */
3662
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3663
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3664
  false,  /* isTypedMethod.  Only relevant for methods. */
3665
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3666
};
3667
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3668
static_assert(0 < 1, "There is no slot for us");
3669
3670
MOZ_CAN_RUN_SCRIPT static bool
3671
get_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3672
0
{
3673
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.hyphens", DOM, cx);
3674
0
3675
0
  FastErrorResult rv;
3676
0
  DOMString result;
3677
0
  self->GetHyphens(result, rv);
3678
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3679
0
    return false;
3680
0
  }
3681
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3682
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3683
0
    return false;
3684
0
  }
3685
0
  return true;
3686
0
}
3687
3688
MOZ_CAN_RUN_SCRIPT static bool
3689
set_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3690
0
{
3691
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.hyphens", DOM, cx);
3692
0
3693
0
  binding_detail::FakeString arg0;
3694
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3695
0
    return false;
3696
0
  }
3697
0
  Maybe<AutoCEReaction> ceReaction;
3698
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3699
0
    DocGroup* docGroup = self->GetDocGroup();
3700
0
    if (docGroup) {
3701
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3702
0
    }
3703
0
  }
3704
0
  FastErrorResult rv;
3705
0
  nsIPrincipal* subjectPrincipal;
3706
0
  {
3707
0
    JS::Realm* realm = js::GetContextRealm(cx);
3708
0
    MOZ_ASSERT(realm);
3709
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3710
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3711
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3712
0
      principal = nullptr;
3713
0
    }
3714
0
3715
0
    subjectPrincipal = principal;
3716
0
  }
3717
0
  self->SetHyphens(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3718
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3719
0
    return false;
3720
0
  }
3721
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3722
0
3723
0
  return true;
3724
0
}
3725
3726
static const JSJitInfo hyphens_getterinfo = {
3727
  { (JSJitGetterOp)get_hyphens },
3728
  { prototypes::id::CSS2Properties },
3729
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3730
  JSJitInfo::Getter,
3731
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3732
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3733
  false,  /* isInfallible. False in setters. */
3734
  false,  /* isMovable.  Not relevant for setters. */
3735
  false, /* isEliminatable.  Not relevant for setters. */
3736
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3737
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3738
  false,  /* isTypedMethod.  Only relevant for methods. */
3739
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3740
};
3741
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3742
static_assert(0 < 1, "There is no slot for us");
3743
static const JSJitInfo hyphens_setterinfo = {
3744
  { (JSJitGetterOp)set_hyphens },
3745
  { prototypes::id::CSS2Properties },
3746
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3747
  JSJitInfo::Setter,
3748
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3749
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3750
  false,  /* isInfallible. False in setters. */
3751
  false,  /* isMovable.  Not relevant for setters. */
3752
  false, /* isEliminatable.  Not relevant for setters. */
3753
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3754
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3755
  false,  /* isTypedMethod.  Only relevant for methods. */
3756
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3757
};
3758
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3759
static_assert(0 < 1, "There is no slot for us");
3760
3761
MOZ_CAN_RUN_SCRIPT static bool
3762
get_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3763
0
{
3764
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.imageOrientation", DOM, cx);
3765
0
3766
0
  FastErrorResult rv;
3767
0
  DOMString result;
3768
0
  self->GetImageOrientation(result, rv);
3769
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3770
0
    return false;
3771
0
  }
3772
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3773
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3774
0
    return false;
3775
0
  }
3776
0
  return true;
3777
0
}
3778
3779
MOZ_CAN_RUN_SCRIPT static bool
3780
set_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3781
0
{
3782
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.imageOrientation", DOM, cx);
3783
0
3784
0
  binding_detail::FakeString arg0;
3785
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3786
0
    return false;
3787
0
  }
3788
0
  Maybe<AutoCEReaction> ceReaction;
3789
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3790
0
    DocGroup* docGroup = self->GetDocGroup();
3791
0
    if (docGroup) {
3792
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3793
0
    }
3794
0
  }
3795
0
  FastErrorResult rv;
3796
0
  nsIPrincipal* subjectPrincipal;
3797
0
  {
3798
0
    JS::Realm* realm = js::GetContextRealm(cx);
3799
0
    MOZ_ASSERT(realm);
3800
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3801
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3802
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3803
0
      principal = nullptr;
3804
0
    }
3805
0
3806
0
    subjectPrincipal = principal;
3807
0
  }
3808
0
  self->SetImageOrientation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3809
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3810
0
    return false;
3811
0
  }
3812
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3813
0
3814
0
  return true;
3815
0
}
3816
3817
static const JSJitInfo imageOrientation_getterinfo = {
3818
  { (JSJitGetterOp)get_imageOrientation },
3819
  { prototypes::id::CSS2Properties },
3820
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3821
  JSJitInfo::Getter,
3822
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3823
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3824
  false,  /* isInfallible. False in setters. */
3825
  false,  /* isMovable.  Not relevant for setters. */
3826
  false, /* isEliminatable.  Not relevant for setters. */
3827
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3828
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3829
  false,  /* isTypedMethod.  Only relevant for methods. */
3830
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3831
};
3832
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3833
static_assert(0 < 1, "There is no slot for us");
3834
static const JSJitInfo imageOrientation_setterinfo = {
3835
  { (JSJitGetterOp)set_imageOrientation },
3836
  { prototypes::id::CSS2Properties },
3837
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3838
  JSJitInfo::Setter,
3839
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3840
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3841
  false,  /* isInfallible. False in setters. */
3842
  false,  /* isMovable.  Not relevant for setters. */
3843
  false, /* isEliminatable.  Not relevant for setters. */
3844
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3845
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3846
  false,  /* isTypedMethod.  Only relevant for methods. */
3847
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3848
};
3849
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3850
static_assert(0 < 1, "There is no slot for us");
3851
3852
MOZ_CAN_RUN_SCRIPT static bool
3853
get_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3854
0
{
3855
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.imageRendering", DOM, cx);
3856
0
3857
0
  FastErrorResult rv;
3858
0
  DOMString result;
3859
0
  self->GetImageRendering(result, rv);
3860
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3861
0
    return false;
3862
0
  }
3863
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3864
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3865
0
    return false;
3866
0
  }
3867
0
  return true;
3868
0
}
3869
3870
MOZ_CAN_RUN_SCRIPT static bool
3871
set_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3872
0
{
3873
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.imageRendering", DOM, cx);
3874
0
3875
0
  binding_detail::FakeString arg0;
3876
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3877
0
    return false;
3878
0
  }
3879
0
  Maybe<AutoCEReaction> ceReaction;
3880
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3881
0
    DocGroup* docGroup = self->GetDocGroup();
3882
0
    if (docGroup) {
3883
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3884
0
    }
3885
0
  }
3886
0
  FastErrorResult rv;
3887
0
  nsIPrincipal* subjectPrincipal;
3888
0
  {
3889
0
    JS::Realm* realm = js::GetContextRealm(cx);
3890
0
    MOZ_ASSERT(realm);
3891
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3892
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3893
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3894
0
      principal = nullptr;
3895
0
    }
3896
0
3897
0
    subjectPrincipal = principal;
3898
0
  }
3899
0
  self->SetImageRendering(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3900
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3901
0
    return false;
3902
0
  }
3903
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3904
0
3905
0
  return true;
3906
0
}
3907
3908
static const JSJitInfo imageRendering_getterinfo = {
3909
  { (JSJitGetterOp)get_imageRendering },
3910
  { prototypes::id::CSS2Properties },
3911
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3912
  JSJitInfo::Getter,
3913
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3914
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
3915
  false,  /* isInfallible. False in setters. */
3916
  false,  /* isMovable.  Not relevant for setters. */
3917
  false, /* isEliminatable.  Not relevant for setters. */
3918
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3919
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3920
  false,  /* isTypedMethod.  Only relevant for methods. */
3921
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3922
};
3923
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3924
static_assert(0 < 1, "There is no slot for us");
3925
static const JSJitInfo imageRendering_setterinfo = {
3926
  { (JSJitGetterOp)set_imageRendering },
3927
  { prototypes::id::CSS2Properties },
3928
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
3929
  JSJitInfo::Setter,
3930
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
3931
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
3932
  false,  /* isInfallible. False in setters. */
3933
  false,  /* isMovable.  Not relevant for setters. */
3934
  false, /* isEliminatable.  Not relevant for setters. */
3935
  false, /* isAlwaysInSlot.  Only relevant for getters. */
3936
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
3937
  false,  /* isTypedMethod.  Only relevant for methods. */
3938
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
3939
};
3940
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
3941
static_assert(0 < 1, "There is no slot for us");
3942
3943
MOZ_CAN_RUN_SCRIPT static bool
3944
get_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
3945
0
{
3946
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.imeMode", DOM, cx);
3947
0
3948
0
  FastErrorResult rv;
3949
0
  DOMString result;
3950
0
  self->GetImeMode(result, rv);
3951
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3952
0
    return false;
3953
0
  }
3954
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3955
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
3956
0
    return false;
3957
0
  }
3958
0
  return true;
3959
0
}
3960
3961
MOZ_CAN_RUN_SCRIPT static bool
3962
set_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
3963
0
{
3964
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.imeMode", DOM, cx);
3965
0
3966
0
  binding_detail::FakeString arg0;
3967
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
3968
0
    return false;
3969
0
  }
3970
0
  Maybe<AutoCEReaction> ceReaction;
3971
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
3972
0
    DocGroup* docGroup = self->GetDocGroup();
3973
0
    if (docGroup) {
3974
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
3975
0
    }
3976
0
  }
3977
0
  FastErrorResult rv;
3978
0
  nsIPrincipal* subjectPrincipal;
3979
0
  {
3980
0
    JS::Realm* realm = js::GetContextRealm(cx);
3981
0
    MOZ_ASSERT(realm);
3982
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
3983
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
3984
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
3985
0
      principal = nullptr;
3986
0
    }
3987
0
3988
0
    subjectPrincipal = principal;
3989
0
  }
3990
0
  self->SetImeMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
3991
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
3992
0
    return false;
3993
0
  }
3994
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
3995
0
3996
0
  return true;
3997
0
}
3998
3999
static const JSJitInfo imeMode_getterinfo = {
4000
  { (JSJitGetterOp)get_imeMode },
4001
  { prototypes::id::CSS2Properties },
4002
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4003
  JSJitInfo::Getter,
4004
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4005
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4006
  false,  /* isInfallible. False in setters. */
4007
  false,  /* isMovable.  Not relevant for setters. */
4008
  false, /* isEliminatable.  Not relevant for setters. */
4009
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4010
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4011
  false,  /* isTypedMethod.  Only relevant for methods. */
4012
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4013
};
4014
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4015
static_assert(0 < 1, "There is no slot for us");
4016
static const JSJitInfo imeMode_setterinfo = {
4017
  { (JSJitGetterOp)set_imeMode },
4018
  { prototypes::id::CSS2Properties },
4019
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4020
  JSJitInfo::Setter,
4021
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4022
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4023
  false,  /* isInfallible. False in setters. */
4024
  false,  /* isMovable.  Not relevant for setters. */
4025
  false, /* isEliminatable.  Not relevant for setters. */
4026
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4027
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4028
  false,  /* isTypedMethod.  Only relevant for methods. */
4029
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4030
};
4031
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4032
static_assert(0 < 1, "There is no slot for us");
4033
4034
MOZ_CAN_RUN_SCRIPT static bool
4035
get_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4036
0
{
4037
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.initialLetter", DOM, cx);
4038
0
4039
0
  FastErrorResult rv;
4040
0
  DOMString result;
4041
0
  self->GetInitialLetter(result, rv);
4042
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4043
0
    return false;
4044
0
  }
4045
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4046
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4047
0
    return false;
4048
0
  }
4049
0
  return true;
4050
0
}
4051
4052
MOZ_CAN_RUN_SCRIPT static bool
4053
set_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4054
0
{
4055
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.initialLetter", DOM, cx);
4056
0
4057
0
  binding_detail::FakeString arg0;
4058
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4059
0
    return false;
4060
0
  }
4061
0
  Maybe<AutoCEReaction> ceReaction;
4062
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4063
0
    DocGroup* docGroup = self->GetDocGroup();
4064
0
    if (docGroup) {
4065
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4066
0
    }
4067
0
  }
4068
0
  FastErrorResult rv;
4069
0
  nsIPrincipal* subjectPrincipal;
4070
0
  {
4071
0
    JS::Realm* realm = js::GetContextRealm(cx);
4072
0
    MOZ_ASSERT(realm);
4073
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4074
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4075
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4076
0
      principal = nullptr;
4077
0
    }
4078
0
4079
0
    subjectPrincipal = principal;
4080
0
  }
4081
0
  self->SetInitialLetter(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4082
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4083
0
    return false;
4084
0
  }
4085
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4086
0
4087
0
  return true;
4088
0
}
4089
4090
static const JSJitInfo initialLetter_getterinfo = {
4091
  { (JSJitGetterOp)get_initialLetter },
4092
  { prototypes::id::CSS2Properties },
4093
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4094
  JSJitInfo::Getter,
4095
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4096
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4097
  false,  /* isInfallible. False in setters. */
4098
  false,  /* isMovable.  Not relevant for setters. */
4099
  false, /* isEliminatable.  Not relevant for setters. */
4100
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4101
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4102
  false,  /* isTypedMethod.  Only relevant for methods. */
4103
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4104
};
4105
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4106
static_assert(0 < 1, "There is no slot for us");
4107
static const JSJitInfo initialLetter_setterinfo = {
4108
  { (JSJitGetterOp)set_initialLetter },
4109
  { prototypes::id::CSS2Properties },
4110
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4111
  JSJitInfo::Setter,
4112
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4113
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4114
  false,  /* isInfallible. False in setters. */
4115
  false,  /* isMovable.  Not relevant for setters. */
4116
  false, /* isEliminatable.  Not relevant for setters. */
4117
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4118
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4119
  false,  /* isTypedMethod.  Only relevant for methods. */
4120
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4121
};
4122
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4123
static_assert(0 < 1, "There is no slot for us");
4124
4125
MOZ_CAN_RUN_SCRIPT static bool
4126
get_isolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4127
0
{
4128
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.isolation", DOM, cx);
4129
0
4130
0
  FastErrorResult rv;
4131
0
  DOMString result;
4132
0
  self->GetIsolation(result, rv);
4133
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4134
0
    return false;
4135
0
  }
4136
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4137
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4138
0
    return false;
4139
0
  }
4140
0
  return true;
4141
0
}
4142
4143
MOZ_CAN_RUN_SCRIPT static bool
4144
set_isolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4145
0
{
4146
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.isolation", DOM, cx);
4147
0
4148
0
  binding_detail::FakeString arg0;
4149
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4150
0
    return false;
4151
0
  }
4152
0
  Maybe<AutoCEReaction> ceReaction;
4153
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4154
0
    DocGroup* docGroup = self->GetDocGroup();
4155
0
    if (docGroup) {
4156
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4157
0
    }
4158
0
  }
4159
0
  FastErrorResult rv;
4160
0
  nsIPrincipal* subjectPrincipal;
4161
0
  {
4162
0
    JS::Realm* realm = js::GetContextRealm(cx);
4163
0
    MOZ_ASSERT(realm);
4164
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4165
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4166
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4167
0
      principal = nullptr;
4168
0
    }
4169
0
4170
0
    subjectPrincipal = principal;
4171
0
  }
4172
0
  self->SetIsolation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4173
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4174
0
    return false;
4175
0
  }
4176
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4177
0
4178
0
  return true;
4179
0
}
4180
4181
static const JSJitInfo isolation_getterinfo = {
4182
  { (JSJitGetterOp)get_isolation },
4183
  { prototypes::id::CSS2Properties },
4184
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4185
  JSJitInfo::Getter,
4186
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4187
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4188
  false,  /* isInfallible. False in setters. */
4189
  false,  /* isMovable.  Not relevant for setters. */
4190
  false, /* isEliminatable.  Not relevant for setters. */
4191
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4192
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4193
  false,  /* isTypedMethod.  Only relevant for methods. */
4194
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4195
};
4196
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4197
static_assert(0 < 1, "There is no slot for us");
4198
static const JSJitInfo isolation_setterinfo = {
4199
  { (JSJitGetterOp)set_isolation },
4200
  { prototypes::id::CSS2Properties },
4201
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4202
  JSJitInfo::Setter,
4203
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4204
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4205
  false,  /* isInfallible. False in setters. */
4206
  false,  /* isMovable.  Not relevant for setters. */
4207
  false, /* isEliminatable.  Not relevant for setters. */
4208
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4209
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4210
  false,  /* isTypedMethod.  Only relevant for methods. */
4211
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4212
};
4213
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4214
static_assert(0 < 1, "There is no slot for us");
4215
4216
MOZ_CAN_RUN_SCRIPT static bool
4217
get_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4218
0
{
4219
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.justifyContent", DOM, cx);
4220
0
4221
0
  FastErrorResult rv;
4222
0
  DOMString result;
4223
0
  self->GetJustifyContent(result, rv);
4224
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4225
0
    return false;
4226
0
  }
4227
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4228
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4229
0
    return false;
4230
0
  }
4231
0
  return true;
4232
0
}
4233
4234
MOZ_CAN_RUN_SCRIPT static bool
4235
set_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4236
0
{
4237
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.justifyContent", DOM, cx);
4238
0
4239
0
  binding_detail::FakeString arg0;
4240
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4241
0
    return false;
4242
0
  }
4243
0
  Maybe<AutoCEReaction> ceReaction;
4244
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4245
0
    DocGroup* docGroup = self->GetDocGroup();
4246
0
    if (docGroup) {
4247
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4248
0
    }
4249
0
  }
4250
0
  FastErrorResult rv;
4251
0
  nsIPrincipal* subjectPrincipal;
4252
0
  {
4253
0
    JS::Realm* realm = js::GetContextRealm(cx);
4254
0
    MOZ_ASSERT(realm);
4255
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4256
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4257
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4258
0
      principal = nullptr;
4259
0
    }
4260
0
4261
0
    subjectPrincipal = principal;
4262
0
  }
4263
0
  self->SetJustifyContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4264
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4265
0
    return false;
4266
0
  }
4267
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4268
0
4269
0
  return true;
4270
0
}
4271
4272
static const JSJitInfo justifyContent_getterinfo = {
4273
  { (JSJitGetterOp)get_justifyContent },
4274
  { prototypes::id::CSS2Properties },
4275
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4276
  JSJitInfo::Getter,
4277
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4278
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4279
  false,  /* isInfallible. False in setters. */
4280
  false,  /* isMovable.  Not relevant for setters. */
4281
  false, /* isEliminatable.  Not relevant for setters. */
4282
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4283
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4284
  false,  /* isTypedMethod.  Only relevant for methods. */
4285
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4286
};
4287
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4288
static_assert(0 < 1, "There is no slot for us");
4289
static const JSJitInfo justifyContent_setterinfo = {
4290
  { (JSJitGetterOp)set_justifyContent },
4291
  { prototypes::id::CSS2Properties },
4292
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4293
  JSJitInfo::Setter,
4294
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4295
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4296
  false,  /* isInfallible. False in setters. */
4297
  false,  /* isMovable.  Not relevant for setters. */
4298
  false, /* isEliminatable.  Not relevant for setters. */
4299
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4300
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4301
  false,  /* isTypedMethod.  Only relevant for methods. */
4302
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4303
};
4304
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4305
static_assert(0 < 1, "There is no slot for us");
4306
4307
MOZ_CAN_RUN_SCRIPT static bool
4308
get_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4309
0
{
4310
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.justifyItems", DOM, cx);
4311
0
4312
0
  FastErrorResult rv;
4313
0
  DOMString result;
4314
0
  self->GetJustifyItems(result, rv);
4315
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4316
0
    return false;
4317
0
  }
4318
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4319
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4320
0
    return false;
4321
0
  }
4322
0
  return true;
4323
0
}
4324
4325
MOZ_CAN_RUN_SCRIPT static bool
4326
set_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4327
0
{
4328
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.justifyItems", DOM, cx);
4329
0
4330
0
  binding_detail::FakeString arg0;
4331
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4332
0
    return false;
4333
0
  }
4334
0
  Maybe<AutoCEReaction> ceReaction;
4335
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4336
0
    DocGroup* docGroup = self->GetDocGroup();
4337
0
    if (docGroup) {
4338
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4339
0
    }
4340
0
  }
4341
0
  FastErrorResult rv;
4342
0
  nsIPrincipal* subjectPrincipal;
4343
0
  {
4344
0
    JS::Realm* realm = js::GetContextRealm(cx);
4345
0
    MOZ_ASSERT(realm);
4346
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4347
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4348
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4349
0
      principal = nullptr;
4350
0
    }
4351
0
4352
0
    subjectPrincipal = principal;
4353
0
  }
4354
0
  self->SetJustifyItems(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4355
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4356
0
    return false;
4357
0
  }
4358
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4359
0
4360
0
  return true;
4361
0
}
4362
4363
static const JSJitInfo justifyItems_getterinfo = {
4364
  { (JSJitGetterOp)get_justifyItems },
4365
  { prototypes::id::CSS2Properties },
4366
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4367
  JSJitInfo::Getter,
4368
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4369
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4370
  false,  /* isInfallible. False in setters. */
4371
  false,  /* isMovable.  Not relevant for setters. */
4372
  false, /* isEliminatable.  Not relevant for setters. */
4373
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4374
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4375
  false,  /* isTypedMethod.  Only relevant for methods. */
4376
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4377
};
4378
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4379
static_assert(0 < 1, "There is no slot for us");
4380
static const JSJitInfo justifyItems_setterinfo = {
4381
  { (JSJitGetterOp)set_justifyItems },
4382
  { prototypes::id::CSS2Properties },
4383
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4384
  JSJitInfo::Setter,
4385
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4386
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4387
  false,  /* isInfallible. False in setters. */
4388
  false,  /* isMovable.  Not relevant for setters. */
4389
  false, /* isEliminatable.  Not relevant for setters. */
4390
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4391
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4392
  false,  /* isTypedMethod.  Only relevant for methods. */
4393
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4394
};
4395
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4396
static_assert(0 < 1, "There is no slot for us");
4397
4398
MOZ_CAN_RUN_SCRIPT static bool
4399
get_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4400
0
{
4401
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.justifySelf", DOM, cx);
4402
0
4403
0
  FastErrorResult rv;
4404
0
  DOMString result;
4405
0
  self->GetJustifySelf(result, rv);
4406
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4407
0
    return false;
4408
0
  }
4409
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4410
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4411
0
    return false;
4412
0
  }
4413
0
  return true;
4414
0
}
4415
4416
MOZ_CAN_RUN_SCRIPT static bool
4417
set_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4418
0
{
4419
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.justifySelf", DOM, cx);
4420
0
4421
0
  binding_detail::FakeString arg0;
4422
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4423
0
    return false;
4424
0
  }
4425
0
  Maybe<AutoCEReaction> ceReaction;
4426
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4427
0
    DocGroup* docGroup = self->GetDocGroup();
4428
0
    if (docGroup) {
4429
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4430
0
    }
4431
0
  }
4432
0
  FastErrorResult rv;
4433
0
  nsIPrincipal* subjectPrincipal;
4434
0
  {
4435
0
    JS::Realm* realm = js::GetContextRealm(cx);
4436
0
    MOZ_ASSERT(realm);
4437
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4438
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4439
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4440
0
      principal = nullptr;
4441
0
    }
4442
0
4443
0
    subjectPrincipal = principal;
4444
0
  }
4445
0
  self->SetJustifySelf(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4446
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4447
0
    return false;
4448
0
  }
4449
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4450
0
4451
0
  return true;
4452
0
}
4453
4454
static const JSJitInfo justifySelf_getterinfo = {
4455
  { (JSJitGetterOp)get_justifySelf },
4456
  { prototypes::id::CSS2Properties },
4457
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4458
  JSJitInfo::Getter,
4459
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4460
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4461
  false,  /* isInfallible. False in setters. */
4462
  false,  /* isMovable.  Not relevant for setters. */
4463
  false, /* isEliminatable.  Not relevant for setters. */
4464
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4465
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4466
  false,  /* isTypedMethod.  Only relevant for methods. */
4467
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4468
};
4469
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4470
static_assert(0 < 1, "There is no slot for us");
4471
static const JSJitInfo justifySelf_setterinfo = {
4472
  { (JSJitGetterOp)set_justifySelf },
4473
  { prototypes::id::CSS2Properties },
4474
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4475
  JSJitInfo::Setter,
4476
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4477
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4478
  false,  /* isInfallible. False in setters. */
4479
  false,  /* isMovable.  Not relevant for setters. */
4480
  false, /* isEliminatable.  Not relevant for setters. */
4481
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4482
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4483
  false,  /* isTypedMethod.  Only relevant for methods. */
4484
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4485
};
4486
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4487
static_assert(0 < 1, "There is no slot for us");
4488
4489
MOZ_CAN_RUN_SCRIPT static bool
4490
get_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4491
0
{
4492
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.listStylePosition", DOM, cx);
4493
0
4494
0
  FastErrorResult rv;
4495
0
  DOMString result;
4496
0
  self->GetListStylePosition(result, rv);
4497
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4498
0
    return false;
4499
0
  }
4500
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4501
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4502
0
    return false;
4503
0
  }
4504
0
  return true;
4505
0
}
4506
4507
MOZ_CAN_RUN_SCRIPT static bool
4508
set_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4509
0
{
4510
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.listStylePosition", DOM, cx);
4511
0
4512
0
  binding_detail::FakeString arg0;
4513
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4514
0
    return false;
4515
0
  }
4516
0
  Maybe<AutoCEReaction> ceReaction;
4517
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4518
0
    DocGroup* docGroup = self->GetDocGroup();
4519
0
    if (docGroup) {
4520
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4521
0
    }
4522
0
  }
4523
0
  FastErrorResult rv;
4524
0
  nsIPrincipal* subjectPrincipal;
4525
0
  {
4526
0
    JS::Realm* realm = js::GetContextRealm(cx);
4527
0
    MOZ_ASSERT(realm);
4528
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4529
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4530
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4531
0
      principal = nullptr;
4532
0
    }
4533
0
4534
0
    subjectPrincipal = principal;
4535
0
  }
4536
0
  self->SetListStylePosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4537
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4538
0
    return false;
4539
0
  }
4540
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4541
0
4542
0
  return true;
4543
0
}
4544
4545
static const JSJitInfo listStylePosition_getterinfo = {
4546
  { (JSJitGetterOp)get_listStylePosition },
4547
  { prototypes::id::CSS2Properties },
4548
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4549
  JSJitInfo::Getter,
4550
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4551
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4552
  false,  /* isInfallible. False in setters. */
4553
  false,  /* isMovable.  Not relevant for setters. */
4554
  false, /* isEliminatable.  Not relevant for setters. */
4555
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4556
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4557
  false,  /* isTypedMethod.  Only relevant for methods. */
4558
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4559
};
4560
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4561
static_assert(0 < 1, "There is no slot for us");
4562
static const JSJitInfo listStylePosition_setterinfo = {
4563
  { (JSJitGetterOp)set_listStylePosition },
4564
  { prototypes::id::CSS2Properties },
4565
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4566
  JSJitInfo::Setter,
4567
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4568
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4569
  false,  /* isInfallible. False in setters. */
4570
  false,  /* isMovable.  Not relevant for setters. */
4571
  false, /* isEliminatable.  Not relevant for setters. */
4572
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4573
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4574
  false,  /* isTypedMethod.  Only relevant for methods. */
4575
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4576
};
4577
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4578
static_assert(0 < 1, "There is no slot for us");
4579
4580
MOZ_CAN_RUN_SCRIPT static bool
4581
get_maskType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4582
0
{
4583
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskType", DOM, cx);
4584
0
4585
0
  FastErrorResult rv;
4586
0
  DOMString result;
4587
0
  self->GetMaskType(result, rv);
4588
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4589
0
    return false;
4590
0
  }
4591
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4592
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4593
0
    return false;
4594
0
  }
4595
0
  return true;
4596
0
}
4597
4598
MOZ_CAN_RUN_SCRIPT static bool
4599
set_maskType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4600
0
{
4601
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskType", DOM, cx);
4602
0
4603
0
  binding_detail::FakeString arg0;
4604
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4605
0
    return false;
4606
0
  }
4607
0
  Maybe<AutoCEReaction> ceReaction;
4608
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4609
0
    DocGroup* docGroup = self->GetDocGroup();
4610
0
    if (docGroup) {
4611
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4612
0
    }
4613
0
  }
4614
0
  FastErrorResult rv;
4615
0
  nsIPrincipal* subjectPrincipal;
4616
0
  {
4617
0
    JS::Realm* realm = js::GetContextRealm(cx);
4618
0
    MOZ_ASSERT(realm);
4619
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4620
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4621
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4622
0
      principal = nullptr;
4623
0
    }
4624
0
4625
0
    subjectPrincipal = principal;
4626
0
  }
4627
0
  self->SetMaskType(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4628
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4629
0
    return false;
4630
0
  }
4631
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4632
0
4633
0
  return true;
4634
0
}
4635
4636
static const JSJitInfo maskType_getterinfo = {
4637
  { (JSJitGetterOp)get_maskType },
4638
  { prototypes::id::CSS2Properties },
4639
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4640
  JSJitInfo::Getter,
4641
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4642
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4643
  false,  /* isInfallible. False in setters. */
4644
  false,  /* isMovable.  Not relevant for setters. */
4645
  false, /* isEliminatable.  Not relevant for setters. */
4646
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4647
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4648
  false,  /* isTypedMethod.  Only relevant for methods. */
4649
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4650
};
4651
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4652
static_assert(0 < 1, "There is no slot for us");
4653
static const JSJitInfo maskType_setterinfo = {
4654
  { (JSJitGetterOp)set_maskType },
4655
  { prototypes::id::CSS2Properties },
4656
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4657
  JSJitInfo::Setter,
4658
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4659
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4660
  false,  /* isInfallible. False in setters. */
4661
  false,  /* isMovable.  Not relevant for setters. */
4662
  false, /* isEliminatable.  Not relevant for setters. */
4663
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4664
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4665
  false,  /* isTypedMethod.  Only relevant for methods. */
4666
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4667
};
4668
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4669
static_assert(0 < 1, "There is no slot for us");
4670
4671
MOZ_CAN_RUN_SCRIPT static bool
4672
get_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4673
0
{
4674
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.mixBlendMode", DOM, cx);
4675
0
4676
0
  FastErrorResult rv;
4677
0
  DOMString result;
4678
0
  self->GetMixBlendMode(result, rv);
4679
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4680
0
    return false;
4681
0
  }
4682
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4683
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4684
0
    return false;
4685
0
  }
4686
0
  return true;
4687
0
}
4688
4689
MOZ_CAN_RUN_SCRIPT static bool
4690
set_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4691
0
{
4692
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.mixBlendMode", DOM, cx);
4693
0
4694
0
  binding_detail::FakeString arg0;
4695
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4696
0
    return false;
4697
0
  }
4698
0
  Maybe<AutoCEReaction> ceReaction;
4699
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4700
0
    DocGroup* docGroup = self->GetDocGroup();
4701
0
    if (docGroup) {
4702
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4703
0
    }
4704
0
  }
4705
0
  FastErrorResult rv;
4706
0
  nsIPrincipal* subjectPrincipal;
4707
0
  {
4708
0
    JS::Realm* realm = js::GetContextRealm(cx);
4709
0
    MOZ_ASSERT(realm);
4710
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4711
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4712
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4713
0
      principal = nullptr;
4714
0
    }
4715
0
4716
0
    subjectPrincipal = principal;
4717
0
  }
4718
0
  self->SetMixBlendMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4719
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4720
0
    return false;
4721
0
  }
4722
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4723
0
4724
0
  return true;
4725
0
}
4726
4727
static const JSJitInfo mixBlendMode_getterinfo = {
4728
  { (JSJitGetterOp)get_mixBlendMode },
4729
  { prototypes::id::CSS2Properties },
4730
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4731
  JSJitInfo::Getter,
4732
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4733
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4734
  false,  /* isInfallible. False in setters. */
4735
  false,  /* isMovable.  Not relevant for setters. */
4736
  false, /* isEliminatable.  Not relevant for setters. */
4737
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4738
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4739
  false,  /* isTypedMethod.  Only relevant for methods. */
4740
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4741
};
4742
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4743
static_assert(0 < 1, "There is no slot for us");
4744
static const JSJitInfo mixBlendMode_setterinfo = {
4745
  { (JSJitGetterOp)set_mixBlendMode },
4746
  { prototypes::id::CSS2Properties },
4747
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4748
  JSJitInfo::Setter,
4749
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4750
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4751
  false,  /* isInfallible. False in setters. */
4752
  false,  /* isMovable.  Not relevant for setters. */
4753
  false, /* isEliminatable.  Not relevant for setters. */
4754
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4755
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4756
  false,  /* isTypedMethod.  Only relevant for methods. */
4757
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4758
};
4759
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4760
static_assert(0 < 1, "There is no slot for us");
4761
4762
MOZ_CAN_RUN_SCRIPT static bool
4763
get_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4764
0
{
4765
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAppearance", DOM, cx);
4766
0
4767
0
  FastErrorResult rv;
4768
0
  DOMString result;
4769
0
  self->GetMozAppearance(result, rv);
4770
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4771
0
    return false;
4772
0
  }
4773
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4774
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4775
0
    return false;
4776
0
  }
4777
0
  return true;
4778
0
}
4779
4780
MOZ_CAN_RUN_SCRIPT static bool
4781
set_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4782
0
{
4783
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAppearance", DOM, cx);
4784
0
4785
0
  binding_detail::FakeString arg0;
4786
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4787
0
    return false;
4788
0
  }
4789
0
  Maybe<AutoCEReaction> ceReaction;
4790
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4791
0
    DocGroup* docGroup = self->GetDocGroup();
4792
0
    if (docGroup) {
4793
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4794
0
    }
4795
0
  }
4796
0
  FastErrorResult rv;
4797
0
  nsIPrincipal* subjectPrincipal;
4798
0
  {
4799
0
    JS::Realm* realm = js::GetContextRealm(cx);
4800
0
    MOZ_ASSERT(realm);
4801
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4802
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4803
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4804
0
      principal = nullptr;
4805
0
    }
4806
0
4807
0
    subjectPrincipal = principal;
4808
0
  }
4809
0
  self->SetMozAppearance(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4810
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4811
0
    return false;
4812
0
  }
4813
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4814
0
4815
0
  return true;
4816
0
}
4817
4818
static const JSJitInfo MozAppearance_getterinfo = {
4819
  { (JSJitGetterOp)get_MozAppearance },
4820
  { prototypes::id::CSS2Properties },
4821
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4822
  JSJitInfo::Getter,
4823
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4824
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4825
  false,  /* isInfallible. False in setters. */
4826
  false,  /* isMovable.  Not relevant for setters. */
4827
  false, /* isEliminatable.  Not relevant for setters. */
4828
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4829
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4830
  false,  /* isTypedMethod.  Only relevant for methods. */
4831
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4832
};
4833
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4834
static_assert(0 < 1, "There is no slot for us");
4835
static const JSJitInfo MozAppearance_setterinfo = {
4836
  { (JSJitGetterOp)set_MozAppearance },
4837
  { prototypes::id::CSS2Properties },
4838
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4839
  JSJitInfo::Setter,
4840
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4841
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4842
  false,  /* isInfallible. False in setters. */
4843
  false,  /* isMovable.  Not relevant for setters. */
4844
  false, /* isEliminatable.  Not relevant for setters. */
4845
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4846
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4847
  false,  /* isTypedMethod.  Only relevant for methods. */
4848
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4849
};
4850
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4851
static_assert(0 < 1, "There is no slot for us");
4852
4853
MOZ_CAN_RUN_SCRIPT static bool
4854
get_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4855
0
{
4856
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxAlign", DOM, cx);
4857
0
4858
0
  FastErrorResult rv;
4859
0
  DOMString result;
4860
0
  self->GetMozBoxAlign(result, rv);
4861
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4862
0
    return false;
4863
0
  }
4864
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4865
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4866
0
    return false;
4867
0
  }
4868
0
  return true;
4869
0
}
4870
4871
MOZ_CAN_RUN_SCRIPT static bool
4872
set_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4873
0
{
4874
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxAlign", DOM, cx);
4875
0
4876
0
  binding_detail::FakeString arg0;
4877
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4878
0
    return false;
4879
0
  }
4880
0
  Maybe<AutoCEReaction> ceReaction;
4881
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4882
0
    DocGroup* docGroup = self->GetDocGroup();
4883
0
    if (docGroup) {
4884
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4885
0
    }
4886
0
  }
4887
0
  FastErrorResult rv;
4888
0
  nsIPrincipal* subjectPrincipal;
4889
0
  {
4890
0
    JS::Realm* realm = js::GetContextRealm(cx);
4891
0
    MOZ_ASSERT(realm);
4892
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4893
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4894
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4895
0
      principal = nullptr;
4896
0
    }
4897
0
4898
0
    subjectPrincipal = principal;
4899
0
  }
4900
0
  self->SetMozBoxAlign(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4901
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4902
0
    return false;
4903
0
  }
4904
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4905
0
4906
0
  return true;
4907
0
}
4908
4909
static const JSJitInfo MozBoxAlign_getterinfo = {
4910
  { (JSJitGetterOp)get_MozBoxAlign },
4911
  { prototypes::id::CSS2Properties },
4912
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4913
  JSJitInfo::Getter,
4914
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4915
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
4916
  false,  /* isInfallible. False in setters. */
4917
  false,  /* isMovable.  Not relevant for setters. */
4918
  false, /* isEliminatable.  Not relevant for setters. */
4919
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4920
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4921
  false,  /* isTypedMethod.  Only relevant for methods. */
4922
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4923
};
4924
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4925
static_assert(0 < 1, "There is no slot for us");
4926
static const JSJitInfo MozBoxAlign_setterinfo = {
4927
  { (JSJitGetterOp)set_MozBoxAlign },
4928
  { prototypes::id::CSS2Properties },
4929
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
4930
  JSJitInfo::Setter,
4931
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
4932
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
4933
  false,  /* isInfallible. False in setters. */
4934
  false,  /* isMovable.  Not relevant for setters. */
4935
  false, /* isEliminatable.  Not relevant for setters. */
4936
  false, /* isAlwaysInSlot.  Only relevant for getters. */
4937
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
4938
  false,  /* isTypedMethod.  Only relevant for methods. */
4939
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
4940
};
4941
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
4942
static_assert(0 < 1, "There is no slot for us");
4943
4944
MOZ_CAN_RUN_SCRIPT static bool
4945
get_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
4946
0
{
4947
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxDirection", DOM, cx);
4948
0
4949
0
  FastErrorResult rv;
4950
0
  DOMString result;
4951
0
  self->GetMozBoxDirection(result, rv);
4952
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4953
0
    return false;
4954
0
  }
4955
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4956
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
4957
0
    return false;
4958
0
  }
4959
0
  return true;
4960
0
}
4961
4962
MOZ_CAN_RUN_SCRIPT static bool
4963
set_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
4964
0
{
4965
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxDirection", DOM, cx);
4966
0
4967
0
  binding_detail::FakeString arg0;
4968
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
4969
0
    return false;
4970
0
  }
4971
0
  Maybe<AutoCEReaction> ceReaction;
4972
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
4973
0
    DocGroup* docGroup = self->GetDocGroup();
4974
0
    if (docGroup) {
4975
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
4976
0
    }
4977
0
  }
4978
0
  FastErrorResult rv;
4979
0
  nsIPrincipal* subjectPrincipal;
4980
0
  {
4981
0
    JS::Realm* realm = js::GetContextRealm(cx);
4982
0
    MOZ_ASSERT(realm);
4983
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
4984
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
4985
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
4986
0
      principal = nullptr;
4987
0
    }
4988
0
4989
0
    subjectPrincipal = principal;
4990
0
  }
4991
0
  self->SetMozBoxDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
4992
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
4993
0
    return false;
4994
0
  }
4995
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
4996
0
4997
0
  return true;
4998
0
}
4999
5000
static const JSJitInfo MozBoxDirection_getterinfo = {
5001
  { (JSJitGetterOp)get_MozBoxDirection },
5002
  { prototypes::id::CSS2Properties },
5003
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5004
  JSJitInfo::Getter,
5005
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5006
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5007
  false,  /* isInfallible. False in setters. */
5008
  false,  /* isMovable.  Not relevant for setters. */
5009
  false, /* isEliminatable.  Not relevant for setters. */
5010
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5011
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5012
  false,  /* isTypedMethod.  Only relevant for methods. */
5013
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5014
};
5015
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5016
static_assert(0 < 1, "There is no slot for us");
5017
static const JSJitInfo MozBoxDirection_setterinfo = {
5018
  { (JSJitGetterOp)set_MozBoxDirection },
5019
  { prototypes::id::CSS2Properties },
5020
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5021
  JSJitInfo::Setter,
5022
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5023
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5024
  false,  /* isInfallible. False in setters. */
5025
  false,  /* isMovable.  Not relevant for setters. */
5026
  false, /* isEliminatable.  Not relevant for setters. */
5027
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5028
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5029
  false,  /* isTypedMethod.  Only relevant for methods. */
5030
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5031
};
5032
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5033
static_assert(0 < 1, "There is no slot for us");
5034
5035
MOZ_CAN_RUN_SCRIPT static bool
5036
get_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5037
0
{
5038
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxOrient", DOM, cx);
5039
0
5040
0
  FastErrorResult rv;
5041
0
  DOMString result;
5042
0
  self->GetMozBoxOrient(result, rv);
5043
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5044
0
    return false;
5045
0
  }
5046
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5047
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5048
0
    return false;
5049
0
  }
5050
0
  return true;
5051
0
}
5052
5053
MOZ_CAN_RUN_SCRIPT static bool
5054
set_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5055
0
{
5056
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxOrient", DOM, cx);
5057
0
5058
0
  binding_detail::FakeString arg0;
5059
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5060
0
    return false;
5061
0
  }
5062
0
  Maybe<AutoCEReaction> ceReaction;
5063
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5064
0
    DocGroup* docGroup = self->GetDocGroup();
5065
0
    if (docGroup) {
5066
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5067
0
    }
5068
0
  }
5069
0
  FastErrorResult rv;
5070
0
  nsIPrincipal* subjectPrincipal;
5071
0
  {
5072
0
    JS::Realm* realm = js::GetContextRealm(cx);
5073
0
    MOZ_ASSERT(realm);
5074
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5075
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5076
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5077
0
      principal = nullptr;
5078
0
    }
5079
0
5080
0
    subjectPrincipal = principal;
5081
0
  }
5082
0
  self->SetMozBoxOrient(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5083
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5084
0
    return false;
5085
0
  }
5086
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5087
0
5088
0
  return true;
5089
0
}
5090
5091
static const JSJitInfo MozBoxOrient_getterinfo = {
5092
  { (JSJitGetterOp)get_MozBoxOrient },
5093
  { prototypes::id::CSS2Properties },
5094
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5095
  JSJitInfo::Getter,
5096
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5097
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5098
  false,  /* isInfallible. False in setters. */
5099
  false,  /* isMovable.  Not relevant for setters. */
5100
  false, /* isEliminatable.  Not relevant for setters. */
5101
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5102
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5103
  false,  /* isTypedMethod.  Only relevant for methods. */
5104
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5105
};
5106
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5107
static_assert(0 < 1, "There is no slot for us");
5108
static const JSJitInfo MozBoxOrient_setterinfo = {
5109
  { (JSJitGetterOp)set_MozBoxOrient },
5110
  { prototypes::id::CSS2Properties },
5111
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5112
  JSJitInfo::Setter,
5113
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5114
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5115
  false,  /* isInfallible. False in setters. */
5116
  false,  /* isMovable.  Not relevant for setters. */
5117
  false, /* isEliminatable.  Not relevant for setters. */
5118
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5119
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5120
  false,  /* isTypedMethod.  Only relevant for methods. */
5121
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5122
};
5123
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5124
static_assert(0 < 1, "There is no slot for us");
5125
5126
MOZ_CAN_RUN_SCRIPT static bool
5127
get_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5128
0
{
5129
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxPack", DOM, cx);
5130
0
5131
0
  FastErrorResult rv;
5132
0
  DOMString result;
5133
0
  self->GetMozBoxPack(result, rv);
5134
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5135
0
    return false;
5136
0
  }
5137
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5138
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5139
0
    return false;
5140
0
  }
5141
0
  return true;
5142
0
}
5143
5144
MOZ_CAN_RUN_SCRIPT static bool
5145
set_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5146
0
{
5147
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxPack", DOM, cx);
5148
0
5149
0
  binding_detail::FakeString arg0;
5150
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5151
0
    return false;
5152
0
  }
5153
0
  Maybe<AutoCEReaction> ceReaction;
5154
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5155
0
    DocGroup* docGroup = self->GetDocGroup();
5156
0
    if (docGroup) {
5157
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5158
0
    }
5159
0
  }
5160
0
  FastErrorResult rv;
5161
0
  nsIPrincipal* subjectPrincipal;
5162
0
  {
5163
0
    JS::Realm* realm = js::GetContextRealm(cx);
5164
0
    MOZ_ASSERT(realm);
5165
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5166
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5167
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5168
0
      principal = nullptr;
5169
0
    }
5170
0
5171
0
    subjectPrincipal = principal;
5172
0
  }
5173
0
  self->SetMozBoxPack(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5174
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5175
0
    return false;
5176
0
  }
5177
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5178
0
5179
0
  return true;
5180
0
}
5181
5182
static const JSJitInfo MozBoxPack_getterinfo = {
5183
  { (JSJitGetterOp)get_MozBoxPack },
5184
  { prototypes::id::CSS2Properties },
5185
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5186
  JSJitInfo::Getter,
5187
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5188
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5189
  false,  /* isInfallible. False in setters. */
5190
  false,  /* isMovable.  Not relevant for setters. */
5191
  false, /* isEliminatable.  Not relevant for setters. */
5192
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5193
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5194
  false,  /* isTypedMethod.  Only relevant for methods. */
5195
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5196
};
5197
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5198
static_assert(0 < 1, "There is no slot for us");
5199
static const JSJitInfo MozBoxPack_setterinfo = {
5200
  { (JSJitGetterOp)set_MozBoxPack },
5201
  { prototypes::id::CSS2Properties },
5202
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5203
  JSJitInfo::Setter,
5204
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5205
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5206
  false,  /* isInfallible. False in setters. */
5207
  false,  /* isMovable.  Not relevant for setters. */
5208
  false, /* isEliminatable.  Not relevant for setters. */
5209
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5210
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5211
  false,  /* isTypedMethod.  Only relevant for methods. */
5212
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5213
};
5214
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5215
static_assert(0 < 1, "There is no slot for us");
5216
5217
MOZ_CAN_RUN_SCRIPT static bool
5218
get_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5219
0
{
5220
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozFloatEdge", DOM, cx);
5221
0
5222
0
  FastErrorResult rv;
5223
0
  DOMString result;
5224
0
  self->GetMozFloatEdge(result, rv);
5225
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5226
0
    return false;
5227
0
  }
5228
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5229
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5230
0
    return false;
5231
0
  }
5232
0
  return true;
5233
0
}
5234
5235
MOZ_CAN_RUN_SCRIPT static bool
5236
set_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5237
0
{
5238
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozFloatEdge", DOM, cx);
5239
0
5240
0
  binding_detail::FakeString arg0;
5241
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5242
0
    return false;
5243
0
  }
5244
0
  Maybe<AutoCEReaction> ceReaction;
5245
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5246
0
    DocGroup* docGroup = self->GetDocGroup();
5247
0
    if (docGroup) {
5248
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5249
0
    }
5250
0
  }
5251
0
  FastErrorResult rv;
5252
0
  nsIPrincipal* subjectPrincipal;
5253
0
  {
5254
0
    JS::Realm* realm = js::GetContextRealm(cx);
5255
0
    MOZ_ASSERT(realm);
5256
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5257
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5258
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5259
0
      principal = nullptr;
5260
0
    }
5261
0
5262
0
    subjectPrincipal = principal;
5263
0
  }
5264
0
  self->SetMozFloatEdge(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5265
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5266
0
    return false;
5267
0
  }
5268
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5269
0
5270
0
  return true;
5271
0
}
5272
5273
static const JSJitInfo MozFloatEdge_getterinfo = {
5274
  { (JSJitGetterOp)get_MozFloatEdge },
5275
  { prototypes::id::CSS2Properties },
5276
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5277
  JSJitInfo::Getter,
5278
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5279
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5280
  false,  /* isInfallible. False in setters. */
5281
  false,  /* isMovable.  Not relevant for setters. */
5282
  false, /* isEliminatable.  Not relevant for setters. */
5283
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5284
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5285
  false,  /* isTypedMethod.  Only relevant for methods. */
5286
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5287
};
5288
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5289
static_assert(0 < 1, "There is no slot for us");
5290
static const JSJitInfo MozFloatEdge_setterinfo = {
5291
  { (JSJitGetterOp)set_MozFloatEdge },
5292
  { prototypes::id::CSS2Properties },
5293
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5294
  JSJitInfo::Setter,
5295
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5296
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5297
  false,  /* isInfallible. False in setters. */
5298
  false,  /* isMovable.  Not relevant for setters. */
5299
  false, /* isEliminatable.  Not relevant for setters. */
5300
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5301
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5302
  false,  /* isTypedMethod.  Only relevant for methods. */
5303
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5304
};
5305
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5306
static_assert(0 < 1, "There is no slot for us");
5307
5308
MOZ_CAN_RUN_SCRIPT static bool
5309
get_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5310
0
{
5311
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozForceBrokenImageIcon", DOM, cx);
5312
0
5313
0
  FastErrorResult rv;
5314
0
  DOMString result;
5315
0
  self->GetMozForceBrokenImageIcon(result, rv);
5316
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5317
0
    return false;
5318
0
  }
5319
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5320
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5321
0
    return false;
5322
0
  }
5323
0
  return true;
5324
0
}
5325
5326
MOZ_CAN_RUN_SCRIPT static bool
5327
set_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5328
0
{
5329
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozForceBrokenImageIcon", DOM, cx);
5330
0
5331
0
  binding_detail::FakeString arg0;
5332
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5333
0
    return false;
5334
0
  }
5335
0
  Maybe<AutoCEReaction> ceReaction;
5336
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5337
0
    DocGroup* docGroup = self->GetDocGroup();
5338
0
    if (docGroup) {
5339
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5340
0
    }
5341
0
  }
5342
0
  FastErrorResult rv;
5343
0
  nsIPrincipal* subjectPrincipal;
5344
0
  {
5345
0
    JS::Realm* realm = js::GetContextRealm(cx);
5346
0
    MOZ_ASSERT(realm);
5347
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5348
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5349
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5350
0
      principal = nullptr;
5351
0
    }
5352
0
5353
0
    subjectPrincipal = principal;
5354
0
  }
5355
0
  self->SetMozForceBrokenImageIcon(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5356
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5357
0
    return false;
5358
0
  }
5359
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5360
0
5361
0
  return true;
5362
0
}
5363
5364
static const JSJitInfo MozForceBrokenImageIcon_getterinfo = {
5365
  { (JSJitGetterOp)get_MozForceBrokenImageIcon },
5366
  { prototypes::id::CSS2Properties },
5367
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5368
  JSJitInfo::Getter,
5369
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5370
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5371
  false,  /* isInfallible. False in setters. */
5372
  false,  /* isMovable.  Not relevant for setters. */
5373
  false, /* isEliminatable.  Not relevant for setters. */
5374
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5375
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5376
  false,  /* isTypedMethod.  Only relevant for methods. */
5377
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5378
};
5379
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5380
static_assert(0 < 1, "There is no slot for us");
5381
static const JSJitInfo MozForceBrokenImageIcon_setterinfo = {
5382
  { (JSJitGetterOp)set_MozForceBrokenImageIcon },
5383
  { prototypes::id::CSS2Properties },
5384
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5385
  JSJitInfo::Setter,
5386
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5387
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5388
  false,  /* isInfallible. False in setters. */
5389
  false,  /* isMovable.  Not relevant for setters. */
5390
  false, /* isEliminatable.  Not relevant for setters. */
5391
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5392
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5393
  false,  /* isTypedMethod.  Only relevant for methods. */
5394
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5395
};
5396
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5397
static_assert(0 < 1, "There is no slot for us");
5398
5399
MOZ_CAN_RUN_SCRIPT static bool
5400
get_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5401
0
{
5402
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOrient", DOM, cx);
5403
0
5404
0
  FastErrorResult rv;
5405
0
  DOMString result;
5406
0
  self->GetMozOrient(result, rv);
5407
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5408
0
    return false;
5409
0
  }
5410
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5411
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5412
0
    return false;
5413
0
  }
5414
0
  return true;
5415
0
}
5416
5417
MOZ_CAN_RUN_SCRIPT static bool
5418
set_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5419
0
{
5420
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOrient", DOM, cx);
5421
0
5422
0
  binding_detail::FakeString arg0;
5423
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5424
0
    return false;
5425
0
  }
5426
0
  Maybe<AutoCEReaction> ceReaction;
5427
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5428
0
    DocGroup* docGroup = self->GetDocGroup();
5429
0
    if (docGroup) {
5430
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5431
0
    }
5432
0
  }
5433
0
  FastErrorResult rv;
5434
0
  nsIPrincipal* subjectPrincipal;
5435
0
  {
5436
0
    JS::Realm* realm = js::GetContextRealm(cx);
5437
0
    MOZ_ASSERT(realm);
5438
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5439
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5440
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5441
0
      principal = nullptr;
5442
0
    }
5443
0
5444
0
    subjectPrincipal = principal;
5445
0
  }
5446
0
  self->SetMozOrient(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5447
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5448
0
    return false;
5449
0
  }
5450
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5451
0
5452
0
  return true;
5453
0
}
5454
5455
static const JSJitInfo MozOrient_getterinfo = {
5456
  { (JSJitGetterOp)get_MozOrient },
5457
  { prototypes::id::CSS2Properties },
5458
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5459
  JSJitInfo::Getter,
5460
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5461
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5462
  false,  /* isInfallible. False in setters. */
5463
  false,  /* isMovable.  Not relevant for setters. */
5464
  false, /* isEliminatable.  Not relevant for setters. */
5465
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5466
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5467
  false,  /* isTypedMethod.  Only relevant for methods. */
5468
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5469
};
5470
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5471
static_assert(0 < 1, "There is no slot for us");
5472
static const JSJitInfo MozOrient_setterinfo = {
5473
  { (JSJitGetterOp)set_MozOrient },
5474
  { prototypes::id::CSS2Properties },
5475
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5476
  JSJitInfo::Setter,
5477
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5478
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5479
  false,  /* isInfallible. False in setters. */
5480
  false,  /* isMovable.  Not relevant for setters. */
5481
  false, /* isEliminatable.  Not relevant for setters. */
5482
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5483
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5484
  false,  /* isTypedMethod.  Only relevant for methods. */
5485
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5486
};
5487
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5488
static_assert(0 < 1, "There is no slot for us");
5489
5490
MOZ_CAN_RUN_SCRIPT static bool
5491
get_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5492
0
{
5493
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOsxFontSmoothing", DOM, cx);
5494
0
5495
0
  FastErrorResult rv;
5496
0
  DOMString result;
5497
0
  self->GetMozOsxFontSmoothing(result, rv);
5498
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5499
0
    return false;
5500
0
  }
5501
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5502
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5503
0
    return false;
5504
0
  }
5505
0
  return true;
5506
0
}
5507
5508
MOZ_CAN_RUN_SCRIPT static bool
5509
set_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5510
0
{
5511
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOsxFontSmoothing", DOM, cx);
5512
0
5513
0
  binding_detail::FakeString arg0;
5514
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5515
0
    return false;
5516
0
  }
5517
0
  Maybe<AutoCEReaction> ceReaction;
5518
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5519
0
    DocGroup* docGroup = self->GetDocGroup();
5520
0
    if (docGroup) {
5521
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5522
0
    }
5523
0
  }
5524
0
  FastErrorResult rv;
5525
0
  nsIPrincipal* subjectPrincipal;
5526
0
  {
5527
0
    JS::Realm* realm = js::GetContextRealm(cx);
5528
0
    MOZ_ASSERT(realm);
5529
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5530
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5531
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5532
0
      principal = nullptr;
5533
0
    }
5534
0
5535
0
    subjectPrincipal = principal;
5536
0
  }
5537
0
  self->SetMozOsxFontSmoothing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5538
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5539
0
    return false;
5540
0
  }
5541
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5542
0
5543
0
  return true;
5544
0
}
5545
5546
static const JSJitInfo MozOsxFontSmoothing_getterinfo = {
5547
  { (JSJitGetterOp)get_MozOsxFontSmoothing },
5548
  { prototypes::id::CSS2Properties },
5549
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5550
  JSJitInfo::Getter,
5551
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5552
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5553
  false,  /* isInfallible. False in setters. */
5554
  false,  /* isMovable.  Not relevant for setters. */
5555
  false, /* isEliminatable.  Not relevant for setters. */
5556
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5557
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5558
  false,  /* isTypedMethod.  Only relevant for methods. */
5559
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5560
};
5561
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5562
static_assert(0 < 1, "There is no slot for us");
5563
static const JSJitInfo MozOsxFontSmoothing_setterinfo = {
5564
  { (JSJitGetterOp)set_MozOsxFontSmoothing },
5565
  { prototypes::id::CSS2Properties },
5566
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5567
  JSJitInfo::Setter,
5568
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5569
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5570
  false,  /* isInfallible. False in setters. */
5571
  false,  /* isMovable.  Not relevant for setters. */
5572
  false, /* isEliminatable.  Not relevant for setters. */
5573
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5574
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5575
  false,  /* isTypedMethod.  Only relevant for methods. */
5576
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5577
};
5578
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5579
static_assert(0 < 1, "There is no slot for us");
5580
5581
MOZ_CAN_RUN_SCRIPT static bool
5582
get_MozStackSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5583
0
{
5584
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozStackSizing", DOM, cx);
5585
0
5586
0
  FastErrorResult rv;
5587
0
  DOMString result;
5588
0
  self->GetMozStackSizing(result, rv);
5589
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5590
0
    return false;
5591
0
  }
5592
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5593
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5594
0
    return false;
5595
0
  }
5596
0
  return true;
5597
0
}
5598
5599
MOZ_CAN_RUN_SCRIPT static bool
5600
set_MozStackSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5601
0
{
5602
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozStackSizing", DOM, cx);
5603
0
5604
0
  binding_detail::FakeString arg0;
5605
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5606
0
    return false;
5607
0
  }
5608
0
  Maybe<AutoCEReaction> ceReaction;
5609
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5610
0
    DocGroup* docGroup = self->GetDocGroup();
5611
0
    if (docGroup) {
5612
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5613
0
    }
5614
0
  }
5615
0
  FastErrorResult rv;
5616
0
  nsIPrincipal* subjectPrincipal;
5617
0
  {
5618
0
    JS::Realm* realm = js::GetContextRealm(cx);
5619
0
    MOZ_ASSERT(realm);
5620
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5621
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5622
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5623
0
      principal = nullptr;
5624
0
    }
5625
0
5626
0
    subjectPrincipal = principal;
5627
0
  }
5628
0
  self->SetMozStackSizing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5629
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5630
0
    return false;
5631
0
  }
5632
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5633
0
5634
0
  return true;
5635
0
}
5636
5637
static const JSJitInfo MozStackSizing_getterinfo = {
5638
  { (JSJitGetterOp)get_MozStackSizing },
5639
  { prototypes::id::CSS2Properties },
5640
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5641
  JSJitInfo::Getter,
5642
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5643
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5644
  false,  /* isInfallible. False in setters. */
5645
  false,  /* isMovable.  Not relevant for setters. */
5646
  false, /* isEliminatable.  Not relevant for setters. */
5647
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5648
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5649
  false,  /* isTypedMethod.  Only relevant for methods. */
5650
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5651
};
5652
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5653
static_assert(0 < 1, "There is no slot for us");
5654
static const JSJitInfo MozStackSizing_setterinfo = {
5655
  { (JSJitGetterOp)set_MozStackSizing },
5656
  { prototypes::id::CSS2Properties },
5657
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5658
  JSJitInfo::Setter,
5659
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5660
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5661
  false,  /* isInfallible. False in setters. */
5662
  false,  /* isMovable.  Not relevant for setters. */
5663
  false, /* isEliminatable.  Not relevant for setters. */
5664
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5665
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5666
  false,  /* isTypedMethod.  Only relevant for methods. */
5667
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5668
};
5669
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5670
static_assert(0 < 1, "There is no slot for us");
5671
5672
MOZ_CAN_RUN_SCRIPT static bool
5673
get_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5674
0
{
5675
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTextSizeAdjust", DOM, cx);
5676
0
5677
0
  FastErrorResult rv;
5678
0
  DOMString result;
5679
0
  self->GetMozTextSizeAdjust(result, rv);
5680
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5681
0
    return false;
5682
0
  }
5683
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5684
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5685
0
    return false;
5686
0
  }
5687
0
  return true;
5688
0
}
5689
5690
MOZ_CAN_RUN_SCRIPT static bool
5691
set_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5692
0
{
5693
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTextSizeAdjust", DOM, cx);
5694
0
5695
0
  binding_detail::FakeString arg0;
5696
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5697
0
    return false;
5698
0
  }
5699
0
  Maybe<AutoCEReaction> ceReaction;
5700
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5701
0
    DocGroup* docGroup = self->GetDocGroup();
5702
0
    if (docGroup) {
5703
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5704
0
    }
5705
0
  }
5706
0
  FastErrorResult rv;
5707
0
  nsIPrincipal* subjectPrincipal;
5708
0
  {
5709
0
    JS::Realm* realm = js::GetContextRealm(cx);
5710
0
    MOZ_ASSERT(realm);
5711
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5712
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5713
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5714
0
      principal = nullptr;
5715
0
    }
5716
0
5717
0
    subjectPrincipal = principal;
5718
0
  }
5719
0
  self->SetMozTextSizeAdjust(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5720
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5721
0
    return false;
5722
0
  }
5723
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5724
0
5725
0
  return true;
5726
0
}
5727
5728
static const JSJitInfo MozTextSizeAdjust_getterinfo = {
5729
  { (JSJitGetterOp)get_MozTextSizeAdjust },
5730
  { prototypes::id::CSS2Properties },
5731
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5732
  JSJitInfo::Getter,
5733
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5734
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5735
  false,  /* isInfallible. False in setters. */
5736
  false,  /* isMovable.  Not relevant for setters. */
5737
  false, /* isEliminatable.  Not relevant for setters. */
5738
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5739
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5740
  false,  /* isTypedMethod.  Only relevant for methods. */
5741
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5742
};
5743
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5744
static_assert(0 < 1, "There is no slot for us");
5745
static const JSJitInfo MozTextSizeAdjust_setterinfo = {
5746
  { (JSJitGetterOp)set_MozTextSizeAdjust },
5747
  { prototypes::id::CSS2Properties },
5748
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5749
  JSJitInfo::Setter,
5750
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5751
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5752
  false,  /* isInfallible. False in setters. */
5753
  false,  /* isMovable.  Not relevant for setters. */
5754
  false, /* isEliminatable.  Not relevant for setters. */
5755
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5756
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5757
  false,  /* isTypedMethod.  Only relevant for methods. */
5758
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5759
};
5760
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5761
static_assert(0 < 1, "There is no slot for us");
5762
5763
MOZ_CAN_RUN_SCRIPT static bool
5764
get_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5765
0
{
5766
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozUserFocus", DOM, cx);
5767
0
5768
0
  FastErrorResult rv;
5769
0
  DOMString result;
5770
0
  self->GetMozUserFocus(result, rv);
5771
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5772
0
    return false;
5773
0
  }
5774
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5775
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5776
0
    return false;
5777
0
  }
5778
0
  return true;
5779
0
}
5780
5781
MOZ_CAN_RUN_SCRIPT static bool
5782
set_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5783
0
{
5784
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozUserFocus", DOM, cx);
5785
0
5786
0
  binding_detail::FakeString arg0;
5787
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5788
0
    return false;
5789
0
  }
5790
0
  Maybe<AutoCEReaction> ceReaction;
5791
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5792
0
    DocGroup* docGroup = self->GetDocGroup();
5793
0
    if (docGroup) {
5794
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5795
0
    }
5796
0
  }
5797
0
  FastErrorResult rv;
5798
0
  nsIPrincipal* subjectPrincipal;
5799
0
  {
5800
0
    JS::Realm* realm = js::GetContextRealm(cx);
5801
0
    MOZ_ASSERT(realm);
5802
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5803
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5804
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5805
0
      principal = nullptr;
5806
0
    }
5807
0
5808
0
    subjectPrincipal = principal;
5809
0
  }
5810
0
  self->SetMozUserFocus(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5811
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5812
0
    return false;
5813
0
  }
5814
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5815
0
5816
0
  return true;
5817
0
}
5818
5819
static const JSJitInfo MozUserFocus_getterinfo = {
5820
  { (JSJitGetterOp)get_MozUserFocus },
5821
  { prototypes::id::CSS2Properties },
5822
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5823
  JSJitInfo::Getter,
5824
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5825
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5826
  false,  /* isInfallible. False in setters. */
5827
  false,  /* isMovable.  Not relevant for setters. */
5828
  false, /* isEliminatable.  Not relevant for setters. */
5829
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5830
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5831
  false,  /* isTypedMethod.  Only relevant for methods. */
5832
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5833
};
5834
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5835
static_assert(0 < 1, "There is no slot for us");
5836
static const JSJitInfo MozUserFocus_setterinfo = {
5837
  { (JSJitGetterOp)set_MozUserFocus },
5838
  { prototypes::id::CSS2Properties },
5839
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5840
  JSJitInfo::Setter,
5841
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5842
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5843
  false,  /* isInfallible. False in setters. */
5844
  false,  /* isMovable.  Not relevant for setters. */
5845
  false, /* isEliminatable.  Not relevant for setters. */
5846
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5847
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5848
  false,  /* isTypedMethod.  Only relevant for methods. */
5849
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5850
};
5851
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5852
static_assert(0 < 1, "There is no slot for us");
5853
5854
MOZ_CAN_RUN_SCRIPT static bool
5855
get_MozUserInput(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5856
0
{
5857
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozUserInput", DOM, cx);
5858
0
5859
0
  FastErrorResult rv;
5860
0
  DOMString result;
5861
0
  self->GetMozUserInput(result, rv);
5862
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5863
0
    return false;
5864
0
  }
5865
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5866
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5867
0
    return false;
5868
0
  }
5869
0
  return true;
5870
0
}
5871
5872
MOZ_CAN_RUN_SCRIPT static bool
5873
set_MozUserInput(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5874
0
{
5875
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozUserInput", DOM, cx);
5876
0
5877
0
  binding_detail::FakeString arg0;
5878
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5879
0
    return false;
5880
0
  }
5881
0
  Maybe<AutoCEReaction> ceReaction;
5882
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5883
0
    DocGroup* docGroup = self->GetDocGroup();
5884
0
    if (docGroup) {
5885
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5886
0
    }
5887
0
  }
5888
0
  FastErrorResult rv;
5889
0
  nsIPrincipal* subjectPrincipal;
5890
0
  {
5891
0
    JS::Realm* realm = js::GetContextRealm(cx);
5892
0
    MOZ_ASSERT(realm);
5893
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5894
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5895
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5896
0
      principal = nullptr;
5897
0
    }
5898
0
5899
0
    subjectPrincipal = principal;
5900
0
  }
5901
0
  self->SetMozUserInput(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5902
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5903
0
    return false;
5904
0
  }
5905
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5906
0
5907
0
  return true;
5908
0
}
5909
5910
static const JSJitInfo MozUserInput_getterinfo = {
5911
  { (JSJitGetterOp)get_MozUserInput },
5912
  { prototypes::id::CSS2Properties },
5913
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5914
  JSJitInfo::Getter,
5915
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5916
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
5917
  false,  /* isInfallible. False in setters. */
5918
  false,  /* isMovable.  Not relevant for setters. */
5919
  false, /* isEliminatable.  Not relevant for setters. */
5920
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5921
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5922
  false,  /* isTypedMethod.  Only relevant for methods. */
5923
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5924
};
5925
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5926
static_assert(0 < 1, "There is no slot for us");
5927
static const JSJitInfo MozUserInput_setterinfo = {
5928
  { (JSJitGetterOp)set_MozUserInput },
5929
  { prototypes::id::CSS2Properties },
5930
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
5931
  JSJitInfo::Setter,
5932
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
5933
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
5934
  false,  /* isInfallible. False in setters. */
5935
  false,  /* isMovable.  Not relevant for setters. */
5936
  false, /* isEliminatable.  Not relevant for setters. */
5937
  false, /* isAlwaysInSlot.  Only relevant for getters. */
5938
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
5939
  false,  /* isTypedMethod.  Only relevant for methods. */
5940
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
5941
};
5942
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
5943
static_assert(0 < 1, "There is no slot for us");
5944
5945
MOZ_CAN_RUN_SCRIPT static bool
5946
get_MozUserModify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
5947
0
{
5948
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozUserModify", DOM, cx);
5949
0
5950
0
  FastErrorResult rv;
5951
0
  DOMString result;
5952
0
  self->GetMozUserModify(result, rv);
5953
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5954
0
    return false;
5955
0
  }
5956
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5957
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
5958
0
    return false;
5959
0
  }
5960
0
  return true;
5961
0
}
5962
5963
MOZ_CAN_RUN_SCRIPT static bool
5964
set_MozUserModify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
5965
0
{
5966
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozUserModify", DOM, cx);
5967
0
5968
0
  binding_detail::FakeString arg0;
5969
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
5970
0
    return false;
5971
0
  }
5972
0
  Maybe<AutoCEReaction> ceReaction;
5973
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
5974
0
    DocGroup* docGroup = self->GetDocGroup();
5975
0
    if (docGroup) {
5976
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
5977
0
    }
5978
0
  }
5979
0
  FastErrorResult rv;
5980
0
  nsIPrincipal* subjectPrincipal;
5981
0
  {
5982
0
    JS::Realm* realm = js::GetContextRealm(cx);
5983
0
    MOZ_ASSERT(realm);
5984
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
5985
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
5986
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
5987
0
      principal = nullptr;
5988
0
    }
5989
0
5990
0
    subjectPrincipal = principal;
5991
0
  }
5992
0
  self->SetMozUserModify(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
5993
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
5994
0
    return false;
5995
0
  }
5996
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
5997
0
5998
0
  return true;
5999
0
}
6000
6001
static const JSJitInfo MozUserModify_getterinfo = {
6002
  { (JSJitGetterOp)get_MozUserModify },
6003
  { prototypes::id::CSS2Properties },
6004
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6005
  JSJitInfo::Getter,
6006
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6007
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6008
  false,  /* isInfallible. False in setters. */
6009
  false,  /* isMovable.  Not relevant for setters. */
6010
  false, /* isEliminatable.  Not relevant for setters. */
6011
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6012
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6013
  false,  /* isTypedMethod.  Only relevant for methods. */
6014
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6015
};
6016
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6017
static_assert(0 < 1, "There is no slot for us");
6018
static const JSJitInfo MozUserModify_setterinfo = {
6019
  { (JSJitGetterOp)set_MozUserModify },
6020
  { prototypes::id::CSS2Properties },
6021
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6022
  JSJitInfo::Setter,
6023
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6024
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6025
  false,  /* isInfallible. False in setters. */
6026
  false,  /* isMovable.  Not relevant for setters. */
6027
  false, /* isEliminatable.  Not relevant for setters. */
6028
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6029
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6030
  false,  /* isTypedMethod.  Only relevant for methods. */
6031
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6032
};
6033
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6034
static_assert(0 < 1, "There is no slot for us");
6035
6036
MOZ_CAN_RUN_SCRIPT static bool
6037
get_MozUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6038
0
{
6039
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozUserSelect", DOM, cx);
6040
0
6041
0
  FastErrorResult rv;
6042
0
  DOMString result;
6043
0
  self->GetMozUserSelect(result, rv);
6044
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6045
0
    return false;
6046
0
  }
6047
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6048
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6049
0
    return false;
6050
0
  }
6051
0
  return true;
6052
0
}
6053
6054
MOZ_CAN_RUN_SCRIPT static bool
6055
set_MozUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6056
0
{
6057
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozUserSelect", DOM, cx);
6058
0
6059
0
  binding_detail::FakeString arg0;
6060
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6061
0
    return false;
6062
0
  }
6063
0
  Maybe<AutoCEReaction> ceReaction;
6064
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6065
0
    DocGroup* docGroup = self->GetDocGroup();
6066
0
    if (docGroup) {
6067
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6068
0
    }
6069
0
  }
6070
0
  FastErrorResult rv;
6071
0
  nsIPrincipal* subjectPrincipal;
6072
0
  {
6073
0
    JS::Realm* realm = js::GetContextRealm(cx);
6074
0
    MOZ_ASSERT(realm);
6075
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6076
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6077
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6078
0
      principal = nullptr;
6079
0
    }
6080
0
6081
0
    subjectPrincipal = principal;
6082
0
  }
6083
0
  self->SetMozUserSelect(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6084
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6085
0
    return false;
6086
0
  }
6087
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6088
0
6089
0
  return true;
6090
0
}
6091
6092
static const JSJitInfo MozUserSelect_getterinfo = {
6093
  { (JSJitGetterOp)get_MozUserSelect },
6094
  { prototypes::id::CSS2Properties },
6095
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6096
  JSJitInfo::Getter,
6097
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6098
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6099
  false,  /* isInfallible. False in setters. */
6100
  false,  /* isMovable.  Not relevant for setters. */
6101
  false, /* isEliminatable.  Not relevant for setters. */
6102
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6103
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6104
  false,  /* isTypedMethod.  Only relevant for methods. */
6105
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6106
};
6107
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6108
static_assert(0 < 1, "There is no slot for us");
6109
static const JSJitInfo MozUserSelect_setterinfo = {
6110
  { (JSJitGetterOp)set_MozUserSelect },
6111
  { prototypes::id::CSS2Properties },
6112
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6113
  JSJitInfo::Setter,
6114
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6115
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6116
  false,  /* isInfallible. False in setters. */
6117
  false,  /* isMovable.  Not relevant for setters. */
6118
  false, /* isEliminatable.  Not relevant for setters. */
6119
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6120
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6121
  false,  /* isTypedMethod.  Only relevant for methods. */
6122
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6123
};
6124
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6125
static_assert(0 < 1, "There is no slot for us");
6126
6127
MOZ_CAN_RUN_SCRIPT static bool
6128
get_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6129
0
{
6130
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozWindowDragging", DOM, cx);
6131
0
6132
0
  FastErrorResult rv;
6133
0
  DOMString result;
6134
0
  self->GetMozWindowDragging(result, rv);
6135
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6136
0
    return false;
6137
0
  }
6138
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6139
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6140
0
    return false;
6141
0
  }
6142
0
  return true;
6143
0
}
6144
6145
MOZ_CAN_RUN_SCRIPT static bool
6146
set_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6147
0
{
6148
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozWindowDragging", DOM, cx);
6149
0
6150
0
  binding_detail::FakeString arg0;
6151
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6152
0
    return false;
6153
0
  }
6154
0
  Maybe<AutoCEReaction> ceReaction;
6155
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6156
0
    DocGroup* docGroup = self->GetDocGroup();
6157
0
    if (docGroup) {
6158
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6159
0
    }
6160
0
  }
6161
0
  FastErrorResult rv;
6162
0
  nsIPrincipal* subjectPrincipal;
6163
0
  {
6164
0
    JS::Realm* realm = js::GetContextRealm(cx);
6165
0
    MOZ_ASSERT(realm);
6166
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6167
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6168
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6169
0
      principal = nullptr;
6170
0
    }
6171
0
6172
0
    subjectPrincipal = principal;
6173
0
  }
6174
0
  self->SetMozWindowDragging(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6175
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6176
0
    return false;
6177
0
  }
6178
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6179
0
6180
0
  return true;
6181
0
}
6182
6183
static const JSJitInfo MozWindowDragging_getterinfo = {
6184
  { (JSJitGetterOp)get_MozWindowDragging },
6185
  { prototypes::id::CSS2Properties },
6186
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6187
  JSJitInfo::Getter,
6188
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6189
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6190
  false,  /* isInfallible. False in setters. */
6191
  false,  /* isMovable.  Not relevant for setters. */
6192
  false, /* isEliminatable.  Not relevant for setters. */
6193
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6194
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6195
  false,  /* isTypedMethod.  Only relevant for methods. */
6196
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6197
};
6198
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6199
static_assert(0 < 1, "There is no slot for us");
6200
static const JSJitInfo MozWindowDragging_setterinfo = {
6201
  { (JSJitGetterOp)set_MozWindowDragging },
6202
  { prototypes::id::CSS2Properties },
6203
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6204
  JSJitInfo::Setter,
6205
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6206
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6207
  false,  /* isInfallible. False in setters. */
6208
  false,  /* isMovable.  Not relevant for setters. */
6209
  false, /* isEliminatable.  Not relevant for setters. */
6210
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6211
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6212
  false,  /* isTypedMethod.  Only relevant for methods. */
6213
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6214
};
6215
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6216
static_assert(0 < 1, "There is no slot for us");
6217
6218
MOZ_CAN_RUN_SCRIPT static bool
6219
get_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6220
0
{
6221
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.objectFit", DOM, cx);
6222
0
6223
0
  FastErrorResult rv;
6224
0
  DOMString result;
6225
0
  self->GetObjectFit(result, rv);
6226
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6227
0
    return false;
6228
0
  }
6229
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6230
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6231
0
    return false;
6232
0
  }
6233
0
  return true;
6234
0
}
6235
6236
MOZ_CAN_RUN_SCRIPT static bool
6237
set_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6238
0
{
6239
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.objectFit", DOM, cx);
6240
0
6241
0
  binding_detail::FakeString arg0;
6242
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6243
0
    return false;
6244
0
  }
6245
0
  Maybe<AutoCEReaction> ceReaction;
6246
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6247
0
    DocGroup* docGroup = self->GetDocGroup();
6248
0
    if (docGroup) {
6249
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6250
0
    }
6251
0
  }
6252
0
  FastErrorResult rv;
6253
0
  nsIPrincipal* subjectPrincipal;
6254
0
  {
6255
0
    JS::Realm* realm = js::GetContextRealm(cx);
6256
0
    MOZ_ASSERT(realm);
6257
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6258
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6259
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6260
0
      principal = nullptr;
6261
0
    }
6262
0
6263
0
    subjectPrincipal = principal;
6264
0
  }
6265
0
  self->SetObjectFit(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6266
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6267
0
    return false;
6268
0
  }
6269
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6270
0
6271
0
  return true;
6272
0
}
6273
6274
static const JSJitInfo objectFit_getterinfo = {
6275
  { (JSJitGetterOp)get_objectFit },
6276
  { prototypes::id::CSS2Properties },
6277
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6278
  JSJitInfo::Getter,
6279
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6280
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6281
  false,  /* isInfallible. False in setters. */
6282
  false,  /* isMovable.  Not relevant for setters. */
6283
  false, /* isEliminatable.  Not relevant for setters. */
6284
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6285
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6286
  false,  /* isTypedMethod.  Only relevant for methods. */
6287
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6288
};
6289
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6290
static_assert(0 < 1, "There is no slot for us");
6291
static const JSJitInfo objectFit_setterinfo = {
6292
  { (JSJitGetterOp)set_objectFit },
6293
  { prototypes::id::CSS2Properties },
6294
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6295
  JSJitInfo::Setter,
6296
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6297
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6298
  false,  /* isInfallible. False in setters. */
6299
  false,  /* isMovable.  Not relevant for setters. */
6300
  false, /* isEliminatable.  Not relevant for setters. */
6301
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6302
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6303
  false,  /* isTypedMethod.  Only relevant for methods. */
6304
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6305
};
6306
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6307
static_assert(0 < 1, "There is no slot for us");
6308
6309
MOZ_CAN_RUN_SCRIPT static bool
6310
get_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6311
0
{
6312
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.outlineStyle", DOM, cx);
6313
0
6314
0
  FastErrorResult rv;
6315
0
  DOMString result;
6316
0
  self->GetOutlineStyle(result, rv);
6317
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6318
0
    return false;
6319
0
  }
6320
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6321
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6322
0
    return false;
6323
0
  }
6324
0
  return true;
6325
0
}
6326
6327
MOZ_CAN_RUN_SCRIPT static bool
6328
set_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6329
0
{
6330
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.outlineStyle", DOM, cx);
6331
0
6332
0
  binding_detail::FakeString arg0;
6333
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6334
0
    return false;
6335
0
  }
6336
0
  Maybe<AutoCEReaction> ceReaction;
6337
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6338
0
    DocGroup* docGroup = self->GetDocGroup();
6339
0
    if (docGroup) {
6340
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6341
0
    }
6342
0
  }
6343
0
  FastErrorResult rv;
6344
0
  nsIPrincipal* subjectPrincipal;
6345
0
  {
6346
0
    JS::Realm* realm = js::GetContextRealm(cx);
6347
0
    MOZ_ASSERT(realm);
6348
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6349
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6350
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6351
0
      principal = nullptr;
6352
0
    }
6353
0
6354
0
    subjectPrincipal = principal;
6355
0
  }
6356
0
  self->SetOutlineStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6357
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6358
0
    return false;
6359
0
  }
6360
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6361
0
6362
0
  return true;
6363
0
}
6364
6365
static const JSJitInfo outlineStyle_getterinfo = {
6366
  { (JSJitGetterOp)get_outlineStyle },
6367
  { prototypes::id::CSS2Properties },
6368
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6369
  JSJitInfo::Getter,
6370
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6371
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6372
  false,  /* isInfallible. False in setters. */
6373
  false,  /* isMovable.  Not relevant for setters. */
6374
  false, /* isEliminatable.  Not relevant for setters. */
6375
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6376
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6377
  false,  /* isTypedMethod.  Only relevant for methods. */
6378
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6379
};
6380
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6381
static_assert(0 < 1, "There is no slot for us");
6382
static const JSJitInfo outlineStyle_setterinfo = {
6383
  { (JSJitGetterOp)set_outlineStyle },
6384
  { prototypes::id::CSS2Properties },
6385
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6386
  JSJitInfo::Setter,
6387
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6388
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6389
  false,  /* isInfallible. False in setters. */
6390
  false,  /* isMovable.  Not relevant for setters. */
6391
  false, /* isEliminatable.  Not relevant for setters. */
6392
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6393
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6394
  false,  /* isTypedMethod.  Only relevant for methods. */
6395
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6396
};
6397
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6398
static_assert(0 < 1, "There is no slot for us");
6399
6400
MOZ_CAN_RUN_SCRIPT static bool
6401
get_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6402
0
{
6403
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowWrap", DOM, cx);
6404
0
6405
0
  FastErrorResult rv;
6406
0
  DOMString result;
6407
0
  self->GetOverflowWrap(result, rv);
6408
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6409
0
    return false;
6410
0
  }
6411
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6412
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6413
0
    return false;
6414
0
  }
6415
0
  return true;
6416
0
}
6417
6418
MOZ_CAN_RUN_SCRIPT static bool
6419
set_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6420
0
{
6421
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowWrap", DOM, cx);
6422
0
6423
0
  binding_detail::FakeString arg0;
6424
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6425
0
    return false;
6426
0
  }
6427
0
  Maybe<AutoCEReaction> ceReaction;
6428
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6429
0
    DocGroup* docGroup = self->GetDocGroup();
6430
0
    if (docGroup) {
6431
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6432
0
    }
6433
0
  }
6434
0
  FastErrorResult rv;
6435
0
  nsIPrincipal* subjectPrincipal;
6436
0
  {
6437
0
    JS::Realm* realm = js::GetContextRealm(cx);
6438
0
    MOZ_ASSERT(realm);
6439
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6440
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6441
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6442
0
      principal = nullptr;
6443
0
    }
6444
0
6445
0
    subjectPrincipal = principal;
6446
0
  }
6447
0
  self->SetOverflowWrap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6448
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6449
0
    return false;
6450
0
  }
6451
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6452
0
6453
0
  return true;
6454
0
}
6455
6456
static const JSJitInfo overflowWrap_getterinfo = {
6457
  { (JSJitGetterOp)get_overflowWrap },
6458
  { prototypes::id::CSS2Properties },
6459
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6460
  JSJitInfo::Getter,
6461
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6462
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6463
  false,  /* isInfallible. False in setters. */
6464
  false,  /* isMovable.  Not relevant for setters. */
6465
  false, /* isEliminatable.  Not relevant for setters. */
6466
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6467
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6468
  false,  /* isTypedMethod.  Only relevant for methods. */
6469
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6470
};
6471
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6472
static_assert(0 < 1, "There is no slot for us");
6473
static const JSJitInfo overflowWrap_setterinfo = {
6474
  { (JSJitGetterOp)set_overflowWrap },
6475
  { prototypes::id::CSS2Properties },
6476
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6477
  JSJitInfo::Setter,
6478
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6479
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6480
  false,  /* isInfallible. False in setters. */
6481
  false,  /* isMovable.  Not relevant for setters. */
6482
  false, /* isEliminatable.  Not relevant for setters. */
6483
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6484
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6485
  false,  /* isTypedMethod.  Only relevant for methods. */
6486
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6487
};
6488
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6489
static_assert(0 < 1, "There is no slot for us");
6490
6491
MOZ_CAN_RUN_SCRIPT static bool
6492
get_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6493
0
{
6494
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowX", DOM, cx);
6495
0
6496
0
  FastErrorResult rv;
6497
0
  DOMString result;
6498
0
  self->GetOverflowX(result, rv);
6499
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6500
0
    return false;
6501
0
  }
6502
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6503
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6504
0
    return false;
6505
0
  }
6506
0
  return true;
6507
0
}
6508
6509
MOZ_CAN_RUN_SCRIPT static bool
6510
set_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6511
0
{
6512
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowX", DOM, cx);
6513
0
6514
0
  binding_detail::FakeString arg0;
6515
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6516
0
    return false;
6517
0
  }
6518
0
  Maybe<AutoCEReaction> ceReaction;
6519
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6520
0
    DocGroup* docGroup = self->GetDocGroup();
6521
0
    if (docGroup) {
6522
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6523
0
    }
6524
0
  }
6525
0
  FastErrorResult rv;
6526
0
  nsIPrincipal* subjectPrincipal;
6527
0
  {
6528
0
    JS::Realm* realm = js::GetContextRealm(cx);
6529
0
    MOZ_ASSERT(realm);
6530
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6531
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6532
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6533
0
      principal = nullptr;
6534
0
    }
6535
0
6536
0
    subjectPrincipal = principal;
6537
0
  }
6538
0
  self->SetOverflowX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6539
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6540
0
    return false;
6541
0
  }
6542
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6543
0
6544
0
  return true;
6545
0
}
6546
6547
static const JSJitInfo overflowX_getterinfo = {
6548
  { (JSJitGetterOp)get_overflowX },
6549
  { prototypes::id::CSS2Properties },
6550
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6551
  JSJitInfo::Getter,
6552
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6553
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6554
  false,  /* isInfallible. False in setters. */
6555
  false,  /* isMovable.  Not relevant for setters. */
6556
  false, /* isEliminatable.  Not relevant for setters. */
6557
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6558
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6559
  false,  /* isTypedMethod.  Only relevant for methods. */
6560
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6561
};
6562
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6563
static_assert(0 < 1, "There is no slot for us");
6564
static const JSJitInfo overflowX_setterinfo = {
6565
  { (JSJitGetterOp)set_overflowX },
6566
  { prototypes::id::CSS2Properties },
6567
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6568
  JSJitInfo::Setter,
6569
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6570
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6571
  false,  /* isInfallible. False in setters. */
6572
  false,  /* isMovable.  Not relevant for setters. */
6573
  false, /* isEliminatable.  Not relevant for setters. */
6574
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6575
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6576
  false,  /* isTypedMethod.  Only relevant for methods. */
6577
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6578
};
6579
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6580
static_assert(0 < 1, "There is no slot for us");
6581
6582
MOZ_CAN_RUN_SCRIPT static bool
6583
get_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6584
0
{
6585
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowY", DOM, cx);
6586
0
6587
0
  FastErrorResult rv;
6588
0
  DOMString result;
6589
0
  self->GetOverflowY(result, rv);
6590
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6591
0
    return false;
6592
0
  }
6593
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6594
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6595
0
    return false;
6596
0
  }
6597
0
  return true;
6598
0
}
6599
6600
MOZ_CAN_RUN_SCRIPT static bool
6601
set_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6602
0
{
6603
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowY", DOM, cx);
6604
0
6605
0
  binding_detail::FakeString arg0;
6606
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6607
0
    return false;
6608
0
  }
6609
0
  Maybe<AutoCEReaction> ceReaction;
6610
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6611
0
    DocGroup* docGroup = self->GetDocGroup();
6612
0
    if (docGroup) {
6613
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6614
0
    }
6615
0
  }
6616
0
  FastErrorResult rv;
6617
0
  nsIPrincipal* subjectPrincipal;
6618
0
  {
6619
0
    JS::Realm* realm = js::GetContextRealm(cx);
6620
0
    MOZ_ASSERT(realm);
6621
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6622
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6623
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6624
0
      principal = nullptr;
6625
0
    }
6626
0
6627
0
    subjectPrincipal = principal;
6628
0
  }
6629
0
  self->SetOverflowY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6630
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6631
0
    return false;
6632
0
  }
6633
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6634
0
6635
0
  return true;
6636
0
}
6637
6638
static const JSJitInfo overflowY_getterinfo = {
6639
  { (JSJitGetterOp)get_overflowY },
6640
  { prototypes::id::CSS2Properties },
6641
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6642
  JSJitInfo::Getter,
6643
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6644
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6645
  false,  /* isInfallible. False in setters. */
6646
  false,  /* isMovable.  Not relevant for setters. */
6647
  false, /* isEliminatable.  Not relevant for setters. */
6648
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6649
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6650
  false,  /* isTypedMethod.  Only relevant for methods. */
6651
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6652
};
6653
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6654
static_assert(0 < 1, "There is no slot for us");
6655
static const JSJitInfo overflowY_setterinfo = {
6656
  { (JSJitGetterOp)set_overflowY },
6657
  { prototypes::id::CSS2Properties },
6658
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6659
  JSJitInfo::Setter,
6660
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6661
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6662
  false,  /* isInfallible. False in setters. */
6663
  false,  /* isMovable.  Not relevant for setters. */
6664
  false, /* isEliminatable.  Not relevant for setters. */
6665
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6666
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6667
  false,  /* isTypedMethod.  Only relevant for methods. */
6668
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6669
};
6670
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6671
static_assert(0 < 1, "There is no slot for us");
6672
6673
MOZ_CAN_RUN_SCRIPT static bool
6674
get_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6675
0
{
6676
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.pageBreakAfter", DOM, cx);
6677
0
6678
0
  FastErrorResult rv;
6679
0
  DOMString result;
6680
0
  self->GetPageBreakAfter(result, rv);
6681
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6682
0
    return false;
6683
0
  }
6684
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6685
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6686
0
    return false;
6687
0
  }
6688
0
  return true;
6689
0
}
6690
6691
MOZ_CAN_RUN_SCRIPT static bool
6692
set_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6693
0
{
6694
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.pageBreakAfter", DOM, cx);
6695
0
6696
0
  binding_detail::FakeString arg0;
6697
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6698
0
    return false;
6699
0
  }
6700
0
  Maybe<AutoCEReaction> ceReaction;
6701
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6702
0
    DocGroup* docGroup = self->GetDocGroup();
6703
0
    if (docGroup) {
6704
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6705
0
    }
6706
0
  }
6707
0
  FastErrorResult rv;
6708
0
  nsIPrincipal* subjectPrincipal;
6709
0
  {
6710
0
    JS::Realm* realm = js::GetContextRealm(cx);
6711
0
    MOZ_ASSERT(realm);
6712
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6713
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6714
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6715
0
      principal = nullptr;
6716
0
    }
6717
0
6718
0
    subjectPrincipal = principal;
6719
0
  }
6720
0
  self->SetPageBreakAfter(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6721
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6722
0
    return false;
6723
0
  }
6724
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6725
0
6726
0
  return true;
6727
0
}
6728
6729
static const JSJitInfo pageBreakAfter_getterinfo = {
6730
  { (JSJitGetterOp)get_pageBreakAfter },
6731
  { prototypes::id::CSS2Properties },
6732
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6733
  JSJitInfo::Getter,
6734
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6735
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6736
  false,  /* isInfallible. False in setters. */
6737
  false,  /* isMovable.  Not relevant for setters. */
6738
  false, /* isEliminatable.  Not relevant for setters. */
6739
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6740
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6741
  false,  /* isTypedMethod.  Only relevant for methods. */
6742
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6743
};
6744
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6745
static_assert(0 < 1, "There is no slot for us");
6746
static const JSJitInfo pageBreakAfter_setterinfo = {
6747
  { (JSJitGetterOp)set_pageBreakAfter },
6748
  { prototypes::id::CSS2Properties },
6749
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6750
  JSJitInfo::Setter,
6751
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6752
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6753
  false,  /* isInfallible. False in setters. */
6754
  false,  /* isMovable.  Not relevant for setters. */
6755
  false, /* isEliminatable.  Not relevant for setters. */
6756
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6757
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6758
  false,  /* isTypedMethod.  Only relevant for methods. */
6759
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6760
};
6761
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6762
static_assert(0 < 1, "There is no slot for us");
6763
6764
MOZ_CAN_RUN_SCRIPT static bool
6765
get_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6766
0
{
6767
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.pageBreakBefore", DOM, cx);
6768
0
6769
0
  FastErrorResult rv;
6770
0
  DOMString result;
6771
0
  self->GetPageBreakBefore(result, rv);
6772
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6773
0
    return false;
6774
0
  }
6775
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6776
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6777
0
    return false;
6778
0
  }
6779
0
  return true;
6780
0
}
6781
6782
MOZ_CAN_RUN_SCRIPT static bool
6783
set_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6784
0
{
6785
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.pageBreakBefore", DOM, cx);
6786
0
6787
0
  binding_detail::FakeString arg0;
6788
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6789
0
    return false;
6790
0
  }
6791
0
  Maybe<AutoCEReaction> ceReaction;
6792
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6793
0
    DocGroup* docGroup = self->GetDocGroup();
6794
0
    if (docGroup) {
6795
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6796
0
    }
6797
0
  }
6798
0
  FastErrorResult rv;
6799
0
  nsIPrincipal* subjectPrincipal;
6800
0
  {
6801
0
    JS::Realm* realm = js::GetContextRealm(cx);
6802
0
    MOZ_ASSERT(realm);
6803
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6804
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6805
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6806
0
      principal = nullptr;
6807
0
    }
6808
0
6809
0
    subjectPrincipal = principal;
6810
0
  }
6811
0
  self->SetPageBreakBefore(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6812
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6813
0
    return false;
6814
0
  }
6815
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6816
0
6817
0
  return true;
6818
0
}
6819
6820
static const JSJitInfo pageBreakBefore_getterinfo = {
6821
  { (JSJitGetterOp)get_pageBreakBefore },
6822
  { prototypes::id::CSS2Properties },
6823
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6824
  JSJitInfo::Getter,
6825
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6826
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6827
  false,  /* isInfallible. False in setters. */
6828
  false,  /* isMovable.  Not relevant for setters. */
6829
  false, /* isEliminatable.  Not relevant for setters. */
6830
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6831
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6832
  false,  /* isTypedMethod.  Only relevant for methods. */
6833
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6834
};
6835
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6836
static_assert(0 < 1, "There is no slot for us");
6837
static const JSJitInfo pageBreakBefore_setterinfo = {
6838
  { (JSJitGetterOp)set_pageBreakBefore },
6839
  { prototypes::id::CSS2Properties },
6840
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6841
  JSJitInfo::Setter,
6842
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6843
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6844
  false,  /* isInfallible. False in setters. */
6845
  false,  /* isMovable.  Not relevant for setters. */
6846
  false, /* isEliminatable.  Not relevant for setters. */
6847
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6848
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6849
  false,  /* isTypedMethod.  Only relevant for methods. */
6850
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6851
};
6852
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6853
static_assert(0 < 1, "There is no slot for us");
6854
6855
MOZ_CAN_RUN_SCRIPT static bool
6856
get_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6857
0
{
6858
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.pageBreakInside", DOM, cx);
6859
0
6860
0
  FastErrorResult rv;
6861
0
  DOMString result;
6862
0
  self->GetPageBreakInside(result, rv);
6863
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6864
0
    return false;
6865
0
  }
6866
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6867
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6868
0
    return false;
6869
0
  }
6870
0
  return true;
6871
0
}
6872
6873
MOZ_CAN_RUN_SCRIPT static bool
6874
set_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6875
0
{
6876
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.pageBreakInside", DOM, cx);
6877
0
6878
0
  binding_detail::FakeString arg0;
6879
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6880
0
    return false;
6881
0
  }
6882
0
  Maybe<AutoCEReaction> ceReaction;
6883
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6884
0
    DocGroup* docGroup = self->GetDocGroup();
6885
0
    if (docGroup) {
6886
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6887
0
    }
6888
0
  }
6889
0
  FastErrorResult rv;
6890
0
  nsIPrincipal* subjectPrincipal;
6891
0
  {
6892
0
    JS::Realm* realm = js::GetContextRealm(cx);
6893
0
    MOZ_ASSERT(realm);
6894
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6895
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6896
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6897
0
      principal = nullptr;
6898
0
    }
6899
0
6900
0
    subjectPrincipal = principal;
6901
0
  }
6902
0
  self->SetPageBreakInside(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6903
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6904
0
    return false;
6905
0
  }
6906
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6907
0
6908
0
  return true;
6909
0
}
6910
6911
static const JSJitInfo pageBreakInside_getterinfo = {
6912
  { (JSJitGetterOp)get_pageBreakInside },
6913
  { prototypes::id::CSS2Properties },
6914
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6915
  JSJitInfo::Getter,
6916
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6917
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
6918
  false,  /* isInfallible. False in setters. */
6919
  false,  /* isMovable.  Not relevant for setters. */
6920
  false, /* isEliminatable.  Not relevant for setters. */
6921
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6922
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6923
  false,  /* isTypedMethod.  Only relevant for methods. */
6924
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6925
};
6926
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6927
static_assert(0 < 1, "There is no slot for us");
6928
static const JSJitInfo pageBreakInside_setterinfo = {
6929
  { (JSJitGetterOp)set_pageBreakInside },
6930
  { prototypes::id::CSS2Properties },
6931
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
6932
  JSJitInfo::Setter,
6933
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
6934
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
6935
  false,  /* isInfallible. False in setters. */
6936
  false,  /* isMovable.  Not relevant for setters. */
6937
  false, /* isEliminatable.  Not relevant for setters. */
6938
  false, /* isAlwaysInSlot.  Only relevant for getters. */
6939
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
6940
  false,  /* isTypedMethod.  Only relevant for methods. */
6941
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
6942
};
6943
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
6944
static_assert(0 < 1, "There is no slot for us");
6945
6946
MOZ_CAN_RUN_SCRIPT static bool
6947
get_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
6948
0
{
6949
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paintOrder", DOM, cx);
6950
0
6951
0
  FastErrorResult rv;
6952
0
  DOMString result;
6953
0
  self->GetPaintOrder(result, rv);
6954
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6955
0
    return false;
6956
0
  }
6957
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6958
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
6959
0
    return false;
6960
0
  }
6961
0
  return true;
6962
0
}
6963
6964
MOZ_CAN_RUN_SCRIPT static bool
6965
set_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
6966
0
{
6967
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paintOrder", DOM, cx);
6968
0
6969
0
  binding_detail::FakeString arg0;
6970
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
6971
0
    return false;
6972
0
  }
6973
0
  Maybe<AutoCEReaction> ceReaction;
6974
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
6975
0
    DocGroup* docGroup = self->GetDocGroup();
6976
0
    if (docGroup) {
6977
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
6978
0
    }
6979
0
  }
6980
0
  FastErrorResult rv;
6981
0
  nsIPrincipal* subjectPrincipal;
6982
0
  {
6983
0
    JS::Realm* realm = js::GetContextRealm(cx);
6984
0
    MOZ_ASSERT(realm);
6985
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
6986
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
6987
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
6988
0
      principal = nullptr;
6989
0
    }
6990
0
6991
0
    subjectPrincipal = principal;
6992
0
  }
6993
0
  self->SetPaintOrder(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
6994
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
6995
0
    return false;
6996
0
  }
6997
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
6998
0
6999
0
  return true;
7000
0
}
7001
7002
static const JSJitInfo paintOrder_getterinfo = {
7003
  { (JSJitGetterOp)get_paintOrder },
7004
  { prototypes::id::CSS2Properties },
7005
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7006
  JSJitInfo::Getter,
7007
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7008
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7009
  false,  /* isInfallible. False in setters. */
7010
  false,  /* isMovable.  Not relevant for setters. */
7011
  false, /* isEliminatable.  Not relevant for setters. */
7012
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7013
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7014
  false,  /* isTypedMethod.  Only relevant for methods. */
7015
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7016
};
7017
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7018
static_assert(0 < 1, "There is no slot for us");
7019
static const JSJitInfo paintOrder_setterinfo = {
7020
  { (JSJitGetterOp)set_paintOrder },
7021
  { prototypes::id::CSS2Properties },
7022
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7023
  JSJitInfo::Setter,
7024
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7025
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7026
  false,  /* isInfallible. False in setters. */
7027
  false,  /* isMovable.  Not relevant for setters. */
7028
  false, /* isEliminatable.  Not relevant for setters. */
7029
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7030
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7031
  false,  /* isTypedMethod.  Only relevant for methods. */
7032
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7033
};
7034
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7035
static_assert(0 < 1, "There is no slot for us");
7036
7037
MOZ_CAN_RUN_SCRIPT static bool
7038
get_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7039
0
{
7040
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.pointerEvents", DOM, cx);
7041
0
7042
0
  FastErrorResult rv;
7043
0
  DOMString result;
7044
0
  self->GetPointerEvents(result, rv);
7045
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7046
0
    return false;
7047
0
  }
7048
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7049
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7050
0
    return false;
7051
0
  }
7052
0
  return true;
7053
0
}
7054
7055
MOZ_CAN_RUN_SCRIPT static bool
7056
set_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7057
0
{
7058
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.pointerEvents", DOM, cx);
7059
0
7060
0
  binding_detail::FakeString arg0;
7061
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7062
0
    return false;
7063
0
  }
7064
0
  Maybe<AutoCEReaction> ceReaction;
7065
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7066
0
    DocGroup* docGroup = self->GetDocGroup();
7067
0
    if (docGroup) {
7068
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7069
0
    }
7070
0
  }
7071
0
  FastErrorResult rv;
7072
0
  nsIPrincipal* subjectPrincipal;
7073
0
  {
7074
0
    JS::Realm* realm = js::GetContextRealm(cx);
7075
0
    MOZ_ASSERT(realm);
7076
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7077
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7078
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7079
0
      principal = nullptr;
7080
0
    }
7081
0
7082
0
    subjectPrincipal = principal;
7083
0
  }
7084
0
  self->SetPointerEvents(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7085
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7086
0
    return false;
7087
0
  }
7088
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7089
0
7090
0
  return true;
7091
0
}
7092
7093
static const JSJitInfo pointerEvents_getterinfo = {
7094
  { (JSJitGetterOp)get_pointerEvents },
7095
  { prototypes::id::CSS2Properties },
7096
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7097
  JSJitInfo::Getter,
7098
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7099
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7100
  false,  /* isInfallible. False in setters. */
7101
  false,  /* isMovable.  Not relevant for setters. */
7102
  false, /* isEliminatable.  Not relevant for setters. */
7103
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7104
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7105
  false,  /* isTypedMethod.  Only relevant for methods. */
7106
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7107
};
7108
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7109
static_assert(0 < 1, "There is no slot for us");
7110
static const JSJitInfo pointerEvents_setterinfo = {
7111
  { (JSJitGetterOp)set_pointerEvents },
7112
  { prototypes::id::CSS2Properties },
7113
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7114
  JSJitInfo::Setter,
7115
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7116
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7117
  false,  /* isInfallible. False in setters. */
7118
  false,  /* isMovable.  Not relevant for setters. */
7119
  false, /* isEliminatable.  Not relevant for setters. */
7120
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7121
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7122
  false,  /* isTypedMethod.  Only relevant for methods. */
7123
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7124
};
7125
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7126
static_assert(0 < 1, "There is no slot for us");
7127
7128
MOZ_CAN_RUN_SCRIPT static bool
7129
get_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7130
0
{
7131
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.position", DOM, cx);
7132
0
7133
0
  FastErrorResult rv;
7134
0
  DOMString result;
7135
0
  self->GetPosition(result, rv);
7136
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7137
0
    return false;
7138
0
  }
7139
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7140
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7141
0
    return false;
7142
0
  }
7143
0
  return true;
7144
0
}
7145
7146
MOZ_CAN_RUN_SCRIPT static bool
7147
set_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7148
0
{
7149
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.position", DOM, cx);
7150
0
7151
0
  binding_detail::FakeString arg0;
7152
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7153
0
    return false;
7154
0
  }
7155
0
  Maybe<AutoCEReaction> ceReaction;
7156
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7157
0
    DocGroup* docGroup = self->GetDocGroup();
7158
0
    if (docGroup) {
7159
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7160
0
    }
7161
0
  }
7162
0
  FastErrorResult rv;
7163
0
  nsIPrincipal* subjectPrincipal;
7164
0
  {
7165
0
    JS::Realm* realm = js::GetContextRealm(cx);
7166
0
    MOZ_ASSERT(realm);
7167
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7168
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7169
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7170
0
      principal = nullptr;
7171
0
    }
7172
0
7173
0
    subjectPrincipal = principal;
7174
0
  }
7175
0
  self->SetPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7176
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7177
0
    return false;
7178
0
  }
7179
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7180
0
7181
0
  return true;
7182
0
}
7183
7184
static const JSJitInfo position_getterinfo = {
7185
  { (JSJitGetterOp)get_position },
7186
  { prototypes::id::CSS2Properties },
7187
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7188
  JSJitInfo::Getter,
7189
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7190
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7191
  false,  /* isInfallible. False in setters. */
7192
  false,  /* isMovable.  Not relevant for setters. */
7193
  false, /* isEliminatable.  Not relevant for setters. */
7194
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7195
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7196
  false,  /* isTypedMethod.  Only relevant for methods. */
7197
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7198
};
7199
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7200
static_assert(0 < 1, "There is no slot for us");
7201
static const JSJitInfo position_setterinfo = {
7202
  { (JSJitGetterOp)set_position },
7203
  { prototypes::id::CSS2Properties },
7204
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7205
  JSJitInfo::Setter,
7206
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7207
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7208
  false,  /* isInfallible. False in setters. */
7209
  false,  /* isMovable.  Not relevant for setters. */
7210
  false, /* isEliminatable.  Not relevant for setters. */
7211
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7212
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7213
  false,  /* isTypedMethod.  Only relevant for methods. */
7214
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7215
};
7216
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7217
static_assert(0 < 1, "There is no slot for us");
7218
7219
MOZ_CAN_RUN_SCRIPT static bool
7220
get_resize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7221
0
{
7222
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.resize", DOM, cx);
7223
0
7224
0
  FastErrorResult rv;
7225
0
  DOMString result;
7226
0
  self->GetResize(result, rv);
7227
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7228
0
    return false;
7229
0
  }
7230
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7231
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7232
0
    return false;
7233
0
  }
7234
0
  return true;
7235
0
}
7236
7237
MOZ_CAN_RUN_SCRIPT static bool
7238
set_resize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7239
0
{
7240
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.resize", DOM, cx);
7241
0
7242
0
  binding_detail::FakeString arg0;
7243
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7244
0
    return false;
7245
0
  }
7246
0
  Maybe<AutoCEReaction> ceReaction;
7247
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7248
0
    DocGroup* docGroup = self->GetDocGroup();
7249
0
    if (docGroup) {
7250
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7251
0
    }
7252
0
  }
7253
0
  FastErrorResult rv;
7254
0
  nsIPrincipal* subjectPrincipal;
7255
0
  {
7256
0
    JS::Realm* realm = js::GetContextRealm(cx);
7257
0
    MOZ_ASSERT(realm);
7258
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7259
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7260
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7261
0
      principal = nullptr;
7262
0
    }
7263
0
7264
0
    subjectPrincipal = principal;
7265
0
  }
7266
0
  self->SetResize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7267
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7268
0
    return false;
7269
0
  }
7270
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7271
0
7272
0
  return true;
7273
0
}
7274
7275
static const JSJitInfo resize_getterinfo = {
7276
  { (JSJitGetterOp)get_resize },
7277
  { prototypes::id::CSS2Properties },
7278
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7279
  JSJitInfo::Getter,
7280
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7281
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7282
  false,  /* isInfallible. False in setters. */
7283
  false,  /* isMovable.  Not relevant for setters. */
7284
  false, /* isEliminatable.  Not relevant for setters. */
7285
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7286
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7287
  false,  /* isTypedMethod.  Only relevant for methods. */
7288
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7289
};
7290
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7291
static_assert(0 < 1, "There is no slot for us");
7292
static const JSJitInfo resize_setterinfo = {
7293
  { (JSJitGetterOp)set_resize },
7294
  { prototypes::id::CSS2Properties },
7295
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7296
  JSJitInfo::Setter,
7297
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7298
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7299
  false,  /* isInfallible. False in setters. */
7300
  false,  /* isMovable.  Not relevant for setters. */
7301
  false, /* isEliminatable.  Not relevant for setters. */
7302
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7303
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7304
  false,  /* isTypedMethod.  Only relevant for methods. */
7305
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7306
};
7307
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7308
static_assert(0 < 1, "There is no slot for us");
7309
7310
MOZ_CAN_RUN_SCRIPT static bool
7311
get_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7312
0
{
7313
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.rubyAlign", DOM, cx);
7314
0
7315
0
  FastErrorResult rv;
7316
0
  DOMString result;
7317
0
  self->GetRubyAlign(result, rv);
7318
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7319
0
    return false;
7320
0
  }
7321
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7322
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7323
0
    return false;
7324
0
  }
7325
0
  return true;
7326
0
}
7327
7328
MOZ_CAN_RUN_SCRIPT static bool
7329
set_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7330
0
{
7331
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.rubyAlign", DOM, cx);
7332
0
7333
0
  binding_detail::FakeString arg0;
7334
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7335
0
    return false;
7336
0
  }
7337
0
  Maybe<AutoCEReaction> ceReaction;
7338
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7339
0
    DocGroup* docGroup = self->GetDocGroup();
7340
0
    if (docGroup) {
7341
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7342
0
    }
7343
0
  }
7344
0
  FastErrorResult rv;
7345
0
  nsIPrincipal* subjectPrincipal;
7346
0
  {
7347
0
    JS::Realm* realm = js::GetContextRealm(cx);
7348
0
    MOZ_ASSERT(realm);
7349
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7350
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7351
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7352
0
      principal = nullptr;
7353
0
    }
7354
0
7355
0
    subjectPrincipal = principal;
7356
0
  }
7357
0
  self->SetRubyAlign(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7358
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7359
0
    return false;
7360
0
  }
7361
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7362
0
7363
0
  return true;
7364
0
}
7365
7366
static const JSJitInfo rubyAlign_getterinfo = {
7367
  { (JSJitGetterOp)get_rubyAlign },
7368
  { prototypes::id::CSS2Properties },
7369
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7370
  JSJitInfo::Getter,
7371
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7372
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7373
  false,  /* isInfallible. False in setters. */
7374
  false,  /* isMovable.  Not relevant for setters. */
7375
  false, /* isEliminatable.  Not relevant for setters. */
7376
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7377
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7378
  false,  /* isTypedMethod.  Only relevant for methods. */
7379
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7380
};
7381
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7382
static_assert(0 < 1, "There is no slot for us");
7383
static const JSJitInfo rubyAlign_setterinfo = {
7384
  { (JSJitGetterOp)set_rubyAlign },
7385
  { prototypes::id::CSS2Properties },
7386
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7387
  JSJitInfo::Setter,
7388
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7389
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7390
  false,  /* isInfallible. False in setters. */
7391
  false,  /* isMovable.  Not relevant for setters. */
7392
  false, /* isEliminatable.  Not relevant for setters. */
7393
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7394
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7395
  false,  /* isTypedMethod.  Only relevant for methods. */
7396
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7397
};
7398
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7399
static_assert(0 < 1, "There is no slot for us");
7400
7401
MOZ_CAN_RUN_SCRIPT static bool
7402
get_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7403
0
{
7404
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.rubyPosition", DOM, cx);
7405
0
7406
0
  FastErrorResult rv;
7407
0
  DOMString result;
7408
0
  self->GetRubyPosition(result, rv);
7409
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7410
0
    return false;
7411
0
  }
7412
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7413
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7414
0
    return false;
7415
0
  }
7416
0
  return true;
7417
0
}
7418
7419
MOZ_CAN_RUN_SCRIPT static bool
7420
set_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7421
0
{
7422
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.rubyPosition", DOM, cx);
7423
0
7424
0
  binding_detail::FakeString arg0;
7425
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7426
0
    return false;
7427
0
  }
7428
0
  Maybe<AutoCEReaction> ceReaction;
7429
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7430
0
    DocGroup* docGroup = self->GetDocGroup();
7431
0
    if (docGroup) {
7432
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7433
0
    }
7434
0
  }
7435
0
  FastErrorResult rv;
7436
0
  nsIPrincipal* subjectPrincipal;
7437
0
  {
7438
0
    JS::Realm* realm = js::GetContextRealm(cx);
7439
0
    MOZ_ASSERT(realm);
7440
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7441
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7442
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7443
0
      principal = nullptr;
7444
0
    }
7445
0
7446
0
    subjectPrincipal = principal;
7447
0
  }
7448
0
  self->SetRubyPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7449
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7450
0
    return false;
7451
0
  }
7452
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7453
0
7454
0
  return true;
7455
0
}
7456
7457
static const JSJitInfo rubyPosition_getterinfo = {
7458
  { (JSJitGetterOp)get_rubyPosition },
7459
  { prototypes::id::CSS2Properties },
7460
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7461
  JSJitInfo::Getter,
7462
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7463
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7464
  false,  /* isInfallible. False in setters. */
7465
  false,  /* isMovable.  Not relevant for setters. */
7466
  false, /* isEliminatable.  Not relevant for setters. */
7467
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7468
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7469
  false,  /* isTypedMethod.  Only relevant for methods. */
7470
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7471
};
7472
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7473
static_assert(0 < 1, "There is no slot for us");
7474
static const JSJitInfo rubyPosition_setterinfo = {
7475
  { (JSJitGetterOp)set_rubyPosition },
7476
  { prototypes::id::CSS2Properties },
7477
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7478
  JSJitInfo::Setter,
7479
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7480
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7481
  false,  /* isInfallible. False in setters. */
7482
  false,  /* isMovable.  Not relevant for setters. */
7483
  false, /* isEliminatable.  Not relevant for setters. */
7484
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7485
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7486
  false,  /* isTypedMethod.  Only relevant for methods. */
7487
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7488
};
7489
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7490
static_assert(0 < 1, "There is no slot for us");
7491
7492
MOZ_CAN_RUN_SCRIPT static bool
7493
get_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7494
0
{
7495
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollBehavior", DOM, cx);
7496
0
7497
0
  FastErrorResult rv;
7498
0
  DOMString result;
7499
0
  self->GetScrollBehavior(result, rv);
7500
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7501
0
    return false;
7502
0
  }
7503
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7504
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7505
0
    return false;
7506
0
  }
7507
0
  return true;
7508
0
}
7509
7510
MOZ_CAN_RUN_SCRIPT static bool
7511
set_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7512
0
{
7513
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollBehavior", DOM, cx);
7514
0
7515
0
  binding_detail::FakeString arg0;
7516
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7517
0
    return false;
7518
0
  }
7519
0
  Maybe<AutoCEReaction> ceReaction;
7520
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7521
0
    DocGroup* docGroup = self->GetDocGroup();
7522
0
    if (docGroup) {
7523
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7524
0
    }
7525
0
  }
7526
0
  FastErrorResult rv;
7527
0
  nsIPrincipal* subjectPrincipal;
7528
0
  {
7529
0
    JS::Realm* realm = js::GetContextRealm(cx);
7530
0
    MOZ_ASSERT(realm);
7531
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7532
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7533
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7534
0
      principal = nullptr;
7535
0
    }
7536
0
7537
0
    subjectPrincipal = principal;
7538
0
  }
7539
0
  self->SetScrollBehavior(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7540
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7541
0
    return false;
7542
0
  }
7543
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7544
0
7545
0
  return true;
7546
0
}
7547
7548
static const JSJitInfo scrollBehavior_getterinfo = {
7549
  { (JSJitGetterOp)get_scrollBehavior },
7550
  { prototypes::id::CSS2Properties },
7551
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7552
  JSJitInfo::Getter,
7553
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7554
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7555
  false,  /* isInfallible. False in setters. */
7556
  false,  /* isMovable.  Not relevant for setters. */
7557
  false, /* isEliminatable.  Not relevant for setters. */
7558
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7559
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7560
  false,  /* isTypedMethod.  Only relevant for methods. */
7561
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7562
};
7563
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7564
static_assert(0 < 1, "There is no slot for us");
7565
static const JSJitInfo scrollBehavior_setterinfo = {
7566
  { (JSJitGetterOp)set_scrollBehavior },
7567
  { prototypes::id::CSS2Properties },
7568
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7569
  JSJitInfo::Setter,
7570
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7571
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7572
  false,  /* isInfallible. False in setters. */
7573
  false,  /* isMovable.  Not relevant for setters. */
7574
  false, /* isEliminatable.  Not relevant for setters. */
7575
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7576
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7577
  false,  /* isTypedMethod.  Only relevant for methods. */
7578
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7579
};
7580
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7581
static_assert(0 < 1, "There is no slot for us");
7582
7583
MOZ_CAN_RUN_SCRIPT static bool
7584
get_scrollbarWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7585
0
{
7586
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollbarWidth", DOM, cx);
7587
0
7588
0
  FastErrorResult rv;
7589
0
  DOMString result;
7590
0
  self->GetScrollbarWidth(result, rv);
7591
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7592
0
    return false;
7593
0
  }
7594
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7595
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7596
0
    return false;
7597
0
  }
7598
0
  return true;
7599
0
}
7600
7601
MOZ_CAN_RUN_SCRIPT static bool
7602
set_scrollbarWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7603
0
{
7604
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollbarWidth", DOM, cx);
7605
0
7606
0
  binding_detail::FakeString arg0;
7607
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7608
0
    return false;
7609
0
  }
7610
0
  Maybe<AutoCEReaction> ceReaction;
7611
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7612
0
    DocGroup* docGroup = self->GetDocGroup();
7613
0
    if (docGroup) {
7614
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7615
0
    }
7616
0
  }
7617
0
  FastErrorResult rv;
7618
0
  nsIPrincipal* subjectPrincipal;
7619
0
  {
7620
0
    JS::Realm* realm = js::GetContextRealm(cx);
7621
0
    MOZ_ASSERT(realm);
7622
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7623
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7624
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7625
0
      principal = nullptr;
7626
0
    }
7627
0
7628
0
    subjectPrincipal = principal;
7629
0
  }
7630
0
  self->SetScrollbarWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7631
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7632
0
    return false;
7633
0
  }
7634
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7635
0
7636
0
  return true;
7637
0
}
7638
7639
static const JSJitInfo scrollbarWidth_getterinfo = {
7640
  { (JSJitGetterOp)get_scrollbarWidth },
7641
  { prototypes::id::CSS2Properties },
7642
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7643
  JSJitInfo::Getter,
7644
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7645
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7646
  false,  /* isInfallible. False in setters. */
7647
  false,  /* isMovable.  Not relevant for setters. */
7648
  false, /* isEliminatable.  Not relevant for setters. */
7649
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7650
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7651
  false,  /* isTypedMethod.  Only relevant for methods. */
7652
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7653
};
7654
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7655
static_assert(0 < 1, "There is no slot for us");
7656
static const JSJitInfo scrollbarWidth_setterinfo = {
7657
  { (JSJitGetterOp)set_scrollbarWidth },
7658
  { prototypes::id::CSS2Properties },
7659
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7660
  JSJitInfo::Setter,
7661
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7662
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7663
  false,  /* isInfallible. False in setters. */
7664
  false,  /* isMovable.  Not relevant for setters. */
7665
  false, /* isEliminatable.  Not relevant for setters. */
7666
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7667
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7668
  false,  /* isTypedMethod.  Only relevant for methods. */
7669
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7670
};
7671
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7672
static_assert(0 < 1, "There is no slot for us");
7673
7674
MOZ_CAN_RUN_SCRIPT static bool
7675
get_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7676
0
{
7677
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.shapeRendering", DOM, cx);
7678
0
7679
0
  FastErrorResult rv;
7680
0
  DOMString result;
7681
0
  self->GetShapeRendering(result, rv);
7682
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7683
0
    return false;
7684
0
  }
7685
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7686
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7687
0
    return false;
7688
0
  }
7689
0
  return true;
7690
0
}
7691
7692
MOZ_CAN_RUN_SCRIPT static bool
7693
set_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7694
0
{
7695
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.shapeRendering", DOM, cx);
7696
0
7697
0
  binding_detail::FakeString arg0;
7698
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7699
0
    return false;
7700
0
  }
7701
0
  Maybe<AutoCEReaction> ceReaction;
7702
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7703
0
    DocGroup* docGroup = self->GetDocGroup();
7704
0
    if (docGroup) {
7705
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7706
0
    }
7707
0
  }
7708
0
  FastErrorResult rv;
7709
0
  nsIPrincipal* subjectPrincipal;
7710
0
  {
7711
0
    JS::Realm* realm = js::GetContextRealm(cx);
7712
0
    MOZ_ASSERT(realm);
7713
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7714
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7715
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7716
0
      principal = nullptr;
7717
0
    }
7718
0
7719
0
    subjectPrincipal = principal;
7720
0
  }
7721
0
  self->SetShapeRendering(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7722
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7723
0
    return false;
7724
0
  }
7725
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7726
0
7727
0
  return true;
7728
0
}
7729
7730
static const JSJitInfo shapeRendering_getterinfo = {
7731
  { (JSJitGetterOp)get_shapeRendering },
7732
  { prototypes::id::CSS2Properties },
7733
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7734
  JSJitInfo::Getter,
7735
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7736
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7737
  false,  /* isInfallible. False in setters. */
7738
  false,  /* isMovable.  Not relevant for setters. */
7739
  false, /* isEliminatable.  Not relevant for setters. */
7740
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7741
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7742
  false,  /* isTypedMethod.  Only relevant for methods. */
7743
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7744
};
7745
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7746
static_assert(0 < 1, "There is no slot for us");
7747
static const JSJitInfo shapeRendering_setterinfo = {
7748
  { (JSJitGetterOp)set_shapeRendering },
7749
  { prototypes::id::CSS2Properties },
7750
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7751
  JSJitInfo::Setter,
7752
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7753
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7754
  false,  /* isInfallible. False in setters. */
7755
  false,  /* isMovable.  Not relevant for setters. */
7756
  false, /* isEliminatable.  Not relevant for setters. */
7757
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7758
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7759
  false,  /* isTypedMethod.  Only relevant for methods. */
7760
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7761
};
7762
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7763
static_assert(0 < 1, "There is no slot for us");
7764
7765
MOZ_CAN_RUN_SCRIPT static bool
7766
get_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7767
0
{
7768
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeLinecap", DOM, cx);
7769
0
7770
0
  FastErrorResult rv;
7771
0
  DOMString result;
7772
0
  self->GetStrokeLinecap(result, rv);
7773
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7774
0
    return false;
7775
0
  }
7776
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7777
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7778
0
    return false;
7779
0
  }
7780
0
  return true;
7781
0
}
7782
7783
MOZ_CAN_RUN_SCRIPT static bool
7784
set_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7785
0
{
7786
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeLinecap", DOM, cx);
7787
0
7788
0
  binding_detail::FakeString arg0;
7789
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7790
0
    return false;
7791
0
  }
7792
0
  Maybe<AutoCEReaction> ceReaction;
7793
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7794
0
    DocGroup* docGroup = self->GetDocGroup();
7795
0
    if (docGroup) {
7796
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7797
0
    }
7798
0
  }
7799
0
  FastErrorResult rv;
7800
0
  nsIPrincipal* subjectPrincipal;
7801
0
  {
7802
0
    JS::Realm* realm = js::GetContextRealm(cx);
7803
0
    MOZ_ASSERT(realm);
7804
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7805
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7806
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7807
0
      principal = nullptr;
7808
0
    }
7809
0
7810
0
    subjectPrincipal = principal;
7811
0
  }
7812
0
  self->SetStrokeLinecap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7813
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7814
0
    return false;
7815
0
  }
7816
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7817
0
7818
0
  return true;
7819
0
}
7820
7821
static const JSJitInfo strokeLinecap_getterinfo = {
7822
  { (JSJitGetterOp)get_strokeLinecap },
7823
  { prototypes::id::CSS2Properties },
7824
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7825
  JSJitInfo::Getter,
7826
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7827
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7828
  false,  /* isInfallible. False in setters. */
7829
  false,  /* isMovable.  Not relevant for setters. */
7830
  false, /* isEliminatable.  Not relevant for setters. */
7831
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7832
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7833
  false,  /* isTypedMethod.  Only relevant for methods. */
7834
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7835
};
7836
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7837
static_assert(0 < 1, "There is no slot for us");
7838
static const JSJitInfo strokeLinecap_setterinfo = {
7839
  { (JSJitGetterOp)set_strokeLinecap },
7840
  { prototypes::id::CSS2Properties },
7841
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7842
  JSJitInfo::Setter,
7843
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7844
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7845
  false,  /* isInfallible. False in setters. */
7846
  false,  /* isMovable.  Not relevant for setters. */
7847
  false, /* isEliminatable.  Not relevant for setters. */
7848
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7849
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7850
  false,  /* isTypedMethod.  Only relevant for methods. */
7851
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7852
};
7853
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7854
static_assert(0 < 1, "There is no slot for us");
7855
7856
MOZ_CAN_RUN_SCRIPT static bool
7857
get_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7858
0
{
7859
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeLinejoin", DOM, cx);
7860
0
7861
0
  FastErrorResult rv;
7862
0
  DOMString result;
7863
0
  self->GetStrokeLinejoin(result, rv);
7864
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7865
0
    return false;
7866
0
  }
7867
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7868
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7869
0
    return false;
7870
0
  }
7871
0
  return true;
7872
0
}
7873
7874
MOZ_CAN_RUN_SCRIPT static bool
7875
set_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7876
0
{
7877
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeLinejoin", DOM, cx);
7878
0
7879
0
  binding_detail::FakeString arg0;
7880
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7881
0
    return false;
7882
0
  }
7883
0
  Maybe<AutoCEReaction> ceReaction;
7884
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7885
0
    DocGroup* docGroup = self->GetDocGroup();
7886
0
    if (docGroup) {
7887
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7888
0
    }
7889
0
  }
7890
0
  FastErrorResult rv;
7891
0
  nsIPrincipal* subjectPrincipal;
7892
0
  {
7893
0
    JS::Realm* realm = js::GetContextRealm(cx);
7894
0
    MOZ_ASSERT(realm);
7895
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7896
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7897
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7898
0
      principal = nullptr;
7899
0
    }
7900
0
7901
0
    subjectPrincipal = principal;
7902
0
  }
7903
0
  self->SetStrokeLinejoin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7904
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7905
0
    return false;
7906
0
  }
7907
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7908
0
7909
0
  return true;
7910
0
}
7911
7912
static const JSJitInfo strokeLinejoin_getterinfo = {
7913
  { (JSJitGetterOp)get_strokeLinejoin },
7914
  { prototypes::id::CSS2Properties },
7915
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7916
  JSJitInfo::Getter,
7917
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7918
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
7919
  false,  /* isInfallible. False in setters. */
7920
  false,  /* isMovable.  Not relevant for setters. */
7921
  false, /* isEliminatable.  Not relevant for setters. */
7922
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7923
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7924
  false,  /* isTypedMethod.  Only relevant for methods. */
7925
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7926
};
7927
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7928
static_assert(0 < 1, "There is no slot for us");
7929
static const JSJitInfo strokeLinejoin_setterinfo = {
7930
  { (JSJitGetterOp)set_strokeLinejoin },
7931
  { prototypes::id::CSS2Properties },
7932
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
7933
  JSJitInfo::Setter,
7934
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
7935
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
7936
  false,  /* isInfallible. False in setters. */
7937
  false,  /* isMovable.  Not relevant for setters. */
7938
  false, /* isEliminatable.  Not relevant for setters. */
7939
  false, /* isAlwaysInSlot.  Only relevant for getters. */
7940
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
7941
  false,  /* isTypedMethod.  Only relevant for methods. */
7942
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
7943
};
7944
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
7945
static_assert(0 < 1, "There is no slot for us");
7946
7947
MOZ_CAN_RUN_SCRIPT static bool
7948
get_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
7949
0
{
7950
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeMiterlimit", DOM, cx);
7951
0
7952
0
  FastErrorResult rv;
7953
0
  DOMString result;
7954
0
  self->GetStrokeMiterlimit(result, rv);
7955
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7956
0
    return false;
7957
0
  }
7958
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7959
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
7960
0
    return false;
7961
0
  }
7962
0
  return true;
7963
0
}
7964
7965
MOZ_CAN_RUN_SCRIPT static bool
7966
set_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
7967
0
{
7968
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeMiterlimit", DOM, cx);
7969
0
7970
0
  binding_detail::FakeString arg0;
7971
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
7972
0
    return false;
7973
0
  }
7974
0
  Maybe<AutoCEReaction> ceReaction;
7975
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
7976
0
    DocGroup* docGroup = self->GetDocGroup();
7977
0
    if (docGroup) {
7978
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
7979
0
    }
7980
0
  }
7981
0
  FastErrorResult rv;
7982
0
  nsIPrincipal* subjectPrincipal;
7983
0
  {
7984
0
    JS::Realm* realm = js::GetContextRealm(cx);
7985
0
    MOZ_ASSERT(realm);
7986
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
7987
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
7988
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
7989
0
      principal = nullptr;
7990
0
    }
7991
0
7992
0
    subjectPrincipal = principal;
7993
0
  }
7994
0
  self->SetStrokeMiterlimit(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
7995
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
7996
0
    return false;
7997
0
  }
7998
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
7999
0
8000
0
  return true;
8001
0
}
8002
8003
static const JSJitInfo strokeMiterlimit_getterinfo = {
8004
  { (JSJitGetterOp)get_strokeMiterlimit },
8005
  { prototypes::id::CSS2Properties },
8006
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8007
  JSJitInfo::Getter,
8008
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8009
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8010
  false,  /* isInfallible. False in setters. */
8011
  false,  /* isMovable.  Not relevant for setters. */
8012
  false, /* isEliminatable.  Not relevant for setters. */
8013
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8014
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8015
  false,  /* isTypedMethod.  Only relevant for methods. */
8016
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8017
};
8018
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8019
static_assert(0 < 1, "There is no slot for us");
8020
static const JSJitInfo strokeMiterlimit_setterinfo = {
8021
  { (JSJitGetterOp)set_strokeMiterlimit },
8022
  { prototypes::id::CSS2Properties },
8023
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8024
  JSJitInfo::Setter,
8025
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8026
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8027
  false,  /* isInfallible. False in setters. */
8028
  false,  /* isMovable.  Not relevant for setters. */
8029
  false, /* isEliminatable.  Not relevant for setters. */
8030
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8031
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8032
  false,  /* isTypedMethod.  Only relevant for methods. */
8033
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8034
};
8035
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8036
static_assert(0 < 1, "There is no slot for us");
8037
8038
MOZ_CAN_RUN_SCRIPT static bool
8039
get_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8040
0
{
8041
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.tableLayout", DOM, cx);
8042
0
8043
0
  FastErrorResult rv;
8044
0
  DOMString result;
8045
0
  self->GetTableLayout(result, rv);
8046
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8047
0
    return false;
8048
0
  }
8049
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8050
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8051
0
    return false;
8052
0
  }
8053
0
  return true;
8054
0
}
8055
8056
MOZ_CAN_RUN_SCRIPT static bool
8057
set_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8058
0
{
8059
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.tableLayout", DOM, cx);
8060
0
8061
0
  binding_detail::FakeString arg0;
8062
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8063
0
    return false;
8064
0
  }
8065
0
  Maybe<AutoCEReaction> ceReaction;
8066
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8067
0
    DocGroup* docGroup = self->GetDocGroup();
8068
0
    if (docGroup) {
8069
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8070
0
    }
8071
0
  }
8072
0
  FastErrorResult rv;
8073
0
  nsIPrincipal* subjectPrincipal;
8074
0
  {
8075
0
    JS::Realm* realm = js::GetContextRealm(cx);
8076
0
    MOZ_ASSERT(realm);
8077
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8078
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8079
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8080
0
      principal = nullptr;
8081
0
    }
8082
0
8083
0
    subjectPrincipal = principal;
8084
0
  }
8085
0
  self->SetTableLayout(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8086
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8087
0
    return false;
8088
0
  }
8089
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8090
0
8091
0
  return true;
8092
0
}
8093
8094
static const JSJitInfo tableLayout_getterinfo = {
8095
  { (JSJitGetterOp)get_tableLayout },
8096
  { prototypes::id::CSS2Properties },
8097
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8098
  JSJitInfo::Getter,
8099
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8100
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8101
  false,  /* isInfallible. False in setters. */
8102
  false,  /* isMovable.  Not relevant for setters. */
8103
  false, /* isEliminatable.  Not relevant for setters. */
8104
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8105
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8106
  false,  /* isTypedMethod.  Only relevant for methods. */
8107
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8108
};
8109
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8110
static_assert(0 < 1, "There is no slot for us");
8111
static const JSJitInfo tableLayout_setterinfo = {
8112
  { (JSJitGetterOp)set_tableLayout },
8113
  { prototypes::id::CSS2Properties },
8114
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8115
  JSJitInfo::Setter,
8116
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8117
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8118
  false,  /* isInfallible. False in setters. */
8119
  false,  /* isMovable.  Not relevant for setters. */
8120
  false, /* isEliminatable.  Not relevant for setters. */
8121
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8122
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8123
  false,  /* isTypedMethod.  Only relevant for methods. */
8124
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8125
};
8126
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8127
static_assert(0 < 1, "There is no slot for us");
8128
8129
MOZ_CAN_RUN_SCRIPT static bool
8130
get_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8131
0
{
8132
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textAlign", DOM, cx);
8133
0
8134
0
  FastErrorResult rv;
8135
0
  DOMString result;
8136
0
  self->GetTextAlign(result, rv);
8137
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8138
0
    return false;
8139
0
  }
8140
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8141
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8142
0
    return false;
8143
0
  }
8144
0
  return true;
8145
0
}
8146
8147
MOZ_CAN_RUN_SCRIPT static bool
8148
set_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8149
0
{
8150
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textAlign", DOM, cx);
8151
0
8152
0
  binding_detail::FakeString arg0;
8153
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8154
0
    return false;
8155
0
  }
8156
0
  Maybe<AutoCEReaction> ceReaction;
8157
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8158
0
    DocGroup* docGroup = self->GetDocGroup();
8159
0
    if (docGroup) {
8160
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8161
0
    }
8162
0
  }
8163
0
  FastErrorResult rv;
8164
0
  nsIPrincipal* subjectPrincipal;
8165
0
  {
8166
0
    JS::Realm* realm = js::GetContextRealm(cx);
8167
0
    MOZ_ASSERT(realm);
8168
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8169
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8170
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8171
0
      principal = nullptr;
8172
0
    }
8173
0
8174
0
    subjectPrincipal = principal;
8175
0
  }
8176
0
  self->SetTextAlign(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8177
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8178
0
    return false;
8179
0
  }
8180
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8181
0
8182
0
  return true;
8183
0
}
8184
8185
static const JSJitInfo textAlign_getterinfo = {
8186
  { (JSJitGetterOp)get_textAlign },
8187
  { prototypes::id::CSS2Properties },
8188
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8189
  JSJitInfo::Getter,
8190
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8191
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8192
  false,  /* isInfallible. False in setters. */
8193
  false,  /* isMovable.  Not relevant for setters. */
8194
  false, /* isEliminatable.  Not relevant for setters. */
8195
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8196
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8197
  false,  /* isTypedMethod.  Only relevant for methods. */
8198
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8199
};
8200
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8201
static_assert(0 < 1, "There is no slot for us");
8202
static const JSJitInfo textAlign_setterinfo = {
8203
  { (JSJitGetterOp)set_textAlign },
8204
  { prototypes::id::CSS2Properties },
8205
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8206
  JSJitInfo::Setter,
8207
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8208
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8209
  false,  /* isInfallible. False in setters. */
8210
  false,  /* isMovable.  Not relevant for setters. */
8211
  false, /* isEliminatable.  Not relevant for setters. */
8212
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8213
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8214
  false,  /* isTypedMethod.  Only relevant for methods. */
8215
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8216
};
8217
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8218
static_assert(0 < 1, "There is no slot for us");
8219
8220
MOZ_CAN_RUN_SCRIPT static bool
8221
get_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8222
0
{
8223
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textAlignLast", DOM, cx);
8224
0
8225
0
  FastErrorResult rv;
8226
0
  DOMString result;
8227
0
  self->GetTextAlignLast(result, rv);
8228
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8229
0
    return false;
8230
0
  }
8231
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8232
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8233
0
    return false;
8234
0
  }
8235
0
  return true;
8236
0
}
8237
8238
MOZ_CAN_RUN_SCRIPT static bool
8239
set_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8240
0
{
8241
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textAlignLast", DOM, cx);
8242
0
8243
0
  binding_detail::FakeString arg0;
8244
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8245
0
    return false;
8246
0
  }
8247
0
  Maybe<AutoCEReaction> ceReaction;
8248
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8249
0
    DocGroup* docGroup = self->GetDocGroup();
8250
0
    if (docGroup) {
8251
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8252
0
    }
8253
0
  }
8254
0
  FastErrorResult rv;
8255
0
  nsIPrincipal* subjectPrincipal;
8256
0
  {
8257
0
    JS::Realm* realm = js::GetContextRealm(cx);
8258
0
    MOZ_ASSERT(realm);
8259
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8260
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8261
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8262
0
      principal = nullptr;
8263
0
    }
8264
0
8265
0
    subjectPrincipal = principal;
8266
0
  }
8267
0
  self->SetTextAlignLast(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8268
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8269
0
    return false;
8270
0
  }
8271
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8272
0
8273
0
  return true;
8274
0
}
8275
8276
static const JSJitInfo textAlignLast_getterinfo = {
8277
  { (JSJitGetterOp)get_textAlignLast },
8278
  { prototypes::id::CSS2Properties },
8279
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8280
  JSJitInfo::Getter,
8281
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8282
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8283
  false,  /* isInfallible. False in setters. */
8284
  false,  /* isMovable.  Not relevant for setters. */
8285
  false, /* isEliminatable.  Not relevant for setters. */
8286
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8287
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8288
  false,  /* isTypedMethod.  Only relevant for methods. */
8289
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8290
};
8291
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8292
static_assert(0 < 1, "There is no slot for us");
8293
static const JSJitInfo textAlignLast_setterinfo = {
8294
  { (JSJitGetterOp)set_textAlignLast },
8295
  { prototypes::id::CSS2Properties },
8296
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8297
  JSJitInfo::Setter,
8298
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8299
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8300
  false,  /* isInfallible. False in setters. */
8301
  false,  /* isMovable.  Not relevant for setters. */
8302
  false, /* isEliminatable.  Not relevant for setters. */
8303
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8304
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8305
  false,  /* isTypedMethod.  Only relevant for methods. */
8306
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8307
};
8308
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8309
static_assert(0 < 1, "There is no slot for us");
8310
8311
MOZ_CAN_RUN_SCRIPT static bool
8312
get_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8313
0
{
8314
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textAnchor", DOM, cx);
8315
0
8316
0
  FastErrorResult rv;
8317
0
  DOMString result;
8318
0
  self->GetTextAnchor(result, rv);
8319
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8320
0
    return false;
8321
0
  }
8322
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8323
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8324
0
    return false;
8325
0
  }
8326
0
  return true;
8327
0
}
8328
8329
MOZ_CAN_RUN_SCRIPT static bool
8330
set_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8331
0
{
8332
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textAnchor", DOM, cx);
8333
0
8334
0
  binding_detail::FakeString arg0;
8335
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8336
0
    return false;
8337
0
  }
8338
0
  Maybe<AutoCEReaction> ceReaction;
8339
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8340
0
    DocGroup* docGroup = self->GetDocGroup();
8341
0
    if (docGroup) {
8342
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8343
0
    }
8344
0
  }
8345
0
  FastErrorResult rv;
8346
0
  nsIPrincipal* subjectPrincipal;
8347
0
  {
8348
0
    JS::Realm* realm = js::GetContextRealm(cx);
8349
0
    MOZ_ASSERT(realm);
8350
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8351
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8352
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8353
0
      principal = nullptr;
8354
0
    }
8355
0
8356
0
    subjectPrincipal = principal;
8357
0
  }
8358
0
  self->SetTextAnchor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8359
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8360
0
    return false;
8361
0
  }
8362
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8363
0
8364
0
  return true;
8365
0
}
8366
8367
static const JSJitInfo textAnchor_getterinfo = {
8368
  { (JSJitGetterOp)get_textAnchor },
8369
  { prototypes::id::CSS2Properties },
8370
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8371
  JSJitInfo::Getter,
8372
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8373
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8374
  false,  /* isInfallible. False in setters. */
8375
  false,  /* isMovable.  Not relevant for setters. */
8376
  false, /* isEliminatable.  Not relevant for setters. */
8377
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8378
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8379
  false,  /* isTypedMethod.  Only relevant for methods. */
8380
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8381
};
8382
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8383
static_assert(0 < 1, "There is no slot for us");
8384
static const JSJitInfo textAnchor_setterinfo = {
8385
  { (JSJitGetterOp)set_textAnchor },
8386
  { prototypes::id::CSS2Properties },
8387
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8388
  JSJitInfo::Setter,
8389
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8390
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8391
  false,  /* isInfallible. False in setters. */
8392
  false,  /* isMovable.  Not relevant for setters. */
8393
  false, /* isEliminatable.  Not relevant for setters. */
8394
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8395
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8396
  false,  /* isTypedMethod.  Only relevant for methods. */
8397
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8398
};
8399
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8400
static_assert(0 < 1, "There is no slot for us");
8401
8402
MOZ_CAN_RUN_SCRIPT static bool
8403
get_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8404
0
{
8405
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textCombineUpright", DOM, cx);
8406
0
8407
0
  FastErrorResult rv;
8408
0
  DOMString result;
8409
0
  self->GetTextCombineUpright(result, rv);
8410
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8411
0
    return false;
8412
0
  }
8413
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8414
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8415
0
    return false;
8416
0
  }
8417
0
  return true;
8418
0
}
8419
8420
MOZ_CAN_RUN_SCRIPT static bool
8421
set_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8422
0
{
8423
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textCombineUpright", DOM, cx);
8424
0
8425
0
  binding_detail::FakeString arg0;
8426
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8427
0
    return false;
8428
0
  }
8429
0
  Maybe<AutoCEReaction> ceReaction;
8430
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8431
0
    DocGroup* docGroup = self->GetDocGroup();
8432
0
    if (docGroup) {
8433
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8434
0
    }
8435
0
  }
8436
0
  FastErrorResult rv;
8437
0
  nsIPrincipal* subjectPrincipal;
8438
0
  {
8439
0
    JS::Realm* realm = js::GetContextRealm(cx);
8440
0
    MOZ_ASSERT(realm);
8441
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8442
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8443
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8444
0
      principal = nullptr;
8445
0
    }
8446
0
8447
0
    subjectPrincipal = principal;
8448
0
  }
8449
0
  self->SetTextCombineUpright(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8450
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8451
0
    return false;
8452
0
  }
8453
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8454
0
8455
0
  return true;
8456
0
}
8457
8458
static const JSJitInfo textCombineUpright_getterinfo = {
8459
  { (JSJitGetterOp)get_textCombineUpright },
8460
  { prototypes::id::CSS2Properties },
8461
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8462
  JSJitInfo::Getter,
8463
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8464
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8465
  false,  /* isInfallible. False in setters. */
8466
  false,  /* isMovable.  Not relevant for setters. */
8467
  false, /* isEliminatable.  Not relevant for setters. */
8468
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8469
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8470
  false,  /* isTypedMethod.  Only relevant for methods. */
8471
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8472
};
8473
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8474
static_assert(0 < 1, "There is no slot for us");
8475
static const JSJitInfo textCombineUpright_setterinfo = {
8476
  { (JSJitGetterOp)set_textCombineUpright },
8477
  { prototypes::id::CSS2Properties },
8478
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8479
  JSJitInfo::Setter,
8480
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8481
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8482
  false,  /* isInfallible. False in setters. */
8483
  false,  /* isMovable.  Not relevant for setters. */
8484
  false, /* isEliminatable.  Not relevant for setters. */
8485
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8486
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8487
  false,  /* isTypedMethod.  Only relevant for methods. */
8488
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8489
};
8490
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8491
static_assert(0 < 1, "There is no slot for us");
8492
8493
MOZ_CAN_RUN_SCRIPT static bool
8494
get_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8495
0
{
8496
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textDecorationLine", DOM, cx);
8497
0
8498
0
  FastErrorResult rv;
8499
0
  DOMString result;
8500
0
  self->GetTextDecorationLine(result, rv);
8501
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8502
0
    return false;
8503
0
  }
8504
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8505
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8506
0
    return false;
8507
0
  }
8508
0
  return true;
8509
0
}
8510
8511
MOZ_CAN_RUN_SCRIPT static bool
8512
set_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8513
0
{
8514
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textDecorationLine", DOM, cx);
8515
0
8516
0
  binding_detail::FakeString arg0;
8517
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8518
0
    return false;
8519
0
  }
8520
0
  Maybe<AutoCEReaction> ceReaction;
8521
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8522
0
    DocGroup* docGroup = self->GetDocGroup();
8523
0
    if (docGroup) {
8524
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8525
0
    }
8526
0
  }
8527
0
  FastErrorResult rv;
8528
0
  nsIPrincipal* subjectPrincipal;
8529
0
  {
8530
0
    JS::Realm* realm = js::GetContextRealm(cx);
8531
0
    MOZ_ASSERT(realm);
8532
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8533
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8534
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8535
0
      principal = nullptr;
8536
0
    }
8537
0
8538
0
    subjectPrincipal = principal;
8539
0
  }
8540
0
  self->SetTextDecorationLine(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8541
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8542
0
    return false;
8543
0
  }
8544
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8545
0
8546
0
  return true;
8547
0
}
8548
8549
static const JSJitInfo textDecorationLine_getterinfo = {
8550
  { (JSJitGetterOp)get_textDecorationLine },
8551
  { prototypes::id::CSS2Properties },
8552
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8553
  JSJitInfo::Getter,
8554
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8555
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8556
  false,  /* isInfallible. False in setters. */
8557
  false,  /* isMovable.  Not relevant for setters. */
8558
  false, /* isEliminatable.  Not relevant for setters. */
8559
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8560
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8561
  false,  /* isTypedMethod.  Only relevant for methods. */
8562
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8563
};
8564
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8565
static_assert(0 < 1, "There is no slot for us");
8566
static const JSJitInfo textDecorationLine_setterinfo = {
8567
  { (JSJitGetterOp)set_textDecorationLine },
8568
  { prototypes::id::CSS2Properties },
8569
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8570
  JSJitInfo::Setter,
8571
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8572
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8573
  false,  /* isInfallible. False in setters. */
8574
  false,  /* isMovable.  Not relevant for setters. */
8575
  false, /* isEliminatable.  Not relevant for setters. */
8576
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8577
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8578
  false,  /* isTypedMethod.  Only relevant for methods. */
8579
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8580
};
8581
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8582
static_assert(0 < 1, "There is no slot for us");
8583
8584
MOZ_CAN_RUN_SCRIPT static bool
8585
get_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8586
0
{
8587
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textDecorationStyle", DOM, cx);
8588
0
8589
0
  FastErrorResult rv;
8590
0
  DOMString result;
8591
0
  self->GetTextDecorationStyle(result, rv);
8592
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8593
0
    return false;
8594
0
  }
8595
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8596
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8597
0
    return false;
8598
0
  }
8599
0
  return true;
8600
0
}
8601
8602
MOZ_CAN_RUN_SCRIPT static bool
8603
set_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8604
0
{
8605
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textDecorationStyle", DOM, cx);
8606
0
8607
0
  binding_detail::FakeString arg0;
8608
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8609
0
    return false;
8610
0
  }
8611
0
  Maybe<AutoCEReaction> ceReaction;
8612
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8613
0
    DocGroup* docGroup = self->GetDocGroup();
8614
0
    if (docGroup) {
8615
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8616
0
    }
8617
0
  }
8618
0
  FastErrorResult rv;
8619
0
  nsIPrincipal* subjectPrincipal;
8620
0
  {
8621
0
    JS::Realm* realm = js::GetContextRealm(cx);
8622
0
    MOZ_ASSERT(realm);
8623
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8624
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8625
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8626
0
      principal = nullptr;
8627
0
    }
8628
0
8629
0
    subjectPrincipal = principal;
8630
0
  }
8631
0
  self->SetTextDecorationStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8632
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8633
0
    return false;
8634
0
  }
8635
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8636
0
8637
0
  return true;
8638
0
}
8639
8640
static const JSJitInfo textDecorationStyle_getterinfo = {
8641
  { (JSJitGetterOp)get_textDecorationStyle },
8642
  { prototypes::id::CSS2Properties },
8643
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8644
  JSJitInfo::Getter,
8645
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8646
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8647
  false,  /* isInfallible. False in setters. */
8648
  false,  /* isMovable.  Not relevant for setters. */
8649
  false, /* isEliminatable.  Not relevant for setters. */
8650
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8651
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8652
  false,  /* isTypedMethod.  Only relevant for methods. */
8653
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8654
};
8655
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8656
static_assert(0 < 1, "There is no slot for us");
8657
static const JSJitInfo textDecorationStyle_setterinfo = {
8658
  { (JSJitGetterOp)set_textDecorationStyle },
8659
  { prototypes::id::CSS2Properties },
8660
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8661
  JSJitInfo::Setter,
8662
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8663
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8664
  false,  /* isInfallible. False in setters. */
8665
  false,  /* isMovable.  Not relevant for setters. */
8666
  false, /* isEliminatable.  Not relevant for setters. */
8667
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8668
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8669
  false,  /* isTypedMethod.  Only relevant for methods. */
8670
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8671
};
8672
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8673
static_assert(0 < 1, "There is no slot for us");
8674
8675
MOZ_CAN_RUN_SCRIPT static bool
8676
get_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8677
0
{
8678
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textEmphasisPosition", DOM, cx);
8679
0
8680
0
  FastErrorResult rv;
8681
0
  DOMString result;
8682
0
  self->GetTextEmphasisPosition(result, rv);
8683
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8684
0
    return false;
8685
0
  }
8686
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8687
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8688
0
    return false;
8689
0
  }
8690
0
  return true;
8691
0
}
8692
8693
MOZ_CAN_RUN_SCRIPT static bool
8694
set_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8695
0
{
8696
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textEmphasisPosition", DOM, cx);
8697
0
8698
0
  binding_detail::FakeString arg0;
8699
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8700
0
    return false;
8701
0
  }
8702
0
  Maybe<AutoCEReaction> ceReaction;
8703
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8704
0
    DocGroup* docGroup = self->GetDocGroup();
8705
0
    if (docGroup) {
8706
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8707
0
    }
8708
0
  }
8709
0
  FastErrorResult rv;
8710
0
  nsIPrincipal* subjectPrincipal;
8711
0
  {
8712
0
    JS::Realm* realm = js::GetContextRealm(cx);
8713
0
    MOZ_ASSERT(realm);
8714
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8715
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8716
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8717
0
      principal = nullptr;
8718
0
    }
8719
0
8720
0
    subjectPrincipal = principal;
8721
0
  }
8722
0
  self->SetTextEmphasisPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8723
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8724
0
    return false;
8725
0
  }
8726
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8727
0
8728
0
  return true;
8729
0
}
8730
8731
static const JSJitInfo textEmphasisPosition_getterinfo = {
8732
  { (JSJitGetterOp)get_textEmphasisPosition },
8733
  { prototypes::id::CSS2Properties },
8734
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8735
  JSJitInfo::Getter,
8736
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8737
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8738
  false,  /* isInfallible. False in setters. */
8739
  false,  /* isMovable.  Not relevant for setters. */
8740
  false, /* isEliminatable.  Not relevant for setters. */
8741
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8742
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8743
  false,  /* isTypedMethod.  Only relevant for methods. */
8744
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8745
};
8746
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8747
static_assert(0 < 1, "There is no slot for us");
8748
static const JSJitInfo textEmphasisPosition_setterinfo = {
8749
  { (JSJitGetterOp)set_textEmphasisPosition },
8750
  { prototypes::id::CSS2Properties },
8751
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8752
  JSJitInfo::Setter,
8753
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8754
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8755
  false,  /* isInfallible. False in setters. */
8756
  false,  /* isMovable.  Not relevant for setters. */
8757
  false, /* isEliminatable.  Not relevant for setters. */
8758
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8759
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8760
  false,  /* isTypedMethod.  Only relevant for methods. */
8761
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8762
};
8763
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8764
static_assert(0 < 1, "There is no slot for us");
8765
8766
MOZ_CAN_RUN_SCRIPT static bool
8767
get_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8768
0
{
8769
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textJustify", DOM, cx);
8770
0
8771
0
  FastErrorResult rv;
8772
0
  DOMString result;
8773
0
  self->GetTextJustify(result, rv);
8774
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8775
0
    return false;
8776
0
  }
8777
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8778
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8779
0
    return false;
8780
0
  }
8781
0
  return true;
8782
0
}
8783
8784
MOZ_CAN_RUN_SCRIPT static bool
8785
set_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8786
0
{
8787
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textJustify", DOM, cx);
8788
0
8789
0
  binding_detail::FakeString arg0;
8790
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8791
0
    return false;
8792
0
  }
8793
0
  Maybe<AutoCEReaction> ceReaction;
8794
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8795
0
    DocGroup* docGroup = self->GetDocGroup();
8796
0
    if (docGroup) {
8797
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8798
0
    }
8799
0
  }
8800
0
  FastErrorResult rv;
8801
0
  nsIPrincipal* subjectPrincipal;
8802
0
  {
8803
0
    JS::Realm* realm = js::GetContextRealm(cx);
8804
0
    MOZ_ASSERT(realm);
8805
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8806
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8807
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8808
0
      principal = nullptr;
8809
0
    }
8810
0
8811
0
    subjectPrincipal = principal;
8812
0
  }
8813
0
  self->SetTextJustify(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8814
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8815
0
    return false;
8816
0
  }
8817
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8818
0
8819
0
  return true;
8820
0
}
8821
8822
static const JSJitInfo textJustify_getterinfo = {
8823
  { (JSJitGetterOp)get_textJustify },
8824
  { prototypes::id::CSS2Properties },
8825
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8826
  JSJitInfo::Getter,
8827
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8828
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8829
  false,  /* isInfallible. False in setters. */
8830
  false,  /* isMovable.  Not relevant for setters. */
8831
  false, /* isEliminatable.  Not relevant for setters. */
8832
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8833
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8834
  false,  /* isTypedMethod.  Only relevant for methods. */
8835
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8836
};
8837
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8838
static_assert(0 < 1, "There is no slot for us");
8839
static const JSJitInfo textJustify_setterinfo = {
8840
  { (JSJitGetterOp)set_textJustify },
8841
  { prototypes::id::CSS2Properties },
8842
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8843
  JSJitInfo::Setter,
8844
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8845
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8846
  false,  /* isInfallible. False in setters. */
8847
  false,  /* isMovable.  Not relevant for setters. */
8848
  false, /* isEliminatable.  Not relevant for setters. */
8849
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8850
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8851
  false,  /* isTypedMethod.  Only relevant for methods. */
8852
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8853
};
8854
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8855
static_assert(0 < 1, "There is no slot for us");
8856
8857
MOZ_CAN_RUN_SCRIPT static bool
8858
get_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8859
0
{
8860
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textOrientation", DOM, cx);
8861
0
8862
0
  FastErrorResult rv;
8863
0
  DOMString result;
8864
0
  self->GetTextOrientation(result, rv);
8865
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8866
0
    return false;
8867
0
  }
8868
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8869
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8870
0
    return false;
8871
0
  }
8872
0
  return true;
8873
0
}
8874
8875
MOZ_CAN_RUN_SCRIPT static bool
8876
set_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8877
0
{
8878
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textOrientation", DOM, cx);
8879
0
8880
0
  binding_detail::FakeString arg0;
8881
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8882
0
    return false;
8883
0
  }
8884
0
  Maybe<AutoCEReaction> ceReaction;
8885
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8886
0
    DocGroup* docGroup = self->GetDocGroup();
8887
0
    if (docGroup) {
8888
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8889
0
    }
8890
0
  }
8891
0
  FastErrorResult rv;
8892
0
  nsIPrincipal* subjectPrincipal;
8893
0
  {
8894
0
    JS::Realm* realm = js::GetContextRealm(cx);
8895
0
    MOZ_ASSERT(realm);
8896
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8897
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8898
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8899
0
      principal = nullptr;
8900
0
    }
8901
0
8902
0
    subjectPrincipal = principal;
8903
0
  }
8904
0
  self->SetTextOrientation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8905
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8906
0
    return false;
8907
0
  }
8908
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8909
0
8910
0
  return true;
8911
0
}
8912
8913
static const JSJitInfo textOrientation_getterinfo = {
8914
  { (JSJitGetterOp)get_textOrientation },
8915
  { prototypes::id::CSS2Properties },
8916
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8917
  JSJitInfo::Getter,
8918
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8919
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
8920
  false,  /* isInfallible. False in setters. */
8921
  false,  /* isMovable.  Not relevant for setters. */
8922
  false, /* isEliminatable.  Not relevant for setters. */
8923
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8924
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8925
  false,  /* isTypedMethod.  Only relevant for methods. */
8926
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8927
};
8928
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8929
static_assert(0 < 1, "There is no slot for us");
8930
static const JSJitInfo textOrientation_setterinfo = {
8931
  { (JSJitGetterOp)set_textOrientation },
8932
  { prototypes::id::CSS2Properties },
8933
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
8934
  JSJitInfo::Setter,
8935
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
8936
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
8937
  false,  /* isInfallible. False in setters. */
8938
  false,  /* isMovable.  Not relevant for setters. */
8939
  false, /* isEliminatable.  Not relevant for setters. */
8940
  false, /* isAlwaysInSlot.  Only relevant for getters. */
8941
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
8942
  false,  /* isTypedMethod.  Only relevant for methods. */
8943
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
8944
};
8945
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
8946
static_assert(0 < 1, "There is no slot for us");
8947
8948
MOZ_CAN_RUN_SCRIPT static bool
8949
get_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
8950
0
{
8951
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textRendering", DOM, cx);
8952
0
8953
0
  FastErrorResult rv;
8954
0
  DOMString result;
8955
0
  self->GetTextRendering(result, rv);
8956
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8957
0
    return false;
8958
0
  }
8959
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
8960
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
8961
0
    return false;
8962
0
  }
8963
0
  return true;
8964
0
}
8965
8966
MOZ_CAN_RUN_SCRIPT static bool
8967
set_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
8968
0
{
8969
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textRendering", DOM, cx);
8970
0
8971
0
  binding_detail::FakeString arg0;
8972
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
8973
0
    return false;
8974
0
  }
8975
0
  Maybe<AutoCEReaction> ceReaction;
8976
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
8977
0
    DocGroup* docGroup = self->GetDocGroup();
8978
0
    if (docGroup) {
8979
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
8980
0
    }
8981
0
  }
8982
0
  FastErrorResult rv;
8983
0
  nsIPrincipal* subjectPrincipal;
8984
0
  {
8985
0
    JS::Realm* realm = js::GetContextRealm(cx);
8986
0
    MOZ_ASSERT(realm);
8987
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
8988
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
8989
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
8990
0
      principal = nullptr;
8991
0
    }
8992
0
8993
0
    subjectPrincipal = principal;
8994
0
  }
8995
0
  self->SetTextRendering(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
8996
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
8997
0
    return false;
8998
0
  }
8999
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9000
0
9001
0
  return true;
9002
0
}
9003
9004
static const JSJitInfo textRendering_getterinfo = {
9005
  { (JSJitGetterOp)get_textRendering },
9006
  { prototypes::id::CSS2Properties },
9007
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9008
  JSJitInfo::Getter,
9009
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9010
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9011
  false,  /* isInfallible. False in setters. */
9012
  false,  /* isMovable.  Not relevant for setters. */
9013
  false, /* isEliminatable.  Not relevant for setters. */
9014
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9015
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9016
  false,  /* isTypedMethod.  Only relevant for methods. */
9017
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9018
};
9019
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9020
static_assert(0 < 1, "There is no slot for us");
9021
static const JSJitInfo textRendering_setterinfo = {
9022
  { (JSJitGetterOp)set_textRendering },
9023
  { prototypes::id::CSS2Properties },
9024
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9025
  JSJitInfo::Setter,
9026
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9027
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9028
  false,  /* isInfallible. False in setters. */
9029
  false,  /* isMovable.  Not relevant for setters. */
9030
  false, /* isEliminatable.  Not relevant for setters. */
9031
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9032
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9033
  false,  /* isTypedMethod.  Only relevant for methods. */
9034
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9035
};
9036
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9037
static_assert(0 < 1, "There is no slot for us");
9038
9039
MOZ_CAN_RUN_SCRIPT static bool
9040
get_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9041
0
{
9042
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textTransform", DOM, cx);
9043
0
9044
0
  FastErrorResult rv;
9045
0
  DOMString result;
9046
0
  self->GetTextTransform(result, rv);
9047
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9048
0
    return false;
9049
0
  }
9050
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9051
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9052
0
    return false;
9053
0
  }
9054
0
  return true;
9055
0
}
9056
9057
MOZ_CAN_RUN_SCRIPT static bool
9058
set_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9059
0
{
9060
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textTransform", DOM, cx);
9061
0
9062
0
  binding_detail::FakeString arg0;
9063
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9064
0
    return false;
9065
0
  }
9066
0
  Maybe<AutoCEReaction> ceReaction;
9067
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9068
0
    DocGroup* docGroup = self->GetDocGroup();
9069
0
    if (docGroup) {
9070
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9071
0
    }
9072
0
  }
9073
0
  FastErrorResult rv;
9074
0
  nsIPrincipal* subjectPrincipal;
9075
0
  {
9076
0
    JS::Realm* realm = js::GetContextRealm(cx);
9077
0
    MOZ_ASSERT(realm);
9078
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9079
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9080
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9081
0
      principal = nullptr;
9082
0
    }
9083
0
9084
0
    subjectPrincipal = principal;
9085
0
  }
9086
0
  self->SetTextTransform(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9087
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9088
0
    return false;
9089
0
  }
9090
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9091
0
9092
0
  return true;
9093
0
}
9094
9095
static const JSJitInfo textTransform_getterinfo = {
9096
  { (JSJitGetterOp)get_textTransform },
9097
  { prototypes::id::CSS2Properties },
9098
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9099
  JSJitInfo::Getter,
9100
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9101
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9102
  false,  /* isInfallible. False in setters. */
9103
  false,  /* isMovable.  Not relevant for setters. */
9104
  false, /* isEliminatable.  Not relevant for setters. */
9105
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9106
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9107
  false,  /* isTypedMethod.  Only relevant for methods. */
9108
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9109
};
9110
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9111
static_assert(0 < 1, "There is no slot for us");
9112
static const JSJitInfo textTransform_setterinfo = {
9113
  { (JSJitGetterOp)set_textTransform },
9114
  { prototypes::id::CSS2Properties },
9115
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9116
  JSJitInfo::Setter,
9117
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9118
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9119
  false,  /* isInfallible. False in setters. */
9120
  false,  /* isMovable.  Not relevant for setters. */
9121
  false, /* isEliminatable.  Not relevant for setters. */
9122
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9123
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9124
  false,  /* isTypedMethod.  Only relevant for methods. */
9125
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9126
};
9127
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9128
static_assert(0 < 1, "There is no slot for us");
9129
9130
MOZ_CAN_RUN_SCRIPT static bool
9131
get_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9132
0
{
9133
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.touchAction", DOM, cx);
9134
0
9135
0
  FastErrorResult rv;
9136
0
  DOMString result;
9137
0
  self->GetTouchAction(result, rv);
9138
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9139
0
    return false;
9140
0
  }
9141
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9142
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9143
0
    return false;
9144
0
  }
9145
0
  return true;
9146
0
}
9147
9148
MOZ_CAN_RUN_SCRIPT static bool
9149
set_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9150
0
{
9151
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.touchAction", DOM, cx);
9152
0
9153
0
  binding_detail::FakeString arg0;
9154
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9155
0
    return false;
9156
0
  }
9157
0
  Maybe<AutoCEReaction> ceReaction;
9158
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9159
0
    DocGroup* docGroup = self->GetDocGroup();
9160
0
    if (docGroup) {
9161
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9162
0
    }
9163
0
  }
9164
0
  FastErrorResult rv;
9165
0
  nsIPrincipal* subjectPrincipal;
9166
0
  {
9167
0
    JS::Realm* realm = js::GetContextRealm(cx);
9168
0
    MOZ_ASSERT(realm);
9169
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9170
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9171
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9172
0
      principal = nullptr;
9173
0
    }
9174
0
9175
0
    subjectPrincipal = principal;
9176
0
  }
9177
0
  self->SetTouchAction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9178
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9179
0
    return false;
9180
0
  }
9181
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9182
0
9183
0
  return true;
9184
0
}
9185
9186
static const JSJitInfo touchAction_getterinfo = {
9187
  { (JSJitGetterOp)get_touchAction },
9188
  { prototypes::id::CSS2Properties },
9189
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9190
  JSJitInfo::Getter,
9191
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9192
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9193
  false,  /* isInfallible. False in setters. */
9194
  false,  /* isMovable.  Not relevant for setters. */
9195
  false, /* isEliminatable.  Not relevant for setters. */
9196
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9197
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9198
  false,  /* isTypedMethod.  Only relevant for methods. */
9199
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9200
};
9201
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9202
static_assert(0 < 1, "There is no slot for us");
9203
static const JSJitInfo touchAction_setterinfo = {
9204
  { (JSJitGetterOp)set_touchAction },
9205
  { prototypes::id::CSS2Properties },
9206
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9207
  JSJitInfo::Setter,
9208
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9209
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9210
  false,  /* isInfallible. False in setters. */
9211
  false,  /* isMovable.  Not relevant for setters. */
9212
  false, /* isEliminatable.  Not relevant for setters. */
9213
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9214
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9215
  false,  /* isTypedMethod.  Only relevant for methods. */
9216
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9217
};
9218
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9219
static_assert(0 < 1, "There is no slot for us");
9220
9221
MOZ_CAN_RUN_SCRIPT static bool
9222
get_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9223
0
{
9224
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transformBox", DOM, cx);
9225
0
9226
0
  FastErrorResult rv;
9227
0
  DOMString result;
9228
0
  self->GetTransformBox(result, rv);
9229
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9230
0
    return false;
9231
0
  }
9232
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9233
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9234
0
    return false;
9235
0
  }
9236
0
  return true;
9237
0
}
9238
9239
MOZ_CAN_RUN_SCRIPT static bool
9240
set_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9241
0
{
9242
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transformBox", DOM, cx);
9243
0
9244
0
  binding_detail::FakeString arg0;
9245
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9246
0
    return false;
9247
0
  }
9248
0
  Maybe<AutoCEReaction> ceReaction;
9249
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9250
0
    DocGroup* docGroup = self->GetDocGroup();
9251
0
    if (docGroup) {
9252
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9253
0
    }
9254
0
  }
9255
0
  FastErrorResult rv;
9256
0
  nsIPrincipal* subjectPrincipal;
9257
0
  {
9258
0
    JS::Realm* realm = js::GetContextRealm(cx);
9259
0
    MOZ_ASSERT(realm);
9260
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9261
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9262
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9263
0
      principal = nullptr;
9264
0
    }
9265
0
9266
0
    subjectPrincipal = principal;
9267
0
  }
9268
0
  self->SetTransformBox(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9269
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9270
0
    return false;
9271
0
  }
9272
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9273
0
9274
0
  return true;
9275
0
}
9276
9277
static const JSJitInfo transformBox_getterinfo = {
9278
  { (JSJitGetterOp)get_transformBox },
9279
  { prototypes::id::CSS2Properties },
9280
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9281
  JSJitInfo::Getter,
9282
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9283
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9284
  false,  /* isInfallible. False in setters. */
9285
  false,  /* isMovable.  Not relevant for setters. */
9286
  false, /* isEliminatable.  Not relevant for setters. */
9287
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9288
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9289
  false,  /* isTypedMethod.  Only relevant for methods. */
9290
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9291
};
9292
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9293
static_assert(0 < 1, "There is no slot for us");
9294
static const JSJitInfo transformBox_setterinfo = {
9295
  { (JSJitGetterOp)set_transformBox },
9296
  { prototypes::id::CSS2Properties },
9297
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9298
  JSJitInfo::Setter,
9299
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9300
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9301
  false,  /* isInfallible. False in setters. */
9302
  false,  /* isMovable.  Not relevant for setters. */
9303
  false, /* isEliminatable.  Not relevant for setters. */
9304
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9305
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9306
  false,  /* isTypedMethod.  Only relevant for methods. */
9307
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9308
};
9309
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9310
static_assert(0 < 1, "There is no slot for us");
9311
9312
MOZ_CAN_RUN_SCRIPT static bool
9313
get_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9314
0
{
9315
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transformStyle", DOM, cx);
9316
0
9317
0
  FastErrorResult rv;
9318
0
  DOMString result;
9319
0
  self->GetTransformStyle(result, rv);
9320
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9321
0
    return false;
9322
0
  }
9323
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9324
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9325
0
    return false;
9326
0
  }
9327
0
  return true;
9328
0
}
9329
9330
MOZ_CAN_RUN_SCRIPT static bool
9331
set_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9332
0
{
9333
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transformStyle", DOM, cx);
9334
0
9335
0
  binding_detail::FakeString arg0;
9336
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9337
0
    return false;
9338
0
  }
9339
0
  Maybe<AutoCEReaction> ceReaction;
9340
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9341
0
    DocGroup* docGroup = self->GetDocGroup();
9342
0
    if (docGroup) {
9343
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9344
0
    }
9345
0
  }
9346
0
  FastErrorResult rv;
9347
0
  nsIPrincipal* subjectPrincipal;
9348
0
  {
9349
0
    JS::Realm* realm = js::GetContextRealm(cx);
9350
0
    MOZ_ASSERT(realm);
9351
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9352
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9353
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9354
0
      principal = nullptr;
9355
0
    }
9356
0
9357
0
    subjectPrincipal = principal;
9358
0
  }
9359
0
  self->SetTransformStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9360
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9361
0
    return false;
9362
0
  }
9363
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9364
0
9365
0
  return true;
9366
0
}
9367
9368
static const JSJitInfo transformStyle_getterinfo = {
9369
  { (JSJitGetterOp)get_transformStyle },
9370
  { prototypes::id::CSS2Properties },
9371
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9372
  JSJitInfo::Getter,
9373
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9374
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9375
  false,  /* isInfallible. False in setters. */
9376
  false,  /* isMovable.  Not relevant for setters. */
9377
  false, /* isEliminatable.  Not relevant for setters. */
9378
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9379
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9380
  false,  /* isTypedMethod.  Only relevant for methods. */
9381
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9382
};
9383
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9384
static_assert(0 < 1, "There is no slot for us");
9385
static const JSJitInfo transformStyle_setterinfo = {
9386
  { (JSJitGetterOp)set_transformStyle },
9387
  { prototypes::id::CSS2Properties },
9388
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9389
  JSJitInfo::Setter,
9390
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9391
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9392
  false,  /* isInfallible. False in setters. */
9393
  false,  /* isMovable.  Not relevant for setters. */
9394
  false, /* isEliminatable.  Not relevant for setters. */
9395
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9396
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9397
  false,  /* isTypedMethod.  Only relevant for methods. */
9398
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9399
};
9400
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9401
static_assert(0 < 1, "There is no slot for us");
9402
9403
MOZ_CAN_RUN_SCRIPT static bool
9404
get_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9405
0
{
9406
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.unicodeBidi", DOM, cx);
9407
0
9408
0
  FastErrorResult rv;
9409
0
  DOMString result;
9410
0
  self->GetUnicodeBidi(result, rv);
9411
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9412
0
    return false;
9413
0
  }
9414
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9415
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9416
0
    return false;
9417
0
  }
9418
0
  return true;
9419
0
}
9420
9421
MOZ_CAN_RUN_SCRIPT static bool
9422
set_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9423
0
{
9424
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.unicodeBidi", DOM, cx);
9425
0
9426
0
  binding_detail::FakeString arg0;
9427
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9428
0
    return false;
9429
0
  }
9430
0
  Maybe<AutoCEReaction> ceReaction;
9431
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9432
0
    DocGroup* docGroup = self->GetDocGroup();
9433
0
    if (docGroup) {
9434
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9435
0
    }
9436
0
  }
9437
0
  FastErrorResult rv;
9438
0
  nsIPrincipal* subjectPrincipal;
9439
0
  {
9440
0
    JS::Realm* realm = js::GetContextRealm(cx);
9441
0
    MOZ_ASSERT(realm);
9442
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9443
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9444
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9445
0
      principal = nullptr;
9446
0
    }
9447
0
9448
0
    subjectPrincipal = principal;
9449
0
  }
9450
0
  self->SetUnicodeBidi(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9451
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9452
0
    return false;
9453
0
  }
9454
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9455
0
9456
0
  return true;
9457
0
}
9458
9459
static const JSJitInfo unicodeBidi_getterinfo = {
9460
  { (JSJitGetterOp)get_unicodeBidi },
9461
  { prototypes::id::CSS2Properties },
9462
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9463
  JSJitInfo::Getter,
9464
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9465
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9466
  false,  /* isInfallible. False in setters. */
9467
  false,  /* isMovable.  Not relevant for setters. */
9468
  false, /* isEliminatable.  Not relevant for setters. */
9469
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9470
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9471
  false,  /* isTypedMethod.  Only relevant for methods. */
9472
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9473
};
9474
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9475
static_assert(0 < 1, "There is no slot for us");
9476
static const JSJitInfo unicodeBidi_setterinfo = {
9477
  { (JSJitGetterOp)set_unicodeBidi },
9478
  { prototypes::id::CSS2Properties },
9479
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9480
  JSJitInfo::Setter,
9481
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9482
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9483
  false,  /* isInfallible. False in setters. */
9484
  false,  /* isMovable.  Not relevant for setters. */
9485
  false, /* isEliminatable.  Not relevant for setters. */
9486
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9487
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9488
  false,  /* isTypedMethod.  Only relevant for methods. */
9489
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9490
};
9491
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9492
static_assert(0 < 1, "There is no slot for us");
9493
9494
MOZ_CAN_RUN_SCRIPT static bool
9495
get_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9496
0
{
9497
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.vectorEffect", DOM, cx);
9498
0
9499
0
  FastErrorResult rv;
9500
0
  DOMString result;
9501
0
  self->GetVectorEffect(result, rv);
9502
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9503
0
    return false;
9504
0
  }
9505
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9506
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9507
0
    return false;
9508
0
  }
9509
0
  return true;
9510
0
}
9511
9512
MOZ_CAN_RUN_SCRIPT static bool
9513
set_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9514
0
{
9515
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.vectorEffect", DOM, cx);
9516
0
9517
0
  binding_detail::FakeString arg0;
9518
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9519
0
    return false;
9520
0
  }
9521
0
  Maybe<AutoCEReaction> ceReaction;
9522
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9523
0
    DocGroup* docGroup = self->GetDocGroup();
9524
0
    if (docGroup) {
9525
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9526
0
    }
9527
0
  }
9528
0
  FastErrorResult rv;
9529
0
  nsIPrincipal* subjectPrincipal;
9530
0
  {
9531
0
    JS::Realm* realm = js::GetContextRealm(cx);
9532
0
    MOZ_ASSERT(realm);
9533
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9534
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9535
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9536
0
      principal = nullptr;
9537
0
    }
9538
0
9539
0
    subjectPrincipal = principal;
9540
0
  }
9541
0
  self->SetVectorEffect(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9542
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9543
0
    return false;
9544
0
  }
9545
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9546
0
9547
0
  return true;
9548
0
}
9549
9550
static const JSJitInfo vectorEffect_getterinfo = {
9551
  { (JSJitGetterOp)get_vectorEffect },
9552
  { prototypes::id::CSS2Properties },
9553
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9554
  JSJitInfo::Getter,
9555
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9556
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9557
  false,  /* isInfallible. False in setters. */
9558
  false,  /* isMovable.  Not relevant for setters. */
9559
  false, /* isEliminatable.  Not relevant for setters. */
9560
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9561
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9562
  false,  /* isTypedMethod.  Only relevant for methods. */
9563
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9564
};
9565
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9566
static_assert(0 < 1, "There is no slot for us");
9567
static const JSJitInfo vectorEffect_setterinfo = {
9568
  { (JSJitGetterOp)set_vectorEffect },
9569
  { prototypes::id::CSS2Properties },
9570
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9571
  JSJitInfo::Setter,
9572
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9573
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9574
  false,  /* isInfallible. False in setters. */
9575
  false,  /* isMovable.  Not relevant for setters. */
9576
  false, /* isEliminatable.  Not relevant for setters. */
9577
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9578
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9579
  false,  /* isTypedMethod.  Only relevant for methods. */
9580
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9581
};
9582
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9583
static_assert(0 < 1, "There is no slot for us");
9584
9585
MOZ_CAN_RUN_SCRIPT static bool
9586
get_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9587
0
{
9588
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.visibility", DOM, cx);
9589
0
9590
0
  FastErrorResult rv;
9591
0
  DOMString result;
9592
0
  self->GetVisibility(result, rv);
9593
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9594
0
    return false;
9595
0
  }
9596
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9597
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9598
0
    return false;
9599
0
  }
9600
0
  return true;
9601
0
}
9602
9603
MOZ_CAN_RUN_SCRIPT static bool
9604
set_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9605
0
{
9606
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.visibility", DOM, cx);
9607
0
9608
0
  binding_detail::FakeString arg0;
9609
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9610
0
    return false;
9611
0
  }
9612
0
  Maybe<AutoCEReaction> ceReaction;
9613
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9614
0
    DocGroup* docGroup = self->GetDocGroup();
9615
0
    if (docGroup) {
9616
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9617
0
    }
9618
0
  }
9619
0
  FastErrorResult rv;
9620
0
  nsIPrincipal* subjectPrincipal;
9621
0
  {
9622
0
    JS::Realm* realm = js::GetContextRealm(cx);
9623
0
    MOZ_ASSERT(realm);
9624
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9625
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9626
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9627
0
      principal = nullptr;
9628
0
    }
9629
0
9630
0
    subjectPrincipal = principal;
9631
0
  }
9632
0
  self->SetVisibility(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9633
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9634
0
    return false;
9635
0
  }
9636
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9637
0
9638
0
  return true;
9639
0
}
9640
9641
static const JSJitInfo visibility_getterinfo = {
9642
  { (JSJitGetterOp)get_visibility },
9643
  { prototypes::id::CSS2Properties },
9644
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9645
  JSJitInfo::Getter,
9646
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9647
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9648
  false,  /* isInfallible. False in setters. */
9649
  false,  /* isMovable.  Not relevant for setters. */
9650
  false, /* isEliminatable.  Not relevant for setters. */
9651
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9652
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9653
  false,  /* isTypedMethod.  Only relevant for methods. */
9654
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9655
};
9656
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9657
static_assert(0 < 1, "There is no slot for us");
9658
static const JSJitInfo visibility_setterinfo = {
9659
  { (JSJitGetterOp)set_visibility },
9660
  { prototypes::id::CSS2Properties },
9661
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9662
  JSJitInfo::Setter,
9663
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9664
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9665
  false,  /* isInfallible. False in setters. */
9666
  false,  /* isMovable.  Not relevant for setters. */
9667
  false, /* isEliminatable.  Not relevant for setters. */
9668
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9669
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9670
  false,  /* isTypedMethod.  Only relevant for methods. */
9671
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9672
};
9673
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9674
static_assert(0 < 1, "There is no slot for us");
9675
9676
MOZ_CAN_RUN_SCRIPT static bool
9677
get_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9678
0
{
9679
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.whiteSpace", DOM, cx);
9680
0
9681
0
  FastErrorResult rv;
9682
0
  DOMString result;
9683
0
  self->GetWhiteSpace(result, rv);
9684
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9685
0
    return false;
9686
0
  }
9687
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9688
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9689
0
    return false;
9690
0
  }
9691
0
  return true;
9692
0
}
9693
9694
MOZ_CAN_RUN_SCRIPT static bool
9695
set_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9696
0
{
9697
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.whiteSpace", DOM, cx);
9698
0
9699
0
  binding_detail::FakeString arg0;
9700
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9701
0
    return false;
9702
0
  }
9703
0
  Maybe<AutoCEReaction> ceReaction;
9704
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9705
0
    DocGroup* docGroup = self->GetDocGroup();
9706
0
    if (docGroup) {
9707
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9708
0
    }
9709
0
  }
9710
0
  FastErrorResult rv;
9711
0
  nsIPrincipal* subjectPrincipal;
9712
0
  {
9713
0
    JS::Realm* realm = js::GetContextRealm(cx);
9714
0
    MOZ_ASSERT(realm);
9715
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9716
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9717
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9718
0
      principal = nullptr;
9719
0
    }
9720
0
9721
0
    subjectPrincipal = principal;
9722
0
  }
9723
0
  self->SetWhiteSpace(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9724
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9725
0
    return false;
9726
0
  }
9727
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9728
0
9729
0
  return true;
9730
0
}
9731
9732
static const JSJitInfo whiteSpace_getterinfo = {
9733
  { (JSJitGetterOp)get_whiteSpace },
9734
  { prototypes::id::CSS2Properties },
9735
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9736
  JSJitInfo::Getter,
9737
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9738
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9739
  false,  /* isInfallible. False in setters. */
9740
  false,  /* isMovable.  Not relevant for setters. */
9741
  false, /* isEliminatable.  Not relevant for setters. */
9742
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9743
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9744
  false,  /* isTypedMethod.  Only relevant for methods. */
9745
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9746
};
9747
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9748
static_assert(0 < 1, "There is no slot for us");
9749
static const JSJitInfo whiteSpace_setterinfo = {
9750
  { (JSJitGetterOp)set_whiteSpace },
9751
  { prototypes::id::CSS2Properties },
9752
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9753
  JSJitInfo::Setter,
9754
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9755
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9756
  false,  /* isInfallible. False in setters. */
9757
  false,  /* isMovable.  Not relevant for setters. */
9758
  false, /* isEliminatable.  Not relevant for setters. */
9759
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9760
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9761
  false,  /* isTypedMethod.  Only relevant for methods. */
9762
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9763
};
9764
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9765
static_assert(0 < 1, "There is no slot for us");
9766
9767
MOZ_CAN_RUN_SCRIPT static bool
9768
get_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9769
0
{
9770
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.wordBreak", DOM, cx);
9771
0
9772
0
  FastErrorResult rv;
9773
0
  DOMString result;
9774
0
  self->GetWordBreak(result, rv);
9775
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9776
0
    return false;
9777
0
  }
9778
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9779
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9780
0
    return false;
9781
0
  }
9782
0
  return true;
9783
0
}
9784
9785
MOZ_CAN_RUN_SCRIPT static bool
9786
set_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9787
0
{
9788
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.wordBreak", DOM, cx);
9789
0
9790
0
  binding_detail::FakeString arg0;
9791
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9792
0
    return false;
9793
0
  }
9794
0
  Maybe<AutoCEReaction> ceReaction;
9795
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9796
0
    DocGroup* docGroup = self->GetDocGroup();
9797
0
    if (docGroup) {
9798
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9799
0
    }
9800
0
  }
9801
0
  FastErrorResult rv;
9802
0
  nsIPrincipal* subjectPrincipal;
9803
0
  {
9804
0
    JS::Realm* realm = js::GetContextRealm(cx);
9805
0
    MOZ_ASSERT(realm);
9806
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9807
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9808
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9809
0
      principal = nullptr;
9810
0
    }
9811
0
9812
0
    subjectPrincipal = principal;
9813
0
  }
9814
0
  self->SetWordBreak(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9815
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9816
0
    return false;
9817
0
  }
9818
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9819
0
9820
0
  return true;
9821
0
}
9822
9823
static const JSJitInfo wordBreak_getterinfo = {
9824
  { (JSJitGetterOp)get_wordBreak },
9825
  { prototypes::id::CSS2Properties },
9826
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9827
  JSJitInfo::Getter,
9828
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9829
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9830
  false,  /* isInfallible. False in setters. */
9831
  false,  /* isMovable.  Not relevant for setters. */
9832
  false, /* isEliminatable.  Not relevant for setters. */
9833
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9834
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9835
  false,  /* isTypedMethod.  Only relevant for methods. */
9836
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9837
};
9838
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9839
static_assert(0 < 1, "There is no slot for us");
9840
static const JSJitInfo wordBreak_setterinfo = {
9841
  { (JSJitGetterOp)set_wordBreak },
9842
  { prototypes::id::CSS2Properties },
9843
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9844
  JSJitInfo::Setter,
9845
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9846
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9847
  false,  /* isInfallible. False in setters. */
9848
  false,  /* isMovable.  Not relevant for setters. */
9849
  false, /* isEliminatable.  Not relevant for setters. */
9850
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9851
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9852
  false,  /* isTypedMethod.  Only relevant for methods. */
9853
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9854
};
9855
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9856
static_assert(0 < 1, "There is no slot for us");
9857
9858
MOZ_CAN_RUN_SCRIPT static bool
9859
get_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9860
0
{
9861
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.writingMode", DOM, cx);
9862
0
9863
0
  FastErrorResult rv;
9864
0
  DOMString result;
9865
0
  self->GetWritingMode(result, rv);
9866
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9867
0
    return false;
9868
0
  }
9869
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9870
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9871
0
    return false;
9872
0
  }
9873
0
  return true;
9874
0
}
9875
9876
MOZ_CAN_RUN_SCRIPT static bool
9877
set_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9878
0
{
9879
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.writingMode", DOM, cx);
9880
0
9881
0
  binding_detail::FakeString arg0;
9882
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9883
0
    return false;
9884
0
  }
9885
0
  Maybe<AutoCEReaction> ceReaction;
9886
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9887
0
    DocGroup* docGroup = self->GetDocGroup();
9888
0
    if (docGroup) {
9889
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9890
0
    }
9891
0
  }
9892
0
  FastErrorResult rv;
9893
0
  nsIPrincipal* subjectPrincipal;
9894
0
  {
9895
0
    JS::Realm* realm = js::GetContextRealm(cx);
9896
0
    MOZ_ASSERT(realm);
9897
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9898
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9899
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9900
0
      principal = nullptr;
9901
0
    }
9902
0
9903
0
    subjectPrincipal = principal;
9904
0
  }
9905
0
  self->SetWritingMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9906
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9907
0
    return false;
9908
0
  }
9909
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9910
0
9911
0
  return true;
9912
0
}
9913
9914
static const JSJitInfo writingMode_getterinfo = {
9915
  { (JSJitGetterOp)get_writingMode },
9916
  { prototypes::id::CSS2Properties },
9917
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9918
  JSJitInfo::Getter,
9919
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9920
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
9921
  false,  /* isInfallible. False in setters. */
9922
  false,  /* isMovable.  Not relevant for setters. */
9923
  false, /* isEliminatable.  Not relevant for setters. */
9924
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9925
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9926
  false,  /* isTypedMethod.  Only relevant for methods. */
9927
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9928
};
9929
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9930
static_assert(0 < 1, "There is no slot for us");
9931
static const JSJitInfo writingMode_setterinfo = {
9932
  { (JSJitGetterOp)set_writingMode },
9933
  { prototypes::id::CSS2Properties },
9934
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
9935
  JSJitInfo::Setter,
9936
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
9937
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
9938
  false,  /* isInfallible. False in setters. */
9939
  false,  /* isMovable.  Not relevant for setters. */
9940
  false, /* isEliminatable.  Not relevant for setters. */
9941
  false, /* isAlwaysInSlot.  Only relevant for getters. */
9942
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
9943
  false,  /* isTypedMethod.  Only relevant for methods. */
9944
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
9945
};
9946
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
9947
static_assert(0 < 1, "There is no slot for us");
9948
9949
MOZ_CAN_RUN_SCRIPT static bool
9950
get_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
9951
0
{
9952
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.zIndex", DOM, cx);
9953
0
9954
0
  FastErrorResult rv;
9955
0
  DOMString result;
9956
0
  self->GetZIndex(result, rv);
9957
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9958
0
    return false;
9959
0
  }
9960
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
9961
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
9962
0
    return false;
9963
0
  }
9964
0
  return true;
9965
0
}
9966
9967
MOZ_CAN_RUN_SCRIPT static bool
9968
set_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
9969
0
{
9970
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.zIndex", DOM, cx);
9971
0
9972
0
  binding_detail::FakeString arg0;
9973
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
9974
0
    return false;
9975
0
  }
9976
0
  Maybe<AutoCEReaction> ceReaction;
9977
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
9978
0
    DocGroup* docGroup = self->GetDocGroup();
9979
0
    if (docGroup) {
9980
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
9981
0
    }
9982
0
  }
9983
0
  FastErrorResult rv;
9984
0
  nsIPrincipal* subjectPrincipal;
9985
0
  {
9986
0
    JS::Realm* realm = js::GetContextRealm(cx);
9987
0
    MOZ_ASSERT(realm);
9988
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
9989
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
9990
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
9991
0
      principal = nullptr;
9992
0
    }
9993
0
9994
0
    subjectPrincipal = principal;
9995
0
  }
9996
0
  self->SetZIndex(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
9997
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
9998
0
    return false;
9999
0
  }
10000
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10001
0
10002
0
  return true;
10003
0
}
10004
10005
static const JSJitInfo zIndex_getterinfo = {
10006
  { (JSJitGetterOp)get_zIndex },
10007
  { prototypes::id::CSS2Properties },
10008
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10009
  JSJitInfo::Getter,
10010
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10011
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10012
  false,  /* isInfallible. False in setters. */
10013
  false,  /* isMovable.  Not relevant for setters. */
10014
  false, /* isEliminatable.  Not relevant for setters. */
10015
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10016
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10017
  false,  /* isTypedMethod.  Only relevant for methods. */
10018
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10019
};
10020
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10021
static_assert(0 < 1, "There is no slot for us");
10022
static const JSJitInfo zIndex_setterinfo = {
10023
  { (JSJitGetterOp)set_zIndex },
10024
  { prototypes::id::CSS2Properties },
10025
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10026
  JSJitInfo::Setter,
10027
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10028
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10029
  false,  /* isInfallible. False in setters. */
10030
  false,  /* isMovable.  Not relevant for setters. */
10031
  false, /* isEliminatable.  Not relevant for setters. */
10032
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10033
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10034
  false,  /* isTypedMethod.  Only relevant for methods. */
10035
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10036
};
10037
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10038
static_assert(0 < 1, "There is no slot for us");
10039
10040
MOZ_CAN_RUN_SCRIPT static bool
10041
get_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10042
0
{
10043
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxOrdinalGroup", DOM, cx);
10044
0
10045
0
  FastErrorResult rv;
10046
0
  DOMString result;
10047
0
  self->GetMozBoxOrdinalGroup(result, rv);
10048
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10049
0
    return false;
10050
0
  }
10051
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10052
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10053
0
    return false;
10054
0
  }
10055
0
  return true;
10056
0
}
10057
10058
MOZ_CAN_RUN_SCRIPT static bool
10059
set_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10060
0
{
10061
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxOrdinalGroup", DOM, cx);
10062
0
10063
0
  binding_detail::FakeString arg0;
10064
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10065
0
    return false;
10066
0
  }
10067
0
  Maybe<AutoCEReaction> ceReaction;
10068
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10069
0
    DocGroup* docGroup = self->GetDocGroup();
10070
0
    if (docGroup) {
10071
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10072
0
    }
10073
0
  }
10074
0
  FastErrorResult rv;
10075
0
  nsIPrincipal* subjectPrincipal;
10076
0
  {
10077
0
    JS::Realm* realm = js::GetContextRealm(cx);
10078
0
    MOZ_ASSERT(realm);
10079
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10080
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10081
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10082
0
      principal = nullptr;
10083
0
    }
10084
0
10085
0
    subjectPrincipal = principal;
10086
0
  }
10087
0
  self->SetMozBoxOrdinalGroup(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10088
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10089
0
    return false;
10090
0
  }
10091
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10092
0
10093
0
  return true;
10094
0
}
10095
10096
static const JSJitInfo MozBoxOrdinalGroup_getterinfo = {
10097
  { (JSJitGetterOp)get_MozBoxOrdinalGroup },
10098
  { prototypes::id::CSS2Properties },
10099
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10100
  JSJitInfo::Getter,
10101
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10102
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10103
  false,  /* isInfallible. False in setters. */
10104
  false,  /* isMovable.  Not relevant for setters. */
10105
  false, /* isEliminatable.  Not relevant for setters. */
10106
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10107
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10108
  false,  /* isTypedMethod.  Only relevant for methods. */
10109
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10110
};
10111
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10112
static_assert(0 < 1, "There is no slot for us");
10113
static const JSJitInfo MozBoxOrdinalGroup_setterinfo = {
10114
  { (JSJitGetterOp)set_MozBoxOrdinalGroup },
10115
  { prototypes::id::CSS2Properties },
10116
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10117
  JSJitInfo::Setter,
10118
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10119
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10120
  false,  /* isInfallible. False in setters. */
10121
  false,  /* isMovable.  Not relevant for setters. */
10122
  false, /* isEliminatable.  Not relevant for setters. */
10123
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10124
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10125
  false,  /* isTypedMethod.  Only relevant for methods. */
10126
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10127
};
10128
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10129
static_assert(0 < 1, "There is no slot for us");
10130
10131
MOZ_CAN_RUN_SCRIPT static bool
10132
get_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10133
0
{
10134
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.order", DOM, cx);
10135
0
10136
0
  FastErrorResult rv;
10137
0
  DOMString result;
10138
0
  self->GetOrder(result, rv);
10139
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10140
0
    return false;
10141
0
  }
10142
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10143
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10144
0
    return false;
10145
0
  }
10146
0
  return true;
10147
0
}
10148
10149
MOZ_CAN_RUN_SCRIPT static bool
10150
set_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10151
0
{
10152
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.order", DOM, cx);
10153
0
10154
0
  binding_detail::FakeString arg0;
10155
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10156
0
    return false;
10157
0
  }
10158
0
  Maybe<AutoCEReaction> ceReaction;
10159
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10160
0
    DocGroup* docGroup = self->GetDocGroup();
10161
0
    if (docGroup) {
10162
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10163
0
    }
10164
0
  }
10165
0
  FastErrorResult rv;
10166
0
  nsIPrincipal* subjectPrincipal;
10167
0
  {
10168
0
    JS::Realm* realm = js::GetContextRealm(cx);
10169
0
    MOZ_ASSERT(realm);
10170
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10171
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10172
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10173
0
      principal = nullptr;
10174
0
    }
10175
0
10176
0
    subjectPrincipal = principal;
10177
0
  }
10178
0
  self->SetOrder(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10179
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10180
0
    return false;
10181
0
  }
10182
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10183
0
10184
0
  return true;
10185
0
}
10186
10187
static const JSJitInfo order_getterinfo = {
10188
  { (JSJitGetterOp)get_order },
10189
  { prototypes::id::CSS2Properties },
10190
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10191
  JSJitInfo::Getter,
10192
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10193
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10194
  false,  /* isInfallible. False in setters. */
10195
  false,  /* isMovable.  Not relevant for setters. */
10196
  false, /* isEliminatable.  Not relevant for setters. */
10197
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10198
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10199
  false,  /* isTypedMethod.  Only relevant for methods. */
10200
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10201
};
10202
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10203
static_assert(0 < 1, "There is no slot for us");
10204
static const JSJitInfo order_setterinfo = {
10205
  { (JSJitGetterOp)set_order },
10206
  { prototypes::id::CSS2Properties },
10207
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10208
  JSJitInfo::Setter,
10209
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10210
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10211
  false,  /* isInfallible. False in setters. */
10212
  false,  /* isMovable.  Not relevant for setters. */
10213
  false, /* isEliminatable.  Not relevant for setters. */
10214
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10215
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10216
  false,  /* isTypedMethod.  Only relevant for methods. */
10217
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10218
};
10219
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10220
static_assert(0 < 1, "There is no slot for us");
10221
10222
MOZ_CAN_RUN_SCRIPT static bool
10223
get_overflowClipBoxBlock(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10224
0
{
10225
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowClipBoxBlock", DOM, cx);
10226
0
10227
0
  FastErrorResult rv;
10228
0
  DOMString result;
10229
0
  self->GetOverflowClipBoxBlock(result, rv);
10230
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10231
0
    return false;
10232
0
  }
10233
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10234
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10235
0
    return false;
10236
0
  }
10237
0
  return true;
10238
0
}
10239
10240
MOZ_CAN_RUN_SCRIPT static bool
10241
set_overflowClipBoxBlock(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10242
0
{
10243
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowClipBoxBlock", DOM, cx);
10244
0
10245
0
  binding_detail::FakeString arg0;
10246
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10247
0
    return false;
10248
0
  }
10249
0
  Maybe<AutoCEReaction> ceReaction;
10250
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10251
0
    DocGroup* docGroup = self->GetDocGroup();
10252
0
    if (docGroup) {
10253
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10254
0
    }
10255
0
  }
10256
0
  FastErrorResult rv;
10257
0
  nsIPrincipal* subjectPrincipal;
10258
0
  {
10259
0
    JS::Realm* realm = js::GetContextRealm(cx);
10260
0
    MOZ_ASSERT(realm);
10261
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10262
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10263
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10264
0
      principal = nullptr;
10265
0
    }
10266
0
10267
0
    subjectPrincipal = principal;
10268
0
  }
10269
0
  self->SetOverflowClipBoxBlock(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10270
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10271
0
    return false;
10272
0
  }
10273
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10274
0
10275
0
  return true;
10276
0
}
10277
10278
static const JSJitInfo overflowClipBoxBlock_getterinfo = {
10279
  { (JSJitGetterOp)get_overflowClipBoxBlock },
10280
  { prototypes::id::CSS2Properties },
10281
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10282
  JSJitInfo::Getter,
10283
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10284
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10285
  false,  /* isInfallible. False in setters. */
10286
  false,  /* isMovable.  Not relevant for setters. */
10287
  false, /* isEliminatable.  Not relevant for setters. */
10288
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10289
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10290
  false,  /* isTypedMethod.  Only relevant for methods. */
10291
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10292
};
10293
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10294
static_assert(0 < 1, "There is no slot for us");
10295
static const JSJitInfo overflowClipBoxBlock_setterinfo = {
10296
  { (JSJitGetterOp)set_overflowClipBoxBlock },
10297
  { prototypes::id::CSS2Properties },
10298
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10299
  JSJitInfo::Setter,
10300
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10301
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10302
  false,  /* isInfallible. False in setters. */
10303
  false,  /* isMovable.  Not relevant for setters. */
10304
  false, /* isEliminatable.  Not relevant for setters. */
10305
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10306
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10307
  false,  /* isTypedMethod.  Only relevant for methods. */
10308
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10309
};
10310
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10311
static_assert(0 < 1, "There is no slot for us");
10312
10313
MOZ_CAN_RUN_SCRIPT static bool
10314
get_overflowClipBoxInline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10315
0
{
10316
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowClipBoxInline", DOM, cx);
10317
0
10318
0
  FastErrorResult rv;
10319
0
  DOMString result;
10320
0
  self->GetOverflowClipBoxInline(result, rv);
10321
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10322
0
    return false;
10323
0
  }
10324
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10325
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10326
0
    return false;
10327
0
  }
10328
0
  return true;
10329
0
}
10330
10331
MOZ_CAN_RUN_SCRIPT static bool
10332
set_overflowClipBoxInline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10333
0
{
10334
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowClipBoxInline", DOM, cx);
10335
0
10336
0
  binding_detail::FakeString arg0;
10337
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10338
0
    return false;
10339
0
  }
10340
0
  Maybe<AutoCEReaction> ceReaction;
10341
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10342
0
    DocGroup* docGroup = self->GetDocGroup();
10343
0
    if (docGroup) {
10344
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10345
0
    }
10346
0
  }
10347
0
  FastErrorResult rv;
10348
0
  nsIPrincipal* subjectPrincipal;
10349
0
  {
10350
0
    JS::Realm* realm = js::GetContextRealm(cx);
10351
0
    MOZ_ASSERT(realm);
10352
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10353
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10354
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10355
0
      principal = nullptr;
10356
0
    }
10357
0
10358
0
    subjectPrincipal = principal;
10359
0
  }
10360
0
  self->SetOverflowClipBoxInline(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10361
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10362
0
    return false;
10363
0
  }
10364
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10365
0
10366
0
  return true;
10367
0
}
10368
10369
static const JSJitInfo overflowClipBoxInline_getterinfo = {
10370
  { (JSJitGetterOp)get_overflowClipBoxInline },
10371
  { prototypes::id::CSS2Properties },
10372
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10373
  JSJitInfo::Getter,
10374
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10375
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10376
  false,  /* isInfallible. False in setters. */
10377
  false,  /* isMovable.  Not relevant for setters. */
10378
  false, /* isEliminatable.  Not relevant for setters. */
10379
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10380
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10381
  false,  /* isTypedMethod.  Only relevant for methods. */
10382
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10383
};
10384
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10385
static_assert(0 < 1, "There is no slot for us");
10386
static const JSJitInfo overflowClipBoxInline_setterinfo = {
10387
  { (JSJitGetterOp)set_overflowClipBoxInline },
10388
  { prototypes::id::CSS2Properties },
10389
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10390
  JSJitInfo::Setter,
10391
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10392
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10393
  false,  /* isInfallible. False in setters. */
10394
  false,  /* isMovable.  Not relevant for setters. */
10395
  false, /* isEliminatable.  Not relevant for setters. */
10396
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10397
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10398
  false,  /* isTypedMethod.  Only relevant for methods. */
10399
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10400
};
10401
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10402
static_assert(0 < 1, "There is no slot for us");
10403
10404
MOZ_CAN_RUN_SCRIPT static bool
10405
get_overscrollBehaviorX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10406
0
{
10407
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overscrollBehaviorX", DOM, cx);
10408
0
10409
0
  FastErrorResult rv;
10410
0
  DOMString result;
10411
0
  self->GetOverscrollBehaviorX(result, rv);
10412
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10413
0
    return false;
10414
0
  }
10415
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10416
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10417
0
    return false;
10418
0
  }
10419
0
  return true;
10420
0
}
10421
10422
MOZ_CAN_RUN_SCRIPT static bool
10423
set_overscrollBehaviorX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10424
0
{
10425
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overscrollBehaviorX", DOM, cx);
10426
0
10427
0
  binding_detail::FakeString arg0;
10428
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10429
0
    return false;
10430
0
  }
10431
0
  Maybe<AutoCEReaction> ceReaction;
10432
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10433
0
    DocGroup* docGroup = self->GetDocGroup();
10434
0
    if (docGroup) {
10435
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10436
0
    }
10437
0
  }
10438
0
  FastErrorResult rv;
10439
0
  nsIPrincipal* subjectPrincipal;
10440
0
  {
10441
0
    JS::Realm* realm = js::GetContextRealm(cx);
10442
0
    MOZ_ASSERT(realm);
10443
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10444
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10445
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10446
0
      principal = nullptr;
10447
0
    }
10448
0
10449
0
    subjectPrincipal = principal;
10450
0
  }
10451
0
  self->SetOverscrollBehaviorX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10452
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10453
0
    return false;
10454
0
  }
10455
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10456
0
10457
0
  return true;
10458
0
}
10459
10460
static const JSJitInfo overscrollBehaviorX_getterinfo = {
10461
  { (JSJitGetterOp)get_overscrollBehaviorX },
10462
  { prototypes::id::CSS2Properties },
10463
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10464
  JSJitInfo::Getter,
10465
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10466
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10467
  false,  /* isInfallible. False in setters. */
10468
  false,  /* isMovable.  Not relevant for setters. */
10469
  false, /* isEliminatable.  Not relevant for setters. */
10470
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10471
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10472
  false,  /* isTypedMethod.  Only relevant for methods. */
10473
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10474
};
10475
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10476
static_assert(0 < 1, "There is no slot for us");
10477
static const JSJitInfo overscrollBehaviorX_setterinfo = {
10478
  { (JSJitGetterOp)set_overscrollBehaviorX },
10479
  { prototypes::id::CSS2Properties },
10480
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10481
  JSJitInfo::Setter,
10482
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10483
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10484
  false,  /* isInfallible. False in setters. */
10485
  false,  /* isMovable.  Not relevant for setters. */
10486
  false, /* isEliminatable.  Not relevant for setters. */
10487
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10488
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10489
  false,  /* isTypedMethod.  Only relevant for methods. */
10490
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10491
};
10492
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10493
static_assert(0 < 1, "There is no slot for us");
10494
10495
MOZ_CAN_RUN_SCRIPT static bool
10496
get_overscrollBehaviorY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10497
0
{
10498
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overscrollBehaviorY", DOM, cx);
10499
0
10500
0
  FastErrorResult rv;
10501
0
  DOMString result;
10502
0
  self->GetOverscrollBehaviorY(result, rv);
10503
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10504
0
    return false;
10505
0
  }
10506
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10507
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10508
0
    return false;
10509
0
  }
10510
0
  return true;
10511
0
}
10512
10513
MOZ_CAN_RUN_SCRIPT static bool
10514
set_overscrollBehaviorY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10515
0
{
10516
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overscrollBehaviorY", DOM, cx);
10517
0
10518
0
  binding_detail::FakeString arg0;
10519
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10520
0
    return false;
10521
0
  }
10522
0
  Maybe<AutoCEReaction> ceReaction;
10523
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10524
0
    DocGroup* docGroup = self->GetDocGroup();
10525
0
    if (docGroup) {
10526
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10527
0
    }
10528
0
  }
10529
0
  FastErrorResult rv;
10530
0
  nsIPrincipal* subjectPrincipal;
10531
0
  {
10532
0
    JS::Realm* realm = js::GetContextRealm(cx);
10533
0
    MOZ_ASSERT(realm);
10534
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10535
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10536
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10537
0
      principal = nullptr;
10538
0
    }
10539
0
10540
0
    subjectPrincipal = principal;
10541
0
  }
10542
0
  self->SetOverscrollBehaviorY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10543
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10544
0
    return false;
10545
0
  }
10546
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10547
0
10548
0
  return true;
10549
0
}
10550
10551
static const JSJitInfo overscrollBehaviorY_getterinfo = {
10552
  { (JSJitGetterOp)get_overscrollBehaviorY },
10553
  { prototypes::id::CSS2Properties },
10554
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10555
  JSJitInfo::Getter,
10556
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10557
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10558
  false,  /* isInfallible. False in setters. */
10559
  false,  /* isMovable.  Not relevant for setters. */
10560
  false, /* isEliminatable.  Not relevant for setters. */
10561
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10562
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10563
  false,  /* isTypedMethod.  Only relevant for methods. */
10564
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10565
};
10566
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10567
static_assert(0 < 1, "There is no slot for us");
10568
static const JSJitInfo overscrollBehaviorY_setterinfo = {
10569
  { (JSJitGetterOp)set_overscrollBehaviorY },
10570
  { prototypes::id::CSS2Properties },
10571
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10572
  JSJitInfo::Setter,
10573
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10574
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10575
  false,  /* isInfallible. False in setters. */
10576
  false,  /* isMovable.  Not relevant for setters. */
10577
  false, /* isEliminatable.  Not relevant for setters. */
10578
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10579
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10580
  false,  /* isTypedMethod.  Only relevant for methods. */
10581
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10582
};
10583
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10584
static_assert(0 < 1, "There is no slot for us");
10585
10586
MOZ_CAN_RUN_SCRIPT static bool
10587
get_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10588
0
{
10589
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fillOpacity", DOM, cx);
10590
0
10591
0
  FastErrorResult rv;
10592
0
  DOMString result;
10593
0
  self->GetFillOpacity(result, rv);
10594
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10595
0
    return false;
10596
0
  }
10597
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10598
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10599
0
    return false;
10600
0
  }
10601
0
  return true;
10602
0
}
10603
10604
MOZ_CAN_RUN_SCRIPT static bool
10605
set_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10606
0
{
10607
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fillOpacity", DOM, cx);
10608
0
10609
0
  binding_detail::FakeString arg0;
10610
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10611
0
    return false;
10612
0
  }
10613
0
  Maybe<AutoCEReaction> ceReaction;
10614
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10615
0
    DocGroup* docGroup = self->GetDocGroup();
10616
0
    if (docGroup) {
10617
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10618
0
    }
10619
0
  }
10620
0
  FastErrorResult rv;
10621
0
  nsIPrincipal* subjectPrincipal;
10622
0
  {
10623
0
    JS::Realm* realm = js::GetContextRealm(cx);
10624
0
    MOZ_ASSERT(realm);
10625
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10626
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10627
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10628
0
      principal = nullptr;
10629
0
    }
10630
0
10631
0
    subjectPrincipal = principal;
10632
0
  }
10633
0
  self->SetFillOpacity(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10634
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10635
0
    return false;
10636
0
  }
10637
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10638
0
10639
0
  return true;
10640
0
}
10641
10642
static const JSJitInfo fillOpacity_getterinfo = {
10643
  { (JSJitGetterOp)get_fillOpacity },
10644
  { prototypes::id::CSS2Properties },
10645
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10646
  JSJitInfo::Getter,
10647
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10648
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10649
  false,  /* isInfallible. False in setters. */
10650
  false,  /* isMovable.  Not relevant for setters. */
10651
  false, /* isEliminatable.  Not relevant for setters. */
10652
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10653
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10654
  false,  /* isTypedMethod.  Only relevant for methods. */
10655
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10656
};
10657
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10658
static_assert(0 < 1, "There is no slot for us");
10659
static const JSJitInfo fillOpacity_setterinfo = {
10660
  { (JSJitGetterOp)set_fillOpacity },
10661
  { prototypes::id::CSS2Properties },
10662
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10663
  JSJitInfo::Setter,
10664
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10665
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10666
  false,  /* isInfallible. False in setters. */
10667
  false,  /* isMovable.  Not relevant for setters. */
10668
  false, /* isEliminatable.  Not relevant for setters. */
10669
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10670
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10671
  false,  /* isTypedMethod.  Only relevant for methods. */
10672
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10673
};
10674
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10675
static_assert(0 < 1, "There is no slot for us");
10676
10677
MOZ_CAN_RUN_SCRIPT static bool
10678
get_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10679
0
{
10680
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeOpacity", DOM, cx);
10681
0
10682
0
  FastErrorResult rv;
10683
0
  DOMString result;
10684
0
  self->GetStrokeOpacity(result, rv);
10685
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10686
0
    return false;
10687
0
  }
10688
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10689
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10690
0
    return false;
10691
0
  }
10692
0
  return true;
10693
0
}
10694
10695
MOZ_CAN_RUN_SCRIPT static bool
10696
set_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10697
0
{
10698
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeOpacity", DOM, cx);
10699
0
10700
0
  binding_detail::FakeString arg0;
10701
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10702
0
    return false;
10703
0
  }
10704
0
  Maybe<AutoCEReaction> ceReaction;
10705
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10706
0
    DocGroup* docGroup = self->GetDocGroup();
10707
0
    if (docGroup) {
10708
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10709
0
    }
10710
0
  }
10711
0
  FastErrorResult rv;
10712
0
  nsIPrincipal* subjectPrincipal;
10713
0
  {
10714
0
    JS::Realm* realm = js::GetContextRealm(cx);
10715
0
    MOZ_ASSERT(realm);
10716
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10717
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10718
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10719
0
      principal = nullptr;
10720
0
    }
10721
0
10722
0
    subjectPrincipal = principal;
10723
0
  }
10724
0
  self->SetStrokeOpacity(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10725
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10726
0
    return false;
10727
0
  }
10728
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10729
0
10730
0
  return true;
10731
0
}
10732
10733
static const JSJitInfo strokeOpacity_getterinfo = {
10734
  { (JSJitGetterOp)get_strokeOpacity },
10735
  { prototypes::id::CSS2Properties },
10736
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10737
  JSJitInfo::Getter,
10738
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10739
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10740
  false,  /* isInfallible. False in setters. */
10741
  false,  /* isMovable.  Not relevant for setters. */
10742
  false, /* isEliminatable.  Not relevant for setters. */
10743
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10744
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10745
  false,  /* isTypedMethod.  Only relevant for methods. */
10746
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10747
};
10748
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10749
static_assert(0 < 1, "There is no slot for us");
10750
static const JSJitInfo strokeOpacity_setterinfo = {
10751
  { (JSJitGetterOp)set_strokeOpacity },
10752
  { prototypes::id::CSS2Properties },
10753
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10754
  JSJitInfo::Setter,
10755
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10756
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10757
  false,  /* isInfallible. False in setters. */
10758
  false,  /* isMovable.  Not relevant for setters. */
10759
  false, /* isEliminatable.  Not relevant for setters. */
10760
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10761
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10762
  false,  /* isTypedMethod.  Only relevant for methods. */
10763
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10764
};
10765
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10766
static_assert(0 < 1, "There is no slot for us");
10767
10768
MOZ_CAN_RUN_SCRIPT static bool
10769
get_scrollSnapTypeX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10770
0
{
10771
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapTypeX", DOM, cx);
10772
0
10773
0
  FastErrorResult rv;
10774
0
  DOMString result;
10775
0
  self->GetScrollSnapTypeX(result, rv);
10776
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10777
0
    return false;
10778
0
  }
10779
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10780
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10781
0
    return false;
10782
0
  }
10783
0
  return true;
10784
0
}
10785
10786
MOZ_CAN_RUN_SCRIPT static bool
10787
set_scrollSnapTypeX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10788
0
{
10789
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapTypeX", DOM, cx);
10790
0
10791
0
  binding_detail::FakeString arg0;
10792
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10793
0
    return false;
10794
0
  }
10795
0
  Maybe<AutoCEReaction> ceReaction;
10796
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10797
0
    DocGroup* docGroup = self->GetDocGroup();
10798
0
    if (docGroup) {
10799
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10800
0
    }
10801
0
  }
10802
0
  FastErrorResult rv;
10803
0
  nsIPrincipal* subjectPrincipal;
10804
0
  {
10805
0
    JS::Realm* realm = js::GetContextRealm(cx);
10806
0
    MOZ_ASSERT(realm);
10807
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10808
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10809
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10810
0
      principal = nullptr;
10811
0
    }
10812
0
10813
0
    subjectPrincipal = principal;
10814
0
  }
10815
0
  self->SetScrollSnapTypeX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10816
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10817
0
    return false;
10818
0
  }
10819
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10820
0
10821
0
  return true;
10822
0
}
10823
10824
static const JSJitInfo scrollSnapTypeX_getterinfo = {
10825
  { (JSJitGetterOp)get_scrollSnapTypeX },
10826
  { prototypes::id::CSS2Properties },
10827
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10828
  JSJitInfo::Getter,
10829
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10830
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10831
  false,  /* isInfallible. False in setters. */
10832
  false,  /* isMovable.  Not relevant for setters. */
10833
  false, /* isEliminatable.  Not relevant for setters. */
10834
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10835
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10836
  false,  /* isTypedMethod.  Only relevant for methods. */
10837
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10838
};
10839
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10840
static_assert(0 < 1, "There is no slot for us");
10841
static const JSJitInfo scrollSnapTypeX_setterinfo = {
10842
  { (JSJitGetterOp)set_scrollSnapTypeX },
10843
  { prototypes::id::CSS2Properties },
10844
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10845
  JSJitInfo::Setter,
10846
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10847
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10848
  false,  /* isInfallible. False in setters. */
10849
  false,  /* isMovable.  Not relevant for setters. */
10850
  false, /* isEliminatable.  Not relevant for setters. */
10851
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10852
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10853
  false,  /* isTypedMethod.  Only relevant for methods. */
10854
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10855
};
10856
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10857
static_assert(0 < 1, "There is no slot for us");
10858
10859
MOZ_CAN_RUN_SCRIPT static bool
10860
get_scrollSnapTypeY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10861
0
{
10862
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapTypeY", DOM, cx);
10863
0
10864
0
  FastErrorResult rv;
10865
0
  DOMString result;
10866
0
  self->GetScrollSnapTypeY(result, rv);
10867
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10868
0
    return false;
10869
0
  }
10870
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10871
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10872
0
    return false;
10873
0
  }
10874
0
  return true;
10875
0
}
10876
10877
MOZ_CAN_RUN_SCRIPT static bool
10878
set_scrollSnapTypeY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10879
0
{
10880
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapTypeY", DOM, cx);
10881
0
10882
0
  binding_detail::FakeString arg0;
10883
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10884
0
    return false;
10885
0
  }
10886
0
  Maybe<AutoCEReaction> ceReaction;
10887
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10888
0
    DocGroup* docGroup = self->GetDocGroup();
10889
0
    if (docGroup) {
10890
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10891
0
    }
10892
0
  }
10893
0
  FastErrorResult rv;
10894
0
  nsIPrincipal* subjectPrincipal;
10895
0
  {
10896
0
    JS::Realm* realm = js::GetContextRealm(cx);
10897
0
    MOZ_ASSERT(realm);
10898
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10899
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10900
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10901
0
      principal = nullptr;
10902
0
    }
10903
0
10904
0
    subjectPrincipal = principal;
10905
0
  }
10906
0
  self->SetScrollSnapTypeY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10907
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10908
0
    return false;
10909
0
  }
10910
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10911
0
10912
0
  return true;
10913
0
}
10914
10915
static const JSJitInfo scrollSnapTypeY_getterinfo = {
10916
  { (JSJitGetterOp)get_scrollSnapTypeY },
10917
  { prototypes::id::CSS2Properties },
10918
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10919
  JSJitInfo::Getter,
10920
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10921
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
10922
  false,  /* isInfallible. False in setters. */
10923
  false,  /* isMovable.  Not relevant for setters. */
10924
  false, /* isEliminatable.  Not relevant for setters. */
10925
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10926
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10927
  false,  /* isTypedMethod.  Only relevant for methods. */
10928
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10929
};
10930
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10931
static_assert(0 < 1, "There is no slot for us");
10932
static const JSJitInfo scrollSnapTypeY_setterinfo = {
10933
  { (JSJitGetterOp)set_scrollSnapTypeY },
10934
  { prototypes::id::CSS2Properties },
10935
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
10936
  JSJitInfo::Setter,
10937
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
10938
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
10939
  false,  /* isInfallible. False in setters. */
10940
  false,  /* isMovable.  Not relevant for setters. */
10941
  false, /* isEliminatable.  Not relevant for setters. */
10942
  false, /* isAlwaysInSlot.  Only relevant for getters. */
10943
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
10944
  false,  /* isTypedMethod.  Only relevant for methods. */
10945
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
10946
};
10947
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
10948
static_assert(0 < 1, "There is no slot for us");
10949
10950
MOZ_CAN_RUN_SCRIPT static bool
10951
get_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
10952
0
{
10953
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexGrow", DOM, cx);
10954
0
10955
0
  FastErrorResult rv;
10956
0
  DOMString result;
10957
0
  self->GetFlexGrow(result, rv);
10958
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10959
0
    return false;
10960
0
  }
10961
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
10962
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
10963
0
    return false;
10964
0
  }
10965
0
  return true;
10966
0
}
10967
10968
MOZ_CAN_RUN_SCRIPT static bool
10969
set_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
10970
0
{
10971
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexGrow", DOM, cx);
10972
0
10973
0
  binding_detail::FakeString arg0;
10974
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
10975
0
    return false;
10976
0
  }
10977
0
  Maybe<AutoCEReaction> ceReaction;
10978
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
10979
0
    DocGroup* docGroup = self->GetDocGroup();
10980
0
    if (docGroup) {
10981
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
10982
0
    }
10983
0
  }
10984
0
  FastErrorResult rv;
10985
0
  nsIPrincipal* subjectPrincipal;
10986
0
  {
10987
0
    JS::Realm* realm = js::GetContextRealm(cx);
10988
0
    MOZ_ASSERT(realm);
10989
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
10990
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
10991
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
10992
0
      principal = nullptr;
10993
0
    }
10994
0
10995
0
    subjectPrincipal = principal;
10996
0
  }
10997
0
  self->SetFlexGrow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
10998
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
10999
0
    return false;
11000
0
  }
11001
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11002
0
11003
0
  return true;
11004
0
}
11005
11006
static const JSJitInfo flexGrow_getterinfo = {
11007
  { (JSJitGetterOp)get_flexGrow },
11008
  { prototypes::id::CSS2Properties },
11009
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11010
  JSJitInfo::Getter,
11011
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11012
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11013
  false,  /* isInfallible. False in setters. */
11014
  false,  /* isMovable.  Not relevant for setters. */
11015
  false, /* isEliminatable.  Not relevant for setters. */
11016
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11017
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11018
  false,  /* isTypedMethod.  Only relevant for methods. */
11019
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11020
};
11021
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11022
static_assert(0 < 1, "There is no slot for us");
11023
static const JSJitInfo flexGrow_setterinfo = {
11024
  { (JSJitGetterOp)set_flexGrow },
11025
  { prototypes::id::CSS2Properties },
11026
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11027
  JSJitInfo::Setter,
11028
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11029
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11030
  false,  /* isInfallible. False in setters. */
11031
  false,  /* isMovable.  Not relevant for setters. */
11032
  false, /* isEliminatable.  Not relevant for setters. */
11033
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11034
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11035
  false,  /* isTypedMethod.  Only relevant for methods. */
11036
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11037
};
11038
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11039
static_assert(0 < 1, "There is no slot for us");
11040
11041
MOZ_CAN_RUN_SCRIPT static bool
11042
get_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11043
0
{
11044
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexShrink", DOM, cx);
11045
0
11046
0
  FastErrorResult rv;
11047
0
  DOMString result;
11048
0
  self->GetFlexShrink(result, rv);
11049
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11050
0
    return false;
11051
0
  }
11052
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11053
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11054
0
    return false;
11055
0
  }
11056
0
  return true;
11057
0
}
11058
11059
MOZ_CAN_RUN_SCRIPT static bool
11060
set_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11061
0
{
11062
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexShrink", DOM, cx);
11063
0
11064
0
  binding_detail::FakeString arg0;
11065
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11066
0
    return false;
11067
0
  }
11068
0
  Maybe<AutoCEReaction> ceReaction;
11069
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11070
0
    DocGroup* docGroup = self->GetDocGroup();
11071
0
    if (docGroup) {
11072
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11073
0
    }
11074
0
  }
11075
0
  FastErrorResult rv;
11076
0
  nsIPrincipal* subjectPrincipal;
11077
0
  {
11078
0
    JS::Realm* realm = js::GetContextRealm(cx);
11079
0
    MOZ_ASSERT(realm);
11080
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11081
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11082
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11083
0
      principal = nullptr;
11084
0
    }
11085
0
11086
0
    subjectPrincipal = principal;
11087
0
  }
11088
0
  self->SetFlexShrink(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11089
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11090
0
    return false;
11091
0
  }
11092
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11093
0
11094
0
  return true;
11095
0
}
11096
11097
static const JSJitInfo flexShrink_getterinfo = {
11098
  { (JSJitGetterOp)get_flexShrink },
11099
  { prototypes::id::CSS2Properties },
11100
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11101
  JSJitInfo::Getter,
11102
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11103
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11104
  false,  /* isInfallible. False in setters. */
11105
  false,  /* isMovable.  Not relevant for setters. */
11106
  false, /* isEliminatable.  Not relevant for setters. */
11107
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11108
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11109
  false,  /* isTypedMethod.  Only relevant for methods. */
11110
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11111
};
11112
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11113
static_assert(0 < 1, "There is no slot for us");
11114
static const JSJitInfo flexShrink_setterinfo = {
11115
  { (JSJitGetterOp)set_flexShrink },
11116
  { prototypes::id::CSS2Properties },
11117
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11118
  JSJitInfo::Setter,
11119
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11120
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11121
  false,  /* isInfallible. False in setters. */
11122
  false,  /* isMovable.  Not relevant for setters. */
11123
  false, /* isEliminatable.  Not relevant for setters. */
11124
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11125
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11126
  false,  /* isTypedMethod.  Only relevant for methods. */
11127
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11128
};
11129
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11130
static_assert(0 < 1, "There is no slot for us");
11131
11132
MOZ_CAN_RUN_SCRIPT static bool
11133
get_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11134
0
{
11135
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxFlex", DOM, cx);
11136
0
11137
0
  FastErrorResult rv;
11138
0
  DOMString result;
11139
0
  self->GetMozBoxFlex(result, rv);
11140
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11141
0
    return false;
11142
0
  }
11143
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11144
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11145
0
    return false;
11146
0
  }
11147
0
  return true;
11148
0
}
11149
11150
MOZ_CAN_RUN_SCRIPT static bool
11151
set_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11152
0
{
11153
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxFlex", DOM, cx);
11154
0
11155
0
  binding_detail::FakeString arg0;
11156
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11157
0
    return false;
11158
0
  }
11159
0
  Maybe<AutoCEReaction> ceReaction;
11160
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11161
0
    DocGroup* docGroup = self->GetDocGroup();
11162
0
    if (docGroup) {
11163
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11164
0
    }
11165
0
  }
11166
0
  FastErrorResult rv;
11167
0
  nsIPrincipal* subjectPrincipal;
11168
0
  {
11169
0
    JS::Realm* realm = js::GetContextRealm(cx);
11170
0
    MOZ_ASSERT(realm);
11171
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11172
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11173
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11174
0
      principal = nullptr;
11175
0
    }
11176
0
11177
0
    subjectPrincipal = principal;
11178
0
  }
11179
0
  self->SetMozBoxFlex(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11180
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11181
0
    return false;
11182
0
  }
11183
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11184
0
11185
0
  return true;
11186
0
}
11187
11188
static const JSJitInfo MozBoxFlex_getterinfo = {
11189
  { (JSJitGetterOp)get_MozBoxFlex },
11190
  { prototypes::id::CSS2Properties },
11191
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11192
  JSJitInfo::Getter,
11193
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11194
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11195
  false,  /* isInfallible. False in setters. */
11196
  false,  /* isMovable.  Not relevant for setters. */
11197
  false, /* isEliminatable.  Not relevant for setters. */
11198
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11199
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11200
  false,  /* isTypedMethod.  Only relevant for methods. */
11201
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11202
};
11203
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11204
static_assert(0 < 1, "There is no slot for us");
11205
static const JSJitInfo MozBoxFlex_setterinfo = {
11206
  { (JSJitGetterOp)set_MozBoxFlex },
11207
  { prototypes::id::CSS2Properties },
11208
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11209
  JSJitInfo::Setter,
11210
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11211
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11212
  false,  /* isInfallible. False in setters. */
11213
  false,  /* isMovable.  Not relevant for setters. */
11214
  false, /* isEliminatable.  Not relevant for setters. */
11215
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11216
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11217
  false,  /* isTypedMethod.  Only relevant for methods. */
11218
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11219
};
11220
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11221
static_assert(0 < 1, "There is no slot for us");
11222
11223
MOZ_CAN_RUN_SCRIPT static bool
11224
get_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11225
0
{
11226
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.floodOpacity", DOM, cx);
11227
0
11228
0
  FastErrorResult rv;
11229
0
  DOMString result;
11230
0
  self->GetFloodOpacity(result, rv);
11231
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11232
0
    return false;
11233
0
  }
11234
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11235
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11236
0
    return false;
11237
0
  }
11238
0
  return true;
11239
0
}
11240
11241
MOZ_CAN_RUN_SCRIPT static bool
11242
set_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11243
0
{
11244
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.floodOpacity", DOM, cx);
11245
0
11246
0
  binding_detail::FakeString arg0;
11247
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11248
0
    return false;
11249
0
  }
11250
0
  Maybe<AutoCEReaction> ceReaction;
11251
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11252
0
    DocGroup* docGroup = self->GetDocGroup();
11253
0
    if (docGroup) {
11254
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11255
0
    }
11256
0
  }
11257
0
  FastErrorResult rv;
11258
0
  nsIPrincipal* subjectPrincipal;
11259
0
  {
11260
0
    JS::Realm* realm = js::GetContextRealm(cx);
11261
0
    MOZ_ASSERT(realm);
11262
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11263
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11264
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11265
0
      principal = nullptr;
11266
0
    }
11267
0
11268
0
    subjectPrincipal = principal;
11269
0
  }
11270
0
  self->SetFloodOpacity(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11271
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11272
0
    return false;
11273
0
  }
11274
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11275
0
11276
0
  return true;
11277
0
}
11278
11279
static const JSJitInfo floodOpacity_getterinfo = {
11280
  { (JSJitGetterOp)get_floodOpacity },
11281
  { prototypes::id::CSS2Properties },
11282
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11283
  JSJitInfo::Getter,
11284
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11285
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11286
  false,  /* isInfallible. False in setters. */
11287
  false,  /* isMovable.  Not relevant for setters. */
11288
  false, /* isEliminatable.  Not relevant for setters. */
11289
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11290
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11291
  false,  /* isTypedMethod.  Only relevant for methods. */
11292
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11293
};
11294
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11295
static_assert(0 < 1, "There is no slot for us");
11296
static const JSJitInfo floodOpacity_setterinfo = {
11297
  { (JSJitGetterOp)set_floodOpacity },
11298
  { prototypes::id::CSS2Properties },
11299
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11300
  JSJitInfo::Setter,
11301
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11302
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11303
  false,  /* isInfallible. False in setters. */
11304
  false,  /* isMovable.  Not relevant for setters. */
11305
  false, /* isEliminatable.  Not relevant for setters. */
11306
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11307
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11308
  false,  /* isTypedMethod.  Only relevant for methods. */
11309
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11310
};
11311
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11312
static_assert(0 < 1, "There is no slot for us");
11313
11314
MOZ_CAN_RUN_SCRIPT static bool
11315
get_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11316
0
{
11317
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.opacity", DOM, cx);
11318
0
11319
0
  FastErrorResult rv;
11320
0
  DOMString result;
11321
0
  self->GetOpacity(result, rv);
11322
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11323
0
    return false;
11324
0
  }
11325
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11326
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11327
0
    return false;
11328
0
  }
11329
0
  return true;
11330
0
}
11331
11332
MOZ_CAN_RUN_SCRIPT static bool
11333
set_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11334
0
{
11335
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.opacity", DOM, cx);
11336
0
11337
0
  binding_detail::FakeString arg0;
11338
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11339
0
    return false;
11340
0
  }
11341
0
  Maybe<AutoCEReaction> ceReaction;
11342
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11343
0
    DocGroup* docGroup = self->GetDocGroup();
11344
0
    if (docGroup) {
11345
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11346
0
    }
11347
0
  }
11348
0
  FastErrorResult rv;
11349
0
  nsIPrincipal* subjectPrincipal;
11350
0
  {
11351
0
    JS::Realm* realm = js::GetContextRealm(cx);
11352
0
    MOZ_ASSERT(realm);
11353
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11354
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11355
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11356
0
      principal = nullptr;
11357
0
    }
11358
0
11359
0
    subjectPrincipal = principal;
11360
0
  }
11361
0
  self->SetOpacity(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11362
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11363
0
    return false;
11364
0
  }
11365
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11366
0
11367
0
  return true;
11368
0
}
11369
11370
static const JSJitInfo opacity_getterinfo = {
11371
  { (JSJitGetterOp)get_opacity },
11372
  { prototypes::id::CSS2Properties },
11373
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11374
  JSJitInfo::Getter,
11375
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11376
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11377
  false,  /* isInfallible. False in setters. */
11378
  false,  /* isMovable.  Not relevant for setters. */
11379
  false, /* isEliminatable.  Not relevant for setters. */
11380
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11381
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11382
  false,  /* isTypedMethod.  Only relevant for methods. */
11383
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11384
};
11385
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11386
static_assert(0 < 1, "There is no slot for us");
11387
static const JSJitInfo opacity_setterinfo = {
11388
  { (JSJitGetterOp)set_opacity },
11389
  { prototypes::id::CSS2Properties },
11390
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11391
  JSJitInfo::Setter,
11392
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11393
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11394
  false,  /* isInfallible. False in setters. */
11395
  false,  /* isMovable.  Not relevant for setters. */
11396
  false, /* isEliminatable.  Not relevant for setters. */
11397
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11398
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11399
  false,  /* isTypedMethod.  Only relevant for methods. */
11400
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11401
};
11402
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11403
static_assert(0 < 1, "There is no slot for us");
11404
11405
MOZ_CAN_RUN_SCRIPT static bool
11406
get_shapeImageThreshold(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11407
0
{
11408
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.shapeImageThreshold", DOM, cx);
11409
0
11410
0
  FastErrorResult rv;
11411
0
  DOMString result;
11412
0
  self->GetShapeImageThreshold(result, rv);
11413
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11414
0
    return false;
11415
0
  }
11416
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11417
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11418
0
    return false;
11419
0
  }
11420
0
  return true;
11421
0
}
11422
11423
MOZ_CAN_RUN_SCRIPT static bool
11424
set_shapeImageThreshold(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11425
0
{
11426
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.shapeImageThreshold", DOM, cx);
11427
0
11428
0
  binding_detail::FakeString arg0;
11429
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11430
0
    return false;
11431
0
  }
11432
0
  Maybe<AutoCEReaction> ceReaction;
11433
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11434
0
    DocGroup* docGroup = self->GetDocGroup();
11435
0
    if (docGroup) {
11436
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11437
0
    }
11438
0
  }
11439
0
  FastErrorResult rv;
11440
0
  nsIPrincipal* subjectPrincipal;
11441
0
  {
11442
0
    JS::Realm* realm = js::GetContextRealm(cx);
11443
0
    MOZ_ASSERT(realm);
11444
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11445
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11446
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11447
0
      principal = nullptr;
11448
0
    }
11449
0
11450
0
    subjectPrincipal = principal;
11451
0
  }
11452
0
  self->SetShapeImageThreshold(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11453
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11454
0
    return false;
11455
0
  }
11456
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11457
0
11458
0
  return true;
11459
0
}
11460
11461
static const JSJitInfo shapeImageThreshold_getterinfo = {
11462
  { (JSJitGetterOp)get_shapeImageThreshold },
11463
  { prototypes::id::CSS2Properties },
11464
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11465
  JSJitInfo::Getter,
11466
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11467
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11468
  false,  /* isInfallible. False in setters. */
11469
  false,  /* isMovable.  Not relevant for setters. */
11470
  false, /* isEliminatable.  Not relevant for setters. */
11471
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11472
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11473
  false,  /* isTypedMethod.  Only relevant for methods. */
11474
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11475
};
11476
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11477
static_assert(0 < 1, "There is no slot for us");
11478
static const JSJitInfo shapeImageThreshold_setterinfo = {
11479
  { (JSJitGetterOp)set_shapeImageThreshold },
11480
  { prototypes::id::CSS2Properties },
11481
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11482
  JSJitInfo::Setter,
11483
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11484
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11485
  false,  /* isInfallible. False in setters. */
11486
  false,  /* isMovable.  Not relevant for setters. */
11487
  false, /* isEliminatable.  Not relevant for setters. */
11488
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11489
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11490
  false,  /* isTypedMethod.  Only relevant for methods. */
11491
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11492
};
11493
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11494
static_assert(0 < 1, "There is no slot for us");
11495
11496
MOZ_CAN_RUN_SCRIPT static bool
11497
get_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11498
0
{
11499
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.stopOpacity", DOM, cx);
11500
0
11501
0
  FastErrorResult rv;
11502
0
  DOMString result;
11503
0
  self->GetStopOpacity(result, rv);
11504
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11505
0
    return false;
11506
0
  }
11507
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11508
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11509
0
    return false;
11510
0
  }
11511
0
  return true;
11512
0
}
11513
11514
MOZ_CAN_RUN_SCRIPT static bool
11515
set_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11516
0
{
11517
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.stopOpacity", DOM, cx);
11518
0
11519
0
  binding_detail::FakeString arg0;
11520
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11521
0
    return false;
11522
0
  }
11523
0
  Maybe<AutoCEReaction> ceReaction;
11524
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11525
0
    DocGroup* docGroup = self->GetDocGroup();
11526
0
    if (docGroup) {
11527
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11528
0
    }
11529
0
  }
11530
0
  FastErrorResult rv;
11531
0
  nsIPrincipal* subjectPrincipal;
11532
0
  {
11533
0
    JS::Realm* realm = js::GetContextRealm(cx);
11534
0
    MOZ_ASSERT(realm);
11535
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11536
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11537
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11538
0
      principal = nullptr;
11539
0
    }
11540
0
11541
0
    subjectPrincipal = principal;
11542
0
  }
11543
0
  self->SetStopOpacity(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11544
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11545
0
    return false;
11546
0
  }
11547
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11548
0
11549
0
  return true;
11550
0
}
11551
11552
static const JSJitInfo stopOpacity_getterinfo = {
11553
  { (JSJitGetterOp)get_stopOpacity },
11554
  { prototypes::id::CSS2Properties },
11555
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11556
  JSJitInfo::Getter,
11557
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11558
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11559
  false,  /* isInfallible. False in setters. */
11560
  false,  /* isMovable.  Not relevant for setters. */
11561
  false, /* isEliminatable.  Not relevant for setters. */
11562
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11563
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11564
  false,  /* isTypedMethod.  Only relevant for methods. */
11565
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11566
};
11567
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11568
static_assert(0 < 1, "There is no slot for us");
11569
static const JSJitInfo stopOpacity_setterinfo = {
11570
  { (JSJitGetterOp)set_stopOpacity },
11571
  { prototypes::id::CSS2Properties },
11572
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11573
  JSJitInfo::Setter,
11574
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11575
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11576
  false,  /* isInfallible. False in setters. */
11577
  false,  /* isMovable.  Not relevant for setters. */
11578
  false, /* isEliminatable.  Not relevant for setters. */
11579
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11580
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11581
  false,  /* isTypedMethod.  Only relevant for methods. */
11582
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11583
};
11584
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11585
static_assert(0 < 1, "There is no slot for us");
11586
11587
MOZ_CAN_RUN_SCRIPT static bool
11588
get_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11589
0
{
11590
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockEndStyle", DOM, cx);
11591
0
11592
0
  FastErrorResult rv;
11593
0
  DOMString result;
11594
0
  self->GetBorderBlockEndStyle(result, rv);
11595
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11596
0
    return false;
11597
0
  }
11598
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11599
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11600
0
    return false;
11601
0
  }
11602
0
  return true;
11603
0
}
11604
11605
MOZ_CAN_RUN_SCRIPT static bool
11606
set_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11607
0
{
11608
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockEndStyle", DOM, cx);
11609
0
11610
0
  binding_detail::FakeString arg0;
11611
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11612
0
    return false;
11613
0
  }
11614
0
  Maybe<AutoCEReaction> ceReaction;
11615
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11616
0
    DocGroup* docGroup = self->GetDocGroup();
11617
0
    if (docGroup) {
11618
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11619
0
    }
11620
0
  }
11621
0
  FastErrorResult rv;
11622
0
  nsIPrincipal* subjectPrincipal;
11623
0
  {
11624
0
    JS::Realm* realm = js::GetContextRealm(cx);
11625
0
    MOZ_ASSERT(realm);
11626
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11627
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11628
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11629
0
      principal = nullptr;
11630
0
    }
11631
0
11632
0
    subjectPrincipal = principal;
11633
0
  }
11634
0
  self->SetBorderBlockEndStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11635
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11636
0
    return false;
11637
0
  }
11638
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11639
0
11640
0
  return true;
11641
0
}
11642
11643
static const JSJitInfo borderBlockEndStyle_getterinfo = {
11644
  { (JSJitGetterOp)get_borderBlockEndStyle },
11645
  { prototypes::id::CSS2Properties },
11646
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11647
  JSJitInfo::Getter,
11648
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11649
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11650
  false,  /* isInfallible. False in setters. */
11651
  false,  /* isMovable.  Not relevant for setters. */
11652
  false, /* isEliminatable.  Not relevant for setters. */
11653
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11654
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11655
  false,  /* isTypedMethod.  Only relevant for methods. */
11656
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11657
};
11658
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11659
static_assert(0 < 1, "There is no slot for us");
11660
static const JSJitInfo borderBlockEndStyle_setterinfo = {
11661
  { (JSJitGetterOp)set_borderBlockEndStyle },
11662
  { prototypes::id::CSS2Properties },
11663
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11664
  JSJitInfo::Setter,
11665
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11666
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11667
  false,  /* isInfallible. False in setters. */
11668
  false,  /* isMovable.  Not relevant for setters. */
11669
  false, /* isEliminatable.  Not relevant for setters. */
11670
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11671
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11672
  false,  /* isTypedMethod.  Only relevant for methods. */
11673
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11674
};
11675
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11676
static_assert(0 < 1, "There is no slot for us");
11677
11678
MOZ_CAN_RUN_SCRIPT static bool
11679
get_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11680
0
{
11681
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockStartStyle", DOM, cx);
11682
0
11683
0
  FastErrorResult rv;
11684
0
  DOMString result;
11685
0
  self->GetBorderBlockStartStyle(result, rv);
11686
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11687
0
    return false;
11688
0
  }
11689
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11690
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11691
0
    return false;
11692
0
  }
11693
0
  return true;
11694
0
}
11695
11696
MOZ_CAN_RUN_SCRIPT static bool
11697
set_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11698
0
{
11699
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockStartStyle", DOM, cx);
11700
0
11701
0
  binding_detail::FakeString arg0;
11702
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11703
0
    return false;
11704
0
  }
11705
0
  Maybe<AutoCEReaction> ceReaction;
11706
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11707
0
    DocGroup* docGroup = self->GetDocGroup();
11708
0
    if (docGroup) {
11709
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11710
0
    }
11711
0
  }
11712
0
  FastErrorResult rv;
11713
0
  nsIPrincipal* subjectPrincipal;
11714
0
  {
11715
0
    JS::Realm* realm = js::GetContextRealm(cx);
11716
0
    MOZ_ASSERT(realm);
11717
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11718
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11719
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11720
0
      principal = nullptr;
11721
0
    }
11722
0
11723
0
    subjectPrincipal = principal;
11724
0
  }
11725
0
  self->SetBorderBlockStartStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11726
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11727
0
    return false;
11728
0
  }
11729
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11730
0
11731
0
  return true;
11732
0
}
11733
11734
static const JSJitInfo borderBlockStartStyle_getterinfo = {
11735
  { (JSJitGetterOp)get_borderBlockStartStyle },
11736
  { prototypes::id::CSS2Properties },
11737
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11738
  JSJitInfo::Getter,
11739
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11740
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11741
  false,  /* isInfallible. False in setters. */
11742
  false,  /* isMovable.  Not relevant for setters. */
11743
  false, /* isEliminatable.  Not relevant for setters. */
11744
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11745
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11746
  false,  /* isTypedMethod.  Only relevant for methods. */
11747
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11748
};
11749
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11750
static_assert(0 < 1, "There is no slot for us");
11751
static const JSJitInfo borderBlockStartStyle_setterinfo = {
11752
  { (JSJitGetterOp)set_borderBlockStartStyle },
11753
  { prototypes::id::CSS2Properties },
11754
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11755
  JSJitInfo::Setter,
11756
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11757
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11758
  false,  /* isInfallible. False in setters. */
11759
  false,  /* isMovable.  Not relevant for setters. */
11760
  false, /* isEliminatable.  Not relevant for setters. */
11761
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11762
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11763
  false,  /* isTypedMethod.  Only relevant for methods. */
11764
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11765
};
11766
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11767
static_assert(0 < 1, "There is no slot for us");
11768
11769
MOZ_CAN_RUN_SCRIPT static bool
11770
get_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11771
0
{
11772
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottomStyle", DOM, cx);
11773
0
11774
0
  FastErrorResult rv;
11775
0
  DOMString result;
11776
0
  self->GetBorderBottomStyle(result, rv);
11777
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11778
0
    return false;
11779
0
  }
11780
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11781
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11782
0
    return false;
11783
0
  }
11784
0
  return true;
11785
0
}
11786
11787
MOZ_CAN_RUN_SCRIPT static bool
11788
set_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11789
0
{
11790
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottomStyle", DOM, cx);
11791
0
11792
0
  binding_detail::FakeString arg0;
11793
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11794
0
    return false;
11795
0
  }
11796
0
  Maybe<AutoCEReaction> ceReaction;
11797
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11798
0
    DocGroup* docGroup = self->GetDocGroup();
11799
0
    if (docGroup) {
11800
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11801
0
    }
11802
0
  }
11803
0
  FastErrorResult rv;
11804
0
  nsIPrincipal* subjectPrincipal;
11805
0
  {
11806
0
    JS::Realm* realm = js::GetContextRealm(cx);
11807
0
    MOZ_ASSERT(realm);
11808
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11809
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11810
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11811
0
      principal = nullptr;
11812
0
    }
11813
0
11814
0
    subjectPrincipal = principal;
11815
0
  }
11816
0
  self->SetBorderBottomStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11817
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11818
0
    return false;
11819
0
  }
11820
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11821
0
11822
0
  return true;
11823
0
}
11824
11825
static const JSJitInfo borderBottomStyle_getterinfo = {
11826
  { (JSJitGetterOp)get_borderBottomStyle },
11827
  { prototypes::id::CSS2Properties },
11828
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11829
  JSJitInfo::Getter,
11830
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11831
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11832
  false,  /* isInfallible. False in setters. */
11833
  false,  /* isMovable.  Not relevant for setters. */
11834
  false, /* isEliminatable.  Not relevant for setters. */
11835
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11836
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11837
  false,  /* isTypedMethod.  Only relevant for methods. */
11838
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11839
};
11840
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11841
static_assert(0 < 1, "There is no slot for us");
11842
static const JSJitInfo borderBottomStyle_setterinfo = {
11843
  { (JSJitGetterOp)set_borderBottomStyle },
11844
  { prototypes::id::CSS2Properties },
11845
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11846
  JSJitInfo::Setter,
11847
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11848
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11849
  false,  /* isInfallible. False in setters. */
11850
  false,  /* isMovable.  Not relevant for setters. */
11851
  false, /* isEliminatable.  Not relevant for setters. */
11852
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11853
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11854
  false,  /* isTypedMethod.  Only relevant for methods. */
11855
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11856
};
11857
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11858
static_assert(0 < 1, "There is no slot for us");
11859
11860
MOZ_CAN_RUN_SCRIPT static bool
11861
get_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11862
0
{
11863
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineEndStyle", DOM, cx);
11864
0
11865
0
  FastErrorResult rv;
11866
0
  DOMString result;
11867
0
  self->GetBorderInlineEndStyle(result, rv);
11868
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11869
0
    return false;
11870
0
  }
11871
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11872
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11873
0
    return false;
11874
0
  }
11875
0
  return true;
11876
0
}
11877
11878
MOZ_CAN_RUN_SCRIPT static bool
11879
set_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11880
0
{
11881
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineEndStyle", DOM, cx);
11882
0
11883
0
  binding_detail::FakeString arg0;
11884
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11885
0
    return false;
11886
0
  }
11887
0
  Maybe<AutoCEReaction> ceReaction;
11888
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11889
0
    DocGroup* docGroup = self->GetDocGroup();
11890
0
    if (docGroup) {
11891
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11892
0
    }
11893
0
  }
11894
0
  FastErrorResult rv;
11895
0
  nsIPrincipal* subjectPrincipal;
11896
0
  {
11897
0
    JS::Realm* realm = js::GetContextRealm(cx);
11898
0
    MOZ_ASSERT(realm);
11899
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11900
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11901
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11902
0
      principal = nullptr;
11903
0
    }
11904
0
11905
0
    subjectPrincipal = principal;
11906
0
  }
11907
0
  self->SetBorderInlineEndStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11908
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11909
0
    return false;
11910
0
  }
11911
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11912
0
11913
0
  return true;
11914
0
}
11915
11916
static const JSJitInfo borderInlineEndStyle_getterinfo = {
11917
  { (JSJitGetterOp)get_borderInlineEndStyle },
11918
  { prototypes::id::CSS2Properties },
11919
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11920
  JSJitInfo::Getter,
11921
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11922
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
11923
  false,  /* isInfallible. False in setters. */
11924
  false,  /* isMovable.  Not relevant for setters. */
11925
  false, /* isEliminatable.  Not relevant for setters. */
11926
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11927
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11928
  false,  /* isTypedMethod.  Only relevant for methods. */
11929
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11930
};
11931
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11932
static_assert(0 < 1, "There is no slot for us");
11933
static const JSJitInfo borderInlineEndStyle_setterinfo = {
11934
  { (JSJitGetterOp)set_borderInlineEndStyle },
11935
  { prototypes::id::CSS2Properties },
11936
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
11937
  JSJitInfo::Setter,
11938
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
11939
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
11940
  false,  /* isInfallible. False in setters. */
11941
  false,  /* isMovable.  Not relevant for setters. */
11942
  false, /* isEliminatable.  Not relevant for setters. */
11943
  false, /* isAlwaysInSlot.  Only relevant for getters. */
11944
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
11945
  false,  /* isTypedMethod.  Only relevant for methods. */
11946
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
11947
};
11948
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
11949
static_assert(0 < 1, "There is no slot for us");
11950
11951
MOZ_CAN_RUN_SCRIPT static bool
11952
get_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
11953
0
{
11954
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineStartStyle", DOM, cx);
11955
0
11956
0
  FastErrorResult rv;
11957
0
  DOMString result;
11958
0
  self->GetBorderInlineStartStyle(result, rv);
11959
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
11960
0
    return false;
11961
0
  }
11962
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
11963
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
11964
0
    return false;
11965
0
  }
11966
0
  return true;
11967
0
}
11968
11969
MOZ_CAN_RUN_SCRIPT static bool
11970
set_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
11971
0
{
11972
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineStartStyle", DOM, cx);
11973
0
11974
0
  binding_detail::FakeString arg0;
11975
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
11976
0
    return false;
11977
0
  }
11978
0
  Maybe<AutoCEReaction> ceReaction;
11979
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
11980
0
    DocGroup* docGroup = self->GetDocGroup();
11981
0
    if (docGroup) {
11982
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
11983
0
    }
11984
0
  }
11985
0
  FastErrorResult rv;
11986
0
  nsIPrincipal* subjectPrincipal;
11987
0
  {
11988
0
    JS::Realm* realm = js::GetContextRealm(cx);
11989
0
    MOZ_ASSERT(realm);
11990
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
11991
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
11992
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
11993
0
      principal = nullptr;
11994
0
    }
11995
0
11996
0
    subjectPrincipal = principal;
11997
0
  }
11998
0
  self->SetBorderInlineStartStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
11999
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12000
0
    return false;
12001
0
  }
12002
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12003
0
12004
0
  return true;
12005
0
}
12006
12007
static const JSJitInfo borderInlineStartStyle_getterinfo = {
12008
  { (JSJitGetterOp)get_borderInlineStartStyle },
12009
  { prototypes::id::CSS2Properties },
12010
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12011
  JSJitInfo::Getter,
12012
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12013
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12014
  false,  /* isInfallible. False in setters. */
12015
  false,  /* isMovable.  Not relevant for setters. */
12016
  false, /* isEliminatable.  Not relevant for setters. */
12017
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12018
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12019
  false,  /* isTypedMethod.  Only relevant for methods. */
12020
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12021
};
12022
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12023
static_assert(0 < 1, "There is no slot for us");
12024
static const JSJitInfo borderInlineStartStyle_setterinfo = {
12025
  { (JSJitGetterOp)set_borderInlineStartStyle },
12026
  { prototypes::id::CSS2Properties },
12027
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12028
  JSJitInfo::Setter,
12029
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12030
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12031
  false,  /* isInfallible. False in setters. */
12032
  false,  /* isMovable.  Not relevant for setters. */
12033
  false, /* isEliminatable.  Not relevant for setters. */
12034
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12035
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12036
  false,  /* isTypedMethod.  Only relevant for methods. */
12037
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12038
};
12039
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12040
static_assert(0 < 1, "There is no slot for us");
12041
12042
MOZ_CAN_RUN_SCRIPT static bool
12043
get_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12044
0
{
12045
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderLeftStyle", DOM, cx);
12046
0
12047
0
  FastErrorResult rv;
12048
0
  DOMString result;
12049
0
  self->GetBorderLeftStyle(result, rv);
12050
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12051
0
    return false;
12052
0
  }
12053
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12054
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12055
0
    return false;
12056
0
  }
12057
0
  return true;
12058
0
}
12059
12060
MOZ_CAN_RUN_SCRIPT static bool
12061
set_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12062
0
{
12063
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderLeftStyle", DOM, cx);
12064
0
12065
0
  binding_detail::FakeString arg0;
12066
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12067
0
    return false;
12068
0
  }
12069
0
  Maybe<AutoCEReaction> ceReaction;
12070
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12071
0
    DocGroup* docGroup = self->GetDocGroup();
12072
0
    if (docGroup) {
12073
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12074
0
    }
12075
0
  }
12076
0
  FastErrorResult rv;
12077
0
  nsIPrincipal* subjectPrincipal;
12078
0
  {
12079
0
    JS::Realm* realm = js::GetContextRealm(cx);
12080
0
    MOZ_ASSERT(realm);
12081
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12082
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12083
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12084
0
      principal = nullptr;
12085
0
    }
12086
0
12087
0
    subjectPrincipal = principal;
12088
0
  }
12089
0
  self->SetBorderLeftStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12090
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12091
0
    return false;
12092
0
  }
12093
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12094
0
12095
0
  return true;
12096
0
}
12097
12098
static const JSJitInfo borderLeftStyle_getterinfo = {
12099
  { (JSJitGetterOp)get_borderLeftStyle },
12100
  { prototypes::id::CSS2Properties },
12101
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12102
  JSJitInfo::Getter,
12103
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12104
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12105
  false,  /* isInfallible. False in setters. */
12106
  false,  /* isMovable.  Not relevant for setters. */
12107
  false, /* isEliminatable.  Not relevant for setters. */
12108
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12109
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12110
  false,  /* isTypedMethod.  Only relevant for methods. */
12111
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12112
};
12113
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12114
static_assert(0 < 1, "There is no slot for us");
12115
static const JSJitInfo borderLeftStyle_setterinfo = {
12116
  { (JSJitGetterOp)set_borderLeftStyle },
12117
  { prototypes::id::CSS2Properties },
12118
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12119
  JSJitInfo::Setter,
12120
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12121
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12122
  false,  /* isInfallible. False in setters. */
12123
  false,  /* isMovable.  Not relevant for setters. */
12124
  false, /* isEliminatable.  Not relevant for setters. */
12125
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12126
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12127
  false,  /* isTypedMethod.  Only relevant for methods. */
12128
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12129
};
12130
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12131
static_assert(0 < 1, "There is no slot for us");
12132
12133
MOZ_CAN_RUN_SCRIPT static bool
12134
get_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12135
0
{
12136
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderRightStyle", DOM, cx);
12137
0
12138
0
  FastErrorResult rv;
12139
0
  DOMString result;
12140
0
  self->GetBorderRightStyle(result, rv);
12141
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12142
0
    return false;
12143
0
  }
12144
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12145
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12146
0
    return false;
12147
0
  }
12148
0
  return true;
12149
0
}
12150
12151
MOZ_CAN_RUN_SCRIPT static bool
12152
set_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12153
0
{
12154
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderRightStyle", DOM, cx);
12155
0
12156
0
  binding_detail::FakeString arg0;
12157
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12158
0
    return false;
12159
0
  }
12160
0
  Maybe<AutoCEReaction> ceReaction;
12161
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12162
0
    DocGroup* docGroup = self->GetDocGroup();
12163
0
    if (docGroup) {
12164
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12165
0
    }
12166
0
  }
12167
0
  FastErrorResult rv;
12168
0
  nsIPrincipal* subjectPrincipal;
12169
0
  {
12170
0
    JS::Realm* realm = js::GetContextRealm(cx);
12171
0
    MOZ_ASSERT(realm);
12172
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12173
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12174
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12175
0
      principal = nullptr;
12176
0
    }
12177
0
12178
0
    subjectPrincipal = principal;
12179
0
  }
12180
0
  self->SetBorderRightStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12181
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12182
0
    return false;
12183
0
  }
12184
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12185
0
12186
0
  return true;
12187
0
}
12188
12189
static const JSJitInfo borderRightStyle_getterinfo = {
12190
  { (JSJitGetterOp)get_borderRightStyle },
12191
  { prototypes::id::CSS2Properties },
12192
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12193
  JSJitInfo::Getter,
12194
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12195
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12196
  false,  /* isInfallible. False in setters. */
12197
  false,  /* isMovable.  Not relevant for setters. */
12198
  false, /* isEliminatable.  Not relevant for setters. */
12199
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12200
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12201
  false,  /* isTypedMethod.  Only relevant for methods. */
12202
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12203
};
12204
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12205
static_assert(0 < 1, "There is no slot for us");
12206
static const JSJitInfo borderRightStyle_setterinfo = {
12207
  { (JSJitGetterOp)set_borderRightStyle },
12208
  { prototypes::id::CSS2Properties },
12209
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12210
  JSJitInfo::Setter,
12211
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12212
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12213
  false,  /* isInfallible. False in setters. */
12214
  false,  /* isMovable.  Not relevant for setters. */
12215
  false, /* isEliminatable.  Not relevant for setters. */
12216
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12217
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12218
  false,  /* isTypedMethod.  Only relevant for methods. */
12219
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12220
};
12221
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12222
static_assert(0 < 1, "There is no slot for us");
12223
12224
MOZ_CAN_RUN_SCRIPT static bool
12225
get_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12226
0
{
12227
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTopStyle", DOM, cx);
12228
0
12229
0
  FastErrorResult rv;
12230
0
  DOMString result;
12231
0
  self->GetBorderTopStyle(result, rv);
12232
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12233
0
    return false;
12234
0
  }
12235
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12236
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12237
0
    return false;
12238
0
  }
12239
0
  return true;
12240
0
}
12241
12242
MOZ_CAN_RUN_SCRIPT static bool
12243
set_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12244
0
{
12245
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTopStyle", DOM, cx);
12246
0
12247
0
  binding_detail::FakeString arg0;
12248
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12249
0
    return false;
12250
0
  }
12251
0
  Maybe<AutoCEReaction> ceReaction;
12252
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12253
0
    DocGroup* docGroup = self->GetDocGroup();
12254
0
    if (docGroup) {
12255
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12256
0
    }
12257
0
  }
12258
0
  FastErrorResult rv;
12259
0
  nsIPrincipal* subjectPrincipal;
12260
0
  {
12261
0
    JS::Realm* realm = js::GetContextRealm(cx);
12262
0
    MOZ_ASSERT(realm);
12263
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12264
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12265
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12266
0
      principal = nullptr;
12267
0
    }
12268
0
12269
0
    subjectPrincipal = principal;
12270
0
  }
12271
0
  self->SetBorderTopStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12272
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12273
0
    return false;
12274
0
  }
12275
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12276
0
12277
0
  return true;
12278
0
}
12279
12280
static const JSJitInfo borderTopStyle_getterinfo = {
12281
  { (JSJitGetterOp)get_borderTopStyle },
12282
  { prototypes::id::CSS2Properties },
12283
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12284
  JSJitInfo::Getter,
12285
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12286
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12287
  false,  /* isInfallible. False in setters. */
12288
  false,  /* isMovable.  Not relevant for setters. */
12289
  false, /* isEliminatable.  Not relevant for setters. */
12290
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12291
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12292
  false,  /* isTypedMethod.  Only relevant for methods. */
12293
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12294
};
12295
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12296
static_assert(0 < 1, "There is no slot for us");
12297
static const JSJitInfo borderTopStyle_setterinfo = {
12298
  { (JSJitGetterOp)set_borderTopStyle },
12299
  { prototypes::id::CSS2Properties },
12300
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12301
  JSJitInfo::Setter,
12302
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12303
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12304
  false,  /* isInfallible. False in setters. */
12305
  false,  /* isMovable.  Not relevant for setters. */
12306
  false, /* isEliminatable.  Not relevant for setters. */
12307
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12308
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12309
  false,  /* isTypedMethod.  Only relevant for methods. */
12310
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12311
};
12312
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12313
static_assert(0 < 1, "There is no slot for us");
12314
12315
MOZ_CAN_RUN_SCRIPT static bool
12316
get_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12317
0
{
12318
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationDelay", DOM, cx);
12319
0
12320
0
  FastErrorResult rv;
12321
0
  DOMString result;
12322
0
  self->GetAnimationDelay(result, rv);
12323
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12324
0
    return false;
12325
0
  }
12326
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12327
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12328
0
    return false;
12329
0
  }
12330
0
  return true;
12331
0
}
12332
12333
MOZ_CAN_RUN_SCRIPT static bool
12334
set_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12335
0
{
12336
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationDelay", DOM, cx);
12337
0
12338
0
  binding_detail::FakeString arg0;
12339
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12340
0
    return false;
12341
0
  }
12342
0
  Maybe<AutoCEReaction> ceReaction;
12343
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12344
0
    DocGroup* docGroup = self->GetDocGroup();
12345
0
    if (docGroup) {
12346
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12347
0
    }
12348
0
  }
12349
0
  FastErrorResult rv;
12350
0
  nsIPrincipal* subjectPrincipal;
12351
0
  {
12352
0
    JS::Realm* realm = js::GetContextRealm(cx);
12353
0
    MOZ_ASSERT(realm);
12354
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12355
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12356
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12357
0
      principal = nullptr;
12358
0
    }
12359
0
12360
0
    subjectPrincipal = principal;
12361
0
  }
12362
0
  self->SetAnimationDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12363
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12364
0
    return false;
12365
0
  }
12366
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12367
0
12368
0
  return true;
12369
0
}
12370
12371
static const JSJitInfo animationDelay_getterinfo = {
12372
  { (JSJitGetterOp)get_animationDelay },
12373
  { prototypes::id::CSS2Properties },
12374
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12375
  JSJitInfo::Getter,
12376
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12377
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12378
  false,  /* isInfallible. False in setters. */
12379
  false,  /* isMovable.  Not relevant for setters. */
12380
  false, /* isEliminatable.  Not relevant for setters. */
12381
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12382
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12383
  false,  /* isTypedMethod.  Only relevant for methods. */
12384
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12385
};
12386
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12387
static_assert(0 < 1, "There is no slot for us");
12388
static const JSJitInfo animationDelay_setterinfo = {
12389
  { (JSJitGetterOp)set_animationDelay },
12390
  { prototypes::id::CSS2Properties },
12391
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12392
  JSJitInfo::Setter,
12393
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12394
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12395
  false,  /* isInfallible. False in setters. */
12396
  false,  /* isMovable.  Not relevant for setters. */
12397
  false, /* isEliminatable.  Not relevant for setters. */
12398
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12399
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12400
  false,  /* isTypedMethod.  Only relevant for methods. */
12401
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12402
};
12403
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12404
static_assert(0 < 1, "There is no slot for us");
12405
12406
MOZ_CAN_RUN_SCRIPT static bool
12407
get_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12408
0
{
12409
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationDirection", DOM, cx);
12410
0
12411
0
  FastErrorResult rv;
12412
0
  DOMString result;
12413
0
  self->GetAnimationDirection(result, rv);
12414
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12415
0
    return false;
12416
0
  }
12417
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12418
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12419
0
    return false;
12420
0
  }
12421
0
  return true;
12422
0
}
12423
12424
MOZ_CAN_RUN_SCRIPT static bool
12425
set_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12426
0
{
12427
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationDirection", DOM, cx);
12428
0
12429
0
  binding_detail::FakeString arg0;
12430
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12431
0
    return false;
12432
0
  }
12433
0
  Maybe<AutoCEReaction> ceReaction;
12434
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12435
0
    DocGroup* docGroup = self->GetDocGroup();
12436
0
    if (docGroup) {
12437
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12438
0
    }
12439
0
  }
12440
0
  FastErrorResult rv;
12441
0
  nsIPrincipal* subjectPrincipal;
12442
0
  {
12443
0
    JS::Realm* realm = js::GetContextRealm(cx);
12444
0
    MOZ_ASSERT(realm);
12445
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12446
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12447
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12448
0
      principal = nullptr;
12449
0
    }
12450
0
12451
0
    subjectPrincipal = principal;
12452
0
  }
12453
0
  self->SetAnimationDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12454
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12455
0
    return false;
12456
0
  }
12457
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12458
0
12459
0
  return true;
12460
0
}
12461
12462
static const JSJitInfo animationDirection_getterinfo = {
12463
  { (JSJitGetterOp)get_animationDirection },
12464
  { prototypes::id::CSS2Properties },
12465
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12466
  JSJitInfo::Getter,
12467
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12468
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12469
  false,  /* isInfallible. False in setters. */
12470
  false,  /* isMovable.  Not relevant for setters. */
12471
  false, /* isEliminatable.  Not relevant for setters. */
12472
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12473
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12474
  false,  /* isTypedMethod.  Only relevant for methods. */
12475
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12476
};
12477
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12478
static_assert(0 < 1, "There is no slot for us");
12479
static const JSJitInfo animationDirection_setterinfo = {
12480
  { (JSJitGetterOp)set_animationDirection },
12481
  { prototypes::id::CSS2Properties },
12482
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12483
  JSJitInfo::Setter,
12484
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12485
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12486
  false,  /* isInfallible. False in setters. */
12487
  false,  /* isMovable.  Not relevant for setters. */
12488
  false, /* isEliminatable.  Not relevant for setters. */
12489
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12490
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12491
  false,  /* isTypedMethod.  Only relevant for methods. */
12492
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12493
};
12494
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12495
static_assert(0 < 1, "There is no slot for us");
12496
12497
MOZ_CAN_RUN_SCRIPT static bool
12498
get_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12499
0
{
12500
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationDuration", DOM, cx);
12501
0
12502
0
  FastErrorResult rv;
12503
0
  DOMString result;
12504
0
  self->GetAnimationDuration(result, rv);
12505
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12506
0
    return false;
12507
0
  }
12508
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12509
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12510
0
    return false;
12511
0
  }
12512
0
  return true;
12513
0
}
12514
12515
MOZ_CAN_RUN_SCRIPT static bool
12516
set_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12517
0
{
12518
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationDuration", DOM, cx);
12519
0
12520
0
  binding_detail::FakeString arg0;
12521
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12522
0
    return false;
12523
0
  }
12524
0
  Maybe<AutoCEReaction> ceReaction;
12525
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12526
0
    DocGroup* docGroup = self->GetDocGroup();
12527
0
    if (docGroup) {
12528
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12529
0
    }
12530
0
  }
12531
0
  FastErrorResult rv;
12532
0
  nsIPrincipal* subjectPrincipal;
12533
0
  {
12534
0
    JS::Realm* realm = js::GetContextRealm(cx);
12535
0
    MOZ_ASSERT(realm);
12536
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12537
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12538
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12539
0
      principal = nullptr;
12540
0
    }
12541
0
12542
0
    subjectPrincipal = principal;
12543
0
  }
12544
0
  self->SetAnimationDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12545
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12546
0
    return false;
12547
0
  }
12548
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12549
0
12550
0
  return true;
12551
0
}
12552
12553
static const JSJitInfo animationDuration_getterinfo = {
12554
  { (JSJitGetterOp)get_animationDuration },
12555
  { prototypes::id::CSS2Properties },
12556
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12557
  JSJitInfo::Getter,
12558
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12559
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12560
  false,  /* isInfallible. False in setters. */
12561
  false,  /* isMovable.  Not relevant for setters. */
12562
  false, /* isEliminatable.  Not relevant for setters. */
12563
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12564
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12565
  false,  /* isTypedMethod.  Only relevant for methods. */
12566
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12567
};
12568
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12569
static_assert(0 < 1, "There is no slot for us");
12570
static const JSJitInfo animationDuration_setterinfo = {
12571
  { (JSJitGetterOp)set_animationDuration },
12572
  { prototypes::id::CSS2Properties },
12573
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12574
  JSJitInfo::Setter,
12575
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12576
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12577
  false,  /* isInfallible. False in setters. */
12578
  false,  /* isMovable.  Not relevant for setters. */
12579
  false, /* isEliminatable.  Not relevant for setters. */
12580
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12581
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12582
  false,  /* isTypedMethod.  Only relevant for methods. */
12583
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12584
};
12585
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12586
static_assert(0 < 1, "There is no slot for us");
12587
12588
MOZ_CAN_RUN_SCRIPT static bool
12589
get_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12590
0
{
12591
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationFillMode", DOM, cx);
12592
0
12593
0
  FastErrorResult rv;
12594
0
  DOMString result;
12595
0
  self->GetAnimationFillMode(result, rv);
12596
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12597
0
    return false;
12598
0
  }
12599
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12600
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12601
0
    return false;
12602
0
  }
12603
0
  return true;
12604
0
}
12605
12606
MOZ_CAN_RUN_SCRIPT static bool
12607
set_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12608
0
{
12609
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationFillMode", DOM, cx);
12610
0
12611
0
  binding_detail::FakeString arg0;
12612
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12613
0
    return false;
12614
0
  }
12615
0
  Maybe<AutoCEReaction> ceReaction;
12616
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12617
0
    DocGroup* docGroup = self->GetDocGroup();
12618
0
    if (docGroup) {
12619
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12620
0
    }
12621
0
  }
12622
0
  FastErrorResult rv;
12623
0
  nsIPrincipal* subjectPrincipal;
12624
0
  {
12625
0
    JS::Realm* realm = js::GetContextRealm(cx);
12626
0
    MOZ_ASSERT(realm);
12627
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12628
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12629
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12630
0
      principal = nullptr;
12631
0
    }
12632
0
12633
0
    subjectPrincipal = principal;
12634
0
  }
12635
0
  self->SetAnimationFillMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12636
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12637
0
    return false;
12638
0
  }
12639
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12640
0
12641
0
  return true;
12642
0
}
12643
12644
static const JSJitInfo animationFillMode_getterinfo = {
12645
  { (JSJitGetterOp)get_animationFillMode },
12646
  { prototypes::id::CSS2Properties },
12647
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12648
  JSJitInfo::Getter,
12649
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12650
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12651
  false,  /* isInfallible. False in setters. */
12652
  false,  /* isMovable.  Not relevant for setters. */
12653
  false, /* isEliminatable.  Not relevant for setters. */
12654
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12655
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12656
  false,  /* isTypedMethod.  Only relevant for methods. */
12657
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12658
};
12659
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12660
static_assert(0 < 1, "There is no slot for us");
12661
static const JSJitInfo animationFillMode_setterinfo = {
12662
  { (JSJitGetterOp)set_animationFillMode },
12663
  { prototypes::id::CSS2Properties },
12664
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12665
  JSJitInfo::Setter,
12666
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12667
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12668
  false,  /* isInfallible. False in setters. */
12669
  false,  /* isMovable.  Not relevant for setters. */
12670
  false, /* isEliminatable.  Not relevant for setters. */
12671
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12672
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12673
  false,  /* isTypedMethod.  Only relevant for methods. */
12674
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12675
};
12676
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12677
static_assert(0 < 1, "There is no slot for us");
12678
12679
MOZ_CAN_RUN_SCRIPT static bool
12680
get_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12681
0
{
12682
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationIterationCount", DOM, cx);
12683
0
12684
0
  FastErrorResult rv;
12685
0
  DOMString result;
12686
0
  self->GetAnimationIterationCount(result, rv);
12687
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12688
0
    return false;
12689
0
  }
12690
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12691
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12692
0
    return false;
12693
0
  }
12694
0
  return true;
12695
0
}
12696
12697
MOZ_CAN_RUN_SCRIPT static bool
12698
set_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12699
0
{
12700
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationIterationCount", DOM, cx);
12701
0
12702
0
  binding_detail::FakeString arg0;
12703
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12704
0
    return false;
12705
0
  }
12706
0
  Maybe<AutoCEReaction> ceReaction;
12707
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12708
0
    DocGroup* docGroup = self->GetDocGroup();
12709
0
    if (docGroup) {
12710
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12711
0
    }
12712
0
  }
12713
0
  FastErrorResult rv;
12714
0
  nsIPrincipal* subjectPrincipal;
12715
0
  {
12716
0
    JS::Realm* realm = js::GetContextRealm(cx);
12717
0
    MOZ_ASSERT(realm);
12718
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12719
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12720
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12721
0
      principal = nullptr;
12722
0
    }
12723
0
12724
0
    subjectPrincipal = principal;
12725
0
  }
12726
0
  self->SetAnimationIterationCount(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12727
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12728
0
    return false;
12729
0
  }
12730
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12731
0
12732
0
  return true;
12733
0
}
12734
12735
static const JSJitInfo animationIterationCount_getterinfo = {
12736
  { (JSJitGetterOp)get_animationIterationCount },
12737
  { prototypes::id::CSS2Properties },
12738
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12739
  JSJitInfo::Getter,
12740
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12741
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12742
  false,  /* isInfallible. False in setters. */
12743
  false,  /* isMovable.  Not relevant for setters. */
12744
  false, /* isEliminatable.  Not relevant for setters. */
12745
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12746
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12747
  false,  /* isTypedMethod.  Only relevant for methods. */
12748
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12749
};
12750
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12751
static_assert(0 < 1, "There is no slot for us");
12752
static const JSJitInfo animationIterationCount_setterinfo = {
12753
  { (JSJitGetterOp)set_animationIterationCount },
12754
  { prototypes::id::CSS2Properties },
12755
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12756
  JSJitInfo::Setter,
12757
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12758
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12759
  false,  /* isInfallible. False in setters. */
12760
  false,  /* isMovable.  Not relevant for setters. */
12761
  false, /* isEliminatable.  Not relevant for setters. */
12762
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12763
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12764
  false,  /* isTypedMethod.  Only relevant for methods. */
12765
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12766
};
12767
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12768
static_assert(0 < 1, "There is no slot for us");
12769
12770
MOZ_CAN_RUN_SCRIPT static bool
12771
get_animationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12772
0
{
12773
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationName", DOM, cx);
12774
0
12775
0
  FastErrorResult rv;
12776
0
  DOMString result;
12777
0
  self->GetAnimationName(result, rv);
12778
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12779
0
    return false;
12780
0
  }
12781
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12782
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12783
0
    return false;
12784
0
  }
12785
0
  return true;
12786
0
}
12787
12788
MOZ_CAN_RUN_SCRIPT static bool
12789
set_animationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12790
0
{
12791
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationName", DOM, cx);
12792
0
12793
0
  binding_detail::FakeString arg0;
12794
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12795
0
    return false;
12796
0
  }
12797
0
  Maybe<AutoCEReaction> ceReaction;
12798
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12799
0
    DocGroup* docGroup = self->GetDocGroup();
12800
0
    if (docGroup) {
12801
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12802
0
    }
12803
0
  }
12804
0
  FastErrorResult rv;
12805
0
  nsIPrincipal* subjectPrincipal;
12806
0
  {
12807
0
    JS::Realm* realm = js::GetContextRealm(cx);
12808
0
    MOZ_ASSERT(realm);
12809
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12810
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12811
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12812
0
      principal = nullptr;
12813
0
    }
12814
0
12815
0
    subjectPrincipal = principal;
12816
0
  }
12817
0
  self->SetAnimationName(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12818
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12819
0
    return false;
12820
0
  }
12821
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12822
0
12823
0
  return true;
12824
0
}
12825
12826
static const JSJitInfo animationName_getterinfo = {
12827
  { (JSJitGetterOp)get_animationName },
12828
  { prototypes::id::CSS2Properties },
12829
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12830
  JSJitInfo::Getter,
12831
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12832
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12833
  false,  /* isInfallible. False in setters. */
12834
  false,  /* isMovable.  Not relevant for setters. */
12835
  false, /* isEliminatable.  Not relevant for setters. */
12836
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12837
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12838
  false,  /* isTypedMethod.  Only relevant for methods. */
12839
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12840
};
12841
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12842
static_assert(0 < 1, "There is no slot for us");
12843
static const JSJitInfo animationName_setterinfo = {
12844
  { (JSJitGetterOp)set_animationName },
12845
  { prototypes::id::CSS2Properties },
12846
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12847
  JSJitInfo::Setter,
12848
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12849
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12850
  false,  /* isInfallible. False in setters. */
12851
  false,  /* isMovable.  Not relevant for setters. */
12852
  false, /* isEliminatable.  Not relevant for setters. */
12853
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12854
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12855
  false,  /* isTypedMethod.  Only relevant for methods. */
12856
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12857
};
12858
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12859
static_assert(0 < 1, "There is no slot for us");
12860
12861
MOZ_CAN_RUN_SCRIPT static bool
12862
get_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12863
0
{
12864
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationPlayState", DOM, cx);
12865
0
12866
0
  FastErrorResult rv;
12867
0
  DOMString result;
12868
0
  self->GetAnimationPlayState(result, rv);
12869
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12870
0
    return false;
12871
0
  }
12872
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12873
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12874
0
    return false;
12875
0
  }
12876
0
  return true;
12877
0
}
12878
12879
MOZ_CAN_RUN_SCRIPT static bool
12880
set_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12881
0
{
12882
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationPlayState", DOM, cx);
12883
0
12884
0
  binding_detail::FakeString arg0;
12885
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12886
0
    return false;
12887
0
  }
12888
0
  Maybe<AutoCEReaction> ceReaction;
12889
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12890
0
    DocGroup* docGroup = self->GetDocGroup();
12891
0
    if (docGroup) {
12892
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12893
0
    }
12894
0
  }
12895
0
  FastErrorResult rv;
12896
0
  nsIPrincipal* subjectPrincipal;
12897
0
  {
12898
0
    JS::Realm* realm = js::GetContextRealm(cx);
12899
0
    MOZ_ASSERT(realm);
12900
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12901
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12902
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12903
0
      principal = nullptr;
12904
0
    }
12905
0
12906
0
    subjectPrincipal = principal;
12907
0
  }
12908
0
  self->SetAnimationPlayState(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
12909
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12910
0
    return false;
12911
0
  }
12912
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12913
0
12914
0
  return true;
12915
0
}
12916
12917
static const JSJitInfo animationPlayState_getterinfo = {
12918
  { (JSJitGetterOp)get_animationPlayState },
12919
  { prototypes::id::CSS2Properties },
12920
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12921
  JSJitInfo::Getter,
12922
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12923
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
12924
  false,  /* isInfallible. False in setters. */
12925
  false,  /* isMovable.  Not relevant for setters. */
12926
  false, /* isEliminatable.  Not relevant for setters. */
12927
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12928
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12929
  false,  /* isTypedMethod.  Only relevant for methods. */
12930
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12931
};
12932
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12933
static_assert(0 < 1, "There is no slot for us");
12934
static const JSJitInfo animationPlayState_setterinfo = {
12935
  { (JSJitGetterOp)set_animationPlayState },
12936
  { prototypes::id::CSS2Properties },
12937
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
12938
  JSJitInfo::Setter,
12939
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
12940
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
12941
  false,  /* isInfallible. False in setters. */
12942
  false,  /* isMovable.  Not relevant for setters. */
12943
  false, /* isEliminatable.  Not relevant for setters. */
12944
  false, /* isAlwaysInSlot.  Only relevant for getters. */
12945
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
12946
  false,  /* isTypedMethod.  Only relevant for methods. */
12947
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
12948
};
12949
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
12950
static_assert(0 < 1, "There is no slot for us");
12951
12952
MOZ_CAN_RUN_SCRIPT static bool
12953
get_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
12954
0
{
12955
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animationTimingFunction", DOM, cx);
12956
0
12957
0
  FastErrorResult rv;
12958
0
  DOMString result;
12959
0
  self->GetAnimationTimingFunction(result, rv);
12960
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
12961
0
    return false;
12962
0
  }
12963
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
12964
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
12965
0
    return false;
12966
0
  }
12967
0
  return true;
12968
0
}
12969
12970
MOZ_CAN_RUN_SCRIPT static bool
12971
set_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
12972
0
{
12973
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animationTimingFunction", DOM, cx);
12974
0
12975
0
  binding_detail::FakeString arg0;
12976
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
12977
0
    return false;
12978
0
  }
12979
0
  Maybe<AutoCEReaction> ceReaction;
12980
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
12981
0
    DocGroup* docGroup = self->GetDocGroup();
12982
0
    if (docGroup) {
12983
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
12984
0
    }
12985
0
  }
12986
0
  FastErrorResult rv;
12987
0
  nsIPrincipal* subjectPrincipal;
12988
0
  {
12989
0
    JS::Realm* realm = js::GetContextRealm(cx);
12990
0
    MOZ_ASSERT(realm);
12991
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
12992
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
12993
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
12994
0
      principal = nullptr;
12995
0
    }
12996
0
12997
0
    subjectPrincipal = principal;
12998
0
  }
12999
0
  self->SetAnimationTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13000
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13001
0
    return false;
13002
0
  }
13003
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13004
0
13005
0
  return true;
13006
0
}
13007
13008
static const JSJitInfo animationTimingFunction_getterinfo = {
13009
  { (JSJitGetterOp)get_animationTimingFunction },
13010
  { prototypes::id::CSS2Properties },
13011
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13012
  JSJitInfo::Getter,
13013
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13014
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13015
  false,  /* isInfallible. False in setters. */
13016
  false,  /* isMovable.  Not relevant for setters. */
13017
  false, /* isEliminatable.  Not relevant for setters. */
13018
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13019
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13020
  false,  /* isTypedMethod.  Only relevant for methods. */
13021
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13022
};
13023
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13024
static_assert(0 < 1, "There is no slot for us");
13025
static const JSJitInfo animationTimingFunction_setterinfo = {
13026
  { (JSJitGetterOp)set_animationTimingFunction },
13027
  { prototypes::id::CSS2Properties },
13028
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13029
  JSJitInfo::Setter,
13030
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13031
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13032
  false,  /* isInfallible. False in setters. */
13033
  false,  /* isMovable.  Not relevant for setters. */
13034
  false, /* isEliminatable.  Not relevant for setters. */
13035
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13036
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13037
  false,  /* isTypedMethod.  Only relevant for methods. */
13038
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13039
};
13040
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13041
static_assert(0 < 1, "There is no slot for us");
13042
13043
MOZ_CAN_RUN_SCRIPT static bool
13044
get_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13045
0
{
13046
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundAttachment", DOM, cx);
13047
0
13048
0
  FastErrorResult rv;
13049
0
  DOMString result;
13050
0
  self->GetBackgroundAttachment(result, rv);
13051
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13052
0
    return false;
13053
0
  }
13054
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13055
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13056
0
    return false;
13057
0
  }
13058
0
  return true;
13059
0
}
13060
13061
MOZ_CAN_RUN_SCRIPT static bool
13062
set_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13063
0
{
13064
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundAttachment", DOM, cx);
13065
0
13066
0
  binding_detail::FakeString arg0;
13067
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13068
0
    return false;
13069
0
  }
13070
0
  Maybe<AutoCEReaction> ceReaction;
13071
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13072
0
    DocGroup* docGroup = self->GetDocGroup();
13073
0
    if (docGroup) {
13074
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13075
0
    }
13076
0
  }
13077
0
  FastErrorResult rv;
13078
0
  nsIPrincipal* subjectPrincipal;
13079
0
  {
13080
0
    JS::Realm* realm = js::GetContextRealm(cx);
13081
0
    MOZ_ASSERT(realm);
13082
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13083
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13084
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13085
0
      principal = nullptr;
13086
0
    }
13087
0
13088
0
    subjectPrincipal = principal;
13089
0
  }
13090
0
  self->SetBackgroundAttachment(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13091
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13092
0
    return false;
13093
0
  }
13094
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13095
0
13096
0
  return true;
13097
0
}
13098
13099
static const JSJitInfo backgroundAttachment_getterinfo = {
13100
  { (JSJitGetterOp)get_backgroundAttachment },
13101
  { prototypes::id::CSS2Properties },
13102
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13103
  JSJitInfo::Getter,
13104
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13105
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13106
  false,  /* isInfallible. False in setters. */
13107
  false,  /* isMovable.  Not relevant for setters. */
13108
  false, /* isEliminatable.  Not relevant for setters. */
13109
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13110
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13111
  false,  /* isTypedMethod.  Only relevant for methods. */
13112
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13113
};
13114
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13115
static_assert(0 < 1, "There is no slot for us");
13116
static const JSJitInfo backgroundAttachment_setterinfo = {
13117
  { (JSJitGetterOp)set_backgroundAttachment },
13118
  { prototypes::id::CSS2Properties },
13119
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13120
  JSJitInfo::Setter,
13121
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13122
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13123
  false,  /* isInfallible. False in setters. */
13124
  false,  /* isMovable.  Not relevant for setters. */
13125
  false, /* isEliminatable.  Not relevant for setters. */
13126
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13127
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13128
  false,  /* isTypedMethod.  Only relevant for methods. */
13129
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13130
};
13131
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13132
static_assert(0 < 1, "There is no slot for us");
13133
13134
MOZ_CAN_RUN_SCRIPT static bool
13135
get_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13136
0
{
13137
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundBlendMode", DOM, cx);
13138
0
13139
0
  FastErrorResult rv;
13140
0
  DOMString result;
13141
0
  self->GetBackgroundBlendMode(result, rv);
13142
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13143
0
    return false;
13144
0
  }
13145
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13146
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13147
0
    return false;
13148
0
  }
13149
0
  return true;
13150
0
}
13151
13152
MOZ_CAN_RUN_SCRIPT static bool
13153
set_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13154
0
{
13155
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundBlendMode", DOM, cx);
13156
0
13157
0
  binding_detail::FakeString arg0;
13158
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13159
0
    return false;
13160
0
  }
13161
0
  Maybe<AutoCEReaction> ceReaction;
13162
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13163
0
    DocGroup* docGroup = self->GetDocGroup();
13164
0
    if (docGroup) {
13165
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13166
0
    }
13167
0
  }
13168
0
  FastErrorResult rv;
13169
0
  nsIPrincipal* subjectPrincipal;
13170
0
  {
13171
0
    JS::Realm* realm = js::GetContextRealm(cx);
13172
0
    MOZ_ASSERT(realm);
13173
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13174
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13175
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13176
0
      principal = nullptr;
13177
0
    }
13178
0
13179
0
    subjectPrincipal = principal;
13180
0
  }
13181
0
  self->SetBackgroundBlendMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13182
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13183
0
    return false;
13184
0
  }
13185
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13186
0
13187
0
  return true;
13188
0
}
13189
13190
static const JSJitInfo backgroundBlendMode_getterinfo = {
13191
  { (JSJitGetterOp)get_backgroundBlendMode },
13192
  { prototypes::id::CSS2Properties },
13193
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13194
  JSJitInfo::Getter,
13195
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13196
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13197
  false,  /* isInfallible. False in setters. */
13198
  false,  /* isMovable.  Not relevant for setters. */
13199
  false, /* isEliminatable.  Not relevant for setters. */
13200
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13201
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13202
  false,  /* isTypedMethod.  Only relevant for methods. */
13203
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13204
};
13205
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13206
static_assert(0 < 1, "There is no slot for us");
13207
static const JSJitInfo backgroundBlendMode_setterinfo = {
13208
  { (JSJitGetterOp)set_backgroundBlendMode },
13209
  { prototypes::id::CSS2Properties },
13210
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13211
  JSJitInfo::Setter,
13212
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13213
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13214
  false,  /* isInfallible. False in setters. */
13215
  false,  /* isMovable.  Not relevant for setters. */
13216
  false, /* isEliminatable.  Not relevant for setters. */
13217
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13218
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13219
  false,  /* isTypedMethod.  Only relevant for methods. */
13220
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13221
};
13222
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13223
static_assert(0 < 1, "There is no slot for us");
13224
13225
MOZ_CAN_RUN_SCRIPT static bool
13226
get_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13227
0
{
13228
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundClip", DOM, cx);
13229
0
13230
0
  FastErrorResult rv;
13231
0
  DOMString result;
13232
0
  self->GetBackgroundClip(result, rv);
13233
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13234
0
    return false;
13235
0
  }
13236
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13237
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13238
0
    return false;
13239
0
  }
13240
0
  return true;
13241
0
}
13242
13243
MOZ_CAN_RUN_SCRIPT static bool
13244
set_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13245
0
{
13246
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundClip", DOM, cx);
13247
0
13248
0
  binding_detail::FakeString arg0;
13249
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13250
0
    return false;
13251
0
  }
13252
0
  Maybe<AutoCEReaction> ceReaction;
13253
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13254
0
    DocGroup* docGroup = self->GetDocGroup();
13255
0
    if (docGroup) {
13256
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13257
0
    }
13258
0
  }
13259
0
  FastErrorResult rv;
13260
0
  nsIPrincipal* subjectPrincipal;
13261
0
  {
13262
0
    JS::Realm* realm = js::GetContextRealm(cx);
13263
0
    MOZ_ASSERT(realm);
13264
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13265
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13266
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13267
0
      principal = nullptr;
13268
0
    }
13269
0
13270
0
    subjectPrincipal = principal;
13271
0
  }
13272
0
  self->SetBackgroundClip(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13273
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13274
0
    return false;
13275
0
  }
13276
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13277
0
13278
0
  return true;
13279
0
}
13280
13281
static const JSJitInfo backgroundClip_getterinfo = {
13282
  { (JSJitGetterOp)get_backgroundClip },
13283
  { prototypes::id::CSS2Properties },
13284
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13285
  JSJitInfo::Getter,
13286
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13287
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13288
  false,  /* isInfallible. False in setters. */
13289
  false,  /* isMovable.  Not relevant for setters. */
13290
  false, /* isEliminatable.  Not relevant for setters. */
13291
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13292
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13293
  false,  /* isTypedMethod.  Only relevant for methods. */
13294
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13295
};
13296
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13297
static_assert(0 < 1, "There is no slot for us");
13298
static const JSJitInfo backgroundClip_setterinfo = {
13299
  { (JSJitGetterOp)set_backgroundClip },
13300
  { prototypes::id::CSS2Properties },
13301
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13302
  JSJitInfo::Setter,
13303
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13304
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13305
  false,  /* isInfallible. False in setters. */
13306
  false,  /* isMovable.  Not relevant for setters. */
13307
  false, /* isEliminatable.  Not relevant for setters. */
13308
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13309
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13310
  false,  /* isTypedMethod.  Only relevant for methods. */
13311
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13312
};
13313
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13314
static_assert(0 < 1, "There is no slot for us");
13315
13316
MOZ_CAN_RUN_SCRIPT static bool
13317
get_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13318
0
{
13319
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundImage", DOM, cx);
13320
0
13321
0
  FastErrorResult rv;
13322
0
  DOMString result;
13323
0
  self->GetBackgroundImage(result, rv);
13324
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13325
0
    return false;
13326
0
  }
13327
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13328
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13329
0
    return false;
13330
0
  }
13331
0
  return true;
13332
0
}
13333
13334
MOZ_CAN_RUN_SCRIPT static bool
13335
set_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13336
0
{
13337
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundImage", DOM, cx);
13338
0
13339
0
  binding_detail::FakeString arg0;
13340
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13341
0
    return false;
13342
0
  }
13343
0
  Maybe<AutoCEReaction> ceReaction;
13344
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13345
0
    DocGroup* docGroup = self->GetDocGroup();
13346
0
    if (docGroup) {
13347
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13348
0
    }
13349
0
  }
13350
0
  FastErrorResult rv;
13351
0
  nsIPrincipal* subjectPrincipal;
13352
0
  {
13353
0
    JS::Realm* realm = js::GetContextRealm(cx);
13354
0
    MOZ_ASSERT(realm);
13355
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13356
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13357
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13358
0
      principal = nullptr;
13359
0
    }
13360
0
13361
0
    subjectPrincipal = principal;
13362
0
  }
13363
0
  self->SetBackgroundImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13364
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13365
0
    return false;
13366
0
  }
13367
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13368
0
13369
0
  return true;
13370
0
}
13371
13372
static const JSJitInfo backgroundImage_getterinfo = {
13373
  { (JSJitGetterOp)get_backgroundImage },
13374
  { prototypes::id::CSS2Properties },
13375
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13376
  JSJitInfo::Getter,
13377
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13378
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13379
  false,  /* isInfallible. False in setters. */
13380
  false,  /* isMovable.  Not relevant for setters. */
13381
  false, /* isEliminatable.  Not relevant for setters. */
13382
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13383
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13384
  false,  /* isTypedMethod.  Only relevant for methods. */
13385
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13386
};
13387
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13388
static_assert(0 < 1, "There is no slot for us");
13389
static const JSJitInfo backgroundImage_setterinfo = {
13390
  { (JSJitGetterOp)set_backgroundImage },
13391
  { prototypes::id::CSS2Properties },
13392
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13393
  JSJitInfo::Setter,
13394
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13395
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13396
  false,  /* isInfallible. False in setters. */
13397
  false,  /* isMovable.  Not relevant for setters. */
13398
  false, /* isEliminatable.  Not relevant for setters. */
13399
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13400
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13401
  false,  /* isTypedMethod.  Only relevant for methods. */
13402
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13403
};
13404
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13405
static_assert(0 < 1, "There is no slot for us");
13406
13407
MOZ_CAN_RUN_SCRIPT static bool
13408
get_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13409
0
{
13410
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundOrigin", DOM, cx);
13411
0
13412
0
  FastErrorResult rv;
13413
0
  DOMString result;
13414
0
  self->GetBackgroundOrigin(result, rv);
13415
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13416
0
    return false;
13417
0
  }
13418
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13419
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13420
0
    return false;
13421
0
  }
13422
0
  return true;
13423
0
}
13424
13425
MOZ_CAN_RUN_SCRIPT static bool
13426
set_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13427
0
{
13428
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundOrigin", DOM, cx);
13429
0
13430
0
  binding_detail::FakeString arg0;
13431
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13432
0
    return false;
13433
0
  }
13434
0
  Maybe<AutoCEReaction> ceReaction;
13435
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13436
0
    DocGroup* docGroup = self->GetDocGroup();
13437
0
    if (docGroup) {
13438
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13439
0
    }
13440
0
  }
13441
0
  FastErrorResult rv;
13442
0
  nsIPrincipal* subjectPrincipal;
13443
0
  {
13444
0
    JS::Realm* realm = js::GetContextRealm(cx);
13445
0
    MOZ_ASSERT(realm);
13446
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13447
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13448
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13449
0
      principal = nullptr;
13450
0
    }
13451
0
13452
0
    subjectPrincipal = principal;
13453
0
  }
13454
0
  self->SetBackgroundOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13455
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13456
0
    return false;
13457
0
  }
13458
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13459
0
13460
0
  return true;
13461
0
}
13462
13463
static const JSJitInfo backgroundOrigin_getterinfo = {
13464
  { (JSJitGetterOp)get_backgroundOrigin },
13465
  { prototypes::id::CSS2Properties },
13466
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13467
  JSJitInfo::Getter,
13468
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13469
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13470
  false,  /* isInfallible. False in setters. */
13471
  false,  /* isMovable.  Not relevant for setters. */
13472
  false, /* isEliminatable.  Not relevant for setters. */
13473
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13474
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13475
  false,  /* isTypedMethod.  Only relevant for methods. */
13476
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13477
};
13478
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13479
static_assert(0 < 1, "There is no slot for us");
13480
static const JSJitInfo backgroundOrigin_setterinfo = {
13481
  { (JSJitGetterOp)set_backgroundOrigin },
13482
  { prototypes::id::CSS2Properties },
13483
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13484
  JSJitInfo::Setter,
13485
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13486
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13487
  false,  /* isInfallible. False in setters. */
13488
  false,  /* isMovable.  Not relevant for setters. */
13489
  false, /* isEliminatable.  Not relevant for setters. */
13490
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13491
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13492
  false,  /* isTypedMethod.  Only relevant for methods. */
13493
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13494
};
13495
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13496
static_assert(0 < 1, "There is no slot for us");
13497
13498
MOZ_CAN_RUN_SCRIPT static bool
13499
get_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13500
0
{
13501
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundPositionX", DOM, cx);
13502
0
13503
0
  FastErrorResult rv;
13504
0
  DOMString result;
13505
0
  self->GetBackgroundPositionX(result, rv);
13506
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13507
0
    return false;
13508
0
  }
13509
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13510
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13511
0
    return false;
13512
0
  }
13513
0
  return true;
13514
0
}
13515
13516
MOZ_CAN_RUN_SCRIPT static bool
13517
set_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13518
0
{
13519
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundPositionX", DOM, cx);
13520
0
13521
0
  binding_detail::FakeString arg0;
13522
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13523
0
    return false;
13524
0
  }
13525
0
  Maybe<AutoCEReaction> ceReaction;
13526
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13527
0
    DocGroup* docGroup = self->GetDocGroup();
13528
0
    if (docGroup) {
13529
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13530
0
    }
13531
0
  }
13532
0
  FastErrorResult rv;
13533
0
  nsIPrincipal* subjectPrincipal;
13534
0
  {
13535
0
    JS::Realm* realm = js::GetContextRealm(cx);
13536
0
    MOZ_ASSERT(realm);
13537
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13538
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13539
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13540
0
      principal = nullptr;
13541
0
    }
13542
0
13543
0
    subjectPrincipal = principal;
13544
0
  }
13545
0
  self->SetBackgroundPositionX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13546
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13547
0
    return false;
13548
0
  }
13549
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13550
0
13551
0
  return true;
13552
0
}
13553
13554
static const JSJitInfo backgroundPositionX_getterinfo = {
13555
  { (JSJitGetterOp)get_backgroundPositionX },
13556
  { prototypes::id::CSS2Properties },
13557
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13558
  JSJitInfo::Getter,
13559
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13560
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13561
  false,  /* isInfallible. False in setters. */
13562
  false,  /* isMovable.  Not relevant for setters. */
13563
  false, /* isEliminatable.  Not relevant for setters. */
13564
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13565
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13566
  false,  /* isTypedMethod.  Only relevant for methods. */
13567
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13568
};
13569
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13570
static_assert(0 < 1, "There is no slot for us");
13571
static const JSJitInfo backgroundPositionX_setterinfo = {
13572
  { (JSJitGetterOp)set_backgroundPositionX },
13573
  { prototypes::id::CSS2Properties },
13574
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13575
  JSJitInfo::Setter,
13576
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13577
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13578
  false,  /* isInfallible. False in setters. */
13579
  false,  /* isMovable.  Not relevant for setters. */
13580
  false, /* isEliminatable.  Not relevant for setters. */
13581
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13582
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13583
  false,  /* isTypedMethod.  Only relevant for methods. */
13584
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13585
};
13586
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13587
static_assert(0 < 1, "There is no slot for us");
13588
13589
MOZ_CAN_RUN_SCRIPT static bool
13590
get_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13591
0
{
13592
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundPositionY", DOM, cx);
13593
0
13594
0
  FastErrorResult rv;
13595
0
  DOMString result;
13596
0
  self->GetBackgroundPositionY(result, rv);
13597
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13598
0
    return false;
13599
0
  }
13600
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13601
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13602
0
    return false;
13603
0
  }
13604
0
  return true;
13605
0
}
13606
13607
MOZ_CAN_RUN_SCRIPT static bool
13608
set_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13609
0
{
13610
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundPositionY", DOM, cx);
13611
0
13612
0
  binding_detail::FakeString arg0;
13613
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13614
0
    return false;
13615
0
  }
13616
0
  Maybe<AutoCEReaction> ceReaction;
13617
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13618
0
    DocGroup* docGroup = self->GetDocGroup();
13619
0
    if (docGroup) {
13620
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13621
0
    }
13622
0
  }
13623
0
  FastErrorResult rv;
13624
0
  nsIPrincipal* subjectPrincipal;
13625
0
  {
13626
0
    JS::Realm* realm = js::GetContextRealm(cx);
13627
0
    MOZ_ASSERT(realm);
13628
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13629
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13630
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13631
0
      principal = nullptr;
13632
0
    }
13633
0
13634
0
    subjectPrincipal = principal;
13635
0
  }
13636
0
  self->SetBackgroundPositionY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13637
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13638
0
    return false;
13639
0
  }
13640
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13641
0
13642
0
  return true;
13643
0
}
13644
13645
static const JSJitInfo backgroundPositionY_getterinfo = {
13646
  { (JSJitGetterOp)get_backgroundPositionY },
13647
  { prototypes::id::CSS2Properties },
13648
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13649
  JSJitInfo::Getter,
13650
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13651
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13652
  false,  /* isInfallible. False in setters. */
13653
  false,  /* isMovable.  Not relevant for setters. */
13654
  false, /* isEliminatable.  Not relevant for setters. */
13655
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13656
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13657
  false,  /* isTypedMethod.  Only relevant for methods. */
13658
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13659
};
13660
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13661
static_assert(0 < 1, "There is no slot for us");
13662
static const JSJitInfo backgroundPositionY_setterinfo = {
13663
  { (JSJitGetterOp)set_backgroundPositionY },
13664
  { prototypes::id::CSS2Properties },
13665
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13666
  JSJitInfo::Setter,
13667
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13668
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13669
  false,  /* isInfallible. False in setters. */
13670
  false,  /* isMovable.  Not relevant for setters. */
13671
  false, /* isEliminatable.  Not relevant for setters. */
13672
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13673
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13674
  false,  /* isTypedMethod.  Only relevant for methods. */
13675
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13676
};
13677
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13678
static_assert(0 < 1, "There is no slot for us");
13679
13680
MOZ_CAN_RUN_SCRIPT static bool
13681
get_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13682
0
{
13683
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundRepeat", DOM, cx);
13684
0
13685
0
  FastErrorResult rv;
13686
0
  DOMString result;
13687
0
  self->GetBackgroundRepeat(result, rv);
13688
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13689
0
    return false;
13690
0
  }
13691
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13692
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13693
0
    return false;
13694
0
  }
13695
0
  return true;
13696
0
}
13697
13698
MOZ_CAN_RUN_SCRIPT static bool
13699
set_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13700
0
{
13701
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundRepeat", DOM, cx);
13702
0
13703
0
  binding_detail::FakeString arg0;
13704
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13705
0
    return false;
13706
0
  }
13707
0
  Maybe<AutoCEReaction> ceReaction;
13708
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13709
0
    DocGroup* docGroup = self->GetDocGroup();
13710
0
    if (docGroup) {
13711
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13712
0
    }
13713
0
  }
13714
0
  FastErrorResult rv;
13715
0
  nsIPrincipal* subjectPrincipal;
13716
0
  {
13717
0
    JS::Realm* realm = js::GetContextRealm(cx);
13718
0
    MOZ_ASSERT(realm);
13719
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13720
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13721
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13722
0
      principal = nullptr;
13723
0
    }
13724
0
13725
0
    subjectPrincipal = principal;
13726
0
  }
13727
0
  self->SetBackgroundRepeat(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13728
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13729
0
    return false;
13730
0
  }
13731
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13732
0
13733
0
  return true;
13734
0
}
13735
13736
static const JSJitInfo backgroundRepeat_getterinfo = {
13737
  { (JSJitGetterOp)get_backgroundRepeat },
13738
  { prototypes::id::CSS2Properties },
13739
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13740
  JSJitInfo::Getter,
13741
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13742
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13743
  false,  /* isInfallible. False in setters. */
13744
  false,  /* isMovable.  Not relevant for setters. */
13745
  false, /* isEliminatable.  Not relevant for setters. */
13746
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13747
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13748
  false,  /* isTypedMethod.  Only relevant for methods. */
13749
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13750
};
13751
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13752
static_assert(0 < 1, "There is no slot for us");
13753
static const JSJitInfo backgroundRepeat_setterinfo = {
13754
  { (JSJitGetterOp)set_backgroundRepeat },
13755
  { prototypes::id::CSS2Properties },
13756
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13757
  JSJitInfo::Setter,
13758
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13759
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13760
  false,  /* isInfallible. False in setters. */
13761
  false,  /* isMovable.  Not relevant for setters. */
13762
  false, /* isEliminatable.  Not relevant for setters. */
13763
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13764
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13765
  false,  /* isTypedMethod.  Only relevant for methods. */
13766
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13767
};
13768
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13769
static_assert(0 < 1, "There is no slot for us");
13770
13771
MOZ_CAN_RUN_SCRIPT static bool
13772
get_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13773
0
{
13774
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundSize", DOM, cx);
13775
0
13776
0
  FastErrorResult rv;
13777
0
  DOMString result;
13778
0
  self->GetBackgroundSize(result, rv);
13779
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13780
0
    return false;
13781
0
  }
13782
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13783
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13784
0
    return false;
13785
0
  }
13786
0
  return true;
13787
0
}
13788
13789
MOZ_CAN_RUN_SCRIPT static bool
13790
set_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13791
0
{
13792
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundSize", DOM, cx);
13793
0
13794
0
  binding_detail::FakeString arg0;
13795
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13796
0
    return false;
13797
0
  }
13798
0
  Maybe<AutoCEReaction> ceReaction;
13799
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13800
0
    DocGroup* docGroup = self->GetDocGroup();
13801
0
    if (docGroup) {
13802
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13803
0
    }
13804
0
  }
13805
0
  FastErrorResult rv;
13806
0
  nsIPrincipal* subjectPrincipal;
13807
0
  {
13808
0
    JS::Realm* realm = js::GetContextRealm(cx);
13809
0
    MOZ_ASSERT(realm);
13810
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13811
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13812
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13813
0
      principal = nullptr;
13814
0
    }
13815
0
13816
0
    subjectPrincipal = principal;
13817
0
  }
13818
0
  self->SetBackgroundSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13819
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13820
0
    return false;
13821
0
  }
13822
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13823
0
13824
0
  return true;
13825
0
}
13826
13827
static const JSJitInfo backgroundSize_getterinfo = {
13828
  { (JSJitGetterOp)get_backgroundSize },
13829
  { prototypes::id::CSS2Properties },
13830
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13831
  JSJitInfo::Getter,
13832
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13833
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13834
  false,  /* isInfallible. False in setters. */
13835
  false,  /* isMovable.  Not relevant for setters. */
13836
  false, /* isEliminatable.  Not relevant for setters. */
13837
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13838
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13839
  false,  /* isTypedMethod.  Only relevant for methods. */
13840
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13841
};
13842
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13843
static_assert(0 < 1, "There is no slot for us");
13844
static const JSJitInfo backgroundSize_setterinfo = {
13845
  { (JSJitGetterOp)set_backgroundSize },
13846
  { prototypes::id::CSS2Properties },
13847
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13848
  JSJitInfo::Setter,
13849
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13850
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13851
  false,  /* isInfallible. False in setters. */
13852
  false,  /* isMovable.  Not relevant for setters. */
13853
  false, /* isEliminatable.  Not relevant for setters. */
13854
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13855
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13856
  false,  /* isTypedMethod.  Only relevant for methods. */
13857
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13858
};
13859
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13860
static_assert(0 < 1, "There is no slot for us");
13861
13862
MOZ_CAN_RUN_SCRIPT static bool
13863
get_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13864
0
{
13865
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImageOutset", DOM, cx);
13866
0
13867
0
  FastErrorResult rv;
13868
0
  DOMString result;
13869
0
  self->GetBorderImageOutset(result, rv);
13870
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13871
0
    return false;
13872
0
  }
13873
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13874
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13875
0
    return false;
13876
0
  }
13877
0
  return true;
13878
0
}
13879
13880
MOZ_CAN_RUN_SCRIPT static bool
13881
set_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13882
0
{
13883
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImageOutset", DOM, cx);
13884
0
13885
0
  binding_detail::FakeString arg0;
13886
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13887
0
    return false;
13888
0
  }
13889
0
  Maybe<AutoCEReaction> ceReaction;
13890
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13891
0
    DocGroup* docGroup = self->GetDocGroup();
13892
0
    if (docGroup) {
13893
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13894
0
    }
13895
0
  }
13896
0
  FastErrorResult rv;
13897
0
  nsIPrincipal* subjectPrincipal;
13898
0
  {
13899
0
    JS::Realm* realm = js::GetContextRealm(cx);
13900
0
    MOZ_ASSERT(realm);
13901
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13902
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13903
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13904
0
      principal = nullptr;
13905
0
    }
13906
0
13907
0
    subjectPrincipal = principal;
13908
0
  }
13909
0
  self->SetBorderImageOutset(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
13910
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13911
0
    return false;
13912
0
  }
13913
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13914
0
13915
0
  return true;
13916
0
}
13917
13918
static const JSJitInfo borderImageOutset_getterinfo = {
13919
  { (JSJitGetterOp)get_borderImageOutset },
13920
  { prototypes::id::CSS2Properties },
13921
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13922
  JSJitInfo::Getter,
13923
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13924
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
13925
  false,  /* isInfallible. False in setters. */
13926
  false,  /* isMovable.  Not relevant for setters. */
13927
  false, /* isEliminatable.  Not relevant for setters. */
13928
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13929
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13930
  false,  /* isTypedMethod.  Only relevant for methods. */
13931
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13932
};
13933
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13934
static_assert(0 < 1, "There is no slot for us");
13935
static const JSJitInfo borderImageOutset_setterinfo = {
13936
  { (JSJitGetterOp)set_borderImageOutset },
13937
  { prototypes::id::CSS2Properties },
13938
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
13939
  JSJitInfo::Setter,
13940
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
13941
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
13942
  false,  /* isInfallible. False in setters. */
13943
  false,  /* isMovable.  Not relevant for setters. */
13944
  false, /* isEliminatable.  Not relevant for setters. */
13945
  false, /* isAlwaysInSlot.  Only relevant for getters. */
13946
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
13947
  false,  /* isTypedMethod.  Only relevant for methods. */
13948
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
13949
};
13950
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
13951
static_assert(0 < 1, "There is no slot for us");
13952
13953
MOZ_CAN_RUN_SCRIPT static bool
13954
get_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
13955
0
{
13956
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImageSlice", DOM, cx);
13957
0
13958
0
  FastErrorResult rv;
13959
0
  DOMString result;
13960
0
  self->GetBorderImageSlice(result, rv);
13961
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
13962
0
    return false;
13963
0
  }
13964
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
13965
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
13966
0
    return false;
13967
0
  }
13968
0
  return true;
13969
0
}
13970
13971
MOZ_CAN_RUN_SCRIPT static bool
13972
set_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
13973
0
{
13974
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImageSlice", DOM, cx);
13975
0
13976
0
  binding_detail::FakeString arg0;
13977
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
13978
0
    return false;
13979
0
  }
13980
0
  Maybe<AutoCEReaction> ceReaction;
13981
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
13982
0
    DocGroup* docGroup = self->GetDocGroup();
13983
0
    if (docGroup) {
13984
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
13985
0
    }
13986
0
  }
13987
0
  FastErrorResult rv;
13988
0
  nsIPrincipal* subjectPrincipal;
13989
0
  {
13990
0
    JS::Realm* realm = js::GetContextRealm(cx);
13991
0
    MOZ_ASSERT(realm);
13992
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
13993
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
13994
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
13995
0
      principal = nullptr;
13996
0
    }
13997
0
13998
0
    subjectPrincipal = principal;
13999
0
  }
14000
0
  self->SetBorderImageSlice(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14001
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14002
0
    return false;
14003
0
  }
14004
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14005
0
14006
0
  return true;
14007
0
}
14008
14009
static const JSJitInfo borderImageSlice_getterinfo = {
14010
  { (JSJitGetterOp)get_borderImageSlice },
14011
  { prototypes::id::CSS2Properties },
14012
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14013
  JSJitInfo::Getter,
14014
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14015
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14016
  false,  /* isInfallible. False in setters. */
14017
  false,  /* isMovable.  Not relevant for setters. */
14018
  false, /* isEliminatable.  Not relevant for setters. */
14019
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14020
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14021
  false,  /* isTypedMethod.  Only relevant for methods. */
14022
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14023
};
14024
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14025
static_assert(0 < 1, "There is no slot for us");
14026
static const JSJitInfo borderImageSlice_setterinfo = {
14027
  { (JSJitGetterOp)set_borderImageSlice },
14028
  { prototypes::id::CSS2Properties },
14029
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14030
  JSJitInfo::Setter,
14031
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14032
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14033
  false,  /* isInfallible. False in setters. */
14034
  false,  /* isMovable.  Not relevant for setters. */
14035
  false, /* isEliminatable.  Not relevant for setters. */
14036
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14037
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14038
  false,  /* isTypedMethod.  Only relevant for methods. */
14039
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14040
};
14041
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14042
static_assert(0 < 1, "There is no slot for us");
14043
14044
MOZ_CAN_RUN_SCRIPT static bool
14045
get_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14046
0
{
14047
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImageSource", DOM, cx);
14048
0
14049
0
  FastErrorResult rv;
14050
0
  DOMString result;
14051
0
  self->GetBorderImageSource(result, rv);
14052
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14053
0
    return false;
14054
0
  }
14055
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14056
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14057
0
    return false;
14058
0
  }
14059
0
  return true;
14060
0
}
14061
14062
MOZ_CAN_RUN_SCRIPT static bool
14063
set_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14064
0
{
14065
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImageSource", DOM, cx);
14066
0
14067
0
  binding_detail::FakeString arg0;
14068
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14069
0
    return false;
14070
0
  }
14071
0
  Maybe<AutoCEReaction> ceReaction;
14072
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14073
0
    DocGroup* docGroup = self->GetDocGroup();
14074
0
    if (docGroup) {
14075
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14076
0
    }
14077
0
  }
14078
0
  FastErrorResult rv;
14079
0
  nsIPrincipal* subjectPrincipal;
14080
0
  {
14081
0
    JS::Realm* realm = js::GetContextRealm(cx);
14082
0
    MOZ_ASSERT(realm);
14083
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14084
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14085
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14086
0
      principal = nullptr;
14087
0
    }
14088
0
14089
0
    subjectPrincipal = principal;
14090
0
  }
14091
0
  self->SetBorderImageSource(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14092
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14093
0
    return false;
14094
0
  }
14095
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14096
0
14097
0
  return true;
14098
0
}
14099
14100
static const JSJitInfo borderImageSource_getterinfo = {
14101
  { (JSJitGetterOp)get_borderImageSource },
14102
  { prototypes::id::CSS2Properties },
14103
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14104
  JSJitInfo::Getter,
14105
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14106
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14107
  false,  /* isInfallible. False in setters. */
14108
  false,  /* isMovable.  Not relevant for setters. */
14109
  false, /* isEliminatable.  Not relevant for setters. */
14110
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14111
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14112
  false,  /* isTypedMethod.  Only relevant for methods. */
14113
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14114
};
14115
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14116
static_assert(0 < 1, "There is no slot for us");
14117
static const JSJitInfo borderImageSource_setterinfo = {
14118
  { (JSJitGetterOp)set_borderImageSource },
14119
  { prototypes::id::CSS2Properties },
14120
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14121
  JSJitInfo::Setter,
14122
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14123
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14124
  false,  /* isInfallible. False in setters. */
14125
  false,  /* isMovable.  Not relevant for setters. */
14126
  false, /* isEliminatable.  Not relevant for setters. */
14127
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14128
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14129
  false,  /* isTypedMethod.  Only relevant for methods. */
14130
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14131
};
14132
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14133
static_assert(0 < 1, "There is no slot for us");
14134
14135
MOZ_CAN_RUN_SCRIPT static bool
14136
get_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14137
0
{
14138
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImageWidth", DOM, cx);
14139
0
14140
0
  FastErrorResult rv;
14141
0
  DOMString result;
14142
0
  self->GetBorderImageWidth(result, rv);
14143
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14144
0
    return false;
14145
0
  }
14146
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14147
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14148
0
    return false;
14149
0
  }
14150
0
  return true;
14151
0
}
14152
14153
MOZ_CAN_RUN_SCRIPT static bool
14154
set_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14155
0
{
14156
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImageWidth", DOM, cx);
14157
0
14158
0
  binding_detail::FakeString arg0;
14159
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14160
0
    return false;
14161
0
  }
14162
0
  Maybe<AutoCEReaction> ceReaction;
14163
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14164
0
    DocGroup* docGroup = self->GetDocGroup();
14165
0
    if (docGroup) {
14166
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14167
0
    }
14168
0
  }
14169
0
  FastErrorResult rv;
14170
0
  nsIPrincipal* subjectPrincipal;
14171
0
  {
14172
0
    JS::Realm* realm = js::GetContextRealm(cx);
14173
0
    MOZ_ASSERT(realm);
14174
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14175
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14176
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14177
0
      principal = nullptr;
14178
0
    }
14179
0
14180
0
    subjectPrincipal = principal;
14181
0
  }
14182
0
  self->SetBorderImageWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14183
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14184
0
    return false;
14185
0
  }
14186
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14187
0
14188
0
  return true;
14189
0
}
14190
14191
static const JSJitInfo borderImageWidth_getterinfo = {
14192
  { (JSJitGetterOp)get_borderImageWidth },
14193
  { prototypes::id::CSS2Properties },
14194
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14195
  JSJitInfo::Getter,
14196
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14197
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14198
  false,  /* isInfallible. False in setters. */
14199
  false,  /* isMovable.  Not relevant for setters. */
14200
  false, /* isEliminatable.  Not relevant for setters. */
14201
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14202
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14203
  false,  /* isTypedMethod.  Only relevant for methods. */
14204
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14205
};
14206
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14207
static_assert(0 < 1, "There is no slot for us");
14208
static const JSJitInfo borderImageWidth_setterinfo = {
14209
  { (JSJitGetterOp)set_borderImageWidth },
14210
  { prototypes::id::CSS2Properties },
14211
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14212
  JSJitInfo::Setter,
14213
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14214
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14215
  false,  /* isInfallible. False in setters. */
14216
  false,  /* isMovable.  Not relevant for setters. */
14217
  false, /* isEliminatable.  Not relevant for setters. */
14218
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14219
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14220
  false,  /* isTypedMethod.  Only relevant for methods. */
14221
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14222
};
14223
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14224
static_assert(0 < 1, "There is no slot for us");
14225
14226
MOZ_CAN_RUN_SCRIPT static bool
14227
get_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14228
0
{
14229
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderSpacing", DOM, cx);
14230
0
14231
0
  FastErrorResult rv;
14232
0
  DOMString result;
14233
0
  self->GetBorderSpacing(result, rv);
14234
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14235
0
    return false;
14236
0
  }
14237
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14238
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14239
0
    return false;
14240
0
  }
14241
0
  return true;
14242
0
}
14243
14244
MOZ_CAN_RUN_SCRIPT static bool
14245
set_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14246
0
{
14247
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderSpacing", DOM, cx);
14248
0
14249
0
  binding_detail::FakeString arg0;
14250
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14251
0
    return false;
14252
0
  }
14253
0
  Maybe<AutoCEReaction> ceReaction;
14254
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14255
0
    DocGroup* docGroup = self->GetDocGroup();
14256
0
    if (docGroup) {
14257
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14258
0
    }
14259
0
  }
14260
0
  FastErrorResult rv;
14261
0
  nsIPrincipal* subjectPrincipal;
14262
0
  {
14263
0
    JS::Realm* realm = js::GetContextRealm(cx);
14264
0
    MOZ_ASSERT(realm);
14265
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14266
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14267
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14268
0
      principal = nullptr;
14269
0
    }
14270
0
14271
0
    subjectPrincipal = principal;
14272
0
  }
14273
0
  self->SetBorderSpacing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14274
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14275
0
    return false;
14276
0
  }
14277
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14278
0
14279
0
  return true;
14280
0
}
14281
14282
static const JSJitInfo borderSpacing_getterinfo = {
14283
  { (JSJitGetterOp)get_borderSpacing },
14284
  { prototypes::id::CSS2Properties },
14285
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14286
  JSJitInfo::Getter,
14287
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14288
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14289
  false,  /* isInfallible. False in setters. */
14290
  false,  /* isMovable.  Not relevant for setters. */
14291
  false, /* isEliminatable.  Not relevant for setters. */
14292
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14293
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14294
  false,  /* isTypedMethod.  Only relevant for methods. */
14295
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14296
};
14297
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14298
static_assert(0 < 1, "There is no slot for us");
14299
static const JSJitInfo borderSpacing_setterinfo = {
14300
  { (JSJitGetterOp)set_borderSpacing },
14301
  { prototypes::id::CSS2Properties },
14302
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14303
  JSJitInfo::Setter,
14304
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14305
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14306
  false,  /* isInfallible. False in setters. */
14307
  false,  /* isMovable.  Not relevant for setters. */
14308
  false, /* isEliminatable.  Not relevant for setters. */
14309
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14310
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14311
  false,  /* isTypedMethod.  Only relevant for methods. */
14312
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14313
};
14314
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14315
static_assert(0 < 1, "There is no slot for us");
14316
14317
MOZ_CAN_RUN_SCRIPT static bool
14318
get_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14319
0
{
14320
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.boxShadow", DOM, cx);
14321
0
14322
0
  FastErrorResult rv;
14323
0
  DOMString result;
14324
0
  self->GetBoxShadow(result, rv);
14325
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14326
0
    return false;
14327
0
  }
14328
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14329
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14330
0
    return false;
14331
0
  }
14332
0
  return true;
14333
0
}
14334
14335
MOZ_CAN_RUN_SCRIPT static bool
14336
set_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14337
0
{
14338
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.boxShadow", DOM, cx);
14339
0
14340
0
  binding_detail::FakeString arg0;
14341
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14342
0
    return false;
14343
0
  }
14344
0
  Maybe<AutoCEReaction> ceReaction;
14345
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14346
0
    DocGroup* docGroup = self->GetDocGroup();
14347
0
    if (docGroup) {
14348
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14349
0
    }
14350
0
  }
14351
0
  FastErrorResult rv;
14352
0
  nsIPrincipal* subjectPrincipal;
14353
0
  {
14354
0
    JS::Realm* realm = js::GetContextRealm(cx);
14355
0
    MOZ_ASSERT(realm);
14356
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14357
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14358
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14359
0
      principal = nullptr;
14360
0
    }
14361
0
14362
0
    subjectPrincipal = principal;
14363
0
  }
14364
0
  self->SetBoxShadow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14365
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14366
0
    return false;
14367
0
  }
14368
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14369
0
14370
0
  return true;
14371
0
}
14372
14373
static const JSJitInfo boxShadow_getterinfo = {
14374
  { (JSJitGetterOp)get_boxShadow },
14375
  { prototypes::id::CSS2Properties },
14376
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14377
  JSJitInfo::Getter,
14378
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14379
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14380
  false,  /* isInfallible. False in setters. */
14381
  false,  /* isMovable.  Not relevant for setters. */
14382
  false, /* isEliminatable.  Not relevant for setters. */
14383
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14384
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14385
  false,  /* isTypedMethod.  Only relevant for methods. */
14386
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14387
};
14388
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14389
static_assert(0 < 1, "There is no slot for us");
14390
static const JSJitInfo boxShadow_setterinfo = {
14391
  { (JSJitGetterOp)set_boxShadow },
14392
  { prototypes::id::CSS2Properties },
14393
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14394
  JSJitInfo::Setter,
14395
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14396
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14397
  false,  /* isInfallible. False in setters. */
14398
  false,  /* isMovable.  Not relevant for setters. */
14399
  false, /* isEliminatable.  Not relevant for setters. */
14400
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14401
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14402
  false,  /* isTypedMethod.  Only relevant for methods. */
14403
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14404
};
14405
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14406
static_assert(0 < 1, "There is no slot for us");
14407
14408
MOZ_CAN_RUN_SCRIPT static bool
14409
get_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14410
0
{
14411
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.caretColor", DOM, cx);
14412
0
14413
0
  FastErrorResult rv;
14414
0
  DOMString result;
14415
0
  self->GetCaretColor(result, rv);
14416
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14417
0
    return false;
14418
0
  }
14419
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14420
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14421
0
    return false;
14422
0
  }
14423
0
  return true;
14424
0
}
14425
14426
MOZ_CAN_RUN_SCRIPT static bool
14427
set_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14428
0
{
14429
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.caretColor", DOM, cx);
14430
0
14431
0
  binding_detail::FakeString arg0;
14432
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14433
0
    return false;
14434
0
  }
14435
0
  Maybe<AutoCEReaction> ceReaction;
14436
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14437
0
    DocGroup* docGroup = self->GetDocGroup();
14438
0
    if (docGroup) {
14439
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14440
0
    }
14441
0
  }
14442
0
  FastErrorResult rv;
14443
0
  nsIPrincipal* subjectPrincipal;
14444
0
  {
14445
0
    JS::Realm* realm = js::GetContextRealm(cx);
14446
0
    MOZ_ASSERT(realm);
14447
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14448
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14449
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14450
0
      principal = nullptr;
14451
0
    }
14452
0
14453
0
    subjectPrincipal = principal;
14454
0
  }
14455
0
  self->SetCaretColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14456
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14457
0
    return false;
14458
0
  }
14459
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14460
0
14461
0
  return true;
14462
0
}
14463
14464
static const JSJitInfo caretColor_getterinfo = {
14465
  { (JSJitGetterOp)get_caretColor },
14466
  { prototypes::id::CSS2Properties },
14467
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14468
  JSJitInfo::Getter,
14469
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14470
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14471
  false,  /* isInfallible. False in setters. */
14472
  false,  /* isMovable.  Not relevant for setters. */
14473
  false, /* isEliminatable.  Not relevant for setters. */
14474
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14475
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14476
  false,  /* isTypedMethod.  Only relevant for methods. */
14477
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14478
};
14479
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14480
static_assert(0 < 1, "There is no slot for us");
14481
static const JSJitInfo caretColor_setterinfo = {
14482
  { (JSJitGetterOp)set_caretColor },
14483
  { prototypes::id::CSS2Properties },
14484
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14485
  JSJitInfo::Setter,
14486
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14487
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14488
  false,  /* isInfallible. False in setters. */
14489
  false,  /* isMovable.  Not relevant for setters. */
14490
  false, /* isEliminatable.  Not relevant for setters. */
14491
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14492
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14493
  false,  /* isTypedMethod.  Only relevant for methods. */
14494
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14495
};
14496
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14497
static_assert(0 < 1, "There is no slot for us");
14498
14499
MOZ_CAN_RUN_SCRIPT static bool
14500
get_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14501
0
{
14502
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.clipPath", DOM, cx);
14503
0
14504
0
  FastErrorResult rv;
14505
0
  DOMString result;
14506
0
  self->GetClipPath(result, rv);
14507
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14508
0
    return false;
14509
0
  }
14510
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14511
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14512
0
    return false;
14513
0
  }
14514
0
  return true;
14515
0
}
14516
14517
MOZ_CAN_RUN_SCRIPT static bool
14518
set_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14519
0
{
14520
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.clipPath", DOM, cx);
14521
0
14522
0
  binding_detail::FakeString arg0;
14523
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14524
0
    return false;
14525
0
  }
14526
0
  Maybe<AutoCEReaction> ceReaction;
14527
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14528
0
    DocGroup* docGroup = self->GetDocGroup();
14529
0
    if (docGroup) {
14530
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14531
0
    }
14532
0
  }
14533
0
  FastErrorResult rv;
14534
0
  nsIPrincipal* subjectPrincipal;
14535
0
  {
14536
0
    JS::Realm* realm = js::GetContextRealm(cx);
14537
0
    MOZ_ASSERT(realm);
14538
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14539
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14540
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14541
0
      principal = nullptr;
14542
0
    }
14543
0
14544
0
    subjectPrincipal = principal;
14545
0
  }
14546
0
  self->SetClipPath(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14547
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14548
0
    return false;
14549
0
  }
14550
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14551
0
14552
0
  return true;
14553
0
}
14554
14555
static const JSJitInfo clipPath_getterinfo = {
14556
  { (JSJitGetterOp)get_clipPath },
14557
  { prototypes::id::CSS2Properties },
14558
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14559
  JSJitInfo::Getter,
14560
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14561
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14562
  false,  /* isInfallible. False in setters. */
14563
  false,  /* isMovable.  Not relevant for setters. */
14564
  false, /* isEliminatable.  Not relevant for setters. */
14565
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14566
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14567
  false,  /* isTypedMethod.  Only relevant for methods. */
14568
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14569
};
14570
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14571
static_assert(0 < 1, "There is no slot for us");
14572
static const JSJitInfo clipPath_setterinfo = {
14573
  { (JSJitGetterOp)set_clipPath },
14574
  { prototypes::id::CSS2Properties },
14575
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14576
  JSJitInfo::Setter,
14577
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14578
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14579
  false,  /* isInfallible. False in setters. */
14580
  false,  /* isMovable.  Not relevant for setters. */
14581
  false, /* isEliminatable.  Not relevant for setters. */
14582
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14583
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14584
  false,  /* isTypedMethod.  Only relevant for methods. */
14585
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14586
};
14587
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14588
static_assert(0 < 1, "There is no slot for us");
14589
14590
MOZ_CAN_RUN_SCRIPT static bool
14591
get_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14592
0
{
14593
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.color", DOM, cx);
14594
0
14595
0
  FastErrorResult rv;
14596
0
  DOMString result;
14597
0
  self->GetColor(result, rv);
14598
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14599
0
    return false;
14600
0
  }
14601
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14602
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14603
0
    return false;
14604
0
  }
14605
0
  return true;
14606
0
}
14607
14608
MOZ_CAN_RUN_SCRIPT static bool
14609
set_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14610
0
{
14611
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.color", DOM, cx);
14612
0
14613
0
  binding_detail::FakeString arg0;
14614
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14615
0
    return false;
14616
0
  }
14617
0
  Maybe<AutoCEReaction> ceReaction;
14618
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14619
0
    DocGroup* docGroup = self->GetDocGroup();
14620
0
    if (docGroup) {
14621
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14622
0
    }
14623
0
  }
14624
0
  FastErrorResult rv;
14625
0
  nsIPrincipal* subjectPrincipal;
14626
0
  {
14627
0
    JS::Realm* realm = js::GetContextRealm(cx);
14628
0
    MOZ_ASSERT(realm);
14629
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14630
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14631
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14632
0
      principal = nullptr;
14633
0
    }
14634
0
14635
0
    subjectPrincipal = principal;
14636
0
  }
14637
0
  self->SetColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14638
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14639
0
    return false;
14640
0
  }
14641
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14642
0
14643
0
  return true;
14644
0
}
14645
14646
static const JSJitInfo color_getterinfo = {
14647
  { (JSJitGetterOp)get_color },
14648
  { prototypes::id::CSS2Properties },
14649
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14650
  JSJitInfo::Getter,
14651
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14652
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14653
  false,  /* isInfallible. False in setters. */
14654
  false,  /* isMovable.  Not relevant for setters. */
14655
  false, /* isEliminatable.  Not relevant for setters. */
14656
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14657
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14658
  false,  /* isTypedMethod.  Only relevant for methods. */
14659
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14660
};
14661
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14662
static_assert(0 < 1, "There is no slot for us");
14663
static const JSJitInfo color_setterinfo = {
14664
  { (JSJitGetterOp)set_color },
14665
  { prototypes::id::CSS2Properties },
14666
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14667
  JSJitInfo::Setter,
14668
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14669
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14670
  false,  /* isInfallible. False in setters. */
14671
  false,  /* isMovable.  Not relevant for setters. */
14672
  false, /* isEliminatable.  Not relevant for setters. */
14673
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14674
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14675
  false,  /* isTypedMethod.  Only relevant for methods. */
14676
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14677
};
14678
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14679
static_assert(0 < 1, "There is no slot for us");
14680
14681
MOZ_CAN_RUN_SCRIPT static bool
14682
get_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14683
0
{
14684
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnWidth", DOM, cx);
14685
0
14686
0
  FastErrorResult rv;
14687
0
  DOMString result;
14688
0
  self->GetColumnWidth(result, rv);
14689
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14690
0
    return false;
14691
0
  }
14692
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14693
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14694
0
    return false;
14695
0
  }
14696
0
  return true;
14697
0
}
14698
14699
MOZ_CAN_RUN_SCRIPT static bool
14700
set_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14701
0
{
14702
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnWidth", DOM, cx);
14703
0
14704
0
  binding_detail::FakeString arg0;
14705
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14706
0
    return false;
14707
0
  }
14708
0
  Maybe<AutoCEReaction> ceReaction;
14709
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14710
0
    DocGroup* docGroup = self->GetDocGroup();
14711
0
    if (docGroup) {
14712
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14713
0
    }
14714
0
  }
14715
0
  FastErrorResult rv;
14716
0
  nsIPrincipal* subjectPrincipal;
14717
0
  {
14718
0
    JS::Realm* realm = js::GetContextRealm(cx);
14719
0
    MOZ_ASSERT(realm);
14720
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14721
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14722
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14723
0
      principal = nullptr;
14724
0
    }
14725
0
14726
0
    subjectPrincipal = principal;
14727
0
  }
14728
0
  self->SetColumnWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14729
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14730
0
    return false;
14731
0
  }
14732
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14733
0
14734
0
  return true;
14735
0
}
14736
14737
static const JSJitInfo columnWidth_getterinfo = {
14738
  { (JSJitGetterOp)get_columnWidth },
14739
  { prototypes::id::CSS2Properties },
14740
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14741
  JSJitInfo::Getter,
14742
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14743
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14744
  false,  /* isInfallible. False in setters. */
14745
  false,  /* isMovable.  Not relevant for setters. */
14746
  false, /* isEliminatable.  Not relevant for setters. */
14747
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14748
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14749
  false,  /* isTypedMethod.  Only relevant for methods. */
14750
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14751
};
14752
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14753
static_assert(0 < 1, "There is no slot for us");
14754
static const JSJitInfo columnWidth_setterinfo = {
14755
  { (JSJitGetterOp)set_columnWidth },
14756
  { prototypes::id::CSS2Properties },
14757
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14758
  JSJitInfo::Setter,
14759
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14760
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14761
  false,  /* isInfallible. False in setters. */
14762
  false,  /* isMovable.  Not relevant for setters. */
14763
  false, /* isEliminatable.  Not relevant for setters. */
14764
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14765
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14766
  false,  /* isTypedMethod.  Only relevant for methods. */
14767
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14768
};
14769
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14770
static_assert(0 < 1, "There is no slot for us");
14771
14772
MOZ_CAN_RUN_SCRIPT static bool
14773
get_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14774
0
{
14775
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.content", DOM, cx);
14776
0
14777
0
  FastErrorResult rv;
14778
0
  DOMString result;
14779
0
  self->GetContent(result, rv);
14780
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14781
0
    return false;
14782
0
  }
14783
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14784
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14785
0
    return false;
14786
0
  }
14787
0
  return true;
14788
0
}
14789
14790
MOZ_CAN_RUN_SCRIPT static bool
14791
set_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14792
0
{
14793
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.content", DOM, cx);
14794
0
14795
0
  binding_detail::FakeString arg0;
14796
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14797
0
    return false;
14798
0
  }
14799
0
  Maybe<AutoCEReaction> ceReaction;
14800
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14801
0
    DocGroup* docGroup = self->GetDocGroup();
14802
0
    if (docGroup) {
14803
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14804
0
    }
14805
0
  }
14806
0
  FastErrorResult rv;
14807
0
  nsIPrincipal* subjectPrincipal;
14808
0
  {
14809
0
    JS::Realm* realm = js::GetContextRealm(cx);
14810
0
    MOZ_ASSERT(realm);
14811
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14812
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14813
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14814
0
      principal = nullptr;
14815
0
    }
14816
0
14817
0
    subjectPrincipal = principal;
14818
0
  }
14819
0
  self->SetContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14820
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14821
0
    return false;
14822
0
  }
14823
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14824
0
14825
0
  return true;
14826
0
}
14827
14828
static const JSJitInfo content_getterinfo = {
14829
  { (JSJitGetterOp)get_content },
14830
  { prototypes::id::CSS2Properties },
14831
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14832
  JSJitInfo::Getter,
14833
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14834
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14835
  false,  /* isInfallible. False in setters. */
14836
  false,  /* isMovable.  Not relevant for setters. */
14837
  false, /* isEliminatable.  Not relevant for setters. */
14838
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14839
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14840
  false,  /* isTypedMethod.  Only relevant for methods. */
14841
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14842
};
14843
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14844
static_assert(0 < 1, "There is no slot for us");
14845
static const JSJitInfo content_setterinfo = {
14846
  { (JSJitGetterOp)set_content },
14847
  { prototypes::id::CSS2Properties },
14848
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14849
  JSJitInfo::Setter,
14850
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14851
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14852
  false,  /* isInfallible. False in setters. */
14853
  false,  /* isMovable.  Not relevant for setters. */
14854
  false, /* isEliminatable.  Not relevant for setters. */
14855
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14856
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14857
  false,  /* isTypedMethod.  Only relevant for methods. */
14858
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14859
};
14860
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14861
static_assert(0 < 1, "There is no slot for us");
14862
14863
MOZ_CAN_RUN_SCRIPT static bool
14864
get_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14865
0
{
14866
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.counterIncrement", DOM, cx);
14867
0
14868
0
  FastErrorResult rv;
14869
0
  DOMString result;
14870
0
  self->GetCounterIncrement(result, rv);
14871
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14872
0
    return false;
14873
0
  }
14874
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14875
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14876
0
    return false;
14877
0
  }
14878
0
  return true;
14879
0
}
14880
14881
MOZ_CAN_RUN_SCRIPT static bool
14882
set_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14883
0
{
14884
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.counterIncrement", DOM, cx);
14885
0
14886
0
  binding_detail::FakeString arg0;
14887
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14888
0
    return false;
14889
0
  }
14890
0
  Maybe<AutoCEReaction> ceReaction;
14891
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14892
0
    DocGroup* docGroup = self->GetDocGroup();
14893
0
    if (docGroup) {
14894
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14895
0
    }
14896
0
  }
14897
0
  FastErrorResult rv;
14898
0
  nsIPrincipal* subjectPrincipal;
14899
0
  {
14900
0
    JS::Realm* realm = js::GetContextRealm(cx);
14901
0
    MOZ_ASSERT(realm);
14902
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14903
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14904
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14905
0
      principal = nullptr;
14906
0
    }
14907
0
14908
0
    subjectPrincipal = principal;
14909
0
  }
14910
0
  self->SetCounterIncrement(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
14911
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14912
0
    return false;
14913
0
  }
14914
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14915
0
14916
0
  return true;
14917
0
}
14918
14919
static const JSJitInfo counterIncrement_getterinfo = {
14920
  { (JSJitGetterOp)get_counterIncrement },
14921
  { prototypes::id::CSS2Properties },
14922
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14923
  JSJitInfo::Getter,
14924
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14925
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
14926
  false,  /* isInfallible. False in setters. */
14927
  false,  /* isMovable.  Not relevant for setters. */
14928
  false, /* isEliminatable.  Not relevant for setters. */
14929
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14930
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14931
  false,  /* isTypedMethod.  Only relevant for methods. */
14932
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14933
};
14934
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14935
static_assert(0 < 1, "There is no slot for us");
14936
static const JSJitInfo counterIncrement_setterinfo = {
14937
  { (JSJitGetterOp)set_counterIncrement },
14938
  { prototypes::id::CSS2Properties },
14939
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
14940
  JSJitInfo::Setter,
14941
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
14942
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
14943
  false,  /* isInfallible. False in setters. */
14944
  false,  /* isMovable.  Not relevant for setters. */
14945
  false, /* isEliminatable.  Not relevant for setters. */
14946
  false, /* isAlwaysInSlot.  Only relevant for getters. */
14947
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
14948
  false,  /* isTypedMethod.  Only relevant for methods. */
14949
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
14950
};
14951
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
14952
static_assert(0 < 1, "There is no slot for us");
14953
14954
MOZ_CAN_RUN_SCRIPT static bool
14955
get_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
14956
0
{
14957
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.counterReset", DOM, cx);
14958
0
14959
0
  FastErrorResult rv;
14960
0
  DOMString result;
14961
0
  self->GetCounterReset(result, rv);
14962
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
14963
0
    return false;
14964
0
  }
14965
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
14966
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
14967
0
    return false;
14968
0
  }
14969
0
  return true;
14970
0
}
14971
14972
MOZ_CAN_RUN_SCRIPT static bool
14973
set_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
14974
0
{
14975
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.counterReset", DOM, cx);
14976
0
14977
0
  binding_detail::FakeString arg0;
14978
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
14979
0
    return false;
14980
0
  }
14981
0
  Maybe<AutoCEReaction> ceReaction;
14982
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
14983
0
    DocGroup* docGroup = self->GetDocGroup();
14984
0
    if (docGroup) {
14985
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
14986
0
    }
14987
0
  }
14988
0
  FastErrorResult rv;
14989
0
  nsIPrincipal* subjectPrincipal;
14990
0
  {
14991
0
    JS::Realm* realm = js::GetContextRealm(cx);
14992
0
    MOZ_ASSERT(realm);
14993
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
14994
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
14995
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
14996
0
      principal = nullptr;
14997
0
    }
14998
0
14999
0
    subjectPrincipal = principal;
15000
0
  }
15001
0
  self->SetCounterReset(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15002
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15003
0
    return false;
15004
0
  }
15005
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15006
0
15007
0
  return true;
15008
0
}
15009
15010
static const JSJitInfo counterReset_getterinfo = {
15011
  { (JSJitGetterOp)get_counterReset },
15012
  { prototypes::id::CSS2Properties },
15013
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15014
  JSJitInfo::Getter,
15015
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15016
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15017
  false,  /* isInfallible. False in setters. */
15018
  false,  /* isMovable.  Not relevant for setters. */
15019
  false, /* isEliminatable.  Not relevant for setters. */
15020
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15021
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15022
  false,  /* isTypedMethod.  Only relevant for methods. */
15023
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15024
};
15025
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15026
static_assert(0 < 1, "There is no slot for us");
15027
static const JSJitInfo counterReset_setterinfo = {
15028
  { (JSJitGetterOp)set_counterReset },
15029
  { prototypes::id::CSS2Properties },
15030
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15031
  JSJitInfo::Setter,
15032
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15033
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15034
  false,  /* isInfallible. False in setters. */
15035
  false,  /* isMovable.  Not relevant for setters. */
15036
  false, /* isEliminatable.  Not relevant for setters. */
15037
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15038
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15039
  false,  /* isTypedMethod.  Only relevant for methods. */
15040
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15041
};
15042
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15043
static_assert(0 < 1, "There is no slot for us");
15044
15045
MOZ_CAN_RUN_SCRIPT static bool
15046
get_cursor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15047
0
{
15048
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.cursor", DOM, cx);
15049
0
15050
0
  FastErrorResult rv;
15051
0
  DOMString result;
15052
0
  self->GetCursor(result, rv);
15053
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15054
0
    return false;
15055
0
  }
15056
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15057
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15058
0
    return false;
15059
0
  }
15060
0
  return true;
15061
0
}
15062
15063
MOZ_CAN_RUN_SCRIPT static bool
15064
set_cursor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15065
0
{
15066
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.cursor", DOM, cx);
15067
0
15068
0
  binding_detail::FakeString arg0;
15069
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15070
0
    return false;
15071
0
  }
15072
0
  Maybe<AutoCEReaction> ceReaction;
15073
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15074
0
    DocGroup* docGroup = self->GetDocGroup();
15075
0
    if (docGroup) {
15076
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15077
0
    }
15078
0
  }
15079
0
  FastErrorResult rv;
15080
0
  nsIPrincipal* subjectPrincipal;
15081
0
  {
15082
0
    JS::Realm* realm = js::GetContextRealm(cx);
15083
0
    MOZ_ASSERT(realm);
15084
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15085
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15086
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15087
0
      principal = nullptr;
15088
0
    }
15089
0
15090
0
    subjectPrincipal = principal;
15091
0
  }
15092
0
  self->SetCursor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15093
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15094
0
    return false;
15095
0
  }
15096
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15097
0
15098
0
  return true;
15099
0
}
15100
15101
static const JSJitInfo cursor_getterinfo = {
15102
  { (JSJitGetterOp)get_cursor },
15103
  { prototypes::id::CSS2Properties },
15104
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15105
  JSJitInfo::Getter,
15106
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15107
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15108
  false,  /* isInfallible. False in setters. */
15109
  false,  /* isMovable.  Not relevant for setters. */
15110
  false, /* isEliminatable.  Not relevant for setters. */
15111
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15112
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15113
  false,  /* isTypedMethod.  Only relevant for methods. */
15114
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15115
};
15116
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15117
static_assert(0 < 1, "There is no slot for us");
15118
static const JSJitInfo cursor_setterinfo = {
15119
  { (JSJitGetterOp)set_cursor },
15120
  { prototypes::id::CSS2Properties },
15121
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15122
  JSJitInfo::Setter,
15123
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15124
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15125
  false,  /* isInfallible. False in setters. */
15126
  false,  /* isMovable.  Not relevant for setters. */
15127
  false, /* isEliminatable.  Not relevant for setters. */
15128
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15129
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15130
  false,  /* isTypedMethod.  Only relevant for methods. */
15131
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15132
};
15133
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15134
static_assert(0 < 1, "There is no slot for us");
15135
15136
MOZ_CAN_RUN_SCRIPT static bool
15137
get_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15138
0
{
15139
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.filter", DOM, cx);
15140
0
15141
0
  FastErrorResult rv;
15142
0
  DOMString result;
15143
0
  self->GetFilter(result, rv);
15144
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15145
0
    return false;
15146
0
  }
15147
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15148
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15149
0
    return false;
15150
0
  }
15151
0
  return true;
15152
0
}
15153
15154
MOZ_CAN_RUN_SCRIPT static bool
15155
set_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15156
0
{
15157
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.filter", DOM, cx);
15158
0
15159
0
  binding_detail::FakeString arg0;
15160
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15161
0
    return false;
15162
0
  }
15163
0
  Maybe<AutoCEReaction> ceReaction;
15164
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15165
0
    DocGroup* docGroup = self->GetDocGroup();
15166
0
    if (docGroup) {
15167
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15168
0
    }
15169
0
  }
15170
0
  FastErrorResult rv;
15171
0
  nsIPrincipal* subjectPrincipal;
15172
0
  {
15173
0
    JS::Realm* realm = js::GetContextRealm(cx);
15174
0
    MOZ_ASSERT(realm);
15175
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15176
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15177
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15178
0
      principal = nullptr;
15179
0
    }
15180
0
15181
0
    subjectPrincipal = principal;
15182
0
  }
15183
0
  self->SetFilter(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15184
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15185
0
    return false;
15186
0
  }
15187
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15188
0
15189
0
  return true;
15190
0
}
15191
15192
static const JSJitInfo filter_getterinfo = {
15193
  { (JSJitGetterOp)get_filter },
15194
  { prototypes::id::CSS2Properties },
15195
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15196
  JSJitInfo::Getter,
15197
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15198
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15199
  false,  /* isInfallible. False in setters. */
15200
  false,  /* isMovable.  Not relevant for setters. */
15201
  false, /* isEliminatable.  Not relevant for setters. */
15202
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15203
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15204
  false,  /* isTypedMethod.  Only relevant for methods. */
15205
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15206
};
15207
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15208
static_assert(0 < 1, "There is no slot for us");
15209
static const JSJitInfo filter_setterinfo = {
15210
  { (JSJitGetterOp)set_filter },
15211
  { prototypes::id::CSS2Properties },
15212
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15213
  JSJitInfo::Setter,
15214
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15215
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15216
  false,  /* isInfallible. False in setters. */
15217
  false,  /* isMovable.  Not relevant for setters. */
15218
  false, /* isEliminatable.  Not relevant for setters. */
15219
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15220
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15221
  false,  /* isTypedMethod.  Only relevant for methods. */
15222
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15223
};
15224
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15225
static_assert(0 < 1, "There is no slot for us");
15226
15227
MOZ_CAN_RUN_SCRIPT static bool
15228
get_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15229
0
{
15230
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexBasis", DOM, cx);
15231
0
15232
0
  FastErrorResult rv;
15233
0
  DOMString result;
15234
0
  self->GetFlexBasis(result, rv);
15235
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15236
0
    return false;
15237
0
  }
15238
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15239
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15240
0
    return false;
15241
0
  }
15242
0
  return true;
15243
0
}
15244
15245
MOZ_CAN_RUN_SCRIPT static bool
15246
set_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15247
0
{
15248
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexBasis", DOM, cx);
15249
0
15250
0
  binding_detail::FakeString arg0;
15251
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15252
0
    return false;
15253
0
  }
15254
0
  Maybe<AutoCEReaction> ceReaction;
15255
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15256
0
    DocGroup* docGroup = self->GetDocGroup();
15257
0
    if (docGroup) {
15258
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15259
0
    }
15260
0
  }
15261
0
  FastErrorResult rv;
15262
0
  nsIPrincipal* subjectPrincipal;
15263
0
  {
15264
0
    JS::Realm* realm = js::GetContextRealm(cx);
15265
0
    MOZ_ASSERT(realm);
15266
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15267
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15268
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15269
0
      principal = nullptr;
15270
0
    }
15271
0
15272
0
    subjectPrincipal = principal;
15273
0
  }
15274
0
  self->SetFlexBasis(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15275
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15276
0
    return false;
15277
0
  }
15278
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15279
0
15280
0
  return true;
15281
0
}
15282
15283
static const JSJitInfo flexBasis_getterinfo = {
15284
  { (JSJitGetterOp)get_flexBasis },
15285
  { prototypes::id::CSS2Properties },
15286
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15287
  JSJitInfo::Getter,
15288
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15289
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15290
  false,  /* isInfallible. False in setters. */
15291
  false,  /* isMovable.  Not relevant for setters. */
15292
  false, /* isEliminatable.  Not relevant for setters. */
15293
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15294
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15295
  false,  /* isTypedMethod.  Only relevant for methods. */
15296
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15297
};
15298
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15299
static_assert(0 < 1, "There is no slot for us");
15300
static const JSJitInfo flexBasis_setterinfo = {
15301
  { (JSJitGetterOp)set_flexBasis },
15302
  { prototypes::id::CSS2Properties },
15303
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15304
  JSJitInfo::Setter,
15305
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15306
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15307
  false,  /* isInfallible. False in setters. */
15308
  false,  /* isMovable.  Not relevant for setters. */
15309
  false, /* isEliminatable.  Not relevant for setters. */
15310
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15311
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15312
  false,  /* isTypedMethod.  Only relevant for methods. */
15313
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15314
};
15315
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15316
static_assert(0 < 1, "There is no slot for us");
15317
15318
MOZ_CAN_RUN_SCRIPT static bool
15319
get_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15320
0
{
15321
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontFamily", DOM, cx);
15322
0
15323
0
  FastErrorResult rv;
15324
0
  DOMString result;
15325
0
  self->GetFontFamily(result, rv);
15326
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15327
0
    return false;
15328
0
  }
15329
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15330
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15331
0
    return false;
15332
0
  }
15333
0
  return true;
15334
0
}
15335
15336
MOZ_CAN_RUN_SCRIPT static bool
15337
set_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15338
0
{
15339
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontFamily", DOM, cx);
15340
0
15341
0
  binding_detail::FakeString arg0;
15342
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15343
0
    return false;
15344
0
  }
15345
0
  Maybe<AutoCEReaction> ceReaction;
15346
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15347
0
    DocGroup* docGroup = self->GetDocGroup();
15348
0
    if (docGroup) {
15349
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15350
0
    }
15351
0
  }
15352
0
  FastErrorResult rv;
15353
0
  nsIPrincipal* subjectPrincipal;
15354
0
  {
15355
0
    JS::Realm* realm = js::GetContextRealm(cx);
15356
0
    MOZ_ASSERT(realm);
15357
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15358
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15359
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15360
0
      principal = nullptr;
15361
0
    }
15362
0
15363
0
    subjectPrincipal = principal;
15364
0
  }
15365
0
  self->SetFontFamily(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15366
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15367
0
    return false;
15368
0
  }
15369
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15370
0
15371
0
  return true;
15372
0
}
15373
15374
static const JSJitInfo fontFamily_getterinfo = {
15375
  { (JSJitGetterOp)get_fontFamily },
15376
  { prototypes::id::CSS2Properties },
15377
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15378
  JSJitInfo::Getter,
15379
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15380
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15381
  false,  /* isInfallible. False in setters. */
15382
  false,  /* isMovable.  Not relevant for setters. */
15383
  false, /* isEliminatable.  Not relevant for setters. */
15384
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15385
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15386
  false,  /* isTypedMethod.  Only relevant for methods. */
15387
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15388
};
15389
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15390
static_assert(0 < 1, "There is no slot for us");
15391
static const JSJitInfo fontFamily_setterinfo = {
15392
  { (JSJitGetterOp)set_fontFamily },
15393
  { prototypes::id::CSS2Properties },
15394
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15395
  JSJitInfo::Setter,
15396
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15397
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15398
  false,  /* isInfallible. False in setters. */
15399
  false,  /* isMovable.  Not relevant for setters. */
15400
  false, /* isEliminatable.  Not relevant for setters. */
15401
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15402
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15403
  false,  /* isTypedMethod.  Only relevant for methods. */
15404
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15405
};
15406
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15407
static_assert(0 < 1, "There is no slot for us");
15408
15409
MOZ_CAN_RUN_SCRIPT static bool
15410
get_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15411
0
{
15412
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontFeatureSettings", DOM, cx);
15413
0
15414
0
  FastErrorResult rv;
15415
0
  DOMString result;
15416
0
  self->GetFontFeatureSettings(result, rv);
15417
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15418
0
    return false;
15419
0
  }
15420
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15421
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15422
0
    return false;
15423
0
  }
15424
0
  return true;
15425
0
}
15426
15427
MOZ_CAN_RUN_SCRIPT static bool
15428
set_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15429
0
{
15430
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontFeatureSettings", DOM, cx);
15431
0
15432
0
  binding_detail::FakeString arg0;
15433
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15434
0
    return false;
15435
0
  }
15436
0
  Maybe<AutoCEReaction> ceReaction;
15437
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15438
0
    DocGroup* docGroup = self->GetDocGroup();
15439
0
    if (docGroup) {
15440
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15441
0
    }
15442
0
  }
15443
0
  FastErrorResult rv;
15444
0
  nsIPrincipal* subjectPrincipal;
15445
0
  {
15446
0
    JS::Realm* realm = js::GetContextRealm(cx);
15447
0
    MOZ_ASSERT(realm);
15448
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15449
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15450
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15451
0
      principal = nullptr;
15452
0
    }
15453
0
15454
0
    subjectPrincipal = principal;
15455
0
  }
15456
0
  self->SetFontFeatureSettings(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15457
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15458
0
    return false;
15459
0
  }
15460
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15461
0
15462
0
  return true;
15463
0
}
15464
15465
static const JSJitInfo fontFeatureSettings_getterinfo = {
15466
  { (JSJitGetterOp)get_fontFeatureSettings },
15467
  { prototypes::id::CSS2Properties },
15468
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15469
  JSJitInfo::Getter,
15470
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15471
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15472
  false,  /* isInfallible. False in setters. */
15473
  false,  /* isMovable.  Not relevant for setters. */
15474
  false, /* isEliminatable.  Not relevant for setters. */
15475
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15476
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15477
  false,  /* isTypedMethod.  Only relevant for methods. */
15478
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15479
};
15480
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15481
static_assert(0 < 1, "There is no slot for us");
15482
static const JSJitInfo fontFeatureSettings_setterinfo = {
15483
  { (JSJitGetterOp)set_fontFeatureSettings },
15484
  { prototypes::id::CSS2Properties },
15485
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15486
  JSJitInfo::Setter,
15487
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15488
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15489
  false,  /* isInfallible. False in setters. */
15490
  false,  /* isMovable.  Not relevant for setters. */
15491
  false, /* isEliminatable.  Not relevant for setters. */
15492
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15493
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15494
  false,  /* isTypedMethod.  Only relevant for methods. */
15495
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15496
};
15497
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15498
static_assert(0 < 1, "There is no slot for us");
15499
15500
MOZ_CAN_RUN_SCRIPT static bool
15501
get_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15502
0
{
15503
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontLanguageOverride", DOM, cx);
15504
0
15505
0
  FastErrorResult rv;
15506
0
  DOMString result;
15507
0
  self->GetFontLanguageOverride(result, rv);
15508
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15509
0
    return false;
15510
0
  }
15511
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15512
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15513
0
    return false;
15514
0
  }
15515
0
  return true;
15516
0
}
15517
15518
MOZ_CAN_RUN_SCRIPT static bool
15519
set_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15520
0
{
15521
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontLanguageOverride", DOM, cx);
15522
0
15523
0
  binding_detail::FakeString arg0;
15524
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15525
0
    return false;
15526
0
  }
15527
0
  Maybe<AutoCEReaction> ceReaction;
15528
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15529
0
    DocGroup* docGroup = self->GetDocGroup();
15530
0
    if (docGroup) {
15531
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15532
0
    }
15533
0
  }
15534
0
  FastErrorResult rv;
15535
0
  nsIPrincipal* subjectPrincipal;
15536
0
  {
15537
0
    JS::Realm* realm = js::GetContextRealm(cx);
15538
0
    MOZ_ASSERT(realm);
15539
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15540
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15541
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15542
0
      principal = nullptr;
15543
0
    }
15544
0
15545
0
    subjectPrincipal = principal;
15546
0
  }
15547
0
  self->SetFontLanguageOverride(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15548
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15549
0
    return false;
15550
0
  }
15551
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15552
0
15553
0
  return true;
15554
0
}
15555
15556
static const JSJitInfo fontLanguageOverride_getterinfo = {
15557
  { (JSJitGetterOp)get_fontLanguageOverride },
15558
  { prototypes::id::CSS2Properties },
15559
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15560
  JSJitInfo::Getter,
15561
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15562
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15563
  false,  /* isInfallible. False in setters. */
15564
  false,  /* isMovable.  Not relevant for setters. */
15565
  false, /* isEliminatable.  Not relevant for setters. */
15566
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15567
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15568
  false,  /* isTypedMethod.  Only relevant for methods. */
15569
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15570
};
15571
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15572
static_assert(0 < 1, "There is no slot for us");
15573
static const JSJitInfo fontLanguageOverride_setterinfo = {
15574
  { (JSJitGetterOp)set_fontLanguageOverride },
15575
  { prototypes::id::CSS2Properties },
15576
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15577
  JSJitInfo::Setter,
15578
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15579
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15580
  false,  /* isInfallible. False in setters. */
15581
  false,  /* isMovable.  Not relevant for setters. */
15582
  false, /* isEliminatable.  Not relevant for setters. */
15583
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15584
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15585
  false,  /* isTypedMethod.  Only relevant for methods. */
15586
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15587
};
15588
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15589
static_assert(0 < 1, "There is no slot for us");
15590
15591
MOZ_CAN_RUN_SCRIPT static bool
15592
get_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15593
0
{
15594
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontSize", DOM, cx);
15595
0
15596
0
  FastErrorResult rv;
15597
0
  DOMString result;
15598
0
  self->GetFontSize(result, rv);
15599
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15600
0
    return false;
15601
0
  }
15602
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15603
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15604
0
    return false;
15605
0
  }
15606
0
  return true;
15607
0
}
15608
15609
MOZ_CAN_RUN_SCRIPT static bool
15610
set_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15611
0
{
15612
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontSize", DOM, cx);
15613
0
15614
0
  binding_detail::FakeString arg0;
15615
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15616
0
    return false;
15617
0
  }
15618
0
  Maybe<AutoCEReaction> ceReaction;
15619
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15620
0
    DocGroup* docGroup = self->GetDocGroup();
15621
0
    if (docGroup) {
15622
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15623
0
    }
15624
0
  }
15625
0
  FastErrorResult rv;
15626
0
  nsIPrincipal* subjectPrincipal;
15627
0
  {
15628
0
    JS::Realm* realm = js::GetContextRealm(cx);
15629
0
    MOZ_ASSERT(realm);
15630
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15631
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15632
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15633
0
      principal = nullptr;
15634
0
    }
15635
0
15636
0
    subjectPrincipal = principal;
15637
0
  }
15638
0
  self->SetFontSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15639
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15640
0
    return false;
15641
0
  }
15642
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15643
0
15644
0
  return true;
15645
0
}
15646
15647
static const JSJitInfo fontSize_getterinfo = {
15648
  { (JSJitGetterOp)get_fontSize },
15649
  { prototypes::id::CSS2Properties },
15650
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15651
  JSJitInfo::Getter,
15652
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15653
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15654
  false,  /* isInfallible. False in setters. */
15655
  false,  /* isMovable.  Not relevant for setters. */
15656
  false, /* isEliminatable.  Not relevant for setters. */
15657
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15658
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15659
  false,  /* isTypedMethod.  Only relevant for methods. */
15660
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15661
};
15662
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15663
static_assert(0 < 1, "There is no slot for us");
15664
static const JSJitInfo fontSize_setterinfo = {
15665
  { (JSJitGetterOp)set_fontSize },
15666
  { prototypes::id::CSS2Properties },
15667
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15668
  JSJitInfo::Setter,
15669
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15670
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15671
  false,  /* isInfallible. False in setters. */
15672
  false,  /* isMovable.  Not relevant for setters. */
15673
  false, /* isEliminatable.  Not relevant for setters. */
15674
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15675
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15676
  false,  /* isTypedMethod.  Only relevant for methods. */
15677
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15678
};
15679
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15680
static_assert(0 < 1, "There is no slot for us");
15681
15682
MOZ_CAN_RUN_SCRIPT static bool
15683
get_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15684
0
{
15685
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariantAlternates", DOM, cx);
15686
0
15687
0
  FastErrorResult rv;
15688
0
  DOMString result;
15689
0
  self->GetFontVariantAlternates(result, rv);
15690
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15691
0
    return false;
15692
0
  }
15693
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15694
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15695
0
    return false;
15696
0
  }
15697
0
  return true;
15698
0
}
15699
15700
MOZ_CAN_RUN_SCRIPT static bool
15701
set_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15702
0
{
15703
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariantAlternates", DOM, cx);
15704
0
15705
0
  binding_detail::FakeString arg0;
15706
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15707
0
    return false;
15708
0
  }
15709
0
  Maybe<AutoCEReaction> ceReaction;
15710
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15711
0
    DocGroup* docGroup = self->GetDocGroup();
15712
0
    if (docGroup) {
15713
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15714
0
    }
15715
0
  }
15716
0
  FastErrorResult rv;
15717
0
  nsIPrincipal* subjectPrincipal;
15718
0
  {
15719
0
    JS::Realm* realm = js::GetContextRealm(cx);
15720
0
    MOZ_ASSERT(realm);
15721
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15722
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15723
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15724
0
      principal = nullptr;
15725
0
    }
15726
0
15727
0
    subjectPrincipal = principal;
15728
0
  }
15729
0
  self->SetFontVariantAlternates(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15730
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15731
0
    return false;
15732
0
  }
15733
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15734
0
15735
0
  return true;
15736
0
}
15737
15738
static const JSJitInfo fontVariantAlternates_getterinfo = {
15739
  { (JSJitGetterOp)get_fontVariantAlternates },
15740
  { prototypes::id::CSS2Properties },
15741
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15742
  JSJitInfo::Getter,
15743
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15744
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15745
  false,  /* isInfallible. False in setters. */
15746
  false,  /* isMovable.  Not relevant for setters. */
15747
  false, /* isEliminatable.  Not relevant for setters. */
15748
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15749
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15750
  false,  /* isTypedMethod.  Only relevant for methods. */
15751
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15752
};
15753
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15754
static_assert(0 < 1, "There is no slot for us");
15755
static const JSJitInfo fontVariantAlternates_setterinfo = {
15756
  { (JSJitGetterOp)set_fontVariantAlternates },
15757
  { prototypes::id::CSS2Properties },
15758
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15759
  JSJitInfo::Setter,
15760
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15761
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15762
  false,  /* isInfallible. False in setters. */
15763
  false,  /* isMovable.  Not relevant for setters. */
15764
  false, /* isEliminatable.  Not relevant for setters. */
15765
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15766
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15767
  false,  /* isTypedMethod.  Only relevant for methods. */
15768
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15769
};
15770
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15771
static_assert(0 < 1, "There is no slot for us");
15772
15773
MOZ_CAN_RUN_SCRIPT static bool
15774
get_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15775
0
{
15776
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariationSettings", DOM, cx);
15777
0
15778
0
  FastErrorResult rv;
15779
0
  DOMString result;
15780
0
  self->GetFontVariationSettings(result, rv);
15781
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15782
0
    return false;
15783
0
  }
15784
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15785
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15786
0
    return false;
15787
0
  }
15788
0
  return true;
15789
0
}
15790
15791
MOZ_CAN_RUN_SCRIPT static bool
15792
set_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15793
0
{
15794
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariationSettings", DOM, cx);
15795
0
15796
0
  binding_detail::FakeString arg0;
15797
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15798
0
    return false;
15799
0
  }
15800
0
  Maybe<AutoCEReaction> ceReaction;
15801
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15802
0
    DocGroup* docGroup = self->GetDocGroup();
15803
0
    if (docGroup) {
15804
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15805
0
    }
15806
0
  }
15807
0
  FastErrorResult rv;
15808
0
  nsIPrincipal* subjectPrincipal;
15809
0
  {
15810
0
    JS::Realm* realm = js::GetContextRealm(cx);
15811
0
    MOZ_ASSERT(realm);
15812
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15813
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15814
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15815
0
      principal = nullptr;
15816
0
    }
15817
0
15818
0
    subjectPrincipal = principal;
15819
0
  }
15820
0
  self->SetFontVariationSettings(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15821
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15822
0
    return false;
15823
0
  }
15824
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15825
0
15826
0
  return true;
15827
0
}
15828
15829
static const JSJitInfo fontVariationSettings_getterinfo = {
15830
  { (JSJitGetterOp)get_fontVariationSettings },
15831
  { prototypes::id::CSS2Properties },
15832
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15833
  JSJitInfo::Getter,
15834
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15835
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15836
  false,  /* isInfallible. False in setters. */
15837
  false,  /* isMovable.  Not relevant for setters. */
15838
  false, /* isEliminatable.  Not relevant for setters. */
15839
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15840
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15841
  false,  /* isTypedMethod.  Only relevant for methods. */
15842
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15843
};
15844
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15845
static_assert(0 < 1, "There is no slot for us");
15846
static const JSJitInfo fontVariationSettings_setterinfo = {
15847
  { (JSJitGetterOp)set_fontVariationSettings },
15848
  { prototypes::id::CSS2Properties },
15849
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15850
  JSJitInfo::Setter,
15851
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15852
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15853
  false,  /* isInfallible. False in setters. */
15854
  false,  /* isMovable.  Not relevant for setters. */
15855
  false, /* isEliminatable.  Not relevant for setters. */
15856
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15857
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15858
  false,  /* isTypedMethod.  Only relevant for methods. */
15859
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15860
};
15861
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15862
static_assert(0 < 1, "There is no slot for us");
15863
15864
MOZ_CAN_RUN_SCRIPT static bool
15865
get_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15866
0
{
15867
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridTemplateAreas", DOM, cx);
15868
0
15869
0
  FastErrorResult rv;
15870
0
  DOMString result;
15871
0
  self->GetGridTemplateAreas(result, rv);
15872
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15873
0
    return false;
15874
0
  }
15875
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15876
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15877
0
    return false;
15878
0
  }
15879
0
  return true;
15880
0
}
15881
15882
MOZ_CAN_RUN_SCRIPT static bool
15883
set_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15884
0
{
15885
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridTemplateAreas", DOM, cx);
15886
0
15887
0
  binding_detail::FakeString arg0;
15888
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15889
0
    return false;
15890
0
  }
15891
0
  Maybe<AutoCEReaction> ceReaction;
15892
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15893
0
    DocGroup* docGroup = self->GetDocGroup();
15894
0
    if (docGroup) {
15895
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15896
0
    }
15897
0
  }
15898
0
  FastErrorResult rv;
15899
0
  nsIPrincipal* subjectPrincipal;
15900
0
  {
15901
0
    JS::Realm* realm = js::GetContextRealm(cx);
15902
0
    MOZ_ASSERT(realm);
15903
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15904
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15905
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15906
0
      principal = nullptr;
15907
0
    }
15908
0
15909
0
    subjectPrincipal = principal;
15910
0
  }
15911
0
  self->SetGridTemplateAreas(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
15912
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15913
0
    return false;
15914
0
  }
15915
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15916
0
15917
0
  return true;
15918
0
}
15919
15920
static const JSJitInfo gridTemplateAreas_getterinfo = {
15921
  { (JSJitGetterOp)get_gridTemplateAreas },
15922
  { prototypes::id::CSS2Properties },
15923
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15924
  JSJitInfo::Getter,
15925
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15926
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
15927
  false,  /* isInfallible. False in setters. */
15928
  false,  /* isMovable.  Not relevant for setters. */
15929
  false, /* isEliminatable.  Not relevant for setters. */
15930
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15931
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15932
  false,  /* isTypedMethod.  Only relevant for methods. */
15933
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15934
};
15935
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15936
static_assert(0 < 1, "There is no slot for us");
15937
static const JSJitInfo gridTemplateAreas_setterinfo = {
15938
  { (JSJitGetterOp)set_gridTemplateAreas },
15939
  { prototypes::id::CSS2Properties },
15940
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
15941
  JSJitInfo::Setter,
15942
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
15943
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
15944
  false,  /* isInfallible. False in setters. */
15945
  false,  /* isMovable.  Not relevant for setters. */
15946
  false, /* isEliminatable.  Not relevant for setters. */
15947
  false, /* isAlwaysInSlot.  Only relevant for getters. */
15948
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
15949
  false,  /* isTypedMethod.  Only relevant for methods. */
15950
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
15951
};
15952
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
15953
static_assert(0 < 1, "There is no slot for us");
15954
15955
MOZ_CAN_RUN_SCRIPT static bool
15956
get_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
15957
0
{
15958
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.letterSpacing", DOM, cx);
15959
0
15960
0
  FastErrorResult rv;
15961
0
  DOMString result;
15962
0
  self->GetLetterSpacing(result, rv);
15963
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
15964
0
    return false;
15965
0
  }
15966
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
15967
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
15968
0
    return false;
15969
0
  }
15970
0
  return true;
15971
0
}
15972
15973
MOZ_CAN_RUN_SCRIPT static bool
15974
set_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
15975
0
{
15976
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.letterSpacing", DOM, cx);
15977
0
15978
0
  binding_detail::FakeString arg0;
15979
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
15980
0
    return false;
15981
0
  }
15982
0
  Maybe<AutoCEReaction> ceReaction;
15983
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
15984
0
    DocGroup* docGroup = self->GetDocGroup();
15985
0
    if (docGroup) {
15986
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
15987
0
    }
15988
0
  }
15989
0
  FastErrorResult rv;
15990
0
  nsIPrincipal* subjectPrincipal;
15991
0
  {
15992
0
    JS::Realm* realm = js::GetContextRealm(cx);
15993
0
    MOZ_ASSERT(realm);
15994
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
15995
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
15996
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
15997
0
      principal = nullptr;
15998
0
    }
15999
0
16000
0
    subjectPrincipal = principal;
16001
0
  }
16002
0
  self->SetLetterSpacing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16003
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16004
0
    return false;
16005
0
  }
16006
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16007
0
16008
0
  return true;
16009
0
}
16010
16011
static const JSJitInfo letterSpacing_getterinfo = {
16012
  { (JSJitGetterOp)get_letterSpacing },
16013
  { prototypes::id::CSS2Properties },
16014
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16015
  JSJitInfo::Getter,
16016
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16017
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16018
  false,  /* isInfallible. False in setters. */
16019
  false,  /* isMovable.  Not relevant for setters. */
16020
  false, /* isEliminatable.  Not relevant for setters. */
16021
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16022
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16023
  false,  /* isTypedMethod.  Only relevant for methods. */
16024
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16025
};
16026
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16027
static_assert(0 < 1, "There is no slot for us");
16028
static const JSJitInfo letterSpacing_setterinfo = {
16029
  { (JSJitGetterOp)set_letterSpacing },
16030
  { prototypes::id::CSS2Properties },
16031
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16032
  JSJitInfo::Setter,
16033
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16034
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16035
  false,  /* isInfallible. False in setters. */
16036
  false,  /* isMovable.  Not relevant for setters. */
16037
  false, /* isEliminatable.  Not relevant for setters. */
16038
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16039
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16040
  false,  /* isTypedMethod.  Only relevant for methods. */
16041
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16042
};
16043
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16044
static_assert(0 < 1, "There is no slot for us");
16045
16046
MOZ_CAN_RUN_SCRIPT static bool
16047
get_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16048
0
{
16049
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.lineHeight", DOM, cx);
16050
0
16051
0
  FastErrorResult rv;
16052
0
  DOMString result;
16053
0
  self->GetLineHeight(result, rv);
16054
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16055
0
    return false;
16056
0
  }
16057
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16058
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16059
0
    return false;
16060
0
  }
16061
0
  return true;
16062
0
}
16063
16064
MOZ_CAN_RUN_SCRIPT static bool
16065
set_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16066
0
{
16067
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.lineHeight", DOM, cx);
16068
0
16069
0
  binding_detail::FakeString arg0;
16070
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16071
0
    return false;
16072
0
  }
16073
0
  Maybe<AutoCEReaction> ceReaction;
16074
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16075
0
    DocGroup* docGroup = self->GetDocGroup();
16076
0
    if (docGroup) {
16077
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16078
0
    }
16079
0
  }
16080
0
  FastErrorResult rv;
16081
0
  nsIPrincipal* subjectPrincipal;
16082
0
  {
16083
0
    JS::Realm* realm = js::GetContextRealm(cx);
16084
0
    MOZ_ASSERT(realm);
16085
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16086
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16087
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16088
0
      principal = nullptr;
16089
0
    }
16090
0
16091
0
    subjectPrincipal = principal;
16092
0
  }
16093
0
  self->SetLineHeight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16094
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16095
0
    return false;
16096
0
  }
16097
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16098
0
16099
0
  return true;
16100
0
}
16101
16102
static const JSJitInfo lineHeight_getterinfo = {
16103
  { (JSJitGetterOp)get_lineHeight },
16104
  { prototypes::id::CSS2Properties },
16105
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16106
  JSJitInfo::Getter,
16107
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16108
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16109
  false,  /* isInfallible. False in setters. */
16110
  false,  /* isMovable.  Not relevant for setters. */
16111
  false, /* isEliminatable.  Not relevant for setters. */
16112
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16113
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16114
  false,  /* isTypedMethod.  Only relevant for methods. */
16115
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16116
};
16117
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16118
static_assert(0 < 1, "There is no slot for us");
16119
static const JSJitInfo lineHeight_setterinfo = {
16120
  { (JSJitGetterOp)set_lineHeight },
16121
  { prototypes::id::CSS2Properties },
16122
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16123
  JSJitInfo::Setter,
16124
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16125
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16126
  false,  /* isInfallible. False in setters. */
16127
  false,  /* isMovable.  Not relevant for setters. */
16128
  false, /* isEliminatable.  Not relevant for setters. */
16129
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16130
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16131
  false,  /* isTypedMethod.  Only relevant for methods. */
16132
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16133
};
16134
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16135
static_assert(0 < 1, "There is no slot for us");
16136
16137
MOZ_CAN_RUN_SCRIPT static bool
16138
get_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16139
0
{
16140
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.listStyleImage", DOM, cx);
16141
0
16142
0
  FastErrorResult rv;
16143
0
  DOMString result;
16144
0
  self->GetListStyleImage(result, rv);
16145
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16146
0
    return false;
16147
0
  }
16148
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16149
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16150
0
    return false;
16151
0
  }
16152
0
  return true;
16153
0
}
16154
16155
MOZ_CAN_RUN_SCRIPT static bool
16156
set_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16157
0
{
16158
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.listStyleImage", DOM, cx);
16159
0
16160
0
  binding_detail::FakeString arg0;
16161
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16162
0
    return false;
16163
0
  }
16164
0
  Maybe<AutoCEReaction> ceReaction;
16165
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16166
0
    DocGroup* docGroup = self->GetDocGroup();
16167
0
    if (docGroup) {
16168
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16169
0
    }
16170
0
  }
16171
0
  FastErrorResult rv;
16172
0
  nsIPrincipal* subjectPrincipal;
16173
0
  {
16174
0
    JS::Realm* realm = js::GetContextRealm(cx);
16175
0
    MOZ_ASSERT(realm);
16176
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16177
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16178
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16179
0
      principal = nullptr;
16180
0
    }
16181
0
16182
0
    subjectPrincipal = principal;
16183
0
  }
16184
0
  self->SetListStyleImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16185
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16186
0
    return false;
16187
0
  }
16188
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16189
0
16190
0
  return true;
16191
0
}
16192
16193
static const JSJitInfo listStyleImage_getterinfo = {
16194
  { (JSJitGetterOp)get_listStyleImage },
16195
  { prototypes::id::CSS2Properties },
16196
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16197
  JSJitInfo::Getter,
16198
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16199
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16200
  false,  /* isInfallible. False in setters. */
16201
  false,  /* isMovable.  Not relevant for setters. */
16202
  false, /* isEliminatable.  Not relevant for setters. */
16203
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16204
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16205
  false,  /* isTypedMethod.  Only relevant for methods. */
16206
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16207
};
16208
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16209
static_assert(0 < 1, "There is no slot for us");
16210
static const JSJitInfo listStyleImage_setterinfo = {
16211
  { (JSJitGetterOp)set_listStyleImage },
16212
  { prototypes::id::CSS2Properties },
16213
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16214
  JSJitInfo::Setter,
16215
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16216
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16217
  false,  /* isInfallible. False in setters. */
16218
  false,  /* isMovable.  Not relevant for setters. */
16219
  false, /* isEliminatable.  Not relevant for setters. */
16220
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16221
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16222
  false,  /* isTypedMethod.  Only relevant for methods. */
16223
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16224
};
16225
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16226
static_assert(0 < 1, "There is no slot for us");
16227
16228
MOZ_CAN_RUN_SCRIPT static bool
16229
get_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16230
0
{
16231
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.listStyleType", DOM, cx);
16232
0
16233
0
  FastErrorResult rv;
16234
0
  DOMString result;
16235
0
  self->GetListStyleType(result, rv);
16236
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16237
0
    return false;
16238
0
  }
16239
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16240
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16241
0
    return false;
16242
0
  }
16243
0
  return true;
16244
0
}
16245
16246
MOZ_CAN_RUN_SCRIPT static bool
16247
set_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16248
0
{
16249
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.listStyleType", DOM, cx);
16250
0
16251
0
  binding_detail::FakeString arg0;
16252
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16253
0
    return false;
16254
0
  }
16255
0
  Maybe<AutoCEReaction> ceReaction;
16256
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16257
0
    DocGroup* docGroup = self->GetDocGroup();
16258
0
    if (docGroup) {
16259
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16260
0
    }
16261
0
  }
16262
0
  FastErrorResult rv;
16263
0
  nsIPrincipal* subjectPrincipal;
16264
0
  {
16265
0
    JS::Realm* realm = js::GetContextRealm(cx);
16266
0
    MOZ_ASSERT(realm);
16267
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16268
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16269
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16270
0
      principal = nullptr;
16271
0
    }
16272
0
16273
0
    subjectPrincipal = principal;
16274
0
  }
16275
0
  self->SetListStyleType(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16276
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16277
0
    return false;
16278
0
  }
16279
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16280
0
16281
0
  return true;
16282
0
}
16283
16284
static const JSJitInfo listStyleType_getterinfo = {
16285
  { (JSJitGetterOp)get_listStyleType },
16286
  { prototypes::id::CSS2Properties },
16287
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16288
  JSJitInfo::Getter,
16289
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16290
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16291
  false,  /* isInfallible. False in setters. */
16292
  false,  /* isMovable.  Not relevant for setters. */
16293
  false, /* isEliminatable.  Not relevant for setters. */
16294
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16295
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16296
  false,  /* isTypedMethod.  Only relevant for methods. */
16297
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16298
};
16299
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16300
static_assert(0 < 1, "There is no slot for us");
16301
static const JSJitInfo listStyleType_setterinfo = {
16302
  { (JSJitGetterOp)set_listStyleType },
16303
  { prototypes::id::CSS2Properties },
16304
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16305
  JSJitInfo::Setter,
16306
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16307
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16308
  false,  /* isInfallible. False in setters. */
16309
  false,  /* isMovable.  Not relevant for setters. */
16310
  false, /* isEliminatable.  Not relevant for setters. */
16311
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16312
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16313
  false,  /* isTypedMethod.  Only relevant for methods. */
16314
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16315
};
16316
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16317
static_assert(0 < 1, "There is no slot for us");
16318
16319
MOZ_CAN_RUN_SCRIPT static bool
16320
get_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16321
0
{
16322
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskClip", DOM, cx);
16323
0
16324
0
  FastErrorResult rv;
16325
0
  DOMString result;
16326
0
  self->GetMaskClip(result, rv);
16327
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16328
0
    return false;
16329
0
  }
16330
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16331
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16332
0
    return false;
16333
0
  }
16334
0
  return true;
16335
0
}
16336
16337
MOZ_CAN_RUN_SCRIPT static bool
16338
set_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16339
0
{
16340
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskClip", DOM, cx);
16341
0
16342
0
  binding_detail::FakeString arg0;
16343
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16344
0
    return false;
16345
0
  }
16346
0
  Maybe<AutoCEReaction> ceReaction;
16347
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16348
0
    DocGroup* docGroup = self->GetDocGroup();
16349
0
    if (docGroup) {
16350
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16351
0
    }
16352
0
  }
16353
0
  FastErrorResult rv;
16354
0
  nsIPrincipal* subjectPrincipal;
16355
0
  {
16356
0
    JS::Realm* realm = js::GetContextRealm(cx);
16357
0
    MOZ_ASSERT(realm);
16358
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16359
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16360
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16361
0
      principal = nullptr;
16362
0
    }
16363
0
16364
0
    subjectPrincipal = principal;
16365
0
  }
16366
0
  self->SetMaskClip(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16367
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16368
0
    return false;
16369
0
  }
16370
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16371
0
16372
0
  return true;
16373
0
}
16374
16375
static const JSJitInfo maskClip_getterinfo = {
16376
  { (JSJitGetterOp)get_maskClip },
16377
  { prototypes::id::CSS2Properties },
16378
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16379
  JSJitInfo::Getter,
16380
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16381
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16382
  false,  /* isInfallible. False in setters. */
16383
  false,  /* isMovable.  Not relevant for setters. */
16384
  false, /* isEliminatable.  Not relevant for setters. */
16385
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16386
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16387
  false,  /* isTypedMethod.  Only relevant for methods. */
16388
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16389
};
16390
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16391
static_assert(0 < 1, "There is no slot for us");
16392
static const JSJitInfo maskClip_setterinfo = {
16393
  { (JSJitGetterOp)set_maskClip },
16394
  { prototypes::id::CSS2Properties },
16395
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16396
  JSJitInfo::Setter,
16397
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16398
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16399
  false,  /* isInfallible. False in setters. */
16400
  false,  /* isMovable.  Not relevant for setters. */
16401
  false, /* isEliminatable.  Not relevant for setters. */
16402
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16403
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16404
  false,  /* isTypedMethod.  Only relevant for methods. */
16405
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16406
};
16407
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16408
static_assert(0 < 1, "There is no slot for us");
16409
16410
MOZ_CAN_RUN_SCRIPT static bool
16411
get_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16412
0
{
16413
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskComposite", DOM, cx);
16414
0
16415
0
  FastErrorResult rv;
16416
0
  DOMString result;
16417
0
  self->GetMaskComposite(result, rv);
16418
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16419
0
    return false;
16420
0
  }
16421
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16422
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16423
0
    return false;
16424
0
  }
16425
0
  return true;
16426
0
}
16427
16428
MOZ_CAN_RUN_SCRIPT static bool
16429
set_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16430
0
{
16431
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskComposite", DOM, cx);
16432
0
16433
0
  binding_detail::FakeString arg0;
16434
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16435
0
    return false;
16436
0
  }
16437
0
  Maybe<AutoCEReaction> ceReaction;
16438
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16439
0
    DocGroup* docGroup = self->GetDocGroup();
16440
0
    if (docGroup) {
16441
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16442
0
    }
16443
0
  }
16444
0
  FastErrorResult rv;
16445
0
  nsIPrincipal* subjectPrincipal;
16446
0
  {
16447
0
    JS::Realm* realm = js::GetContextRealm(cx);
16448
0
    MOZ_ASSERT(realm);
16449
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16450
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16451
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16452
0
      principal = nullptr;
16453
0
    }
16454
0
16455
0
    subjectPrincipal = principal;
16456
0
  }
16457
0
  self->SetMaskComposite(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16458
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16459
0
    return false;
16460
0
  }
16461
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16462
0
16463
0
  return true;
16464
0
}
16465
16466
static const JSJitInfo maskComposite_getterinfo = {
16467
  { (JSJitGetterOp)get_maskComposite },
16468
  { prototypes::id::CSS2Properties },
16469
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16470
  JSJitInfo::Getter,
16471
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16472
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16473
  false,  /* isInfallible. False in setters. */
16474
  false,  /* isMovable.  Not relevant for setters. */
16475
  false, /* isEliminatable.  Not relevant for setters. */
16476
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16477
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16478
  false,  /* isTypedMethod.  Only relevant for methods. */
16479
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16480
};
16481
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16482
static_assert(0 < 1, "There is no slot for us");
16483
static const JSJitInfo maskComposite_setterinfo = {
16484
  { (JSJitGetterOp)set_maskComposite },
16485
  { prototypes::id::CSS2Properties },
16486
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16487
  JSJitInfo::Setter,
16488
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16489
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16490
  false,  /* isInfallible. False in setters. */
16491
  false,  /* isMovable.  Not relevant for setters. */
16492
  false, /* isEliminatable.  Not relevant for setters. */
16493
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16494
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16495
  false,  /* isTypedMethod.  Only relevant for methods. */
16496
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16497
};
16498
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16499
static_assert(0 < 1, "There is no slot for us");
16500
16501
MOZ_CAN_RUN_SCRIPT static bool
16502
get_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16503
0
{
16504
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskImage", DOM, cx);
16505
0
16506
0
  FastErrorResult rv;
16507
0
  DOMString result;
16508
0
  self->GetMaskImage(result, rv);
16509
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16510
0
    return false;
16511
0
  }
16512
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16513
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16514
0
    return false;
16515
0
  }
16516
0
  return true;
16517
0
}
16518
16519
MOZ_CAN_RUN_SCRIPT static bool
16520
set_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16521
0
{
16522
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskImage", DOM, cx);
16523
0
16524
0
  binding_detail::FakeString arg0;
16525
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16526
0
    return false;
16527
0
  }
16528
0
  Maybe<AutoCEReaction> ceReaction;
16529
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16530
0
    DocGroup* docGroup = self->GetDocGroup();
16531
0
    if (docGroup) {
16532
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16533
0
    }
16534
0
  }
16535
0
  FastErrorResult rv;
16536
0
  nsIPrincipal* subjectPrincipal;
16537
0
  {
16538
0
    JS::Realm* realm = js::GetContextRealm(cx);
16539
0
    MOZ_ASSERT(realm);
16540
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16541
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16542
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16543
0
      principal = nullptr;
16544
0
    }
16545
0
16546
0
    subjectPrincipal = principal;
16547
0
  }
16548
0
  self->SetMaskImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16549
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16550
0
    return false;
16551
0
  }
16552
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16553
0
16554
0
  return true;
16555
0
}
16556
16557
static const JSJitInfo maskImage_getterinfo = {
16558
  { (JSJitGetterOp)get_maskImage },
16559
  { prototypes::id::CSS2Properties },
16560
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16561
  JSJitInfo::Getter,
16562
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16563
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16564
  false,  /* isInfallible. False in setters. */
16565
  false,  /* isMovable.  Not relevant for setters. */
16566
  false, /* isEliminatable.  Not relevant for setters. */
16567
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16568
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16569
  false,  /* isTypedMethod.  Only relevant for methods. */
16570
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16571
};
16572
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16573
static_assert(0 < 1, "There is no slot for us");
16574
static const JSJitInfo maskImage_setterinfo = {
16575
  { (JSJitGetterOp)set_maskImage },
16576
  { prototypes::id::CSS2Properties },
16577
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16578
  JSJitInfo::Setter,
16579
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16580
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16581
  false,  /* isInfallible. False in setters. */
16582
  false,  /* isMovable.  Not relevant for setters. */
16583
  false, /* isEliminatable.  Not relevant for setters. */
16584
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16585
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16586
  false,  /* isTypedMethod.  Only relevant for methods. */
16587
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16588
};
16589
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16590
static_assert(0 < 1, "There is no slot for us");
16591
16592
MOZ_CAN_RUN_SCRIPT static bool
16593
get_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16594
0
{
16595
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskMode", DOM, cx);
16596
0
16597
0
  FastErrorResult rv;
16598
0
  DOMString result;
16599
0
  self->GetMaskMode(result, rv);
16600
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16601
0
    return false;
16602
0
  }
16603
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16604
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16605
0
    return false;
16606
0
  }
16607
0
  return true;
16608
0
}
16609
16610
MOZ_CAN_RUN_SCRIPT static bool
16611
set_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16612
0
{
16613
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskMode", DOM, cx);
16614
0
16615
0
  binding_detail::FakeString arg0;
16616
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16617
0
    return false;
16618
0
  }
16619
0
  Maybe<AutoCEReaction> ceReaction;
16620
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16621
0
    DocGroup* docGroup = self->GetDocGroup();
16622
0
    if (docGroup) {
16623
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16624
0
    }
16625
0
  }
16626
0
  FastErrorResult rv;
16627
0
  nsIPrincipal* subjectPrincipal;
16628
0
  {
16629
0
    JS::Realm* realm = js::GetContextRealm(cx);
16630
0
    MOZ_ASSERT(realm);
16631
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16632
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16633
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16634
0
      principal = nullptr;
16635
0
    }
16636
0
16637
0
    subjectPrincipal = principal;
16638
0
  }
16639
0
  self->SetMaskMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16640
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16641
0
    return false;
16642
0
  }
16643
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16644
0
16645
0
  return true;
16646
0
}
16647
16648
static const JSJitInfo maskMode_getterinfo = {
16649
  { (JSJitGetterOp)get_maskMode },
16650
  { prototypes::id::CSS2Properties },
16651
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16652
  JSJitInfo::Getter,
16653
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16654
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16655
  false,  /* isInfallible. False in setters. */
16656
  false,  /* isMovable.  Not relevant for setters. */
16657
  false, /* isEliminatable.  Not relevant for setters. */
16658
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16659
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16660
  false,  /* isTypedMethod.  Only relevant for methods. */
16661
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16662
};
16663
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16664
static_assert(0 < 1, "There is no slot for us");
16665
static const JSJitInfo maskMode_setterinfo = {
16666
  { (JSJitGetterOp)set_maskMode },
16667
  { prototypes::id::CSS2Properties },
16668
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16669
  JSJitInfo::Setter,
16670
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16671
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16672
  false,  /* isInfallible. False in setters. */
16673
  false,  /* isMovable.  Not relevant for setters. */
16674
  false, /* isEliminatable.  Not relevant for setters. */
16675
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16676
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16677
  false,  /* isTypedMethod.  Only relevant for methods. */
16678
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16679
};
16680
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16681
static_assert(0 < 1, "There is no slot for us");
16682
16683
MOZ_CAN_RUN_SCRIPT static bool
16684
get_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16685
0
{
16686
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskOrigin", DOM, cx);
16687
0
16688
0
  FastErrorResult rv;
16689
0
  DOMString result;
16690
0
  self->GetMaskOrigin(result, rv);
16691
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16692
0
    return false;
16693
0
  }
16694
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16695
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16696
0
    return false;
16697
0
  }
16698
0
  return true;
16699
0
}
16700
16701
MOZ_CAN_RUN_SCRIPT static bool
16702
set_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16703
0
{
16704
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskOrigin", DOM, cx);
16705
0
16706
0
  binding_detail::FakeString arg0;
16707
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16708
0
    return false;
16709
0
  }
16710
0
  Maybe<AutoCEReaction> ceReaction;
16711
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16712
0
    DocGroup* docGroup = self->GetDocGroup();
16713
0
    if (docGroup) {
16714
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16715
0
    }
16716
0
  }
16717
0
  FastErrorResult rv;
16718
0
  nsIPrincipal* subjectPrincipal;
16719
0
  {
16720
0
    JS::Realm* realm = js::GetContextRealm(cx);
16721
0
    MOZ_ASSERT(realm);
16722
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16723
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16724
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16725
0
      principal = nullptr;
16726
0
    }
16727
0
16728
0
    subjectPrincipal = principal;
16729
0
  }
16730
0
  self->SetMaskOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16731
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16732
0
    return false;
16733
0
  }
16734
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16735
0
16736
0
  return true;
16737
0
}
16738
16739
static const JSJitInfo maskOrigin_getterinfo = {
16740
  { (JSJitGetterOp)get_maskOrigin },
16741
  { prototypes::id::CSS2Properties },
16742
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16743
  JSJitInfo::Getter,
16744
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16745
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16746
  false,  /* isInfallible. False in setters. */
16747
  false,  /* isMovable.  Not relevant for setters. */
16748
  false, /* isEliminatable.  Not relevant for setters. */
16749
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16750
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16751
  false,  /* isTypedMethod.  Only relevant for methods. */
16752
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16753
};
16754
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16755
static_assert(0 < 1, "There is no slot for us");
16756
static const JSJitInfo maskOrigin_setterinfo = {
16757
  { (JSJitGetterOp)set_maskOrigin },
16758
  { prototypes::id::CSS2Properties },
16759
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16760
  JSJitInfo::Setter,
16761
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16762
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16763
  false,  /* isInfallible. False in setters. */
16764
  false,  /* isMovable.  Not relevant for setters. */
16765
  false, /* isEliminatable.  Not relevant for setters. */
16766
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16767
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16768
  false,  /* isTypedMethod.  Only relevant for methods. */
16769
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16770
};
16771
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16772
static_assert(0 < 1, "There is no slot for us");
16773
16774
MOZ_CAN_RUN_SCRIPT static bool
16775
get_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16776
0
{
16777
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskPositionX", DOM, cx);
16778
0
16779
0
  FastErrorResult rv;
16780
0
  DOMString result;
16781
0
  self->GetMaskPositionX(result, rv);
16782
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16783
0
    return false;
16784
0
  }
16785
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16786
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16787
0
    return false;
16788
0
  }
16789
0
  return true;
16790
0
}
16791
16792
MOZ_CAN_RUN_SCRIPT static bool
16793
set_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16794
0
{
16795
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskPositionX", DOM, cx);
16796
0
16797
0
  binding_detail::FakeString arg0;
16798
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16799
0
    return false;
16800
0
  }
16801
0
  Maybe<AutoCEReaction> ceReaction;
16802
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16803
0
    DocGroup* docGroup = self->GetDocGroup();
16804
0
    if (docGroup) {
16805
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16806
0
    }
16807
0
  }
16808
0
  FastErrorResult rv;
16809
0
  nsIPrincipal* subjectPrincipal;
16810
0
  {
16811
0
    JS::Realm* realm = js::GetContextRealm(cx);
16812
0
    MOZ_ASSERT(realm);
16813
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16814
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16815
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16816
0
      principal = nullptr;
16817
0
    }
16818
0
16819
0
    subjectPrincipal = principal;
16820
0
  }
16821
0
  self->SetMaskPositionX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16822
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16823
0
    return false;
16824
0
  }
16825
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16826
0
16827
0
  return true;
16828
0
}
16829
16830
static const JSJitInfo maskPositionX_getterinfo = {
16831
  { (JSJitGetterOp)get_maskPositionX },
16832
  { prototypes::id::CSS2Properties },
16833
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16834
  JSJitInfo::Getter,
16835
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16836
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16837
  false,  /* isInfallible. False in setters. */
16838
  false,  /* isMovable.  Not relevant for setters. */
16839
  false, /* isEliminatable.  Not relevant for setters. */
16840
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16841
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16842
  false,  /* isTypedMethod.  Only relevant for methods. */
16843
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16844
};
16845
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16846
static_assert(0 < 1, "There is no slot for us");
16847
static const JSJitInfo maskPositionX_setterinfo = {
16848
  { (JSJitGetterOp)set_maskPositionX },
16849
  { prototypes::id::CSS2Properties },
16850
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16851
  JSJitInfo::Setter,
16852
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16853
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16854
  false,  /* isInfallible. False in setters. */
16855
  false,  /* isMovable.  Not relevant for setters. */
16856
  false, /* isEliminatable.  Not relevant for setters. */
16857
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16858
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16859
  false,  /* isTypedMethod.  Only relevant for methods. */
16860
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16861
};
16862
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16863
static_assert(0 < 1, "There is no slot for us");
16864
16865
MOZ_CAN_RUN_SCRIPT static bool
16866
get_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16867
0
{
16868
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskPositionY", DOM, cx);
16869
0
16870
0
  FastErrorResult rv;
16871
0
  DOMString result;
16872
0
  self->GetMaskPositionY(result, rv);
16873
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16874
0
    return false;
16875
0
  }
16876
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16877
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16878
0
    return false;
16879
0
  }
16880
0
  return true;
16881
0
}
16882
16883
MOZ_CAN_RUN_SCRIPT static bool
16884
set_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16885
0
{
16886
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskPositionY", DOM, cx);
16887
0
16888
0
  binding_detail::FakeString arg0;
16889
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16890
0
    return false;
16891
0
  }
16892
0
  Maybe<AutoCEReaction> ceReaction;
16893
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16894
0
    DocGroup* docGroup = self->GetDocGroup();
16895
0
    if (docGroup) {
16896
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16897
0
    }
16898
0
  }
16899
0
  FastErrorResult rv;
16900
0
  nsIPrincipal* subjectPrincipal;
16901
0
  {
16902
0
    JS::Realm* realm = js::GetContextRealm(cx);
16903
0
    MOZ_ASSERT(realm);
16904
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16905
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16906
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16907
0
      principal = nullptr;
16908
0
    }
16909
0
16910
0
    subjectPrincipal = principal;
16911
0
  }
16912
0
  self->SetMaskPositionY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
16913
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16914
0
    return false;
16915
0
  }
16916
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16917
0
16918
0
  return true;
16919
0
}
16920
16921
static const JSJitInfo maskPositionY_getterinfo = {
16922
  { (JSJitGetterOp)get_maskPositionY },
16923
  { prototypes::id::CSS2Properties },
16924
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16925
  JSJitInfo::Getter,
16926
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16927
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
16928
  false,  /* isInfallible. False in setters. */
16929
  false,  /* isMovable.  Not relevant for setters. */
16930
  false, /* isEliminatable.  Not relevant for setters. */
16931
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16932
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16933
  false,  /* isTypedMethod.  Only relevant for methods. */
16934
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16935
};
16936
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16937
static_assert(0 < 1, "There is no slot for us");
16938
static const JSJitInfo maskPositionY_setterinfo = {
16939
  { (JSJitGetterOp)set_maskPositionY },
16940
  { prototypes::id::CSS2Properties },
16941
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
16942
  JSJitInfo::Setter,
16943
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
16944
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
16945
  false,  /* isInfallible. False in setters. */
16946
  false,  /* isMovable.  Not relevant for setters. */
16947
  false, /* isEliminatable.  Not relevant for setters. */
16948
  false, /* isAlwaysInSlot.  Only relevant for getters. */
16949
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
16950
  false,  /* isTypedMethod.  Only relevant for methods. */
16951
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
16952
};
16953
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
16954
static_assert(0 < 1, "There is no slot for us");
16955
16956
MOZ_CAN_RUN_SCRIPT static bool
16957
get_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
16958
0
{
16959
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskRepeat", DOM, cx);
16960
0
16961
0
  FastErrorResult rv;
16962
0
  DOMString result;
16963
0
  self->GetMaskRepeat(result, rv);
16964
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
16965
0
    return false;
16966
0
  }
16967
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
16968
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
16969
0
    return false;
16970
0
  }
16971
0
  return true;
16972
0
}
16973
16974
MOZ_CAN_RUN_SCRIPT static bool
16975
set_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
16976
0
{
16977
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskRepeat", DOM, cx);
16978
0
16979
0
  binding_detail::FakeString arg0;
16980
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
16981
0
    return false;
16982
0
  }
16983
0
  Maybe<AutoCEReaction> ceReaction;
16984
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
16985
0
    DocGroup* docGroup = self->GetDocGroup();
16986
0
    if (docGroup) {
16987
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
16988
0
    }
16989
0
  }
16990
0
  FastErrorResult rv;
16991
0
  nsIPrincipal* subjectPrincipal;
16992
0
  {
16993
0
    JS::Realm* realm = js::GetContextRealm(cx);
16994
0
    MOZ_ASSERT(realm);
16995
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
16996
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
16997
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
16998
0
      principal = nullptr;
16999
0
    }
17000
0
17001
0
    subjectPrincipal = principal;
17002
0
  }
17003
0
  self->SetMaskRepeat(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17004
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17005
0
    return false;
17006
0
  }
17007
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17008
0
17009
0
  return true;
17010
0
}
17011
17012
static const JSJitInfo maskRepeat_getterinfo = {
17013
  { (JSJitGetterOp)get_maskRepeat },
17014
  { prototypes::id::CSS2Properties },
17015
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17016
  JSJitInfo::Getter,
17017
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17018
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17019
  false,  /* isInfallible. False in setters. */
17020
  false,  /* isMovable.  Not relevant for setters. */
17021
  false, /* isEliminatable.  Not relevant for setters. */
17022
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17023
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17024
  false,  /* isTypedMethod.  Only relevant for methods. */
17025
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17026
};
17027
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17028
static_assert(0 < 1, "There is no slot for us");
17029
static const JSJitInfo maskRepeat_setterinfo = {
17030
  { (JSJitGetterOp)set_maskRepeat },
17031
  { prototypes::id::CSS2Properties },
17032
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17033
  JSJitInfo::Setter,
17034
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17035
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17036
  false,  /* isInfallible. False in setters. */
17037
  false,  /* isMovable.  Not relevant for setters. */
17038
  false, /* isEliminatable.  Not relevant for setters. */
17039
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17040
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17041
  false,  /* isTypedMethod.  Only relevant for methods. */
17042
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17043
};
17044
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17045
static_assert(0 < 1, "There is no slot for us");
17046
17047
MOZ_CAN_RUN_SCRIPT static bool
17048
get_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17049
0
{
17050
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskSize", DOM, cx);
17051
0
17052
0
  FastErrorResult rv;
17053
0
  DOMString result;
17054
0
  self->GetMaskSize(result, rv);
17055
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17056
0
    return false;
17057
0
  }
17058
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17059
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17060
0
    return false;
17061
0
  }
17062
0
  return true;
17063
0
}
17064
17065
MOZ_CAN_RUN_SCRIPT static bool
17066
set_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17067
0
{
17068
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskSize", DOM, cx);
17069
0
17070
0
  binding_detail::FakeString arg0;
17071
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17072
0
    return false;
17073
0
  }
17074
0
  Maybe<AutoCEReaction> ceReaction;
17075
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17076
0
    DocGroup* docGroup = self->GetDocGroup();
17077
0
    if (docGroup) {
17078
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17079
0
    }
17080
0
  }
17081
0
  FastErrorResult rv;
17082
0
  nsIPrincipal* subjectPrincipal;
17083
0
  {
17084
0
    JS::Realm* realm = js::GetContextRealm(cx);
17085
0
    MOZ_ASSERT(realm);
17086
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17087
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17088
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17089
0
      principal = nullptr;
17090
0
    }
17091
0
17092
0
    subjectPrincipal = principal;
17093
0
  }
17094
0
  self->SetMaskSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17095
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17096
0
    return false;
17097
0
  }
17098
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17099
0
17100
0
  return true;
17101
0
}
17102
17103
static const JSJitInfo maskSize_getterinfo = {
17104
  { (JSJitGetterOp)get_maskSize },
17105
  { prototypes::id::CSS2Properties },
17106
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17107
  JSJitInfo::Getter,
17108
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17109
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17110
  false,  /* isInfallible. False in setters. */
17111
  false,  /* isMovable.  Not relevant for setters. */
17112
  false, /* isEliminatable.  Not relevant for setters. */
17113
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17114
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17115
  false,  /* isTypedMethod.  Only relevant for methods. */
17116
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17117
};
17118
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17119
static_assert(0 < 1, "There is no slot for us");
17120
static const JSJitInfo maskSize_setterinfo = {
17121
  { (JSJitGetterOp)set_maskSize },
17122
  { prototypes::id::CSS2Properties },
17123
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17124
  JSJitInfo::Setter,
17125
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17126
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17127
  false,  /* isInfallible. False in setters. */
17128
  false,  /* isMovable.  Not relevant for setters. */
17129
  false, /* isEliminatable.  Not relevant for setters. */
17130
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17131
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17132
  false,  /* isTypedMethod.  Only relevant for methods. */
17133
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17134
};
17135
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17136
static_assert(0 < 1, "There is no slot for us");
17137
17138
MOZ_CAN_RUN_SCRIPT static bool
17139
get_MozTabSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17140
0
{
17141
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTabSize", DOM, cx);
17142
0
17143
0
  FastErrorResult rv;
17144
0
  DOMString result;
17145
0
  self->GetMozTabSize(result, rv);
17146
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17147
0
    return false;
17148
0
  }
17149
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17150
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17151
0
    return false;
17152
0
  }
17153
0
  return true;
17154
0
}
17155
17156
MOZ_CAN_RUN_SCRIPT static bool
17157
set_MozTabSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17158
0
{
17159
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTabSize", DOM, cx);
17160
0
17161
0
  binding_detail::FakeString arg0;
17162
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17163
0
    return false;
17164
0
  }
17165
0
  Maybe<AutoCEReaction> ceReaction;
17166
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17167
0
    DocGroup* docGroup = self->GetDocGroup();
17168
0
    if (docGroup) {
17169
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17170
0
    }
17171
0
  }
17172
0
  FastErrorResult rv;
17173
0
  nsIPrincipal* subjectPrincipal;
17174
0
  {
17175
0
    JS::Realm* realm = js::GetContextRealm(cx);
17176
0
    MOZ_ASSERT(realm);
17177
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17178
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17179
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17180
0
      principal = nullptr;
17181
0
    }
17182
0
17183
0
    subjectPrincipal = principal;
17184
0
  }
17185
0
  self->SetMozTabSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17186
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17187
0
    return false;
17188
0
  }
17189
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17190
0
17191
0
  return true;
17192
0
}
17193
17194
static const JSJitInfo MozTabSize_getterinfo = {
17195
  { (JSJitGetterOp)get_MozTabSize },
17196
  { prototypes::id::CSS2Properties },
17197
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17198
  JSJitInfo::Getter,
17199
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17200
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17201
  false,  /* isInfallible. False in setters. */
17202
  false,  /* isMovable.  Not relevant for setters. */
17203
  false, /* isEliminatable.  Not relevant for setters. */
17204
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17205
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17206
  false,  /* isTypedMethod.  Only relevant for methods. */
17207
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17208
};
17209
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17210
static_assert(0 < 1, "There is no slot for us");
17211
static const JSJitInfo MozTabSize_setterinfo = {
17212
  { (JSJitGetterOp)set_MozTabSize },
17213
  { prototypes::id::CSS2Properties },
17214
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17215
  JSJitInfo::Setter,
17216
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17217
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17218
  false,  /* isInfallible. False in setters. */
17219
  false,  /* isMovable.  Not relevant for setters. */
17220
  false, /* isEliminatable.  Not relevant for setters. */
17221
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17222
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17223
  false,  /* isTypedMethod.  Only relevant for methods. */
17224
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17225
};
17226
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17227
static_assert(0 < 1, "There is no slot for us");
17228
17229
MOZ_CAN_RUN_SCRIPT static bool
17230
get_offsetPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17231
0
{
17232
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.offsetPath", DOM, cx);
17233
0
17234
0
  FastErrorResult rv;
17235
0
  DOMString result;
17236
0
  self->GetOffsetPath(result, rv);
17237
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17238
0
    return false;
17239
0
  }
17240
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17241
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17242
0
    return false;
17243
0
  }
17244
0
  return true;
17245
0
}
17246
17247
MOZ_CAN_RUN_SCRIPT static bool
17248
set_offsetPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17249
0
{
17250
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.offsetPath", DOM, cx);
17251
0
17252
0
  binding_detail::FakeString arg0;
17253
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17254
0
    return false;
17255
0
  }
17256
0
  Maybe<AutoCEReaction> ceReaction;
17257
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17258
0
    DocGroup* docGroup = self->GetDocGroup();
17259
0
    if (docGroup) {
17260
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17261
0
    }
17262
0
  }
17263
0
  FastErrorResult rv;
17264
0
  nsIPrincipal* subjectPrincipal;
17265
0
  {
17266
0
    JS::Realm* realm = js::GetContextRealm(cx);
17267
0
    MOZ_ASSERT(realm);
17268
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17269
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17270
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17271
0
      principal = nullptr;
17272
0
    }
17273
0
17274
0
    subjectPrincipal = principal;
17275
0
  }
17276
0
  self->SetOffsetPath(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17277
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17278
0
    return false;
17279
0
  }
17280
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17281
0
17282
0
  return true;
17283
0
}
17284
17285
static const JSJitInfo offsetPath_getterinfo = {
17286
  { (JSJitGetterOp)get_offsetPath },
17287
  { prototypes::id::CSS2Properties },
17288
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17289
  JSJitInfo::Getter,
17290
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17291
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17292
  false,  /* isInfallible. False in setters. */
17293
  false,  /* isMovable.  Not relevant for setters. */
17294
  false, /* isEliminatable.  Not relevant for setters. */
17295
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17296
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17297
  false,  /* isTypedMethod.  Only relevant for methods. */
17298
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17299
};
17300
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17301
static_assert(0 < 1, "There is no slot for us");
17302
static const JSJitInfo offsetPath_setterinfo = {
17303
  { (JSJitGetterOp)set_offsetPath },
17304
  { prototypes::id::CSS2Properties },
17305
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17306
  JSJitInfo::Setter,
17307
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17308
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17309
  false,  /* isInfallible. False in setters. */
17310
  false,  /* isMovable.  Not relevant for setters. */
17311
  false, /* isEliminatable.  Not relevant for setters. */
17312
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17313
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17314
  false,  /* isTypedMethod.  Only relevant for methods. */
17315
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17316
};
17317
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17318
static_assert(0 < 1, "There is no slot for us");
17319
17320
MOZ_CAN_RUN_SCRIPT static bool
17321
get_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17322
0
{
17323
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.outlineOffset", DOM, cx);
17324
0
17325
0
  FastErrorResult rv;
17326
0
  DOMString result;
17327
0
  self->GetOutlineOffset(result, rv);
17328
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17329
0
    return false;
17330
0
  }
17331
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17332
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17333
0
    return false;
17334
0
  }
17335
0
  return true;
17336
0
}
17337
17338
MOZ_CAN_RUN_SCRIPT static bool
17339
set_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17340
0
{
17341
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.outlineOffset", DOM, cx);
17342
0
17343
0
  binding_detail::FakeString arg0;
17344
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17345
0
    return false;
17346
0
  }
17347
0
  Maybe<AutoCEReaction> ceReaction;
17348
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17349
0
    DocGroup* docGroup = self->GetDocGroup();
17350
0
    if (docGroup) {
17351
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17352
0
    }
17353
0
  }
17354
0
  FastErrorResult rv;
17355
0
  nsIPrincipal* subjectPrincipal;
17356
0
  {
17357
0
    JS::Realm* realm = js::GetContextRealm(cx);
17358
0
    MOZ_ASSERT(realm);
17359
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17360
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17361
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17362
0
      principal = nullptr;
17363
0
    }
17364
0
17365
0
    subjectPrincipal = principal;
17366
0
  }
17367
0
  self->SetOutlineOffset(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17368
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17369
0
    return false;
17370
0
  }
17371
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17372
0
17373
0
  return true;
17374
0
}
17375
17376
static const JSJitInfo outlineOffset_getterinfo = {
17377
  { (JSJitGetterOp)get_outlineOffset },
17378
  { prototypes::id::CSS2Properties },
17379
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17380
  JSJitInfo::Getter,
17381
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17382
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17383
  false,  /* isInfallible. False in setters. */
17384
  false,  /* isMovable.  Not relevant for setters. */
17385
  false, /* isEliminatable.  Not relevant for setters. */
17386
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17387
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17388
  false,  /* isTypedMethod.  Only relevant for methods. */
17389
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17390
};
17391
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17392
static_assert(0 < 1, "There is no slot for us");
17393
static const JSJitInfo outlineOffset_setterinfo = {
17394
  { (JSJitGetterOp)set_outlineOffset },
17395
  { prototypes::id::CSS2Properties },
17396
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17397
  JSJitInfo::Setter,
17398
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17399
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17400
  false,  /* isInfallible. False in setters. */
17401
  false,  /* isMovable.  Not relevant for setters. */
17402
  false, /* isEliminatable.  Not relevant for setters. */
17403
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17404
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17405
  false,  /* isTypedMethod.  Only relevant for methods. */
17406
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17407
};
17408
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17409
static_assert(0 < 1, "There is no slot for us");
17410
17411
MOZ_CAN_RUN_SCRIPT static bool
17412
get_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17413
0
{
17414
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.perspective", DOM, cx);
17415
0
17416
0
  FastErrorResult rv;
17417
0
  DOMString result;
17418
0
  self->GetPerspective(result, rv);
17419
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17420
0
    return false;
17421
0
  }
17422
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17423
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17424
0
    return false;
17425
0
  }
17426
0
  return true;
17427
0
}
17428
17429
MOZ_CAN_RUN_SCRIPT static bool
17430
set_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17431
0
{
17432
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.perspective", DOM, cx);
17433
0
17434
0
  binding_detail::FakeString arg0;
17435
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17436
0
    return false;
17437
0
  }
17438
0
  Maybe<AutoCEReaction> ceReaction;
17439
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17440
0
    DocGroup* docGroup = self->GetDocGroup();
17441
0
    if (docGroup) {
17442
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17443
0
    }
17444
0
  }
17445
0
  FastErrorResult rv;
17446
0
  nsIPrincipal* subjectPrincipal;
17447
0
  {
17448
0
    JS::Realm* realm = js::GetContextRealm(cx);
17449
0
    MOZ_ASSERT(realm);
17450
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17451
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17452
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17453
0
      principal = nullptr;
17454
0
    }
17455
0
17456
0
    subjectPrincipal = principal;
17457
0
  }
17458
0
  self->SetPerspective(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17459
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17460
0
    return false;
17461
0
  }
17462
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17463
0
17464
0
  return true;
17465
0
}
17466
17467
static const JSJitInfo perspective_getterinfo = {
17468
  { (JSJitGetterOp)get_perspective },
17469
  { prototypes::id::CSS2Properties },
17470
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17471
  JSJitInfo::Getter,
17472
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17473
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17474
  false,  /* isInfallible. False in setters. */
17475
  false,  /* isMovable.  Not relevant for setters. */
17476
  false, /* isEliminatable.  Not relevant for setters. */
17477
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17478
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17479
  false,  /* isTypedMethod.  Only relevant for methods. */
17480
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17481
};
17482
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17483
static_assert(0 < 1, "There is no slot for us");
17484
static const JSJitInfo perspective_setterinfo = {
17485
  { (JSJitGetterOp)set_perspective },
17486
  { prototypes::id::CSS2Properties },
17487
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17488
  JSJitInfo::Setter,
17489
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17490
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17491
  false,  /* isInfallible. False in setters. */
17492
  false,  /* isMovable.  Not relevant for setters. */
17493
  false, /* isEliminatable.  Not relevant for setters. */
17494
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17495
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17496
  false,  /* isTypedMethod.  Only relevant for methods. */
17497
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17498
};
17499
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17500
static_assert(0 < 1, "There is no slot for us");
17501
17502
MOZ_CAN_RUN_SCRIPT static bool
17503
get_quotes(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17504
0
{
17505
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.quotes", DOM, cx);
17506
0
17507
0
  FastErrorResult rv;
17508
0
  DOMString result;
17509
0
  self->GetQuotes(result, rv);
17510
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17511
0
    return false;
17512
0
  }
17513
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17514
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17515
0
    return false;
17516
0
  }
17517
0
  return true;
17518
0
}
17519
17520
MOZ_CAN_RUN_SCRIPT static bool
17521
set_quotes(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17522
0
{
17523
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.quotes", DOM, cx);
17524
0
17525
0
  binding_detail::FakeString arg0;
17526
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17527
0
    return false;
17528
0
  }
17529
0
  Maybe<AutoCEReaction> ceReaction;
17530
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17531
0
    DocGroup* docGroup = self->GetDocGroup();
17532
0
    if (docGroup) {
17533
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17534
0
    }
17535
0
  }
17536
0
  FastErrorResult rv;
17537
0
  nsIPrincipal* subjectPrincipal;
17538
0
  {
17539
0
    JS::Realm* realm = js::GetContextRealm(cx);
17540
0
    MOZ_ASSERT(realm);
17541
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17542
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17543
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17544
0
      principal = nullptr;
17545
0
    }
17546
0
17547
0
    subjectPrincipal = principal;
17548
0
  }
17549
0
  self->SetQuotes(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17550
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17551
0
    return false;
17552
0
  }
17553
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17554
0
17555
0
  return true;
17556
0
}
17557
17558
static const JSJitInfo quotes_getterinfo = {
17559
  { (JSJitGetterOp)get_quotes },
17560
  { prototypes::id::CSS2Properties },
17561
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17562
  JSJitInfo::Getter,
17563
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17564
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17565
  false,  /* isInfallible. False in setters. */
17566
  false,  /* isMovable.  Not relevant for setters. */
17567
  false, /* isEliminatable.  Not relevant for setters. */
17568
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17569
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17570
  false,  /* isTypedMethod.  Only relevant for methods. */
17571
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17572
};
17573
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17574
static_assert(0 < 1, "There is no slot for us");
17575
static const JSJitInfo quotes_setterinfo = {
17576
  { (JSJitGetterOp)set_quotes },
17577
  { prototypes::id::CSS2Properties },
17578
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17579
  JSJitInfo::Setter,
17580
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17581
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17582
  false,  /* isInfallible. False in setters. */
17583
  false,  /* isMovable.  Not relevant for setters. */
17584
  false, /* isEliminatable.  Not relevant for setters. */
17585
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17586
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17587
  false,  /* isTypedMethod.  Only relevant for methods. */
17588
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17589
};
17590
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17591
static_assert(0 < 1, "There is no slot for us");
17592
17593
MOZ_CAN_RUN_SCRIPT static bool
17594
get_rotate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17595
0
{
17596
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.rotate", DOM, cx);
17597
0
17598
0
  FastErrorResult rv;
17599
0
  DOMString result;
17600
0
  self->GetRotate(result, rv);
17601
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17602
0
    return false;
17603
0
  }
17604
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17605
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17606
0
    return false;
17607
0
  }
17608
0
  return true;
17609
0
}
17610
17611
MOZ_CAN_RUN_SCRIPT static bool
17612
set_rotate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17613
0
{
17614
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.rotate", DOM, cx);
17615
0
17616
0
  binding_detail::FakeString arg0;
17617
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17618
0
    return false;
17619
0
  }
17620
0
  Maybe<AutoCEReaction> ceReaction;
17621
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17622
0
    DocGroup* docGroup = self->GetDocGroup();
17623
0
    if (docGroup) {
17624
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17625
0
    }
17626
0
  }
17627
0
  FastErrorResult rv;
17628
0
  nsIPrincipal* subjectPrincipal;
17629
0
  {
17630
0
    JS::Realm* realm = js::GetContextRealm(cx);
17631
0
    MOZ_ASSERT(realm);
17632
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17633
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17634
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17635
0
      principal = nullptr;
17636
0
    }
17637
0
17638
0
    subjectPrincipal = principal;
17639
0
  }
17640
0
  self->SetRotate(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17641
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17642
0
    return false;
17643
0
  }
17644
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17645
0
17646
0
  return true;
17647
0
}
17648
17649
static const JSJitInfo rotate_getterinfo = {
17650
  { (JSJitGetterOp)get_rotate },
17651
  { prototypes::id::CSS2Properties },
17652
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17653
  JSJitInfo::Getter,
17654
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17655
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17656
  false,  /* isInfallible. False in setters. */
17657
  false,  /* isMovable.  Not relevant for setters. */
17658
  false, /* isEliminatable.  Not relevant for setters. */
17659
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17660
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17661
  false,  /* isTypedMethod.  Only relevant for methods. */
17662
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17663
};
17664
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17665
static_assert(0 < 1, "There is no slot for us");
17666
static const JSJitInfo rotate_setterinfo = {
17667
  { (JSJitGetterOp)set_rotate },
17668
  { prototypes::id::CSS2Properties },
17669
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17670
  JSJitInfo::Setter,
17671
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17672
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17673
  false,  /* isInfallible. False in setters. */
17674
  false,  /* isMovable.  Not relevant for setters. */
17675
  false, /* isEliminatable.  Not relevant for setters. */
17676
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17677
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17678
  false,  /* isTypedMethod.  Only relevant for methods. */
17679
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17680
};
17681
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17682
static_assert(0 < 1, "There is no slot for us");
17683
17684
MOZ_CAN_RUN_SCRIPT static bool
17685
get_scale(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17686
0
{
17687
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scale", DOM, cx);
17688
0
17689
0
  FastErrorResult rv;
17690
0
  DOMString result;
17691
0
  self->GetScale(result, rv);
17692
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17693
0
    return false;
17694
0
  }
17695
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17696
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17697
0
    return false;
17698
0
  }
17699
0
  return true;
17700
0
}
17701
17702
MOZ_CAN_RUN_SCRIPT static bool
17703
set_scale(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17704
0
{
17705
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scale", DOM, cx);
17706
0
17707
0
  binding_detail::FakeString arg0;
17708
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17709
0
    return false;
17710
0
  }
17711
0
  Maybe<AutoCEReaction> ceReaction;
17712
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17713
0
    DocGroup* docGroup = self->GetDocGroup();
17714
0
    if (docGroup) {
17715
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17716
0
    }
17717
0
  }
17718
0
  FastErrorResult rv;
17719
0
  nsIPrincipal* subjectPrincipal;
17720
0
  {
17721
0
    JS::Realm* realm = js::GetContextRealm(cx);
17722
0
    MOZ_ASSERT(realm);
17723
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17724
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17725
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17726
0
      principal = nullptr;
17727
0
    }
17728
0
17729
0
    subjectPrincipal = principal;
17730
0
  }
17731
0
  self->SetScale(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17732
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17733
0
    return false;
17734
0
  }
17735
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17736
0
17737
0
  return true;
17738
0
}
17739
17740
static const JSJitInfo scale_getterinfo = {
17741
  { (JSJitGetterOp)get_scale },
17742
  { prototypes::id::CSS2Properties },
17743
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17744
  JSJitInfo::Getter,
17745
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17746
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17747
  false,  /* isInfallible. False in setters. */
17748
  false,  /* isMovable.  Not relevant for setters. */
17749
  false, /* isEliminatable.  Not relevant for setters. */
17750
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17751
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17752
  false,  /* isTypedMethod.  Only relevant for methods. */
17753
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17754
};
17755
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17756
static_assert(0 < 1, "There is no slot for us");
17757
static const JSJitInfo scale_setterinfo = {
17758
  { (JSJitGetterOp)set_scale },
17759
  { prototypes::id::CSS2Properties },
17760
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17761
  JSJitInfo::Setter,
17762
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17763
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17764
  false,  /* isInfallible. False in setters. */
17765
  false,  /* isMovable.  Not relevant for setters. */
17766
  false, /* isEliminatable.  Not relevant for setters. */
17767
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17768
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17769
  false,  /* isTypedMethod.  Only relevant for methods. */
17770
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17771
};
17772
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17773
static_assert(0 < 1, "There is no slot for us");
17774
17775
MOZ_CAN_RUN_SCRIPT static bool
17776
get_scrollSnapCoordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17777
0
{
17778
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapCoordinate", DOM, cx);
17779
0
17780
0
  FastErrorResult rv;
17781
0
  DOMString result;
17782
0
  self->GetScrollSnapCoordinate(result, rv);
17783
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17784
0
    return false;
17785
0
  }
17786
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17787
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17788
0
    return false;
17789
0
  }
17790
0
  return true;
17791
0
}
17792
17793
MOZ_CAN_RUN_SCRIPT static bool
17794
set_scrollSnapCoordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17795
0
{
17796
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapCoordinate", DOM, cx);
17797
0
17798
0
  binding_detail::FakeString arg0;
17799
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17800
0
    return false;
17801
0
  }
17802
0
  Maybe<AutoCEReaction> ceReaction;
17803
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17804
0
    DocGroup* docGroup = self->GetDocGroup();
17805
0
    if (docGroup) {
17806
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17807
0
    }
17808
0
  }
17809
0
  FastErrorResult rv;
17810
0
  nsIPrincipal* subjectPrincipal;
17811
0
  {
17812
0
    JS::Realm* realm = js::GetContextRealm(cx);
17813
0
    MOZ_ASSERT(realm);
17814
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17815
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17816
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17817
0
      principal = nullptr;
17818
0
    }
17819
0
17820
0
    subjectPrincipal = principal;
17821
0
  }
17822
0
  self->SetScrollSnapCoordinate(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17823
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17824
0
    return false;
17825
0
  }
17826
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17827
0
17828
0
  return true;
17829
0
}
17830
17831
static const JSJitInfo scrollSnapCoordinate_getterinfo = {
17832
  { (JSJitGetterOp)get_scrollSnapCoordinate },
17833
  { prototypes::id::CSS2Properties },
17834
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17835
  JSJitInfo::Getter,
17836
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17837
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17838
  false,  /* isInfallible. False in setters. */
17839
  false,  /* isMovable.  Not relevant for setters. */
17840
  false, /* isEliminatable.  Not relevant for setters. */
17841
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17842
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17843
  false,  /* isTypedMethod.  Only relevant for methods. */
17844
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17845
};
17846
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17847
static_assert(0 < 1, "There is no slot for us");
17848
static const JSJitInfo scrollSnapCoordinate_setterinfo = {
17849
  { (JSJitGetterOp)set_scrollSnapCoordinate },
17850
  { prototypes::id::CSS2Properties },
17851
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17852
  JSJitInfo::Setter,
17853
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17854
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17855
  false,  /* isInfallible. False in setters. */
17856
  false,  /* isMovable.  Not relevant for setters. */
17857
  false, /* isEliminatable.  Not relevant for setters. */
17858
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17859
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17860
  false,  /* isTypedMethod.  Only relevant for methods. */
17861
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17862
};
17863
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17864
static_assert(0 < 1, "There is no slot for us");
17865
17866
MOZ_CAN_RUN_SCRIPT static bool
17867
get_scrollbarColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17868
0
{
17869
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollbarColor", DOM, cx);
17870
0
17871
0
  FastErrorResult rv;
17872
0
  DOMString result;
17873
0
  self->GetScrollbarColor(result, rv);
17874
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17875
0
    return false;
17876
0
  }
17877
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17878
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17879
0
    return false;
17880
0
  }
17881
0
  return true;
17882
0
}
17883
17884
MOZ_CAN_RUN_SCRIPT static bool
17885
set_scrollbarColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17886
0
{
17887
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollbarColor", DOM, cx);
17888
0
17889
0
  binding_detail::FakeString arg0;
17890
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17891
0
    return false;
17892
0
  }
17893
0
  Maybe<AutoCEReaction> ceReaction;
17894
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17895
0
    DocGroup* docGroup = self->GetDocGroup();
17896
0
    if (docGroup) {
17897
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17898
0
    }
17899
0
  }
17900
0
  FastErrorResult rv;
17901
0
  nsIPrincipal* subjectPrincipal;
17902
0
  {
17903
0
    JS::Realm* realm = js::GetContextRealm(cx);
17904
0
    MOZ_ASSERT(realm);
17905
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17906
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17907
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17908
0
      principal = nullptr;
17909
0
    }
17910
0
17911
0
    subjectPrincipal = principal;
17912
0
  }
17913
0
  self->SetScrollbarColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
17914
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17915
0
    return false;
17916
0
  }
17917
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17918
0
17919
0
  return true;
17920
0
}
17921
17922
static const JSJitInfo scrollbarColor_getterinfo = {
17923
  { (JSJitGetterOp)get_scrollbarColor },
17924
  { prototypes::id::CSS2Properties },
17925
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17926
  JSJitInfo::Getter,
17927
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17928
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
17929
  false,  /* isInfallible. False in setters. */
17930
  false,  /* isMovable.  Not relevant for setters. */
17931
  false, /* isEliminatable.  Not relevant for setters. */
17932
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17933
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17934
  false,  /* isTypedMethod.  Only relevant for methods. */
17935
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17936
};
17937
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17938
static_assert(0 < 1, "There is no slot for us");
17939
static const JSJitInfo scrollbarColor_setterinfo = {
17940
  { (JSJitGetterOp)set_scrollbarColor },
17941
  { prototypes::id::CSS2Properties },
17942
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
17943
  JSJitInfo::Setter,
17944
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
17945
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
17946
  false,  /* isInfallible. False in setters. */
17947
  false,  /* isMovable.  Not relevant for setters. */
17948
  false, /* isEliminatable.  Not relevant for setters. */
17949
  false, /* isAlwaysInSlot.  Only relevant for getters. */
17950
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
17951
  false,  /* isTypedMethod.  Only relevant for methods. */
17952
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
17953
};
17954
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
17955
static_assert(0 < 1, "There is no slot for us");
17956
17957
MOZ_CAN_RUN_SCRIPT static bool
17958
get_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
17959
0
{
17960
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.shapeOutside", DOM, cx);
17961
0
17962
0
  FastErrorResult rv;
17963
0
  DOMString result;
17964
0
  self->GetShapeOutside(result, rv);
17965
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
17966
0
    return false;
17967
0
  }
17968
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
17969
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
17970
0
    return false;
17971
0
  }
17972
0
  return true;
17973
0
}
17974
17975
MOZ_CAN_RUN_SCRIPT static bool
17976
set_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
17977
0
{
17978
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.shapeOutside", DOM, cx);
17979
0
17980
0
  binding_detail::FakeString arg0;
17981
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
17982
0
    return false;
17983
0
  }
17984
0
  Maybe<AutoCEReaction> ceReaction;
17985
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
17986
0
    DocGroup* docGroup = self->GetDocGroup();
17987
0
    if (docGroup) {
17988
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
17989
0
    }
17990
0
  }
17991
0
  FastErrorResult rv;
17992
0
  nsIPrincipal* subjectPrincipal;
17993
0
  {
17994
0
    JS::Realm* realm = js::GetContextRealm(cx);
17995
0
    MOZ_ASSERT(realm);
17996
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
17997
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
17998
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
17999
0
      principal = nullptr;
18000
0
    }
18001
0
18002
0
    subjectPrincipal = principal;
18003
0
  }
18004
0
  self->SetShapeOutside(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18005
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18006
0
    return false;
18007
0
  }
18008
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18009
0
18010
0
  return true;
18011
0
}
18012
18013
static const JSJitInfo shapeOutside_getterinfo = {
18014
  { (JSJitGetterOp)get_shapeOutside },
18015
  { prototypes::id::CSS2Properties },
18016
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18017
  JSJitInfo::Getter,
18018
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18019
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18020
  false,  /* isInfallible. False in setters. */
18021
  false,  /* isMovable.  Not relevant for setters. */
18022
  false, /* isEliminatable.  Not relevant for setters. */
18023
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18024
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18025
  false,  /* isTypedMethod.  Only relevant for methods. */
18026
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18027
};
18028
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18029
static_assert(0 < 1, "There is no slot for us");
18030
static const JSJitInfo shapeOutside_setterinfo = {
18031
  { (JSJitGetterOp)set_shapeOutside },
18032
  { prototypes::id::CSS2Properties },
18033
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18034
  JSJitInfo::Setter,
18035
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18036
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18037
  false,  /* isInfallible. False in setters. */
18038
  false,  /* isMovable.  Not relevant for setters. */
18039
  false, /* isEliminatable.  Not relevant for setters. */
18040
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18041
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18042
  false,  /* isTypedMethod.  Only relevant for methods. */
18043
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18044
};
18045
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18046
static_assert(0 < 1, "There is no slot for us");
18047
18048
MOZ_CAN_RUN_SCRIPT static bool
18049
get_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18050
0
{
18051
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeDasharray", DOM, cx);
18052
0
18053
0
  FastErrorResult rv;
18054
0
  DOMString result;
18055
0
  self->GetStrokeDasharray(result, rv);
18056
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18057
0
    return false;
18058
0
  }
18059
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18060
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18061
0
    return false;
18062
0
  }
18063
0
  return true;
18064
0
}
18065
18066
MOZ_CAN_RUN_SCRIPT static bool
18067
set_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18068
0
{
18069
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeDasharray", DOM, cx);
18070
0
18071
0
  binding_detail::FakeString arg0;
18072
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18073
0
    return false;
18074
0
  }
18075
0
  Maybe<AutoCEReaction> ceReaction;
18076
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18077
0
    DocGroup* docGroup = self->GetDocGroup();
18078
0
    if (docGroup) {
18079
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18080
0
    }
18081
0
  }
18082
0
  FastErrorResult rv;
18083
0
  nsIPrincipal* subjectPrincipal;
18084
0
  {
18085
0
    JS::Realm* realm = js::GetContextRealm(cx);
18086
0
    MOZ_ASSERT(realm);
18087
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18088
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18089
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18090
0
      principal = nullptr;
18091
0
    }
18092
0
18093
0
    subjectPrincipal = principal;
18094
0
  }
18095
0
  self->SetStrokeDasharray(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18096
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18097
0
    return false;
18098
0
  }
18099
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18100
0
18101
0
  return true;
18102
0
}
18103
18104
static const JSJitInfo strokeDasharray_getterinfo = {
18105
  { (JSJitGetterOp)get_strokeDasharray },
18106
  { prototypes::id::CSS2Properties },
18107
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18108
  JSJitInfo::Getter,
18109
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18110
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18111
  false,  /* isInfallible. False in setters. */
18112
  false,  /* isMovable.  Not relevant for setters. */
18113
  false, /* isEliminatable.  Not relevant for setters. */
18114
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18115
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18116
  false,  /* isTypedMethod.  Only relevant for methods. */
18117
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18118
};
18119
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18120
static_assert(0 < 1, "There is no slot for us");
18121
static const JSJitInfo strokeDasharray_setterinfo = {
18122
  { (JSJitGetterOp)set_strokeDasharray },
18123
  { prototypes::id::CSS2Properties },
18124
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18125
  JSJitInfo::Setter,
18126
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18127
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18128
  false,  /* isInfallible. False in setters. */
18129
  false,  /* isMovable.  Not relevant for setters. */
18130
  false, /* isEliminatable.  Not relevant for setters. */
18131
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18132
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18133
  false,  /* isTypedMethod.  Only relevant for methods. */
18134
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18135
};
18136
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18137
static_assert(0 < 1, "There is no slot for us");
18138
18139
MOZ_CAN_RUN_SCRIPT static bool
18140
get_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18141
0
{
18142
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeDashoffset", DOM, cx);
18143
0
18144
0
  FastErrorResult rv;
18145
0
  DOMString result;
18146
0
  self->GetStrokeDashoffset(result, rv);
18147
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18148
0
    return false;
18149
0
  }
18150
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18151
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18152
0
    return false;
18153
0
  }
18154
0
  return true;
18155
0
}
18156
18157
MOZ_CAN_RUN_SCRIPT static bool
18158
set_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18159
0
{
18160
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeDashoffset", DOM, cx);
18161
0
18162
0
  binding_detail::FakeString arg0;
18163
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18164
0
    return false;
18165
0
  }
18166
0
  Maybe<AutoCEReaction> ceReaction;
18167
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18168
0
    DocGroup* docGroup = self->GetDocGroup();
18169
0
    if (docGroup) {
18170
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18171
0
    }
18172
0
  }
18173
0
  FastErrorResult rv;
18174
0
  nsIPrincipal* subjectPrincipal;
18175
0
  {
18176
0
    JS::Realm* realm = js::GetContextRealm(cx);
18177
0
    MOZ_ASSERT(realm);
18178
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18179
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18180
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18181
0
      principal = nullptr;
18182
0
    }
18183
0
18184
0
    subjectPrincipal = principal;
18185
0
  }
18186
0
  self->SetStrokeDashoffset(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18187
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18188
0
    return false;
18189
0
  }
18190
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18191
0
18192
0
  return true;
18193
0
}
18194
18195
static const JSJitInfo strokeDashoffset_getterinfo = {
18196
  { (JSJitGetterOp)get_strokeDashoffset },
18197
  { prototypes::id::CSS2Properties },
18198
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18199
  JSJitInfo::Getter,
18200
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18201
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18202
  false,  /* isInfallible. False in setters. */
18203
  false,  /* isMovable.  Not relevant for setters. */
18204
  false, /* isEliminatable.  Not relevant for setters. */
18205
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18206
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18207
  false,  /* isTypedMethod.  Only relevant for methods. */
18208
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18209
};
18210
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18211
static_assert(0 < 1, "There is no slot for us");
18212
static const JSJitInfo strokeDashoffset_setterinfo = {
18213
  { (JSJitGetterOp)set_strokeDashoffset },
18214
  { prototypes::id::CSS2Properties },
18215
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18216
  JSJitInfo::Setter,
18217
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18218
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18219
  false,  /* isInfallible. False in setters. */
18220
  false,  /* isMovable.  Not relevant for setters. */
18221
  false, /* isEliminatable.  Not relevant for setters. */
18222
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18223
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18224
  false,  /* isTypedMethod.  Only relevant for methods. */
18225
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18226
};
18227
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18228
static_assert(0 < 1, "There is no slot for us");
18229
18230
MOZ_CAN_RUN_SCRIPT static bool
18231
get_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18232
0
{
18233
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.strokeWidth", DOM, cx);
18234
0
18235
0
  FastErrorResult rv;
18236
0
  DOMString result;
18237
0
  self->GetStrokeWidth(result, rv);
18238
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18239
0
    return false;
18240
0
  }
18241
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18242
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18243
0
    return false;
18244
0
  }
18245
0
  return true;
18246
0
}
18247
18248
MOZ_CAN_RUN_SCRIPT static bool
18249
set_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18250
0
{
18251
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.strokeWidth", DOM, cx);
18252
0
18253
0
  binding_detail::FakeString arg0;
18254
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18255
0
    return false;
18256
0
  }
18257
0
  Maybe<AutoCEReaction> ceReaction;
18258
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18259
0
    DocGroup* docGroup = self->GetDocGroup();
18260
0
    if (docGroup) {
18261
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18262
0
    }
18263
0
  }
18264
0
  FastErrorResult rv;
18265
0
  nsIPrincipal* subjectPrincipal;
18266
0
  {
18267
0
    JS::Realm* realm = js::GetContextRealm(cx);
18268
0
    MOZ_ASSERT(realm);
18269
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18270
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18271
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18272
0
      principal = nullptr;
18273
0
    }
18274
0
18275
0
    subjectPrincipal = principal;
18276
0
  }
18277
0
  self->SetStrokeWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18278
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18279
0
    return false;
18280
0
  }
18281
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18282
0
18283
0
  return true;
18284
0
}
18285
18286
static const JSJitInfo strokeWidth_getterinfo = {
18287
  { (JSJitGetterOp)get_strokeWidth },
18288
  { prototypes::id::CSS2Properties },
18289
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18290
  JSJitInfo::Getter,
18291
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18292
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18293
  false,  /* isInfallible. False in setters. */
18294
  false,  /* isMovable.  Not relevant for setters. */
18295
  false, /* isEliminatable.  Not relevant for setters. */
18296
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18297
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18298
  false,  /* isTypedMethod.  Only relevant for methods. */
18299
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18300
};
18301
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18302
static_assert(0 < 1, "There is no slot for us");
18303
static const JSJitInfo strokeWidth_setterinfo = {
18304
  { (JSJitGetterOp)set_strokeWidth },
18305
  { prototypes::id::CSS2Properties },
18306
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18307
  JSJitInfo::Setter,
18308
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18309
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18310
  false,  /* isInfallible. False in setters. */
18311
  false,  /* isMovable.  Not relevant for setters. */
18312
  false, /* isEliminatable.  Not relevant for setters. */
18313
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18314
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18315
  false,  /* isTypedMethod.  Only relevant for methods. */
18316
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18317
};
18318
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18319
static_assert(0 < 1, "There is no slot for us");
18320
18321
MOZ_CAN_RUN_SCRIPT static bool
18322
get_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18323
0
{
18324
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textEmphasisStyle", DOM, cx);
18325
0
18326
0
  FastErrorResult rv;
18327
0
  DOMString result;
18328
0
  self->GetTextEmphasisStyle(result, rv);
18329
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18330
0
    return false;
18331
0
  }
18332
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18333
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18334
0
    return false;
18335
0
  }
18336
0
  return true;
18337
0
}
18338
18339
MOZ_CAN_RUN_SCRIPT static bool
18340
set_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18341
0
{
18342
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textEmphasisStyle", DOM, cx);
18343
0
18344
0
  binding_detail::FakeString arg0;
18345
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18346
0
    return false;
18347
0
  }
18348
0
  Maybe<AutoCEReaction> ceReaction;
18349
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18350
0
    DocGroup* docGroup = self->GetDocGroup();
18351
0
    if (docGroup) {
18352
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18353
0
    }
18354
0
  }
18355
0
  FastErrorResult rv;
18356
0
  nsIPrincipal* subjectPrincipal;
18357
0
  {
18358
0
    JS::Realm* realm = js::GetContextRealm(cx);
18359
0
    MOZ_ASSERT(realm);
18360
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18361
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18362
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18363
0
      principal = nullptr;
18364
0
    }
18365
0
18366
0
    subjectPrincipal = principal;
18367
0
  }
18368
0
  self->SetTextEmphasisStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18369
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18370
0
    return false;
18371
0
  }
18372
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18373
0
18374
0
  return true;
18375
0
}
18376
18377
static const JSJitInfo textEmphasisStyle_getterinfo = {
18378
  { (JSJitGetterOp)get_textEmphasisStyle },
18379
  { prototypes::id::CSS2Properties },
18380
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18381
  JSJitInfo::Getter,
18382
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18383
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18384
  false,  /* isInfallible. False in setters. */
18385
  false,  /* isMovable.  Not relevant for setters. */
18386
  false, /* isEliminatable.  Not relevant for setters. */
18387
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18388
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18389
  false,  /* isTypedMethod.  Only relevant for methods. */
18390
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18391
};
18392
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18393
static_assert(0 < 1, "There is no slot for us");
18394
static const JSJitInfo textEmphasisStyle_setterinfo = {
18395
  { (JSJitGetterOp)set_textEmphasisStyle },
18396
  { prototypes::id::CSS2Properties },
18397
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18398
  JSJitInfo::Setter,
18399
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18400
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18401
  false,  /* isInfallible. False in setters. */
18402
  false,  /* isMovable.  Not relevant for setters. */
18403
  false, /* isEliminatable.  Not relevant for setters. */
18404
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18405
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18406
  false,  /* isTypedMethod.  Only relevant for methods. */
18407
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18408
};
18409
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18410
static_assert(0 < 1, "There is no slot for us");
18411
18412
MOZ_CAN_RUN_SCRIPT static bool
18413
get_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18414
0
{
18415
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textIndent", DOM, cx);
18416
0
18417
0
  FastErrorResult rv;
18418
0
  DOMString result;
18419
0
  self->GetTextIndent(result, rv);
18420
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18421
0
    return false;
18422
0
  }
18423
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18424
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18425
0
    return false;
18426
0
  }
18427
0
  return true;
18428
0
}
18429
18430
MOZ_CAN_RUN_SCRIPT static bool
18431
set_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18432
0
{
18433
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textIndent", DOM, cx);
18434
0
18435
0
  binding_detail::FakeString arg0;
18436
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18437
0
    return false;
18438
0
  }
18439
0
  Maybe<AutoCEReaction> ceReaction;
18440
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18441
0
    DocGroup* docGroup = self->GetDocGroup();
18442
0
    if (docGroup) {
18443
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18444
0
    }
18445
0
  }
18446
0
  FastErrorResult rv;
18447
0
  nsIPrincipal* subjectPrincipal;
18448
0
  {
18449
0
    JS::Realm* realm = js::GetContextRealm(cx);
18450
0
    MOZ_ASSERT(realm);
18451
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18452
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18453
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18454
0
      principal = nullptr;
18455
0
    }
18456
0
18457
0
    subjectPrincipal = principal;
18458
0
  }
18459
0
  self->SetTextIndent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18460
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18461
0
    return false;
18462
0
  }
18463
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18464
0
18465
0
  return true;
18466
0
}
18467
18468
static const JSJitInfo textIndent_getterinfo = {
18469
  { (JSJitGetterOp)get_textIndent },
18470
  { prototypes::id::CSS2Properties },
18471
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18472
  JSJitInfo::Getter,
18473
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18474
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18475
  false,  /* isInfallible. False in setters. */
18476
  false,  /* isMovable.  Not relevant for setters. */
18477
  false, /* isEliminatable.  Not relevant for setters. */
18478
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18479
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18480
  false,  /* isTypedMethod.  Only relevant for methods. */
18481
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18482
};
18483
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18484
static_assert(0 < 1, "There is no slot for us");
18485
static const JSJitInfo textIndent_setterinfo = {
18486
  { (JSJitGetterOp)set_textIndent },
18487
  { prototypes::id::CSS2Properties },
18488
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18489
  JSJitInfo::Setter,
18490
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18491
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18492
  false,  /* isInfallible. False in setters. */
18493
  false,  /* isMovable.  Not relevant for setters. */
18494
  false, /* isEliminatable.  Not relevant for setters. */
18495
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18496
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18497
  false,  /* isTypedMethod.  Only relevant for methods. */
18498
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18499
};
18500
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18501
static_assert(0 < 1, "There is no slot for us");
18502
18503
MOZ_CAN_RUN_SCRIPT static bool
18504
get_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18505
0
{
18506
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textOverflow", DOM, cx);
18507
0
18508
0
  FastErrorResult rv;
18509
0
  DOMString result;
18510
0
  self->GetTextOverflow(result, rv);
18511
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18512
0
    return false;
18513
0
  }
18514
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18515
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18516
0
    return false;
18517
0
  }
18518
0
  return true;
18519
0
}
18520
18521
MOZ_CAN_RUN_SCRIPT static bool
18522
set_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18523
0
{
18524
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textOverflow", DOM, cx);
18525
0
18526
0
  binding_detail::FakeString arg0;
18527
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18528
0
    return false;
18529
0
  }
18530
0
  Maybe<AutoCEReaction> ceReaction;
18531
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18532
0
    DocGroup* docGroup = self->GetDocGroup();
18533
0
    if (docGroup) {
18534
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18535
0
    }
18536
0
  }
18537
0
  FastErrorResult rv;
18538
0
  nsIPrincipal* subjectPrincipal;
18539
0
  {
18540
0
    JS::Realm* realm = js::GetContextRealm(cx);
18541
0
    MOZ_ASSERT(realm);
18542
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18543
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18544
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18545
0
      principal = nullptr;
18546
0
    }
18547
0
18548
0
    subjectPrincipal = principal;
18549
0
  }
18550
0
  self->SetTextOverflow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18551
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18552
0
    return false;
18553
0
  }
18554
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18555
0
18556
0
  return true;
18557
0
}
18558
18559
static const JSJitInfo textOverflow_getterinfo = {
18560
  { (JSJitGetterOp)get_textOverflow },
18561
  { prototypes::id::CSS2Properties },
18562
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18563
  JSJitInfo::Getter,
18564
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18565
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18566
  false,  /* isInfallible. False in setters. */
18567
  false,  /* isMovable.  Not relevant for setters. */
18568
  false, /* isEliminatable.  Not relevant for setters. */
18569
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18570
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18571
  false,  /* isTypedMethod.  Only relevant for methods. */
18572
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18573
};
18574
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18575
static_assert(0 < 1, "There is no slot for us");
18576
static const JSJitInfo textOverflow_setterinfo = {
18577
  { (JSJitGetterOp)set_textOverflow },
18578
  { prototypes::id::CSS2Properties },
18579
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18580
  JSJitInfo::Setter,
18581
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18582
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18583
  false,  /* isInfallible. False in setters. */
18584
  false,  /* isMovable.  Not relevant for setters. */
18585
  false, /* isEliminatable.  Not relevant for setters. */
18586
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18587
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18588
  false,  /* isTypedMethod.  Only relevant for methods. */
18589
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18590
};
18591
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18592
static_assert(0 < 1, "There is no slot for us");
18593
18594
MOZ_CAN_RUN_SCRIPT static bool
18595
get_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18596
0
{
18597
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textShadow", DOM, cx);
18598
0
18599
0
  FastErrorResult rv;
18600
0
  DOMString result;
18601
0
  self->GetTextShadow(result, rv);
18602
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18603
0
    return false;
18604
0
  }
18605
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18606
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18607
0
    return false;
18608
0
  }
18609
0
  return true;
18610
0
}
18611
18612
MOZ_CAN_RUN_SCRIPT static bool
18613
set_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18614
0
{
18615
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textShadow", DOM, cx);
18616
0
18617
0
  binding_detail::FakeString arg0;
18618
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18619
0
    return false;
18620
0
  }
18621
0
  Maybe<AutoCEReaction> ceReaction;
18622
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18623
0
    DocGroup* docGroup = self->GetDocGroup();
18624
0
    if (docGroup) {
18625
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18626
0
    }
18627
0
  }
18628
0
  FastErrorResult rv;
18629
0
  nsIPrincipal* subjectPrincipal;
18630
0
  {
18631
0
    JS::Realm* realm = js::GetContextRealm(cx);
18632
0
    MOZ_ASSERT(realm);
18633
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18634
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18635
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18636
0
      principal = nullptr;
18637
0
    }
18638
0
18639
0
    subjectPrincipal = principal;
18640
0
  }
18641
0
  self->SetTextShadow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18642
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18643
0
    return false;
18644
0
  }
18645
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18646
0
18647
0
  return true;
18648
0
}
18649
18650
static const JSJitInfo textShadow_getterinfo = {
18651
  { (JSJitGetterOp)get_textShadow },
18652
  { prototypes::id::CSS2Properties },
18653
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18654
  JSJitInfo::Getter,
18655
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18656
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18657
  false,  /* isInfallible. False in setters. */
18658
  false,  /* isMovable.  Not relevant for setters. */
18659
  false, /* isEliminatable.  Not relevant for setters. */
18660
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18661
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18662
  false,  /* isTypedMethod.  Only relevant for methods. */
18663
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18664
};
18665
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18666
static_assert(0 < 1, "There is no slot for us");
18667
static const JSJitInfo textShadow_setterinfo = {
18668
  { (JSJitGetterOp)set_textShadow },
18669
  { prototypes::id::CSS2Properties },
18670
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18671
  JSJitInfo::Setter,
18672
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18673
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18674
  false,  /* isInfallible. False in setters. */
18675
  false,  /* isMovable.  Not relevant for setters. */
18676
  false, /* isEliminatable.  Not relevant for setters. */
18677
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18678
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18679
  false,  /* isTypedMethod.  Only relevant for methods. */
18680
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18681
};
18682
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18683
static_assert(0 < 1, "There is no slot for us");
18684
18685
MOZ_CAN_RUN_SCRIPT static bool
18686
get_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18687
0
{
18688
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transitionDelay", DOM, cx);
18689
0
18690
0
  FastErrorResult rv;
18691
0
  DOMString result;
18692
0
  self->GetTransitionDelay(result, rv);
18693
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18694
0
    return false;
18695
0
  }
18696
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18697
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18698
0
    return false;
18699
0
  }
18700
0
  return true;
18701
0
}
18702
18703
MOZ_CAN_RUN_SCRIPT static bool
18704
set_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18705
0
{
18706
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transitionDelay", DOM, cx);
18707
0
18708
0
  binding_detail::FakeString arg0;
18709
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18710
0
    return false;
18711
0
  }
18712
0
  Maybe<AutoCEReaction> ceReaction;
18713
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18714
0
    DocGroup* docGroup = self->GetDocGroup();
18715
0
    if (docGroup) {
18716
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18717
0
    }
18718
0
  }
18719
0
  FastErrorResult rv;
18720
0
  nsIPrincipal* subjectPrincipal;
18721
0
  {
18722
0
    JS::Realm* realm = js::GetContextRealm(cx);
18723
0
    MOZ_ASSERT(realm);
18724
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18725
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18726
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18727
0
      principal = nullptr;
18728
0
    }
18729
0
18730
0
    subjectPrincipal = principal;
18731
0
  }
18732
0
  self->SetTransitionDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18733
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18734
0
    return false;
18735
0
  }
18736
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18737
0
18738
0
  return true;
18739
0
}
18740
18741
static const JSJitInfo transitionDelay_getterinfo = {
18742
  { (JSJitGetterOp)get_transitionDelay },
18743
  { prototypes::id::CSS2Properties },
18744
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18745
  JSJitInfo::Getter,
18746
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18747
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18748
  false,  /* isInfallible. False in setters. */
18749
  false,  /* isMovable.  Not relevant for setters. */
18750
  false, /* isEliminatable.  Not relevant for setters. */
18751
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18752
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18753
  false,  /* isTypedMethod.  Only relevant for methods. */
18754
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18755
};
18756
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18757
static_assert(0 < 1, "There is no slot for us");
18758
static const JSJitInfo transitionDelay_setterinfo = {
18759
  { (JSJitGetterOp)set_transitionDelay },
18760
  { prototypes::id::CSS2Properties },
18761
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18762
  JSJitInfo::Setter,
18763
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18764
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18765
  false,  /* isInfallible. False in setters. */
18766
  false,  /* isMovable.  Not relevant for setters. */
18767
  false, /* isEliminatable.  Not relevant for setters. */
18768
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18769
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18770
  false,  /* isTypedMethod.  Only relevant for methods. */
18771
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18772
};
18773
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18774
static_assert(0 < 1, "There is no slot for us");
18775
18776
MOZ_CAN_RUN_SCRIPT static bool
18777
get_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18778
0
{
18779
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transitionDuration", DOM, cx);
18780
0
18781
0
  FastErrorResult rv;
18782
0
  DOMString result;
18783
0
  self->GetTransitionDuration(result, rv);
18784
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18785
0
    return false;
18786
0
  }
18787
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18788
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18789
0
    return false;
18790
0
  }
18791
0
  return true;
18792
0
}
18793
18794
MOZ_CAN_RUN_SCRIPT static bool
18795
set_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18796
0
{
18797
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transitionDuration", DOM, cx);
18798
0
18799
0
  binding_detail::FakeString arg0;
18800
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18801
0
    return false;
18802
0
  }
18803
0
  Maybe<AutoCEReaction> ceReaction;
18804
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18805
0
    DocGroup* docGroup = self->GetDocGroup();
18806
0
    if (docGroup) {
18807
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18808
0
    }
18809
0
  }
18810
0
  FastErrorResult rv;
18811
0
  nsIPrincipal* subjectPrincipal;
18812
0
  {
18813
0
    JS::Realm* realm = js::GetContextRealm(cx);
18814
0
    MOZ_ASSERT(realm);
18815
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18816
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18817
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18818
0
      principal = nullptr;
18819
0
    }
18820
0
18821
0
    subjectPrincipal = principal;
18822
0
  }
18823
0
  self->SetTransitionDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18824
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18825
0
    return false;
18826
0
  }
18827
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18828
0
18829
0
  return true;
18830
0
}
18831
18832
static const JSJitInfo transitionDuration_getterinfo = {
18833
  { (JSJitGetterOp)get_transitionDuration },
18834
  { prototypes::id::CSS2Properties },
18835
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18836
  JSJitInfo::Getter,
18837
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18838
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18839
  false,  /* isInfallible. False in setters. */
18840
  false,  /* isMovable.  Not relevant for setters. */
18841
  false, /* isEliminatable.  Not relevant for setters. */
18842
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18843
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18844
  false,  /* isTypedMethod.  Only relevant for methods. */
18845
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18846
};
18847
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18848
static_assert(0 < 1, "There is no slot for us");
18849
static const JSJitInfo transitionDuration_setterinfo = {
18850
  { (JSJitGetterOp)set_transitionDuration },
18851
  { prototypes::id::CSS2Properties },
18852
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18853
  JSJitInfo::Setter,
18854
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18855
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18856
  false,  /* isInfallible. False in setters. */
18857
  false,  /* isMovable.  Not relevant for setters. */
18858
  false, /* isEliminatable.  Not relevant for setters. */
18859
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18860
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18861
  false,  /* isTypedMethod.  Only relevant for methods. */
18862
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18863
};
18864
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18865
static_assert(0 < 1, "There is no slot for us");
18866
18867
MOZ_CAN_RUN_SCRIPT static bool
18868
get_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18869
0
{
18870
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transitionProperty", DOM, cx);
18871
0
18872
0
  FastErrorResult rv;
18873
0
  DOMString result;
18874
0
  self->GetTransitionProperty(result, rv);
18875
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18876
0
    return false;
18877
0
  }
18878
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18879
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18880
0
    return false;
18881
0
  }
18882
0
  return true;
18883
0
}
18884
18885
MOZ_CAN_RUN_SCRIPT static bool
18886
set_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18887
0
{
18888
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transitionProperty", DOM, cx);
18889
0
18890
0
  binding_detail::FakeString arg0;
18891
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18892
0
    return false;
18893
0
  }
18894
0
  Maybe<AutoCEReaction> ceReaction;
18895
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18896
0
    DocGroup* docGroup = self->GetDocGroup();
18897
0
    if (docGroup) {
18898
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18899
0
    }
18900
0
  }
18901
0
  FastErrorResult rv;
18902
0
  nsIPrincipal* subjectPrincipal;
18903
0
  {
18904
0
    JS::Realm* realm = js::GetContextRealm(cx);
18905
0
    MOZ_ASSERT(realm);
18906
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18907
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18908
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
18909
0
      principal = nullptr;
18910
0
    }
18911
0
18912
0
    subjectPrincipal = principal;
18913
0
  }
18914
0
  self->SetTransitionProperty(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
18915
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18916
0
    return false;
18917
0
  }
18918
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18919
0
18920
0
  return true;
18921
0
}
18922
18923
static const JSJitInfo transitionProperty_getterinfo = {
18924
  { (JSJitGetterOp)get_transitionProperty },
18925
  { prototypes::id::CSS2Properties },
18926
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18927
  JSJitInfo::Getter,
18928
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18929
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
18930
  false,  /* isInfallible. False in setters. */
18931
  false,  /* isMovable.  Not relevant for setters. */
18932
  false, /* isEliminatable.  Not relevant for setters. */
18933
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18934
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18935
  false,  /* isTypedMethod.  Only relevant for methods. */
18936
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18937
};
18938
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18939
static_assert(0 < 1, "There is no slot for us");
18940
static const JSJitInfo transitionProperty_setterinfo = {
18941
  { (JSJitGetterOp)set_transitionProperty },
18942
  { prototypes::id::CSS2Properties },
18943
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
18944
  JSJitInfo::Setter,
18945
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
18946
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
18947
  false,  /* isInfallible. False in setters. */
18948
  false,  /* isMovable.  Not relevant for setters. */
18949
  false, /* isEliminatable.  Not relevant for setters. */
18950
  false, /* isAlwaysInSlot.  Only relevant for getters. */
18951
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
18952
  false,  /* isTypedMethod.  Only relevant for methods. */
18953
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
18954
};
18955
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
18956
static_assert(0 < 1, "There is no slot for us");
18957
18958
MOZ_CAN_RUN_SCRIPT static bool
18959
get_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
18960
0
{
18961
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transitionTimingFunction", DOM, cx);
18962
0
18963
0
  FastErrorResult rv;
18964
0
  DOMString result;
18965
0
  self->GetTransitionTimingFunction(result, rv);
18966
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
18967
0
    return false;
18968
0
  }
18969
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
18970
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
18971
0
    return false;
18972
0
  }
18973
0
  return true;
18974
0
}
18975
18976
MOZ_CAN_RUN_SCRIPT static bool
18977
set_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
18978
0
{
18979
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transitionTimingFunction", DOM, cx);
18980
0
18981
0
  binding_detail::FakeString arg0;
18982
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
18983
0
    return false;
18984
0
  }
18985
0
  Maybe<AutoCEReaction> ceReaction;
18986
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
18987
0
    DocGroup* docGroup = self->GetDocGroup();
18988
0
    if (docGroup) {
18989
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
18990
0
    }
18991
0
  }
18992
0
  FastErrorResult rv;
18993
0
  nsIPrincipal* subjectPrincipal;
18994
0
  {
18995
0
    JS::Realm* realm = js::GetContextRealm(cx);
18996
0
    MOZ_ASSERT(realm);
18997
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
18998
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
18999
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19000
0
      principal = nullptr;
19001
0
    }
19002
0
19003
0
    subjectPrincipal = principal;
19004
0
  }
19005
0
  self->SetTransitionTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19006
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19007
0
    return false;
19008
0
  }
19009
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19010
0
19011
0
  return true;
19012
0
}
19013
19014
static const JSJitInfo transitionTimingFunction_getterinfo = {
19015
  { (JSJitGetterOp)get_transitionTimingFunction },
19016
  { prototypes::id::CSS2Properties },
19017
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19018
  JSJitInfo::Getter,
19019
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19020
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19021
  false,  /* isInfallible. False in setters. */
19022
  false,  /* isMovable.  Not relevant for setters. */
19023
  false, /* isEliminatable.  Not relevant for setters. */
19024
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19025
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19026
  false,  /* isTypedMethod.  Only relevant for methods. */
19027
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19028
};
19029
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19030
static_assert(0 < 1, "There is no slot for us");
19031
static const JSJitInfo transitionTimingFunction_setterinfo = {
19032
  { (JSJitGetterOp)set_transitionTimingFunction },
19033
  { prototypes::id::CSS2Properties },
19034
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19035
  JSJitInfo::Setter,
19036
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19037
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19038
  false,  /* isInfallible. False in setters. */
19039
  false,  /* isMovable.  Not relevant for setters. */
19040
  false, /* isEliminatable.  Not relevant for setters. */
19041
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19042
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19043
  false,  /* isTypedMethod.  Only relevant for methods. */
19044
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19045
};
19046
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19047
static_assert(0 < 1, "There is no slot for us");
19048
19049
MOZ_CAN_RUN_SCRIPT static bool
19050
get_translate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19051
0
{
19052
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.translate", DOM, cx);
19053
0
19054
0
  FastErrorResult rv;
19055
0
  DOMString result;
19056
0
  self->GetTranslate(result, rv);
19057
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19058
0
    return false;
19059
0
  }
19060
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19061
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19062
0
    return false;
19063
0
  }
19064
0
  return true;
19065
0
}
19066
19067
MOZ_CAN_RUN_SCRIPT static bool
19068
set_translate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19069
0
{
19070
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.translate", DOM, cx);
19071
0
19072
0
  binding_detail::FakeString arg0;
19073
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19074
0
    return false;
19075
0
  }
19076
0
  Maybe<AutoCEReaction> ceReaction;
19077
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19078
0
    DocGroup* docGroup = self->GetDocGroup();
19079
0
    if (docGroup) {
19080
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19081
0
    }
19082
0
  }
19083
0
  FastErrorResult rv;
19084
0
  nsIPrincipal* subjectPrincipal;
19085
0
  {
19086
0
    JS::Realm* realm = js::GetContextRealm(cx);
19087
0
    MOZ_ASSERT(realm);
19088
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19089
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19090
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19091
0
      principal = nullptr;
19092
0
    }
19093
0
19094
0
    subjectPrincipal = principal;
19095
0
  }
19096
0
  self->SetTranslate(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19097
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19098
0
    return false;
19099
0
  }
19100
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19101
0
19102
0
  return true;
19103
0
}
19104
19105
static const JSJitInfo translate_getterinfo = {
19106
  { (JSJitGetterOp)get_translate },
19107
  { prototypes::id::CSS2Properties },
19108
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19109
  JSJitInfo::Getter,
19110
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19111
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19112
  false,  /* isInfallible. False in setters. */
19113
  false,  /* isMovable.  Not relevant for setters. */
19114
  false, /* isEliminatable.  Not relevant for setters. */
19115
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19116
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19117
  false,  /* isTypedMethod.  Only relevant for methods. */
19118
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19119
};
19120
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19121
static_assert(0 < 1, "There is no slot for us");
19122
static const JSJitInfo translate_setterinfo = {
19123
  { (JSJitGetterOp)set_translate },
19124
  { prototypes::id::CSS2Properties },
19125
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19126
  JSJitInfo::Setter,
19127
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19128
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19129
  false,  /* isInfallible. False in setters. */
19130
  false,  /* isMovable.  Not relevant for setters. */
19131
  false, /* isEliminatable.  Not relevant for setters. */
19132
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19133
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19134
  false,  /* isTypedMethod.  Only relevant for methods. */
19135
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19136
};
19137
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19138
static_assert(0 < 1, "There is no slot for us");
19139
19140
MOZ_CAN_RUN_SCRIPT static bool
19141
get_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19142
0
{
19143
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.verticalAlign", DOM, cx);
19144
0
19145
0
  FastErrorResult rv;
19146
0
  DOMString result;
19147
0
  self->GetVerticalAlign(result, rv);
19148
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19149
0
    return false;
19150
0
  }
19151
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19152
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19153
0
    return false;
19154
0
  }
19155
0
  return true;
19156
0
}
19157
19158
MOZ_CAN_RUN_SCRIPT static bool
19159
set_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19160
0
{
19161
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.verticalAlign", DOM, cx);
19162
0
19163
0
  binding_detail::FakeString arg0;
19164
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19165
0
    return false;
19166
0
  }
19167
0
  Maybe<AutoCEReaction> ceReaction;
19168
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19169
0
    DocGroup* docGroup = self->GetDocGroup();
19170
0
    if (docGroup) {
19171
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19172
0
    }
19173
0
  }
19174
0
  FastErrorResult rv;
19175
0
  nsIPrincipal* subjectPrincipal;
19176
0
  {
19177
0
    JS::Realm* realm = js::GetContextRealm(cx);
19178
0
    MOZ_ASSERT(realm);
19179
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19180
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19181
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19182
0
      principal = nullptr;
19183
0
    }
19184
0
19185
0
    subjectPrincipal = principal;
19186
0
  }
19187
0
  self->SetVerticalAlign(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19188
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19189
0
    return false;
19190
0
  }
19191
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19192
0
19193
0
  return true;
19194
0
}
19195
19196
static const JSJitInfo verticalAlign_getterinfo = {
19197
  { (JSJitGetterOp)get_verticalAlign },
19198
  { prototypes::id::CSS2Properties },
19199
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19200
  JSJitInfo::Getter,
19201
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19202
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19203
  false,  /* isInfallible. False in setters. */
19204
  false,  /* isMovable.  Not relevant for setters. */
19205
  false, /* isEliminatable.  Not relevant for setters. */
19206
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19207
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19208
  false,  /* isTypedMethod.  Only relevant for methods. */
19209
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19210
};
19211
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19212
static_assert(0 < 1, "There is no slot for us");
19213
static const JSJitInfo verticalAlign_setterinfo = {
19214
  { (JSJitGetterOp)set_verticalAlign },
19215
  { prototypes::id::CSS2Properties },
19216
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19217
  JSJitInfo::Setter,
19218
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19219
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19220
  false,  /* isInfallible. False in setters. */
19221
  false,  /* isMovable.  Not relevant for setters. */
19222
  false, /* isEliminatable.  Not relevant for setters. */
19223
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19224
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19225
  false,  /* isTypedMethod.  Only relevant for methods. */
19226
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19227
};
19228
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19229
static_assert(0 < 1, "There is no slot for us");
19230
19231
MOZ_CAN_RUN_SCRIPT static bool
19232
get_willChange(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19233
0
{
19234
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.willChange", DOM, cx);
19235
0
19236
0
  FastErrorResult rv;
19237
0
  DOMString result;
19238
0
  self->GetWillChange(result, rv);
19239
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19240
0
    return false;
19241
0
  }
19242
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19243
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19244
0
    return false;
19245
0
  }
19246
0
  return true;
19247
0
}
19248
19249
MOZ_CAN_RUN_SCRIPT static bool
19250
set_willChange(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19251
0
{
19252
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.willChange", DOM, cx);
19253
0
19254
0
  binding_detail::FakeString arg0;
19255
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19256
0
    return false;
19257
0
  }
19258
0
  Maybe<AutoCEReaction> ceReaction;
19259
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19260
0
    DocGroup* docGroup = self->GetDocGroup();
19261
0
    if (docGroup) {
19262
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19263
0
    }
19264
0
  }
19265
0
  FastErrorResult rv;
19266
0
  nsIPrincipal* subjectPrincipal;
19267
0
  {
19268
0
    JS::Realm* realm = js::GetContextRealm(cx);
19269
0
    MOZ_ASSERT(realm);
19270
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19271
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19272
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19273
0
      principal = nullptr;
19274
0
    }
19275
0
19276
0
    subjectPrincipal = principal;
19277
0
  }
19278
0
  self->SetWillChange(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19279
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19280
0
    return false;
19281
0
  }
19282
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19283
0
19284
0
  return true;
19285
0
}
19286
19287
static const JSJitInfo willChange_getterinfo = {
19288
  { (JSJitGetterOp)get_willChange },
19289
  { prototypes::id::CSS2Properties },
19290
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19291
  JSJitInfo::Getter,
19292
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19293
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19294
  false,  /* isInfallible. False in setters. */
19295
  false,  /* isMovable.  Not relevant for setters. */
19296
  false, /* isEliminatable.  Not relevant for setters. */
19297
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19298
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19299
  false,  /* isTypedMethod.  Only relevant for methods. */
19300
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19301
};
19302
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19303
static_assert(0 < 1, "There is no slot for us");
19304
static const JSJitInfo willChange_setterinfo = {
19305
  { (JSJitGetterOp)set_willChange },
19306
  { prototypes::id::CSS2Properties },
19307
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19308
  JSJitInfo::Setter,
19309
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19310
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19311
  false,  /* isInfallible. False in setters. */
19312
  false,  /* isMovable.  Not relevant for setters. */
19313
  false, /* isEliminatable.  Not relevant for setters. */
19314
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19315
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19316
  false,  /* isTypedMethod.  Only relevant for methods. */
19317
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19318
};
19319
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19320
static_assert(0 < 1, "There is no slot for us");
19321
19322
MOZ_CAN_RUN_SCRIPT static bool
19323
get_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19324
0
{
19325
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.wordSpacing", DOM, cx);
19326
0
19327
0
  FastErrorResult rv;
19328
0
  DOMString result;
19329
0
  self->GetWordSpacing(result, rv);
19330
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19331
0
    return false;
19332
0
  }
19333
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19334
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19335
0
    return false;
19336
0
  }
19337
0
  return true;
19338
0
}
19339
19340
MOZ_CAN_RUN_SCRIPT static bool
19341
set_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19342
0
{
19343
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.wordSpacing", DOM, cx);
19344
0
19345
0
  binding_detail::FakeString arg0;
19346
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19347
0
    return false;
19348
0
  }
19349
0
  Maybe<AutoCEReaction> ceReaction;
19350
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19351
0
    DocGroup* docGroup = self->GetDocGroup();
19352
0
    if (docGroup) {
19353
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19354
0
    }
19355
0
  }
19356
0
  FastErrorResult rv;
19357
0
  nsIPrincipal* subjectPrincipal;
19358
0
  {
19359
0
    JS::Realm* realm = js::GetContextRealm(cx);
19360
0
    MOZ_ASSERT(realm);
19361
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19362
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19363
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19364
0
      principal = nullptr;
19365
0
    }
19366
0
19367
0
    subjectPrincipal = principal;
19368
0
  }
19369
0
  self->SetWordSpacing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19370
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19371
0
    return false;
19372
0
  }
19373
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19374
0
19375
0
  return true;
19376
0
}
19377
19378
static const JSJitInfo wordSpacing_getterinfo = {
19379
  { (JSJitGetterOp)get_wordSpacing },
19380
  { prototypes::id::CSS2Properties },
19381
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19382
  JSJitInfo::Getter,
19383
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19384
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19385
  false,  /* isInfallible. False in setters. */
19386
  false,  /* isMovable.  Not relevant for setters. */
19387
  false, /* isEliminatable.  Not relevant for setters. */
19388
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19389
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19390
  false,  /* isTypedMethod.  Only relevant for methods. */
19391
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19392
};
19393
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19394
static_assert(0 < 1, "There is no slot for us");
19395
static const JSJitInfo wordSpacing_setterinfo = {
19396
  { (JSJitGetterOp)set_wordSpacing },
19397
  { prototypes::id::CSS2Properties },
19398
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19399
  JSJitInfo::Setter,
19400
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19401
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19402
  false,  /* isInfallible. False in setters. */
19403
  false,  /* isMovable.  Not relevant for setters. */
19404
  false, /* isEliminatable.  Not relevant for setters. */
19405
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19406
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19407
  false,  /* isTypedMethod.  Only relevant for methods. */
19408
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19409
};
19410
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19411
static_assert(0 < 1, "There is no slot for us");
19412
19413
MOZ_CAN_RUN_SCRIPT static bool
19414
get_scrollSnapPointsX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19415
0
{
19416
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapPointsX", DOM, cx);
19417
0
19418
0
  FastErrorResult rv;
19419
0
  DOMString result;
19420
0
  self->GetScrollSnapPointsX(result, rv);
19421
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19422
0
    return false;
19423
0
  }
19424
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19425
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19426
0
    return false;
19427
0
  }
19428
0
  return true;
19429
0
}
19430
19431
MOZ_CAN_RUN_SCRIPT static bool
19432
set_scrollSnapPointsX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19433
0
{
19434
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapPointsX", DOM, cx);
19435
0
19436
0
  binding_detail::FakeString arg0;
19437
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19438
0
    return false;
19439
0
  }
19440
0
  Maybe<AutoCEReaction> ceReaction;
19441
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19442
0
    DocGroup* docGroup = self->GetDocGroup();
19443
0
    if (docGroup) {
19444
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19445
0
    }
19446
0
  }
19447
0
  FastErrorResult rv;
19448
0
  nsIPrincipal* subjectPrincipal;
19449
0
  {
19450
0
    JS::Realm* realm = js::GetContextRealm(cx);
19451
0
    MOZ_ASSERT(realm);
19452
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19453
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19454
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19455
0
      principal = nullptr;
19456
0
    }
19457
0
19458
0
    subjectPrincipal = principal;
19459
0
  }
19460
0
  self->SetScrollSnapPointsX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19461
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19462
0
    return false;
19463
0
  }
19464
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19465
0
19466
0
  return true;
19467
0
}
19468
19469
static const JSJitInfo scrollSnapPointsX_getterinfo = {
19470
  { (JSJitGetterOp)get_scrollSnapPointsX },
19471
  { prototypes::id::CSS2Properties },
19472
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19473
  JSJitInfo::Getter,
19474
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19475
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19476
  false,  /* isInfallible. False in setters. */
19477
  false,  /* isMovable.  Not relevant for setters. */
19478
  false, /* isEliminatable.  Not relevant for setters. */
19479
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19480
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19481
  false,  /* isTypedMethod.  Only relevant for methods. */
19482
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19483
};
19484
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19485
static_assert(0 < 1, "There is no slot for us");
19486
static const JSJitInfo scrollSnapPointsX_setterinfo = {
19487
  { (JSJitGetterOp)set_scrollSnapPointsX },
19488
  { prototypes::id::CSS2Properties },
19489
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19490
  JSJitInfo::Setter,
19491
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19492
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19493
  false,  /* isInfallible. False in setters. */
19494
  false,  /* isMovable.  Not relevant for setters. */
19495
  false, /* isEliminatable.  Not relevant for setters. */
19496
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19497
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19498
  false,  /* isTypedMethod.  Only relevant for methods. */
19499
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19500
};
19501
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19502
static_assert(0 < 1, "There is no slot for us");
19503
19504
MOZ_CAN_RUN_SCRIPT static bool
19505
get_scrollSnapPointsY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19506
0
{
19507
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapPointsY", DOM, cx);
19508
0
19509
0
  FastErrorResult rv;
19510
0
  DOMString result;
19511
0
  self->GetScrollSnapPointsY(result, rv);
19512
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19513
0
    return false;
19514
0
  }
19515
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19516
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19517
0
    return false;
19518
0
  }
19519
0
  return true;
19520
0
}
19521
19522
MOZ_CAN_RUN_SCRIPT static bool
19523
set_scrollSnapPointsY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19524
0
{
19525
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapPointsY", DOM, cx);
19526
0
19527
0
  binding_detail::FakeString arg0;
19528
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19529
0
    return false;
19530
0
  }
19531
0
  Maybe<AutoCEReaction> ceReaction;
19532
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19533
0
    DocGroup* docGroup = self->GetDocGroup();
19534
0
    if (docGroup) {
19535
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19536
0
    }
19537
0
  }
19538
0
  FastErrorResult rv;
19539
0
  nsIPrincipal* subjectPrincipal;
19540
0
  {
19541
0
    JS::Realm* realm = js::GetContextRealm(cx);
19542
0
    MOZ_ASSERT(realm);
19543
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19544
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19545
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19546
0
      principal = nullptr;
19547
0
    }
19548
0
19549
0
    subjectPrincipal = principal;
19550
0
  }
19551
0
  self->SetScrollSnapPointsY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19552
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19553
0
    return false;
19554
0
  }
19555
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19556
0
19557
0
  return true;
19558
0
}
19559
19560
static const JSJitInfo scrollSnapPointsY_getterinfo = {
19561
  { (JSJitGetterOp)get_scrollSnapPointsY },
19562
  { prototypes::id::CSS2Properties },
19563
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19564
  JSJitInfo::Getter,
19565
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19566
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19567
  false,  /* isInfallible. False in setters. */
19568
  false,  /* isMovable.  Not relevant for setters. */
19569
  false, /* isEliminatable.  Not relevant for setters. */
19570
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19571
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19572
  false,  /* isTypedMethod.  Only relevant for methods. */
19573
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19574
};
19575
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19576
static_assert(0 < 1, "There is no slot for us");
19577
static const JSJitInfo scrollSnapPointsY_setterinfo = {
19578
  { (JSJitGetterOp)set_scrollSnapPointsY },
19579
  { prototypes::id::CSS2Properties },
19580
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19581
  JSJitInfo::Setter,
19582
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19583
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19584
  false,  /* isInfallible. False in setters. */
19585
  false,  /* isMovable.  Not relevant for setters. */
19586
  false, /* isEliminatable.  Not relevant for setters. */
19587
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19588
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19589
  false,  /* isTypedMethod.  Only relevant for methods. */
19590
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19591
};
19592
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19593
static_assert(0 < 1, "There is no slot for us");
19594
19595
MOZ_CAN_RUN_SCRIPT static bool
19596
get_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19597
0
{
19598
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transform", DOM, cx);
19599
0
19600
0
  FastErrorResult rv;
19601
0
  DOMString result;
19602
0
  self->GetTransform(result, rv);
19603
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19604
0
    return false;
19605
0
  }
19606
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19607
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19608
0
    return false;
19609
0
  }
19610
0
  return true;
19611
0
}
19612
19613
MOZ_CAN_RUN_SCRIPT static bool
19614
set_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19615
0
{
19616
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transform", DOM, cx);
19617
0
19618
0
  binding_detail::FakeString arg0;
19619
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19620
0
    return false;
19621
0
  }
19622
0
  Maybe<AutoCEReaction> ceReaction;
19623
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19624
0
    DocGroup* docGroup = self->GetDocGroup();
19625
0
    if (docGroup) {
19626
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19627
0
    }
19628
0
  }
19629
0
  FastErrorResult rv;
19630
0
  nsIPrincipal* subjectPrincipal;
19631
0
  {
19632
0
    JS::Realm* realm = js::GetContextRealm(cx);
19633
0
    MOZ_ASSERT(realm);
19634
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19635
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19636
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19637
0
      principal = nullptr;
19638
0
    }
19639
0
19640
0
    subjectPrincipal = principal;
19641
0
  }
19642
0
  self->SetTransform(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19643
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19644
0
    return false;
19645
0
  }
19646
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19647
0
19648
0
  return true;
19649
0
}
19650
19651
static const JSJitInfo transform_getterinfo = {
19652
  { (JSJitGetterOp)get_transform },
19653
  { prototypes::id::CSS2Properties },
19654
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19655
  JSJitInfo::Getter,
19656
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19657
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19658
  false,  /* isInfallible. False in setters. */
19659
  false,  /* isMovable.  Not relevant for setters. */
19660
  false, /* isEliminatable.  Not relevant for setters. */
19661
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19662
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19663
  false,  /* isTypedMethod.  Only relevant for methods. */
19664
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19665
};
19666
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19667
static_assert(0 < 1, "There is no slot for us");
19668
static const JSJitInfo transform_setterinfo = {
19669
  { (JSJitGetterOp)set_transform },
19670
  { prototypes::id::CSS2Properties },
19671
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19672
  JSJitInfo::Setter,
19673
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19674
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19675
  false,  /* isInfallible. False in setters. */
19676
  false,  /* isMovable.  Not relevant for setters. */
19677
  false, /* isEliminatable.  Not relevant for setters. */
19678
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19679
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19680
  false,  /* isTypedMethod.  Only relevant for methods. */
19681
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19682
};
19683
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19684
static_assert(0 < 1, "There is no slot for us");
19685
19686
MOZ_CAN_RUN_SCRIPT static bool
19687
get_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19688
0
{
19689
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnGap", DOM, cx);
19690
0
19691
0
  FastErrorResult rv;
19692
0
  DOMString result;
19693
0
  self->GetColumnGap(result, rv);
19694
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19695
0
    return false;
19696
0
  }
19697
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19698
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19699
0
    return false;
19700
0
  }
19701
0
  return true;
19702
0
}
19703
19704
MOZ_CAN_RUN_SCRIPT static bool
19705
set_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19706
0
{
19707
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnGap", DOM, cx);
19708
0
19709
0
  binding_detail::FakeString arg0;
19710
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19711
0
    return false;
19712
0
  }
19713
0
  Maybe<AutoCEReaction> ceReaction;
19714
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19715
0
    DocGroup* docGroup = self->GetDocGroup();
19716
0
    if (docGroup) {
19717
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19718
0
    }
19719
0
  }
19720
0
  FastErrorResult rv;
19721
0
  nsIPrincipal* subjectPrincipal;
19722
0
  {
19723
0
    JS::Realm* realm = js::GetContextRealm(cx);
19724
0
    MOZ_ASSERT(realm);
19725
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19726
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19727
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19728
0
      principal = nullptr;
19729
0
    }
19730
0
19731
0
    subjectPrincipal = principal;
19732
0
  }
19733
0
  self->SetColumnGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19734
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19735
0
    return false;
19736
0
  }
19737
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19738
0
19739
0
  return true;
19740
0
}
19741
19742
static const JSJitInfo columnGap_getterinfo = {
19743
  { (JSJitGetterOp)get_columnGap },
19744
  { prototypes::id::CSS2Properties },
19745
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19746
  JSJitInfo::Getter,
19747
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19748
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19749
  false,  /* isInfallible. False in setters. */
19750
  false,  /* isMovable.  Not relevant for setters. */
19751
  false, /* isEliminatable.  Not relevant for setters. */
19752
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19753
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19754
  false,  /* isTypedMethod.  Only relevant for methods. */
19755
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19756
};
19757
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19758
static_assert(0 < 1, "There is no slot for us");
19759
static const JSJitInfo columnGap_setterinfo = {
19760
  { (JSJitGetterOp)set_columnGap },
19761
  { prototypes::id::CSS2Properties },
19762
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19763
  JSJitInfo::Setter,
19764
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19765
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19766
  false,  /* isInfallible. False in setters. */
19767
  false,  /* isMovable.  Not relevant for setters. */
19768
  false, /* isEliminatable.  Not relevant for setters. */
19769
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19770
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19771
  false,  /* isTypedMethod.  Only relevant for methods. */
19772
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19773
};
19774
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19775
static_assert(0 < 1, "There is no slot for us");
19776
19777
MOZ_CAN_RUN_SCRIPT static bool
19778
get_rowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19779
0
{
19780
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.rowGap", DOM, cx);
19781
0
19782
0
  FastErrorResult rv;
19783
0
  DOMString result;
19784
0
  self->GetRowGap(result, rv);
19785
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19786
0
    return false;
19787
0
  }
19788
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19789
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19790
0
    return false;
19791
0
  }
19792
0
  return true;
19793
0
}
19794
19795
MOZ_CAN_RUN_SCRIPT static bool
19796
set_rowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19797
0
{
19798
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.rowGap", DOM, cx);
19799
0
19800
0
  binding_detail::FakeString arg0;
19801
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19802
0
    return false;
19803
0
  }
19804
0
  Maybe<AutoCEReaction> ceReaction;
19805
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19806
0
    DocGroup* docGroup = self->GetDocGroup();
19807
0
    if (docGroup) {
19808
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19809
0
    }
19810
0
  }
19811
0
  FastErrorResult rv;
19812
0
  nsIPrincipal* subjectPrincipal;
19813
0
  {
19814
0
    JS::Realm* realm = js::GetContextRealm(cx);
19815
0
    MOZ_ASSERT(realm);
19816
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19817
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19818
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19819
0
      principal = nullptr;
19820
0
    }
19821
0
19822
0
    subjectPrincipal = principal;
19823
0
  }
19824
0
  self->SetRowGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19825
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19826
0
    return false;
19827
0
  }
19828
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19829
0
19830
0
  return true;
19831
0
}
19832
19833
static const JSJitInfo rowGap_getterinfo = {
19834
  { (JSJitGetterOp)get_rowGap },
19835
  { prototypes::id::CSS2Properties },
19836
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19837
  JSJitInfo::Getter,
19838
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19839
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19840
  false,  /* isInfallible. False in setters. */
19841
  false,  /* isMovable.  Not relevant for setters. */
19842
  false, /* isEliminatable.  Not relevant for setters. */
19843
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19844
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19845
  false,  /* isTypedMethod.  Only relevant for methods. */
19846
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19847
};
19848
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19849
static_assert(0 < 1, "There is no slot for us");
19850
static const JSJitInfo rowGap_setterinfo = {
19851
  { (JSJitGetterOp)set_rowGap },
19852
  { prototypes::id::CSS2Properties },
19853
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19854
  JSJitInfo::Setter,
19855
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19856
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19857
  false,  /* isInfallible. False in setters. */
19858
  false,  /* isMovable.  Not relevant for setters. */
19859
  false, /* isEliminatable.  Not relevant for setters. */
19860
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19861
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19862
  false,  /* isTypedMethod.  Only relevant for methods. */
19863
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19864
};
19865
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19866
static_assert(0 < 1, "There is no slot for us");
19867
19868
MOZ_CAN_RUN_SCRIPT static bool
19869
get_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19870
0
{
19871
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.clip", DOM, cx);
19872
0
19873
0
  FastErrorResult rv;
19874
0
  DOMString result;
19875
0
  self->GetClip(result, rv);
19876
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19877
0
    return false;
19878
0
  }
19879
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19880
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19881
0
    return false;
19882
0
  }
19883
0
  return true;
19884
0
}
19885
19886
MOZ_CAN_RUN_SCRIPT static bool
19887
set_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19888
0
{
19889
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.clip", DOM, cx);
19890
0
19891
0
  binding_detail::FakeString arg0;
19892
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19893
0
    return false;
19894
0
  }
19895
0
  Maybe<AutoCEReaction> ceReaction;
19896
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19897
0
    DocGroup* docGroup = self->GetDocGroup();
19898
0
    if (docGroup) {
19899
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19900
0
    }
19901
0
  }
19902
0
  FastErrorResult rv;
19903
0
  nsIPrincipal* subjectPrincipal;
19904
0
  {
19905
0
    JS::Realm* realm = js::GetContextRealm(cx);
19906
0
    MOZ_ASSERT(realm);
19907
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19908
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
19909
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
19910
0
      principal = nullptr;
19911
0
    }
19912
0
19913
0
    subjectPrincipal = principal;
19914
0
  }
19915
0
  self->SetClip(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
19916
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19917
0
    return false;
19918
0
  }
19919
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19920
0
19921
0
  return true;
19922
0
}
19923
19924
static const JSJitInfo clip_getterinfo = {
19925
  { (JSJitGetterOp)get_clip },
19926
  { prototypes::id::CSS2Properties },
19927
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19928
  JSJitInfo::Getter,
19929
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19930
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
19931
  false,  /* isInfallible. False in setters. */
19932
  false,  /* isMovable.  Not relevant for setters. */
19933
  false, /* isEliminatable.  Not relevant for setters. */
19934
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19935
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19936
  false,  /* isTypedMethod.  Only relevant for methods. */
19937
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19938
};
19939
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19940
static_assert(0 < 1, "There is no slot for us");
19941
static const JSJitInfo clip_setterinfo = {
19942
  { (JSJitGetterOp)set_clip },
19943
  { prototypes::id::CSS2Properties },
19944
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
19945
  JSJitInfo::Setter,
19946
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
19947
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
19948
  false,  /* isInfallible. False in setters. */
19949
  false,  /* isMovable.  Not relevant for setters. */
19950
  false, /* isEliminatable.  Not relevant for setters. */
19951
  false, /* isAlwaysInSlot.  Only relevant for getters. */
19952
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
19953
  false,  /* isTypedMethod.  Only relevant for methods. */
19954
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
19955
};
19956
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
19957
static_assert(0 < 1, "There is no slot for us");
19958
19959
MOZ_CAN_RUN_SCRIPT static bool
19960
get_MozImageRegion(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
19961
0
{
19962
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozImageRegion", DOM, cx);
19963
0
19964
0
  FastErrorResult rv;
19965
0
  DOMString result;
19966
0
  self->GetMozImageRegion(result, rv);
19967
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
19968
0
    return false;
19969
0
  }
19970
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
19971
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
19972
0
    return false;
19973
0
  }
19974
0
  return true;
19975
0
}
19976
19977
MOZ_CAN_RUN_SCRIPT static bool
19978
set_MozImageRegion(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
19979
0
{
19980
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozImageRegion", DOM, cx);
19981
0
19982
0
  binding_detail::FakeString arg0;
19983
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
19984
0
    return false;
19985
0
  }
19986
0
  Maybe<AutoCEReaction> ceReaction;
19987
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
19988
0
    DocGroup* docGroup = self->GetDocGroup();
19989
0
    if (docGroup) {
19990
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
19991
0
    }
19992
0
  }
19993
0
  FastErrorResult rv;
19994
0
  nsIPrincipal* subjectPrincipal;
19995
0
  {
19996
0
    JS::Realm* realm = js::GetContextRealm(cx);
19997
0
    MOZ_ASSERT(realm);
19998
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
19999
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20000
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20001
0
      principal = nullptr;
20002
0
    }
20003
0
20004
0
    subjectPrincipal = principal;
20005
0
  }
20006
0
  self->SetMozImageRegion(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20007
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20008
0
    return false;
20009
0
  }
20010
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20011
0
20012
0
  return true;
20013
0
}
20014
20015
static const JSJitInfo MozImageRegion_getterinfo = {
20016
  { (JSJitGetterOp)get_MozImageRegion },
20017
  { prototypes::id::CSS2Properties },
20018
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20019
  JSJitInfo::Getter,
20020
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20021
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20022
  false,  /* isInfallible. False in setters. */
20023
  false,  /* isMovable.  Not relevant for setters. */
20024
  false, /* isEliminatable.  Not relevant for setters. */
20025
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20026
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20027
  false,  /* isTypedMethod.  Only relevant for methods. */
20028
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20029
};
20030
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20031
static_assert(0 < 1, "There is no slot for us");
20032
static const JSJitInfo MozImageRegion_setterinfo = {
20033
  { (JSJitGetterOp)set_MozImageRegion },
20034
  { prototypes::id::CSS2Properties },
20035
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20036
  JSJitInfo::Setter,
20037
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20038
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20039
  false,  /* isInfallible. False in setters. */
20040
  false,  /* isMovable.  Not relevant for setters. */
20041
  false, /* isEliminatable.  Not relevant for setters. */
20042
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20043
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20044
  false,  /* isTypedMethod.  Only relevant for methods. */
20045
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20046
};
20047
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20048
static_assert(0 < 1, "There is no slot for us");
20049
20050
MOZ_CAN_RUN_SCRIPT static bool
20051
get_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20052
0
{
20053
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridTemplateColumns", DOM, cx);
20054
0
20055
0
  FastErrorResult rv;
20056
0
  DOMString result;
20057
0
  self->GetGridTemplateColumns(result, rv);
20058
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20059
0
    return false;
20060
0
  }
20061
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20062
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20063
0
    return false;
20064
0
  }
20065
0
  return true;
20066
0
}
20067
20068
MOZ_CAN_RUN_SCRIPT static bool
20069
set_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20070
0
{
20071
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridTemplateColumns", DOM, cx);
20072
0
20073
0
  binding_detail::FakeString arg0;
20074
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20075
0
    return false;
20076
0
  }
20077
0
  Maybe<AutoCEReaction> ceReaction;
20078
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20079
0
    DocGroup* docGroup = self->GetDocGroup();
20080
0
    if (docGroup) {
20081
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20082
0
    }
20083
0
  }
20084
0
  FastErrorResult rv;
20085
0
  nsIPrincipal* subjectPrincipal;
20086
0
  {
20087
0
    JS::Realm* realm = js::GetContextRealm(cx);
20088
0
    MOZ_ASSERT(realm);
20089
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20090
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20091
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20092
0
      principal = nullptr;
20093
0
    }
20094
0
20095
0
    subjectPrincipal = principal;
20096
0
  }
20097
0
  self->SetGridTemplateColumns(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20098
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20099
0
    return false;
20100
0
  }
20101
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20102
0
20103
0
  return true;
20104
0
}
20105
20106
static const JSJitInfo gridTemplateColumns_getterinfo = {
20107
  { (JSJitGetterOp)get_gridTemplateColumns },
20108
  { prototypes::id::CSS2Properties },
20109
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20110
  JSJitInfo::Getter,
20111
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20112
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20113
  false,  /* isInfallible. False in setters. */
20114
  false,  /* isMovable.  Not relevant for setters. */
20115
  false, /* isEliminatable.  Not relevant for setters. */
20116
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20117
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20118
  false,  /* isTypedMethod.  Only relevant for methods. */
20119
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20120
};
20121
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20122
static_assert(0 < 1, "There is no slot for us");
20123
static const JSJitInfo gridTemplateColumns_setterinfo = {
20124
  { (JSJitGetterOp)set_gridTemplateColumns },
20125
  { prototypes::id::CSS2Properties },
20126
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20127
  JSJitInfo::Setter,
20128
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20129
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20130
  false,  /* isInfallible. False in setters. */
20131
  false,  /* isMovable.  Not relevant for setters. */
20132
  false, /* isEliminatable.  Not relevant for setters. */
20133
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20134
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20135
  false,  /* isTypedMethod.  Only relevant for methods. */
20136
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20137
};
20138
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20139
static_assert(0 < 1, "There is no slot for us");
20140
20141
MOZ_CAN_RUN_SCRIPT static bool
20142
get_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20143
0
{
20144
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridTemplateRows", DOM, cx);
20145
0
20146
0
  FastErrorResult rv;
20147
0
  DOMString result;
20148
0
  self->GetGridTemplateRows(result, rv);
20149
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20150
0
    return false;
20151
0
  }
20152
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20153
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20154
0
    return false;
20155
0
  }
20156
0
  return true;
20157
0
}
20158
20159
MOZ_CAN_RUN_SCRIPT static bool
20160
set_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20161
0
{
20162
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridTemplateRows", DOM, cx);
20163
0
20164
0
  binding_detail::FakeString arg0;
20165
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20166
0
    return false;
20167
0
  }
20168
0
  Maybe<AutoCEReaction> ceReaction;
20169
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20170
0
    DocGroup* docGroup = self->GetDocGroup();
20171
0
    if (docGroup) {
20172
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20173
0
    }
20174
0
  }
20175
0
  FastErrorResult rv;
20176
0
  nsIPrincipal* subjectPrincipal;
20177
0
  {
20178
0
    JS::Realm* realm = js::GetContextRealm(cx);
20179
0
    MOZ_ASSERT(realm);
20180
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20181
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20182
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20183
0
      principal = nullptr;
20184
0
    }
20185
0
20186
0
    subjectPrincipal = principal;
20187
0
  }
20188
0
  self->SetGridTemplateRows(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20189
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20190
0
    return false;
20191
0
  }
20192
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20193
0
20194
0
  return true;
20195
0
}
20196
20197
static const JSJitInfo gridTemplateRows_getterinfo = {
20198
  { (JSJitGetterOp)get_gridTemplateRows },
20199
  { prototypes::id::CSS2Properties },
20200
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20201
  JSJitInfo::Getter,
20202
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20203
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20204
  false,  /* isInfallible. False in setters. */
20205
  false,  /* isMovable.  Not relevant for setters. */
20206
  false, /* isEliminatable.  Not relevant for setters. */
20207
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20208
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20209
  false,  /* isTypedMethod.  Only relevant for methods. */
20210
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20211
};
20212
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20213
static_assert(0 < 1, "There is no slot for us");
20214
static const JSJitInfo gridTemplateRows_setterinfo = {
20215
  { (JSJitGetterOp)set_gridTemplateRows },
20216
  { prototypes::id::CSS2Properties },
20217
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20218
  JSJitInfo::Setter,
20219
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20220
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20221
  false,  /* isInfallible. False in setters. */
20222
  false,  /* isMovable.  Not relevant for setters. */
20223
  false, /* isEliminatable.  Not relevant for setters. */
20224
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20225
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20226
  false,  /* isTypedMethod.  Only relevant for methods. */
20227
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20228
};
20229
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20230
static_assert(0 < 1, "There is no slot for us");
20231
20232
MOZ_CAN_RUN_SCRIPT static bool
20233
get_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20234
0
{
20235
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fill", DOM, cx);
20236
0
20237
0
  FastErrorResult rv;
20238
0
  DOMString result;
20239
0
  self->GetFill(result, rv);
20240
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20241
0
    return false;
20242
0
  }
20243
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20244
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20245
0
    return false;
20246
0
  }
20247
0
  return true;
20248
0
}
20249
20250
MOZ_CAN_RUN_SCRIPT static bool
20251
set_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20252
0
{
20253
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fill", DOM, cx);
20254
0
20255
0
  binding_detail::FakeString arg0;
20256
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20257
0
    return false;
20258
0
  }
20259
0
  Maybe<AutoCEReaction> ceReaction;
20260
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20261
0
    DocGroup* docGroup = self->GetDocGroup();
20262
0
    if (docGroup) {
20263
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20264
0
    }
20265
0
  }
20266
0
  FastErrorResult rv;
20267
0
  nsIPrincipal* subjectPrincipal;
20268
0
  {
20269
0
    JS::Realm* realm = js::GetContextRealm(cx);
20270
0
    MOZ_ASSERT(realm);
20271
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20272
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20273
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20274
0
      principal = nullptr;
20275
0
    }
20276
0
20277
0
    subjectPrincipal = principal;
20278
0
  }
20279
0
  self->SetFill(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20280
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20281
0
    return false;
20282
0
  }
20283
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20284
0
20285
0
  return true;
20286
0
}
20287
20288
static const JSJitInfo fill_getterinfo = {
20289
  { (JSJitGetterOp)get_fill },
20290
  { prototypes::id::CSS2Properties },
20291
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20292
  JSJitInfo::Getter,
20293
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20294
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20295
  false,  /* isInfallible. False in setters. */
20296
  false,  /* isMovable.  Not relevant for setters. */
20297
  false, /* isEliminatable.  Not relevant for setters. */
20298
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20299
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20300
  false,  /* isTypedMethod.  Only relevant for methods. */
20301
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20302
};
20303
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20304
static_assert(0 < 1, "There is no slot for us");
20305
static const JSJitInfo fill_setterinfo = {
20306
  { (JSJitGetterOp)set_fill },
20307
  { prototypes::id::CSS2Properties },
20308
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20309
  JSJitInfo::Setter,
20310
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20311
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20312
  false,  /* isInfallible. False in setters. */
20313
  false,  /* isMovable.  Not relevant for setters. */
20314
  false, /* isEliminatable.  Not relevant for setters. */
20315
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20316
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20317
  false,  /* isTypedMethod.  Only relevant for methods. */
20318
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20319
};
20320
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20321
static_assert(0 < 1, "There is no slot for us");
20322
20323
MOZ_CAN_RUN_SCRIPT static bool
20324
get_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20325
0
{
20326
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.stroke", DOM, cx);
20327
0
20328
0
  FastErrorResult rv;
20329
0
  DOMString result;
20330
0
  self->GetStroke(result, rv);
20331
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20332
0
    return false;
20333
0
  }
20334
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20335
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20336
0
    return false;
20337
0
  }
20338
0
  return true;
20339
0
}
20340
20341
MOZ_CAN_RUN_SCRIPT static bool
20342
set_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20343
0
{
20344
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.stroke", DOM, cx);
20345
0
20346
0
  binding_detail::FakeString arg0;
20347
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20348
0
    return false;
20349
0
  }
20350
0
  Maybe<AutoCEReaction> ceReaction;
20351
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20352
0
    DocGroup* docGroup = self->GetDocGroup();
20353
0
    if (docGroup) {
20354
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20355
0
    }
20356
0
  }
20357
0
  FastErrorResult rv;
20358
0
  nsIPrincipal* subjectPrincipal;
20359
0
  {
20360
0
    JS::Realm* realm = js::GetContextRealm(cx);
20361
0
    MOZ_ASSERT(realm);
20362
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20363
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20364
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20365
0
      principal = nullptr;
20366
0
    }
20367
0
20368
0
    subjectPrincipal = principal;
20369
0
  }
20370
0
  self->SetStroke(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20371
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20372
0
    return false;
20373
0
  }
20374
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20375
0
20376
0
  return true;
20377
0
}
20378
20379
static const JSJitInfo stroke_getterinfo = {
20380
  { (JSJitGetterOp)get_stroke },
20381
  { prototypes::id::CSS2Properties },
20382
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20383
  JSJitInfo::Getter,
20384
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20385
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20386
  false,  /* isInfallible. False in setters. */
20387
  false,  /* isMovable.  Not relevant for setters. */
20388
  false, /* isEliminatable.  Not relevant for setters. */
20389
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20390
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20391
  false,  /* isTypedMethod.  Only relevant for methods. */
20392
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20393
};
20394
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20395
static_assert(0 < 1, "There is no slot for us");
20396
static const JSJitInfo stroke_setterinfo = {
20397
  { (JSJitGetterOp)set_stroke },
20398
  { prototypes::id::CSS2Properties },
20399
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20400
  JSJitInfo::Setter,
20401
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20402
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20403
  false,  /* isInfallible. False in setters. */
20404
  false,  /* isMovable.  Not relevant for setters. */
20405
  false, /* isEliminatable.  Not relevant for setters. */
20406
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20407
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20408
  false,  /* isTypedMethod.  Only relevant for methods. */
20409
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20410
};
20411
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20412
static_assert(0 < 1, "There is no slot for us");
20413
20414
MOZ_CAN_RUN_SCRIPT static bool
20415
get_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20416
0
{
20417
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridAutoColumns", DOM, cx);
20418
0
20419
0
  FastErrorResult rv;
20420
0
  DOMString result;
20421
0
  self->GetGridAutoColumns(result, rv);
20422
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20423
0
    return false;
20424
0
  }
20425
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20426
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20427
0
    return false;
20428
0
  }
20429
0
  return true;
20430
0
}
20431
20432
MOZ_CAN_RUN_SCRIPT static bool
20433
set_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20434
0
{
20435
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridAutoColumns", DOM, cx);
20436
0
20437
0
  binding_detail::FakeString arg0;
20438
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20439
0
    return false;
20440
0
  }
20441
0
  Maybe<AutoCEReaction> ceReaction;
20442
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20443
0
    DocGroup* docGroup = self->GetDocGroup();
20444
0
    if (docGroup) {
20445
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20446
0
    }
20447
0
  }
20448
0
  FastErrorResult rv;
20449
0
  nsIPrincipal* subjectPrincipal;
20450
0
  {
20451
0
    JS::Realm* realm = js::GetContextRealm(cx);
20452
0
    MOZ_ASSERT(realm);
20453
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20454
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20455
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20456
0
      principal = nullptr;
20457
0
    }
20458
0
20459
0
    subjectPrincipal = principal;
20460
0
  }
20461
0
  self->SetGridAutoColumns(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20462
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20463
0
    return false;
20464
0
  }
20465
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20466
0
20467
0
  return true;
20468
0
}
20469
20470
static const JSJitInfo gridAutoColumns_getterinfo = {
20471
  { (JSJitGetterOp)get_gridAutoColumns },
20472
  { prototypes::id::CSS2Properties },
20473
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20474
  JSJitInfo::Getter,
20475
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20476
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20477
  false,  /* isInfallible. False in setters. */
20478
  false,  /* isMovable.  Not relevant for setters. */
20479
  false, /* isEliminatable.  Not relevant for setters. */
20480
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20481
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20482
  false,  /* isTypedMethod.  Only relevant for methods. */
20483
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20484
};
20485
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20486
static_assert(0 < 1, "There is no slot for us");
20487
static const JSJitInfo gridAutoColumns_setterinfo = {
20488
  { (JSJitGetterOp)set_gridAutoColumns },
20489
  { prototypes::id::CSS2Properties },
20490
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20491
  JSJitInfo::Setter,
20492
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20493
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20494
  false,  /* isInfallible. False in setters. */
20495
  false,  /* isMovable.  Not relevant for setters. */
20496
  false, /* isEliminatable.  Not relevant for setters. */
20497
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20498
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20499
  false,  /* isTypedMethod.  Only relevant for methods. */
20500
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20501
};
20502
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20503
static_assert(0 < 1, "There is no slot for us");
20504
20505
MOZ_CAN_RUN_SCRIPT static bool
20506
get_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20507
0
{
20508
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridAutoRows", DOM, cx);
20509
0
20510
0
  FastErrorResult rv;
20511
0
  DOMString result;
20512
0
  self->GetGridAutoRows(result, rv);
20513
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20514
0
    return false;
20515
0
  }
20516
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20517
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20518
0
    return false;
20519
0
  }
20520
0
  return true;
20521
0
}
20522
20523
MOZ_CAN_RUN_SCRIPT static bool
20524
set_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20525
0
{
20526
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridAutoRows", DOM, cx);
20527
0
20528
0
  binding_detail::FakeString arg0;
20529
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20530
0
    return false;
20531
0
  }
20532
0
  Maybe<AutoCEReaction> ceReaction;
20533
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20534
0
    DocGroup* docGroup = self->GetDocGroup();
20535
0
    if (docGroup) {
20536
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20537
0
    }
20538
0
  }
20539
0
  FastErrorResult rv;
20540
0
  nsIPrincipal* subjectPrincipal;
20541
0
  {
20542
0
    JS::Realm* realm = js::GetContextRealm(cx);
20543
0
    MOZ_ASSERT(realm);
20544
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20545
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20546
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20547
0
      principal = nullptr;
20548
0
    }
20549
0
20550
0
    subjectPrincipal = principal;
20551
0
  }
20552
0
  self->SetGridAutoRows(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20553
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20554
0
    return false;
20555
0
  }
20556
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20557
0
20558
0
  return true;
20559
0
}
20560
20561
static const JSJitInfo gridAutoRows_getterinfo = {
20562
  { (JSJitGetterOp)get_gridAutoRows },
20563
  { prototypes::id::CSS2Properties },
20564
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20565
  JSJitInfo::Getter,
20566
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20567
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20568
  false,  /* isInfallible. False in setters. */
20569
  false,  /* isMovable.  Not relevant for setters. */
20570
  false, /* isEliminatable.  Not relevant for setters. */
20571
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20572
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20573
  false,  /* isTypedMethod.  Only relevant for methods. */
20574
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20575
};
20576
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20577
static_assert(0 < 1, "There is no slot for us");
20578
static const JSJitInfo gridAutoRows_setterinfo = {
20579
  { (JSJitGetterOp)set_gridAutoRows },
20580
  { prototypes::id::CSS2Properties },
20581
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20582
  JSJitInfo::Setter,
20583
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20584
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20585
  false,  /* isInfallible. False in setters. */
20586
  false,  /* isMovable.  Not relevant for setters. */
20587
  false, /* isEliminatable.  Not relevant for setters. */
20588
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20589
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20590
  false,  /* isTypedMethod.  Only relevant for methods. */
20591
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20592
};
20593
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20594
static_assert(0 < 1, "There is no slot for us");
20595
20596
MOZ_CAN_RUN_SCRIPT static bool
20597
get_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20598
0
{
20599
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transformOrigin", DOM, cx);
20600
0
20601
0
  FastErrorResult rv;
20602
0
  DOMString result;
20603
0
  self->GetTransformOrigin(result, rv);
20604
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20605
0
    return false;
20606
0
  }
20607
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20608
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20609
0
    return false;
20610
0
  }
20611
0
  return true;
20612
0
}
20613
20614
MOZ_CAN_RUN_SCRIPT static bool
20615
set_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20616
0
{
20617
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transformOrigin", DOM, cx);
20618
0
20619
0
  binding_detail::FakeString arg0;
20620
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20621
0
    return false;
20622
0
  }
20623
0
  Maybe<AutoCEReaction> ceReaction;
20624
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20625
0
    DocGroup* docGroup = self->GetDocGroup();
20626
0
    if (docGroup) {
20627
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20628
0
    }
20629
0
  }
20630
0
  FastErrorResult rv;
20631
0
  nsIPrincipal* subjectPrincipal;
20632
0
  {
20633
0
    JS::Realm* realm = js::GetContextRealm(cx);
20634
0
    MOZ_ASSERT(realm);
20635
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20636
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20637
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20638
0
      principal = nullptr;
20639
0
    }
20640
0
20641
0
    subjectPrincipal = principal;
20642
0
  }
20643
0
  self->SetTransformOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20644
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20645
0
    return false;
20646
0
  }
20647
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20648
0
20649
0
  return true;
20650
0
}
20651
20652
static const JSJitInfo transformOrigin_getterinfo = {
20653
  { (JSJitGetterOp)get_transformOrigin },
20654
  { prototypes::id::CSS2Properties },
20655
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20656
  JSJitInfo::Getter,
20657
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20658
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20659
  false,  /* isInfallible. False in setters. */
20660
  false,  /* isMovable.  Not relevant for setters. */
20661
  false, /* isEliminatable.  Not relevant for setters. */
20662
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20663
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20664
  false,  /* isTypedMethod.  Only relevant for methods. */
20665
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20666
};
20667
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20668
static_assert(0 < 1, "There is no slot for us");
20669
static const JSJitInfo transformOrigin_setterinfo = {
20670
  { (JSJitGetterOp)set_transformOrigin },
20671
  { prototypes::id::CSS2Properties },
20672
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20673
  JSJitInfo::Setter,
20674
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20675
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20676
  false,  /* isInfallible. False in setters. */
20677
  false,  /* isMovable.  Not relevant for setters. */
20678
  false, /* isEliminatable.  Not relevant for setters. */
20679
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20680
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20681
  false,  /* isTypedMethod.  Only relevant for methods. */
20682
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20683
};
20684
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20685
static_assert(0 < 1, "There is no slot for us");
20686
20687
MOZ_CAN_RUN_SCRIPT static bool
20688
get_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20689
0
{
20690
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.objectPosition", DOM, cx);
20691
0
20692
0
  FastErrorResult rv;
20693
0
  DOMString result;
20694
0
  self->GetObjectPosition(result, rv);
20695
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20696
0
    return false;
20697
0
  }
20698
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20699
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20700
0
    return false;
20701
0
  }
20702
0
  return true;
20703
0
}
20704
20705
MOZ_CAN_RUN_SCRIPT static bool
20706
set_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20707
0
{
20708
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.objectPosition", DOM, cx);
20709
0
20710
0
  binding_detail::FakeString arg0;
20711
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20712
0
    return false;
20713
0
  }
20714
0
  Maybe<AutoCEReaction> ceReaction;
20715
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20716
0
    DocGroup* docGroup = self->GetDocGroup();
20717
0
    if (docGroup) {
20718
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20719
0
    }
20720
0
  }
20721
0
  FastErrorResult rv;
20722
0
  nsIPrincipal* subjectPrincipal;
20723
0
  {
20724
0
    JS::Realm* realm = js::GetContextRealm(cx);
20725
0
    MOZ_ASSERT(realm);
20726
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20727
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20728
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20729
0
      principal = nullptr;
20730
0
    }
20731
0
20732
0
    subjectPrincipal = principal;
20733
0
  }
20734
0
  self->SetObjectPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20735
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20736
0
    return false;
20737
0
  }
20738
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20739
0
20740
0
  return true;
20741
0
}
20742
20743
static const JSJitInfo objectPosition_getterinfo = {
20744
  { (JSJitGetterOp)get_objectPosition },
20745
  { prototypes::id::CSS2Properties },
20746
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20747
  JSJitInfo::Getter,
20748
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20749
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20750
  false,  /* isInfallible. False in setters. */
20751
  false,  /* isMovable.  Not relevant for setters. */
20752
  false, /* isEliminatable.  Not relevant for setters. */
20753
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20754
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20755
  false,  /* isTypedMethod.  Only relevant for methods. */
20756
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20757
};
20758
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20759
static_assert(0 < 1, "There is no slot for us");
20760
static const JSJitInfo objectPosition_setterinfo = {
20761
  { (JSJitGetterOp)set_objectPosition },
20762
  { prototypes::id::CSS2Properties },
20763
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20764
  JSJitInfo::Setter,
20765
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20766
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20767
  false,  /* isInfallible. False in setters. */
20768
  false,  /* isMovable.  Not relevant for setters. */
20769
  false, /* isEliminatable.  Not relevant for setters. */
20770
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20771
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20772
  false,  /* isTypedMethod.  Only relevant for methods. */
20773
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20774
};
20775
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20776
static_assert(0 < 1, "There is no slot for us");
20777
20778
MOZ_CAN_RUN_SCRIPT static bool
20779
get_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20780
0
{
20781
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.perspectiveOrigin", DOM, cx);
20782
0
20783
0
  FastErrorResult rv;
20784
0
  DOMString result;
20785
0
  self->GetPerspectiveOrigin(result, rv);
20786
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20787
0
    return false;
20788
0
  }
20789
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20790
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20791
0
    return false;
20792
0
  }
20793
0
  return true;
20794
0
}
20795
20796
MOZ_CAN_RUN_SCRIPT static bool
20797
set_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20798
0
{
20799
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.perspectiveOrigin", DOM, cx);
20800
0
20801
0
  binding_detail::FakeString arg0;
20802
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20803
0
    return false;
20804
0
  }
20805
0
  Maybe<AutoCEReaction> ceReaction;
20806
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20807
0
    DocGroup* docGroup = self->GetDocGroup();
20808
0
    if (docGroup) {
20809
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20810
0
    }
20811
0
  }
20812
0
  FastErrorResult rv;
20813
0
  nsIPrincipal* subjectPrincipal;
20814
0
  {
20815
0
    JS::Realm* realm = js::GetContextRealm(cx);
20816
0
    MOZ_ASSERT(realm);
20817
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20818
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20819
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20820
0
      principal = nullptr;
20821
0
    }
20822
0
20823
0
    subjectPrincipal = principal;
20824
0
  }
20825
0
  self->SetPerspectiveOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20826
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20827
0
    return false;
20828
0
  }
20829
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20830
0
20831
0
  return true;
20832
0
}
20833
20834
static const JSJitInfo perspectiveOrigin_getterinfo = {
20835
  { (JSJitGetterOp)get_perspectiveOrigin },
20836
  { prototypes::id::CSS2Properties },
20837
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20838
  JSJitInfo::Getter,
20839
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20840
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20841
  false,  /* isInfallible. False in setters. */
20842
  false,  /* isMovable.  Not relevant for setters. */
20843
  false, /* isEliminatable.  Not relevant for setters. */
20844
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20845
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20846
  false,  /* isTypedMethod.  Only relevant for methods. */
20847
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20848
};
20849
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20850
static_assert(0 < 1, "There is no slot for us");
20851
static const JSJitInfo perspectiveOrigin_setterinfo = {
20852
  { (JSJitGetterOp)set_perspectiveOrigin },
20853
  { prototypes::id::CSS2Properties },
20854
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20855
  JSJitInfo::Setter,
20856
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20857
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20858
  false,  /* isInfallible. False in setters. */
20859
  false,  /* isMovable.  Not relevant for setters. */
20860
  false, /* isEliminatable.  Not relevant for setters. */
20861
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20862
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20863
  false,  /* isTypedMethod.  Only relevant for methods. */
20864
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20865
};
20866
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20867
static_assert(0 < 1, "There is no slot for us");
20868
20869
MOZ_CAN_RUN_SCRIPT static bool
20870
get_scrollSnapDestination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20871
0
{
20872
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapDestination", DOM, cx);
20873
0
20874
0
  FastErrorResult rv;
20875
0
  DOMString result;
20876
0
  self->GetScrollSnapDestination(result, rv);
20877
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20878
0
    return false;
20879
0
  }
20880
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20881
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20882
0
    return false;
20883
0
  }
20884
0
  return true;
20885
0
}
20886
20887
MOZ_CAN_RUN_SCRIPT static bool
20888
set_scrollSnapDestination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20889
0
{
20890
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapDestination", DOM, cx);
20891
0
20892
0
  binding_detail::FakeString arg0;
20893
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20894
0
    return false;
20895
0
  }
20896
0
  Maybe<AutoCEReaction> ceReaction;
20897
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20898
0
    DocGroup* docGroup = self->GetDocGroup();
20899
0
    if (docGroup) {
20900
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20901
0
    }
20902
0
  }
20903
0
  FastErrorResult rv;
20904
0
  nsIPrincipal* subjectPrincipal;
20905
0
  {
20906
0
    JS::Realm* realm = js::GetContextRealm(cx);
20907
0
    MOZ_ASSERT(realm);
20908
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
20909
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
20910
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
20911
0
      principal = nullptr;
20912
0
    }
20913
0
20914
0
    subjectPrincipal = principal;
20915
0
  }
20916
0
  self->SetScrollSnapDestination(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
20917
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20918
0
    return false;
20919
0
  }
20920
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20921
0
20922
0
  return true;
20923
0
}
20924
20925
static const JSJitInfo scrollSnapDestination_getterinfo = {
20926
  { (JSJitGetterOp)get_scrollSnapDestination },
20927
  { prototypes::id::CSS2Properties },
20928
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20929
  JSJitInfo::Getter,
20930
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20931
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
20932
  false,  /* isInfallible. False in setters. */
20933
  false,  /* isMovable.  Not relevant for setters. */
20934
  false, /* isEliminatable.  Not relevant for setters. */
20935
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20936
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20937
  false,  /* isTypedMethod.  Only relevant for methods. */
20938
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20939
};
20940
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20941
static_assert(0 < 1, "There is no slot for us");
20942
static const JSJitInfo scrollSnapDestination_setterinfo = {
20943
  { (JSJitGetterOp)set_scrollSnapDestination },
20944
  { prototypes::id::CSS2Properties },
20945
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
20946
  JSJitInfo::Setter,
20947
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
20948
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
20949
  false,  /* isInfallible. False in setters. */
20950
  false,  /* isMovable.  Not relevant for setters. */
20951
  false, /* isEliminatable.  Not relevant for setters. */
20952
  false, /* isAlwaysInSlot.  Only relevant for getters. */
20953
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
20954
  false,  /* isTypedMethod.  Only relevant for methods. */
20955
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
20956
};
20957
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
20958
static_assert(0 < 1, "There is no slot for us");
20959
20960
MOZ_CAN_RUN_SCRIPT static bool
20961
get_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
20962
0
{
20963
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maxBlockSize", DOM, cx);
20964
0
20965
0
  FastErrorResult rv;
20966
0
  DOMString result;
20967
0
  self->GetMaxBlockSize(result, rv);
20968
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
20969
0
    return false;
20970
0
  }
20971
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
20972
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
20973
0
    return false;
20974
0
  }
20975
0
  return true;
20976
0
}
20977
20978
MOZ_CAN_RUN_SCRIPT static bool
20979
set_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
20980
0
{
20981
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maxBlockSize", DOM, cx);
20982
0
20983
0
  binding_detail::FakeString arg0;
20984
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
20985
0
    return false;
20986
0
  }
20987
0
  Maybe<AutoCEReaction> ceReaction;
20988
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
20989
0
    DocGroup* docGroup = self->GetDocGroup();
20990
0
    if (docGroup) {
20991
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
20992
0
    }
20993
0
  }
20994
0
  FastErrorResult rv;
20995
0
  nsIPrincipal* subjectPrincipal;
20996
0
  {
20997
0
    JS::Realm* realm = js::GetContextRealm(cx);
20998
0
    MOZ_ASSERT(realm);
20999
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21000
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21001
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21002
0
      principal = nullptr;
21003
0
    }
21004
0
21005
0
    subjectPrincipal = principal;
21006
0
  }
21007
0
  self->SetMaxBlockSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21008
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21009
0
    return false;
21010
0
  }
21011
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21012
0
21013
0
  return true;
21014
0
}
21015
21016
static const JSJitInfo maxBlockSize_getterinfo = {
21017
  { (JSJitGetterOp)get_maxBlockSize },
21018
  { prototypes::id::CSS2Properties },
21019
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21020
  JSJitInfo::Getter,
21021
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21022
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21023
  false,  /* isInfallible. False in setters. */
21024
  false,  /* isMovable.  Not relevant for setters. */
21025
  false, /* isEliminatable.  Not relevant for setters. */
21026
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21027
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21028
  false,  /* isTypedMethod.  Only relevant for methods. */
21029
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21030
};
21031
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21032
static_assert(0 < 1, "There is no slot for us");
21033
static const JSJitInfo maxBlockSize_setterinfo = {
21034
  { (JSJitGetterOp)set_maxBlockSize },
21035
  { prototypes::id::CSS2Properties },
21036
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21037
  JSJitInfo::Setter,
21038
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21039
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21040
  false,  /* isInfallible. False in setters. */
21041
  false,  /* isMovable.  Not relevant for setters. */
21042
  false, /* isEliminatable.  Not relevant for setters. */
21043
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21044
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21045
  false,  /* isTypedMethod.  Only relevant for methods. */
21046
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21047
};
21048
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21049
static_assert(0 < 1, "There is no slot for us");
21050
21051
MOZ_CAN_RUN_SCRIPT static bool
21052
get_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21053
0
{
21054
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maxHeight", DOM, cx);
21055
0
21056
0
  FastErrorResult rv;
21057
0
  DOMString result;
21058
0
  self->GetMaxHeight(result, rv);
21059
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21060
0
    return false;
21061
0
  }
21062
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21063
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21064
0
    return false;
21065
0
  }
21066
0
  return true;
21067
0
}
21068
21069
MOZ_CAN_RUN_SCRIPT static bool
21070
set_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21071
0
{
21072
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maxHeight", DOM, cx);
21073
0
21074
0
  binding_detail::FakeString arg0;
21075
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21076
0
    return false;
21077
0
  }
21078
0
  Maybe<AutoCEReaction> ceReaction;
21079
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21080
0
    DocGroup* docGroup = self->GetDocGroup();
21081
0
    if (docGroup) {
21082
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21083
0
    }
21084
0
  }
21085
0
  FastErrorResult rv;
21086
0
  nsIPrincipal* subjectPrincipal;
21087
0
  {
21088
0
    JS::Realm* realm = js::GetContextRealm(cx);
21089
0
    MOZ_ASSERT(realm);
21090
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21091
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21092
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21093
0
      principal = nullptr;
21094
0
    }
21095
0
21096
0
    subjectPrincipal = principal;
21097
0
  }
21098
0
  self->SetMaxHeight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21099
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21100
0
    return false;
21101
0
  }
21102
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21103
0
21104
0
  return true;
21105
0
}
21106
21107
static const JSJitInfo maxHeight_getterinfo = {
21108
  { (JSJitGetterOp)get_maxHeight },
21109
  { prototypes::id::CSS2Properties },
21110
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21111
  JSJitInfo::Getter,
21112
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21113
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21114
  false,  /* isInfallible. False in setters. */
21115
  false,  /* isMovable.  Not relevant for setters. */
21116
  false, /* isEliminatable.  Not relevant for setters. */
21117
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21118
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21119
  false,  /* isTypedMethod.  Only relevant for methods. */
21120
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21121
};
21122
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21123
static_assert(0 < 1, "There is no slot for us");
21124
static const JSJitInfo maxHeight_setterinfo = {
21125
  { (JSJitGetterOp)set_maxHeight },
21126
  { prototypes::id::CSS2Properties },
21127
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21128
  JSJitInfo::Setter,
21129
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21130
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21131
  false,  /* isInfallible. False in setters. */
21132
  false,  /* isMovable.  Not relevant for setters. */
21133
  false, /* isEliminatable.  Not relevant for setters. */
21134
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21135
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21136
  false,  /* isTypedMethod.  Only relevant for methods. */
21137
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21138
};
21139
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21140
static_assert(0 < 1, "There is no slot for us");
21141
21142
MOZ_CAN_RUN_SCRIPT static bool
21143
get_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21144
0
{
21145
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maxInlineSize", DOM, cx);
21146
0
21147
0
  FastErrorResult rv;
21148
0
  DOMString result;
21149
0
  self->GetMaxInlineSize(result, rv);
21150
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21151
0
    return false;
21152
0
  }
21153
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21154
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21155
0
    return false;
21156
0
  }
21157
0
  return true;
21158
0
}
21159
21160
MOZ_CAN_RUN_SCRIPT static bool
21161
set_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21162
0
{
21163
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maxInlineSize", DOM, cx);
21164
0
21165
0
  binding_detail::FakeString arg0;
21166
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21167
0
    return false;
21168
0
  }
21169
0
  Maybe<AutoCEReaction> ceReaction;
21170
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21171
0
    DocGroup* docGroup = self->GetDocGroup();
21172
0
    if (docGroup) {
21173
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21174
0
    }
21175
0
  }
21176
0
  FastErrorResult rv;
21177
0
  nsIPrincipal* subjectPrincipal;
21178
0
  {
21179
0
    JS::Realm* realm = js::GetContextRealm(cx);
21180
0
    MOZ_ASSERT(realm);
21181
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21182
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21183
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21184
0
      principal = nullptr;
21185
0
    }
21186
0
21187
0
    subjectPrincipal = principal;
21188
0
  }
21189
0
  self->SetMaxInlineSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21190
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21191
0
    return false;
21192
0
  }
21193
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21194
0
21195
0
  return true;
21196
0
}
21197
21198
static const JSJitInfo maxInlineSize_getterinfo = {
21199
  { (JSJitGetterOp)get_maxInlineSize },
21200
  { prototypes::id::CSS2Properties },
21201
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21202
  JSJitInfo::Getter,
21203
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21204
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21205
  false,  /* isInfallible. False in setters. */
21206
  false,  /* isMovable.  Not relevant for setters. */
21207
  false, /* isEliminatable.  Not relevant for setters. */
21208
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21209
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21210
  false,  /* isTypedMethod.  Only relevant for methods. */
21211
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21212
};
21213
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21214
static_assert(0 < 1, "There is no slot for us");
21215
static const JSJitInfo maxInlineSize_setterinfo = {
21216
  { (JSJitGetterOp)set_maxInlineSize },
21217
  { prototypes::id::CSS2Properties },
21218
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21219
  JSJitInfo::Setter,
21220
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21221
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21222
  false,  /* isInfallible. False in setters. */
21223
  false,  /* isMovable.  Not relevant for setters. */
21224
  false, /* isEliminatable.  Not relevant for setters. */
21225
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21226
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21227
  false,  /* isTypedMethod.  Only relevant for methods. */
21228
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21229
};
21230
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21231
static_assert(0 < 1, "There is no slot for us");
21232
21233
MOZ_CAN_RUN_SCRIPT static bool
21234
get_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21235
0
{
21236
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maxWidth", DOM, cx);
21237
0
21238
0
  FastErrorResult rv;
21239
0
  DOMString result;
21240
0
  self->GetMaxWidth(result, rv);
21241
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21242
0
    return false;
21243
0
  }
21244
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21245
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21246
0
    return false;
21247
0
  }
21248
0
  return true;
21249
0
}
21250
21251
MOZ_CAN_RUN_SCRIPT static bool
21252
set_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21253
0
{
21254
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maxWidth", DOM, cx);
21255
0
21256
0
  binding_detail::FakeString arg0;
21257
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21258
0
    return false;
21259
0
  }
21260
0
  Maybe<AutoCEReaction> ceReaction;
21261
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21262
0
    DocGroup* docGroup = self->GetDocGroup();
21263
0
    if (docGroup) {
21264
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21265
0
    }
21266
0
  }
21267
0
  FastErrorResult rv;
21268
0
  nsIPrincipal* subjectPrincipal;
21269
0
  {
21270
0
    JS::Realm* realm = js::GetContextRealm(cx);
21271
0
    MOZ_ASSERT(realm);
21272
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21273
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21274
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21275
0
      principal = nullptr;
21276
0
    }
21277
0
21278
0
    subjectPrincipal = principal;
21279
0
  }
21280
0
  self->SetMaxWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21281
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21282
0
    return false;
21283
0
  }
21284
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21285
0
21286
0
  return true;
21287
0
}
21288
21289
static const JSJitInfo maxWidth_getterinfo = {
21290
  { (JSJitGetterOp)get_maxWidth },
21291
  { prototypes::id::CSS2Properties },
21292
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21293
  JSJitInfo::Getter,
21294
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21295
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21296
  false,  /* isInfallible. False in setters. */
21297
  false,  /* isMovable.  Not relevant for setters. */
21298
  false, /* isEliminatable.  Not relevant for setters. */
21299
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21300
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21301
  false,  /* isTypedMethod.  Only relevant for methods. */
21302
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21303
};
21304
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21305
static_assert(0 < 1, "There is no slot for us");
21306
static const JSJitInfo maxWidth_setterinfo = {
21307
  { (JSJitGetterOp)set_maxWidth },
21308
  { prototypes::id::CSS2Properties },
21309
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21310
  JSJitInfo::Setter,
21311
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21312
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21313
  false,  /* isInfallible. False in setters. */
21314
  false,  /* isMovable.  Not relevant for setters. */
21315
  false, /* isEliminatable.  Not relevant for setters. */
21316
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21317
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21318
  false,  /* isTypedMethod.  Only relevant for methods. */
21319
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21320
};
21321
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21322
static_assert(0 < 1, "There is no slot for us");
21323
21324
MOZ_CAN_RUN_SCRIPT static bool
21325
get_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21326
0
{
21327
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.markerEnd", DOM, cx);
21328
0
21329
0
  FastErrorResult rv;
21330
0
  DOMString result;
21331
0
  self->GetMarkerEnd(result, rv);
21332
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21333
0
    return false;
21334
0
  }
21335
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21336
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21337
0
    return false;
21338
0
  }
21339
0
  return true;
21340
0
}
21341
21342
MOZ_CAN_RUN_SCRIPT static bool
21343
set_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21344
0
{
21345
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.markerEnd", DOM, cx);
21346
0
21347
0
  binding_detail::FakeString arg0;
21348
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21349
0
    return false;
21350
0
  }
21351
0
  Maybe<AutoCEReaction> ceReaction;
21352
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21353
0
    DocGroup* docGroup = self->GetDocGroup();
21354
0
    if (docGroup) {
21355
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21356
0
    }
21357
0
  }
21358
0
  FastErrorResult rv;
21359
0
  nsIPrincipal* subjectPrincipal;
21360
0
  {
21361
0
    JS::Realm* realm = js::GetContextRealm(cx);
21362
0
    MOZ_ASSERT(realm);
21363
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21364
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21365
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21366
0
      principal = nullptr;
21367
0
    }
21368
0
21369
0
    subjectPrincipal = principal;
21370
0
  }
21371
0
  self->SetMarkerEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21372
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21373
0
    return false;
21374
0
  }
21375
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21376
0
21377
0
  return true;
21378
0
}
21379
21380
static const JSJitInfo markerEnd_getterinfo = {
21381
  { (JSJitGetterOp)get_markerEnd },
21382
  { prototypes::id::CSS2Properties },
21383
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21384
  JSJitInfo::Getter,
21385
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21386
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21387
  false,  /* isInfallible. False in setters. */
21388
  false,  /* isMovable.  Not relevant for setters. */
21389
  false, /* isEliminatable.  Not relevant for setters. */
21390
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21391
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21392
  false,  /* isTypedMethod.  Only relevant for methods. */
21393
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21394
};
21395
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21396
static_assert(0 < 1, "There is no slot for us");
21397
static const JSJitInfo markerEnd_setterinfo = {
21398
  { (JSJitGetterOp)set_markerEnd },
21399
  { prototypes::id::CSS2Properties },
21400
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21401
  JSJitInfo::Setter,
21402
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21403
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21404
  false,  /* isInfallible. False in setters. */
21405
  false,  /* isMovable.  Not relevant for setters. */
21406
  false, /* isEliminatable.  Not relevant for setters. */
21407
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21408
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21409
  false,  /* isTypedMethod.  Only relevant for methods. */
21410
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21411
};
21412
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21413
static_assert(0 < 1, "There is no slot for us");
21414
21415
MOZ_CAN_RUN_SCRIPT static bool
21416
get_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21417
0
{
21418
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.markerMid", DOM, cx);
21419
0
21420
0
  FastErrorResult rv;
21421
0
  DOMString result;
21422
0
  self->GetMarkerMid(result, rv);
21423
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21424
0
    return false;
21425
0
  }
21426
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21427
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21428
0
    return false;
21429
0
  }
21430
0
  return true;
21431
0
}
21432
21433
MOZ_CAN_RUN_SCRIPT static bool
21434
set_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21435
0
{
21436
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.markerMid", DOM, cx);
21437
0
21438
0
  binding_detail::FakeString arg0;
21439
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21440
0
    return false;
21441
0
  }
21442
0
  Maybe<AutoCEReaction> ceReaction;
21443
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21444
0
    DocGroup* docGroup = self->GetDocGroup();
21445
0
    if (docGroup) {
21446
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21447
0
    }
21448
0
  }
21449
0
  FastErrorResult rv;
21450
0
  nsIPrincipal* subjectPrincipal;
21451
0
  {
21452
0
    JS::Realm* realm = js::GetContextRealm(cx);
21453
0
    MOZ_ASSERT(realm);
21454
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21455
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21456
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21457
0
      principal = nullptr;
21458
0
    }
21459
0
21460
0
    subjectPrincipal = principal;
21461
0
  }
21462
0
  self->SetMarkerMid(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21463
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21464
0
    return false;
21465
0
  }
21466
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21467
0
21468
0
  return true;
21469
0
}
21470
21471
static const JSJitInfo markerMid_getterinfo = {
21472
  { (JSJitGetterOp)get_markerMid },
21473
  { prototypes::id::CSS2Properties },
21474
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21475
  JSJitInfo::Getter,
21476
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21477
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21478
  false,  /* isInfallible. False in setters. */
21479
  false,  /* isMovable.  Not relevant for setters. */
21480
  false, /* isEliminatable.  Not relevant for setters. */
21481
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21482
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21483
  false,  /* isTypedMethod.  Only relevant for methods. */
21484
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21485
};
21486
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21487
static_assert(0 < 1, "There is no slot for us");
21488
static const JSJitInfo markerMid_setterinfo = {
21489
  { (JSJitGetterOp)set_markerMid },
21490
  { prototypes::id::CSS2Properties },
21491
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21492
  JSJitInfo::Setter,
21493
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21494
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21495
  false,  /* isInfallible. False in setters. */
21496
  false,  /* isMovable.  Not relevant for setters. */
21497
  false, /* isEliminatable.  Not relevant for setters. */
21498
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21499
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21500
  false,  /* isTypedMethod.  Only relevant for methods. */
21501
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21502
};
21503
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21504
static_assert(0 < 1, "There is no slot for us");
21505
21506
MOZ_CAN_RUN_SCRIPT static bool
21507
get_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21508
0
{
21509
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.markerStart", DOM, cx);
21510
0
21511
0
  FastErrorResult rv;
21512
0
  DOMString result;
21513
0
  self->GetMarkerStart(result, rv);
21514
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21515
0
    return false;
21516
0
  }
21517
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21518
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21519
0
    return false;
21520
0
  }
21521
0
  return true;
21522
0
}
21523
21524
MOZ_CAN_RUN_SCRIPT static bool
21525
set_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21526
0
{
21527
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.markerStart", DOM, cx);
21528
0
21529
0
  binding_detail::FakeString arg0;
21530
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21531
0
    return false;
21532
0
  }
21533
0
  Maybe<AutoCEReaction> ceReaction;
21534
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21535
0
    DocGroup* docGroup = self->GetDocGroup();
21536
0
    if (docGroup) {
21537
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21538
0
    }
21539
0
  }
21540
0
  FastErrorResult rv;
21541
0
  nsIPrincipal* subjectPrincipal;
21542
0
  {
21543
0
    JS::Realm* realm = js::GetContextRealm(cx);
21544
0
    MOZ_ASSERT(realm);
21545
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21546
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21547
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21548
0
      principal = nullptr;
21549
0
    }
21550
0
21551
0
    subjectPrincipal = principal;
21552
0
  }
21553
0
  self->SetMarkerStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21554
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21555
0
    return false;
21556
0
  }
21557
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21558
0
21559
0
  return true;
21560
0
}
21561
21562
static const JSJitInfo markerStart_getterinfo = {
21563
  { (JSJitGetterOp)get_markerStart },
21564
  { prototypes::id::CSS2Properties },
21565
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21566
  JSJitInfo::Getter,
21567
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21568
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21569
  false,  /* isInfallible. False in setters. */
21570
  false,  /* isMovable.  Not relevant for setters. */
21571
  false, /* isEliminatable.  Not relevant for setters. */
21572
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21573
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21574
  false,  /* isTypedMethod.  Only relevant for methods. */
21575
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21576
};
21577
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21578
static_assert(0 < 1, "There is no slot for us");
21579
static const JSJitInfo markerStart_setterinfo = {
21580
  { (JSJitGetterOp)set_markerStart },
21581
  { prototypes::id::CSS2Properties },
21582
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21583
  JSJitInfo::Setter,
21584
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21585
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21586
  false,  /* isInfallible. False in setters. */
21587
  false,  /* isMovable.  Not relevant for setters. */
21588
  false, /* isEliminatable.  Not relevant for setters. */
21589
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21590
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21591
  false,  /* isTypedMethod.  Only relevant for methods. */
21592
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21593
};
21594
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21595
static_assert(0 < 1, "There is no slot for us");
21596
21597
MOZ_CAN_RUN_SCRIPT static bool
21598
get_MozBinding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21599
0
{
21600
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBinding", DOM, cx);
21601
0
21602
0
  FastErrorResult rv;
21603
0
  DOMString result;
21604
0
  self->GetMozBinding(result, rv);
21605
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21606
0
    return false;
21607
0
  }
21608
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21609
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21610
0
    return false;
21611
0
  }
21612
0
  return true;
21613
0
}
21614
21615
MOZ_CAN_RUN_SCRIPT static bool
21616
set_MozBinding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21617
0
{
21618
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBinding", DOM, cx);
21619
0
21620
0
  binding_detail::FakeString arg0;
21621
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21622
0
    return false;
21623
0
  }
21624
0
  Maybe<AutoCEReaction> ceReaction;
21625
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21626
0
    DocGroup* docGroup = self->GetDocGroup();
21627
0
    if (docGroup) {
21628
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21629
0
    }
21630
0
  }
21631
0
  FastErrorResult rv;
21632
0
  nsIPrincipal* subjectPrincipal;
21633
0
  {
21634
0
    JS::Realm* realm = js::GetContextRealm(cx);
21635
0
    MOZ_ASSERT(realm);
21636
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21637
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21638
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21639
0
      principal = nullptr;
21640
0
    }
21641
0
21642
0
    subjectPrincipal = principal;
21643
0
  }
21644
0
  self->SetMozBinding(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21645
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21646
0
    return false;
21647
0
  }
21648
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21649
0
21650
0
  return true;
21651
0
}
21652
21653
static const JSJitInfo MozBinding_getterinfo = {
21654
  { (JSJitGetterOp)get_MozBinding },
21655
  { prototypes::id::CSS2Properties },
21656
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21657
  JSJitInfo::Getter,
21658
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21659
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21660
  false,  /* isInfallible. False in setters. */
21661
  false,  /* isMovable.  Not relevant for setters. */
21662
  false, /* isEliminatable.  Not relevant for setters. */
21663
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21664
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21665
  false,  /* isTypedMethod.  Only relevant for methods. */
21666
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21667
};
21668
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21669
static_assert(0 < 1, "There is no slot for us");
21670
static const JSJitInfo MozBinding_setterinfo = {
21671
  { (JSJitGetterOp)set_MozBinding },
21672
  { prototypes::id::CSS2Properties },
21673
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21674
  JSJitInfo::Setter,
21675
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21676
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21677
  false,  /* isInfallible. False in setters. */
21678
  false,  /* isMovable.  Not relevant for setters. */
21679
  false, /* isEliminatable.  Not relevant for setters. */
21680
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21681
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21682
  false,  /* isTypedMethod.  Only relevant for methods. */
21683
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21684
};
21685
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21686
static_assert(0 < 1, "There is no slot for us");
21687
21688
MOZ_CAN_RUN_SCRIPT static bool
21689
get_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21690
0
{
21691
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridColumnEnd", DOM, cx);
21692
0
21693
0
  FastErrorResult rv;
21694
0
  DOMString result;
21695
0
  self->GetGridColumnEnd(result, rv);
21696
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21697
0
    return false;
21698
0
  }
21699
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21700
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21701
0
    return false;
21702
0
  }
21703
0
  return true;
21704
0
}
21705
21706
MOZ_CAN_RUN_SCRIPT static bool
21707
set_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21708
0
{
21709
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridColumnEnd", DOM, cx);
21710
0
21711
0
  binding_detail::FakeString arg0;
21712
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21713
0
    return false;
21714
0
  }
21715
0
  Maybe<AutoCEReaction> ceReaction;
21716
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21717
0
    DocGroup* docGroup = self->GetDocGroup();
21718
0
    if (docGroup) {
21719
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21720
0
    }
21721
0
  }
21722
0
  FastErrorResult rv;
21723
0
  nsIPrincipal* subjectPrincipal;
21724
0
  {
21725
0
    JS::Realm* realm = js::GetContextRealm(cx);
21726
0
    MOZ_ASSERT(realm);
21727
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21728
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21729
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21730
0
      principal = nullptr;
21731
0
    }
21732
0
21733
0
    subjectPrincipal = principal;
21734
0
  }
21735
0
  self->SetGridColumnEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21736
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21737
0
    return false;
21738
0
  }
21739
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21740
0
21741
0
  return true;
21742
0
}
21743
21744
static const JSJitInfo gridColumnEnd_getterinfo = {
21745
  { (JSJitGetterOp)get_gridColumnEnd },
21746
  { prototypes::id::CSS2Properties },
21747
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21748
  JSJitInfo::Getter,
21749
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21750
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21751
  false,  /* isInfallible. False in setters. */
21752
  false,  /* isMovable.  Not relevant for setters. */
21753
  false, /* isEliminatable.  Not relevant for setters. */
21754
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21755
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21756
  false,  /* isTypedMethod.  Only relevant for methods. */
21757
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21758
};
21759
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21760
static_assert(0 < 1, "There is no slot for us");
21761
static const JSJitInfo gridColumnEnd_setterinfo = {
21762
  { (JSJitGetterOp)set_gridColumnEnd },
21763
  { prototypes::id::CSS2Properties },
21764
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21765
  JSJitInfo::Setter,
21766
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21767
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21768
  false,  /* isInfallible. False in setters. */
21769
  false,  /* isMovable.  Not relevant for setters. */
21770
  false, /* isEliminatable.  Not relevant for setters. */
21771
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21772
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21773
  false,  /* isTypedMethod.  Only relevant for methods. */
21774
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21775
};
21776
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21777
static_assert(0 < 1, "There is no slot for us");
21778
21779
MOZ_CAN_RUN_SCRIPT static bool
21780
get_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21781
0
{
21782
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridColumnStart", DOM, cx);
21783
0
21784
0
  FastErrorResult rv;
21785
0
  DOMString result;
21786
0
  self->GetGridColumnStart(result, rv);
21787
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21788
0
    return false;
21789
0
  }
21790
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21791
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21792
0
    return false;
21793
0
  }
21794
0
  return true;
21795
0
}
21796
21797
MOZ_CAN_RUN_SCRIPT static bool
21798
set_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21799
0
{
21800
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridColumnStart", DOM, cx);
21801
0
21802
0
  binding_detail::FakeString arg0;
21803
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21804
0
    return false;
21805
0
  }
21806
0
  Maybe<AutoCEReaction> ceReaction;
21807
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21808
0
    DocGroup* docGroup = self->GetDocGroup();
21809
0
    if (docGroup) {
21810
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21811
0
    }
21812
0
  }
21813
0
  FastErrorResult rv;
21814
0
  nsIPrincipal* subjectPrincipal;
21815
0
  {
21816
0
    JS::Realm* realm = js::GetContextRealm(cx);
21817
0
    MOZ_ASSERT(realm);
21818
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21819
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21820
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21821
0
      principal = nullptr;
21822
0
    }
21823
0
21824
0
    subjectPrincipal = principal;
21825
0
  }
21826
0
  self->SetGridColumnStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21827
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21828
0
    return false;
21829
0
  }
21830
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21831
0
21832
0
  return true;
21833
0
}
21834
21835
static const JSJitInfo gridColumnStart_getterinfo = {
21836
  { (JSJitGetterOp)get_gridColumnStart },
21837
  { prototypes::id::CSS2Properties },
21838
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21839
  JSJitInfo::Getter,
21840
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21841
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21842
  false,  /* isInfallible. False in setters. */
21843
  false,  /* isMovable.  Not relevant for setters. */
21844
  false, /* isEliminatable.  Not relevant for setters. */
21845
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21846
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21847
  false,  /* isTypedMethod.  Only relevant for methods. */
21848
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21849
};
21850
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21851
static_assert(0 < 1, "There is no slot for us");
21852
static const JSJitInfo gridColumnStart_setterinfo = {
21853
  { (JSJitGetterOp)set_gridColumnStart },
21854
  { prototypes::id::CSS2Properties },
21855
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21856
  JSJitInfo::Setter,
21857
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21858
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21859
  false,  /* isInfallible. False in setters. */
21860
  false,  /* isMovable.  Not relevant for setters. */
21861
  false, /* isEliminatable.  Not relevant for setters. */
21862
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21863
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21864
  false,  /* isTypedMethod.  Only relevant for methods. */
21865
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21866
};
21867
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21868
static_assert(0 < 1, "There is no slot for us");
21869
21870
MOZ_CAN_RUN_SCRIPT static bool
21871
get_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21872
0
{
21873
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridRowEnd", DOM, cx);
21874
0
21875
0
  FastErrorResult rv;
21876
0
  DOMString result;
21877
0
  self->GetGridRowEnd(result, rv);
21878
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21879
0
    return false;
21880
0
  }
21881
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21882
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21883
0
    return false;
21884
0
  }
21885
0
  return true;
21886
0
}
21887
21888
MOZ_CAN_RUN_SCRIPT static bool
21889
set_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21890
0
{
21891
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridRowEnd", DOM, cx);
21892
0
21893
0
  binding_detail::FakeString arg0;
21894
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21895
0
    return false;
21896
0
  }
21897
0
  Maybe<AutoCEReaction> ceReaction;
21898
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21899
0
    DocGroup* docGroup = self->GetDocGroup();
21900
0
    if (docGroup) {
21901
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21902
0
    }
21903
0
  }
21904
0
  FastErrorResult rv;
21905
0
  nsIPrincipal* subjectPrincipal;
21906
0
  {
21907
0
    JS::Realm* realm = js::GetContextRealm(cx);
21908
0
    MOZ_ASSERT(realm);
21909
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
21910
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
21911
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
21912
0
      principal = nullptr;
21913
0
    }
21914
0
21915
0
    subjectPrincipal = principal;
21916
0
  }
21917
0
  self->SetGridRowEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
21918
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21919
0
    return false;
21920
0
  }
21921
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21922
0
21923
0
  return true;
21924
0
}
21925
21926
static const JSJitInfo gridRowEnd_getterinfo = {
21927
  { (JSJitGetterOp)get_gridRowEnd },
21928
  { prototypes::id::CSS2Properties },
21929
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21930
  JSJitInfo::Getter,
21931
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21932
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
21933
  false,  /* isInfallible. False in setters. */
21934
  false,  /* isMovable.  Not relevant for setters. */
21935
  false, /* isEliminatable.  Not relevant for setters. */
21936
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21937
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21938
  false,  /* isTypedMethod.  Only relevant for methods. */
21939
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21940
};
21941
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21942
static_assert(0 < 1, "There is no slot for us");
21943
static const JSJitInfo gridRowEnd_setterinfo = {
21944
  { (JSJitGetterOp)set_gridRowEnd },
21945
  { prototypes::id::CSS2Properties },
21946
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
21947
  JSJitInfo::Setter,
21948
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
21949
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
21950
  false,  /* isInfallible. False in setters. */
21951
  false,  /* isMovable.  Not relevant for setters. */
21952
  false, /* isEliminatable.  Not relevant for setters. */
21953
  false, /* isAlwaysInSlot.  Only relevant for getters. */
21954
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
21955
  false,  /* isTypedMethod.  Only relevant for methods. */
21956
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
21957
};
21958
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
21959
static_assert(0 < 1, "There is no slot for us");
21960
21961
MOZ_CAN_RUN_SCRIPT static bool
21962
get_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
21963
0
{
21964
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridRowStart", DOM, cx);
21965
0
21966
0
  FastErrorResult rv;
21967
0
  DOMString result;
21968
0
  self->GetGridRowStart(result, rv);
21969
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
21970
0
    return false;
21971
0
  }
21972
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
21973
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
21974
0
    return false;
21975
0
  }
21976
0
  return true;
21977
0
}
21978
21979
MOZ_CAN_RUN_SCRIPT static bool
21980
set_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
21981
0
{
21982
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridRowStart", DOM, cx);
21983
0
21984
0
  binding_detail::FakeString arg0;
21985
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
21986
0
    return false;
21987
0
  }
21988
0
  Maybe<AutoCEReaction> ceReaction;
21989
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
21990
0
    DocGroup* docGroup = self->GetDocGroup();
21991
0
    if (docGroup) {
21992
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
21993
0
    }
21994
0
  }
21995
0
  FastErrorResult rv;
21996
0
  nsIPrincipal* subjectPrincipal;
21997
0
  {
21998
0
    JS::Realm* realm = js::GetContextRealm(cx);
21999
0
    MOZ_ASSERT(realm);
22000
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22001
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22002
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22003
0
      principal = nullptr;
22004
0
    }
22005
0
22006
0
    subjectPrincipal = principal;
22007
0
  }
22008
0
  self->SetGridRowStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22009
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22010
0
    return false;
22011
0
  }
22012
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22013
0
22014
0
  return true;
22015
0
}
22016
22017
static const JSJitInfo gridRowStart_getterinfo = {
22018
  { (JSJitGetterOp)get_gridRowStart },
22019
  { prototypes::id::CSS2Properties },
22020
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22021
  JSJitInfo::Getter,
22022
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22023
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22024
  false,  /* isInfallible. False in setters. */
22025
  false,  /* isMovable.  Not relevant for setters. */
22026
  false, /* isEliminatable.  Not relevant for setters. */
22027
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22028
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22029
  false,  /* isTypedMethod.  Only relevant for methods. */
22030
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22031
};
22032
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22033
static_assert(0 < 1, "There is no slot for us");
22034
static const JSJitInfo gridRowStart_setterinfo = {
22035
  { (JSJitGetterOp)set_gridRowStart },
22036
  { prototypes::id::CSS2Properties },
22037
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22038
  JSJitInfo::Setter,
22039
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22040
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22041
  false,  /* isInfallible. False in setters. */
22042
  false,  /* isMovable.  Not relevant for setters. */
22043
  false, /* isEliminatable.  Not relevant for setters. */
22044
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22045
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22046
  false,  /* isTypedMethod.  Only relevant for methods. */
22047
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22048
};
22049
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22050
static_assert(0 < 1, "There is no slot for us");
22051
22052
MOZ_CAN_RUN_SCRIPT static bool
22053
get_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22054
0
{
22055
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.blockSize", DOM, cx);
22056
0
22057
0
  FastErrorResult rv;
22058
0
  DOMString result;
22059
0
  self->GetBlockSize(result, rv);
22060
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22061
0
    return false;
22062
0
  }
22063
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22064
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22065
0
    return false;
22066
0
  }
22067
0
  return true;
22068
0
}
22069
22070
MOZ_CAN_RUN_SCRIPT static bool
22071
set_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22072
0
{
22073
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.blockSize", DOM, cx);
22074
0
22075
0
  binding_detail::FakeString arg0;
22076
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22077
0
    return false;
22078
0
  }
22079
0
  Maybe<AutoCEReaction> ceReaction;
22080
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22081
0
    DocGroup* docGroup = self->GetDocGroup();
22082
0
    if (docGroup) {
22083
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22084
0
    }
22085
0
  }
22086
0
  FastErrorResult rv;
22087
0
  nsIPrincipal* subjectPrincipal;
22088
0
  {
22089
0
    JS::Realm* realm = js::GetContextRealm(cx);
22090
0
    MOZ_ASSERT(realm);
22091
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22092
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22093
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22094
0
      principal = nullptr;
22095
0
    }
22096
0
22097
0
    subjectPrincipal = principal;
22098
0
  }
22099
0
  self->SetBlockSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22100
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22101
0
    return false;
22102
0
  }
22103
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22104
0
22105
0
  return true;
22106
0
}
22107
22108
static const JSJitInfo blockSize_getterinfo = {
22109
  { (JSJitGetterOp)get_blockSize },
22110
  { prototypes::id::CSS2Properties },
22111
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22112
  JSJitInfo::Getter,
22113
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22114
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22115
  false,  /* isInfallible. False in setters. */
22116
  false,  /* isMovable.  Not relevant for setters. */
22117
  false, /* isEliminatable.  Not relevant for setters. */
22118
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22119
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22120
  false,  /* isTypedMethod.  Only relevant for methods. */
22121
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22122
};
22123
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22124
static_assert(0 < 1, "There is no slot for us");
22125
static const JSJitInfo blockSize_setterinfo = {
22126
  { (JSJitGetterOp)set_blockSize },
22127
  { prototypes::id::CSS2Properties },
22128
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22129
  JSJitInfo::Setter,
22130
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22131
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22132
  false,  /* isInfallible. False in setters. */
22133
  false,  /* isMovable.  Not relevant for setters. */
22134
  false, /* isEliminatable.  Not relevant for setters. */
22135
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22136
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22137
  false,  /* isTypedMethod.  Only relevant for methods. */
22138
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22139
};
22140
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22141
static_assert(0 < 1, "There is no slot for us");
22142
22143
MOZ_CAN_RUN_SCRIPT static bool
22144
get_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22145
0
{
22146
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.height", DOM, cx);
22147
0
22148
0
  FastErrorResult rv;
22149
0
  DOMString result;
22150
0
  self->GetHeight(result, rv);
22151
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22152
0
    return false;
22153
0
  }
22154
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22155
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22156
0
    return false;
22157
0
  }
22158
0
  return true;
22159
0
}
22160
22161
MOZ_CAN_RUN_SCRIPT static bool
22162
set_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22163
0
{
22164
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.height", DOM, cx);
22165
0
22166
0
  binding_detail::FakeString arg0;
22167
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22168
0
    return false;
22169
0
  }
22170
0
  Maybe<AutoCEReaction> ceReaction;
22171
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22172
0
    DocGroup* docGroup = self->GetDocGroup();
22173
0
    if (docGroup) {
22174
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22175
0
    }
22176
0
  }
22177
0
  FastErrorResult rv;
22178
0
  nsIPrincipal* subjectPrincipal;
22179
0
  {
22180
0
    JS::Realm* realm = js::GetContextRealm(cx);
22181
0
    MOZ_ASSERT(realm);
22182
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22183
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22184
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22185
0
      principal = nullptr;
22186
0
    }
22187
0
22188
0
    subjectPrincipal = principal;
22189
0
  }
22190
0
  self->SetHeight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22191
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22192
0
    return false;
22193
0
  }
22194
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22195
0
22196
0
  return true;
22197
0
}
22198
22199
static const JSJitInfo height_getterinfo = {
22200
  { (JSJitGetterOp)get_height },
22201
  { prototypes::id::CSS2Properties },
22202
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22203
  JSJitInfo::Getter,
22204
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22205
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22206
  false,  /* isInfallible. False in setters. */
22207
  false,  /* isMovable.  Not relevant for setters. */
22208
  false, /* isEliminatable.  Not relevant for setters. */
22209
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22210
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22211
  false,  /* isTypedMethod.  Only relevant for methods. */
22212
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22213
};
22214
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22215
static_assert(0 < 1, "There is no slot for us");
22216
static const JSJitInfo height_setterinfo = {
22217
  { (JSJitGetterOp)set_height },
22218
  { prototypes::id::CSS2Properties },
22219
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22220
  JSJitInfo::Setter,
22221
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22222
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22223
  false,  /* isInfallible. False in setters. */
22224
  false,  /* isMovable.  Not relevant for setters. */
22225
  false, /* isEliminatable.  Not relevant for setters. */
22226
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22227
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22228
  false,  /* isTypedMethod.  Only relevant for methods. */
22229
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22230
};
22231
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22232
static_assert(0 < 1, "There is no slot for us");
22233
22234
MOZ_CAN_RUN_SCRIPT static bool
22235
get_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22236
0
{
22237
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.inlineSize", DOM, cx);
22238
0
22239
0
  FastErrorResult rv;
22240
0
  DOMString result;
22241
0
  self->GetInlineSize(result, rv);
22242
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22243
0
    return false;
22244
0
  }
22245
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22246
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22247
0
    return false;
22248
0
  }
22249
0
  return true;
22250
0
}
22251
22252
MOZ_CAN_RUN_SCRIPT static bool
22253
set_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22254
0
{
22255
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.inlineSize", DOM, cx);
22256
0
22257
0
  binding_detail::FakeString arg0;
22258
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22259
0
    return false;
22260
0
  }
22261
0
  Maybe<AutoCEReaction> ceReaction;
22262
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22263
0
    DocGroup* docGroup = self->GetDocGroup();
22264
0
    if (docGroup) {
22265
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22266
0
    }
22267
0
  }
22268
0
  FastErrorResult rv;
22269
0
  nsIPrincipal* subjectPrincipal;
22270
0
  {
22271
0
    JS::Realm* realm = js::GetContextRealm(cx);
22272
0
    MOZ_ASSERT(realm);
22273
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22274
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22275
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22276
0
      principal = nullptr;
22277
0
    }
22278
0
22279
0
    subjectPrincipal = principal;
22280
0
  }
22281
0
  self->SetInlineSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22282
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22283
0
    return false;
22284
0
  }
22285
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22286
0
22287
0
  return true;
22288
0
}
22289
22290
static const JSJitInfo inlineSize_getterinfo = {
22291
  { (JSJitGetterOp)get_inlineSize },
22292
  { prototypes::id::CSS2Properties },
22293
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22294
  JSJitInfo::Getter,
22295
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22296
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22297
  false,  /* isInfallible. False in setters. */
22298
  false,  /* isMovable.  Not relevant for setters. */
22299
  false, /* isEliminatable.  Not relevant for setters. */
22300
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22301
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22302
  false,  /* isTypedMethod.  Only relevant for methods. */
22303
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22304
};
22305
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22306
static_assert(0 < 1, "There is no slot for us");
22307
static const JSJitInfo inlineSize_setterinfo = {
22308
  { (JSJitGetterOp)set_inlineSize },
22309
  { prototypes::id::CSS2Properties },
22310
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22311
  JSJitInfo::Setter,
22312
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22313
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22314
  false,  /* isInfallible. False in setters. */
22315
  false,  /* isMovable.  Not relevant for setters. */
22316
  false, /* isEliminatable.  Not relevant for setters. */
22317
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22318
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22319
  false,  /* isTypedMethod.  Only relevant for methods. */
22320
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22321
};
22322
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22323
static_assert(0 < 1, "There is no slot for us");
22324
22325
MOZ_CAN_RUN_SCRIPT static bool
22326
get_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22327
0
{
22328
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.minBlockSize", DOM, cx);
22329
0
22330
0
  FastErrorResult rv;
22331
0
  DOMString result;
22332
0
  self->GetMinBlockSize(result, rv);
22333
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22334
0
    return false;
22335
0
  }
22336
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22337
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22338
0
    return false;
22339
0
  }
22340
0
  return true;
22341
0
}
22342
22343
MOZ_CAN_RUN_SCRIPT static bool
22344
set_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22345
0
{
22346
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.minBlockSize", DOM, cx);
22347
0
22348
0
  binding_detail::FakeString arg0;
22349
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22350
0
    return false;
22351
0
  }
22352
0
  Maybe<AutoCEReaction> ceReaction;
22353
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22354
0
    DocGroup* docGroup = self->GetDocGroup();
22355
0
    if (docGroup) {
22356
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22357
0
    }
22358
0
  }
22359
0
  FastErrorResult rv;
22360
0
  nsIPrincipal* subjectPrincipal;
22361
0
  {
22362
0
    JS::Realm* realm = js::GetContextRealm(cx);
22363
0
    MOZ_ASSERT(realm);
22364
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22365
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22366
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22367
0
      principal = nullptr;
22368
0
    }
22369
0
22370
0
    subjectPrincipal = principal;
22371
0
  }
22372
0
  self->SetMinBlockSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22373
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22374
0
    return false;
22375
0
  }
22376
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22377
0
22378
0
  return true;
22379
0
}
22380
22381
static const JSJitInfo minBlockSize_getterinfo = {
22382
  { (JSJitGetterOp)get_minBlockSize },
22383
  { prototypes::id::CSS2Properties },
22384
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22385
  JSJitInfo::Getter,
22386
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22387
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22388
  false,  /* isInfallible. False in setters. */
22389
  false,  /* isMovable.  Not relevant for setters. */
22390
  false, /* isEliminatable.  Not relevant for setters. */
22391
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22392
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22393
  false,  /* isTypedMethod.  Only relevant for methods. */
22394
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22395
};
22396
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22397
static_assert(0 < 1, "There is no slot for us");
22398
static const JSJitInfo minBlockSize_setterinfo = {
22399
  { (JSJitGetterOp)set_minBlockSize },
22400
  { prototypes::id::CSS2Properties },
22401
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22402
  JSJitInfo::Setter,
22403
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22404
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22405
  false,  /* isInfallible. False in setters. */
22406
  false,  /* isMovable.  Not relevant for setters. */
22407
  false, /* isEliminatable.  Not relevant for setters. */
22408
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22409
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22410
  false,  /* isTypedMethod.  Only relevant for methods. */
22411
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22412
};
22413
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22414
static_assert(0 < 1, "There is no slot for us");
22415
22416
MOZ_CAN_RUN_SCRIPT static bool
22417
get_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22418
0
{
22419
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.minHeight", DOM, cx);
22420
0
22421
0
  FastErrorResult rv;
22422
0
  DOMString result;
22423
0
  self->GetMinHeight(result, rv);
22424
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22425
0
    return false;
22426
0
  }
22427
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22428
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22429
0
    return false;
22430
0
  }
22431
0
  return true;
22432
0
}
22433
22434
MOZ_CAN_RUN_SCRIPT static bool
22435
set_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22436
0
{
22437
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.minHeight", DOM, cx);
22438
0
22439
0
  binding_detail::FakeString arg0;
22440
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22441
0
    return false;
22442
0
  }
22443
0
  Maybe<AutoCEReaction> ceReaction;
22444
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22445
0
    DocGroup* docGroup = self->GetDocGroup();
22446
0
    if (docGroup) {
22447
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22448
0
    }
22449
0
  }
22450
0
  FastErrorResult rv;
22451
0
  nsIPrincipal* subjectPrincipal;
22452
0
  {
22453
0
    JS::Realm* realm = js::GetContextRealm(cx);
22454
0
    MOZ_ASSERT(realm);
22455
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22456
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22457
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22458
0
      principal = nullptr;
22459
0
    }
22460
0
22461
0
    subjectPrincipal = principal;
22462
0
  }
22463
0
  self->SetMinHeight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22464
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22465
0
    return false;
22466
0
  }
22467
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22468
0
22469
0
  return true;
22470
0
}
22471
22472
static const JSJitInfo minHeight_getterinfo = {
22473
  { (JSJitGetterOp)get_minHeight },
22474
  { prototypes::id::CSS2Properties },
22475
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22476
  JSJitInfo::Getter,
22477
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22478
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22479
  false,  /* isInfallible. False in setters. */
22480
  false,  /* isMovable.  Not relevant for setters. */
22481
  false, /* isEliminatable.  Not relevant for setters. */
22482
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22483
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22484
  false,  /* isTypedMethod.  Only relevant for methods. */
22485
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22486
};
22487
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22488
static_assert(0 < 1, "There is no slot for us");
22489
static const JSJitInfo minHeight_setterinfo = {
22490
  { (JSJitGetterOp)set_minHeight },
22491
  { prototypes::id::CSS2Properties },
22492
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22493
  JSJitInfo::Setter,
22494
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22495
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22496
  false,  /* isInfallible. False in setters. */
22497
  false,  /* isMovable.  Not relevant for setters. */
22498
  false, /* isEliminatable.  Not relevant for setters. */
22499
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22500
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22501
  false,  /* isTypedMethod.  Only relevant for methods. */
22502
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22503
};
22504
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22505
static_assert(0 < 1, "There is no slot for us");
22506
22507
MOZ_CAN_RUN_SCRIPT static bool
22508
get_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22509
0
{
22510
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.minInlineSize", DOM, cx);
22511
0
22512
0
  FastErrorResult rv;
22513
0
  DOMString result;
22514
0
  self->GetMinInlineSize(result, rv);
22515
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22516
0
    return false;
22517
0
  }
22518
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22519
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22520
0
    return false;
22521
0
  }
22522
0
  return true;
22523
0
}
22524
22525
MOZ_CAN_RUN_SCRIPT static bool
22526
set_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22527
0
{
22528
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.minInlineSize", DOM, cx);
22529
0
22530
0
  binding_detail::FakeString arg0;
22531
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22532
0
    return false;
22533
0
  }
22534
0
  Maybe<AutoCEReaction> ceReaction;
22535
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22536
0
    DocGroup* docGroup = self->GetDocGroup();
22537
0
    if (docGroup) {
22538
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22539
0
    }
22540
0
  }
22541
0
  FastErrorResult rv;
22542
0
  nsIPrincipal* subjectPrincipal;
22543
0
  {
22544
0
    JS::Realm* realm = js::GetContextRealm(cx);
22545
0
    MOZ_ASSERT(realm);
22546
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22547
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22548
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22549
0
      principal = nullptr;
22550
0
    }
22551
0
22552
0
    subjectPrincipal = principal;
22553
0
  }
22554
0
  self->SetMinInlineSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22555
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22556
0
    return false;
22557
0
  }
22558
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22559
0
22560
0
  return true;
22561
0
}
22562
22563
static const JSJitInfo minInlineSize_getterinfo = {
22564
  { (JSJitGetterOp)get_minInlineSize },
22565
  { prototypes::id::CSS2Properties },
22566
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22567
  JSJitInfo::Getter,
22568
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22569
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22570
  false,  /* isInfallible. False in setters. */
22571
  false,  /* isMovable.  Not relevant for setters. */
22572
  false, /* isEliminatable.  Not relevant for setters. */
22573
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22574
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22575
  false,  /* isTypedMethod.  Only relevant for methods. */
22576
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22577
};
22578
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22579
static_assert(0 < 1, "There is no slot for us");
22580
static const JSJitInfo minInlineSize_setterinfo = {
22581
  { (JSJitGetterOp)set_minInlineSize },
22582
  { prototypes::id::CSS2Properties },
22583
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22584
  JSJitInfo::Setter,
22585
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22586
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22587
  false,  /* isInfallible. False in setters. */
22588
  false,  /* isMovable.  Not relevant for setters. */
22589
  false, /* isEliminatable.  Not relevant for setters. */
22590
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22591
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22592
  false,  /* isTypedMethod.  Only relevant for methods. */
22593
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22594
};
22595
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22596
static_assert(0 < 1, "There is no slot for us");
22597
22598
MOZ_CAN_RUN_SCRIPT static bool
22599
get_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22600
0
{
22601
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.minWidth", DOM, cx);
22602
0
22603
0
  FastErrorResult rv;
22604
0
  DOMString result;
22605
0
  self->GetMinWidth(result, rv);
22606
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22607
0
    return false;
22608
0
  }
22609
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22610
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22611
0
    return false;
22612
0
  }
22613
0
  return true;
22614
0
}
22615
22616
MOZ_CAN_RUN_SCRIPT static bool
22617
set_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22618
0
{
22619
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.minWidth", DOM, cx);
22620
0
22621
0
  binding_detail::FakeString arg0;
22622
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22623
0
    return false;
22624
0
  }
22625
0
  Maybe<AutoCEReaction> ceReaction;
22626
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22627
0
    DocGroup* docGroup = self->GetDocGroup();
22628
0
    if (docGroup) {
22629
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22630
0
    }
22631
0
  }
22632
0
  FastErrorResult rv;
22633
0
  nsIPrincipal* subjectPrincipal;
22634
0
  {
22635
0
    JS::Realm* realm = js::GetContextRealm(cx);
22636
0
    MOZ_ASSERT(realm);
22637
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22638
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22639
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22640
0
      principal = nullptr;
22641
0
    }
22642
0
22643
0
    subjectPrincipal = principal;
22644
0
  }
22645
0
  self->SetMinWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22646
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22647
0
    return false;
22648
0
  }
22649
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22650
0
22651
0
  return true;
22652
0
}
22653
22654
static const JSJitInfo minWidth_getterinfo = {
22655
  { (JSJitGetterOp)get_minWidth },
22656
  { prototypes::id::CSS2Properties },
22657
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22658
  JSJitInfo::Getter,
22659
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22660
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22661
  false,  /* isInfallible. False in setters. */
22662
  false,  /* isMovable.  Not relevant for setters. */
22663
  false, /* isEliminatable.  Not relevant for setters. */
22664
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22665
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22666
  false,  /* isTypedMethod.  Only relevant for methods. */
22667
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22668
};
22669
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22670
static_assert(0 < 1, "There is no slot for us");
22671
static const JSJitInfo minWidth_setterinfo = {
22672
  { (JSJitGetterOp)set_minWidth },
22673
  { prototypes::id::CSS2Properties },
22674
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22675
  JSJitInfo::Setter,
22676
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22677
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22678
  false,  /* isInfallible. False in setters. */
22679
  false,  /* isMovable.  Not relevant for setters. */
22680
  false, /* isEliminatable.  Not relevant for setters. */
22681
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22682
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22683
  false,  /* isTypedMethod.  Only relevant for methods. */
22684
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22685
};
22686
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22687
static_assert(0 < 1, "There is no slot for us");
22688
22689
MOZ_CAN_RUN_SCRIPT static bool
22690
get_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22691
0
{
22692
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.width", DOM, cx);
22693
0
22694
0
  FastErrorResult rv;
22695
0
  DOMString result;
22696
0
  self->GetWidth(result, rv);
22697
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22698
0
    return false;
22699
0
  }
22700
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22701
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22702
0
    return false;
22703
0
  }
22704
0
  return true;
22705
0
}
22706
22707
MOZ_CAN_RUN_SCRIPT static bool
22708
set_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22709
0
{
22710
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.width", DOM, cx);
22711
0
22712
0
  binding_detail::FakeString arg0;
22713
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22714
0
    return false;
22715
0
  }
22716
0
  Maybe<AutoCEReaction> ceReaction;
22717
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22718
0
    DocGroup* docGroup = self->GetDocGroup();
22719
0
    if (docGroup) {
22720
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22721
0
    }
22722
0
  }
22723
0
  FastErrorResult rv;
22724
0
  nsIPrincipal* subjectPrincipal;
22725
0
  {
22726
0
    JS::Realm* realm = js::GetContextRealm(cx);
22727
0
    MOZ_ASSERT(realm);
22728
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22729
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22730
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22731
0
      principal = nullptr;
22732
0
    }
22733
0
22734
0
    subjectPrincipal = principal;
22735
0
  }
22736
0
  self->SetWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22737
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22738
0
    return false;
22739
0
  }
22740
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22741
0
22742
0
  return true;
22743
0
}
22744
22745
static const JSJitInfo width_getterinfo = {
22746
  { (JSJitGetterOp)get_width },
22747
  { prototypes::id::CSS2Properties },
22748
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22749
  JSJitInfo::Getter,
22750
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22751
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22752
  false,  /* isInfallible. False in setters. */
22753
  false,  /* isMovable.  Not relevant for setters. */
22754
  false, /* isEliminatable.  Not relevant for setters. */
22755
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22756
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22757
  false,  /* isTypedMethod.  Only relevant for methods. */
22758
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22759
};
22760
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22761
static_assert(0 < 1, "There is no slot for us");
22762
static const JSJitInfo width_setterinfo = {
22763
  { (JSJitGetterOp)set_width },
22764
  { prototypes::id::CSS2Properties },
22765
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22766
  JSJitInfo::Setter,
22767
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22768
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22769
  false,  /* isInfallible. False in setters. */
22770
  false,  /* isMovable.  Not relevant for setters. */
22771
  false, /* isEliminatable.  Not relevant for setters. */
22772
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22773
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22774
  false,  /* isTypedMethod.  Only relevant for methods. */
22775
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22776
};
22777
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22778
static_assert(0 < 1, "There is no slot for us");
22779
22780
MOZ_CAN_RUN_SCRIPT static bool
22781
get_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22782
0
{
22783
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottomLeftRadius", DOM, cx);
22784
0
22785
0
  FastErrorResult rv;
22786
0
  DOMString result;
22787
0
  self->GetBorderBottomLeftRadius(result, rv);
22788
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22789
0
    return false;
22790
0
  }
22791
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22792
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22793
0
    return false;
22794
0
  }
22795
0
  return true;
22796
0
}
22797
22798
MOZ_CAN_RUN_SCRIPT static bool
22799
set_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22800
0
{
22801
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottomLeftRadius", DOM, cx);
22802
0
22803
0
  binding_detail::FakeString arg0;
22804
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22805
0
    return false;
22806
0
  }
22807
0
  Maybe<AutoCEReaction> ceReaction;
22808
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22809
0
    DocGroup* docGroup = self->GetDocGroup();
22810
0
    if (docGroup) {
22811
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22812
0
    }
22813
0
  }
22814
0
  FastErrorResult rv;
22815
0
  nsIPrincipal* subjectPrincipal;
22816
0
  {
22817
0
    JS::Realm* realm = js::GetContextRealm(cx);
22818
0
    MOZ_ASSERT(realm);
22819
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22820
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22821
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22822
0
      principal = nullptr;
22823
0
    }
22824
0
22825
0
    subjectPrincipal = principal;
22826
0
  }
22827
0
  self->SetBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22828
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22829
0
    return false;
22830
0
  }
22831
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22832
0
22833
0
  return true;
22834
0
}
22835
22836
static const JSJitInfo borderBottomLeftRadius_getterinfo = {
22837
  { (JSJitGetterOp)get_borderBottomLeftRadius },
22838
  { prototypes::id::CSS2Properties },
22839
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22840
  JSJitInfo::Getter,
22841
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22842
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22843
  false,  /* isInfallible. False in setters. */
22844
  false,  /* isMovable.  Not relevant for setters. */
22845
  false, /* isEliminatable.  Not relevant for setters. */
22846
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22847
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22848
  false,  /* isTypedMethod.  Only relevant for methods. */
22849
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22850
};
22851
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22852
static_assert(0 < 1, "There is no slot for us");
22853
static const JSJitInfo borderBottomLeftRadius_setterinfo = {
22854
  { (JSJitGetterOp)set_borderBottomLeftRadius },
22855
  { prototypes::id::CSS2Properties },
22856
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22857
  JSJitInfo::Setter,
22858
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22859
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22860
  false,  /* isInfallible. False in setters. */
22861
  false,  /* isMovable.  Not relevant for setters. */
22862
  false, /* isEliminatable.  Not relevant for setters. */
22863
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22864
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22865
  false,  /* isTypedMethod.  Only relevant for methods. */
22866
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22867
};
22868
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22869
static_assert(0 < 1, "There is no slot for us");
22870
22871
MOZ_CAN_RUN_SCRIPT static bool
22872
get_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22873
0
{
22874
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottomRightRadius", DOM, cx);
22875
0
22876
0
  FastErrorResult rv;
22877
0
  DOMString result;
22878
0
  self->GetBorderBottomRightRadius(result, rv);
22879
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22880
0
    return false;
22881
0
  }
22882
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22883
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22884
0
    return false;
22885
0
  }
22886
0
  return true;
22887
0
}
22888
22889
MOZ_CAN_RUN_SCRIPT static bool
22890
set_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22891
0
{
22892
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottomRightRadius", DOM, cx);
22893
0
22894
0
  binding_detail::FakeString arg0;
22895
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22896
0
    return false;
22897
0
  }
22898
0
  Maybe<AutoCEReaction> ceReaction;
22899
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22900
0
    DocGroup* docGroup = self->GetDocGroup();
22901
0
    if (docGroup) {
22902
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22903
0
    }
22904
0
  }
22905
0
  FastErrorResult rv;
22906
0
  nsIPrincipal* subjectPrincipal;
22907
0
  {
22908
0
    JS::Realm* realm = js::GetContextRealm(cx);
22909
0
    MOZ_ASSERT(realm);
22910
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
22911
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
22912
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
22913
0
      principal = nullptr;
22914
0
    }
22915
0
22916
0
    subjectPrincipal = principal;
22917
0
  }
22918
0
  self->SetBorderBottomRightRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
22919
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22920
0
    return false;
22921
0
  }
22922
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22923
0
22924
0
  return true;
22925
0
}
22926
22927
static const JSJitInfo borderBottomRightRadius_getterinfo = {
22928
  { (JSJitGetterOp)get_borderBottomRightRadius },
22929
  { prototypes::id::CSS2Properties },
22930
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22931
  JSJitInfo::Getter,
22932
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22933
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
22934
  false,  /* isInfallible. False in setters. */
22935
  false,  /* isMovable.  Not relevant for setters. */
22936
  false, /* isEliminatable.  Not relevant for setters. */
22937
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22938
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22939
  false,  /* isTypedMethod.  Only relevant for methods. */
22940
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22941
};
22942
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22943
static_assert(0 < 1, "There is no slot for us");
22944
static const JSJitInfo borderBottomRightRadius_setterinfo = {
22945
  { (JSJitGetterOp)set_borderBottomRightRadius },
22946
  { prototypes::id::CSS2Properties },
22947
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
22948
  JSJitInfo::Setter,
22949
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
22950
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
22951
  false,  /* isInfallible. False in setters. */
22952
  false,  /* isMovable.  Not relevant for setters. */
22953
  false, /* isEliminatable.  Not relevant for setters. */
22954
  false, /* isAlwaysInSlot.  Only relevant for getters. */
22955
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
22956
  false,  /* isTypedMethod.  Only relevant for methods. */
22957
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
22958
};
22959
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
22960
static_assert(0 < 1, "There is no slot for us");
22961
22962
MOZ_CAN_RUN_SCRIPT static bool
22963
get_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
22964
0
{
22965
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTopLeftRadius", DOM, cx);
22966
0
22967
0
  FastErrorResult rv;
22968
0
  DOMString result;
22969
0
  self->GetBorderTopLeftRadius(result, rv);
22970
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
22971
0
    return false;
22972
0
  }
22973
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
22974
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
22975
0
    return false;
22976
0
  }
22977
0
  return true;
22978
0
}
22979
22980
MOZ_CAN_RUN_SCRIPT static bool
22981
set_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
22982
0
{
22983
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTopLeftRadius", DOM, cx);
22984
0
22985
0
  binding_detail::FakeString arg0;
22986
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
22987
0
    return false;
22988
0
  }
22989
0
  Maybe<AutoCEReaction> ceReaction;
22990
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
22991
0
    DocGroup* docGroup = self->GetDocGroup();
22992
0
    if (docGroup) {
22993
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
22994
0
    }
22995
0
  }
22996
0
  FastErrorResult rv;
22997
0
  nsIPrincipal* subjectPrincipal;
22998
0
  {
22999
0
    JS::Realm* realm = js::GetContextRealm(cx);
23000
0
    MOZ_ASSERT(realm);
23001
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23002
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23003
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23004
0
      principal = nullptr;
23005
0
    }
23006
0
23007
0
    subjectPrincipal = principal;
23008
0
  }
23009
0
  self->SetBorderTopLeftRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23010
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23011
0
    return false;
23012
0
  }
23013
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23014
0
23015
0
  return true;
23016
0
}
23017
23018
static const JSJitInfo borderTopLeftRadius_getterinfo = {
23019
  { (JSJitGetterOp)get_borderTopLeftRadius },
23020
  { prototypes::id::CSS2Properties },
23021
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23022
  JSJitInfo::Getter,
23023
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23024
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23025
  false,  /* isInfallible. False in setters. */
23026
  false,  /* isMovable.  Not relevant for setters. */
23027
  false, /* isEliminatable.  Not relevant for setters. */
23028
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23029
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23030
  false,  /* isTypedMethod.  Only relevant for methods. */
23031
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23032
};
23033
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23034
static_assert(0 < 1, "There is no slot for us");
23035
static const JSJitInfo borderTopLeftRadius_setterinfo = {
23036
  { (JSJitGetterOp)set_borderTopLeftRadius },
23037
  { prototypes::id::CSS2Properties },
23038
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23039
  JSJitInfo::Setter,
23040
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23041
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23042
  false,  /* isInfallible. False in setters. */
23043
  false,  /* isMovable.  Not relevant for setters. */
23044
  false, /* isEliminatable.  Not relevant for setters. */
23045
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23046
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23047
  false,  /* isTypedMethod.  Only relevant for methods. */
23048
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23049
};
23050
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23051
static_assert(0 < 1, "There is no slot for us");
23052
23053
MOZ_CAN_RUN_SCRIPT static bool
23054
get_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23055
0
{
23056
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTopRightRadius", DOM, cx);
23057
0
23058
0
  FastErrorResult rv;
23059
0
  DOMString result;
23060
0
  self->GetBorderTopRightRadius(result, rv);
23061
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23062
0
    return false;
23063
0
  }
23064
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23065
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23066
0
    return false;
23067
0
  }
23068
0
  return true;
23069
0
}
23070
23071
MOZ_CAN_RUN_SCRIPT static bool
23072
set_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23073
0
{
23074
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTopRightRadius", DOM, cx);
23075
0
23076
0
  binding_detail::FakeString arg0;
23077
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23078
0
    return false;
23079
0
  }
23080
0
  Maybe<AutoCEReaction> ceReaction;
23081
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23082
0
    DocGroup* docGroup = self->GetDocGroup();
23083
0
    if (docGroup) {
23084
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23085
0
    }
23086
0
  }
23087
0
  FastErrorResult rv;
23088
0
  nsIPrincipal* subjectPrincipal;
23089
0
  {
23090
0
    JS::Realm* realm = js::GetContextRealm(cx);
23091
0
    MOZ_ASSERT(realm);
23092
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23093
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23094
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23095
0
      principal = nullptr;
23096
0
    }
23097
0
23098
0
    subjectPrincipal = principal;
23099
0
  }
23100
0
  self->SetBorderTopRightRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23101
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23102
0
    return false;
23103
0
  }
23104
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23105
0
23106
0
  return true;
23107
0
}
23108
23109
static const JSJitInfo borderTopRightRadius_getterinfo = {
23110
  { (JSJitGetterOp)get_borderTopRightRadius },
23111
  { prototypes::id::CSS2Properties },
23112
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23113
  JSJitInfo::Getter,
23114
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23115
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23116
  false,  /* isInfallible. False in setters. */
23117
  false,  /* isMovable.  Not relevant for setters. */
23118
  false, /* isEliminatable.  Not relevant for setters. */
23119
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23120
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23121
  false,  /* isTypedMethod.  Only relevant for methods. */
23122
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23123
};
23124
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23125
static_assert(0 < 1, "There is no slot for us");
23126
static const JSJitInfo borderTopRightRadius_setterinfo = {
23127
  { (JSJitGetterOp)set_borderTopRightRadius },
23128
  { prototypes::id::CSS2Properties },
23129
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23130
  JSJitInfo::Setter,
23131
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23132
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23133
  false,  /* isInfallible. False in setters. */
23134
  false,  /* isMovable.  Not relevant for setters. */
23135
  false, /* isEliminatable.  Not relevant for setters. */
23136
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23137
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23138
  false,  /* isTypedMethod.  Only relevant for methods. */
23139
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23140
};
23141
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23142
static_assert(0 < 1, "There is no slot for us");
23143
23144
MOZ_CAN_RUN_SCRIPT static bool
23145
get_MozOutlineRadiusBottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23146
0
{
23147
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOutlineRadiusBottomleft", DOM, cx);
23148
0
23149
0
  FastErrorResult rv;
23150
0
  DOMString result;
23151
0
  self->GetMozOutlineRadiusBottomleft(result, rv);
23152
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23153
0
    return false;
23154
0
  }
23155
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23156
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23157
0
    return false;
23158
0
  }
23159
0
  return true;
23160
0
}
23161
23162
MOZ_CAN_RUN_SCRIPT static bool
23163
set_MozOutlineRadiusBottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23164
0
{
23165
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOutlineRadiusBottomleft", DOM, cx);
23166
0
23167
0
  binding_detail::FakeString arg0;
23168
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23169
0
    return false;
23170
0
  }
23171
0
  Maybe<AutoCEReaction> ceReaction;
23172
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23173
0
    DocGroup* docGroup = self->GetDocGroup();
23174
0
    if (docGroup) {
23175
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23176
0
    }
23177
0
  }
23178
0
  FastErrorResult rv;
23179
0
  nsIPrincipal* subjectPrincipal;
23180
0
  {
23181
0
    JS::Realm* realm = js::GetContextRealm(cx);
23182
0
    MOZ_ASSERT(realm);
23183
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23184
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23185
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23186
0
      principal = nullptr;
23187
0
    }
23188
0
23189
0
    subjectPrincipal = principal;
23190
0
  }
23191
0
  self->SetMozOutlineRadiusBottomleft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23192
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23193
0
    return false;
23194
0
  }
23195
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23196
0
23197
0
  return true;
23198
0
}
23199
23200
static const JSJitInfo MozOutlineRadiusBottomleft_getterinfo = {
23201
  { (JSJitGetterOp)get_MozOutlineRadiusBottomleft },
23202
  { prototypes::id::CSS2Properties },
23203
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23204
  JSJitInfo::Getter,
23205
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23206
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23207
  false,  /* isInfallible. False in setters. */
23208
  false,  /* isMovable.  Not relevant for setters. */
23209
  false, /* isEliminatable.  Not relevant for setters. */
23210
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23211
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23212
  false,  /* isTypedMethod.  Only relevant for methods. */
23213
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23214
};
23215
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23216
static_assert(0 < 1, "There is no slot for us");
23217
static const JSJitInfo MozOutlineRadiusBottomleft_setterinfo = {
23218
  { (JSJitGetterOp)set_MozOutlineRadiusBottomleft },
23219
  { prototypes::id::CSS2Properties },
23220
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23221
  JSJitInfo::Setter,
23222
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23223
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23224
  false,  /* isInfallible. False in setters. */
23225
  false,  /* isMovable.  Not relevant for setters. */
23226
  false, /* isEliminatable.  Not relevant for setters. */
23227
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23228
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23229
  false,  /* isTypedMethod.  Only relevant for methods. */
23230
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23231
};
23232
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23233
static_assert(0 < 1, "There is no slot for us");
23234
23235
MOZ_CAN_RUN_SCRIPT static bool
23236
get_MozOutlineRadiusBottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23237
0
{
23238
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOutlineRadiusBottomright", DOM, cx);
23239
0
23240
0
  FastErrorResult rv;
23241
0
  DOMString result;
23242
0
  self->GetMozOutlineRadiusBottomright(result, rv);
23243
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23244
0
    return false;
23245
0
  }
23246
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23247
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23248
0
    return false;
23249
0
  }
23250
0
  return true;
23251
0
}
23252
23253
MOZ_CAN_RUN_SCRIPT static bool
23254
set_MozOutlineRadiusBottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23255
0
{
23256
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOutlineRadiusBottomright", DOM, cx);
23257
0
23258
0
  binding_detail::FakeString arg0;
23259
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23260
0
    return false;
23261
0
  }
23262
0
  Maybe<AutoCEReaction> ceReaction;
23263
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23264
0
    DocGroup* docGroup = self->GetDocGroup();
23265
0
    if (docGroup) {
23266
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23267
0
    }
23268
0
  }
23269
0
  FastErrorResult rv;
23270
0
  nsIPrincipal* subjectPrincipal;
23271
0
  {
23272
0
    JS::Realm* realm = js::GetContextRealm(cx);
23273
0
    MOZ_ASSERT(realm);
23274
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23275
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23276
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23277
0
      principal = nullptr;
23278
0
    }
23279
0
23280
0
    subjectPrincipal = principal;
23281
0
  }
23282
0
  self->SetMozOutlineRadiusBottomright(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23283
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23284
0
    return false;
23285
0
  }
23286
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23287
0
23288
0
  return true;
23289
0
}
23290
23291
static const JSJitInfo MozOutlineRadiusBottomright_getterinfo = {
23292
  { (JSJitGetterOp)get_MozOutlineRadiusBottomright },
23293
  { prototypes::id::CSS2Properties },
23294
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23295
  JSJitInfo::Getter,
23296
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23297
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23298
  false,  /* isInfallible. False in setters. */
23299
  false,  /* isMovable.  Not relevant for setters. */
23300
  false, /* isEliminatable.  Not relevant for setters. */
23301
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23302
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23303
  false,  /* isTypedMethod.  Only relevant for methods. */
23304
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23305
};
23306
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23307
static_assert(0 < 1, "There is no slot for us");
23308
static const JSJitInfo MozOutlineRadiusBottomright_setterinfo = {
23309
  { (JSJitGetterOp)set_MozOutlineRadiusBottomright },
23310
  { prototypes::id::CSS2Properties },
23311
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23312
  JSJitInfo::Setter,
23313
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23314
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23315
  false,  /* isInfallible. False in setters. */
23316
  false,  /* isMovable.  Not relevant for setters. */
23317
  false, /* isEliminatable.  Not relevant for setters. */
23318
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23319
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23320
  false,  /* isTypedMethod.  Only relevant for methods. */
23321
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23322
};
23323
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23324
static_assert(0 < 1, "There is no slot for us");
23325
23326
MOZ_CAN_RUN_SCRIPT static bool
23327
get_MozOutlineRadiusTopleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23328
0
{
23329
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOutlineRadiusTopleft", DOM, cx);
23330
0
23331
0
  FastErrorResult rv;
23332
0
  DOMString result;
23333
0
  self->GetMozOutlineRadiusTopleft(result, rv);
23334
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23335
0
    return false;
23336
0
  }
23337
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23338
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23339
0
    return false;
23340
0
  }
23341
0
  return true;
23342
0
}
23343
23344
MOZ_CAN_RUN_SCRIPT static bool
23345
set_MozOutlineRadiusTopleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23346
0
{
23347
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOutlineRadiusTopleft", DOM, cx);
23348
0
23349
0
  binding_detail::FakeString arg0;
23350
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23351
0
    return false;
23352
0
  }
23353
0
  Maybe<AutoCEReaction> ceReaction;
23354
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23355
0
    DocGroup* docGroup = self->GetDocGroup();
23356
0
    if (docGroup) {
23357
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23358
0
    }
23359
0
  }
23360
0
  FastErrorResult rv;
23361
0
  nsIPrincipal* subjectPrincipal;
23362
0
  {
23363
0
    JS::Realm* realm = js::GetContextRealm(cx);
23364
0
    MOZ_ASSERT(realm);
23365
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23366
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23367
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23368
0
      principal = nullptr;
23369
0
    }
23370
0
23371
0
    subjectPrincipal = principal;
23372
0
  }
23373
0
  self->SetMozOutlineRadiusTopleft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23374
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23375
0
    return false;
23376
0
  }
23377
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23378
0
23379
0
  return true;
23380
0
}
23381
23382
static const JSJitInfo MozOutlineRadiusTopleft_getterinfo = {
23383
  { (JSJitGetterOp)get_MozOutlineRadiusTopleft },
23384
  { prototypes::id::CSS2Properties },
23385
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23386
  JSJitInfo::Getter,
23387
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23388
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23389
  false,  /* isInfallible. False in setters. */
23390
  false,  /* isMovable.  Not relevant for setters. */
23391
  false, /* isEliminatable.  Not relevant for setters. */
23392
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23393
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23394
  false,  /* isTypedMethod.  Only relevant for methods. */
23395
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23396
};
23397
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23398
static_assert(0 < 1, "There is no slot for us");
23399
static const JSJitInfo MozOutlineRadiusTopleft_setterinfo = {
23400
  { (JSJitGetterOp)set_MozOutlineRadiusTopleft },
23401
  { prototypes::id::CSS2Properties },
23402
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23403
  JSJitInfo::Setter,
23404
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23405
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23406
  false,  /* isInfallible. False in setters. */
23407
  false,  /* isMovable.  Not relevant for setters. */
23408
  false, /* isEliminatable.  Not relevant for setters. */
23409
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23410
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23411
  false,  /* isTypedMethod.  Only relevant for methods. */
23412
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23413
};
23414
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23415
static_assert(0 < 1, "There is no slot for us");
23416
23417
MOZ_CAN_RUN_SCRIPT static bool
23418
get_MozOutlineRadiusTopright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23419
0
{
23420
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOutlineRadiusTopright", DOM, cx);
23421
0
23422
0
  FastErrorResult rv;
23423
0
  DOMString result;
23424
0
  self->GetMozOutlineRadiusTopright(result, rv);
23425
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23426
0
    return false;
23427
0
  }
23428
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23429
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23430
0
    return false;
23431
0
  }
23432
0
  return true;
23433
0
}
23434
23435
MOZ_CAN_RUN_SCRIPT static bool
23436
set_MozOutlineRadiusTopright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23437
0
{
23438
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOutlineRadiusTopright", DOM, cx);
23439
0
23440
0
  binding_detail::FakeString arg0;
23441
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23442
0
    return false;
23443
0
  }
23444
0
  Maybe<AutoCEReaction> ceReaction;
23445
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23446
0
    DocGroup* docGroup = self->GetDocGroup();
23447
0
    if (docGroup) {
23448
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23449
0
    }
23450
0
  }
23451
0
  FastErrorResult rv;
23452
0
  nsIPrincipal* subjectPrincipal;
23453
0
  {
23454
0
    JS::Realm* realm = js::GetContextRealm(cx);
23455
0
    MOZ_ASSERT(realm);
23456
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23457
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23458
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23459
0
      principal = nullptr;
23460
0
    }
23461
0
23462
0
    subjectPrincipal = principal;
23463
0
  }
23464
0
  self->SetMozOutlineRadiusTopright(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23465
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23466
0
    return false;
23467
0
  }
23468
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23469
0
23470
0
  return true;
23471
0
}
23472
23473
static const JSJitInfo MozOutlineRadiusTopright_getterinfo = {
23474
  { (JSJitGetterOp)get_MozOutlineRadiusTopright },
23475
  { prototypes::id::CSS2Properties },
23476
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23477
  JSJitInfo::Getter,
23478
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23479
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23480
  false,  /* isInfallible. False in setters. */
23481
  false,  /* isMovable.  Not relevant for setters. */
23482
  false, /* isEliminatable.  Not relevant for setters. */
23483
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23484
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23485
  false,  /* isTypedMethod.  Only relevant for methods. */
23486
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23487
};
23488
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23489
static_assert(0 < 1, "There is no slot for us");
23490
static const JSJitInfo MozOutlineRadiusTopright_setterinfo = {
23491
  { (JSJitGetterOp)set_MozOutlineRadiusTopright },
23492
  { prototypes::id::CSS2Properties },
23493
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23494
  JSJitInfo::Setter,
23495
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23496
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23497
  false,  /* isInfallible. False in setters. */
23498
  false,  /* isMovable.  Not relevant for setters. */
23499
  false, /* isEliminatable.  Not relevant for setters. */
23500
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23501
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23502
  false,  /* isTypedMethod.  Only relevant for methods. */
23503
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23504
};
23505
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23506
static_assert(0 < 1, "There is no slot for us");
23507
23508
MOZ_CAN_RUN_SCRIPT static bool
23509
get_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23510
0
{
23511
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingBlockEnd", DOM, cx);
23512
0
23513
0
  FastErrorResult rv;
23514
0
  DOMString result;
23515
0
  self->GetPaddingBlockEnd(result, rv);
23516
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23517
0
    return false;
23518
0
  }
23519
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23520
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23521
0
    return false;
23522
0
  }
23523
0
  return true;
23524
0
}
23525
23526
MOZ_CAN_RUN_SCRIPT static bool
23527
set_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23528
0
{
23529
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingBlockEnd", DOM, cx);
23530
0
23531
0
  binding_detail::FakeString arg0;
23532
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23533
0
    return false;
23534
0
  }
23535
0
  Maybe<AutoCEReaction> ceReaction;
23536
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23537
0
    DocGroup* docGroup = self->GetDocGroup();
23538
0
    if (docGroup) {
23539
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23540
0
    }
23541
0
  }
23542
0
  FastErrorResult rv;
23543
0
  nsIPrincipal* subjectPrincipal;
23544
0
  {
23545
0
    JS::Realm* realm = js::GetContextRealm(cx);
23546
0
    MOZ_ASSERT(realm);
23547
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23548
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23549
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23550
0
      principal = nullptr;
23551
0
    }
23552
0
23553
0
    subjectPrincipal = principal;
23554
0
  }
23555
0
  self->SetPaddingBlockEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23556
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23557
0
    return false;
23558
0
  }
23559
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23560
0
23561
0
  return true;
23562
0
}
23563
23564
static const JSJitInfo paddingBlockEnd_getterinfo = {
23565
  { (JSJitGetterOp)get_paddingBlockEnd },
23566
  { prototypes::id::CSS2Properties },
23567
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23568
  JSJitInfo::Getter,
23569
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23570
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23571
  false,  /* isInfallible. False in setters. */
23572
  false,  /* isMovable.  Not relevant for setters. */
23573
  false, /* isEliminatable.  Not relevant for setters. */
23574
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23575
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23576
  false,  /* isTypedMethod.  Only relevant for methods. */
23577
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23578
};
23579
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23580
static_assert(0 < 1, "There is no slot for us");
23581
static const JSJitInfo paddingBlockEnd_setterinfo = {
23582
  { (JSJitGetterOp)set_paddingBlockEnd },
23583
  { prototypes::id::CSS2Properties },
23584
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23585
  JSJitInfo::Setter,
23586
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23587
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23588
  false,  /* isInfallible. False in setters. */
23589
  false,  /* isMovable.  Not relevant for setters. */
23590
  false, /* isEliminatable.  Not relevant for setters. */
23591
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23592
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23593
  false,  /* isTypedMethod.  Only relevant for methods. */
23594
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23595
};
23596
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23597
static_assert(0 < 1, "There is no slot for us");
23598
23599
MOZ_CAN_RUN_SCRIPT static bool
23600
get_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23601
0
{
23602
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingBlockStart", DOM, cx);
23603
0
23604
0
  FastErrorResult rv;
23605
0
  DOMString result;
23606
0
  self->GetPaddingBlockStart(result, rv);
23607
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23608
0
    return false;
23609
0
  }
23610
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23611
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23612
0
    return false;
23613
0
  }
23614
0
  return true;
23615
0
}
23616
23617
MOZ_CAN_RUN_SCRIPT static bool
23618
set_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23619
0
{
23620
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingBlockStart", DOM, cx);
23621
0
23622
0
  binding_detail::FakeString arg0;
23623
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23624
0
    return false;
23625
0
  }
23626
0
  Maybe<AutoCEReaction> ceReaction;
23627
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23628
0
    DocGroup* docGroup = self->GetDocGroup();
23629
0
    if (docGroup) {
23630
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23631
0
    }
23632
0
  }
23633
0
  FastErrorResult rv;
23634
0
  nsIPrincipal* subjectPrincipal;
23635
0
  {
23636
0
    JS::Realm* realm = js::GetContextRealm(cx);
23637
0
    MOZ_ASSERT(realm);
23638
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23639
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23640
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23641
0
      principal = nullptr;
23642
0
    }
23643
0
23644
0
    subjectPrincipal = principal;
23645
0
  }
23646
0
  self->SetPaddingBlockStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23647
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23648
0
    return false;
23649
0
  }
23650
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23651
0
23652
0
  return true;
23653
0
}
23654
23655
static const JSJitInfo paddingBlockStart_getterinfo = {
23656
  { (JSJitGetterOp)get_paddingBlockStart },
23657
  { prototypes::id::CSS2Properties },
23658
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23659
  JSJitInfo::Getter,
23660
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23661
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23662
  false,  /* isInfallible. False in setters. */
23663
  false,  /* isMovable.  Not relevant for setters. */
23664
  false, /* isEliminatable.  Not relevant for setters. */
23665
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23666
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23667
  false,  /* isTypedMethod.  Only relevant for methods. */
23668
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23669
};
23670
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23671
static_assert(0 < 1, "There is no slot for us");
23672
static const JSJitInfo paddingBlockStart_setterinfo = {
23673
  { (JSJitGetterOp)set_paddingBlockStart },
23674
  { prototypes::id::CSS2Properties },
23675
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23676
  JSJitInfo::Setter,
23677
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23678
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23679
  false,  /* isInfallible. False in setters. */
23680
  false,  /* isMovable.  Not relevant for setters. */
23681
  false, /* isEliminatable.  Not relevant for setters. */
23682
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23683
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23684
  false,  /* isTypedMethod.  Only relevant for methods. */
23685
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23686
};
23687
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23688
static_assert(0 < 1, "There is no slot for us");
23689
23690
MOZ_CAN_RUN_SCRIPT static bool
23691
get_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23692
0
{
23693
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingBottom", DOM, cx);
23694
0
23695
0
  FastErrorResult rv;
23696
0
  DOMString result;
23697
0
  self->GetPaddingBottom(result, rv);
23698
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23699
0
    return false;
23700
0
  }
23701
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23702
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23703
0
    return false;
23704
0
  }
23705
0
  return true;
23706
0
}
23707
23708
MOZ_CAN_RUN_SCRIPT static bool
23709
set_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23710
0
{
23711
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingBottom", DOM, cx);
23712
0
23713
0
  binding_detail::FakeString arg0;
23714
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23715
0
    return false;
23716
0
  }
23717
0
  Maybe<AutoCEReaction> ceReaction;
23718
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23719
0
    DocGroup* docGroup = self->GetDocGroup();
23720
0
    if (docGroup) {
23721
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23722
0
    }
23723
0
  }
23724
0
  FastErrorResult rv;
23725
0
  nsIPrincipal* subjectPrincipal;
23726
0
  {
23727
0
    JS::Realm* realm = js::GetContextRealm(cx);
23728
0
    MOZ_ASSERT(realm);
23729
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23730
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23731
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23732
0
      principal = nullptr;
23733
0
    }
23734
0
23735
0
    subjectPrincipal = principal;
23736
0
  }
23737
0
  self->SetPaddingBottom(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23738
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23739
0
    return false;
23740
0
  }
23741
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23742
0
23743
0
  return true;
23744
0
}
23745
23746
static const JSJitInfo paddingBottom_getterinfo = {
23747
  { (JSJitGetterOp)get_paddingBottom },
23748
  { prototypes::id::CSS2Properties },
23749
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23750
  JSJitInfo::Getter,
23751
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23752
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23753
  false,  /* isInfallible. False in setters. */
23754
  false,  /* isMovable.  Not relevant for setters. */
23755
  false, /* isEliminatable.  Not relevant for setters. */
23756
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23757
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23758
  false,  /* isTypedMethod.  Only relevant for methods. */
23759
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23760
};
23761
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23762
static_assert(0 < 1, "There is no slot for us");
23763
static const JSJitInfo paddingBottom_setterinfo = {
23764
  { (JSJitGetterOp)set_paddingBottom },
23765
  { prototypes::id::CSS2Properties },
23766
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23767
  JSJitInfo::Setter,
23768
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23769
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23770
  false,  /* isInfallible. False in setters. */
23771
  false,  /* isMovable.  Not relevant for setters. */
23772
  false, /* isEliminatable.  Not relevant for setters. */
23773
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23774
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23775
  false,  /* isTypedMethod.  Only relevant for methods. */
23776
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23777
};
23778
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23779
static_assert(0 < 1, "There is no slot for us");
23780
23781
MOZ_CAN_RUN_SCRIPT static bool
23782
get_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23783
0
{
23784
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingInlineEnd", DOM, cx);
23785
0
23786
0
  FastErrorResult rv;
23787
0
  DOMString result;
23788
0
  self->GetPaddingInlineEnd(result, rv);
23789
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23790
0
    return false;
23791
0
  }
23792
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23793
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23794
0
    return false;
23795
0
  }
23796
0
  return true;
23797
0
}
23798
23799
MOZ_CAN_RUN_SCRIPT static bool
23800
set_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23801
0
{
23802
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingInlineEnd", DOM, cx);
23803
0
23804
0
  binding_detail::FakeString arg0;
23805
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23806
0
    return false;
23807
0
  }
23808
0
  Maybe<AutoCEReaction> ceReaction;
23809
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23810
0
    DocGroup* docGroup = self->GetDocGroup();
23811
0
    if (docGroup) {
23812
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23813
0
    }
23814
0
  }
23815
0
  FastErrorResult rv;
23816
0
  nsIPrincipal* subjectPrincipal;
23817
0
  {
23818
0
    JS::Realm* realm = js::GetContextRealm(cx);
23819
0
    MOZ_ASSERT(realm);
23820
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23821
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23822
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23823
0
      principal = nullptr;
23824
0
    }
23825
0
23826
0
    subjectPrincipal = principal;
23827
0
  }
23828
0
  self->SetPaddingInlineEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23829
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23830
0
    return false;
23831
0
  }
23832
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23833
0
23834
0
  return true;
23835
0
}
23836
23837
static const JSJitInfo paddingInlineEnd_getterinfo = {
23838
  { (JSJitGetterOp)get_paddingInlineEnd },
23839
  { prototypes::id::CSS2Properties },
23840
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23841
  JSJitInfo::Getter,
23842
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23843
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23844
  false,  /* isInfallible. False in setters. */
23845
  false,  /* isMovable.  Not relevant for setters. */
23846
  false, /* isEliminatable.  Not relevant for setters. */
23847
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23848
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23849
  false,  /* isTypedMethod.  Only relevant for methods. */
23850
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23851
};
23852
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23853
static_assert(0 < 1, "There is no slot for us");
23854
static const JSJitInfo paddingInlineEnd_setterinfo = {
23855
  { (JSJitGetterOp)set_paddingInlineEnd },
23856
  { prototypes::id::CSS2Properties },
23857
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23858
  JSJitInfo::Setter,
23859
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23860
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23861
  false,  /* isInfallible. False in setters. */
23862
  false,  /* isMovable.  Not relevant for setters. */
23863
  false, /* isEliminatable.  Not relevant for setters. */
23864
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23865
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23866
  false,  /* isTypedMethod.  Only relevant for methods. */
23867
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23868
};
23869
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23870
static_assert(0 < 1, "There is no slot for us");
23871
23872
MOZ_CAN_RUN_SCRIPT static bool
23873
get_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23874
0
{
23875
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingInlineStart", DOM, cx);
23876
0
23877
0
  FastErrorResult rv;
23878
0
  DOMString result;
23879
0
  self->GetPaddingInlineStart(result, rv);
23880
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23881
0
    return false;
23882
0
  }
23883
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23884
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23885
0
    return false;
23886
0
  }
23887
0
  return true;
23888
0
}
23889
23890
MOZ_CAN_RUN_SCRIPT static bool
23891
set_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23892
0
{
23893
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingInlineStart", DOM, cx);
23894
0
23895
0
  binding_detail::FakeString arg0;
23896
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23897
0
    return false;
23898
0
  }
23899
0
  Maybe<AutoCEReaction> ceReaction;
23900
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23901
0
    DocGroup* docGroup = self->GetDocGroup();
23902
0
    if (docGroup) {
23903
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23904
0
    }
23905
0
  }
23906
0
  FastErrorResult rv;
23907
0
  nsIPrincipal* subjectPrincipal;
23908
0
  {
23909
0
    JS::Realm* realm = js::GetContextRealm(cx);
23910
0
    MOZ_ASSERT(realm);
23911
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
23912
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
23913
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
23914
0
      principal = nullptr;
23915
0
    }
23916
0
23917
0
    subjectPrincipal = principal;
23918
0
  }
23919
0
  self->SetPaddingInlineStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
23920
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23921
0
    return false;
23922
0
  }
23923
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23924
0
23925
0
  return true;
23926
0
}
23927
23928
static const JSJitInfo paddingInlineStart_getterinfo = {
23929
  { (JSJitGetterOp)get_paddingInlineStart },
23930
  { prototypes::id::CSS2Properties },
23931
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23932
  JSJitInfo::Getter,
23933
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23934
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
23935
  false,  /* isInfallible. False in setters. */
23936
  false,  /* isMovable.  Not relevant for setters. */
23937
  false, /* isEliminatable.  Not relevant for setters. */
23938
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23939
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23940
  false,  /* isTypedMethod.  Only relevant for methods. */
23941
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23942
};
23943
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23944
static_assert(0 < 1, "There is no slot for us");
23945
static const JSJitInfo paddingInlineStart_setterinfo = {
23946
  { (JSJitGetterOp)set_paddingInlineStart },
23947
  { prototypes::id::CSS2Properties },
23948
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
23949
  JSJitInfo::Setter,
23950
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
23951
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
23952
  false,  /* isInfallible. False in setters. */
23953
  false,  /* isMovable.  Not relevant for setters. */
23954
  false, /* isEliminatable.  Not relevant for setters. */
23955
  false, /* isAlwaysInSlot.  Only relevant for getters. */
23956
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
23957
  false,  /* isTypedMethod.  Only relevant for methods. */
23958
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
23959
};
23960
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
23961
static_assert(0 < 1, "There is no slot for us");
23962
23963
MOZ_CAN_RUN_SCRIPT static bool
23964
get_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
23965
0
{
23966
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingLeft", DOM, cx);
23967
0
23968
0
  FastErrorResult rv;
23969
0
  DOMString result;
23970
0
  self->GetPaddingLeft(result, rv);
23971
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
23972
0
    return false;
23973
0
  }
23974
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
23975
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
23976
0
    return false;
23977
0
  }
23978
0
  return true;
23979
0
}
23980
23981
MOZ_CAN_RUN_SCRIPT static bool
23982
set_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
23983
0
{
23984
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingLeft", DOM, cx);
23985
0
23986
0
  binding_detail::FakeString arg0;
23987
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
23988
0
    return false;
23989
0
  }
23990
0
  Maybe<AutoCEReaction> ceReaction;
23991
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
23992
0
    DocGroup* docGroup = self->GetDocGroup();
23993
0
    if (docGroup) {
23994
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
23995
0
    }
23996
0
  }
23997
0
  FastErrorResult rv;
23998
0
  nsIPrincipal* subjectPrincipal;
23999
0
  {
24000
0
    JS::Realm* realm = js::GetContextRealm(cx);
24001
0
    MOZ_ASSERT(realm);
24002
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24003
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24004
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24005
0
      principal = nullptr;
24006
0
    }
24007
0
24008
0
    subjectPrincipal = principal;
24009
0
  }
24010
0
  self->SetPaddingLeft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24011
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24012
0
    return false;
24013
0
  }
24014
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24015
0
24016
0
  return true;
24017
0
}
24018
24019
static const JSJitInfo paddingLeft_getterinfo = {
24020
  { (JSJitGetterOp)get_paddingLeft },
24021
  { prototypes::id::CSS2Properties },
24022
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24023
  JSJitInfo::Getter,
24024
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24025
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24026
  false,  /* isInfallible. False in setters. */
24027
  false,  /* isMovable.  Not relevant for setters. */
24028
  false, /* isEliminatable.  Not relevant for setters. */
24029
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24030
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24031
  false,  /* isTypedMethod.  Only relevant for methods. */
24032
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24033
};
24034
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24035
static_assert(0 < 1, "There is no slot for us");
24036
static const JSJitInfo paddingLeft_setterinfo = {
24037
  { (JSJitGetterOp)set_paddingLeft },
24038
  { prototypes::id::CSS2Properties },
24039
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24040
  JSJitInfo::Setter,
24041
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24042
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24043
  false,  /* isInfallible. False in setters. */
24044
  false,  /* isMovable.  Not relevant for setters. */
24045
  false, /* isEliminatable.  Not relevant for setters. */
24046
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24047
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24048
  false,  /* isTypedMethod.  Only relevant for methods. */
24049
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24050
};
24051
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24052
static_assert(0 < 1, "There is no slot for us");
24053
24054
MOZ_CAN_RUN_SCRIPT static bool
24055
get_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24056
0
{
24057
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingRight", DOM, cx);
24058
0
24059
0
  FastErrorResult rv;
24060
0
  DOMString result;
24061
0
  self->GetPaddingRight(result, rv);
24062
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24063
0
    return false;
24064
0
  }
24065
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24066
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24067
0
    return false;
24068
0
  }
24069
0
  return true;
24070
0
}
24071
24072
MOZ_CAN_RUN_SCRIPT static bool
24073
set_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24074
0
{
24075
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingRight", DOM, cx);
24076
0
24077
0
  binding_detail::FakeString arg0;
24078
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24079
0
    return false;
24080
0
  }
24081
0
  Maybe<AutoCEReaction> ceReaction;
24082
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24083
0
    DocGroup* docGroup = self->GetDocGroup();
24084
0
    if (docGroup) {
24085
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24086
0
    }
24087
0
  }
24088
0
  FastErrorResult rv;
24089
0
  nsIPrincipal* subjectPrincipal;
24090
0
  {
24091
0
    JS::Realm* realm = js::GetContextRealm(cx);
24092
0
    MOZ_ASSERT(realm);
24093
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24094
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24095
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24096
0
      principal = nullptr;
24097
0
    }
24098
0
24099
0
    subjectPrincipal = principal;
24100
0
  }
24101
0
  self->SetPaddingRight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24102
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24103
0
    return false;
24104
0
  }
24105
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24106
0
24107
0
  return true;
24108
0
}
24109
24110
static const JSJitInfo paddingRight_getterinfo = {
24111
  { (JSJitGetterOp)get_paddingRight },
24112
  { prototypes::id::CSS2Properties },
24113
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24114
  JSJitInfo::Getter,
24115
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24116
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24117
  false,  /* isInfallible. False in setters. */
24118
  false,  /* isMovable.  Not relevant for setters. */
24119
  false, /* isEliminatable.  Not relevant for setters. */
24120
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24121
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24122
  false,  /* isTypedMethod.  Only relevant for methods. */
24123
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24124
};
24125
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24126
static_assert(0 < 1, "There is no slot for us");
24127
static const JSJitInfo paddingRight_setterinfo = {
24128
  { (JSJitGetterOp)set_paddingRight },
24129
  { prototypes::id::CSS2Properties },
24130
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24131
  JSJitInfo::Setter,
24132
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24133
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24134
  false,  /* isInfallible. False in setters. */
24135
  false,  /* isMovable.  Not relevant for setters. */
24136
  false, /* isEliminatable.  Not relevant for setters. */
24137
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24138
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24139
  false,  /* isTypedMethod.  Only relevant for methods. */
24140
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24141
};
24142
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24143
static_assert(0 < 1, "There is no slot for us");
24144
24145
MOZ_CAN_RUN_SCRIPT static bool
24146
get_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24147
0
{
24148
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.paddingTop", DOM, cx);
24149
0
24150
0
  FastErrorResult rv;
24151
0
  DOMString result;
24152
0
  self->GetPaddingTop(result, rv);
24153
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24154
0
    return false;
24155
0
  }
24156
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24157
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24158
0
    return false;
24159
0
  }
24160
0
  return true;
24161
0
}
24162
24163
MOZ_CAN_RUN_SCRIPT static bool
24164
set_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24165
0
{
24166
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.paddingTop", DOM, cx);
24167
0
24168
0
  binding_detail::FakeString arg0;
24169
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24170
0
    return false;
24171
0
  }
24172
0
  Maybe<AutoCEReaction> ceReaction;
24173
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24174
0
    DocGroup* docGroup = self->GetDocGroup();
24175
0
    if (docGroup) {
24176
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24177
0
    }
24178
0
  }
24179
0
  FastErrorResult rv;
24180
0
  nsIPrincipal* subjectPrincipal;
24181
0
  {
24182
0
    JS::Realm* realm = js::GetContextRealm(cx);
24183
0
    MOZ_ASSERT(realm);
24184
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24185
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24186
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24187
0
      principal = nullptr;
24188
0
    }
24189
0
24190
0
    subjectPrincipal = principal;
24191
0
  }
24192
0
  self->SetPaddingTop(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24193
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24194
0
    return false;
24195
0
  }
24196
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24197
0
24198
0
  return true;
24199
0
}
24200
24201
static const JSJitInfo paddingTop_getterinfo = {
24202
  { (JSJitGetterOp)get_paddingTop },
24203
  { prototypes::id::CSS2Properties },
24204
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24205
  JSJitInfo::Getter,
24206
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24207
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24208
  false,  /* isInfallible. False in setters. */
24209
  false,  /* isMovable.  Not relevant for setters. */
24210
  false, /* isEliminatable.  Not relevant for setters. */
24211
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24212
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24213
  false,  /* isTypedMethod.  Only relevant for methods. */
24214
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24215
};
24216
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24217
static_assert(0 < 1, "There is no slot for us");
24218
static const JSJitInfo paddingTop_setterinfo = {
24219
  { (JSJitGetterOp)set_paddingTop },
24220
  { prototypes::id::CSS2Properties },
24221
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24222
  JSJitInfo::Setter,
24223
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24224
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24225
  false,  /* isInfallible. False in setters. */
24226
  false,  /* isMovable.  Not relevant for setters. */
24227
  false, /* isEliminatable.  Not relevant for setters. */
24228
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24229
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24230
  false,  /* isTypedMethod.  Only relevant for methods. */
24231
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24232
};
24233
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24234
static_assert(0 < 1, "There is no slot for us");
24235
24236
MOZ_CAN_RUN_SCRIPT static bool
24237
get_shapeMargin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24238
0
{
24239
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.shapeMargin", DOM, cx);
24240
0
24241
0
  FastErrorResult rv;
24242
0
  DOMString result;
24243
0
  self->GetShapeMargin(result, rv);
24244
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24245
0
    return false;
24246
0
  }
24247
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24248
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24249
0
    return false;
24250
0
  }
24251
0
  return true;
24252
0
}
24253
24254
MOZ_CAN_RUN_SCRIPT static bool
24255
set_shapeMargin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24256
0
{
24257
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.shapeMargin", DOM, cx);
24258
0
24259
0
  binding_detail::FakeString arg0;
24260
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24261
0
    return false;
24262
0
  }
24263
0
  Maybe<AutoCEReaction> ceReaction;
24264
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24265
0
    DocGroup* docGroup = self->GetDocGroup();
24266
0
    if (docGroup) {
24267
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24268
0
    }
24269
0
  }
24270
0
  FastErrorResult rv;
24271
0
  nsIPrincipal* subjectPrincipal;
24272
0
  {
24273
0
    JS::Realm* realm = js::GetContextRealm(cx);
24274
0
    MOZ_ASSERT(realm);
24275
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24276
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24277
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24278
0
      principal = nullptr;
24279
0
    }
24280
0
24281
0
    subjectPrincipal = principal;
24282
0
  }
24283
0
  self->SetShapeMargin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24284
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24285
0
    return false;
24286
0
  }
24287
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24288
0
24289
0
  return true;
24290
0
}
24291
24292
static const JSJitInfo shapeMargin_getterinfo = {
24293
  { (JSJitGetterOp)get_shapeMargin },
24294
  { prototypes::id::CSS2Properties },
24295
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24296
  JSJitInfo::Getter,
24297
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24298
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24299
  false,  /* isInfallible. False in setters. */
24300
  false,  /* isMovable.  Not relevant for setters. */
24301
  false, /* isEliminatable.  Not relevant for setters. */
24302
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24303
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24304
  false,  /* isTypedMethod.  Only relevant for methods. */
24305
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24306
};
24307
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24308
static_assert(0 < 1, "There is no slot for us");
24309
static const JSJitInfo shapeMargin_setterinfo = {
24310
  { (JSJitGetterOp)set_shapeMargin },
24311
  { prototypes::id::CSS2Properties },
24312
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24313
  JSJitInfo::Setter,
24314
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24315
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24316
  false,  /* isInfallible. False in setters. */
24317
  false,  /* isMovable.  Not relevant for setters. */
24318
  false, /* isEliminatable.  Not relevant for setters. */
24319
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24320
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24321
  false,  /* isTypedMethod.  Only relevant for methods. */
24322
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24323
};
24324
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24325
static_assert(0 < 1, "There is no slot for us");
24326
24327
MOZ_CAN_RUN_SCRIPT static bool
24328
get_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24329
0
{
24330
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockEndWidth", DOM, cx);
24331
0
24332
0
  FastErrorResult rv;
24333
0
  DOMString result;
24334
0
  self->GetBorderBlockEndWidth(result, rv);
24335
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24336
0
    return false;
24337
0
  }
24338
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24339
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24340
0
    return false;
24341
0
  }
24342
0
  return true;
24343
0
}
24344
24345
MOZ_CAN_RUN_SCRIPT static bool
24346
set_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24347
0
{
24348
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockEndWidth", DOM, cx);
24349
0
24350
0
  binding_detail::FakeString arg0;
24351
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24352
0
    return false;
24353
0
  }
24354
0
  Maybe<AutoCEReaction> ceReaction;
24355
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24356
0
    DocGroup* docGroup = self->GetDocGroup();
24357
0
    if (docGroup) {
24358
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24359
0
    }
24360
0
  }
24361
0
  FastErrorResult rv;
24362
0
  nsIPrincipal* subjectPrincipal;
24363
0
  {
24364
0
    JS::Realm* realm = js::GetContextRealm(cx);
24365
0
    MOZ_ASSERT(realm);
24366
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24367
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24368
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24369
0
      principal = nullptr;
24370
0
    }
24371
0
24372
0
    subjectPrincipal = principal;
24373
0
  }
24374
0
  self->SetBorderBlockEndWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24375
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24376
0
    return false;
24377
0
  }
24378
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24379
0
24380
0
  return true;
24381
0
}
24382
24383
static const JSJitInfo borderBlockEndWidth_getterinfo = {
24384
  { (JSJitGetterOp)get_borderBlockEndWidth },
24385
  { prototypes::id::CSS2Properties },
24386
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24387
  JSJitInfo::Getter,
24388
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24389
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24390
  false,  /* isInfallible. False in setters. */
24391
  false,  /* isMovable.  Not relevant for setters. */
24392
  false, /* isEliminatable.  Not relevant for setters. */
24393
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24394
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24395
  false,  /* isTypedMethod.  Only relevant for methods. */
24396
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24397
};
24398
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24399
static_assert(0 < 1, "There is no slot for us");
24400
static const JSJitInfo borderBlockEndWidth_setterinfo = {
24401
  { (JSJitGetterOp)set_borderBlockEndWidth },
24402
  { prototypes::id::CSS2Properties },
24403
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24404
  JSJitInfo::Setter,
24405
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24406
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24407
  false,  /* isInfallible. False in setters. */
24408
  false,  /* isMovable.  Not relevant for setters. */
24409
  false, /* isEliminatable.  Not relevant for setters. */
24410
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24411
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24412
  false,  /* isTypedMethod.  Only relevant for methods. */
24413
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24414
};
24415
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24416
static_assert(0 < 1, "There is no slot for us");
24417
24418
MOZ_CAN_RUN_SCRIPT static bool
24419
get_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24420
0
{
24421
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockStartWidth", DOM, cx);
24422
0
24423
0
  FastErrorResult rv;
24424
0
  DOMString result;
24425
0
  self->GetBorderBlockStartWidth(result, rv);
24426
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24427
0
    return false;
24428
0
  }
24429
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24430
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24431
0
    return false;
24432
0
  }
24433
0
  return true;
24434
0
}
24435
24436
MOZ_CAN_RUN_SCRIPT static bool
24437
set_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24438
0
{
24439
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockStartWidth", DOM, cx);
24440
0
24441
0
  binding_detail::FakeString arg0;
24442
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24443
0
    return false;
24444
0
  }
24445
0
  Maybe<AutoCEReaction> ceReaction;
24446
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24447
0
    DocGroup* docGroup = self->GetDocGroup();
24448
0
    if (docGroup) {
24449
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24450
0
    }
24451
0
  }
24452
0
  FastErrorResult rv;
24453
0
  nsIPrincipal* subjectPrincipal;
24454
0
  {
24455
0
    JS::Realm* realm = js::GetContextRealm(cx);
24456
0
    MOZ_ASSERT(realm);
24457
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24458
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24459
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24460
0
      principal = nullptr;
24461
0
    }
24462
0
24463
0
    subjectPrincipal = principal;
24464
0
  }
24465
0
  self->SetBorderBlockStartWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24466
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24467
0
    return false;
24468
0
  }
24469
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24470
0
24471
0
  return true;
24472
0
}
24473
24474
static const JSJitInfo borderBlockStartWidth_getterinfo = {
24475
  { (JSJitGetterOp)get_borderBlockStartWidth },
24476
  { prototypes::id::CSS2Properties },
24477
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24478
  JSJitInfo::Getter,
24479
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24480
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24481
  false,  /* isInfallible. False in setters. */
24482
  false,  /* isMovable.  Not relevant for setters. */
24483
  false, /* isEliminatable.  Not relevant for setters. */
24484
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24485
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24486
  false,  /* isTypedMethod.  Only relevant for methods. */
24487
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24488
};
24489
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24490
static_assert(0 < 1, "There is no slot for us");
24491
static const JSJitInfo borderBlockStartWidth_setterinfo = {
24492
  { (JSJitGetterOp)set_borderBlockStartWidth },
24493
  { prototypes::id::CSS2Properties },
24494
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24495
  JSJitInfo::Setter,
24496
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24497
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24498
  false,  /* isInfallible. False in setters. */
24499
  false,  /* isMovable.  Not relevant for setters. */
24500
  false, /* isEliminatable.  Not relevant for setters. */
24501
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24502
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24503
  false,  /* isTypedMethod.  Only relevant for methods. */
24504
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24505
};
24506
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24507
static_assert(0 < 1, "There is no slot for us");
24508
24509
MOZ_CAN_RUN_SCRIPT static bool
24510
get_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24511
0
{
24512
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottomWidth", DOM, cx);
24513
0
24514
0
  FastErrorResult rv;
24515
0
  DOMString result;
24516
0
  self->GetBorderBottomWidth(result, rv);
24517
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24518
0
    return false;
24519
0
  }
24520
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24521
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24522
0
    return false;
24523
0
  }
24524
0
  return true;
24525
0
}
24526
24527
MOZ_CAN_RUN_SCRIPT static bool
24528
set_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24529
0
{
24530
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottomWidth", DOM, cx);
24531
0
24532
0
  binding_detail::FakeString arg0;
24533
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24534
0
    return false;
24535
0
  }
24536
0
  Maybe<AutoCEReaction> ceReaction;
24537
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24538
0
    DocGroup* docGroup = self->GetDocGroup();
24539
0
    if (docGroup) {
24540
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24541
0
    }
24542
0
  }
24543
0
  FastErrorResult rv;
24544
0
  nsIPrincipal* subjectPrincipal;
24545
0
  {
24546
0
    JS::Realm* realm = js::GetContextRealm(cx);
24547
0
    MOZ_ASSERT(realm);
24548
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24549
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24550
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24551
0
      principal = nullptr;
24552
0
    }
24553
0
24554
0
    subjectPrincipal = principal;
24555
0
  }
24556
0
  self->SetBorderBottomWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24557
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24558
0
    return false;
24559
0
  }
24560
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24561
0
24562
0
  return true;
24563
0
}
24564
24565
static const JSJitInfo borderBottomWidth_getterinfo = {
24566
  { (JSJitGetterOp)get_borderBottomWidth },
24567
  { prototypes::id::CSS2Properties },
24568
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24569
  JSJitInfo::Getter,
24570
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24571
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24572
  false,  /* isInfallible. False in setters. */
24573
  false,  /* isMovable.  Not relevant for setters. */
24574
  false, /* isEliminatable.  Not relevant for setters. */
24575
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24576
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24577
  false,  /* isTypedMethod.  Only relevant for methods. */
24578
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24579
};
24580
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24581
static_assert(0 < 1, "There is no slot for us");
24582
static const JSJitInfo borderBottomWidth_setterinfo = {
24583
  { (JSJitGetterOp)set_borderBottomWidth },
24584
  { prototypes::id::CSS2Properties },
24585
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24586
  JSJitInfo::Setter,
24587
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24588
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24589
  false,  /* isInfallible. False in setters. */
24590
  false,  /* isMovable.  Not relevant for setters. */
24591
  false, /* isEliminatable.  Not relevant for setters. */
24592
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24593
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24594
  false,  /* isTypedMethod.  Only relevant for methods. */
24595
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24596
};
24597
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24598
static_assert(0 < 1, "There is no slot for us");
24599
24600
MOZ_CAN_RUN_SCRIPT static bool
24601
get_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24602
0
{
24603
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineEndWidth", DOM, cx);
24604
0
24605
0
  FastErrorResult rv;
24606
0
  DOMString result;
24607
0
  self->GetBorderInlineEndWidth(result, rv);
24608
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24609
0
    return false;
24610
0
  }
24611
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24612
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24613
0
    return false;
24614
0
  }
24615
0
  return true;
24616
0
}
24617
24618
MOZ_CAN_RUN_SCRIPT static bool
24619
set_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24620
0
{
24621
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineEndWidth", DOM, cx);
24622
0
24623
0
  binding_detail::FakeString arg0;
24624
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24625
0
    return false;
24626
0
  }
24627
0
  Maybe<AutoCEReaction> ceReaction;
24628
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24629
0
    DocGroup* docGroup = self->GetDocGroup();
24630
0
    if (docGroup) {
24631
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24632
0
    }
24633
0
  }
24634
0
  FastErrorResult rv;
24635
0
  nsIPrincipal* subjectPrincipal;
24636
0
  {
24637
0
    JS::Realm* realm = js::GetContextRealm(cx);
24638
0
    MOZ_ASSERT(realm);
24639
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24640
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24641
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24642
0
      principal = nullptr;
24643
0
    }
24644
0
24645
0
    subjectPrincipal = principal;
24646
0
  }
24647
0
  self->SetBorderInlineEndWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24648
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24649
0
    return false;
24650
0
  }
24651
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24652
0
24653
0
  return true;
24654
0
}
24655
24656
static const JSJitInfo borderInlineEndWidth_getterinfo = {
24657
  { (JSJitGetterOp)get_borderInlineEndWidth },
24658
  { prototypes::id::CSS2Properties },
24659
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24660
  JSJitInfo::Getter,
24661
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24662
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24663
  false,  /* isInfallible. False in setters. */
24664
  false,  /* isMovable.  Not relevant for setters. */
24665
  false, /* isEliminatable.  Not relevant for setters. */
24666
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24667
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24668
  false,  /* isTypedMethod.  Only relevant for methods. */
24669
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24670
};
24671
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24672
static_assert(0 < 1, "There is no slot for us");
24673
static const JSJitInfo borderInlineEndWidth_setterinfo = {
24674
  { (JSJitGetterOp)set_borderInlineEndWidth },
24675
  { prototypes::id::CSS2Properties },
24676
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24677
  JSJitInfo::Setter,
24678
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24679
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24680
  false,  /* isInfallible. False in setters. */
24681
  false,  /* isMovable.  Not relevant for setters. */
24682
  false, /* isEliminatable.  Not relevant for setters. */
24683
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24684
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24685
  false,  /* isTypedMethod.  Only relevant for methods. */
24686
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24687
};
24688
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24689
static_assert(0 < 1, "There is no slot for us");
24690
24691
MOZ_CAN_RUN_SCRIPT static bool
24692
get_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24693
0
{
24694
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineStartWidth", DOM, cx);
24695
0
24696
0
  FastErrorResult rv;
24697
0
  DOMString result;
24698
0
  self->GetBorderInlineStartWidth(result, rv);
24699
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24700
0
    return false;
24701
0
  }
24702
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24703
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24704
0
    return false;
24705
0
  }
24706
0
  return true;
24707
0
}
24708
24709
MOZ_CAN_RUN_SCRIPT static bool
24710
set_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24711
0
{
24712
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineStartWidth", DOM, cx);
24713
0
24714
0
  binding_detail::FakeString arg0;
24715
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24716
0
    return false;
24717
0
  }
24718
0
  Maybe<AutoCEReaction> ceReaction;
24719
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24720
0
    DocGroup* docGroup = self->GetDocGroup();
24721
0
    if (docGroup) {
24722
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24723
0
    }
24724
0
  }
24725
0
  FastErrorResult rv;
24726
0
  nsIPrincipal* subjectPrincipal;
24727
0
  {
24728
0
    JS::Realm* realm = js::GetContextRealm(cx);
24729
0
    MOZ_ASSERT(realm);
24730
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24731
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24732
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24733
0
      principal = nullptr;
24734
0
    }
24735
0
24736
0
    subjectPrincipal = principal;
24737
0
  }
24738
0
  self->SetBorderInlineStartWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24739
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24740
0
    return false;
24741
0
  }
24742
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24743
0
24744
0
  return true;
24745
0
}
24746
24747
static const JSJitInfo borderInlineStartWidth_getterinfo = {
24748
  { (JSJitGetterOp)get_borderInlineStartWidth },
24749
  { prototypes::id::CSS2Properties },
24750
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24751
  JSJitInfo::Getter,
24752
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24753
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24754
  false,  /* isInfallible. False in setters. */
24755
  false,  /* isMovable.  Not relevant for setters. */
24756
  false, /* isEliminatable.  Not relevant for setters. */
24757
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24758
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24759
  false,  /* isTypedMethod.  Only relevant for methods. */
24760
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24761
};
24762
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24763
static_assert(0 < 1, "There is no slot for us");
24764
static const JSJitInfo borderInlineStartWidth_setterinfo = {
24765
  { (JSJitGetterOp)set_borderInlineStartWidth },
24766
  { prototypes::id::CSS2Properties },
24767
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24768
  JSJitInfo::Setter,
24769
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24770
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24771
  false,  /* isInfallible. False in setters. */
24772
  false,  /* isMovable.  Not relevant for setters. */
24773
  false, /* isEliminatable.  Not relevant for setters. */
24774
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24775
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24776
  false,  /* isTypedMethod.  Only relevant for methods. */
24777
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24778
};
24779
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24780
static_assert(0 < 1, "There is no slot for us");
24781
24782
MOZ_CAN_RUN_SCRIPT static bool
24783
get_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24784
0
{
24785
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderLeftWidth", DOM, cx);
24786
0
24787
0
  FastErrorResult rv;
24788
0
  DOMString result;
24789
0
  self->GetBorderLeftWidth(result, rv);
24790
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24791
0
    return false;
24792
0
  }
24793
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24794
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24795
0
    return false;
24796
0
  }
24797
0
  return true;
24798
0
}
24799
24800
MOZ_CAN_RUN_SCRIPT static bool
24801
set_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24802
0
{
24803
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderLeftWidth", DOM, cx);
24804
0
24805
0
  binding_detail::FakeString arg0;
24806
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24807
0
    return false;
24808
0
  }
24809
0
  Maybe<AutoCEReaction> ceReaction;
24810
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24811
0
    DocGroup* docGroup = self->GetDocGroup();
24812
0
    if (docGroup) {
24813
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24814
0
    }
24815
0
  }
24816
0
  FastErrorResult rv;
24817
0
  nsIPrincipal* subjectPrincipal;
24818
0
  {
24819
0
    JS::Realm* realm = js::GetContextRealm(cx);
24820
0
    MOZ_ASSERT(realm);
24821
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24822
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24823
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24824
0
      principal = nullptr;
24825
0
    }
24826
0
24827
0
    subjectPrincipal = principal;
24828
0
  }
24829
0
  self->SetBorderLeftWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24830
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24831
0
    return false;
24832
0
  }
24833
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24834
0
24835
0
  return true;
24836
0
}
24837
24838
static const JSJitInfo borderLeftWidth_getterinfo = {
24839
  { (JSJitGetterOp)get_borderLeftWidth },
24840
  { prototypes::id::CSS2Properties },
24841
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24842
  JSJitInfo::Getter,
24843
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24844
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24845
  false,  /* isInfallible. False in setters. */
24846
  false,  /* isMovable.  Not relevant for setters. */
24847
  false, /* isEliminatable.  Not relevant for setters. */
24848
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24849
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24850
  false,  /* isTypedMethod.  Only relevant for methods. */
24851
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24852
};
24853
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24854
static_assert(0 < 1, "There is no slot for us");
24855
static const JSJitInfo borderLeftWidth_setterinfo = {
24856
  { (JSJitGetterOp)set_borderLeftWidth },
24857
  { prototypes::id::CSS2Properties },
24858
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24859
  JSJitInfo::Setter,
24860
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24861
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24862
  false,  /* isInfallible. False in setters. */
24863
  false,  /* isMovable.  Not relevant for setters. */
24864
  false, /* isEliminatable.  Not relevant for setters. */
24865
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24866
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24867
  false,  /* isTypedMethod.  Only relevant for methods. */
24868
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24869
};
24870
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24871
static_assert(0 < 1, "There is no slot for us");
24872
24873
MOZ_CAN_RUN_SCRIPT static bool
24874
get_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24875
0
{
24876
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderRightWidth", DOM, cx);
24877
0
24878
0
  FastErrorResult rv;
24879
0
  DOMString result;
24880
0
  self->GetBorderRightWidth(result, rv);
24881
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24882
0
    return false;
24883
0
  }
24884
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24885
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24886
0
    return false;
24887
0
  }
24888
0
  return true;
24889
0
}
24890
24891
MOZ_CAN_RUN_SCRIPT static bool
24892
set_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24893
0
{
24894
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderRightWidth", DOM, cx);
24895
0
24896
0
  binding_detail::FakeString arg0;
24897
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24898
0
    return false;
24899
0
  }
24900
0
  Maybe<AutoCEReaction> ceReaction;
24901
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24902
0
    DocGroup* docGroup = self->GetDocGroup();
24903
0
    if (docGroup) {
24904
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24905
0
    }
24906
0
  }
24907
0
  FastErrorResult rv;
24908
0
  nsIPrincipal* subjectPrincipal;
24909
0
  {
24910
0
    JS::Realm* realm = js::GetContextRealm(cx);
24911
0
    MOZ_ASSERT(realm);
24912
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
24913
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
24914
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
24915
0
      principal = nullptr;
24916
0
    }
24917
0
24918
0
    subjectPrincipal = principal;
24919
0
  }
24920
0
  self->SetBorderRightWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
24921
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24922
0
    return false;
24923
0
  }
24924
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24925
0
24926
0
  return true;
24927
0
}
24928
24929
static const JSJitInfo borderRightWidth_getterinfo = {
24930
  { (JSJitGetterOp)get_borderRightWidth },
24931
  { prototypes::id::CSS2Properties },
24932
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24933
  JSJitInfo::Getter,
24934
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24935
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
24936
  false,  /* isInfallible. False in setters. */
24937
  false,  /* isMovable.  Not relevant for setters. */
24938
  false, /* isEliminatable.  Not relevant for setters. */
24939
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24940
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24941
  false,  /* isTypedMethod.  Only relevant for methods. */
24942
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24943
};
24944
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24945
static_assert(0 < 1, "There is no slot for us");
24946
static const JSJitInfo borderRightWidth_setterinfo = {
24947
  { (JSJitGetterOp)set_borderRightWidth },
24948
  { prototypes::id::CSS2Properties },
24949
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
24950
  JSJitInfo::Setter,
24951
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
24952
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
24953
  false,  /* isInfallible. False in setters. */
24954
  false,  /* isMovable.  Not relevant for setters. */
24955
  false, /* isEliminatable.  Not relevant for setters. */
24956
  false, /* isAlwaysInSlot.  Only relevant for getters. */
24957
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
24958
  false,  /* isTypedMethod.  Only relevant for methods. */
24959
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
24960
};
24961
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
24962
static_assert(0 < 1, "There is no slot for us");
24963
24964
MOZ_CAN_RUN_SCRIPT static bool
24965
get_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
24966
0
{
24967
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTopWidth", DOM, cx);
24968
0
24969
0
  FastErrorResult rv;
24970
0
  DOMString result;
24971
0
  self->GetBorderTopWidth(result, rv);
24972
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
24973
0
    return false;
24974
0
  }
24975
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
24976
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
24977
0
    return false;
24978
0
  }
24979
0
  return true;
24980
0
}
24981
24982
MOZ_CAN_RUN_SCRIPT static bool
24983
set_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
24984
0
{
24985
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTopWidth", DOM, cx);
24986
0
24987
0
  binding_detail::FakeString arg0;
24988
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
24989
0
    return false;
24990
0
  }
24991
0
  Maybe<AutoCEReaction> ceReaction;
24992
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
24993
0
    DocGroup* docGroup = self->GetDocGroup();
24994
0
    if (docGroup) {
24995
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
24996
0
    }
24997
0
  }
24998
0
  FastErrorResult rv;
24999
0
  nsIPrincipal* subjectPrincipal;
25000
0
  {
25001
0
    JS::Realm* realm = js::GetContextRealm(cx);
25002
0
    MOZ_ASSERT(realm);
25003
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25004
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25005
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25006
0
      principal = nullptr;
25007
0
    }
25008
0
25009
0
    subjectPrincipal = principal;
25010
0
  }
25011
0
  self->SetBorderTopWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25012
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25013
0
    return false;
25014
0
  }
25015
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25016
0
25017
0
  return true;
25018
0
}
25019
25020
static const JSJitInfo borderTopWidth_getterinfo = {
25021
  { (JSJitGetterOp)get_borderTopWidth },
25022
  { prototypes::id::CSS2Properties },
25023
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25024
  JSJitInfo::Getter,
25025
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25026
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25027
  false,  /* isInfallible. False in setters. */
25028
  false,  /* isMovable.  Not relevant for setters. */
25029
  false, /* isEliminatable.  Not relevant for setters. */
25030
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25031
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25032
  false,  /* isTypedMethod.  Only relevant for methods. */
25033
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25034
};
25035
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25036
static_assert(0 < 1, "There is no slot for us");
25037
static const JSJitInfo borderTopWidth_setterinfo = {
25038
  { (JSJitGetterOp)set_borderTopWidth },
25039
  { prototypes::id::CSS2Properties },
25040
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25041
  JSJitInfo::Setter,
25042
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25043
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25044
  false,  /* isInfallible. False in setters. */
25045
  false,  /* isMovable.  Not relevant for setters. */
25046
  false, /* isEliminatable.  Not relevant for setters. */
25047
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25048
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25049
  false,  /* isTypedMethod.  Only relevant for methods. */
25050
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25051
};
25052
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25053
static_assert(0 < 1, "There is no slot for us");
25054
25055
MOZ_CAN_RUN_SCRIPT static bool
25056
get_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25057
0
{
25058
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnRuleWidth", DOM, cx);
25059
0
25060
0
  FastErrorResult rv;
25061
0
  DOMString result;
25062
0
  self->GetColumnRuleWidth(result, rv);
25063
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25064
0
    return false;
25065
0
  }
25066
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25067
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25068
0
    return false;
25069
0
  }
25070
0
  return true;
25071
0
}
25072
25073
MOZ_CAN_RUN_SCRIPT static bool
25074
set_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25075
0
{
25076
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnRuleWidth", DOM, cx);
25077
0
25078
0
  binding_detail::FakeString arg0;
25079
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25080
0
    return false;
25081
0
  }
25082
0
  Maybe<AutoCEReaction> ceReaction;
25083
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25084
0
    DocGroup* docGroup = self->GetDocGroup();
25085
0
    if (docGroup) {
25086
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25087
0
    }
25088
0
  }
25089
0
  FastErrorResult rv;
25090
0
  nsIPrincipal* subjectPrincipal;
25091
0
  {
25092
0
    JS::Realm* realm = js::GetContextRealm(cx);
25093
0
    MOZ_ASSERT(realm);
25094
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25095
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25096
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25097
0
      principal = nullptr;
25098
0
    }
25099
0
25100
0
    subjectPrincipal = principal;
25101
0
  }
25102
0
  self->SetColumnRuleWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25103
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25104
0
    return false;
25105
0
  }
25106
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25107
0
25108
0
  return true;
25109
0
}
25110
25111
static const JSJitInfo columnRuleWidth_getterinfo = {
25112
  { (JSJitGetterOp)get_columnRuleWidth },
25113
  { prototypes::id::CSS2Properties },
25114
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25115
  JSJitInfo::Getter,
25116
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25117
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25118
  false,  /* isInfallible. False in setters. */
25119
  false,  /* isMovable.  Not relevant for setters. */
25120
  false, /* isEliminatable.  Not relevant for setters. */
25121
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25122
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25123
  false,  /* isTypedMethod.  Only relevant for methods. */
25124
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25125
};
25126
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25127
static_assert(0 < 1, "There is no slot for us");
25128
static const JSJitInfo columnRuleWidth_setterinfo = {
25129
  { (JSJitGetterOp)set_columnRuleWidth },
25130
  { prototypes::id::CSS2Properties },
25131
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25132
  JSJitInfo::Setter,
25133
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25134
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25135
  false,  /* isInfallible. False in setters. */
25136
  false,  /* isMovable.  Not relevant for setters. */
25137
  false, /* isEliminatable.  Not relevant for setters. */
25138
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25139
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25140
  false,  /* isTypedMethod.  Only relevant for methods. */
25141
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25142
};
25143
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25144
static_assert(0 < 1, "There is no slot for us");
25145
25146
MOZ_CAN_RUN_SCRIPT static bool
25147
get_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25148
0
{
25149
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.outlineWidth", DOM, cx);
25150
0
25151
0
  FastErrorResult rv;
25152
0
  DOMString result;
25153
0
  self->GetOutlineWidth(result, rv);
25154
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25155
0
    return false;
25156
0
  }
25157
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25158
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25159
0
    return false;
25160
0
  }
25161
0
  return true;
25162
0
}
25163
25164
MOZ_CAN_RUN_SCRIPT static bool
25165
set_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25166
0
{
25167
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.outlineWidth", DOM, cx);
25168
0
25169
0
  binding_detail::FakeString arg0;
25170
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25171
0
    return false;
25172
0
  }
25173
0
  Maybe<AutoCEReaction> ceReaction;
25174
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25175
0
    DocGroup* docGroup = self->GetDocGroup();
25176
0
    if (docGroup) {
25177
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25178
0
    }
25179
0
  }
25180
0
  FastErrorResult rv;
25181
0
  nsIPrincipal* subjectPrincipal;
25182
0
  {
25183
0
    JS::Realm* realm = js::GetContextRealm(cx);
25184
0
    MOZ_ASSERT(realm);
25185
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25186
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25187
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25188
0
      principal = nullptr;
25189
0
    }
25190
0
25191
0
    subjectPrincipal = principal;
25192
0
  }
25193
0
  self->SetOutlineWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25194
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25195
0
    return false;
25196
0
  }
25197
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25198
0
25199
0
  return true;
25200
0
}
25201
25202
static const JSJitInfo outlineWidth_getterinfo = {
25203
  { (JSJitGetterOp)get_outlineWidth },
25204
  { prototypes::id::CSS2Properties },
25205
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25206
  JSJitInfo::Getter,
25207
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25208
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25209
  false,  /* isInfallible. False in setters. */
25210
  false,  /* isMovable.  Not relevant for setters. */
25211
  false, /* isEliminatable.  Not relevant for setters. */
25212
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25213
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25214
  false,  /* isTypedMethod.  Only relevant for methods. */
25215
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25216
};
25217
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25218
static_assert(0 < 1, "There is no slot for us");
25219
static const JSJitInfo outlineWidth_setterinfo = {
25220
  { (JSJitGetterOp)set_outlineWidth },
25221
  { prototypes::id::CSS2Properties },
25222
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25223
  JSJitInfo::Setter,
25224
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25225
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25226
  false,  /* isInfallible. False in setters. */
25227
  false,  /* isMovable.  Not relevant for setters. */
25228
  false, /* isEliminatable.  Not relevant for setters. */
25229
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25230
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25231
  false,  /* isTypedMethod.  Only relevant for methods. */
25232
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25233
};
25234
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25235
static_assert(0 < 1, "There is no slot for us");
25236
25237
MOZ_CAN_RUN_SCRIPT static bool
25238
get_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25239
0
{
25240
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTextStrokeWidth", DOM, cx);
25241
0
25242
0
  FastErrorResult rv;
25243
0
  DOMString result;
25244
0
  self->GetWebkitTextStrokeWidth(result, rv);
25245
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25246
0
    return false;
25247
0
  }
25248
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25249
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25250
0
    return false;
25251
0
  }
25252
0
  return true;
25253
0
}
25254
25255
MOZ_CAN_RUN_SCRIPT static bool
25256
set_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25257
0
{
25258
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTextStrokeWidth", DOM, cx);
25259
0
25260
0
  binding_detail::FakeString arg0;
25261
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25262
0
    return false;
25263
0
  }
25264
0
  Maybe<AutoCEReaction> ceReaction;
25265
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25266
0
    DocGroup* docGroup = self->GetDocGroup();
25267
0
    if (docGroup) {
25268
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25269
0
    }
25270
0
  }
25271
0
  FastErrorResult rv;
25272
0
  nsIPrincipal* subjectPrincipal;
25273
0
  {
25274
0
    JS::Realm* realm = js::GetContextRealm(cx);
25275
0
    MOZ_ASSERT(realm);
25276
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25277
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25278
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25279
0
      principal = nullptr;
25280
0
    }
25281
0
25282
0
    subjectPrincipal = principal;
25283
0
  }
25284
0
  self->SetWebkitTextStrokeWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25285
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25286
0
    return false;
25287
0
  }
25288
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25289
0
25290
0
  return true;
25291
0
}
25292
25293
static const JSJitInfo webkitTextStrokeWidth_getterinfo = {
25294
  { (JSJitGetterOp)get_webkitTextStrokeWidth },
25295
  { prototypes::id::CSS2Properties },
25296
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25297
  JSJitInfo::Getter,
25298
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25299
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25300
  false,  /* isInfallible. False in setters. */
25301
  false,  /* isMovable.  Not relevant for setters. */
25302
  false, /* isEliminatable.  Not relevant for setters. */
25303
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25304
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25305
  false,  /* isTypedMethod.  Only relevant for methods. */
25306
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25307
};
25308
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25309
static_assert(0 < 1, "There is no slot for us");
25310
static const JSJitInfo webkitTextStrokeWidth_setterinfo = {
25311
  { (JSJitGetterOp)set_webkitTextStrokeWidth },
25312
  { prototypes::id::CSS2Properties },
25313
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25314
  JSJitInfo::Setter,
25315
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25316
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25317
  false,  /* isInfallible. False in setters. */
25318
  false,  /* isMovable.  Not relevant for setters. */
25319
  false, /* isEliminatable.  Not relevant for setters. */
25320
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25321
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25322
  false,  /* isTypedMethod.  Only relevant for methods. */
25323
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25324
};
25325
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25326
static_assert(0 < 1, "There is no slot for us");
25327
25328
MOZ_CAN_RUN_SCRIPT static bool
25329
get_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25330
0
{
25331
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.bottom", DOM, cx);
25332
0
25333
0
  FastErrorResult rv;
25334
0
  DOMString result;
25335
0
  self->GetBottom(result, rv);
25336
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25337
0
    return false;
25338
0
  }
25339
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25340
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25341
0
    return false;
25342
0
  }
25343
0
  return true;
25344
0
}
25345
25346
MOZ_CAN_RUN_SCRIPT static bool
25347
set_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25348
0
{
25349
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.bottom", DOM, cx);
25350
0
25351
0
  binding_detail::FakeString arg0;
25352
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25353
0
    return false;
25354
0
  }
25355
0
  Maybe<AutoCEReaction> ceReaction;
25356
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25357
0
    DocGroup* docGroup = self->GetDocGroup();
25358
0
    if (docGroup) {
25359
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25360
0
    }
25361
0
  }
25362
0
  FastErrorResult rv;
25363
0
  nsIPrincipal* subjectPrincipal;
25364
0
  {
25365
0
    JS::Realm* realm = js::GetContextRealm(cx);
25366
0
    MOZ_ASSERT(realm);
25367
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25368
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25369
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25370
0
      principal = nullptr;
25371
0
    }
25372
0
25373
0
    subjectPrincipal = principal;
25374
0
  }
25375
0
  self->SetBottom(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25376
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25377
0
    return false;
25378
0
  }
25379
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25380
0
25381
0
  return true;
25382
0
}
25383
25384
static const JSJitInfo bottom_getterinfo = {
25385
  { (JSJitGetterOp)get_bottom },
25386
  { prototypes::id::CSS2Properties },
25387
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25388
  JSJitInfo::Getter,
25389
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25390
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25391
  false,  /* isInfallible. False in setters. */
25392
  false,  /* isMovable.  Not relevant for setters. */
25393
  false, /* isEliminatable.  Not relevant for setters. */
25394
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25395
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25396
  false,  /* isTypedMethod.  Only relevant for methods. */
25397
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25398
};
25399
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25400
static_assert(0 < 1, "There is no slot for us");
25401
static const JSJitInfo bottom_setterinfo = {
25402
  { (JSJitGetterOp)set_bottom },
25403
  { prototypes::id::CSS2Properties },
25404
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25405
  JSJitInfo::Setter,
25406
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25407
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25408
  false,  /* isInfallible. False in setters. */
25409
  false,  /* isMovable.  Not relevant for setters. */
25410
  false, /* isEliminatable.  Not relevant for setters. */
25411
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25412
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25413
  false,  /* isTypedMethod.  Only relevant for methods. */
25414
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25415
};
25416
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25417
static_assert(0 < 1, "There is no slot for us");
25418
25419
MOZ_CAN_RUN_SCRIPT static bool
25420
get_insetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25421
0
{
25422
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.insetBlockEnd", DOM, cx);
25423
0
25424
0
  FastErrorResult rv;
25425
0
  DOMString result;
25426
0
  self->GetInsetBlockEnd(result, rv);
25427
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25428
0
    return false;
25429
0
  }
25430
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25431
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25432
0
    return false;
25433
0
  }
25434
0
  return true;
25435
0
}
25436
25437
MOZ_CAN_RUN_SCRIPT static bool
25438
set_insetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25439
0
{
25440
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.insetBlockEnd", DOM, cx);
25441
0
25442
0
  binding_detail::FakeString arg0;
25443
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25444
0
    return false;
25445
0
  }
25446
0
  Maybe<AutoCEReaction> ceReaction;
25447
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25448
0
    DocGroup* docGroup = self->GetDocGroup();
25449
0
    if (docGroup) {
25450
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25451
0
    }
25452
0
  }
25453
0
  FastErrorResult rv;
25454
0
  nsIPrincipal* subjectPrincipal;
25455
0
  {
25456
0
    JS::Realm* realm = js::GetContextRealm(cx);
25457
0
    MOZ_ASSERT(realm);
25458
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25459
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25460
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25461
0
      principal = nullptr;
25462
0
    }
25463
0
25464
0
    subjectPrincipal = principal;
25465
0
  }
25466
0
  self->SetInsetBlockEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25467
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25468
0
    return false;
25469
0
  }
25470
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25471
0
25472
0
  return true;
25473
0
}
25474
25475
static const JSJitInfo insetBlockEnd_getterinfo = {
25476
  { (JSJitGetterOp)get_insetBlockEnd },
25477
  { prototypes::id::CSS2Properties },
25478
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25479
  JSJitInfo::Getter,
25480
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25481
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25482
  false,  /* isInfallible. False in setters. */
25483
  false,  /* isMovable.  Not relevant for setters. */
25484
  false, /* isEliminatable.  Not relevant for setters. */
25485
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25486
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25487
  false,  /* isTypedMethod.  Only relevant for methods. */
25488
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25489
};
25490
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25491
static_assert(0 < 1, "There is no slot for us");
25492
static const JSJitInfo insetBlockEnd_setterinfo = {
25493
  { (JSJitGetterOp)set_insetBlockEnd },
25494
  { prototypes::id::CSS2Properties },
25495
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25496
  JSJitInfo::Setter,
25497
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25498
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25499
  false,  /* isInfallible. False in setters. */
25500
  false,  /* isMovable.  Not relevant for setters. */
25501
  false, /* isEliminatable.  Not relevant for setters. */
25502
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25503
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25504
  false,  /* isTypedMethod.  Only relevant for methods. */
25505
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25506
};
25507
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25508
static_assert(0 < 1, "There is no slot for us");
25509
25510
MOZ_CAN_RUN_SCRIPT static bool
25511
get_insetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25512
0
{
25513
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.insetBlockStart", DOM, cx);
25514
0
25515
0
  FastErrorResult rv;
25516
0
  DOMString result;
25517
0
  self->GetInsetBlockStart(result, rv);
25518
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25519
0
    return false;
25520
0
  }
25521
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25522
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25523
0
    return false;
25524
0
  }
25525
0
  return true;
25526
0
}
25527
25528
MOZ_CAN_RUN_SCRIPT static bool
25529
set_insetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25530
0
{
25531
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.insetBlockStart", DOM, cx);
25532
0
25533
0
  binding_detail::FakeString arg0;
25534
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25535
0
    return false;
25536
0
  }
25537
0
  Maybe<AutoCEReaction> ceReaction;
25538
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25539
0
    DocGroup* docGroup = self->GetDocGroup();
25540
0
    if (docGroup) {
25541
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25542
0
    }
25543
0
  }
25544
0
  FastErrorResult rv;
25545
0
  nsIPrincipal* subjectPrincipal;
25546
0
  {
25547
0
    JS::Realm* realm = js::GetContextRealm(cx);
25548
0
    MOZ_ASSERT(realm);
25549
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25550
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25551
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25552
0
      principal = nullptr;
25553
0
    }
25554
0
25555
0
    subjectPrincipal = principal;
25556
0
  }
25557
0
  self->SetInsetBlockStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25558
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25559
0
    return false;
25560
0
  }
25561
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25562
0
25563
0
  return true;
25564
0
}
25565
25566
static const JSJitInfo insetBlockStart_getterinfo = {
25567
  { (JSJitGetterOp)get_insetBlockStart },
25568
  { prototypes::id::CSS2Properties },
25569
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25570
  JSJitInfo::Getter,
25571
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25572
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25573
  false,  /* isInfallible. False in setters. */
25574
  false,  /* isMovable.  Not relevant for setters. */
25575
  false, /* isEliminatable.  Not relevant for setters. */
25576
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25577
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25578
  false,  /* isTypedMethod.  Only relevant for methods. */
25579
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25580
};
25581
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25582
static_assert(0 < 1, "There is no slot for us");
25583
static const JSJitInfo insetBlockStart_setterinfo = {
25584
  { (JSJitGetterOp)set_insetBlockStart },
25585
  { prototypes::id::CSS2Properties },
25586
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25587
  JSJitInfo::Setter,
25588
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25589
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25590
  false,  /* isInfallible. False in setters. */
25591
  false,  /* isMovable.  Not relevant for setters. */
25592
  false, /* isEliminatable.  Not relevant for setters. */
25593
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25594
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25595
  false,  /* isTypedMethod.  Only relevant for methods. */
25596
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25597
};
25598
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25599
static_assert(0 < 1, "There is no slot for us");
25600
25601
MOZ_CAN_RUN_SCRIPT static bool
25602
get_insetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25603
0
{
25604
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.insetInlineEnd", DOM, cx);
25605
0
25606
0
  FastErrorResult rv;
25607
0
  DOMString result;
25608
0
  self->GetInsetInlineEnd(result, rv);
25609
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25610
0
    return false;
25611
0
  }
25612
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25613
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25614
0
    return false;
25615
0
  }
25616
0
  return true;
25617
0
}
25618
25619
MOZ_CAN_RUN_SCRIPT static bool
25620
set_insetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25621
0
{
25622
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.insetInlineEnd", DOM, cx);
25623
0
25624
0
  binding_detail::FakeString arg0;
25625
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25626
0
    return false;
25627
0
  }
25628
0
  Maybe<AutoCEReaction> ceReaction;
25629
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25630
0
    DocGroup* docGroup = self->GetDocGroup();
25631
0
    if (docGroup) {
25632
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25633
0
    }
25634
0
  }
25635
0
  FastErrorResult rv;
25636
0
  nsIPrincipal* subjectPrincipal;
25637
0
  {
25638
0
    JS::Realm* realm = js::GetContextRealm(cx);
25639
0
    MOZ_ASSERT(realm);
25640
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25641
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25642
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25643
0
      principal = nullptr;
25644
0
    }
25645
0
25646
0
    subjectPrincipal = principal;
25647
0
  }
25648
0
  self->SetInsetInlineEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25649
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25650
0
    return false;
25651
0
  }
25652
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25653
0
25654
0
  return true;
25655
0
}
25656
25657
static const JSJitInfo insetInlineEnd_getterinfo = {
25658
  { (JSJitGetterOp)get_insetInlineEnd },
25659
  { prototypes::id::CSS2Properties },
25660
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25661
  JSJitInfo::Getter,
25662
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25663
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25664
  false,  /* isInfallible. False in setters. */
25665
  false,  /* isMovable.  Not relevant for setters. */
25666
  false, /* isEliminatable.  Not relevant for setters. */
25667
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25668
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25669
  false,  /* isTypedMethod.  Only relevant for methods. */
25670
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25671
};
25672
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25673
static_assert(0 < 1, "There is no slot for us");
25674
static const JSJitInfo insetInlineEnd_setterinfo = {
25675
  { (JSJitGetterOp)set_insetInlineEnd },
25676
  { prototypes::id::CSS2Properties },
25677
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25678
  JSJitInfo::Setter,
25679
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25680
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25681
  false,  /* isInfallible. False in setters. */
25682
  false,  /* isMovable.  Not relevant for setters. */
25683
  false, /* isEliminatable.  Not relevant for setters. */
25684
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25685
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25686
  false,  /* isTypedMethod.  Only relevant for methods. */
25687
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25688
};
25689
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25690
static_assert(0 < 1, "There is no slot for us");
25691
25692
MOZ_CAN_RUN_SCRIPT static bool
25693
get_insetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25694
0
{
25695
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.insetInlineStart", DOM, cx);
25696
0
25697
0
  FastErrorResult rv;
25698
0
  DOMString result;
25699
0
  self->GetInsetInlineStart(result, rv);
25700
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25701
0
    return false;
25702
0
  }
25703
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25704
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25705
0
    return false;
25706
0
  }
25707
0
  return true;
25708
0
}
25709
25710
MOZ_CAN_RUN_SCRIPT static bool
25711
set_insetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25712
0
{
25713
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.insetInlineStart", DOM, cx);
25714
0
25715
0
  binding_detail::FakeString arg0;
25716
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25717
0
    return false;
25718
0
  }
25719
0
  Maybe<AutoCEReaction> ceReaction;
25720
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25721
0
    DocGroup* docGroup = self->GetDocGroup();
25722
0
    if (docGroup) {
25723
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25724
0
    }
25725
0
  }
25726
0
  FastErrorResult rv;
25727
0
  nsIPrincipal* subjectPrincipal;
25728
0
  {
25729
0
    JS::Realm* realm = js::GetContextRealm(cx);
25730
0
    MOZ_ASSERT(realm);
25731
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25732
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25733
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25734
0
      principal = nullptr;
25735
0
    }
25736
0
25737
0
    subjectPrincipal = principal;
25738
0
  }
25739
0
  self->SetInsetInlineStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25740
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25741
0
    return false;
25742
0
  }
25743
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25744
0
25745
0
  return true;
25746
0
}
25747
25748
static const JSJitInfo insetInlineStart_getterinfo = {
25749
  { (JSJitGetterOp)get_insetInlineStart },
25750
  { prototypes::id::CSS2Properties },
25751
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25752
  JSJitInfo::Getter,
25753
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25754
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25755
  false,  /* isInfallible. False in setters. */
25756
  false,  /* isMovable.  Not relevant for setters. */
25757
  false, /* isEliminatable.  Not relevant for setters. */
25758
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25759
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25760
  false,  /* isTypedMethod.  Only relevant for methods. */
25761
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25762
};
25763
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25764
static_assert(0 < 1, "There is no slot for us");
25765
static const JSJitInfo insetInlineStart_setterinfo = {
25766
  { (JSJitGetterOp)set_insetInlineStart },
25767
  { prototypes::id::CSS2Properties },
25768
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25769
  JSJitInfo::Setter,
25770
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25771
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25772
  false,  /* isInfallible. False in setters. */
25773
  false,  /* isMovable.  Not relevant for setters. */
25774
  false, /* isEliminatable.  Not relevant for setters. */
25775
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25776
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25777
  false,  /* isTypedMethod.  Only relevant for methods. */
25778
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25779
};
25780
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25781
static_assert(0 < 1, "There is no slot for us");
25782
25783
MOZ_CAN_RUN_SCRIPT static bool
25784
get_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25785
0
{
25786
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.left", DOM, cx);
25787
0
25788
0
  FastErrorResult rv;
25789
0
  DOMString result;
25790
0
  self->GetLeft(result, rv);
25791
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25792
0
    return false;
25793
0
  }
25794
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25795
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25796
0
    return false;
25797
0
  }
25798
0
  return true;
25799
0
}
25800
25801
MOZ_CAN_RUN_SCRIPT static bool
25802
set_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25803
0
{
25804
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.left", DOM, cx);
25805
0
25806
0
  binding_detail::FakeString arg0;
25807
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25808
0
    return false;
25809
0
  }
25810
0
  Maybe<AutoCEReaction> ceReaction;
25811
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25812
0
    DocGroup* docGroup = self->GetDocGroup();
25813
0
    if (docGroup) {
25814
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25815
0
    }
25816
0
  }
25817
0
  FastErrorResult rv;
25818
0
  nsIPrincipal* subjectPrincipal;
25819
0
  {
25820
0
    JS::Realm* realm = js::GetContextRealm(cx);
25821
0
    MOZ_ASSERT(realm);
25822
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25823
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25824
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25825
0
      principal = nullptr;
25826
0
    }
25827
0
25828
0
    subjectPrincipal = principal;
25829
0
  }
25830
0
  self->SetLeft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25831
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25832
0
    return false;
25833
0
  }
25834
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25835
0
25836
0
  return true;
25837
0
}
25838
25839
static const JSJitInfo left_getterinfo = {
25840
  { (JSJitGetterOp)get_left },
25841
  { prototypes::id::CSS2Properties },
25842
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25843
  JSJitInfo::Getter,
25844
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25845
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25846
  false,  /* isInfallible. False in setters. */
25847
  false,  /* isMovable.  Not relevant for setters. */
25848
  false, /* isEliminatable.  Not relevant for setters. */
25849
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25850
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25851
  false,  /* isTypedMethod.  Only relevant for methods. */
25852
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25853
};
25854
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25855
static_assert(0 < 1, "There is no slot for us");
25856
static const JSJitInfo left_setterinfo = {
25857
  { (JSJitGetterOp)set_left },
25858
  { prototypes::id::CSS2Properties },
25859
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25860
  JSJitInfo::Setter,
25861
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25862
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25863
  false,  /* isInfallible. False in setters. */
25864
  false,  /* isMovable.  Not relevant for setters. */
25865
  false, /* isEliminatable.  Not relevant for setters. */
25866
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25867
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25868
  false,  /* isTypedMethod.  Only relevant for methods. */
25869
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25870
};
25871
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25872
static_assert(0 < 1, "There is no slot for us");
25873
25874
MOZ_CAN_RUN_SCRIPT static bool
25875
get_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25876
0
{
25877
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginBlockEnd", DOM, cx);
25878
0
25879
0
  FastErrorResult rv;
25880
0
  DOMString result;
25881
0
  self->GetMarginBlockEnd(result, rv);
25882
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25883
0
    return false;
25884
0
  }
25885
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25886
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25887
0
    return false;
25888
0
  }
25889
0
  return true;
25890
0
}
25891
25892
MOZ_CAN_RUN_SCRIPT static bool
25893
set_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25894
0
{
25895
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginBlockEnd", DOM, cx);
25896
0
25897
0
  binding_detail::FakeString arg0;
25898
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25899
0
    return false;
25900
0
  }
25901
0
  Maybe<AutoCEReaction> ceReaction;
25902
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25903
0
    DocGroup* docGroup = self->GetDocGroup();
25904
0
    if (docGroup) {
25905
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25906
0
    }
25907
0
  }
25908
0
  FastErrorResult rv;
25909
0
  nsIPrincipal* subjectPrincipal;
25910
0
  {
25911
0
    JS::Realm* realm = js::GetContextRealm(cx);
25912
0
    MOZ_ASSERT(realm);
25913
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
25914
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
25915
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
25916
0
      principal = nullptr;
25917
0
    }
25918
0
25919
0
    subjectPrincipal = principal;
25920
0
  }
25921
0
  self->SetMarginBlockEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
25922
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25923
0
    return false;
25924
0
  }
25925
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25926
0
25927
0
  return true;
25928
0
}
25929
25930
static const JSJitInfo marginBlockEnd_getterinfo = {
25931
  { (JSJitGetterOp)get_marginBlockEnd },
25932
  { prototypes::id::CSS2Properties },
25933
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25934
  JSJitInfo::Getter,
25935
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25936
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
25937
  false,  /* isInfallible. False in setters. */
25938
  false,  /* isMovable.  Not relevant for setters. */
25939
  false, /* isEliminatable.  Not relevant for setters. */
25940
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25941
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25942
  false,  /* isTypedMethod.  Only relevant for methods. */
25943
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25944
};
25945
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25946
static_assert(0 < 1, "There is no slot for us");
25947
static const JSJitInfo marginBlockEnd_setterinfo = {
25948
  { (JSJitGetterOp)set_marginBlockEnd },
25949
  { prototypes::id::CSS2Properties },
25950
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
25951
  JSJitInfo::Setter,
25952
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
25953
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
25954
  false,  /* isInfallible. False in setters. */
25955
  false,  /* isMovable.  Not relevant for setters. */
25956
  false, /* isEliminatable.  Not relevant for setters. */
25957
  false, /* isAlwaysInSlot.  Only relevant for getters. */
25958
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
25959
  false,  /* isTypedMethod.  Only relevant for methods. */
25960
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
25961
};
25962
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
25963
static_assert(0 < 1, "There is no slot for us");
25964
25965
MOZ_CAN_RUN_SCRIPT static bool
25966
get_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
25967
0
{
25968
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginBlockStart", DOM, cx);
25969
0
25970
0
  FastErrorResult rv;
25971
0
  DOMString result;
25972
0
  self->GetMarginBlockStart(result, rv);
25973
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
25974
0
    return false;
25975
0
  }
25976
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
25977
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
25978
0
    return false;
25979
0
  }
25980
0
  return true;
25981
0
}
25982
25983
MOZ_CAN_RUN_SCRIPT static bool
25984
set_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
25985
0
{
25986
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginBlockStart", DOM, cx);
25987
0
25988
0
  binding_detail::FakeString arg0;
25989
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
25990
0
    return false;
25991
0
  }
25992
0
  Maybe<AutoCEReaction> ceReaction;
25993
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
25994
0
    DocGroup* docGroup = self->GetDocGroup();
25995
0
    if (docGroup) {
25996
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
25997
0
    }
25998
0
  }
25999
0
  FastErrorResult rv;
26000
0
  nsIPrincipal* subjectPrincipal;
26001
0
  {
26002
0
    JS::Realm* realm = js::GetContextRealm(cx);
26003
0
    MOZ_ASSERT(realm);
26004
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26005
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26006
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26007
0
      principal = nullptr;
26008
0
    }
26009
0
26010
0
    subjectPrincipal = principal;
26011
0
  }
26012
0
  self->SetMarginBlockStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26013
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26014
0
    return false;
26015
0
  }
26016
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26017
0
26018
0
  return true;
26019
0
}
26020
26021
static const JSJitInfo marginBlockStart_getterinfo = {
26022
  { (JSJitGetterOp)get_marginBlockStart },
26023
  { prototypes::id::CSS2Properties },
26024
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26025
  JSJitInfo::Getter,
26026
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26027
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26028
  false,  /* isInfallible. False in setters. */
26029
  false,  /* isMovable.  Not relevant for setters. */
26030
  false, /* isEliminatable.  Not relevant for setters. */
26031
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26032
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26033
  false,  /* isTypedMethod.  Only relevant for methods. */
26034
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26035
};
26036
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26037
static_assert(0 < 1, "There is no slot for us");
26038
static const JSJitInfo marginBlockStart_setterinfo = {
26039
  { (JSJitGetterOp)set_marginBlockStart },
26040
  { prototypes::id::CSS2Properties },
26041
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26042
  JSJitInfo::Setter,
26043
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26044
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26045
  false,  /* isInfallible. False in setters. */
26046
  false,  /* isMovable.  Not relevant for setters. */
26047
  false, /* isEliminatable.  Not relevant for setters. */
26048
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26049
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26050
  false,  /* isTypedMethod.  Only relevant for methods. */
26051
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26052
};
26053
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26054
static_assert(0 < 1, "There is no slot for us");
26055
26056
MOZ_CAN_RUN_SCRIPT static bool
26057
get_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26058
0
{
26059
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginBottom", DOM, cx);
26060
0
26061
0
  FastErrorResult rv;
26062
0
  DOMString result;
26063
0
  self->GetMarginBottom(result, rv);
26064
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26065
0
    return false;
26066
0
  }
26067
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26068
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26069
0
    return false;
26070
0
  }
26071
0
  return true;
26072
0
}
26073
26074
MOZ_CAN_RUN_SCRIPT static bool
26075
set_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26076
0
{
26077
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginBottom", DOM, cx);
26078
0
26079
0
  binding_detail::FakeString arg0;
26080
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26081
0
    return false;
26082
0
  }
26083
0
  Maybe<AutoCEReaction> ceReaction;
26084
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26085
0
    DocGroup* docGroup = self->GetDocGroup();
26086
0
    if (docGroup) {
26087
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26088
0
    }
26089
0
  }
26090
0
  FastErrorResult rv;
26091
0
  nsIPrincipal* subjectPrincipal;
26092
0
  {
26093
0
    JS::Realm* realm = js::GetContextRealm(cx);
26094
0
    MOZ_ASSERT(realm);
26095
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26096
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26097
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26098
0
      principal = nullptr;
26099
0
    }
26100
0
26101
0
    subjectPrincipal = principal;
26102
0
  }
26103
0
  self->SetMarginBottom(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26104
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26105
0
    return false;
26106
0
  }
26107
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26108
0
26109
0
  return true;
26110
0
}
26111
26112
static const JSJitInfo marginBottom_getterinfo = {
26113
  { (JSJitGetterOp)get_marginBottom },
26114
  { prototypes::id::CSS2Properties },
26115
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26116
  JSJitInfo::Getter,
26117
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26118
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26119
  false,  /* isInfallible. False in setters. */
26120
  false,  /* isMovable.  Not relevant for setters. */
26121
  false, /* isEliminatable.  Not relevant for setters. */
26122
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26123
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26124
  false,  /* isTypedMethod.  Only relevant for methods. */
26125
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26126
};
26127
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26128
static_assert(0 < 1, "There is no slot for us");
26129
static const JSJitInfo marginBottom_setterinfo = {
26130
  { (JSJitGetterOp)set_marginBottom },
26131
  { prototypes::id::CSS2Properties },
26132
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26133
  JSJitInfo::Setter,
26134
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26135
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26136
  false,  /* isInfallible. False in setters. */
26137
  false,  /* isMovable.  Not relevant for setters. */
26138
  false, /* isEliminatable.  Not relevant for setters. */
26139
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26140
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26141
  false,  /* isTypedMethod.  Only relevant for methods. */
26142
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26143
};
26144
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26145
static_assert(0 < 1, "There is no slot for us");
26146
26147
MOZ_CAN_RUN_SCRIPT static bool
26148
get_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26149
0
{
26150
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginInlineEnd", DOM, cx);
26151
0
26152
0
  FastErrorResult rv;
26153
0
  DOMString result;
26154
0
  self->GetMarginInlineEnd(result, rv);
26155
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26156
0
    return false;
26157
0
  }
26158
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26159
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26160
0
    return false;
26161
0
  }
26162
0
  return true;
26163
0
}
26164
26165
MOZ_CAN_RUN_SCRIPT static bool
26166
set_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26167
0
{
26168
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginInlineEnd", DOM, cx);
26169
0
26170
0
  binding_detail::FakeString arg0;
26171
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26172
0
    return false;
26173
0
  }
26174
0
  Maybe<AutoCEReaction> ceReaction;
26175
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26176
0
    DocGroup* docGroup = self->GetDocGroup();
26177
0
    if (docGroup) {
26178
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26179
0
    }
26180
0
  }
26181
0
  FastErrorResult rv;
26182
0
  nsIPrincipal* subjectPrincipal;
26183
0
  {
26184
0
    JS::Realm* realm = js::GetContextRealm(cx);
26185
0
    MOZ_ASSERT(realm);
26186
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26187
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26188
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26189
0
      principal = nullptr;
26190
0
    }
26191
0
26192
0
    subjectPrincipal = principal;
26193
0
  }
26194
0
  self->SetMarginInlineEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26195
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26196
0
    return false;
26197
0
  }
26198
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26199
0
26200
0
  return true;
26201
0
}
26202
26203
static const JSJitInfo marginInlineEnd_getterinfo = {
26204
  { (JSJitGetterOp)get_marginInlineEnd },
26205
  { prototypes::id::CSS2Properties },
26206
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26207
  JSJitInfo::Getter,
26208
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26209
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26210
  false,  /* isInfallible. False in setters. */
26211
  false,  /* isMovable.  Not relevant for setters. */
26212
  false, /* isEliminatable.  Not relevant for setters. */
26213
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26214
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26215
  false,  /* isTypedMethod.  Only relevant for methods. */
26216
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26217
};
26218
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26219
static_assert(0 < 1, "There is no slot for us");
26220
static const JSJitInfo marginInlineEnd_setterinfo = {
26221
  { (JSJitGetterOp)set_marginInlineEnd },
26222
  { prototypes::id::CSS2Properties },
26223
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26224
  JSJitInfo::Setter,
26225
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26226
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26227
  false,  /* isInfallible. False in setters. */
26228
  false,  /* isMovable.  Not relevant for setters. */
26229
  false, /* isEliminatable.  Not relevant for setters. */
26230
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26231
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26232
  false,  /* isTypedMethod.  Only relevant for methods. */
26233
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26234
};
26235
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26236
static_assert(0 < 1, "There is no slot for us");
26237
26238
MOZ_CAN_RUN_SCRIPT static bool
26239
get_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26240
0
{
26241
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginInlineStart", DOM, cx);
26242
0
26243
0
  FastErrorResult rv;
26244
0
  DOMString result;
26245
0
  self->GetMarginInlineStart(result, rv);
26246
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26247
0
    return false;
26248
0
  }
26249
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26250
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26251
0
    return false;
26252
0
  }
26253
0
  return true;
26254
0
}
26255
26256
MOZ_CAN_RUN_SCRIPT static bool
26257
set_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26258
0
{
26259
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginInlineStart", DOM, cx);
26260
0
26261
0
  binding_detail::FakeString arg0;
26262
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26263
0
    return false;
26264
0
  }
26265
0
  Maybe<AutoCEReaction> ceReaction;
26266
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26267
0
    DocGroup* docGroup = self->GetDocGroup();
26268
0
    if (docGroup) {
26269
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26270
0
    }
26271
0
  }
26272
0
  FastErrorResult rv;
26273
0
  nsIPrincipal* subjectPrincipal;
26274
0
  {
26275
0
    JS::Realm* realm = js::GetContextRealm(cx);
26276
0
    MOZ_ASSERT(realm);
26277
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26278
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26279
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26280
0
      principal = nullptr;
26281
0
    }
26282
0
26283
0
    subjectPrincipal = principal;
26284
0
  }
26285
0
  self->SetMarginInlineStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26286
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26287
0
    return false;
26288
0
  }
26289
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26290
0
26291
0
  return true;
26292
0
}
26293
26294
static const JSJitInfo marginInlineStart_getterinfo = {
26295
  { (JSJitGetterOp)get_marginInlineStart },
26296
  { prototypes::id::CSS2Properties },
26297
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26298
  JSJitInfo::Getter,
26299
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26300
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26301
  false,  /* isInfallible. False in setters. */
26302
  false,  /* isMovable.  Not relevant for setters. */
26303
  false, /* isEliminatable.  Not relevant for setters. */
26304
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26305
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26306
  false,  /* isTypedMethod.  Only relevant for methods. */
26307
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26308
};
26309
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26310
static_assert(0 < 1, "There is no slot for us");
26311
static const JSJitInfo marginInlineStart_setterinfo = {
26312
  { (JSJitGetterOp)set_marginInlineStart },
26313
  { prototypes::id::CSS2Properties },
26314
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26315
  JSJitInfo::Setter,
26316
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26317
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26318
  false,  /* isInfallible. False in setters. */
26319
  false,  /* isMovable.  Not relevant for setters. */
26320
  false, /* isEliminatable.  Not relevant for setters. */
26321
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26322
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26323
  false,  /* isTypedMethod.  Only relevant for methods. */
26324
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26325
};
26326
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26327
static_assert(0 < 1, "There is no slot for us");
26328
26329
MOZ_CAN_RUN_SCRIPT static bool
26330
get_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26331
0
{
26332
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginLeft", DOM, cx);
26333
0
26334
0
  FastErrorResult rv;
26335
0
  DOMString result;
26336
0
  self->GetMarginLeft(result, rv);
26337
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26338
0
    return false;
26339
0
  }
26340
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26341
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26342
0
    return false;
26343
0
  }
26344
0
  return true;
26345
0
}
26346
26347
MOZ_CAN_RUN_SCRIPT static bool
26348
set_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26349
0
{
26350
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginLeft", DOM, cx);
26351
0
26352
0
  binding_detail::FakeString arg0;
26353
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26354
0
    return false;
26355
0
  }
26356
0
  Maybe<AutoCEReaction> ceReaction;
26357
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26358
0
    DocGroup* docGroup = self->GetDocGroup();
26359
0
    if (docGroup) {
26360
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26361
0
    }
26362
0
  }
26363
0
  FastErrorResult rv;
26364
0
  nsIPrincipal* subjectPrincipal;
26365
0
  {
26366
0
    JS::Realm* realm = js::GetContextRealm(cx);
26367
0
    MOZ_ASSERT(realm);
26368
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26369
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26370
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26371
0
      principal = nullptr;
26372
0
    }
26373
0
26374
0
    subjectPrincipal = principal;
26375
0
  }
26376
0
  self->SetMarginLeft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26377
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26378
0
    return false;
26379
0
  }
26380
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26381
0
26382
0
  return true;
26383
0
}
26384
26385
static const JSJitInfo marginLeft_getterinfo = {
26386
  { (JSJitGetterOp)get_marginLeft },
26387
  { prototypes::id::CSS2Properties },
26388
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26389
  JSJitInfo::Getter,
26390
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26391
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26392
  false,  /* isInfallible. False in setters. */
26393
  false,  /* isMovable.  Not relevant for setters. */
26394
  false, /* isEliminatable.  Not relevant for setters. */
26395
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26396
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26397
  false,  /* isTypedMethod.  Only relevant for methods. */
26398
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26399
};
26400
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26401
static_assert(0 < 1, "There is no slot for us");
26402
static const JSJitInfo marginLeft_setterinfo = {
26403
  { (JSJitGetterOp)set_marginLeft },
26404
  { prototypes::id::CSS2Properties },
26405
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26406
  JSJitInfo::Setter,
26407
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26408
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26409
  false,  /* isInfallible. False in setters. */
26410
  false,  /* isMovable.  Not relevant for setters. */
26411
  false, /* isEliminatable.  Not relevant for setters. */
26412
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26413
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26414
  false,  /* isTypedMethod.  Only relevant for methods. */
26415
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26416
};
26417
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26418
static_assert(0 < 1, "There is no slot for us");
26419
26420
MOZ_CAN_RUN_SCRIPT static bool
26421
get_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26422
0
{
26423
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginRight", DOM, cx);
26424
0
26425
0
  FastErrorResult rv;
26426
0
  DOMString result;
26427
0
  self->GetMarginRight(result, rv);
26428
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26429
0
    return false;
26430
0
  }
26431
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26432
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26433
0
    return false;
26434
0
  }
26435
0
  return true;
26436
0
}
26437
26438
MOZ_CAN_RUN_SCRIPT static bool
26439
set_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26440
0
{
26441
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginRight", DOM, cx);
26442
0
26443
0
  binding_detail::FakeString arg0;
26444
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26445
0
    return false;
26446
0
  }
26447
0
  Maybe<AutoCEReaction> ceReaction;
26448
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26449
0
    DocGroup* docGroup = self->GetDocGroup();
26450
0
    if (docGroup) {
26451
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26452
0
    }
26453
0
  }
26454
0
  FastErrorResult rv;
26455
0
  nsIPrincipal* subjectPrincipal;
26456
0
  {
26457
0
    JS::Realm* realm = js::GetContextRealm(cx);
26458
0
    MOZ_ASSERT(realm);
26459
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26460
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26461
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26462
0
      principal = nullptr;
26463
0
    }
26464
0
26465
0
    subjectPrincipal = principal;
26466
0
  }
26467
0
  self->SetMarginRight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26468
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26469
0
    return false;
26470
0
  }
26471
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26472
0
26473
0
  return true;
26474
0
}
26475
26476
static const JSJitInfo marginRight_getterinfo = {
26477
  { (JSJitGetterOp)get_marginRight },
26478
  { prototypes::id::CSS2Properties },
26479
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26480
  JSJitInfo::Getter,
26481
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26482
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26483
  false,  /* isInfallible. False in setters. */
26484
  false,  /* isMovable.  Not relevant for setters. */
26485
  false, /* isEliminatable.  Not relevant for setters. */
26486
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26487
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26488
  false,  /* isTypedMethod.  Only relevant for methods. */
26489
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26490
};
26491
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26492
static_assert(0 < 1, "There is no slot for us");
26493
static const JSJitInfo marginRight_setterinfo = {
26494
  { (JSJitGetterOp)set_marginRight },
26495
  { prototypes::id::CSS2Properties },
26496
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26497
  JSJitInfo::Setter,
26498
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26499
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26500
  false,  /* isInfallible. False in setters. */
26501
  false,  /* isMovable.  Not relevant for setters. */
26502
  false, /* isEliminatable.  Not relevant for setters. */
26503
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26504
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26505
  false,  /* isTypedMethod.  Only relevant for methods. */
26506
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26507
};
26508
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26509
static_assert(0 < 1, "There is no slot for us");
26510
26511
MOZ_CAN_RUN_SCRIPT static bool
26512
get_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26513
0
{
26514
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marginTop", DOM, cx);
26515
0
26516
0
  FastErrorResult rv;
26517
0
  DOMString result;
26518
0
  self->GetMarginTop(result, rv);
26519
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26520
0
    return false;
26521
0
  }
26522
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26523
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26524
0
    return false;
26525
0
  }
26526
0
  return true;
26527
0
}
26528
26529
MOZ_CAN_RUN_SCRIPT static bool
26530
set_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26531
0
{
26532
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marginTop", DOM, cx);
26533
0
26534
0
  binding_detail::FakeString arg0;
26535
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26536
0
    return false;
26537
0
  }
26538
0
  Maybe<AutoCEReaction> ceReaction;
26539
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26540
0
    DocGroup* docGroup = self->GetDocGroup();
26541
0
    if (docGroup) {
26542
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26543
0
    }
26544
0
  }
26545
0
  FastErrorResult rv;
26546
0
  nsIPrincipal* subjectPrincipal;
26547
0
  {
26548
0
    JS::Realm* realm = js::GetContextRealm(cx);
26549
0
    MOZ_ASSERT(realm);
26550
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26551
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26552
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26553
0
      principal = nullptr;
26554
0
    }
26555
0
26556
0
    subjectPrincipal = principal;
26557
0
  }
26558
0
  self->SetMarginTop(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26559
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26560
0
    return false;
26561
0
  }
26562
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26563
0
26564
0
  return true;
26565
0
}
26566
26567
static const JSJitInfo marginTop_getterinfo = {
26568
  { (JSJitGetterOp)get_marginTop },
26569
  { prototypes::id::CSS2Properties },
26570
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26571
  JSJitInfo::Getter,
26572
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26573
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26574
  false,  /* isInfallible. False in setters. */
26575
  false,  /* isMovable.  Not relevant for setters. */
26576
  false, /* isEliminatable.  Not relevant for setters. */
26577
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26578
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26579
  false,  /* isTypedMethod.  Only relevant for methods. */
26580
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26581
};
26582
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26583
static_assert(0 < 1, "There is no slot for us");
26584
static const JSJitInfo marginTop_setterinfo = {
26585
  { (JSJitGetterOp)set_marginTop },
26586
  { prototypes::id::CSS2Properties },
26587
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26588
  JSJitInfo::Setter,
26589
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26590
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26591
  false,  /* isInfallible. False in setters. */
26592
  false,  /* isMovable.  Not relevant for setters. */
26593
  false, /* isEliminatable.  Not relevant for setters. */
26594
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26595
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26596
  false,  /* isTypedMethod.  Only relevant for methods. */
26597
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26598
};
26599
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26600
static_assert(0 < 1, "There is no slot for us");
26601
26602
MOZ_CAN_RUN_SCRIPT static bool
26603
get_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26604
0
{
26605
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.right", DOM, cx);
26606
0
26607
0
  FastErrorResult rv;
26608
0
  DOMString result;
26609
0
  self->GetRight(result, rv);
26610
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26611
0
    return false;
26612
0
  }
26613
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26614
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26615
0
    return false;
26616
0
  }
26617
0
  return true;
26618
0
}
26619
26620
MOZ_CAN_RUN_SCRIPT static bool
26621
set_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26622
0
{
26623
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.right", DOM, cx);
26624
0
26625
0
  binding_detail::FakeString arg0;
26626
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26627
0
    return false;
26628
0
  }
26629
0
  Maybe<AutoCEReaction> ceReaction;
26630
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26631
0
    DocGroup* docGroup = self->GetDocGroup();
26632
0
    if (docGroup) {
26633
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26634
0
    }
26635
0
  }
26636
0
  FastErrorResult rv;
26637
0
  nsIPrincipal* subjectPrincipal;
26638
0
  {
26639
0
    JS::Realm* realm = js::GetContextRealm(cx);
26640
0
    MOZ_ASSERT(realm);
26641
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26642
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26643
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26644
0
      principal = nullptr;
26645
0
    }
26646
0
26647
0
    subjectPrincipal = principal;
26648
0
  }
26649
0
  self->SetRight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26650
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26651
0
    return false;
26652
0
  }
26653
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26654
0
26655
0
  return true;
26656
0
}
26657
26658
static const JSJitInfo right_getterinfo = {
26659
  { (JSJitGetterOp)get_right },
26660
  { prototypes::id::CSS2Properties },
26661
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26662
  JSJitInfo::Getter,
26663
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26664
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26665
  false,  /* isInfallible. False in setters. */
26666
  false,  /* isMovable.  Not relevant for setters. */
26667
  false, /* isEliminatable.  Not relevant for setters. */
26668
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26669
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26670
  false,  /* isTypedMethod.  Only relevant for methods. */
26671
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26672
};
26673
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26674
static_assert(0 < 1, "There is no slot for us");
26675
static const JSJitInfo right_setterinfo = {
26676
  { (JSJitGetterOp)set_right },
26677
  { prototypes::id::CSS2Properties },
26678
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26679
  JSJitInfo::Setter,
26680
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26681
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26682
  false,  /* isInfallible. False in setters. */
26683
  false,  /* isMovable.  Not relevant for setters. */
26684
  false, /* isEliminatable.  Not relevant for setters. */
26685
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26686
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26687
  false,  /* isTypedMethod.  Only relevant for methods. */
26688
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26689
};
26690
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26691
static_assert(0 < 1, "There is no slot for us");
26692
26693
MOZ_CAN_RUN_SCRIPT static bool
26694
get_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26695
0
{
26696
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.top", DOM, cx);
26697
0
26698
0
  FastErrorResult rv;
26699
0
  DOMString result;
26700
0
  self->GetTop(result, rv);
26701
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26702
0
    return false;
26703
0
  }
26704
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26705
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26706
0
    return false;
26707
0
  }
26708
0
  return true;
26709
0
}
26710
26711
MOZ_CAN_RUN_SCRIPT static bool
26712
set_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26713
0
{
26714
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.top", DOM, cx);
26715
0
26716
0
  binding_detail::FakeString arg0;
26717
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26718
0
    return false;
26719
0
  }
26720
0
  Maybe<AutoCEReaction> ceReaction;
26721
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26722
0
    DocGroup* docGroup = self->GetDocGroup();
26723
0
    if (docGroup) {
26724
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26725
0
    }
26726
0
  }
26727
0
  FastErrorResult rv;
26728
0
  nsIPrincipal* subjectPrincipal;
26729
0
  {
26730
0
    JS::Realm* realm = js::GetContextRealm(cx);
26731
0
    MOZ_ASSERT(realm);
26732
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26733
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26734
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26735
0
      principal = nullptr;
26736
0
    }
26737
0
26738
0
    subjectPrincipal = principal;
26739
0
  }
26740
0
  self->SetTop(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26741
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26742
0
    return false;
26743
0
  }
26744
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26745
0
26746
0
  return true;
26747
0
}
26748
26749
static const JSJitInfo top_getterinfo = {
26750
  { (JSJitGetterOp)get_top },
26751
  { prototypes::id::CSS2Properties },
26752
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26753
  JSJitInfo::Getter,
26754
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26755
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26756
  false,  /* isInfallible. False in setters. */
26757
  false,  /* isMovable.  Not relevant for setters. */
26758
  false, /* isEliminatable.  Not relevant for setters. */
26759
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26760
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26761
  false,  /* isTypedMethod.  Only relevant for methods. */
26762
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26763
};
26764
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26765
static_assert(0 < 1, "There is no slot for us");
26766
static const JSJitInfo top_setterinfo = {
26767
  { (JSJitGetterOp)set_top },
26768
  { prototypes::id::CSS2Properties },
26769
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26770
  JSJitInfo::Setter,
26771
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26772
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26773
  false,  /* isInfallible. False in setters. */
26774
  false,  /* isMovable.  Not relevant for setters. */
26775
  false, /* isEliminatable.  Not relevant for setters. */
26776
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26777
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26778
  false,  /* isTypedMethod.  Only relevant for methods. */
26779
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26780
};
26781
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26782
static_assert(0 < 1, "There is no slot for us");
26783
26784
MOZ_CAN_RUN_SCRIPT static bool
26785
get_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26786
0
{
26787
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundColor", DOM, cx);
26788
0
26789
0
  FastErrorResult rv;
26790
0
  DOMString result;
26791
0
  self->GetBackgroundColor(result, rv);
26792
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26793
0
    return false;
26794
0
  }
26795
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26796
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26797
0
    return false;
26798
0
  }
26799
0
  return true;
26800
0
}
26801
26802
MOZ_CAN_RUN_SCRIPT static bool
26803
set_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26804
0
{
26805
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundColor", DOM, cx);
26806
0
26807
0
  binding_detail::FakeString arg0;
26808
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26809
0
    return false;
26810
0
  }
26811
0
  Maybe<AutoCEReaction> ceReaction;
26812
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26813
0
    DocGroup* docGroup = self->GetDocGroup();
26814
0
    if (docGroup) {
26815
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26816
0
    }
26817
0
  }
26818
0
  FastErrorResult rv;
26819
0
  nsIPrincipal* subjectPrincipal;
26820
0
  {
26821
0
    JS::Realm* realm = js::GetContextRealm(cx);
26822
0
    MOZ_ASSERT(realm);
26823
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26824
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26825
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26826
0
      principal = nullptr;
26827
0
    }
26828
0
26829
0
    subjectPrincipal = principal;
26830
0
  }
26831
0
  self->SetBackgroundColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26832
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26833
0
    return false;
26834
0
  }
26835
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26836
0
26837
0
  return true;
26838
0
}
26839
26840
static const JSJitInfo backgroundColor_getterinfo = {
26841
  { (JSJitGetterOp)get_backgroundColor },
26842
  { prototypes::id::CSS2Properties },
26843
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26844
  JSJitInfo::Getter,
26845
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26846
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26847
  false,  /* isInfallible. False in setters. */
26848
  false,  /* isMovable.  Not relevant for setters. */
26849
  false, /* isEliminatable.  Not relevant for setters. */
26850
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26851
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26852
  false,  /* isTypedMethod.  Only relevant for methods. */
26853
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26854
};
26855
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26856
static_assert(0 < 1, "There is no slot for us");
26857
static const JSJitInfo backgroundColor_setterinfo = {
26858
  { (JSJitGetterOp)set_backgroundColor },
26859
  { prototypes::id::CSS2Properties },
26860
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26861
  JSJitInfo::Setter,
26862
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26863
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26864
  false,  /* isInfallible. False in setters. */
26865
  false,  /* isMovable.  Not relevant for setters. */
26866
  false, /* isEliminatable.  Not relevant for setters. */
26867
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26868
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26869
  false,  /* isTypedMethod.  Only relevant for methods. */
26870
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26871
};
26872
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26873
static_assert(0 < 1, "There is no slot for us");
26874
26875
MOZ_CAN_RUN_SCRIPT static bool
26876
get_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26877
0
{
26878
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockEndColor", DOM, cx);
26879
0
26880
0
  FastErrorResult rv;
26881
0
  DOMString result;
26882
0
  self->GetBorderBlockEndColor(result, rv);
26883
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26884
0
    return false;
26885
0
  }
26886
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26887
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26888
0
    return false;
26889
0
  }
26890
0
  return true;
26891
0
}
26892
26893
MOZ_CAN_RUN_SCRIPT static bool
26894
set_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26895
0
{
26896
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockEndColor", DOM, cx);
26897
0
26898
0
  binding_detail::FakeString arg0;
26899
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26900
0
    return false;
26901
0
  }
26902
0
  Maybe<AutoCEReaction> ceReaction;
26903
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26904
0
    DocGroup* docGroup = self->GetDocGroup();
26905
0
    if (docGroup) {
26906
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26907
0
    }
26908
0
  }
26909
0
  FastErrorResult rv;
26910
0
  nsIPrincipal* subjectPrincipal;
26911
0
  {
26912
0
    JS::Realm* realm = js::GetContextRealm(cx);
26913
0
    MOZ_ASSERT(realm);
26914
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
26915
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
26916
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
26917
0
      principal = nullptr;
26918
0
    }
26919
0
26920
0
    subjectPrincipal = principal;
26921
0
  }
26922
0
  self->SetBorderBlockEndColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
26923
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26924
0
    return false;
26925
0
  }
26926
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26927
0
26928
0
  return true;
26929
0
}
26930
26931
static const JSJitInfo borderBlockEndColor_getterinfo = {
26932
  { (JSJitGetterOp)get_borderBlockEndColor },
26933
  { prototypes::id::CSS2Properties },
26934
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26935
  JSJitInfo::Getter,
26936
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26937
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
26938
  false,  /* isInfallible. False in setters. */
26939
  false,  /* isMovable.  Not relevant for setters. */
26940
  false, /* isEliminatable.  Not relevant for setters. */
26941
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26942
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26943
  false,  /* isTypedMethod.  Only relevant for methods. */
26944
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26945
};
26946
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26947
static_assert(0 < 1, "There is no slot for us");
26948
static const JSJitInfo borderBlockEndColor_setterinfo = {
26949
  { (JSJitGetterOp)set_borderBlockEndColor },
26950
  { prototypes::id::CSS2Properties },
26951
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
26952
  JSJitInfo::Setter,
26953
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
26954
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
26955
  false,  /* isInfallible. False in setters. */
26956
  false,  /* isMovable.  Not relevant for setters. */
26957
  false, /* isEliminatable.  Not relevant for setters. */
26958
  false, /* isAlwaysInSlot.  Only relevant for getters. */
26959
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
26960
  false,  /* isTypedMethod.  Only relevant for methods. */
26961
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
26962
};
26963
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
26964
static_assert(0 < 1, "There is no slot for us");
26965
26966
MOZ_CAN_RUN_SCRIPT static bool
26967
get_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
26968
0
{
26969
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockStartColor", DOM, cx);
26970
0
26971
0
  FastErrorResult rv;
26972
0
  DOMString result;
26973
0
  self->GetBorderBlockStartColor(result, rv);
26974
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
26975
0
    return false;
26976
0
  }
26977
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
26978
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
26979
0
    return false;
26980
0
  }
26981
0
  return true;
26982
0
}
26983
26984
MOZ_CAN_RUN_SCRIPT static bool
26985
set_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
26986
0
{
26987
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockStartColor", DOM, cx);
26988
0
26989
0
  binding_detail::FakeString arg0;
26990
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
26991
0
    return false;
26992
0
  }
26993
0
  Maybe<AutoCEReaction> ceReaction;
26994
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
26995
0
    DocGroup* docGroup = self->GetDocGroup();
26996
0
    if (docGroup) {
26997
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
26998
0
    }
26999
0
  }
27000
0
  FastErrorResult rv;
27001
0
  nsIPrincipal* subjectPrincipal;
27002
0
  {
27003
0
    JS::Realm* realm = js::GetContextRealm(cx);
27004
0
    MOZ_ASSERT(realm);
27005
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27006
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27007
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27008
0
      principal = nullptr;
27009
0
    }
27010
0
27011
0
    subjectPrincipal = principal;
27012
0
  }
27013
0
  self->SetBorderBlockStartColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27014
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27015
0
    return false;
27016
0
  }
27017
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27018
0
27019
0
  return true;
27020
0
}
27021
27022
static const JSJitInfo borderBlockStartColor_getterinfo = {
27023
  { (JSJitGetterOp)get_borderBlockStartColor },
27024
  { prototypes::id::CSS2Properties },
27025
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27026
  JSJitInfo::Getter,
27027
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27028
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27029
  false,  /* isInfallible. False in setters. */
27030
  false,  /* isMovable.  Not relevant for setters. */
27031
  false, /* isEliminatable.  Not relevant for setters. */
27032
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27033
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27034
  false,  /* isTypedMethod.  Only relevant for methods. */
27035
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27036
};
27037
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27038
static_assert(0 < 1, "There is no slot for us");
27039
static const JSJitInfo borderBlockStartColor_setterinfo = {
27040
  { (JSJitGetterOp)set_borderBlockStartColor },
27041
  { prototypes::id::CSS2Properties },
27042
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27043
  JSJitInfo::Setter,
27044
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27045
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27046
  false,  /* isInfallible. False in setters. */
27047
  false,  /* isMovable.  Not relevant for setters. */
27048
  false, /* isEliminatable.  Not relevant for setters. */
27049
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27050
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27051
  false,  /* isTypedMethod.  Only relevant for methods. */
27052
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27053
};
27054
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27055
static_assert(0 < 1, "There is no slot for us");
27056
27057
MOZ_CAN_RUN_SCRIPT static bool
27058
get_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27059
0
{
27060
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottomColor", DOM, cx);
27061
0
27062
0
  FastErrorResult rv;
27063
0
  DOMString result;
27064
0
  self->GetBorderBottomColor(result, rv);
27065
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27066
0
    return false;
27067
0
  }
27068
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27069
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27070
0
    return false;
27071
0
  }
27072
0
  return true;
27073
0
}
27074
27075
MOZ_CAN_RUN_SCRIPT static bool
27076
set_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27077
0
{
27078
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottomColor", DOM, cx);
27079
0
27080
0
  binding_detail::FakeString arg0;
27081
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27082
0
    return false;
27083
0
  }
27084
0
  Maybe<AutoCEReaction> ceReaction;
27085
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27086
0
    DocGroup* docGroup = self->GetDocGroup();
27087
0
    if (docGroup) {
27088
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27089
0
    }
27090
0
  }
27091
0
  FastErrorResult rv;
27092
0
  nsIPrincipal* subjectPrincipal;
27093
0
  {
27094
0
    JS::Realm* realm = js::GetContextRealm(cx);
27095
0
    MOZ_ASSERT(realm);
27096
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27097
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27098
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27099
0
      principal = nullptr;
27100
0
    }
27101
0
27102
0
    subjectPrincipal = principal;
27103
0
  }
27104
0
  self->SetBorderBottomColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27105
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27106
0
    return false;
27107
0
  }
27108
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27109
0
27110
0
  return true;
27111
0
}
27112
27113
static const JSJitInfo borderBottomColor_getterinfo = {
27114
  { (JSJitGetterOp)get_borderBottomColor },
27115
  { prototypes::id::CSS2Properties },
27116
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27117
  JSJitInfo::Getter,
27118
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27119
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27120
  false,  /* isInfallible. False in setters. */
27121
  false,  /* isMovable.  Not relevant for setters. */
27122
  false, /* isEliminatable.  Not relevant for setters. */
27123
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27124
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27125
  false,  /* isTypedMethod.  Only relevant for methods. */
27126
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27127
};
27128
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27129
static_assert(0 < 1, "There is no slot for us");
27130
static const JSJitInfo borderBottomColor_setterinfo = {
27131
  { (JSJitGetterOp)set_borderBottomColor },
27132
  { prototypes::id::CSS2Properties },
27133
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27134
  JSJitInfo::Setter,
27135
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27136
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27137
  false,  /* isInfallible. False in setters. */
27138
  false,  /* isMovable.  Not relevant for setters. */
27139
  false, /* isEliminatable.  Not relevant for setters. */
27140
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27141
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27142
  false,  /* isTypedMethod.  Only relevant for methods. */
27143
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27144
};
27145
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27146
static_assert(0 < 1, "There is no slot for us");
27147
27148
MOZ_CAN_RUN_SCRIPT static bool
27149
get_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27150
0
{
27151
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineEndColor", DOM, cx);
27152
0
27153
0
  FastErrorResult rv;
27154
0
  DOMString result;
27155
0
  self->GetBorderInlineEndColor(result, rv);
27156
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27157
0
    return false;
27158
0
  }
27159
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27160
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27161
0
    return false;
27162
0
  }
27163
0
  return true;
27164
0
}
27165
27166
MOZ_CAN_RUN_SCRIPT static bool
27167
set_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27168
0
{
27169
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineEndColor", DOM, cx);
27170
0
27171
0
  binding_detail::FakeString arg0;
27172
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27173
0
    return false;
27174
0
  }
27175
0
  Maybe<AutoCEReaction> ceReaction;
27176
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27177
0
    DocGroup* docGroup = self->GetDocGroup();
27178
0
    if (docGroup) {
27179
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27180
0
    }
27181
0
  }
27182
0
  FastErrorResult rv;
27183
0
  nsIPrincipal* subjectPrincipal;
27184
0
  {
27185
0
    JS::Realm* realm = js::GetContextRealm(cx);
27186
0
    MOZ_ASSERT(realm);
27187
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27188
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27189
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27190
0
      principal = nullptr;
27191
0
    }
27192
0
27193
0
    subjectPrincipal = principal;
27194
0
  }
27195
0
  self->SetBorderInlineEndColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27196
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27197
0
    return false;
27198
0
  }
27199
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27200
0
27201
0
  return true;
27202
0
}
27203
27204
static const JSJitInfo borderInlineEndColor_getterinfo = {
27205
  { (JSJitGetterOp)get_borderInlineEndColor },
27206
  { prototypes::id::CSS2Properties },
27207
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27208
  JSJitInfo::Getter,
27209
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27210
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27211
  false,  /* isInfallible. False in setters. */
27212
  false,  /* isMovable.  Not relevant for setters. */
27213
  false, /* isEliminatable.  Not relevant for setters. */
27214
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27215
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27216
  false,  /* isTypedMethod.  Only relevant for methods. */
27217
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27218
};
27219
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27220
static_assert(0 < 1, "There is no slot for us");
27221
static const JSJitInfo borderInlineEndColor_setterinfo = {
27222
  { (JSJitGetterOp)set_borderInlineEndColor },
27223
  { prototypes::id::CSS2Properties },
27224
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27225
  JSJitInfo::Setter,
27226
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27227
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27228
  false,  /* isInfallible. False in setters. */
27229
  false,  /* isMovable.  Not relevant for setters. */
27230
  false, /* isEliminatable.  Not relevant for setters. */
27231
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27232
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27233
  false,  /* isTypedMethod.  Only relevant for methods. */
27234
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27235
};
27236
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27237
static_assert(0 < 1, "There is no slot for us");
27238
27239
MOZ_CAN_RUN_SCRIPT static bool
27240
get_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27241
0
{
27242
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineStartColor", DOM, cx);
27243
0
27244
0
  FastErrorResult rv;
27245
0
  DOMString result;
27246
0
  self->GetBorderInlineStartColor(result, rv);
27247
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27248
0
    return false;
27249
0
  }
27250
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27251
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27252
0
    return false;
27253
0
  }
27254
0
  return true;
27255
0
}
27256
27257
MOZ_CAN_RUN_SCRIPT static bool
27258
set_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27259
0
{
27260
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineStartColor", DOM, cx);
27261
0
27262
0
  binding_detail::FakeString arg0;
27263
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27264
0
    return false;
27265
0
  }
27266
0
  Maybe<AutoCEReaction> ceReaction;
27267
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27268
0
    DocGroup* docGroup = self->GetDocGroup();
27269
0
    if (docGroup) {
27270
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27271
0
    }
27272
0
  }
27273
0
  FastErrorResult rv;
27274
0
  nsIPrincipal* subjectPrincipal;
27275
0
  {
27276
0
    JS::Realm* realm = js::GetContextRealm(cx);
27277
0
    MOZ_ASSERT(realm);
27278
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27279
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27280
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27281
0
      principal = nullptr;
27282
0
    }
27283
0
27284
0
    subjectPrincipal = principal;
27285
0
  }
27286
0
  self->SetBorderInlineStartColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27287
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27288
0
    return false;
27289
0
  }
27290
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27291
0
27292
0
  return true;
27293
0
}
27294
27295
static const JSJitInfo borderInlineStartColor_getterinfo = {
27296
  { (JSJitGetterOp)get_borderInlineStartColor },
27297
  { prototypes::id::CSS2Properties },
27298
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27299
  JSJitInfo::Getter,
27300
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27301
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27302
  false,  /* isInfallible. False in setters. */
27303
  false,  /* isMovable.  Not relevant for setters. */
27304
  false, /* isEliminatable.  Not relevant for setters. */
27305
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27306
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27307
  false,  /* isTypedMethod.  Only relevant for methods. */
27308
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27309
};
27310
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27311
static_assert(0 < 1, "There is no slot for us");
27312
static const JSJitInfo borderInlineStartColor_setterinfo = {
27313
  { (JSJitGetterOp)set_borderInlineStartColor },
27314
  { prototypes::id::CSS2Properties },
27315
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27316
  JSJitInfo::Setter,
27317
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27318
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27319
  false,  /* isInfallible. False in setters. */
27320
  false,  /* isMovable.  Not relevant for setters. */
27321
  false, /* isEliminatable.  Not relevant for setters. */
27322
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27323
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27324
  false,  /* isTypedMethod.  Only relevant for methods. */
27325
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27326
};
27327
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27328
static_assert(0 < 1, "There is no slot for us");
27329
27330
MOZ_CAN_RUN_SCRIPT static bool
27331
get_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27332
0
{
27333
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderLeftColor", DOM, cx);
27334
0
27335
0
  FastErrorResult rv;
27336
0
  DOMString result;
27337
0
  self->GetBorderLeftColor(result, rv);
27338
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27339
0
    return false;
27340
0
  }
27341
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27342
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27343
0
    return false;
27344
0
  }
27345
0
  return true;
27346
0
}
27347
27348
MOZ_CAN_RUN_SCRIPT static bool
27349
set_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27350
0
{
27351
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderLeftColor", DOM, cx);
27352
0
27353
0
  binding_detail::FakeString arg0;
27354
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27355
0
    return false;
27356
0
  }
27357
0
  Maybe<AutoCEReaction> ceReaction;
27358
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27359
0
    DocGroup* docGroup = self->GetDocGroup();
27360
0
    if (docGroup) {
27361
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27362
0
    }
27363
0
  }
27364
0
  FastErrorResult rv;
27365
0
  nsIPrincipal* subjectPrincipal;
27366
0
  {
27367
0
    JS::Realm* realm = js::GetContextRealm(cx);
27368
0
    MOZ_ASSERT(realm);
27369
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27370
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27371
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27372
0
      principal = nullptr;
27373
0
    }
27374
0
27375
0
    subjectPrincipal = principal;
27376
0
  }
27377
0
  self->SetBorderLeftColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27378
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27379
0
    return false;
27380
0
  }
27381
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27382
0
27383
0
  return true;
27384
0
}
27385
27386
static const JSJitInfo borderLeftColor_getterinfo = {
27387
  { (JSJitGetterOp)get_borderLeftColor },
27388
  { prototypes::id::CSS2Properties },
27389
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27390
  JSJitInfo::Getter,
27391
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27392
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27393
  false,  /* isInfallible. False in setters. */
27394
  false,  /* isMovable.  Not relevant for setters. */
27395
  false, /* isEliminatable.  Not relevant for setters. */
27396
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27397
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27398
  false,  /* isTypedMethod.  Only relevant for methods. */
27399
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27400
};
27401
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27402
static_assert(0 < 1, "There is no slot for us");
27403
static const JSJitInfo borderLeftColor_setterinfo = {
27404
  { (JSJitGetterOp)set_borderLeftColor },
27405
  { prototypes::id::CSS2Properties },
27406
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27407
  JSJitInfo::Setter,
27408
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27409
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27410
  false,  /* isInfallible. False in setters. */
27411
  false,  /* isMovable.  Not relevant for setters. */
27412
  false, /* isEliminatable.  Not relevant for setters. */
27413
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27414
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27415
  false,  /* isTypedMethod.  Only relevant for methods. */
27416
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27417
};
27418
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27419
static_assert(0 < 1, "There is no slot for us");
27420
27421
MOZ_CAN_RUN_SCRIPT static bool
27422
get_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27423
0
{
27424
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderRightColor", DOM, cx);
27425
0
27426
0
  FastErrorResult rv;
27427
0
  DOMString result;
27428
0
  self->GetBorderRightColor(result, rv);
27429
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27430
0
    return false;
27431
0
  }
27432
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27433
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27434
0
    return false;
27435
0
  }
27436
0
  return true;
27437
0
}
27438
27439
MOZ_CAN_RUN_SCRIPT static bool
27440
set_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27441
0
{
27442
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderRightColor", DOM, cx);
27443
0
27444
0
  binding_detail::FakeString arg0;
27445
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27446
0
    return false;
27447
0
  }
27448
0
  Maybe<AutoCEReaction> ceReaction;
27449
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27450
0
    DocGroup* docGroup = self->GetDocGroup();
27451
0
    if (docGroup) {
27452
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27453
0
    }
27454
0
  }
27455
0
  FastErrorResult rv;
27456
0
  nsIPrincipal* subjectPrincipal;
27457
0
  {
27458
0
    JS::Realm* realm = js::GetContextRealm(cx);
27459
0
    MOZ_ASSERT(realm);
27460
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27461
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27462
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27463
0
      principal = nullptr;
27464
0
    }
27465
0
27466
0
    subjectPrincipal = principal;
27467
0
  }
27468
0
  self->SetBorderRightColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27469
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27470
0
    return false;
27471
0
  }
27472
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27473
0
27474
0
  return true;
27475
0
}
27476
27477
static const JSJitInfo borderRightColor_getterinfo = {
27478
  { (JSJitGetterOp)get_borderRightColor },
27479
  { prototypes::id::CSS2Properties },
27480
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27481
  JSJitInfo::Getter,
27482
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27483
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27484
  false,  /* isInfallible. False in setters. */
27485
  false,  /* isMovable.  Not relevant for setters. */
27486
  false, /* isEliminatable.  Not relevant for setters. */
27487
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27488
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27489
  false,  /* isTypedMethod.  Only relevant for methods. */
27490
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27491
};
27492
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27493
static_assert(0 < 1, "There is no slot for us");
27494
static const JSJitInfo borderRightColor_setterinfo = {
27495
  { (JSJitGetterOp)set_borderRightColor },
27496
  { prototypes::id::CSS2Properties },
27497
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27498
  JSJitInfo::Setter,
27499
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27500
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27501
  false,  /* isInfallible. False in setters. */
27502
  false,  /* isMovable.  Not relevant for setters. */
27503
  false, /* isEliminatable.  Not relevant for setters. */
27504
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27505
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27506
  false,  /* isTypedMethod.  Only relevant for methods. */
27507
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27508
};
27509
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27510
static_assert(0 < 1, "There is no slot for us");
27511
27512
MOZ_CAN_RUN_SCRIPT static bool
27513
get_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27514
0
{
27515
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTopColor", DOM, cx);
27516
0
27517
0
  FastErrorResult rv;
27518
0
  DOMString result;
27519
0
  self->GetBorderTopColor(result, rv);
27520
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27521
0
    return false;
27522
0
  }
27523
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27524
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27525
0
    return false;
27526
0
  }
27527
0
  return true;
27528
0
}
27529
27530
MOZ_CAN_RUN_SCRIPT static bool
27531
set_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27532
0
{
27533
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTopColor", DOM, cx);
27534
0
27535
0
  binding_detail::FakeString arg0;
27536
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27537
0
    return false;
27538
0
  }
27539
0
  Maybe<AutoCEReaction> ceReaction;
27540
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27541
0
    DocGroup* docGroup = self->GetDocGroup();
27542
0
    if (docGroup) {
27543
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27544
0
    }
27545
0
  }
27546
0
  FastErrorResult rv;
27547
0
  nsIPrincipal* subjectPrincipal;
27548
0
  {
27549
0
    JS::Realm* realm = js::GetContextRealm(cx);
27550
0
    MOZ_ASSERT(realm);
27551
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27552
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27553
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27554
0
      principal = nullptr;
27555
0
    }
27556
0
27557
0
    subjectPrincipal = principal;
27558
0
  }
27559
0
  self->SetBorderTopColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27560
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27561
0
    return false;
27562
0
  }
27563
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27564
0
27565
0
  return true;
27566
0
}
27567
27568
static const JSJitInfo borderTopColor_getterinfo = {
27569
  { (JSJitGetterOp)get_borderTopColor },
27570
  { prototypes::id::CSS2Properties },
27571
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27572
  JSJitInfo::Getter,
27573
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27574
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27575
  false,  /* isInfallible. False in setters. */
27576
  false,  /* isMovable.  Not relevant for setters. */
27577
  false, /* isEliminatable.  Not relevant for setters. */
27578
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27579
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27580
  false,  /* isTypedMethod.  Only relevant for methods. */
27581
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27582
};
27583
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27584
static_assert(0 < 1, "There is no slot for us");
27585
static const JSJitInfo borderTopColor_setterinfo = {
27586
  { (JSJitGetterOp)set_borderTopColor },
27587
  { prototypes::id::CSS2Properties },
27588
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27589
  JSJitInfo::Setter,
27590
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27591
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27592
  false,  /* isInfallible. False in setters. */
27593
  false,  /* isMovable.  Not relevant for setters. */
27594
  false, /* isEliminatable.  Not relevant for setters. */
27595
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27596
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27597
  false,  /* isTypedMethod.  Only relevant for methods. */
27598
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27599
};
27600
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27601
static_assert(0 < 1, "There is no slot for us");
27602
27603
MOZ_CAN_RUN_SCRIPT static bool
27604
get_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27605
0
{
27606
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnRuleColor", DOM, cx);
27607
0
27608
0
  FastErrorResult rv;
27609
0
  DOMString result;
27610
0
  self->GetColumnRuleColor(result, rv);
27611
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27612
0
    return false;
27613
0
  }
27614
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27615
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27616
0
    return false;
27617
0
  }
27618
0
  return true;
27619
0
}
27620
27621
MOZ_CAN_RUN_SCRIPT static bool
27622
set_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27623
0
{
27624
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnRuleColor", DOM, cx);
27625
0
27626
0
  binding_detail::FakeString arg0;
27627
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27628
0
    return false;
27629
0
  }
27630
0
  Maybe<AutoCEReaction> ceReaction;
27631
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27632
0
    DocGroup* docGroup = self->GetDocGroup();
27633
0
    if (docGroup) {
27634
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27635
0
    }
27636
0
  }
27637
0
  FastErrorResult rv;
27638
0
  nsIPrincipal* subjectPrincipal;
27639
0
  {
27640
0
    JS::Realm* realm = js::GetContextRealm(cx);
27641
0
    MOZ_ASSERT(realm);
27642
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27643
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27644
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27645
0
      principal = nullptr;
27646
0
    }
27647
0
27648
0
    subjectPrincipal = principal;
27649
0
  }
27650
0
  self->SetColumnRuleColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27651
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27652
0
    return false;
27653
0
  }
27654
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27655
0
27656
0
  return true;
27657
0
}
27658
27659
static const JSJitInfo columnRuleColor_getterinfo = {
27660
  { (JSJitGetterOp)get_columnRuleColor },
27661
  { prototypes::id::CSS2Properties },
27662
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27663
  JSJitInfo::Getter,
27664
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27665
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27666
  false,  /* isInfallible. False in setters. */
27667
  false,  /* isMovable.  Not relevant for setters. */
27668
  false, /* isEliminatable.  Not relevant for setters. */
27669
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27670
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27671
  false,  /* isTypedMethod.  Only relevant for methods. */
27672
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27673
};
27674
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27675
static_assert(0 < 1, "There is no slot for us");
27676
static const JSJitInfo columnRuleColor_setterinfo = {
27677
  { (JSJitGetterOp)set_columnRuleColor },
27678
  { prototypes::id::CSS2Properties },
27679
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27680
  JSJitInfo::Setter,
27681
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27682
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27683
  false,  /* isInfallible. False in setters. */
27684
  false,  /* isMovable.  Not relevant for setters. */
27685
  false, /* isEliminatable.  Not relevant for setters. */
27686
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27687
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27688
  false,  /* isTypedMethod.  Only relevant for methods. */
27689
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27690
};
27691
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27692
static_assert(0 < 1, "There is no slot for us");
27693
27694
MOZ_CAN_RUN_SCRIPT static bool
27695
get_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27696
0
{
27697
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.floodColor", DOM, cx);
27698
0
27699
0
  FastErrorResult rv;
27700
0
  DOMString result;
27701
0
  self->GetFloodColor(result, rv);
27702
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27703
0
    return false;
27704
0
  }
27705
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27706
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27707
0
    return false;
27708
0
  }
27709
0
  return true;
27710
0
}
27711
27712
MOZ_CAN_RUN_SCRIPT static bool
27713
set_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27714
0
{
27715
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.floodColor", DOM, cx);
27716
0
27717
0
  binding_detail::FakeString arg0;
27718
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27719
0
    return false;
27720
0
  }
27721
0
  Maybe<AutoCEReaction> ceReaction;
27722
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27723
0
    DocGroup* docGroup = self->GetDocGroup();
27724
0
    if (docGroup) {
27725
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27726
0
    }
27727
0
  }
27728
0
  FastErrorResult rv;
27729
0
  nsIPrincipal* subjectPrincipal;
27730
0
  {
27731
0
    JS::Realm* realm = js::GetContextRealm(cx);
27732
0
    MOZ_ASSERT(realm);
27733
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27734
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27735
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27736
0
      principal = nullptr;
27737
0
    }
27738
0
27739
0
    subjectPrincipal = principal;
27740
0
  }
27741
0
  self->SetFloodColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27742
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27743
0
    return false;
27744
0
  }
27745
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27746
0
27747
0
  return true;
27748
0
}
27749
27750
static const JSJitInfo floodColor_getterinfo = {
27751
  { (JSJitGetterOp)get_floodColor },
27752
  { prototypes::id::CSS2Properties },
27753
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27754
  JSJitInfo::Getter,
27755
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27756
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27757
  false,  /* isInfallible. False in setters. */
27758
  false,  /* isMovable.  Not relevant for setters. */
27759
  false, /* isEliminatable.  Not relevant for setters. */
27760
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27761
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27762
  false,  /* isTypedMethod.  Only relevant for methods. */
27763
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27764
};
27765
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27766
static_assert(0 < 1, "There is no slot for us");
27767
static const JSJitInfo floodColor_setterinfo = {
27768
  { (JSJitGetterOp)set_floodColor },
27769
  { prototypes::id::CSS2Properties },
27770
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27771
  JSJitInfo::Setter,
27772
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27773
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27774
  false,  /* isInfallible. False in setters. */
27775
  false,  /* isMovable.  Not relevant for setters. */
27776
  false, /* isEliminatable.  Not relevant for setters. */
27777
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27778
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27779
  false,  /* isTypedMethod.  Only relevant for methods. */
27780
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27781
};
27782
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27783
static_assert(0 < 1, "There is no slot for us");
27784
27785
MOZ_CAN_RUN_SCRIPT static bool
27786
get_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27787
0
{
27788
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.lightingColor", DOM, cx);
27789
0
27790
0
  FastErrorResult rv;
27791
0
  DOMString result;
27792
0
  self->GetLightingColor(result, rv);
27793
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27794
0
    return false;
27795
0
  }
27796
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27797
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27798
0
    return false;
27799
0
  }
27800
0
  return true;
27801
0
}
27802
27803
MOZ_CAN_RUN_SCRIPT static bool
27804
set_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27805
0
{
27806
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.lightingColor", DOM, cx);
27807
0
27808
0
  binding_detail::FakeString arg0;
27809
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27810
0
    return false;
27811
0
  }
27812
0
  Maybe<AutoCEReaction> ceReaction;
27813
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27814
0
    DocGroup* docGroup = self->GetDocGroup();
27815
0
    if (docGroup) {
27816
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27817
0
    }
27818
0
  }
27819
0
  FastErrorResult rv;
27820
0
  nsIPrincipal* subjectPrincipal;
27821
0
  {
27822
0
    JS::Realm* realm = js::GetContextRealm(cx);
27823
0
    MOZ_ASSERT(realm);
27824
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27825
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27826
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27827
0
      principal = nullptr;
27828
0
    }
27829
0
27830
0
    subjectPrincipal = principal;
27831
0
  }
27832
0
  self->SetLightingColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27833
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27834
0
    return false;
27835
0
  }
27836
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27837
0
27838
0
  return true;
27839
0
}
27840
27841
static const JSJitInfo lightingColor_getterinfo = {
27842
  { (JSJitGetterOp)get_lightingColor },
27843
  { prototypes::id::CSS2Properties },
27844
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27845
  JSJitInfo::Getter,
27846
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27847
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27848
  false,  /* isInfallible. False in setters. */
27849
  false,  /* isMovable.  Not relevant for setters. */
27850
  false, /* isEliminatable.  Not relevant for setters. */
27851
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27852
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27853
  false,  /* isTypedMethod.  Only relevant for methods. */
27854
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27855
};
27856
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27857
static_assert(0 < 1, "There is no slot for us");
27858
static const JSJitInfo lightingColor_setterinfo = {
27859
  { (JSJitGetterOp)set_lightingColor },
27860
  { prototypes::id::CSS2Properties },
27861
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27862
  JSJitInfo::Setter,
27863
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27864
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27865
  false,  /* isInfallible. False in setters. */
27866
  false,  /* isMovable.  Not relevant for setters. */
27867
  false, /* isEliminatable.  Not relevant for setters. */
27868
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27869
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27870
  false,  /* isTypedMethod.  Only relevant for methods. */
27871
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27872
};
27873
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27874
static_assert(0 < 1, "There is no slot for us");
27875
27876
MOZ_CAN_RUN_SCRIPT static bool
27877
get_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27878
0
{
27879
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.outlineColor", DOM, cx);
27880
0
27881
0
  FastErrorResult rv;
27882
0
  DOMString result;
27883
0
  self->GetOutlineColor(result, rv);
27884
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27885
0
    return false;
27886
0
  }
27887
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27888
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27889
0
    return false;
27890
0
  }
27891
0
  return true;
27892
0
}
27893
27894
MOZ_CAN_RUN_SCRIPT static bool
27895
set_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27896
0
{
27897
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.outlineColor", DOM, cx);
27898
0
27899
0
  binding_detail::FakeString arg0;
27900
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27901
0
    return false;
27902
0
  }
27903
0
  Maybe<AutoCEReaction> ceReaction;
27904
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27905
0
    DocGroup* docGroup = self->GetDocGroup();
27906
0
    if (docGroup) {
27907
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27908
0
    }
27909
0
  }
27910
0
  FastErrorResult rv;
27911
0
  nsIPrincipal* subjectPrincipal;
27912
0
  {
27913
0
    JS::Realm* realm = js::GetContextRealm(cx);
27914
0
    MOZ_ASSERT(realm);
27915
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
27916
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
27917
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
27918
0
      principal = nullptr;
27919
0
    }
27920
0
27921
0
    subjectPrincipal = principal;
27922
0
  }
27923
0
  self->SetOutlineColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
27924
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27925
0
    return false;
27926
0
  }
27927
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27928
0
27929
0
  return true;
27930
0
}
27931
27932
static const JSJitInfo outlineColor_getterinfo = {
27933
  { (JSJitGetterOp)get_outlineColor },
27934
  { prototypes::id::CSS2Properties },
27935
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27936
  JSJitInfo::Getter,
27937
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27938
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
27939
  false,  /* isInfallible. False in setters. */
27940
  false,  /* isMovable.  Not relevant for setters. */
27941
  false, /* isEliminatable.  Not relevant for setters. */
27942
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27943
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27944
  false,  /* isTypedMethod.  Only relevant for methods. */
27945
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27946
};
27947
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27948
static_assert(0 < 1, "There is no slot for us");
27949
static const JSJitInfo outlineColor_setterinfo = {
27950
  { (JSJitGetterOp)set_outlineColor },
27951
  { prototypes::id::CSS2Properties },
27952
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
27953
  JSJitInfo::Setter,
27954
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
27955
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
27956
  false,  /* isInfallible. False in setters. */
27957
  false,  /* isMovable.  Not relevant for setters. */
27958
  false, /* isEliminatable.  Not relevant for setters. */
27959
  false, /* isAlwaysInSlot.  Only relevant for getters. */
27960
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
27961
  false,  /* isTypedMethod.  Only relevant for methods. */
27962
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
27963
};
27964
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
27965
static_assert(0 < 1, "There is no slot for us");
27966
27967
MOZ_CAN_RUN_SCRIPT static bool
27968
get_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
27969
0
{
27970
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.stopColor", DOM, cx);
27971
0
27972
0
  FastErrorResult rv;
27973
0
  DOMString result;
27974
0
  self->GetStopColor(result, rv);
27975
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
27976
0
    return false;
27977
0
  }
27978
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
27979
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
27980
0
    return false;
27981
0
  }
27982
0
  return true;
27983
0
}
27984
27985
MOZ_CAN_RUN_SCRIPT static bool
27986
set_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
27987
0
{
27988
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.stopColor", DOM, cx);
27989
0
27990
0
  binding_detail::FakeString arg0;
27991
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
27992
0
    return false;
27993
0
  }
27994
0
  Maybe<AutoCEReaction> ceReaction;
27995
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
27996
0
    DocGroup* docGroup = self->GetDocGroup();
27997
0
    if (docGroup) {
27998
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
27999
0
    }
28000
0
  }
28001
0
  FastErrorResult rv;
28002
0
  nsIPrincipal* subjectPrincipal;
28003
0
  {
28004
0
    JS::Realm* realm = js::GetContextRealm(cx);
28005
0
    MOZ_ASSERT(realm);
28006
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28007
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28008
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28009
0
      principal = nullptr;
28010
0
    }
28011
0
28012
0
    subjectPrincipal = principal;
28013
0
  }
28014
0
  self->SetStopColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28015
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28016
0
    return false;
28017
0
  }
28018
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28019
0
28020
0
  return true;
28021
0
}
28022
28023
static const JSJitInfo stopColor_getterinfo = {
28024
  { (JSJitGetterOp)get_stopColor },
28025
  { prototypes::id::CSS2Properties },
28026
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28027
  JSJitInfo::Getter,
28028
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28029
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28030
  false,  /* isInfallible. False in setters. */
28031
  false,  /* isMovable.  Not relevant for setters. */
28032
  false, /* isEliminatable.  Not relevant for setters. */
28033
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28034
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28035
  false,  /* isTypedMethod.  Only relevant for methods. */
28036
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28037
};
28038
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28039
static_assert(0 < 1, "There is no slot for us");
28040
static const JSJitInfo stopColor_setterinfo = {
28041
  { (JSJitGetterOp)set_stopColor },
28042
  { prototypes::id::CSS2Properties },
28043
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28044
  JSJitInfo::Setter,
28045
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28046
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28047
  false,  /* isInfallible. False in setters. */
28048
  false,  /* isMovable.  Not relevant for setters. */
28049
  false, /* isEliminatable.  Not relevant for setters. */
28050
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28051
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28052
  false,  /* isTypedMethod.  Only relevant for methods. */
28053
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28054
};
28055
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28056
static_assert(0 < 1, "There is no slot for us");
28057
28058
MOZ_CAN_RUN_SCRIPT static bool
28059
get_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28060
0
{
28061
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textDecorationColor", DOM, cx);
28062
0
28063
0
  FastErrorResult rv;
28064
0
  DOMString result;
28065
0
  self->GetTextDecorationColor(result, rv);
28066
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28067
0
    return false;
28068
0
  }
28069
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28070
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28071
0
    return false;
28072
0
  }
28073
0
  return true;
28074
0
}
28075
28076
MOZ_CAN_RUN_SCRIPT static bool
28077
set_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28078
0
{
28079
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textDecorationColor", DOM, cx);
28080
0
28081
0
  binding_detail::FakeString arg0;
28082
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28083
0
    return false;
28084
0
  }
28085
0
  Maybe<AutoCEReaction> ceReaction;
28086
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28087
0
    DocGroup* docGroup = self->GetDocGroup();
28088
0
    if (docGroup) {
28089
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28090
0
    }
28091
0
  }
28092
0
  FastErrorResult rv;
28093
0
  nsIPrincipal* subjectPrincipal;
28094
0
  {
28095
0
    JS::Realm* realm = js::GetContextRealm(cx);
28096
0
    MOZ_ASSERT(realm);
28097
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28098
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28099
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28100
0
      principal = nullptr;
28101
0
    }
28102
0
28103
0
    subjectPrincipal = principal;
28104
0
  }
28105
0
  self->SetTextDecorationColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28106
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28107
0
    return false;
28108
0
  }
28109
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28110
0
28111
0
  return true;
28112
0
}
28113
28114
static const JSJitInfo textDecorationColor_getterinfo = {
28115
  { (JSJitGetterOp)get_textDecorationColor },
28116
  { prototypes::id::CSS2Properties },
28117
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28118
  JSJitInfo::Getter,
28119
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28120
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28121
  false,  /* isInfallible. False in setters. */
28122
  false,  /* isMovable.  Not relevant for setters. */
28123
  false, /* isEliminatable.  Not relevant for setters. */
28124
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28125
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28126
  false,  /* isTypedMethod.  Only relevant for methods. */
28127
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28128
};
28129
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28130
static_assert(0 < 1, "There is no slot for us");
28131
static const JSJitInfo textDecorationColor_setterinfo = {
28132
  { (JSJitGetterOp)set_textDecorationColor },
28133
  { prototypes::id::CSS2Properties },
28134
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28135
  JSJitInfo::Setter,
28136
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28137
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28138
  false,  /* isInfallible. False in setters. */
28139
  false,  /* isMovable.  Not relevant for setters. */
28140
  false, /* isEliminatable.  Not relevant for setters. */
28141
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28142
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28143
  false,  /* isTypedMethod.  Only relevant for methods. */
28144
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28145
};
28146
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28147
static_assert(0 < 1, "There is no slot for us");
28148
28149
MOZ_CAN_RUN_SCRIPT static bool
28150
get_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28151
0
{
28152
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textEmphasisColor", DOM, cx);
28153
0
28154
0
  FastErrorResult rv;
28155
0
  DOMString result;
28156
0
  self->GetTextEmphasisColor(result, rv);
28157
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28158
0
    return false;
28159
0
  }
28160
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28161
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28162
0
    return false;
28163
0
  }
28164
0
  return true;
28165
0
}
28166
28167
MOZ_CAN_RUN_SCRIPT static bool
28168
set_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28169
0
{
28170
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textEmphasisColor", DOM, cx);
28171
0
28172
0
  binding_detail::FakeString arg0;
28173
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28174
0
    return false;
28175
0
  }
28176
0
  Maybe<AutoCEReaction> ceReaction;
28177
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28178
0
    DocGroup* docGroup = self->GetDocGroup();
28179
0
    if (docGroup) {
28180
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28181
0
    }
28182
0
  }
28183
0
  FastErrorResult rv;
28184
0
  nsIPrincipal* subjectPrincipal;
28185
0
  {
28186
0
    JS::Realm* realm = js::GetContextRealm(cx);
28187
0
    MOZ_ASSERT(realm);
28188
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28189
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28190
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28191
0
      principal = nullptr;
28192
0
    }
28193
0
28194
0
    subjectPrincipal = principal;
28195
0
  }
28196
0
  self->SetTextEmphasisColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28197
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28198
0
    return false;
28199
0
  }
28200
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28201
0
28202
0
  return true;
28203
0
}
28204
28205
static const JSJitInfo textEmphasisColor_getterinfo = {
28206
  { (JSJitGetterOp)get_textEmphasisColor },
28207
  { prototypes::id::CSS2Properties },
28208
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28209
  JSJitInfo::Getter,
28210
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28211
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28212
  false,  /* isInfallible. False in setters. */
28213
  false,  /* isMovable.  Not relevant for setters. */
28214
  false, /* isEliminatable.  Not relevant for setters. */
28215
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28216
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28217
  false,  /* isTypedMethod.  Only relevant for methods. */
28218
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28219
};
28220
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28221
static_assert(0 < 1, "There is no slot for us");
28222
static const JSJitInfo textEmphasisColor_setterinfo = {
28223
  { (JSJitGetterOp)set_textEmphasisColor },
28224
  { prototypes::id::CSS2Properties },
28225
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28226
  JSJitInfo::Setter,
28227
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28228
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28229
  false,  /* isInfallible. False in setters. */
28230
  false,  /* isMovable.  Not relevant for setters. */
28231
  false, /* isEliminatable.  Not relevant for setters. */
28232
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28233
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28234
  false,  /* isTypedMethod.  Only relevant for methods. */
28235
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28236
};
28237
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28238
static_assert(0 < 1, "There is no slot for us");
28239
28240
MOZ_CAN_RUN_SCRIPT static bool
28241
get_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28242
0
{
28243
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTextFillColor", DOM, cx);
28244
0
28245
0
  FastErrorResult rv;
28246
0
  DOMString result;
28247
0
  self->GetWebkitTextFillColor(result, rv);
28248
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28249
0
    return false;
28250
0
  }
28251
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28252
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28253
0
    return false;
28254
0
  }
28255
0
  return true;
28256
0
}
28257
28258
MOZ_CAN_RUN_SCRIPT static bool
28259
set_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28260
0
{
28261
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTextFillColor", DOM, cx);
28262
0
28263
0
  binding_detail::FakeString arg0;
28264
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28265
0
    return false;
28266
0
  }
28267
0
  Maybe<AutoCEReaction> ceReaction;
28268
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28269
0
    DocGroup* docGroup = self->GetDocGroup();
28270
0
    if (docGroup) {
28271
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28272
0
    }
28273
0
  }
28274
0
  FastErrorResult rv;
28275
0
  nsIPrincipal* subjectPrincipal;
28276
0
  {
28277
0
    JS::Realm* realm = js::GetContextRealm(cx);
28278
0
    MOZ_ASSERT(realm);
28279
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28280
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28281
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28282
0
      principal = nullptr;
28283
0
    }
28284
0
28285
0
    subjectPrincipal = principal;
28286
0
  }
28287
0
  self->SetWebkitTextFillColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28288
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28289
0
    return false;
28290
0
  }
28291
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28292
0
28293
0
  return true;
28294
0
}
28295
28296
static const JSJitInfo webkitTextFillColor_getterinfo = {
28297
  { (JSJitGetterOp)get_webkitTextFillColor },
28298
  { prototypes::id::CSS2Properties },
28299
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28300
  JSJitInfo::Getter,
28301
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28302
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28303
  false,  /* isInfallible. False in setters. */
28304
  false,  /* isMovable.  Not relevant for setters. */
28305
  false, /* isEliminatable.  Not relevant for setters. */
28306
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28307
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28308
  false,  /* isTypedMethod.  Only relevant for methods. */
28309
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28310
};
28311
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28312
static_assert(0 < 1, "There is no slot for us");
28313
static const JSJitInfo webkitTextFillColor_setterinfo = {
28314
  { (JSJitGetterOp)set_webkitTextFillColor },
28315
  { prototypes::id::CSS2Properties },
28316
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28317
  JSJitInfo::Setter,
28318
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28319
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28320
  false,  /* isInfallible. False in setters. */
28321
  false,  /* isMovable.  Not relevant for setters. */
28322
  false, /* isEliminatable.  Not relevant for setters. */
28323
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28324
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28325
  false,  /* isTypedMethod.  Only relevant for methods. */
28326
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28327
};
28328
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28329
static_assert(0 < 1, "There is no slot for us");
28330
28331
MOZ_CAN_RUN_SCRIPT static bool
28332
get_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28333
0
{
28334
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTextStrokeColor", DOM, cx);
28335
0
28336
0
  FastErrorResult rv;
28337
0
  DOMString result;
28338
0
  self->GetWebkitTextStrokeColor(result, rv);
28339
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28340
0
    return false;
28341
0
  }
28342
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28343
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28344
0
    return false;
28345
0
  }
28346
0
  return true;
28347
0
}
28348
28349
MOZ_CAN_RUN_SCRIPT static bool
28350
set_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28351
0
{
28352
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTextStrokeColor", DOM, cx);
28353
0
28354
0
  binding_detail::FakeString arg0;
28355
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28356
0
    return false;
28357
0
  }
28358
0
  Maybe<AutoCEReaction> ceReaction;
28359
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28360
0
    DocGroup* docGroup = self->GetDocGroup();
28361
0
    if (docGroup) {
28362
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28363
0
    }
28364
0
  }
28365
0
  FastErrorResult rv;
28366
0
  nsIPrincipal* subjectPrincipal;
28367
0
  {
28368
0
    JS::Realm* realm = js::GetContextRealm(cx);
28369
0
    MOZ_ASSERT(realm);
28370
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28371
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28372
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28373
0
      principal = nullptr;
28374
0
    }
28375
0
28376
0
    subjectPrincipal = principal;
28377
0
  }
28378
0
  self->SetWebkitTextStrokeColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28379
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28380
0
    return false;
28381
0
  }
28382
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28383
0
28384
0
  return true;
28385
0
}
28386
28387
static const JSJitInfo webkitTextStrokeColor_getterinfo = {
28388
  { (JSJitGetterOp)get_webkitTextStrokeColor },
28389
  { prototypes::id::CSS2Properties },
28390
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28391
  JSJitInfo::Getter,
28392
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28393
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28394
  false,  /* isInfallible. False in setters. */
28395
  false,  /* isMovable.  Not relevant for setters. */
28396
  false, /* isEliminatable.  Not relevant for setters. */
28397
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28398
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28399
  false,  /* isTypedMethod.  Only relevant for methods. */
28400
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28401
};
28402
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28403
static_assert(0 < 1, "There is no slot for us");
28404
static const JSJitInfo webkitTextStrokeColor_setterinfo = {
28405
  { (JSJitGetterOp)set_webkitTextStrokeColor },
28406
  { prototypes::id::CSS2Properties },
28407
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28408
  JSJitInfo::Setter,
28409
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28410
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28411
  false,  /* isInfallible. False in setters. */
28412
  false,  /* isMovable.  Not relevant for setters. */
28413
  false, /* isEliminatable.  Not relevant for setters. */
28414
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28415
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28416
  false,  /* isTypedMethod.  Only relevant for methods. */
28417
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28418
};
28419
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28420
static_assert(0 < 1, "There is no slot for us");
28421
28422
MOZ_CAN_RUN_SCRIPT static bool
28423
get_background(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28424
0
{
28425
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.background", DOM, cx);
28426
0
28427
0
  FastErrorResult rv;
28428
0
  DOMString result;
28429
0
  self->GetBackground(result, rv);
28430
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28431
0
    return false;
28432
0
  }
28433
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28434
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28435
0
    return false;
28436
0
  }
28437
0
  return true;
28438
0
}
28439
28440
MOZ_CAN_RUN_SCRIPT static bool
28441
set_background(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28442
0
{
28443
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.background", DOM, cx);
28444
0
28445
0
  binding_detail::FakeString arg0;
28446
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28447
0
    return false;
28448
0
  }
28449
0
  Maybe<AutoCEReaction> ceReaction;
28450
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28451
0
    DocGroup* docGroup = self->GetDocGroup();
28452
0
    if (docGroup) {
28453
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28454
0
    }
28455
0
  }
28456
0
  FastErrorResult rv;
28457
0
  nsIPrincipal* subjectPrincipal;
28458
0
  {
28459
0
    JS::Realm* realm = js::GetContextRealm(cx);
28460
0
    MOZ_ASSERT(realm);
28461
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28462
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28463
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28464
0
      principal = nullptr;
28465
0
    }
28466
0
28467
0
    subjectPrincipal = principal;
28468
0
  }
28469
0
  self->SetBackground(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28470
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28471
0
    return false;
28472
0
  }
28473
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28474
0
28475
0
  return true;
28476
0
}
28477
28478
static const JSJitInfo background_getterinfo = {
28479
  { (JSJitGetterOp)get_background },
28480
  { prototypes::id::CSS2Properties },
28481
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28482
  JSJitInfo::Getter,
28483
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28484
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28485
  false,  /* isInfallible. False in setters. */
28486
  false,  /* isMovable.  Not relevant for setters. */
28487
  false, /* isEliminatable.  Not relevant for setters. */
28488
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28489
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28490
  false,  /* isTypedMethod.  Only relevant for methods. */
28491
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28492
};
28493
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28494
static_assert(0 < 1, "There is no slot for us");
28495
static const JSJitInfo background_setterinfo = {
28496
  { (JSJitGetterOp)set_background },
28497
  { prototypes::id::CSS2Properties },
28498
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28499
  JSJitInfo::Setter,
28500
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28501
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28502
  false,  /* isInfallible. False in setters. */
28503
  false,  /* isMovable.  Not relevant for setters. */
28504
  false, /* isEliminatable.  Not relevant for setters. */
28505
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28506
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28507
  false,  /* isTypedMethod.  Only relevant for methods. */
28508
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28509
};
28510
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28511
static_assert(0 < 1, "There is no slot for us");
28512
28513
MOZ_CAN_RUN_SCRIPT static bool
28514
get_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28515
0
{
28516
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.backgroundPosition", DOM, cx);
28517
0
28518
0
  FastErrorResult rv;
28519
0
  DOMString result;
28520
0
  self->GetBackgroundPosition(result, rv);
28521
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28522
0
    return false;
28523
0
  }
28524
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28525
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28526
0
    return false;
28527
0
  }
28528
0
  return true;
28529
0
}
28530
28531
MOZ_CAN_RUN_SCRIPT static bool
28532
set_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28533
0
{
28534
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.backgroundPosition", DOM, cx);
28535
0
28536
0
  binding_detail::FakeString arg0;
28537
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28538
0
    return false;
28539
0
  }
28540
0
  Maybe<AutoCEReaction> ceReaction;
28541
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28542
0
    DocGroup* docGroup = self->GetDocGroup();
28543
0
    if (docGroup) {
28544
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28545
0
    }
28546
0
  }
28547
0
  FastErrorResult rv;
28548
0
  nsIPrincipal* subjectPrincipal;
28549
0
  {
28550
0
    JS::Realm* realm = js::GetContextRealm(cx);
28551
0
    MOZ_ASSERT(realm);
28552
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28553
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28554
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28555
0
      principal = nullptr;
28556
0
    }
28557
0
28558
0
    subjectPrincipal = principal;
28559
0
  }
28560
0
  self->SetBackgroundPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28561
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28562
0
    return false;
28563
0
  }
28564
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28565
0
28566
0
  return true;
28567
0
}
28568
28569
static const JSJitInfo backgroundPosition_getterinfo = {
28570
  { (JSJitGetterOp)get_backgroundPosition },
28571
  { prototypes::id::CSS2Properties },
28572
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28573
  JSJitInfo::Getter,
28574
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28575
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28576
  false,  /* isInfallible. False in setters. */
28577
  false,  /* isMovable.  Not relevant for setters. */
28578
  false, /* isEliminatable.  Not relevant for setters. */
28579
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28580
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28581
  false,  /* isTypedMethod.  Only relevant for methods. */
28582
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28583
};
28584
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28585
static_assert(0 < 1, "There is no slot for us");
28586
static const JSJitInfo backgroundPosition_setterinfo = {
28587
  { (JSJitGetterOp)set_backgroundPosition },
28588
  { prototypes::id::CSS2Properties },
28589
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28590
  JSJitInfo::Setter,
28591
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28592
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28593
  false,  /* isInfallible. False in setters. */
28594
  false,  /* isMovable.  Not relevant for setters. */
28595
  false, /* isEliminatable.  Not relevant for setters. */
28596
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28597
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28598
  false,  /* isTypedMethod.  Only relevant for methods. */
28599
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28600
};
28601
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28602
static_assert(0 < 1, "There is no slot for us");
28603
28604
MOZ_CAN_RUN_SCRIPT static bool
28605
get_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28606
0
{
28607
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderColor", DOM, cx);
28608
0
28609
0
  FastErrorResult rv;
28610
0
  DOMString result;
28611
0
  self->GetBorderColor(result, rv);
28612
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28613
0
    return false;
28614
0
  }
28615
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28616
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28617
0
    return false;
28618
0
  }
28619
0
  return true;
28620
0
}
28621
28622
MOZ_CAN_RUN_SCRIPT static bool
28623
set_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28624
0
{
28625
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderColor", DOM, cx);
28626
0
28627
0
  binding_detail::FakeString arg0;
28628
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28629
0
    return false;
28630
0
  }
28631
0
  Maybe<AutoCEReaction> ceReaction;
28632
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28633
0
    DocGroup* docGroup = self->GetDocGroup();
28634
0
    if (docGroup) {
28635
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28636
0
    }
28637
0
  }
28638
0
  FastErrorResult rv;
28639
0
  nsIPrincipal* subjectPrincipal;
28640
0
  {
28641
0
    JS::Realm* realm = js::GetContextRealm(cx);
28642
0
    MOZ_ASSERT(realm);
28643
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28644
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28645
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28646
0
      principal = nullptr;
28647
0
    }
28648
0
28649
0
    subjectPrincipal = principal;
28650
0
  }
28651
0
  self->SetBorderColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28652
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28653
0
    return false;
28654
0
  }
28655
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28656
0
28657
0
  return true;
28658
0
}
28659
28660
static const JSJitInfo borderColor_getterinfo = {
28661
  { (JSJitGetterOp)get_borderColor },
28662
  { prototypes::id::CSS2Properties },
28663
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28664
  JSJitInfo::Getter,
28665
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28666
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28667
  false,  /* isInfallible. False in setters. */
28668
  false,  /* isMovable.  Not relevant for setters. */
28669
  false, /* isEliminatable.  Not relevant for setters. */
28670
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28671
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28672
  false,  /* isTypedMethod.  Only relevant for methods. */
28673
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28674
};
28675
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28676
static_assert(0 < 1, "There is no slot for us");
28677
static const JSJitInfo borderColor_setterinfo = {
28678
  { (JSJitGetterOp)set_borderColor },
28679
  { prototypes::id::CSS2Properties },
28680
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28681
  JSJitInfo::Setter,
28682
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28683
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28684
  false,  /* isInfallible. False in setters. */
28685
  false,  /* isMovable.  Not relevant for setters. */
28686
  false, /* isEliminatable.  Not relevant for setters. */
28687
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28688
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28689
  false,  /* isTypedMethod.  Only relevant for methods. */
28690
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28691
};
28692
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28693
static_assert(0 < 1, "There is no slot for us");
28694
28695
MOZ_CAN_RUN_SCRIPT static bool
28696
get_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28697
0
{
28698
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderStyle", DOM, cx);
28699
0
28700
0
  FastErrorResult rv;
28701
0
  DOMString result;
28702
0
  self->GetBorderStyle(result, rv);
28703
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28704
0
    return false;
28705
0
  }
28706
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28707
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28708
0
    return false;
28709
0
  }
28710
0
  return true;
28711
0
}
28712
28713
MOZ_CAN_RUN_SCRIPT static bool
28714
set_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28715
0
{
28716
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderStyle", DOM, cx);
28717
0
28718
0
  binding_detail::FakeString arg0;
28719
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28720
0
    return false;
28721
0
  }
28722
0
  Maybe<AutoCEReaction> ceReaction;
28723
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28724
0
    DocGroup* docGroup = self->GetDocGroup();
28725
0
    if (docGroup) {
28726
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28727
0
    }
28728
0
  }
28729
0
  FastErrorResult rv;
28730
0
  nsIPrincipal* subjectPrincipal;
28731
0
  {
28732
0
    JS::Realm* realm = js::GetContextRealm(cx);
28733
0
    MOZ_ASSERT(realm);
28734
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28735
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28736
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28737
0
      principal = nullptr;
28738
0
    }
28739
0
28740
0
    subjectPrincipal = principal;
28741
0
  }
28742
0
  self->SetBorderStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28743
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28744
0
    return false;
28745
0
  }
28746
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28747
0
28748
0
  return true;
28749
0
}
28750
28751
static const JSJitInfo borderStyle_getterinfo = {
28752
  { (JSJitGetterOp)get_borderStyle },
28753
  { prototypes::id::CSS2Properties },
28754
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28755
  JSJitInfo::Getter,
28756
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28757
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28758
  false,  /* isInfallible. False in setters. */
28759
  false,  /* isMovable.  Not relevant for setters. */
28760
  false, /* isEliminatable.  Not relevant for setters. */
28761
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28762
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28763
  false,  /* isTypedMethod.  Only relevant for methods. */
28764
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28765
};
28766
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28767
static_assert(0 < 1, "There is no slot for us");
28768
static const JSJitInfo borderStyle_setterinfo = {
28769
  { (JSJitGetterOp)set_borderStyle },
28770
  { prototypes::id::CSS2Properties },
28771
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28772
  JSJitInfo::Setter,
28773
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28774
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28775
  false,  /* isInfallible. False in setters. */
28776
  false,  /* isMovable.  Not relevant for setters. */
28777
  false, /* isEliminatable.  Not relevant for setters. */
28778
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28779
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28780
  false,  /* isTypedMethod.  Only relevant for methods. */
28781
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28782
};
28783
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28784
static_assert(0 < 1, "There is no slot for us");
28785
28786
MOZ_CAN_RUN_SCRIPT static bool
28787
get_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28788
0
{
28789
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderWidth", DOM, cx);
28790
0
28791
0
  FastErrorResult rv;
28792
0
  DOMString result;
28793
0
  self->GetBorderWidth(result, rv);
28794
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28795
0
    return false;
28796
0
  }
28797
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28798
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28799
0
    return false;
28800
0
  }
28801
0
  return true;
28802
0
}
28803
28804
MOZ_CAN_RUN_SCRIPT static bool
28805
set_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28806
0
{
28807
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderWidth", DOM, cx);
28808
0
28809
0
  binding_detail::FakeString arg0;
28810
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28811
0
    return false;
28812
0
  }
28813
0
  Maybe<AutoCEReaction> ceReaction;
28814
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28815
0
    DocGroup* docGroup = self->GetDocGroup();
28816
0
    if (docGroup) {
28817
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28818
0
    }
28819
0
  }
28820
0
  FastErrorResult rv;
28821
0
  nsIPrincipal* subjectPrincipal;
28822
0
  {
28823
0
    JS::Realm* realm = js::GetContextRealm(cx);
28824
0
    MOZ_ASSERT(realm);
28825
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28826
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28827
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28828
0
      principal = nullptr;
28829
0
    }
28830
0
28831
0
    subjectPrincipal = principal;
28832
0
  }
28833
0
  self->SetBorderWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28834
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28835
0
    return false;
28836
0
  }
28837
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28838
0
28839
0
  return true;
28840
0
}
28841
28842
static const JSJitInfo borderWidth_getterinfo = {
28843
  { (JSJitGetterOp)get_borderWidth },
28844
  { prototypes::id::CSS2Properties },
28845
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28846
  JSJitInfo::Getter,
28847
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28848
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28849
  false,  /* isInfallible. False in setters. */
28850
  false,  /* isMovable.  Not relevant for setters. */
28851
  false, /* isEliminatable.  Not relevant for setters. */
28852
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28853
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28854
  false,  /* isTypedMethod.  Only relevant for methods. */
28855
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28856
};
28857
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28858
static_assert(0 < 1, "There is no slot for us");
28859
static const JSJitInfo borderWidth_setterinfo = {
28860
  { (JSJitGetterOp)set_borderWidth },
28861
  { prototypes::id::CSS2Properties },
28862
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28863
  JSJitInfo::Setter,
28864
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28865
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28866
  false,  /* isInfallible. False in setters. */
28867
  false,  /* isMovable.  Not relevant for setters. */
28868
  false, /* isEliminatable.  Not relevant for setters. */
28869
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28870
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28871
  false,  /* isTypedMethod.  Only relevant for methods. */
28872
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28873
};
28874
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28875
static_assert(0 < 1, "There is no slot for us");
28876
28877
MOZ_CAN_RUN_SCRIPT static bool
28878
get_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28879
0
{
28880
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderTop", DOM, cx);
28881
0
28882
0
  FastErrorResult rv;
28883
0
  DOMString result;
28884
0
  self->GetBorderTop(result, rv);
28885
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28886
0
    return false;
28887
0
  }
28888
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28889
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28890
0
    return false;
28891
0
  }
28892
0
  return true;
28893
0
}
28894
28895
MOZ_CAN_RUN_SCRIPT static bool
28896
set_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28897
0
{
28898
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderTop", DOM, cx);
28899
0
28900
0
  binding_detail::FakeString arg0;
28901
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28902
0
    return false;
28903
0
  }
28904
0
  Maybe<AutoCEReaction> ceReaction;
28905
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28906
0
    DocGroup* docGroup = self->GetDocGroup();
28907
0
    if (docGroup) {
28908
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
28909
0
    }
28910
0
  }
28911
0
  FastErrorResult rv;
28912
0
  nsIPrincipal* subjectPrincipal;
28913
0
  {
28914
0
    JS::Realm* realm = js::GetContextRealm(cx);
28915
0
    MOZ_ASSERT(realm);
28916
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
28917
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
28918
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
28919
0
      principal = nullptr;
28920
0
    }
28921
0
28922
0
    subjectPrincipal = principal;
28923
0
  }
28924
0
  self->SetBorderTop(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
28925
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28926
0
    return false;
28927
0
  }
28928
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28929
0
28930
0
  return true;
28931
0
}
28932
28933
static const JSJitInfo borderTop_getterinfo = {
28934
  { (JSJitGetterOp)get_borderTop },
28935
  { prototypes::id::CSS2Properties },
28936
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28937
  JSJitInfo::Getter,
28938
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28939
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
28940
  false,  /* isInfallible. False in setters. */
28941
  false,  /* isMovable.  Not relevant for setters. */
28942
  false, /* isEliminatable.  Not relevant for setters. */
28943
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28944
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28945
  false,  /* isTypedMethod.  Only relevant for methods. */
28946
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28947
};
28948
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28949
static_assert(0 < 1, "There is no slot for us");
28950
static const JSJitInfo borderTop_setterinfo = {
28951
  { (JSJitGetterOp)set_borderTop },
28952
  { prototypes::id::CSS2Properties },
28953
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
28954
  JSJitInfo::Setter,
28955
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
28956
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
28957
  false,  /* isInfallible. False in setters. */
28958
  false,  /* isMovable.  Not relevant for setters. */
28959
  false, /* isEliminatable.  Not relevant for setters. */
28960
  false, /* isAlwaysInSlot.  Only relevant for getters. */
28961
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
28962
  false,  /* isTypedMethod.  Only relevant for methods. */
28963
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
28964
};
28965
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
28966
static_assert(0 < 1, "There is no slot for us");
28967
28968
MOZ_CAN_RUN_SCRIPT static bool
28969
get_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
28970
0
{
28971
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderRight", DOM, cx);
28972
0
28973
0
  FastErrorResult rv;
28974
0
  DOMString result;
28975
0
  self->GetBorderRight(result, rv);
28976
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
28977
0
    return false;
28978
0
  }
28979
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
28980
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
28981
0
    return false;
28982
0
  }
28983
0
  return true;
28984
0
}
28985
28986
MOZ_CAN_RUN_SCRIPT static bool
28987
set_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
28988
0
{
28989
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderRight", DOM, cx);
28990
0
28991
0
  binding_detail::FakeString arg0;
28992
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
28993
0
    return false;
28994
0
  }
28995
0
  Maybe<AutoCEReaction> ceReaction;
28996
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
28997
0
    DocGroup* docGroup = self->GetDocGroup();
28998
0
    if (docGroup) {
28999
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29000
0
    }
29001
0
  }
29002
0
  FastErrorResult rv;
29003
0
  nsIPrincipal* subjectPrincipal;
29004
0
  {
29005
0
    JS::Realm* realm = js::GetContextRealm(cx);
29006
0
    MOZ_ASSERT(realm);
29007
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29008
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29009
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29010
0
      principal = nullptr;
29011
0
    }
29012
0
29013
0
    subjectPrincipal = principal;
29014
0
  }
29015
0
  self->SetBorderRight(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29016
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29017
0
    return false;
29018
0
  }
29019
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29020
0
29021
0
  return true;
29022
0
}
29023
29024
static const JSJitInfo borderRight_getterinfo = {
29025
  { (JSJitGetterOp)get_borderRight },
29026
  { prototypes::id::CSS2Properties },
29027
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29028
  JSJitInfo::Getter,
29029
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29030
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29031
  false,  /* isInfallible. False in setters. */
29032
  false,  /* isMovable.  Not relevant for setters. */
29033
  false, /* isEliminatable.  Not relevant for setters. */
29034
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29035
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29036
  false,  /* isTypedMethod.  Only relevant for methods. */
29037
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29038
};
29039
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29040
static_assert(0 < 1, "There is no slot for us");
29041
static const JSJitInfo borderRight_setterinfo = {
29042
  { (JSJitGetterOp)set_borderRight },
29043
  { prototypes::id::CSS2Properties },
29044
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29045
  JSJitInfo::Setter,
29046
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29047
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29048
  false,  /* isInfallible. False in setters. */
29049
  false,  /* isMovable.  Not relevant for setters. */
29050
  false, /* isEliminatable.  Not relevant for setters. */
29051
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29052
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29053
  false,  /* isTypedMethod.  Only relevant for methods. */
29054
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29055
};
29056
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29057
static_assert(0 < 1, "There is no slot for us");
29058
29059
MOZ_CAN_RUN_SCRIPT static bool
29060
get_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29061
0
{
29062
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBottom", DOM, cx);
29063
0
29064
0
  FastErrorResult rv;
29065
0
  DOMString result;
29066
0
  self->GetBorderBottom(result, rv);
29067
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29068
0
    return false;
29069
0
  }
29070
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29071
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29072
0
    return false;
29073
0
  }
29074
0
  return true;
29075
0
}
29076
29077
MOZ_CAN_RUN_SCRIPT static bool
29078
set_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29079
0
{
29080
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBottom", DOM, cx);
29081
0
29082
0
  binding_detail::FakeString arg0;
29083
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29084
0
    return false;
29085
0
  }
29086
0
  Maybe<AutoCEReaction> ceReaction;
29087
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29088
0
    DocGroup* docGroup = self->GetDocGroup();
29089
0
    if (docGroup) {
29090
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29091
0
    }
29092
0
  }
29093
0
  FastErrorResult rv;
29094
0
  nsIPrincipal* subjectPrincipal;
29095
0
  {
29096
0
    JS::Realm* realm = js::GetContextRealm(cx);
29097
0
    MOZ_ASSERT(realm);
29098
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29099
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29100
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29101
0
      principal = nullptr;
29102
0
    }
29103
0
29104
0
    subjectPrincipal = principal;
29105
0
  }
29106
0
  self->SetBorderBottom(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29107
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29108
0
    return false;
29109
0
  }
29110
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29111
0
29112
0
  return true;
29113
0
}
29114
29115
static const JSJitInfo borderBottom_getterinfo = {
29116
  { (JSJitGetterOp)get_borderBottom },
29117
  { prototypes::id::CSS2Properties },
29118
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29119
  JSJitInfo::Getter,
29120
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29121
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29122
  false,  /* isInfallible. False in setters. */
29123
  false,  /* isMovable.  Not relevant for setters. */
29124
  false, /* isEliminatable.  Not relevant for setters. */
29125
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29126
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29127
  false,  /* isTypedMethod.  Only relevant for methods. */
29128
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29129
};
29130
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29131
static_assert(0 < 1, "There is no slot for us");
29132
static const JSJitInfo borderBottom_setterinfo = {
29133
  { (JSJitGetterOp)set_borderBottom },
29134
  { prototypes::id::CSS2Properties },
29135
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29136
  JSJitInfo::Setter,
29137
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29138
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29139
  false,  /* isInfallible. False in setters. */
29140
  false,  /* isMovable.  Not relevant for setters. */
29141
  false, /* isEliminatable.  Not relevant for setters. */
29142
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29143
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29144
  false,  /* isTypedMethod.  Only relevant for methods. */
29145
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29146
};
29147
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29148
static_assert(0 < 1, "There is no slot for us");
29149
29150
MOZ_CAN_RUN_SCRIPT static bool
29151
get_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29152
0
{
29153
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderLeft", DOM, cx);
29154
0
29155
0
  FastErrorResult rv;
29156
0
  DOMString result;
29157
0
  self->GetBorderLeft(result, rv);
29158
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29159
0
    return false;
29160
0
  }
29161
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29162
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29163
0
    return false;
29164
0
  }
29165
0
  return true;
29166
0
}
29167
29168
MOZ_CAN_RUN_SCRIPT static bool
29169
set_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29170
0
{
29171
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderLeft", DOM, cx);
29172
0
29173
0
  binding_detail::FakeString arg0;
29174
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29175
0
    return false;
29176
0
  }
29177
0
  Maybe<AutoCEReaction> ceReaction;
29178
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29179
0
    DocGroup* docGroup = self->GetDocGroup();
29180
0
    if (docGroup) {
29181
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29182
0
    }
29183
0
  }
29184
0
  FastErrorResult rv;
29185
0
  nsIPrincipal* subjectPrincipal;
29186
0
  {
29187
0
    JS::Realm* realm = js::GetContextRealm(cx);
29188
0
    MOZ_ASSERT(realm);
29189
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29190
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29191
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29192
0
      principal = nullptr;
29193
0
    }
29194
0
29195
0
    subjectPrincipal = principal;
29196
0
  }
29197
0
  self->SetBorderLeft(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29198
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29199
0
    return false;
29200
0
  }
29201
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29202
0
29203
0
  return true;
29204
0
}
29205
29206
static const JSJitInfo borderLeft_getterinfo = {
29207
  { (JSJitGetterOp)get_borderLeft },
29208
  { prototypes::id::CSS2Properties },
29209
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29210
  JSJitInfo::Getter,
29211
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29212
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29213
  false,  /* isInfallible. False in setters. */
29214
  false,  /* isMovable.  Not relevant for setters. */
29215
  false, /* isEliminatable.  Not relevant for setters. */
29216
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29217
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29218
  false,  /* isTypedMethod.  Only relevant for methods. */
29219
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29220
};
29221
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29222
static_assert(0 < 1, "There is no slot for us");
29223
static const JSJitInfo borderLeft_setterinfo = {
29224
  { (JSJitGetterOp)set_borderLeft },
29225
  { prototypes::id::CSS2Properties },
29226
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29227
  JSJitInfo::Setter,
29228
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29229
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29230
  false,  /* isInfallible. False in setters. */
29231
  false,  /* isMovable.  Not relevant for setters. */
29232
  false, /* isEliminatable.  Not relevant for setters. */
29233
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29234
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29235
  false,  /* isTypedMethod.  Only relevant for methods. */
29236
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29237
};
29238
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29239
static_assert(0 < 1, "There is no slot for us");
29240
29241
MOZ_CAN_RUN_SCRIPT static bool
29242
get_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29243
0
{
29244
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockStart", DOM, cx);
29245
0
29246
0
  FastErrorResult rv;
29247
0
  DOMString result;
29248
0
  self->GetBorderBlockStart(result, rv);
29249
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29250
0
    return false;
29251
0
  }
29252
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29253
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29254
0
    return false;
29255
0
  }
29256
0
  return true;
29257
0
}
29258
29259
MOZ_CAN_RUN_SCRIPT static bool
29260
set_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29261
0
{
29262
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockStart", DOM, cx);
29263
0
29264
0
  binding_detail::FakeString arg0;
29265
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29266
0
    return false;
29267
0
  }
29268
0
  Maybe<AutoCEReaction> ceReaction;
29269
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29270
0
    DocGroup* docGroup = self->GetDocGroup();
29271
0
    if (docGroup) {
29272
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29273
0
    }
29274
0
  }
29275
0
  FastErrorResult rv;
29276
0
  nsIPrincipal* subjectPrincipal;
29277
0
  {
29278
0
    JS::Realm* realm = js::GetContextRealm(cx);
29279
0
    MOZ_ASSERT(realm);
29280
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29281
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29282
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29283
0
      principal = nullptr;
29284
0
    }
29285
0
29286
0
    subjectPrincipal = principal;
29287
0
  }
29288
0
  self->SetBorderBlockStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29289
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29290
0
    return false;
29291
0
  }
29292
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29293
0
29294
0
  return true;
29295
0
}
29296
29297
static const JSJitInfo borderBlockStart_getterinfo = {
29298
  { (JSJitGetterOp)get_borderBlockStart },
29299
  { prototypes::id::CSS2Properties },
29300
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29301
  JSJitInfo::Getter,
29302
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29303
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29304
  false,  /* isInfallible. False in setters. */
29305
  false,  /* isMovable.  Not relevant for setters. */
29306
  false, /* isEliminatable.  Not relevant for setters. */
29307
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29308
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29309
  false,  /* isTypedMethod.  Only relevant for methods. */
29310
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29311
};
29312
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29313
static_assert(0 < 1, "There is no slot for us");
29314
static const JSJitInfo borderBlockStart_setterinfo = {
29315
  { (JSJitGetterOp)set_borderBlockStart },
29316
  { prototypes::id::CSS2Properties },
29317
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29318
  JSJitInfo::Setter,
29319
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29320
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29321
  false,  /* isInfallible. False in setters. */
29322
  false,  /* isMovable.  Not relevant for setters. */
29323
  false, /* isEliminatable.  Not relevant for setters. */
29324
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29325
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29326
  false,  /* isTypedMethod.  Only relevant for methods. */
29327
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29328
};
29329
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29330
static_assert(0 < 1, "There is no slot for us");
29331
29332
MOZ_CAN_RUN_SCRIPT static bool
29333
get_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29334
0
{
29335
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderBlockEnd", DOM, cx);
29336
0
29337
0
  FastErrorResult rv;
29338
0
  DOMString result;
29339
0
  self->GetBorderBlockEnd(result, rv);
29340
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29341
0
    return false;
29342
0
  }
29343
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29344
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29345
0
    return false;
29346
0
  }
29347
0
  return true;
29348
0
}
29349
29350
MOZ_CAN_RUN_SCRIPT static bool
29351
set_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29352
0
{
29353
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderBlockEnd", DOM, cx);
29354
0
29355
0
  binding_detail::FakeString arg0;
29356
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29357
0
    return false;
29358
0
  }
29359
0
  Maybe<AutoCEReaction> ceReaction;
29360
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29361
0
    DocGroup* docGroup = self->GetDocGroup();
29362
0
    if (docGroup) {
29363
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29364
0
    }
29365
0
  }
29366
0
  FastErrorResult rv;
29367
0
  nsIPrincipal* subjectPrincipal;
29368
0
  {
29369
0
    JS::Realm* realm = js::GetContextRealm(cx);
29370
0
    MOZ_ASSERT(realm);
29371
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29372
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29373
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29374
0
      principal = nullptr;
29375
0
    }
29376
0
29377
0
    subjectPrincipal = principal;
29378
0
  }
29379
0
  self->SetBorderBlockEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29380
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29381
0
    return false;
29382
0
  }
29383
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29384
0
29385
0
  return true;
29386
0
}
29387
29388
static const JSJitInfo borderBlockEnd_getterinfo = {
29389
  { (JSJitGetterOp)get_borderBlockEnd },
29390
  { prototypes::id::CSS2Properties },
29391
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29392
  JSJitInfo::Getter,
29393
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29394
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29395
  false,  /* isInfallible. False in setters. */
29396
  false,  /* isMovable.  Not relevant for setters. */
29397
  false, /* isEliminatable.  Not relevant for setters. */
29398
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29399
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29400
  false,  /* isTypedMethod.  Only relevant for methods. */
29401
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29402
};
29403
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29404
static_assert(0 < 1, "There is no slot for us");
29405
static const JSJitInfo borderBlockEnd_setterinfo = {
29406
  { (JSJitGetterOp)set_borderBlockEnd },
29407
  { prototypes::id::CSS2Properties },
29408
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29409
  JSJitInfo::Setter,
29410
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29411
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29412
  false,  /* isInfallible. False in setters. */
29413
  false,  /* isMovable.  Not relevant for setters. */
29414
  false, /* isEliminatable.  Not relevant for setters. */
29415
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29416
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29417
  false,  /* isTypedMethod.  Only relevant for methods. */
29418
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29419
};
29420
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29421
static_assert(0 < 1, "There is no slot for us");
29422
29423
MOZ_CAN_RUN_SCRIPT static bool
29424
get_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29425
0
{
29426
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineStart", DOM, cx);
29427
0
29428
0
  FastErrorResult rv;
29429
0
  DOMString result;
29430
0
  self->GetBorderInlineStart(result, rv);
29431
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29432
0
    return false;
29433
0
  }
29434
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29435
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29436
0
    return false;
29437
0
  }
29438
0
  return true;
29439
0
}
29440
29441
MOZ_CAN_RUN_SCRIPT static bool
29442
set_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29443
0
{
29444
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineStart", DOM, cx);
29445
0
29446
0
  binding_detail::FakeString arg0;
29447
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29448
0
    return false;
29449
0
  }
29450
0
  Maybe<AutoCEReaction> ceReaction;
29451
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29452
0
    DocGroup* docGroup = self->GetDocGroup();
29453
0
    if (docGroup) {
29454
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29455
0
    }
29456
0
  }
29457
0
  FastErrorResult rv;
29458
0
  nsIPrincipal* subjectPrincipal;
29459
0
  {
29460
0
    JS::Realm* realm = js::GetContextRealm(cx);
29461
0
    MOZ_ASSERT(realm);
29462
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29463
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29464
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29465
0
      principal = nullptr;
29466
0
    }
29467
0
29468
0
    subjectPrincipal = principal;
29469
0
  }
29470
0
  self->SetBorderInlineStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29471
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29472
0
    return false;
29473
0
  }
29474
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29475
0
29476
0
  return true;
29477
0
}
29478
29479
static const JSJitInfo borderInlineStart_getterinfo = {
29480
  { (JSJitGetterOp)get_borderInlineStart },
29481
  { prototypes::id::CSS2Properties },
29482
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29483
  JSJitInfo::Getter,
29484
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29485
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29486
  false,  /* isInfallible. False in setters. */
29487
  false,  /* isMovable.  Not relevant for setters. */
29488
  false, /* isEliminatable.  Not relevant for setters. */
29489
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29490
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29491
  false,  /* isTypedMethod.  Only relevant for methods. */
29492
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29493
};
29494
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29495
static_assert(0 < 1, "There is no slot for us");
29496
static const JSJitInfo borderInlineStart_setterinfo = {
29497
  { (JSJitGetterOp)set_borderInlineStart },
29498
  { prototypes::id::CSS2Properties },
29499
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29500
  JSJitInfo::Setter,
29501
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29502
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29503
  false,  /* isInfallible. False in setters. */
29504
  false,  /* isMovable.  Not relevant for setters. */
29505
  false, /* isEliminatable.  Not relevant for setters. */
29506
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29507
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29508
  false,  /* isTypedMethod.  Only relevant for methods. */
29509
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29510
};
29511
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29512
static_assert(0 < 1, "There is no slot for us");
29513
29514
MOZ_CAN_RUN_SCRIPT static bool
29515
get_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29516
0
{
29517
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderInlineEnd", DOM, cx);
29518
0
29519
0
  FastErrorResult rv;
29520
0
  DOMString result;
29521
0
  self->GetBorderInlineEnd(result, rv);
29522
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29523
0
    return false;
29524
0
  }
29525
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29526
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29527
0
    return false;
29528
0
  }
29529
0
  return true;
29530
0
}
29531
29532
MOZ_CAN_RUN_SCRIPT static bool
29533
set_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29534
0
{
29535
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderInlineEnd", DOM, cx);
29536
0
29537
0
  binding_detail::FakeString arg0;
29538
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29539
0
    return false;
29540
0
  }
29541
0
  Maybe<AutoCEReaction> ceReaction;
29542
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29543
0
    DocGroup* docGroup = self->GetDocGroup();
29544
0
    if (docGroup) {
29545
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29546
0
    }
29547
0
  }
29548
0
  FastErrorResult rv;
29549
0
  nsIPrincipal* subjectPrincipal;
29550
0
  {
29551
0
    JS::Realm* realm = js::GetContextRealm(cx);
29552
0
    MOZ_ASSERT(realm);
29553
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29554
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29555
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29556
0
      principal = nullptr;
29557
0
    }
29558
0
29559
0
    subjectPrincipal = principal;
29560
0
  }
29561
0
  self->SetBorderInlineEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29562
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29563
0
    return false;
29564
0
  }
29565
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29566
0
29567
0
  return true;
29568
0
}
29569
29570
static const JSJitInfo borderInlineEnd_getterinfo = {
29571
  { (JSJitGetterOp)get_borderInlineEnd },
29572
  { prototypes::id::CSS2Properties },
29573
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29574
  JSJitInfo::Getter,
29575
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29576
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29577
  false,  /* isInfallible. False in setters. */
29578
  false,  /* isMovable.  Not relevant for setters. */
29579
  false, /* isEliminatable.  Not relevant for setters. */
29580
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29581
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29582
  false,  /* isTypedMethod.  Only relevant for methods. */
29583
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29584
};
29585
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29586
static_assert(0 < 1, "There is no slot for us");
29587
static const JSJitInfo borderInlineEnd_setterinfo = {
29588
  { (JSJitGetterOp)set_borderInlineEnd },
29589
  { prototypes::id::CSS2Properties },
29590
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29591
  JSJitInfo::Setter,
29592
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29593
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29594
  false,  /* isInfallible. False in setters. */
29595
  false,  /* isMovable.  Not relevant for setters. */
29596
  false, /* isEliminatable.  Not relevant for setters. */
29597
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29598
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29599
  false,  /* isTypedMethod.  Only relevant for methods. */
29600
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29601
};
29602
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29603
static_assert(0 < 1, "There is no slot for us");
29604
29605
MOZ_CAN_RUN_SCRIPT static bool
29606
get_border(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29607
0
{
29608
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.border", DOM, cx);
29609
0
29610
0
  FastErrorResult rv;
29611
0
  DOMString result;
29612
0
  self->GetBorder(result, rv);
29613
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29614
0
    return false;
29615
0
  }
29616
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29617
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29618
0
    return false;
29619
0
  }
29620
0
  return true;
29621
0
}
29622
29623
MOZ_CAN_RUN_SCRIPT static bool
29624
set_border(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29625
0
{
29626
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.border", DOM, cx);
29627
0
29628
0
  binding_detail::FakeString arg0;
29629
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29630
0
    return false;
29631
0
  }
29632
0
  Maybe<AutoCEReaction> ceReaction;
29633
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29634
0
    DocGroup* docGroup = self->GetDocGroup();
29635
0
    if (docGroup) {
29636
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29637
0
    }
29638
0
  }
29639
0
  FastErrorResult rv;
29640
0
  nsIPrincipal* subjectPrincipal;
29641
0
  {
29642
0
    JS::Realm* realm = js::GetContextRealm(cx);
29643
0
    MOZ_ASSERT(realm);
29644
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29645
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29646
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29647
0
      principal = nullptr;
29648
0
    }
29649
0
29650
0
    subjectPrincipal = principal;
29651
0
  }
29652
0
  self->SetBorder(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29653
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29654
0
    return false;
29655
0
  }
29656
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29657
0
29658
0
  return true;
29659
0
}
29660
29661
static const JSJitInfo border_getterinfo = {
29662
  { (JSJitGetterOp)get_border },
29663
  { prototypes::id::CSS2Properties },
29664
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29665
  JSJitInfo::Getter,
29666
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29667
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29668
  false,  /* isInfallible. False in setters. */
29669
  false,  /* isMovable.  Not relevant for setters. */
29670
  false, /* isEliminatable.  Not relevant for setters. */
29671
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29672
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29673
  false,  /* isTypedMethod.  Only relevant for methods. */
29674
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29675
};
29676
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29677
static_assert(0 < 1, "There is no slot for us");
29678
static const JSJitInfo border_setterinfo = {
29679
  { (JSJitGetterOp)set_border },
29680
  { prototypes::id::CSS2Properties },
29681
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29682
  JSJitInfo::Setter,
29683
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29684
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29685
  false,  /* isInfallible. False in setters. */
29686
  false,  /* isMovable.  Not relevant for setters. */
29687
  false, /* isEliminatable.  Not relevant for setters. */
29688
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29689
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29690
  false,  /* isTypedMethod.  Only relevant for methods. */
29691
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29692
};
29693
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29694
static_assert(0 < 1, "There is no slot for us");
29695
29696
MOZ_CAN_RUN_SCRIPT static bool
29697
get_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29698
0
{
29699
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderRadius", DOM, cx);
29700
0
29701
0
  FastErrorResult rv;
29702
0
  DOMString result;
29703
0
  self->GetBorderRadius(result, rv);
29704
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29705
0
    return false;
29706
0
  }
29707
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29708
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29709
0
    return false;
29710
0
  }
29711
0
  return true;
29712
0
}
29713
29714
MOZ_CAN_RUN_SCRIPT static bool
29715
set_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29716
0
{
29717
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderRadius", DOM, cx);
29718
0
29719
0
  binding_detail::FakeString arg0;
29720
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29721
0
    return false;
29722
0
  }
29723
0
  Maybe<AutoCEReaction> ceReaction;
29724
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29725
0
    DocGroup* docGroup = self->GetDocGroup();
29726
0
    if (docGroup) {
29727
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29728
0
    }
29729
0
  }
29730
0
  FastErrorResult rv;
29731
0
  nsIPrincipal* subjectPrincipal;
29732
0
  {
29733
0
    JS::Realm* realm = js::GetContextRealm(cx);
29734
0
    MOZ_ASSERT(realm);
29735
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29736
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29737
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29738
0
      principal = nullptr;
29739
0
    }
29740
0
29741
0
    subjectPrincipal = principal;
29742
0
  }
29743
0
  self->SetBorderRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29744
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29745
0
    return false;
29746
0
  }
29747
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29748
0
29749
0
  return true;
29750
0
}
29751
29752
static const JSJitInfo borderRadius_getterinfo = {
29753
  { (JSJitGetterOp)get_borderRadius },
29754
  { prototypes::id::CSS2Properties },
29755
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29756
  JSJitInfo::Getter,
29757
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29758
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29759
  false,  /* isInfallible. False in setters. */
29760
  false,  /* isMovable.  Not relevant for setters. */
29761
  false, /* isEliminatable.  Not relevant for setters. */
29762
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29763
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29764
  false,  /* isTypedMethod.  Only relevant for methods. */
29765
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29766
};
29767
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29768
static_assert(0 < 1, "There is no slot for us");
29769
static const JSJitInfo borderRadius_setterinfo = {
29770
  { (JSJitGetterOp)set_borderRadius },
29771
  { prototypes::id::CSS2Properties },
29772
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29773
  JSJitInfo::Setter,
29774
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29775
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29776
  false,  /* isInfallible. False in setters. */
29777
  false,  /* isMovable.  Not relevant for setters. */
29778
  false, /* isEliminatable.  Not relevant for setters. */
29779
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29780
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29781
  false,  /* isTypedMethod.  Only relevant for methods. */
29782
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29783
};
29784
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29785
static_assert(0 < 1, "There is no slot for us");
29786
29787
MOZ_CAN_RUN_SCRIPT static bool
29788
get_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29789
0
{
29790
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.borderImage", DOM, cx);
29791
0
29792
0
  FastErrorResult rv;
29793
0
  DOMString result;
29794
0
  self->GetBorderImage(result, rv);
29795
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29796
0
    return false;
29797
0
  }
29798
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29799
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29800
0
    return false;
29801
0
  }
29802
0
  return true;
29803
0
}
29804
29805
MOZ_CAN_RUN_SCRIPT static bool
29806
set_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29807
0
{
29808
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.borderImage", DOM, cx);
29809
0
29810
0
  binding_detail::FakeString arg0;
29811
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29812
0
    return false;
29813
0
  }
29814
0
  Maybe<AutoCEReaction> ceReaction;
29815
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29816
0
    DocGroup* docGroup = self->GetDocGroup();
29817
0
    if (docGroup) {
29818
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29819
0
    }
29820
0
  }
29821
0
  FastErrorResult rv;
29822
0
  nsIPrincipal* subjectPrincipal;
29823
0
  {
29824
0
    JS::Realm* realm = js::GetContextRealm(cx);
29825
0
    MOZ_ASSERT(realm);
29826
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29827
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29828
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29829
0
      principal = nullptr;
29830
0
    }
29831
0
29832
0
    subjectPrincipal = principal;
29833
0
  }
29834
0
  self->SetBorderImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29835
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29836
0
    return false;
29837
0
  }
29838
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29839
0
29840
0
  return true;
29841
0
}
29842
29843
static const JSJitInfo borderImage_getterinfo = {
29844
  { (JSJitGetterOp)get_borderImage },
29845
  { prototypes::id::CSS2Properties },
29846
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29847
  JSJitInfo::Getter,
29848
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29849
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29850
  false,  /* isInfallible. False in setters. */
29851
  false,  /* isMovable.  Not relevant for setters. */
29852
  false, /* isEliminatable.  Not relevant for setters. */
29853
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29854
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29855
  false,  /* isTypedMethod.  Only relevant for methods. */
29856
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29857
};
29858
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29859
static_assert(0 < 1, "There is no slot for us");
29860
static const JSJitInfo borderImage_setterinfo = {
29861
  { (JSJitGetterOp)set_borderImage },
29862
  { prototypes::id::CSS2Properties },
29863
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29864
  JSJitInfo::Setter,
29865
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29866
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29867
  false,  /* isInfallible. False in setters. */
29868
  false,  /* isMovable.  Not relevant for setters. */
29869
  false, /* isEliminatable.  Not relevant for setters. */
29870
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29871
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29872
  false,  /* isTypedMethod.  Only relevant for methods. */
29873
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29874
};
29875
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29876
static_assert(0 < 1, "There is no slot for us");
29877
29878
MOZ_CAN_RUN_SCRIPT static bool
29879
get_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29880
0
{
29881
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflow", DOM, cx);
29882
0
29883
0
  FastErrorResult rv;
29884
0
  DOMString result;
29885
0
  self->GetOverflow(result, rv);
29886
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29887
0
    return false;
29888
0
  }
29889
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29890
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29891
0
    return false;
29892
0
  }
29893
0
  return true;
29894
0
}
29895
29896
MOZ_CAN_RUN_SCRIPT static bool
29897
set_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29898
0
{
29899
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflow", DOM, cx);
29900
0
29901
0
  binding_detail::FakeString arg0;
29902
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29903
0
    return false;
29904
0
  }
29905
0
  Maybe<AutoCEReaction> ceReaction;
29906
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29907
0
    DocGroup* docGroup = self->GetDocGroup();
29908
0
    if (docGroup) {
29909
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
29910
0
    }
29911
0
  }
29912
0
  FastErrorResult rv;
29913
0
  nsIPrincipal* subjectPrincipal;
29914
0
  {
29915
0
    JS::Realm* realm = js::GetContextRealm(cx);
29916
0
    MOZ_ASSERT(realm);
29917
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
29918
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
29919
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
29920
0
      principal = nullptr;
29921
0
    }
29922
0
29923
0
    subjectPrincipal = principal;
29924
0
  }
29925
0
  self->SetOverflow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
29926
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29927
0
    return false;
29928
0
  }
29929
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29930
0
29931
0
  return true;
29932
0
}
29933
29934
static const JSJitInfo overflow_getterinfo = {
29935
  { (JSJitGetterOp)get_overflow },
29936
  { prototypes::id::CSS2Properties },
29937
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29938
  JSJitInfo::Getter,
29939
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29940
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
29941
  false,  /* isInfallible. False in setters. */
29942
  false,  /* isMovable.  Not relevant for setters. */
29943
  false, /* isEliminatable.  Not relevant for setters. */
29944
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29945
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29946
  false,  /* isTypedMethod.  Only relevant for methods. */
29947
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29948
};
29949
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29950
static_assert(0 < 1, "There is no slot for us");
29951
static const JSJitInfo overflow_setterinfo = {
29952
  { (JSJitGetterOp)set_overflow },
29953
  { prototypes::id::CSS2Properties },
29954
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
29955
  JSJitInfo::Setter,
29956
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
29957
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
29958
  false,  /* isInfallible. False in setters. */
29959
  false,  /* isMovable.  Not relevant for setters. */
29960
  false, /* isEliminatable.  Not relevant for setters. */
29961
  false, /* isAlwaysInSlot.  Only relevant for getters. */
29962
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
29963
  false,  /* isTypedMethod.  Only relevant for methods. */
29964
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
29965
};
29966
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
29967
static_assert(0 < 1, "There is no slot for us");
29968
29969
MOZ_CAN_RUN_SCRIPT static bool
29970
get_overflowClipBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
29971
0
{
29972
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overflowClipBox", DOM, cx);
29973
0
29974
0
  FastErrorResult rv;
29975
0
  DOMString result;
29976
0
  self->GetOverflowClipBox(result, rv);
29977
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
29978
0
    return false;
29979
0
  }
29980
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
29981
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
29982
0
    return false;
29983
0
  }
29984
0
  return true;
29985
0
}
29986
29987
MOZ_CAN_RUN_SCRIPT static bool
29988
set_overflowClipBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
29989
0
{
29990
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overflowClipBox", DOM, cx);
29991
0
29992
0
  binding_detail::FakeString arg0;
29993
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
29994
0
    return false;
29995
0
  }
29996
0
  Maybe<AutoCEReaction> ceReaction;
29997
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
29998
0
    DocGroup* docGroup = self->GetDocGroup();
29999
0
    if (docGroup) {
30000
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30001
0
    }
30002
0
  }
30003
0
  FastErrorResult rv;
30004
0
  nsIPrincipal* subjectPrincipal;
30005
0
  {
30006
0
    JS::Realm* realm = js::GetContextRealm(cx);
30007
0
    MOZ_ASSERT(realm);
30008
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30009
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30010
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30011
0
      principal = nullptr;
30012
0
    }
30013
0
30014
0
    subjectPrincipal = principal;
30015
0
  }
30016
0
  self->SetOverflowClipBox(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30017
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30018
0
    return false;
30019
0
  }
30020
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30021
0
30022
0
  return true;
30023
0
}
30024
30025
static const JSJitInfo overflowClipBox_getterinfo = {
30026
  { (JSJitGetterOp)get_overflowClipBox },
30027
  { prototypes::id::CSS2Properties },
30028
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30029
  JSJitInfo::Getter,
30030
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30031
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30032
  false,  /* isInfallible. False in setters. */
30033
  false,  /* isMovable.  Not relevant for setters. */
30034
  false, /* isEliminatable.  Not relevant for setters. */
30035
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30036
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30037
  false,  /* isTypedMethod.  Only relevant for methods. */
30038
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30039
};
30040
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30041
static_assert(0 < 1, "There is no slot for us");
30042
static const JSJitInfo overflowClipBox_setterinfo = {
30043
  { (JSJitGetterOp)set_overflowClipBox },
30044
  { prototypes::id::CSS2Properties },
30045
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30046
  JSJitInfo::Setter,
30047
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30048
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30049
  false,  /* isInfallible. False in setters. */
30050
  false,  /* isMovable.  Not relevant for setters. */
30051
  false, /* isEliminatable.  Not relevant for setters. */
30052
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30053
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30054
  false,  /* isTypedMethod.  Only relevant for methods. */
30055
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30056
};
30057
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30058
static_assert(0 < 1, "There is no slot for us");
30059
30060
MOZ_CAN_RUN_SCRIPT static bool
30061
get_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30062
0
{
30063
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.transition", DOM, cx);
30064
0
30065
0
  FastErrorResult rv;
30066
0
  DOMString result;
30067
0
  self->GetTransition(result, rv);
30068
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30069
0
    return false;
30070
0
  }
30071
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30072
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30073
0
    return false;
30074
0
  }
30075
0
  return true;
30076
0
}
30077
30078
MOZ_CAN_RUN_SCRIPT static bool
30079
set_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30080
0
{
30081
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.transition", DOM, cx);
30082
0
30083
0
  binding_detail::FakeString arg0;
30084
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30085
0
    return false;
30086
0
  }
30087
0
  Maybe<AutoCEReaction> ceReaction;
30088
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30089
0
    DocGroup* docGroup = self->GetDocGroup();
30090
0
    if (docGroup) {
30091
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30092
0
    }
30093
0
  }
30094
0
  FastErrorResult rv;
30095
0
  nsIPrincipal* subjectPrincipal;
30096
0
  {
30097
0
    JS::Realm* realm = js::GetContextRealm(cx);
30098
0
    MOZ_ASSERT(realm);
30099
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30100
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30101
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30102
0
      principal = nullptr;
30103
0
    }
30104
0
30105
0
    subjectPrincipal = principal;
30106
0
  }
30107
0
  self->SetTransition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30108
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30109
0
    return false;
30110
0
  }
30111
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30112
0
30113
0
  return true;
30114
0
}
30115
30116
static const JSJitInfo transition_getterinfo = {
30117
  { (JSJitGetterOp)get_transition },
30118
  { prototypes::id::CSS2Properties },
30119
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30120
  JSJitInfo::Getter,
30121
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30122
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30123
  false,  /* isInfallible. False in setters. */
30124
  false,  /* isMovable.  Not relevant for setters. */
30125
  false, /* isEliminatable.  Not relevant for setters. */
30126
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30127
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30128
  false,  /* isTypedMethod.  Only relevant for methods. */
30129
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30130
};
30131
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30132
static_assert(0 < 1, "There is no slot for us");
30133
static const JSJitInfo transition_setterinfo = {
30134
  { (JSJitGetterOp)set_transition },
30135
  { prototypes::id::CSS2Properties },
30136
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30137
  JSJitInfo::Setter,
30138
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30139
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30140
  false,  /* isInfallible. False in setters. */
30141
  false,  /* isMovable.  Not relevant for setters. */
30142
  false, /* isEliminatable.  Not relevant for setters. */
30143
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30144
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30145
  false,  /* isTypedMethod.  Only relevant for methods. */
30146
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30147
};
30148
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30149
static_assert(0 < 1, "There is no slot for us");
30150
30151
MOZ_CAN_RUN_SCRIPT static bool
30152
get_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30153
0
{
30154
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.animation", DOM, cx);
30155
0
30156
0
  FastErrorResult rv;
30157
0
  DOMString result;
30158
0
  self->GetAnimation(result, rv);
30159
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30160
0
    return false;
30161
0
  }
30162
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30163
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30164
0
    return false;
30165
0
  }
30166
0
  return true;
30167
0
}
30168
30169
MOZ_CAN_RUN_SCRIPT static bool
30170
set_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30171
0
{
30172
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.animation", DOM, cx);
30173
0
30174
0
  binding_detail::FakeString arg0;
30175
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30176
0
    return false;
30177
0
  }
30178
0
  Maybe<AutoCEReaction> ceReaction;
30179
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30180
0
    DocGroup* docGroup = self->GetDocGroup();
30181
0
    if (docGroup) {
30182
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30183
0
    }
30184
0
  }
30185
0
  FastErrorResult rv;
30186
0
  nsIPrincipal* subjectPrincipal;
30187
0
  {
30188
0
    JS::Realm* realm = js::GetContextRealm(cx);
30189
0
    MOZ_ASSERT(realm);
30190
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30191
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30192
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30193
0
      principal = nullptr;
30194
0
    }
30195
0
30196
0
    subjectPrincipal = principal;
30197
0
  }
30198
0
  self->SetAnimation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30199
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30200
0
    return false;
30201
0
  }
30202
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30203
0
30204
0
  return true;
30205
0
}
30206
30207
static const JSJitInfo animation_getterinfo = {
30208
  { (JSJitGetterOp)get_animation },
30209
  { prototypes::id::CSS2Properties },
30210
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30211
  JSJitInfo::Getter,
30212
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30213
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30214
  false,  /* isInfallible. False in setters. */
30215
  false,  /* isMovable.  Not relevant for setters. */
30216
  false, /* isEliminatable.  Not relevant for setters. */
30217
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30218
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30219
  false,  /* isTypedMethod.  Only relevant for methods. */
30220
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30221
};
30222
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30223
static_assert(0 < 1, "There is no slot for us");
30224
static const JSJitInfo animation_setterinfo = {
30225
  { (JSJitGetterOp)set_animation },
30226
  { prototypes::id::CSS2Properties },
30227
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30228
  JSJitInfo::Setter,
30229
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30230
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30231
  false,  /* isInfallible. False in setters. */
30232
  false,  /* isMovable.  Not relevant for setters. */
30233
  false, /* isEliminatable.  Not relevant for setters. */
30234
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30235
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30236
  false,  /* isTypedMethod.  Only relevant for methods. */
30237
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30238
};
30239
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30240
static_assert(0 < 1, "There is no slot for us");
30241
30242
MOZ_CAN_RUN_SCRIPT static bool
30243
get_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30244
0
{
30245
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.scrollSnapType", DOM, cx);
30246
0
30247
0
  FastErrorResult rv;
30248
0
  DOMString result;
30249
0
  self->GetScrollSnapType(result, rv);
30250
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30251
0
    return false;
30252
0
  }
30253
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30254
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30255
0
    return false;
30256
0
  }
30257
0
  return true;
30258
0
}
30259
30260
MOZ_CAN_RUN_SCRIPT static bool
30261
set_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30262
0
{
30263
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.scrollSnapType", DOM, cx);
30264
0
30265
0
  binding_detail::FakeString arg0;
30266
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30267
0
    return false;
30268
0
  }
30269
0
  Maybe<AutoCEReaction> ceReaction;
30270
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30271
0
    DocGroup* docGroup = self->GetDocGroup();
30272
0
    if (docGroup) {
30273
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30274
0
    }
30275
0
  }
30276
0
  FastErrorResult rv;
30277
0
  nsIPrincipal* subjectPrincipal;
30278
0
  {
30279
0
    JS::Realm* realm = js::GetContextRealm(cx);
30280
0
    MOZ_ASSERT(realm);
30281
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30282
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30283
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30284
0
      principal = nullptr;
30285
0
    }
30286
0
30287
0
    subjectPrincipal = principal;
30288
0
  }
30289
0
  self->SetScrollSnapType(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30290
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30291
0
    return false;
30292
0
  }
30293
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30294
0
30295
0
  return true;
30296
0
}
30297
30298
static const JSJitInfo scrollSnapType_getterinfo = {
30299
  { (JSJitGetterOp)get_scrollSnapType },
30300
  { prototypes::id::CSS2Properties },
30301
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30302
  JSJitInfo::Getter,
30303
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30304
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30305
  false,  /* isInfallible. False in setters. */
30306
  false,  /* isMovable.  Not relevant for setters. */
30307
  false, /* isEliminatable.  Not relevant for setters. */
30308
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30309
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30310
  false,  /* isTypedMethod.  Only relevant for methods. */
30311
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30312
};
30313
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30314
static_assert(0 < 1, "There is no slot for us");
30315
static const JSJitInfo scrollSnapType_setterinfo = {
30316
  { (JSJitGetterOp)set_scrollSnapType },
30317
  { prototypes::id::CSS2Properties },
30318
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30319
  JSJitInfo::Setter,
30320
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30321
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30322
  false,  /* isInfallible. False in setters. */
30323
  false,  /* isMovable.  Not relevant for setters. */
30324
  false, /* isEliminatable.  Not relevant for setters. */
30325
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30326
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30327
  false,  /* isTypedMethod.  Only relevant for methods. */
30328
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30329
};
30330
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30331
static_assert(0 < 1, "There is no slot for us");
30332
30333
MOZ_CAN_RUN_SCRIPT static bool
30334
get_overscrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30335
0
{
30336
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.overscrollBehavior", DOM, cx);
30337
0
30338
0
  FastErrorResult rv;
30339
0
  DOMString result;
30340
0
  self->GetOverscrollBehavior(result, rv);
30341
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30342
0
    return false;
30343
0
  }
30344
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30345
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30346
0
    return false;
30347
0
  }
30348
0
  return true;
30349
0
}
30350
30351
MOZ_CAN_RUN_SCRIPT static bool
30352
set_overscrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30353
0
{
30354
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.overscrollBehavior", DOM, cx);
30355
0
30356
0
  binding_detail::FakeString arg0;
30357
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30358
0
    return false;
30359
0
  }
30360
0
  Maybe<AutoCEReaction> ceReaction;
30361
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30362
0
    DocGroup* docGroup = self->GetDocGroup();
30363
0
    if (docGroup) {
30364
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30365
0
    }
30366
0
  }
30367
0
  FastErrorResult rv;
30368
0
  nsIPrincipal* subjectPrincipal;
30369
0
  {
30370
0
    JS::Realm* realm = js::GetContextRealm(cx);
30371
0
    MOZ_ASSERT(realm);
30372
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30373
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30374
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30375
0
      principal = nullptr;
30376
0
    }
30377
0
30378
0
    subjectPrincipal = principal;
30379
0
  }
30380
0
  self->SetOverscrollBehavior(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30381
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30382
0
    return false;
30383
0
  }
30384
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30385
0
30386
0
  return true;
30387
0
}
30388
30389
static const JSJitInfo overscrollBehavior_getterinfo = {
30390
  { (JSJitGetterOp)get_overscrollBehavior },
30391
  { prototypes::id::CSS2Properties },
30392
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30393
  JSJitInfo::Getter,
30394
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30395
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30396
  false,  /* isInfallible. False in setters. */
30397
  false,  /* isMovable.  Not relevant for setters. */
30398
  false, /* isEliminatable.  Not relevant for setters. */
30399
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30400
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30401
  false,  /* isTypedMethod.  Only relevant for methods. */
30402
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30403
};
30404
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30405
static_assert(0 < 1, "There is no slot for us");
30406
static const JSJitInfo overscrollBehavior_setterinfo = {
30407
  { (JSJitGetterOp)set_overscrollBehavior },
30408
  { prototypes::id::CSS2Properties },
30409
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30410
  JSJitInfo::Setter,
30411
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30412
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30413
  false,  /* isInfallible. False in setters. */
30414
  false,  /* isMovable.  Not relevant for setters. */
30415
  false, /* isEliminatable.  Not relevant for setters. */
30416
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30417
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30418
  false,  /* isTypedMethod.  Only relevant for methods. */
30419
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30420
};
30421
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30422
static_assert(0 < 1, "There is no slot for us");
30423
30424
MOZ_CAN_RUN_SCRIPT static bool
30425
get_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30426
0
{
30427
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columns", DOM, cx);
30428
0
30429
0
  FastErrorResult rv;
30430
0
  DOMString result;
30431
0
  self->GetColumns(result, rv);
30432
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30433
0
    return false;
30434
0
  }
30435
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30436
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30437
0
    return false;
30438
0
  }
30439
0
  return true;
30440
0
}
30441
30442
MOZ_CAN_RUN_SCRIPT static bool
30443
set_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30444
0
{
30445
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columns", DOM, cx);
30446
0
30447
0
  binding_detail::FakeString arg0;
30448
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30449
0
    return false;
30450
0
  }
30451
0
  Maybe<AutoCEReaction> ceReaction;
30452
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30453
0
    DocGroup* docGroup = self->GetDocGroup();
30454
0
    if (docGroup) {
30455
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30456
0
    }
30457
0
  }
30458
0
  FastErrorResult rv;
30459
0
  nsIPrincipal* subjectPrincipal;
30460
0
  {
30461
0
    JS::Realm* realm = js::GetContextRealm(cx);
30462
0
    MOZ_ASSERT(realm);
30463
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30464
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30465
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30466
0
      principal = nullptr;
30467
0
    }
30468
0
30469
0
    subjectPrincipal = principal;
30470
0
  }
30471
0
  self->SetColumns(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30472
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30473
0
    return false;
30474
0
  }
30475
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30476
0
30477
0
  return true;
30478
0
}
30479
30480
static const JSJitInfo columns_getterinfo = {
30481
  { (JSJitGetterOp)get_columns },
30482
  { prototypes::id::CSS2Properties },
30483
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30484
  JSJitInfo::Getter,
30485
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30486
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30487
  false,  /* isInfallible. False in setters. */
30488
  false,  /* isMovable.  Not relevant for setters. */
30489
  false, /* isEliminatable.  Not relevant for setters. */
30490
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30491
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30492
  false,  /* isTypedMethod.  Only relevant for methods. */
30493
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30494
};
30495
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30496
static_assert(0 < 1, "There is no slot for us");
30497
static const JSJitInfo columns_setterinfo = {
30498
  { (JSJitGetterOp)set_columns },
30499
  { prototypes::id::CSS2Properties },
30500
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30501
  JSJitInfo::Setter,
30502
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30503
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30504
  false,  /* isInfallible. False in setters. */
30505
  false,  /* isMovable.  Not relevant for setters. */
30506
  false, /* isEliminatable.  Not relevant for setters. */
30507
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30508
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30509
  false,  /* isTypedMethod.  Only relevant for methods. */
30510
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30511
};
30512
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30513
static_assert(0 < 1, "There is no slot for us");
30514
30515
MOZ_CAN_RUN_SCRIPT static bool
30516
get_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30517
0
{
30518
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.columnRule", DOM, cx);
30519
0
30520
0
  FastErrorResult rv;
30521
0
  DOMString result;
30522
0
  self->GetColumnRule(result, rv);
30523
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30524
0
    return false;
30525
0
  }
30526
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30527
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30528
0
    return false;
30529
0
  }
30530
0
  return true;
30531
0
}
30532
30533
MOZ_CAN_RUN_SCRIPT static bool
30534
set_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30535
0
{
30536
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.columnRule", DOM, cx);
30537
0
30538
0
  binding_detail::FakeString arg0;
30539
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30540
0
    return false;
30541
0
  }
30542
0
  Maybe<AutoCEReaction> ceReaction;
30543
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30544
0
    DocGroup* docGroup = self->GetDocGroup();
30545
0
    if (docGroup) {
30546
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30547
0
    }
30548
0
  }
30549
0
  FastErrorResult rv;
30550
0
  nsIPrincipal* subjectPrincipal;
30551
0
  {
30552
0
    JS::Realm* realm = js::GetContextRealm(cx);
30553
0
    MOZ_ASSERT(realm);
30554
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30555
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30556
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30557
0
      principal = nullptr;
30558
0
    }
30559
0
30560
0
    subjectPrincipal = principal;
30561
0
  }
30562
0
  self->SetColumnRule(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30563
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30564
0
    return false;
30565
0
  }
30566
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30567
0
30568
0
  return true;
30569
0
}
30570
30571
static const JSJitInfo columnRule_getterinfo = {
30572
  { (JSJitGetterOp)get_columnRule },
30573
  { prototypes::id::CSS2Properties },
30574
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30575
  JSJitInfo::Getter,
30576
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30577
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30578
  false,  /* isInfallible. False in setters. */
30579
  false,  /* isMovable.  Not relevant for setters. */
30580
  false, /* isEliminatable.  Not relevant for setters. */
30581
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30582
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30583
  false,  /* isTypedMethod.  Only relevant for methods. */
30584
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30585
};
30586
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30587
static_assert(0 < 1, "There is no slot for us");
30588
static const JSJitInfo columnRule_setterinfo = {
30589
  { (JSJitGetterOp)set_columnRule },
30590
  { prototypes::id::CSS2Properties },
30591
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30592
  JSJitInfo::Setter,
30593
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30594
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30595
  false,  /* isInfallible. False in setters. */
30596
  false,  /* isMovable.  Not relevant for setters. */
30597
  false, /* isEliminatable.  Not relevant for setters. */
30598
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30599
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30600
  false,  /* isTypedMethod.  Only relevant for methods. */
30601
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30602
};
30603
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30604
static_assert(0 < 1, "There is no slot for us");
30605
30606
MOZ_CAN_RUN_SCRIPT static bool
30607
get_font(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30608
0
{
30609
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.font", DOM, cx);
30610
0
30611
0
  FastErrorResult rv;
30612
0
  DOMString result;
30613
0
  self->GetFont(result, rv);
30614
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30615
0
    return false;
30616
0
  }
30617
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30618
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30619
0
    return false;
30620
0
  }
30621
0
  return true;
30622
0
}
30623
30624
MOZ_CAN_RUN_SCRIPT static bool
30625
set_font(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30626
0
{
30627
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.font", DOM, cx);
30628
0
30629
0
  binding_detail::FakeString arg0;
30630
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30631
0
    return false;
30632
0
  }
30633
0
  Maybe<AutoCEReaction> ceReaction;
30634
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30635
0
    DocGroup* docGroup = self->GetDocGroup();
30636
0
    if (docGroup) {
30637
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30638
0
    }
30639
0
  }
30640
0
  FastErrorResult rv;
30641
0
  nsIPrincipal* subjectPrincipal;
30642
0
  {
30643
0
    JS::Realm* realm = js::GetContextRealm(cx);
30644
0
    MOZ_ASSERT(realm);
30645
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30646
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30647
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30648
0
      principal = nullptr;
30649
0
    }
30650
0
30651
0
    subjectPrincipal = principal;
30652
0
  }
30653
0
  self->SetFont(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30654
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30655
0
    return false;
30656
0
  }
30657
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30658
0
30659
0
  return true;
30660
0
}
30661
30662
static const JSJitInfo font_getterinfo = {
30663
  { (JSJitGetterOp)get_font },
30664
  { prototypes::id::CSS2Properties },
30665
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30666
  JSJitInfo::Getter,
30667
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30668
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30669
  false,  /* isInfallible. False in setters. */
30670
  false,  /* isMovable.  Not relevant for setters. */
30671
  false, /* isEliminatable.  Not relevant for setters. */
30672
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30673
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30674
  false,  /* isTypedMethod.  Only relevant for methods. */
30675
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30676
};
30677
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30678
static_assert(0 < 1, "There is no slot for us");
30679
static const JSJitInfo font_setterinfo = {
30680
  { (JSJitGetterOp)set_font },
30681
  { prototypes::id::CSS2Properties },
30682
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30683
  JSJitInfo::Setter,
30684
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30685
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30686
  false,  /* isInfallible. False in setters. */
30687
  false,  /* isMovable.  Not relevant for setters. */
30688
  false, /* isEliminatable.  Not relevant for setters. */
30689
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30690
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30691
  false,  /* isTypedMethod.  Only relevant for methods. */
30692
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30693
};
30694
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30695
static_assert(0 < 1, "There is no slot for us");
30696
30697
MOZ_CAN_RUN_SCRIPT static bool
30698
get_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30699
0
{
30700
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.fontVariant", DOM, cx);
30701
0
30702
0
  FastErrorResult rv;
30703
0
  DOMString result;
30704
0
  self->GetFontVariant(result, rv);
30705
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30706
0
    return false;
30707
0
  }
30708
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30709
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30710
0
    return false;
30711
0
  }
30712
0
  return true;
30713
0
}
30714
30715
MOZ_CAN_RUN_SCRIPT static bool
30716
set_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30717
0
{
30718
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.fontVariant", DOM, cx);
30719
0
30720
0
  binding_detail::FakeString arg0;
30721
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30722
0
    return false;
30723
0
  }
30724
0
  Maybe<AutoCEReaction> ceReaction;
30725
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30726
0
    DocGroup* docGroup = self->GetDocGroup();
30727
0
    if (docGroup) {
30728
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30729
0
    }
30730
0
  }
30731
0
  FastErrorResult rv;
30732
0
  nsIPrincipal* subjectPrincipal;
30733
0
  {
30734
0
    JS::Realm* realm = js::GetContextRealm(cx);
30735
0
    MOZ_ASSERT(realm);
30736
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30737
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30738
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30739
0
      principal = nullptr;
30740
0
    }
30741
0
30742
0
    subjectPrincipal = principal;
30743
0
  }
30744
0
  self->SetFontVariant(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30745
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30746
0
    return false;
30747
0
  }
30748
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30749
0
30750
0
  return true;
30751
0
}
30752
30753
static const JSJitInfo fontVariant_getterinfo = {
30754
  { (JSJitGetterOp)get_fontVariant },
30755
  { prototypes::id::CSS2Properties },
30756
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30757
  JSJitInfo::Getter,
30758
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30759
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30760
  false,  /* isInfallible. False in setters. */
30761
  false,  /* isMovable.  Not relevant for setters. */
30762
  false, /* isEliminatable.  Not relevant for setters. */
30763
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30764
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30765
  false,  /* isTypedMethod.  Only relevant for methods. */
30766
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30767
};
30768
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30769
static_assert(0 < 1, "There is no slot for us");
30770
static const JSJitInfo fontVariant_setterinfo = {
30771
  { (JSJitGetterOp)set_fontVariant },
30772
  { prototypes::id::CSS2Properties },
30773
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30774
  JSJitInfo::Setter,
30775
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30776
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30777
  false,  /* isInfallible. False in setters. */
30778
  false,  /* isMovable.  Not relevant for setters. */
30779
  false, /* isEliminatable.  Not relevant for setters. */
30780
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30781
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30782
  false,  /* isTypedMethod.  Only relevant for methods. */
30783
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30784
};
30785
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30786
static_assert(0 < 1, "There is no slot for us");
30787
30788
MOZ_CAN_RUN_SCRIPT static bool
30789
get_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30790
0
{
30791
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textEmphasis", DOM, cx);
30792
0
30793
0
  FastErrorResult rv;
30794
0
  DOMString result;
30795
0
  self->GetTextEmphasis(result, rv);
30796
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30797
0
    return false;
30798
0
  }
30799
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30800
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30801
0
    return false;
30802
0
  }
30803
0
  return true;
30804
0
}
30805
30806
MOZ_CAN_RUN_SCRIPT static bool
30807
set_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30808
0
{
30809
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textEmphasis", DOM, cx);
30810
0
30811
0
  binding_detail::FakeString arg0;
30812
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30813
0
    return false;
30814
0
  }
30815
0
  Maybe<AutoCEReaction> ceReaction;
30816
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30817
0
    DocGroup* docGroup = self->GetDocGroup();
30818
0
    if (docGroup) {
30819
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30820
0
    }
30821
0
  }
30822
0
  FastErrorResult rv;
30823
0
  nsIPrincipal* subjectPrincipal;
30824
0
  {
30825
0
    JS::Realm* realm = js::GetContextRealm(cx);
30826
0
    MOZ_ASSERT(realm);
30827
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30828
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30829
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30830
0
      principal = nullptr;
30831
0
    }
30832
0
30833
0
    subjectPrincipal = principal;
30834
0
  }
30835
0
  self->SetTextEmphasis(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30836
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30837
0
    return false;
30838
0
  }
30839
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30840
0
30841
0
  return true;
30842
0
}
30843
30844
static const JSJitInfo textEmphasis_getterinfo = {
30845
  { (JSJitGetterOp)get_textEmphasis },
30846
  { prototypes::id::CSS2Properties },
30847
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30848
  JSJitInfo::Getter,
30849
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30850
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30851
  false,  /* isInfallible. False in setters. */
30852
  false,  /* isMovable.  Not relevant for setters. */
30853
  false, /* isEliminatable.  Not relevant for setters. */
30854
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30855
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30856
  false,  /* isTypedMethod.  Only relevant for methods. */
30857
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30858
};
30859
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30860
static_assert(0 < 1, "There is no slot for us");
30861
static const JSJitInfo textEmphasis_setterinfo = {
30862
  { (JSJitGetterOp)set_textEmphasis },
30863
  { prototypes::id::CSS2Properties },
30864
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30865
  JSJitInfo::Setter,
30866
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30867
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30868
  false,  /* isInfallible. False in setters. */
30869
  false,  /* isMovable.  Not relevant for setters. */
30870
  false, /* isEliminatable.  Not relevant for setters. */
30871
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30872
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30873
  false,  /* isTypedMethod.  Only relevant for methods. */
30874
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30875
};
30876
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30877
static_assert(0 < 1, "There is no slot for us");
30878
30879
MOZ_CAN_RUN_SCRIPT static bool
30880
get_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30881
0
{
30882
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTextStroke", DOM, cx);
30883
0
30884
0
  FastErrorResult rv;
30885
0
  DOMString result;
30886
0
  self->GetWebkitTextStroke(result, rv);
30887
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30888
0
    return false;
30889
0
  }
30890
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30891
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30892
0
    return false;
30893
0
  }
30894
0
  return true;
30895
0
}
30896
30897
MOZ_CAN_RUN_SCRIPT static bool
30898
set_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30899
0
{
30900
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTextStroke", DOM, cx);
30901
0
30902
0
  binding_detail::FakeString arg0;
30903
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30904
0
    return false;
30905
0
  }
30906
0
  Maybe<AutoCEReaction> ceReaction;
30907
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30908
0
    DocGroup* docGroup = self->GetDocGroup();
30909
0
    if (docGroup) {
30910
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
30911
0
    }
30912
0
  }
30913
0
  FastErrorResult rv;
30914
0
  nsIPrincipal* subjectPrincipal;
30915
0
  {
30916
0
    JS::Realm* realm = js::GetContextRealm(cx);
30917
0
    MOZ_ASSERT(realm);
30918
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
30919
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
30920
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
30921
0
      principal = nullptr;
30922
0
    }
30923
0
30924
0
    subjectPrincipal = principal;
30925
0
  }
30926
0
  self->SetWebkitTextStroke(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
30927
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30928
0
    return false;
30929
0
  }
30930
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30931
0
30932
0
  return true;
30933
0
}
30934
30935
static const JSJitInfo webkitTextStroke_getterinfo = {
30936
  { (JSJitGetterOp)get_webkitTextStroke },
30937
  { prototypes::id::CSS2Properties },
30938
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30939
  JSJitInfo::Getter,
30940
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30941
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
30942
  false,  /* isInfallible. False in setters. */
30943
  false,  /* isMovable.  Not relevant for setters. */
30944
  false, /* isEliminatable.  Not relevant for setters. */
30945
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30946
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30947
  false,  /* isTypedMethod.  Only relevant for methods. */
30948
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30949
};
30950
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30951
static_assert(0 < 1, "There is no slot for us");
30952
static const JSJitInfo webkitTextStroke_setterinfo = {
30953
  { (JSJitGetterOp)set_webkitTextStroke },
30954
  { prototypes::id::CSS2Properties },
30955
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
30956
  JSJitInfo::Setter,
30957
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
30958
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
30959
  false,  /* isInfallible. False in setters. */
30960
  false,  /* isMovable.  Not relevant for setters. */
30961
  false, /* isEliminatable.  Not relevant for setters. */
30962
  false, /* isAlwaysInSlot.  Only relevant for getters. */
30963
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
30964
  false,  /* isTypedMethod.  Only relevant for methods. */
30965
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
30966
};
30967
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
30968
static_assert(0 < 1, "There is no slot for us");
30969
30970
MOZ_CAN_RUN_SCRIPT static bool
30971
get_marker(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
30972
0
{
30973
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.marker", DOM, cx);
30974
0
30975
0
  FastErrorResult rv;
30976
0
  DOMString result;
30977
0
  self->GetMarker(result, rv);
30978
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
30979
0
    return false;
30980
0
  }
30981
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
30982
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
30983
0
    return false;
30984
0
  }
30985
0
  return true;
30986
0
}
30987
30988
MOZ_CAN_RUN_SCRIPT static bool
30989
set_marker(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
30990
0
{
30991
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.marker", DOM, cx);
30992
0
30993
0
  binding_detail::FakeString arg0;
30994
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
30995
0
    return false;
30996
0
  }
30997
0
  Maybe<AutoCEReaction> ceReaction;
30998
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
30999
0
    DocGroup* docGroup = self->GetDocGroup();
31000
0
    if (docGroup) {
31001
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31002
0
    }
31003
0
  }
31004
0
  FastErrorResult rv;
31005
0
  nsIPrincipal* subjectPrincipal;
31006
0
  {
31007
0
    JS::Realm* realm = js::GetContextRealm(cx);
31008
0
    MOZ_ASSERT(realm);
31009
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31010
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31011
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31012
0
      principal = nullptr;
31013
0
    }
31014
0
31015
0
    subjectPrincipal = principal;
31016
0
  }
31017
0
  self->SetMarker(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31018
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31019
0
    return false;
31020
0
  }
31021
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31022
0
31023
0
  return true;
31024
0
}
31025
31026
static const JSJitInfo marker_getterinfo = {
31027
  { (JSJitGetterOp)get_marker },
31028
  { prototypes::id::CSS2Properties },
31029
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31030
  JSJitInfo::Getter,
31031
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31032
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31033
  false,  /* isInfallible. False in setters. */
31034
  false,  /* isMovable.  Not relevant for setters. */
31035
  false, /* isEliminatable.  Not relevant for setters. */
31036
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31037
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31038
  false,  /* isTypedMethod.  Only relevant for methods. */
31039
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31040
};
31041
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31042
static_assert(0 < 1, "There is no slot for us");
31043
static const JSJitInfo marker_setterinfo = {
31044
  { (JSJitGetterOp)set_marker },
31045
  { prototypes::id::CSS2Properties },
31046
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31047
  JSJitInfo::Setter,
31048
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31049
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31050
  false,  /* isInfallible. False in setters. */
31051
  false,  /* isMovable.  Not relevant for setters. */
31052
  false, /* isEliminatable.  Not relevant for setters. */
31053
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31054
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31055
  false,  /* isTypedMethod.  Only relevant for methods. */
31056
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31057
};
31058
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31059
static_assert(0 < 1, "There is no slot for us");
31060
31061
MOZ_CAN_RUN_SCRIPT static bool
31062
get_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31063
0
{
31064
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.listStyle", DOM, cx);
31065
0
31066
0
  FastErrorResult rv;
31067
0
  DOMString result;
31068
0
  self->GetListStyle(result, rv);
31069
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31070
0
    return false;
31071
0
  }
31072
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31073
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31074
0
    return false;
31075
0
  }
31076
0
  return true;
31077
0
}
31078
31079
MOZ_CAN_RUN_SCRIPT static bool
31080
set_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31081
0
{
31082
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.listStyle", DOM, cx);
31083
0
31084
0
  binding_detail::FakeString arg0;
31085
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31086
0
    return false;
31087
0
  }
31088
0
  Maybe<AutoCEReaction> ceReaction;
31089
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31090
0
    DocGroup* docGroup = self->GetDocGroup();
31091
0
    if (docGroup) {
31092
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31093
0
    }
31094
0
  }
31095
0
  FastErrorResult rv;
31096
0
  nsIPrincipal* subjectPrincipal;
31097
0
  {
31098
0
    JS::Realm* realm = js::GetContextRealm(cx);
31099
0
    MOZ_ASSERT(realm);
31100
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31101
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31102
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31103
0
      principal = nullptr;
31104
0
    }
31105
0
31106
0
    subjectPrincipal = principal;
31107
0
  }
31108
0
  self->SetListStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31109
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31110
0
    return false;
31111
0
  }
31112
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31113
0
31114
0
  return true;
31115
0
}
31116
31117
static const JSJitInfo listStyle_getterinfo = {
31118
  { (JSJitGetterOp)get_listStyle },
31119
  { prototypes::id::CSS2Properties },
31120
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31121
  JSJitInfo::Getter,
31122
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31123
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31124
  false,  /* isInfallible. False in setters. */
31125
  false,  /* isMovable.  Not relevant for setters. */
31126
  false, /* isEliminatable.  Not relevant for setters. */
31127
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31128
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31129
  false,  /* isTypedMethod.  Only relevant for methods. */
31130
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31131
};
31132
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31133
static_assert(0 < 1, "There is no slot for us");
31134
static const JSJitInfo listStyle_setterinfo = {
31135
  { (JSJitGetterOp)set_listStyle },
31136
  { prototypes::id::CSS2Properties },
31137
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31138
  JSJitInfo::Setter,
31139
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31140
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31141
  false,  /* isInfallible. False in setters. */
31142
  false,  /* isMovable.  Not relevant for setters. */
31143
  false, /* isEliminatable.  Not relevant for setters. */
31144
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31145
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31146
  false,  /* isTypedMethod.  Only relevant for methods. */
31147
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31148
};
31149
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31150
static_assert(0 < 1, "There is no slot for us");
31151
31152
MOZ_CAN_RUN_SCRIPT static bool
31153
get_margin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31154
0
{
31155
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.margin", DOM, cx);
31156
0
31157
0
  FastErrorResult rv;
31158
0
  DOMString result;
31159
0
  self->GetMargin(result, rv);
31160
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31161
0
    return false;
31162
0
  }
31163
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31164
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31165
0
    return false;
31166
0
  }
31167
0
  return true;
31168
0
}
31169
31170
MOZ_CAN_RUN_SCRIPT static bool
31171
set_margin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31172
0
{
31173
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.margin", DOM, cx);
31174
0
31175
0
  binding_detail::FakeString arg0;
31176
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31177
0
    return false;
31178
0
  }
31179
0
  Maybe<AutoCEReaction> ceReaction;
31180
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31181
0
    DocGroup* docGroup = self->GetDocGroup();
31182
0
    if (docGroup) {
31183
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31184
0
    }
31185
0
  }
31186
0
  FastErrorResult rv;
31187
0
  nsIPrincipal* subjectPrincipal;
31188
0
  {
31189
0
    JS::Realm* realm = js::GetContextRealm(cx);
31190
0
    MOZ_ASSERT(realm);
31191
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31192
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31193
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31194
0
      principal = nullptr;
31195
0
    }
31196
0
31197
0
    subjectPrincipal = principal;
31198
0
  }
31199
0
  self->SetMargin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31200
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31201
0
    return false;
31202
0
  }
31203
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31204
0
31205
0
  return true;
31206
0
}
31207
31208
static const JSJitInfo margin_getterinfo = {
31209
  { (JSJitGetterOp)get_margin },
31210
  { prototypes::id::CSS2Properties },
31211
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31212
  JSJitInfo::Getter,
31213
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31214
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31215
  false,  /* isInfallible. False in setters. */
31216
  false,  /* isMovable.  Not relevant for setters. */
31217
  false, /* isEliminatable.  Not relevant for setters. */
31218
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31219
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31220
  false,  /* isTypedMethod.  Only relevant for methods. */
31221
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31222
};
31223
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31224
static_assert(0 < 1, "There is no slot for us");
31225
static const JSJitInfo margin_setterinfo = {
31226
  { (JSJitGetterOp)set_margin },
31227
  { prototypes::id::CSS2Properties },
31228
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31229
  JSJitInfo::Setter,
31230
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31231
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31232
  false,  /* isInfallible. False in setters. */
31233
  false,  /* isMovable.  Not relevant for setters. */
31234
  false, /* isEliminatable.  Not relevant for setters. */
31235
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31236
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31237
  false,  /* isTypedMethod.  Only relevant for methods. */
31238
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31239
};
31240
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31241
static_assert(0 < 1, "There is no slot for us");
31242
31243
MOZ_CAN_RUN_SCRIPT static bool
31244
get_outline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31245
0
{
31246
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.outline", DOM, cx);
31247
0
31248
0
  FastErrorResult rv;
31249
0
  DOMString result;
31250
0
  self->GetOutline(result, rv);
31251
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31252
0
    return false;
31253
0
  }
31254
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31255
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31256
0
    return false;
31257
0
  }
31258
0
  return true;
31259
0
}
31260
31261
MOZ_CAN_RUN_SCRIPT static bool
31262
set_outline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31263
0
{
31264
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.outline", DOM, cx);
31265
0
31266
0
  binding_detail::FakeString arg0;
31267
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31268
0
    return false;
31269
0
  }
31270
0
  Maybe<AutoCEReaction> ceReaction;
31271
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31272
0
    DocGroup* docGroup = self->GetDocGroup();
31273
0
    if (docGroup) {
31274
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31275
0
    }
31276
0
  }
31277
0
  FastErrorResult rv;
31278
0
  nsIPrincipal* subjectPrincipal;
31279
0
  {
31280
0
    JS::Realm* realm = js::GetContextRealm(cx);
31281
0
    MOZ_ASSERT(realm);
31282
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31283
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31284
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31285
0
      principal = nullptr;
31286
0
    }
31287
0
31288
0
    subjectPrincipal = principal;
31289
0
  }
31290
0
  self->SetOutline(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31291
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31292
0
    return false;
31293
0
  }
31294
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31295
0
31296
0
  return true;
31297
0
}
31298
31299
static const JSJitInfo outline_getterinfo = {
31300
  { (JSJitGetterOp)get_outline },
31301
  { prototypes::id::CSS2Properties },
31302
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31303
  JSJitInfo::Getter,
31304
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31305
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31306
  false,  /* isInfallible. False in setters. */
31307
  false,  /* isMovable.  Not relevant for setters. */
31308
  false, /* isEliminatable.  Not relevant for setters. */
31309
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31310
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31311
  false,  /* isTypedMethod.  Only relevant for methods. */
31312
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31313
};
31314
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31315
static_assert(0 < 1, "There is no slot for us");
31316
static const JSJitInfo outline_setterinfo = {
31317
  { (JSJitGetterOp)set_outline },
31318
  { prototypes::id::CSS2Properties },
31319
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31320
  JSJitInfo::Setter,
31321
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31322
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31323
  false,  /* isInfallible. False in setters. */
31324
  false,  /* isMovable.  Not relevant for setters. */
31325
  false, /* isEliminatable.  Not relevant for setters. */
31326
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31327
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31328
  false,  /* isTypedMethod.  Only relevant for methods. */
31329
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31330
};
31331
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31332
static_assert(0 < 1, "There is no slot for us");
31333
31334
MOZ_CAN_RUN_SCRIPT static bool
31335
get_MozOutlineRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31336
0
{
31337
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozOutlineRadius", DOM, cx);
31338
0
31339
0
  FastErrorResult rv;
31340
0
  DOMString result;
31341
0
  self->GetMozOutlineRadius(result, rv);
31342
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31343
0
    return false;
31344
0
  }
31345
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31346
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31347
0
    return false;
31348
0
  }
31349
0
  return true;
31350
0
}
31351
31352
MOZ_CAN_RUN_SCRIPT static bool
31353
set_MozOutlineRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31354
0
{
31355
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozOutlineRadius", DOM, cx);
31356
0
31357
0
  binding_detail::FakeString arg0;
31358
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31359
0
    return false;
31360
0
  }
31361
0
  Maybe<AutoCEReaction> ceReaction;
31362
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31363
0
    DocGroup* docGroup = self->GetDocGroup();
31364
0
    if (docGroup) {
31365
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31366
0
    }
31367
0
  }
31368
0
  FastErrorResult rv;
31369
0
  nsIPrincipal* subjectPrincipal;
31370
0
  {
31371
0
    JS::Realm* realm = js::GetContextRealm(cx);
31372
0
    MOZ_ASSERT(realm);
31373
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31374
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31375
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31376
0
      principal = nullptr;
31377
0
    }
31378
0
31379
0
    subjectPrincipal = principal;
31380
0
  }
31381
0
  self->SetMozOutlineRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31382
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31383
0
    return false;
31384
0
  }
31385
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31386
0
31387
0
  return true;
31388
0
}
31389
31390
static const JSJitInfo MozOutlineRadius_getterinfo = {
31391
  { (JSJitGetterOp)get_MozOutlineRadius },
31392
  { prototypes::id::CSS2Properties },
31393
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31394
  JSJitInfo::Getter,
31395
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31396
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31397
  false,  /* isInfallible. False in setters. */
31398
  false,  /* isMovable.  Not relevant for setters. */
31399
  false, /* isEliminatable.  Not relevant for setters. */
31400
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31401
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31402
  false,  /* isTypedMethod.  Only relevant for methods. */
31403
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31404
};
31405
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31406
static_assert(0 < 1, "There is no slot for us");
31407
static const JSJitInfo MozOutlineRadius_setterinfo = {
31408
  { (JSJitGetterOp)set_MozOutlineRadius },
31409
  { prototypes::id::CSS2Properties },
31410
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31411
  JSJitInfo::Setter,
31412
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31413
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31414
  false,  /* isInfallible. False in setters. */
31415
  false,  /* isMovable.  Not relevant for setters. */
31416
  false, /* isEliminatable.  Not relevant for setters. */
31417
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31418
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31419
  false,  /* isTypedMethod.  Only relevant for methods. */
31420
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31421
};
31422
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31423
static_assert(0 < 1, "There is no slot for us");
31424
31425
MOZ_CAN_RUN_SCRIPT static bool
31426
get_padding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31427
0
{
31428
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.padding", DOM, cx);
31429
0
31430
0
  FastErrorResult rv;
31431
0
  DOMString result;
31432
0
  self->GetPadding(result, rv);
31433
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31434
0
    return false;
31435
0
  }
31436
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31437
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31438
0
    return false;
31439
0
  }
31440
0
  return true;
31441
0
}
31442
31443
MOZ_CAN_RUN_SCRIPT static bool
31444
set_padding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31445
0
{
31446
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.padding", DOM, cx);
31447
0
31448
0
  binding_detail::FakeString arg0;
31449
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31450
0
    return false;
31451
0
  }
31452
0
  Maybe<AutoCEReaction> ceReaction;
31453
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31454
0
    DocGroup* docGroup = self->GetDocGroup();
31455
0
    if (docGroup) {
31456
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31457
0
    }
31458
0
  }
31459
0
  FastErrorResult rv;
31460
0
  nsIPrincipal* subjectPrincipal;
31461
0
  {
31462
0
    JS::Realm* realm = js::GetContextRealm(cx);
31463
0
    MOZ_ASSERT(realm);
31464
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31465
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31466
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31467
0
      principal = nullptr;
31468
0
    }
31469
0
31470
0
    subjectPrincipal = principal;
31471
0
  }
31472
0
  self->SetPadding(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31473
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31474
0
    return false;
31475
0
  }
31476
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31477
0
31478
0
  return true;
31479
0
}
31480
31481
static const JSJitInfo padding_getterinfo = {
31482
  { (JSJitGetterOp)get_padding },
31483
  { prototypes::id::CSS2Properties },
31484
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31485
  JSJitInfo::Getter,
31486
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31487
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31488
  false,  /* isInfallible. False in setters. */
31489
  false,  /* isMovable.  Not relevant for setters. */
31490
  false, /* isEliminatable.  Not relevant for setters. */
31491
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31492
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31493
  false,  /* isTypedMethod.  Only relevant for methods. */
31494
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31495
};
31496
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31497
static_assert(0 < 1, "There is no slot for us");
31498
static const JSJitInfo padding_setterinfo = {
31499
  { (JSJitGetterOp)set_padding },
31500
  { prototypes::id::CSS2Properties },
31501
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31502
  JSJitInfo::Setter,
31503
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31504
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31505
  false,  /* isInfallible. False in setters. */
31506
  false,  /* isMovable.  Not relevant for setters. */
31507
  false, /* isEliminatable.  Not relevant for setters. */
31508
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31509
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31510
  false,  /* isTypedMethod.  Only relevant for methods. */
31511
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31512
};
31513
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31514
static_assert(0 < 1, "There is no slot for us");
31515
31516
MOZ_CAN_RUN_SCRIPT static bool
31517
get_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31518
0
{
31519
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flexFlow", DOM, cx);
31520
0
31521
0
  FastErrorResult rv;
31522
0
  DOMString result;
31523
0
  self->GetFlexFlow(result, rv);
31524
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31525
0
    return false;
31526
0
  }
31527
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31528
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31529
0
    return false;
31530
0
  }
31531
0
  return true;
31532
0
}
31533
31534
MOZ_CAN_RUN_SCRIPT static bool
31535
set_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31536
0
{
31537
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flexFlow", DOM, cx);
31538
0
31539
0
  binding_detail::FakeString arg0;
31540
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31541
0
    return false;
31542
0
  }
31543
0
  Maybe<AutoCEReaction> ceReaction;
31544
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31545
0
    DocGroup* docGroup = self->GetDocGroup();
31546
0
    if (docGroup) {
31547
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31548
0
    }
31549
0
  }
31550
0
  FastErrorResult rv;
31551
0
  nsIPrincipal* subjectPrincipal;
31552
0
  {
31553
0
    JS::Realm* realm = js::GetContextRealm(cx);
31554
0
    MOZ_ASSERT(realm);
31555
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31556
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31557
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31558
0
      principal = nullptr;
31559
0
    }
31560
0
31561
0
    subjectPrincipal = principal;
31562
0
  }
31563
0
  self->SetFlexFlow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31564
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31565
0
    return false;
31566
0
  }
31567
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31568
0
31569
0
  return true;
31570
0
}
31571
31572
static const JSJitInfo flexFlow_getterinfo = {
31573
  { (JSJitGetterOp)get_flexFlow },
31574
  { prototypes::id::CSS2Properties },
31575
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31576
  JSJitInfo::Getter,
31577
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31578
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31579
  false,  /* isInfallible. False in setters. */
31580
  false,  /* isMovable.  Not relevant for setters. */
31581
  false, /* isEliminatable.  Not relevant for setters. */
31582
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31583
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31584
  false,  /* isTypedMethod.  Only relevant for methods. */
31585
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31586
};
31587
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31588
static_assert(0 < 1, "There is no slot for us");
31589
static const JSJitInfo flexFlow_setterinfo = {
31590
  { (JSJitGetterOp)set_flexFlow },
31591
  { prototypes::id::CSS2Properties },
31592
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31593
  JSJitInfo::Setter,
31594
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31595
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31596
  false,  /* isInfallible. False in setters. */
31597
  false,  /* isMovable.  Not relevant for setters. */
31598
  false, /* isEliminatable.  Not relevant for setters. */
31599
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31600
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31601
  false,  /* isTypedMethod.  Only relevant for methods. */
31602
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31603
};
31604
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31605
static_assert(0 < 1, "There is no slot for us");
31606
31607
MOZ_CAN_RUN_SCRIPT static bool
31608
get_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31609
0
{
31610
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.flex", DOM, cx);
31611
0
31612
0
  FastErrorResult rv;
31613
0
  DOMString result;
31614
0
  self->GetFlex(result, rv);
31615
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31616
0
    return false;
31617
0
  }
31618
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31619
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31620
0
    return false;
31621
0
  }
31622
0
  return true;
31623
0
}
31624
31625
MOZ_CAN_RUN_SCRIPT static bool
31626
set_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31627
0
{
31628
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.flex", DOM, cx);
31629
0
31630
0
  binding_detail::FakeString arg0;
31631
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31632
0
    return false;
31633
0
  }
31634
0
  Maybe<AutoCEReaction> ceReaction;
31635
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31636
0
    DocGroup* docGroup = self->GetDocGroup();
31637
0
    if (docGroup) {
31638
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31639
0
    }
31640
0
  }
31641
0
  FastErrorResult rv;
31642
0
  nsIPrincipal* subjectPrincipal;
31643
0
  {
31644
0
    JS::Realm* realm = js::GetContextRealm(cx);
31645
0
    MOZ_ASSERT(realm);
31646
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31647
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31648
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31649
0
      principal = nullptr;
31650
0
    }
31651
0
31652
0
    subjectPrincipal = principal;
31653
0
  }
31654
0
  self->SetFlex(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31655
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31656
0
    return false;
31657
0
  }
31658
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31659
0
31660
0
  return true;
31661
0
}
31662
31663
static const JSJitInfo flex_getterinfo = {
31664
  { (JSJitGetterOp)get_flex },
31665
  { prototypes::id::CSS2Properties },
31666
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31667
  JSJitInfo::Getter,
31668
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31669
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31670
  false,  /* isInfallible. False in setters. */
31671
  false,  /* isMovable.  Not relevant for setters. */
31672
  false, /* isEliminatable.  Not relevant for setters. */
31673
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31674
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31675
  false,  /* isTypedMethod.  Only relevant for methods. */
31676
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31677
};
31678
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31679
static_assert(0 < 1, "There is no slot for us");
31680
static const JSJitInfo flex_setterinfo = {
31681
  { (JSJitGetterOp)set_flex },
31682
  { prototypes::id::CSS2Properties },
31683
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31684
  JSJitInfo::Setter,
31685
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31686
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31687
  false,  /* isInfallible. False in setters. */
31688
  false,  /* isMovable.  Not relevant for setters. */
31689
  false, /* isEliminatable.  Not relevant for setters. */
31690
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31691
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31692
  false,  /* isTypedMethod.  Only relevant for methods. */
31693
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31694
};
31695
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31696
static_assert(0 < 1, "There is no slot for us");
31697
31698
MOZ_CAN_RUN_SCRIPT static bool
31699
get_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31700
0
{
31701
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gap", DOM, cx);
31702
0
31703
0
  FastErrorResult rv;
31704
0
  DOMString result;
31705
0
  self->GetGap(result, rv);
31706
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31707
0
    return false;
31708
0
  }
31709
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31710
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31711
0
    return false;
31712
0
  }
31713
0
  return true;
31714
0
}
31715
31716
MOZ_CAN_RUN_SCRIPT static bool
31717
set_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31718
0
{
31719
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gap", DOM, cx);
31720
0
31721
0
  binding_detail::FakeString arg0;
31722
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31723
0
    return false;
31724
0
  }
31725
0
  Maybe<AutoCEReaction> ceReaction;
31726
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31727
0
    DocGroup* docGroup = self->GetDocGroup();
31728
0
    if (docGroup) {
31729
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31730
0
    }
31731
0
  }
31732
0
  FastErrorResult rv;
31733
0
  nsIPrincipal* subjectPrincipal;
31734
0
  {
31735
0
    JS::Realm* realm = js::GetContextRealm(cx);
31736
0
    MOZ_ASSERT(realm);
31737
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31738
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31739
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31740
0
      principal = nullptr;
31741
0
    }
31742
0
31743
0
    subjectPrincipal = principal;
31744
0
  }
31745
0
  self->SetGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31746
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31747
0
    return false;
31748
0
  }
31749
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31750
0
31751
0
  return true;
31752
0
}
31753
31754
static const JSJitInfo gap_getterinfo = {
31755
  { (JSJitGetterOp)get_gap },
31756
  { prototypes::id::CSS2Properties },
31757
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31758
  JSJitInfo::Getter,
31759
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31760
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31761
  false,  /* isInfallible. False in setters. */
31762
  false,  /* isMovable.  Not relevant for setters. */
31763
  false, /* isEliminatable.  Not relevant for setters. */
31764
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31765
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31766
  false,  /* isTypedMethod.  Only relevant for methods. */
31767
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31768
};
31769
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31770
static_assert(0 < 1, "There is no slot for us");
31771
static const JSJitInfo gap_setterinfo = {
31772
  { (JSJitGetterOp)set_gap },
31773
  { prototypes::id::CSS2Properties },
31774
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31775
  JSJitInfo::Setter,
31776
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31777
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31778
  false,  /* isInfallible. False in setters. */
31779
  false,  /* isMovable.  Not relevant for setters. */
31780
  false, /* isEliminatable.  Not relevant for setters. */
31781
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31782
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31783
  false,  /* isTypedMethod.  Only relevant for methods. */
31784
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31785
};
31786
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31787
static_assert(0 < 1, "There is no slot for us");
31788
31789
MOZ_CAN_RUN_SCRIPT static bool
31790
get_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31791
0
{
31792
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridRow", DOM, cx);
31793
0
31794
0
  FastErrorResult rv;
31795
0
  DOMString result;
31796
0
  self->GetGridRow(result, rv);
31797
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31798
0
    return false;
31799
0
  }
31800
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31801
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31802
0
    return false;
31803
0
  }
31804
0
  return true;
31805
0
}
31806
31807
MOZ_CAN_RUN_SCRIPT static bool
31808
set_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31809
0
{
31810
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridRow", DOM, cx);
31811
0
31812
0
  binding_detail::FakeString arg0;
31813
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31814
0
    return false;
31815
0
  }
31816
0
  Maybe<AutoCEReaction> ceReaction;
31817
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31818
0
    DocGroup* docGroup = self->GetDocGroup();
31819
0
    if (docGroup) {
31820
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31821
0
    }
31822
0
  }
31823
0
  FastErrorResult rv;
31824
0
  nsIPrincipal* subjectPrincipal;
31825
0
  {
31826
0
    JS::Realm* realm = js::GetContextRealm(cx);
31827
0
    MOZ_ASSERT(realm);
31828
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31829
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31830
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31831
0
      principal = nullptr;
31832
0
    }
31833
0
31834
0
    subjectPrincipal = principal;
31835
0
  }
31836
0
  self->SetGridRow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31837
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31838
0
    return false;
31839
0
  }
31840
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31841
0
31842
0
  return true;
31843
0
}
31844
31845
static const JSJitInfo gridRow_getterinfo = {
31846
  { (JSJitGetterOp)get_gridRow },
31847
  { prototypes::id::CSS2Properties },
31848
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31849
  JSJitInfo::Getter,
31850
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31851
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31852
  false,  /* isInfallible. False in setters. */
31853
  false,  /* isMovable.  Not relevant for setters. */
31854
  false, /* isEliminatable.  Not relevant for setters. */
31855
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31856
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31857
  false,  /* isTypedMethod.  Only relevant for methods. */
31858
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31859
};
31860
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31861
static_assert(0 < 1, "There is no slot for us");
31862
static const JSJitInfo gridRow_setterinfo = {
31863
  { (JSJitGetterOp)set_gridRow },
31864
  { prototypes::id::CSS2Properties },
31865
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31866
  JSJitInfo::Setter,
31867
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31868
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31869
  false,  /* isInfallible. False in setters. */
31870
  false,  /* isMovable.  Not relevant for setters. */
31871
  false, /* isEliminatable.  Not relevant for setters. */
31872
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31873
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31874
  false,  /* isTypedMethod.  Only relevant for methods. */
31875
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31876
};
31877
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31878
static_assert(0 < 1, "There is no slot for us");
31879
31880
MOZ_CAN_RUN_SCRIPT static bool
31881
get_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31882
0
{
31883
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridColumn", DOM, cx);
31884
0
31885
0
  FastErrorResult rv;
31886
0
  DOMString result;
31887
0
  self->GetGridColumn(result, rv);
31888
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31889
0
    return false;
31890
0
  }
31891
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31892
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31893
0
    return false;
31894
0
  }
31895
0
  return true;
31896
0
}
31897
31898
MOZ_CAN_RUN_SCRIPT static bool
31899
set_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31900
0
{
31901
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridColumn", DOM, cx);
31902
0
31903
0
  binding_detail::FakeString arg0;
31904
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31905
0
    return false;
31906
0
  }
31907
0
  Maybe<AutoCEReaction> ceReaction;
31908
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
31909
0
    DocGroup* docGroup = self->GetDocGroup();
31910
0
    if (docGroup) {
31911
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
31912
0
    }
31913
0
  }
31914
0
  FastErrorResult rv;
31915
0
  nsIPrincipal* subjectPrincipal;
31916
0
  {
31917
0
    JS::Realm* realm = js::GetContextRealm(cx);
31918
0
    MOZ_ASSERT(realm);
31919
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
31920
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
31921
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
31922
0
      principal = nullptr;
31923
0
    }
31924
0
31925
0
    subjectPrincipal = principal;
31926
0
  }
31927
0
  self->SetGridColumn(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
31928
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31929
0
    return false;
31930
0
  }
31931
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31932
0
31933
0
  return true;
31934
0
}
31935
31936
static const JSJitInfo gridColumn_getterinfo = {
31937
  { (JSJitGetterOp)get_gridColumn },
31938
  { prototypes::id::CSS2Properties },
31939
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31940
  JSJitInfo::Getter,
31941
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31942
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
31943
  false,  /* isInfallible. False in setters. */
31944
  false,  /* isMovable.  Not relevant for setters. */
31945
  false, /* isEliminatable.  Not relevant for setters. */
31946
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31947
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31948
  false,  /* isTypedMethod.  Only relevant for methods. */
31949
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31950
};
31951
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31952
static_assert(0 < 1, "There is no slot for us");
31953
static const JSJitInfo gridColumn_setterinfo = {
31954
  { (JSJitGetterOp)set_gridColumn },
31955
  { prototypes::id::CSS2Properties },
31956
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
31957
  JSJitInfo::Setter,
31958
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
31959
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
31960
  false,  /* isInfallible. False in setters. */
31961
  false,  /* isMovable.  Not relevant for setters. */
31962
  false, /* isEliminatable.  Not relevant for setters. */
31963
  false, /* isAlwaysInSlot.  Only relevant for getters. */
31964
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
31965
  false,  /* isTypedMethod.  Only relevant for methods. */
31966
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
31967
};
31968
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
31969
static_assert(0 < 1, "There is no slot for us");
31970
31971
MOZ_CAN_RUN_SCRIPT static bool
31972
get_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
31973
0
{
31974
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridArea", DOM, cx);
31975
0
31976
0
  FastErrorResult rv;
31977
0
  DOMString result;
31978
0
  self->GetGridArea(result, rv);
31979
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
31980
0
    return false;
31981
0
  }
31982
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
31983
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
31984
0
    return false;
31985
0
  }
31986
0
  return true;
31987
0
}
31988
31989
MOZ_CAN_RUN_SCRIPT static bool
31990
set_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
31991
0
{
31992
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridArea", DOM, cx);
31993
0
31994
0
  binding_detail::FakeString arg0;
31995
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
31996
0
    return false;
31997
0
  }
31998
0
  Maybe<AutoCEReaction> ceReaction;
31999
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32000
0
    DocGroup* docGroup = self->GetDocGroup();
32001
0
    if (docGroup) {
32002
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32003
0
    }
32004
0
  }
32005
0
  FastErrorResult rv;
32006
0
  nsIPrincipal* subjectPrincipal;
32007
0
  {
32008
0
    JS::Realm* realm = js::GetContextRealm(cx);
32009
0
    MOZ_ASSERT(realm);
32010
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32011
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32012
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32013
0
      principal = nullptr;
32014
0
    }
32015
0
32016
0
    subjectPrincipal = principal;
32017
0
  }
32018
0
  self->SetGridArea(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32019
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32020
0
    return false;
32021
0
  }
32022
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32023
0
32024
0
  return true;
32025
0
}
32026
32027
static const JSJitInfo gridArea_getterinfo = {
32028
  { (JSJitGetterOp)get_gridArea },
32029
  { prototypes::id::CSS2Properties },
32030
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32031
  JSJitInfo::Getter,
32032
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32033
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32034
  false,  /* isInfallible. False in setters. */
32035
  false,  /* isMovable.  Not relevant for setters. */
32036
  false, /* isEliminatable.  Not relevant for setters. */
32037
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32038
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32039
  false,  /* isTypedMethod.  Only relevant for methods. */
32040
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32041
};
32042
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32043
static_assert(0 < 1, "There is no slot for us");
32044
static const JSJitInfo gridArea_setterinfo = {
32045
  { (JSJitGetterOp)set_gridArea },
32046
  { prototypes::id::CSS2Properties },
32047
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32048
  JSJitInfo::Setter,
32049
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32050
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32051
  false,  /* isInfallible. False in setters. */
32052
  false,  /* isMovable.  Not relevant for setters. */
32053
  false, /* isEliminatable.  Not relevant for setters. */
32054
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32055
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32056
  false,  /* isTypedMethod.  Only relevant for methods. */
32057
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32058
};
32059
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32060
static_assert(0 < 1, "There is no slot for us");
32061
32062
MOZ_CAN_RUN_SCRIPT static bool
32063
get_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32064
0
{
32065
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridTemplate", DOM, cx);
32066
0
32067
0
  FastErrorResult rv;
32068
0
  DOMString result;
32069
0
  self->GetGridTemplate(result, rv);
32070
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32071
0
    return false;
32072
0
  }
32073
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32074
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32075
0
    return false;
32076
0
  }
32077
0
  return true;
32078
0
}
32079
32080
MOZ_CAN_RUN_SCRIPT static bool
32081
set_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32082
0
{
32083
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridTemplate", DOM, cx);
32084
0
32085
0
  binding_detail::FakeString arg0;
32086
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32087
0
    return false;
32088
0
  }
32089
0
  Maybe<AutoCEReaction> ceReaction;
32090
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32091
0
    DocGroup* docGroup = self->GetDocGroup();
32092
0
    if (docGroup) {
32093
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32094
0
    }
32095
0
  }
32096
0
  FastErrorResult rv;
32097
0
  nsIPrincipal* subjectPrincipal;
32098
0
  {
32099
0
    JS::Realm* realm = js::GetContextRealm(cx);
32100
0
    MOZ_ASSERT(realm);
32101
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32102
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32103
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32104
0
      principal = nullptr;
32105
0
    }
32106
0
32107
0
    subjectPrincipal = principal;
32108
0
  }
32109
0
  self->SetGridTemplate(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32110
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32111
0
    return false;
32112
0
  }
32113
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32114
0
32115
0
  return true;
32116
0
}
32117
32118
static const JSJitInfo gridTemplate_getterinfo = {
32119
  { (JSJitGetterOp)get_gridTemplate },
32120
  { prototypes::id::CSS2Properties },
32121
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32122
  JSJitInfo::Getter,
32123
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32124
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32125
  false,  /* isInfallible. False in setters. */
32126
  false,  /* isMovable.  Not relevant for setters. */
32127
  false, /* isEliminatable.  Not relevant for setters. */
32128
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32129
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32130
  false,  /* isTypedMethod.  Only relevant for methods. */
32131
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32132
};
32133
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32134
static_assert(0 < 1, "There is no slot for us");
32135
static const JSJitInfo gridTemplate_setterinfo = {
32136
  { (JSJitGetterOp)set_gridTemplate },
32137
  { prototypes::id::CSS2Properties },
32138
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32139
  JSJitInfo::Setter,
32140
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32141
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32142
  false,  /* isInfallible. False in setters. */
32143
  false,  /* isMovable.  Not relevant for setters. */
32144
  false, /* isEliminatable.  Not relevant for setters. */
32145
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32146
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32147
  false,  /* isTypedMethod.  Only relevant for methods. */
32148
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32149
};
32150
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32151
static_assert(0 < 1, "There is no slot for us");
32152
32153
MOZ_CAN_RUN_SCRIPT static bool
32154
get_grid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32155
0
{
32156
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.grid", DOM, cx);
32157
0
32158
0
  FastErrorResult rv;
32159
0
  DOMString result;
32160
0
  self->GetGrid(result, rv);
32161
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32162
0
    return false;
32163
0
  }
32164
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32165
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32166
0
    return false;
32167
0
  }
32168
0
  return true;
32169
0
}
32170
32171
MOZ_CAN_RUN_SCRIPT static bool
32172
set_grid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32173
0
{
32174
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.grid", DOM, cx);
32175
0
32176
0
  binding_detail::FakeString arg0;
32177
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32178
0
    return false;
32179
0
  }
32180
0
  Maybe<AutoCEReaction> ceReaction;
32181
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32182
0
    DocGroup* docGroup = self->GetDocGroup();
32183
0
    if (docGroup) {
32184
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32185
0
    }
32186
0
  }
32187
0
  FastErrorResult rv;
32188
0
  nsIPrincipal* subjectPrincipal;
32189
0
  {
32190
0
    JS::Realm* realm = js::GetContextRealm(cx);
32191
0
    MOZ_ASSERT(realm);
32192
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32193
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32194
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32195
0
      principal = nullptr;
32196
0
    }
32197
0
32198
0
    subjectPrincipal = principal;
32199
0
  }
32200
0
  self->SetGrid(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32201
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32202
0
    return false;
32203
0
  }
32204
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32205
0
32206
0
  return true;
32207
0
}
32208
32209
static const JSJitInfo grid_getterinfo = {
32210
  { (JSJitGetterOp)get_grid },
32211
  { prototypes::id::CSS2Properties },
32212
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32213
  JSJitInfo::Getter,
32214
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32215
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32216
  false,  /* isInfallible. False in setters. */
32217
  false,  /* isMovable.  Not relevant for setters. */
32218
  false, /* isEliminatable.  Not relevant for setters. */
32219
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32220
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32221
  false,  /* isTypedMethod.  Only relevant for methods. */
32222
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32223
};
32224
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32225
static_assert(0 < 1, "There is no slot for us");
32226
static const JSJitInfo grid_setterinfo = {
32227
  { (JSJitGetterOp)set_grid },
32228
  { prototypes::id::CSS2Properties },
32229
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32230
  JSJitInfo::Setter,
32231
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32232
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32233
  false,  /* isInfallible. False in setters. */
32234
  false,  /* isMovable.  Not relevant for setters. */
32235
  false, /* isEliminatable.  Not relevant for setters. */
32236
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32237
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32238
  false,  /* isTypedMethod.  Only relevant for methods. */
32239
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32240
};
32241
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32242
static_assert(0 < 1, "There is no slot for us");
32243
32244
MOZ_CAN_RUN_SCRIPT static bool
32245
get_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32246
0
{
32247
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.placeContent", DOM, cx);
32248
0
32249
0
  FastErrorResult rv;
32250
0
  DOMString result;
32251
0
  self->GetPlaceContent(result, rv);
32252
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32253
0
    return false;
32254
0
  }
32255
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32256
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32257
0
    return false;
32258
0
  }
32259
0
  return true;
32260
0
}
32261
32262
MOZ_CAN_RUN_SCRIPT static bool
32263
set_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32264
0
{
32265
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.placeContent", DOM, cx);
32266
0
32267
0
  binding_detail::FakeString arg0;
32268
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32269
0
    return false;
32270
0
  }
32271
0
  Maybe<AutoCEReaction> ceReaction;
32272
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32273
0
    DocGroup* docGroup = self->GetDocGroup();
32274
0
    if (docGroup) {
32275
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32276
0
    }
32277
0
  }
32278
0
  FastErrorResult rv;
32279
0
  nsIPrincipal* subjectPrincipal;
32280
0
  {
32281
0
    JS::Realm* realm = js::GetContextRealm(cx);
32282
0
    MOZ_ASSERT(realm);
32283
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32284
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32285
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32286
0
      principal = nullptr;
32287
0
    }
32288
0
32289
0
    subjectPrincipal = principal;
32290
0
  }
32291
0
  self->SetPlaceContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32292
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32293
0
    return false;
32294
0
  }
32295
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32296
0
32297
0
  return true;
32298
0
}
32299
32300
static const JSJitInfo placeContent_getterinfo = {
32301
  { (JSJitGetterOp)get_placeContent },
32302
  { prototypes::id::CSS2Properties },
32303
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32304
  JSJitInfo::Getter,
32305
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32306
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32307
  false,  /* isInfallible. False in setters. */
32308
  false,  /* isMovable.  Not relevant for setters. */
32309
  false, /* isEliminatable.  Not relevant for setters. */
32310
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32311
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32312
  false,  /* isTypedMethod.  Only relevant for methods. */
32313
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32314
};
32315
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32316
static_assert(0 < 1, "There is no slot for us");
32317
static const JSJitInfo placeContent_setterinfo = {
32318
  { (JSJitGetterOp)set_placeContent },
32319
  { prototypes::id::CSS2Properties },
32320
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32321
  JSJitInfo::Setter,
32322
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32323
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32324
  false,  /* isInfallible. False in setters. */
32325
  false,  /* isMovable.  Not relevant for setters. */
32326
  false, /* isEliminatable.  Not relevant for setters. */
32327
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32328
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32329
  false,  /* isTypedMethod.  Only relevant for methods. */
32330
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32331
};
32332
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32333
static_assert(0 < 1, "There is no slot for us");
32334
32335
MOZ_CAN_RUN_SCRIPT static bool
32336
get_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32337
0
{
32338
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.placeSelf", DOM, cx);
32339
0
32340
0
  FastErrorResult rv;
32341
0
  DOMString result;
32342
0
  self->GetPlaceSelf(result, rv);
32343
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32344
0
    return false;
32345
0
  }
32346
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32347
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32348
0
    return false;
32349
0
  }
32350
0
  return true;
32351
0
}
32352
32353
MOZ_CAN_RUN_SCRIPT static bool
32354
set_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32355
0
{
32356
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.placeSelf", DOM, cx);
32357
0
32358
0
  binding_detail::FakeString arg0;
32359
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32360
0
    return false;
32361
0
  }
32362
0
  Maybe<AutoCEReaction> ceReaction;
32363
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32364
0
    DocGroup* docGroup = self->GetDocGroup();
32365
0
    if (docGroup) {
32366
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32367
0
    }
32368
0
  }
32369
0
  FastErrorResult rv;
32370
0
  nsIPrincipal* subjectPrincipal;
32371
0
  {
32372
0
    JS::Realm* realm = js::GetContextRealm(cx);
32373
0
    MOZ_ASSERT(realm);
32374
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32375
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32376
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32377
0
      principal = nullptr;
32378
0
    }
32379
0
32380
0
    subjectPrincipal = principal;
32381
0
  }
32382
0
  self->SetPlaceSelf(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32383
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32384
0
    return false;
32385
0
  }
32386
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32387
0
32388
0
  return true;
32389
0
}
32390
32391
static const JSJitInfo placeSelf_getterinfo = {
32392
  { (JSJitGetterOp)get_placeSelf },
32393
  { prototypes::id::CSS2Properties },
32394
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32395
  JSJitInfo::Getter,
32396
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32397
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32398
  false,  /* isInfallible. False in setters. */
32399
  false,  /* isMovable.  Not relevant for setters. */
32400
  false, /* isEliminatable.  Not relevant for setters. */
32401
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32402
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32403
  false,  /* isTypedMethod.  Only relevant for methods. */
32404
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32405
};
32406
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32407
static_assert(0 < 1, "There is no slot for us");
32408
static const JSJitInfo placeSelf_setterinfo = {
32409
  { (JSJitGetterOp)set_placeSelf },
32410
  { prototypes::id::CSS2Properties },
32411
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32412
  JSJitInfo::Setter,
32413
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32414
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32415
  false,  /* isInfallible. False in setters. */
32416
  false,  /* isMovable.  Not relevant for setters. */
32417
  false, /* isEliminatable.  Not relevant for setters. */
32418
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32419
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32420
  false,  /* isTypedMethod.  Only relevant for methods. */
32421
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32422
};
32423
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32424
static_assert(0 < 1, "There is no slot for us");
32425
32426
MOZ_CAN_RUN_SCRIPT static bool
32427
get_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32428
0
{
32429
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.placeItems", DOM, cx);
32430
0
32431
0
  FastErrorResult rv;
32432
0
  DOMString result;
32433
0
  self->GetPlaceItems(result, rv);
32434
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32435
0
    return false;
32436
0
  }
32437
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32438
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32439
0
    return false;
32440
0
  }
32441
0
  return true;
32442
0
}
32443
32444
MOZ_CAN_RUN_SCRIPT static bool
32445
set_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32446
0
{
32447
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.placeItems", DOM, cx);
32448
0
32449
0
  binding_detail::FakeString arg0;
32450
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32451
0
    return false;
32452
0
  }
32453
0
  Maybe<AutoCEReaction> ceReaction;
32454
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32455
0
    DocGroup* docGroup = self->GetDocGroup();
32456
0
    if (docGroup) {
32457
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32458
0
    }
32459
0
  }
32460
0
  FastErrorResult rv;
32461
0
  nsIPrincipal* subjectPrincipal;
32462
0
  {
32463
0
    JS::Realm* realm = js::GetContextRealm(cx);
32464
0
    MOZ_ASSERT(realm);
32465
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32466
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32467
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32468
0
      principal = nullptr;
32469
0
    }
32470
0
32471
0
    subjectPrincipal = principal;
32472
0
  }
32473
0
  self->SetPlaceItems(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32474
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32475
0
    return false;
32476
0
  }
32477
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32478
0
32479
0
  return true;
32480
0
}
32481
32482
static const JSJitInfo placeItems_getterinfo = {
32483
  { (JSJitGetterOp)get_placeItems },
32484
  { prototypes::id::CSS2Properties },
32485
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32486
  JSJitInfo::Getter,
32487
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32488
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32489
  false,  /* isInfallible. False in setters. */
32490
  false,  /* isMovable.  Not relevant for setters. */
32491
  false, /* isEliminatable.  Not relevant for setters. */
32492
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32493
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32494
  false,  /* isTypedMethod.  Only relevant for methods. */
32495
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32496
};
32497
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32498
static_assert(0 < 1, "There is no slot for us");
32499
static const JSJitInfo placeItems_setterinfo = {
32500
  { (JSJitGetterOp)set_placeItems },
32501
  { prototypes::id::CSS2Properties },
32502
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32503
  JSJitInfo::Setter,
32504
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32505
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32506
  false,  /* isInfallible. False in setters. */
32507
  false,  /* isMovable.  Not relevant for setters. */
32508
  false, /* isEliminatable.  Not relevant for setters. */
32509
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32510
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32511
  false,  /* isTypedMethod.  Only relevant for methods. */
32512
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32513
};
32514
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32515
static_assert(0 < 1, "There is no slot for us");
32516
32517
MOZ_CAN_RUN_SCRIPT static bool
32518
get_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32519
0
{
32520
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.textDecoration", DOM, cx);
32521
0
32522
0
  FastErrorResult rv;
32523
0
  DOMString result;
32524
0
  self->GetTextDecoration(result, rv);
32525
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32526
0
    return false;
32527
0
  }
32528
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32529
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32530
0
    return false;
32531
0
  }
32532
0
  return true;
32533
0
}
32534
32535
MOZ_CAN_RUN_SCRIPT static bool
32536
set_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32537
0
{
32538
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.textDecoration", DOM, cx);
32539
0
32540
0
  binding_detail::FakeString arg0;
32541
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32542
0
    return false;
32543
0
  }
32544
0
  Maybe<AutoCEReaction> ceReaction;
32545
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32546
0
    DocGroup* docGroup = self->GetDocGroup();
32547
0
    if (docGroup) {
32548
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32549
0
    }
32550
0
  }
32551
0
  FastErrorResult rv;
32552
0
  nsIPrincipal* subjectPrincipal;
32553
0
  {
32554
0
    JS::Realm* realm = js::GetContextRealm(cx);
32555
0
    MOZ_ASSERT(realm);
32556
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32557
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32558
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32559
0
      principal = nullptr;
32560
0
    }
32561
0
32562
0
    subjectPrincipal = principal;
32563
0
  }
32564
0
  self->SetTextDecoration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32565
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32566
0
    return false;
32567
0
  }
32568
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32569
0
32570
0
  return true;
32571
0
}
32572
32573
static const JSJitInfo textDecoration_getterinfo = {
32574
  { (JSJitGetterOp)get_textDecoration },
32575
  { prototypes::id::CSS2Properties },
32576
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32577
  JSJitInfo::Getter,
32578
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32579
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32580
  false,  /* isInfallible. False in setters. */
32581
  false,  /* isMovable.  Not relevant for setters. */
32582
  false, /* isEliminatable.  Not relevant for setters. */
32583
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32584
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32585
  false,  /* isTypedMethod.  Only relevant for methods. */
32586
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32587
};
32588
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32589
static_assert(0 < 1, "There is no slot for us");
32590
static const JSJitInfo textDecoration_setterinfo = {
32591
  { (JSJitGetterOp)set_textDecoration },
32592
  { prototypes::id::CSS2Properties },
32593
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32594
  JSJitInfo::Setter,
32595
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32596
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32597
  false,  /* isInfallible. False in setters. */
32598
  false,  /* isMovable.  Not relevant for setters. */
32599
  false, /* isEliminatable.  Not relevant for setters. */
32600
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32601
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32602
  false,  /* isTypedMethod.  Only relevant for methods. */
32603
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32604
};
32605
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32606
static_assert(0 < 1, "There is no slot for us");
32607
32608
MOZ_CAN_RUN_SCRIPT static bool
32609
get_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32610
0
{
32611
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.mask", DOM, cx);
32612
0
32613
0
  FastErrorResult rv;
32614
0
  DOMString result;
32615
0
  self->GetMask(result, rv);
32616
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32617
0
    return false;
32618
0
  }
32619
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32620
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32621
0
    return false;
32622
0
  }
32623
0
  return true;
32624
0
}
32625
32626
MOZ_CAN_RUN_SCRIPT static bool
32627
set_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32628
0
{
32629
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.mask", DOM, cx);
32630
0
32631
0
  binding_detail::FakeString arg0;
32632
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32633
0
    return false;
32634
0
  }
32635
0
  Maybe<AutoCEReaction> ceReaction;
32636
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32637
0
    DocGroup* docGroup = self->GetDocGroup();
32638
0
    if (docGroup) {
32639
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32640
0
    }
32641
0
  }
32642
0
  FastErrorResult rv;
32643
0
  nsIPrincipal* subjectPrincipal;
32644
0
  {
32645
0
    JS::Realm* realm = js::GetContextRealm(cx);
32646
0
    MOZ_ASSERT(realm);
32647
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32648
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32649
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32650
0
      principal = nullptr;
32651
0
    }
32652
0
32653
0
    subjectPrincipal = principal;
32654
0
  }
32655
0
  self->SetMask(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32656
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32657
0
    return false;
32658
0
  }
32659
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32660
0
32661
0
  return true;
32662
0
}
32663
32664
static const JSJitInfo mask_getterinfo = {
32665
  { (JSJitGetterOp)get_mask },
32666
  { prototypes::id::CSS2Properties },
32667
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32668
  JSJitInfo::Getter,
32669
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32670
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32671
  false,  /* isInfallible. False in setters. */
32672
  false,  /* isMovable.  Not relevant for setters. */
32673
  false, /* isEliminatable.  Not relevant for setters. */
32674
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32675
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32676
  false,  /* isTypedMethod.  Only relevant for methods. */
32677
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32678
};
32679
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32680
static_assert(0 < 1, "There is no slot for us");
32681
static const JSJitInfo mask_setterinfo = {
32682
  { (JSJitGetterOp)set_mask },
32683
  { prototypes::id::CSS2Properties },
32684
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32685
  JSJitInfo::Setter,
32686
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32687
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32688
  false,  /* isInfallible. False in setters. */
32689
  false,  /* isMovable.  Not relevant for setters. */
32690
  false, /* isEliminatable.  Not relevant for setters. */
32691
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32692
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32693
  false,  /* isTypedMethod.  Only relevant for methods. */
32694
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32695
};
32696
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32697
static_assert(0 < 1, "There is no slot for us");
32698
32699
MOZ_CAN_RUN_SCRIPT static bool
32700
get_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32701
0
{
32702
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.maskPosition", DOM, cx);
32703
0
32704
0
  FastErrorResult rv;
32705
0
  DOMString result;
32706
0
  self->GetMaskPosition(result, rv);
32707
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32708
0
    return false;
32709
0
  }
32710
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32711
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32712
0
    return false;
32713
0
  }
32714
0
  return true;
32715
0
}
32716
32717
MOZ_CAN_RUN_SCRIPT static bool
32718
set_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32719
0
{
32720
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.maskPosition", DOM, cx);
32721
0
32722
0
  binding_detail::FakeString arg0;
32723
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32724
0
    return false;
32725
0
  }
32726
0
  Maybe<AutoCEReaction> ceReaction;
32727
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32728
0
    DocGroup* docGroup = self->GetDocGroup();
32729
0
    if (docGroup) {
32730
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32731
0
    }
32732
0
  }
32733
0
  FastErrorResult rv;
32734
0
  nsIPrincipal* subjectPrincipal;
32735
0
  {
32736
0
    JS::Realm* realm = js::GetContextRealm(cx);
32737
0
    MOZ_ASSERT(realm);
32738
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32739
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32740
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32741
0
      principal = nullptr;
32742
0
    }
32743
0
32744
0
    subjectPrincipal = principal;
32745
0
  }
32746
0
  self->SetMaskPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32747
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32748
0
    return false;
32749
0
  }
32750
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32751
0
32752
0
  return true;
32753
0
}
32754
32755
static const JSJitInfo maskPosition_getterinfo = {
32756
  { (JSJitGetterOp)get_maskPosition },
32757
  { prototypes::id::CSS2Properties },
32758
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32759
  JSJitInfo::Getter,
32760
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32761
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32762
  false,  /* isInfallible. False in setters. */
32763
  false,  /* isMovable.  Not relevant for setters. */
32764
  false, /* isEliminatable.  Not relevant for setters. */
32765
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32766
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32767
  false,  /* isTypedMethod.  Only relevant for methods. */
32768
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32769
};
32770
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32771
static_assert(0 < 1, "There is no slot for us");
32772
static const JSJitInfo maskPosition_setterinfo = {
32773
  { (JSJitGetterOp)set_maskPosition },
32774
  { prototypes::id::CSS2Properties },
32775
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32776
  JSJitInfo::Setter,
32777
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32778
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32779
  false,  /* isInfallible. False in setters. */
32780
  false,  /* isMovable.  Not relevant for setters. */
32781
  false, /* isEliminatable.  Not relevant for setters. */
32782
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32783
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32784
  false,  /* isTypedMethod.  Only relevant for methods. */
32785
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32786
};
32787
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32788
static_assert(0 < 1, "There is no slot for us");
32789
32790
MOZ_CAN_RUN_SCRIPT static bool
32791
get_all(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32792
0
{
32793
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.all", DOM, cx);
32794
0
32795
0
  FastErrorResult rv;
32796
0
  DOMString result;
32797
0
  self->GetAll(result, rv);
32798
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32799
0
    return false;
32800
0
  }
32801
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32802
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32803
0
    return false;
32804
0
  }
32805
0
  return true;
32806
0
}
32807
32808
MOZ_CAN_RUN_SCRIPT static bool
32809
set_all(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32810
0
{
32811
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.all", DOM, cx);
32812
0
32813
0
  binding_detail::FakeString arg0;
32814
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32815
0
    return false;
32816
0
  }
32817
0
  Maybe<AutoCEReaction> ceReaction;
32818
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32819
0
    DocGroup* docGroup = self->GetDocGroup();
32820
0
    if (docGroup) {
32821
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32822
0
    }
32823
0
  }
32824
0
  FastErrorResult rv;
32825
0
  nsIPrincipal* subjectPrincipal;
32826
0
  {
32827
0
    JS::Realm* realm = js::GetContextRealm(cx);
32828
0
    MOZ_ASSERT(realm);
32829
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32830
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32831
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32832
0
      principal = nullptr;
32833
0
    }
32834
0
32835
0
    subjectPrincipal = principal;
32836
0
  }
32837
0
  self->SetAll(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32838
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32839
0
    return false;
32840
0
  }
32841
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32842
0
32843
0
  return true;
32844
0
}
32845
32846
static const JSJitInfo all_getterinfo = {
32847
  { (JSJitGetterOp)get_all },
32848
  { prototypes::id::CSS2Properties },
32849
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32850
  JSJitInfo::Getter,
32851
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32852
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32853
  false,  /* isInfallible. False in setters. */
32854
  false,  /* isMovable.  Not relevant for setters. */
32855
  false, /* isEliminatable.  Not relevant for setters. */
32856
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32857
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32858
  false,  /* isTypedMethod.  Only relevant for methods. */
32859
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32860
};
32861
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32862
static_assert(0 < 1, "There is no slot for us");
32863
static const JSJitInfo all_setterinfo = {
32864
  { (JSJitGetterOp)set_all },
32865
  { prototypes::id::CSS2Properties },
32866
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32867
  JSJitInfo::Setter,
32868
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32869
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32870
  false,  /* isInfallible. False in setters. */
32871
  false,  /* isMovable.  Not relevant for setters. */
32872
  false, /* isEliminatable.  Not relevant for setters. */
32873
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32874
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32875
  false,  /* isTypedMethod.  Only relevant for methods. */
32876
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32877
};
32878
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32879
static_assert(0 < 1, "There is no slot for us");
32880
32881
MOZ_CAN_RUN_SCRIPT static bool
32882
get_webkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32883
0
{
32884
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBackgroundClip", DOM, cx);
32885
0
32886
0
  FastErrorResult rv;
32887
0
  DOMString result;
32888
0
  self->GetWebkitBackgroundClip(result, rv);
32889
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32890
0
    return false;
32891
0
  }
32892
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32893
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32894
0
    return false;
32895
0
  }
32896
0
  return true;
32897
0
}
32898
32899
MOZ_CAN_RUN_SCRIPT static bool
32900
set_webkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32901
0
{
32902
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBackgroundClip", DOM, cx);
32903
0
32904
0
  binding_detail::FakeString arg0;
32905
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32906
0
    return false;
32907
0
  }
32908
0
  Maybe<AutoCEReaction> ceReaction;
32909
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
32910
0
    DocGroup* docGroup = self->GetDocGroup();
32911
0
    if (docGroup) {
32912
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
32913
0
    }
32914
0
  }
32915
0
  FastErrorResult rv;
32916
0
  nsIPrincipal* subjectPrincipal;
32917
0
  {
32918
0
    JS::Realm* realm = js::GetContextRealm(cx);
32919
0
    MOZ_ASSERT(realm);
32920
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
32921
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
32922
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
32923
0
      principal = nullptr;
32924
0
    }
32925
0
32926
0
    subjectPrincipal = principal;
32927
0
  }
32928
0
  self->SetWebkitBackgroundClip(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
32929
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32930
0
    return false;
32931
0
  }
32932
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32933
0
32934
0
  return true;
32935
0
}
32936
32937
static const JSJitInfo webkitBackgroundClip_getterinfo = {
32938
  { (JSJitGetterOp)get_webkitBackgroundClip },
32939
  { prototypes::id::CSS2Properties },
32940
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32941
  JSJitInfo::Getter,
32942
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32943
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
32944
  false,  /* isInfallible. False in setters. */
32945
  false,  /* isMovable.  Not relevant for setters. */
32946
  false, /* isEliminatable.  Not relevant for setters. */
32947
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32948
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32949
  false,  /* isTypedMethod.  Only relevant for methods. */
32950
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32951
};
32952
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32953
static_assert(0 < 1, "There is no slot for us");
32954
static const JSJitInfo webkitBackgroundClip_setterinfo = {
32955
  { (JSJitGetterOp)set_webkitBackgroundClip },
32956
  { prototypes::id::CSS2Properties },
32957
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
32958
  JSJitInfo::Setter,
32959
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
32960
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
32961
  false,  /* isInfallible. False in setters. */
32962
  false,  /* isMovable.  Not relevant for setters. */
32963
  false, /* isEliminatable.  Not relevant for setters. */
32964
  false, /* isAlwaysInSlot.  Only relevant for getters. */
32965
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
32966
  false,  /* isTypedMethod.  Only relevant for methods. */
32967
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
32968
};
32969
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
32970
static_assert(0 < 1, "There is no slot for us");
32971
32972
MOZ_CAN_RUN_SCRIPT static bool
32973
get_webkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
32974
0
{
32975
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBackgroundOrigin", DOM, cx);
32976
0
32977
0
  FastErrorResult rv;
32978
0
  DOMString result;
32979
0
  self->GetWebkitBackgroundOrigin(result, rv);
32980
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
32981
0
    return false;
32982
0
  }
32983
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
32984
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
32985
0
    return false;
32986
0
  }
32987
0
  return true;
32988
0
}
32989
32990
MOZ_CAN_RUN_SCRIPT static bool
32991
set_webkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
32992
0
{
32993
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBackgroundOrigin", DOM, cx);
32994
0
32995
0
  binding_detail::FakeString arg0;
32996
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
32997
0
    return false;
32998
0
  }
32999
0
  Maybe<AutoCEReaction> ceReaction;
33000
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33001
0
    DocGroup* docGroup = self->GetDocGroup();
33002
0
    if (docGroup) {
33003
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33004
0
    }
33005
0
  }
33006
0
  FastErrorResult rv;
33007
0
  nsIPrincipal* subjectPrincipal;
33008
0
  {
33009
0
    JS::Realm* realm = js::GetContextRealm(cx);
33010
0
    MOZ_ASSERT(realm);
33011
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33012
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33013
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33014
0
      principal = nullptr;
33015
0
    }
33016
0
33017
0
    subjectPrincipal = principal;
33018
0
  }
33019
0
  self->SetWebkitBackgroundOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33020
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33021
0
    return false;
33022
0
  }
33023
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33024
0
33025
0
  return true;
33026
0
}
33027
33028
static const JSJitInfo webkitBackgroundOrigin_getterinfo = {
33029
  { (JSJitGetterOp)get_webkitBackgroundOrigin },
33030
  { prototypes::id::CSS2Properties },
33031
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33032
  JSJitInfo::Getter,
33033
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33034
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33035
  false,  /* isInfallible. False in setters. */
33036
  false,  /* isMovable.  Not relevant for setters. */
33037
  false, /* isEliminatable.  Not relevant for setters. */
33038
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33039
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33040
  false,  /* isTypedMethod.  Only relevant for methods. */
33041
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33042
};
33043
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33044
static_assert(0 < 1, "There is no slot for us");
33045
static const JSJitInfo webkitBackgroundOrigin_setterinfo = {
33046
  { (JSJitGetterOp)set_webkitBackgroundOrigin },
33047
  { prototypes::id::CSS2Properties },
33048
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33049
  JSJitInfo::Setter,
33050
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33051
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33052
  false,  /* isInfallible. False in setters. */
33053
  false,  /* isMovable.  Not relevant for setters. */
33054
  false, /* isEliminatable.  Not relevant for setters. */
33055
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33056
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33057
  false,  /* isTypedMethod.  Only relevant for methods. */
33058
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33059
};
33060
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33061
static_assert(0 < 1, "There is no slot for us");
33062
33063
MOZ_CAN_RUN_SCRIPT static bool
33064
get_webkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33065
0
{
33066
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBackgroundSize", DOM, cx);
33067
0
33068
0
  FastErrorResult rv;
33069
0
  DOMString result;
33070
0
  self->GetWebkitBackgroundSize(result, rv);
33071
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33072
0
    return false;
33073
0
  }
33074
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33075
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33076
0
    return false;
33077
0
  }
33078
0
  return true;
33079
0
}
33080
33081
MOZ_CAN_RUN_SCRIPT static bool
33082
set_webkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33083
0
{
33084
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBackgroundSize", DOM, cx);
33085
0
33086
0
  binding_detail::FakeString arg0;
33087
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33088
0
    return false;
33089
0
  }
33090
0
  Maybe<AutoCEReaction> ceReaction;
33091
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33092
0
    DocGroup* docGroup = self->GetDocGroup();
33093
0
    if (docGroup) {
33094
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33095
0
    }
33096
0
  }
33097
0
  FastErrorResult rv;
33098
0
  nsIPrincipal* subjectPrincipal;
33099
0
  {
33100
0
    JS::Realm* realm = js::GetContextRealm(cx);
33101
0
    MOZ_ASSERT(realm);
33102
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33103
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33104
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33105
0
      principal = nullptr;
33106
0
    }
33107
0
33108
0
    subjectPrincipal = principal;
33109
0
  }
33110
0
  self->SetWebkitBackgroundSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33111
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33112
0
    return false;
33113
0
  }
33114
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33115
0
33116
0
  return true;
33117
0
}
33118
33119
static const JSJitInfo webkitBackgroundSize_getterinfo = {
33120
  { (JSJitGetterOp)get_webkitBackgroundSize },
33121
  { prototypes::id::CSS2Properties },
33122
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33123
  JSJitInfo::Getter,
33124
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33125
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33126
  false,  /* isInfallible. False in setters. */
33127
  false,  /* isMovable.  Not relevant for setters. */
33128
  false, /* isEliminatable.  Not relevant for setters. */
33129
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33130
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33131
  false,  /* isTypedMethod.  Only relevant for methods. */
33132
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33133
};
33134
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33135
static_assert(0 < 1, "There is no slot for us");
33136
static const JSJitInfo webkitBackgroundSize_setterinfo = {
33137
  { (JSJitGetterOp)set_webkitBackgroundSize },
33138
  { prototypes::id::CSS2Properties },
33139
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33140
  JSJitInfo::Setter,
33141
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33142
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33143
  false,  /* isInfallible. False in setters. */
33144
  false,  /* isMovable.  Not relevant for setters. */
33145
  false, /* isEliminatable.  Not relevant for setters. */
33146
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33147
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33148
  false,  /* isTypedMethod.  Only relevant for methods. */
33149
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33150
};
33151
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33152
static_assert(0 < 1, "There is no slot for us");
33153
33154
MOZ_CAN_RUN_SCRIPT static bool
33155
get_MozBorderStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33156
0
{
33157
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderStartColor", DOM, cx);
33158
0
33159
0
  FastErrorResult rv;
33160
0
  DOMString result;
33161
0
  self->GetMozBorderStartColor(result, rv);
33162
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33163
0
    return false;
33164
0
  }
33165
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33166
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33167
0
    return false;
33168
0
  }
33169
0
  return true;
33170
0
}
33171
33172
MOZ_CAN_RUN_SCRIPT static bool
33173
set_MozBorderStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33174
0
{
33175
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderStartColor", DOM, cx);
33176
0
33177
0
  binding_detail::FakeString arg0;
33178
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33179
0
    return false;
33180
0
  }
33181
0
  Maybe<AutoCEReaction> ceReaction;
33182
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33183
0
    DocGroup* docGroup = self->GetDocGroup();
33184
0
    if (docGroup) {
33185
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33186
0
    }
33187
0
  }
33188
0
  FastErrorResult rv;
33189
0
  nsIPrincipal* subjectPrincipal;
33190
0
  {
33191
0
    JS::Realm* realm = js::GetContextRealm(cx);
33192
0
    MOZ_ASSERT(realm);
33193
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33194
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33195
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33196
0
      principal = nullptr;
33197
0
    }
33198
0
33199
0
    subjectPrincipal = principal;
33200
0
  }
33201
0
  self->SetMozBorderStartColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33202
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33203
0
    return false;
33204
0
  }
33205
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33206
0
33207
0
  return true;
33208
0
}
33209
33210
static const JSJitInfo MozBorderStartColor_getterinfo = {
33211
  { (JSJitGetterOp)get_MozBorderStartColor },
33212
  { prototypes::id::CSS2Properties },
33213
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33214
  JSJitInfo::Getter,
33215
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33216
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33217
  false,  /* isInfallible. False in setters. */
33218
  false,  /* isMovable.  Not relevant for setters. */
33219
  false, /* isEliminatable.  Not relevant for setters. */
33220
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33221
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33222
  false,  /* isTypedMethod.  Only relevant for methods. */
33223
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33224
};
33225
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33226
static_assert(0 < 1, "There is no slot for us");
33227
static const JSJitInfo MozBorderStartColor_setterinfo = {
33228
  { (JSJitGetterOp)set_MozBorderStartColor },
33229
  { prototypes::id::CSS2Properties },
33230
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33231
  JSJitInfo::Setter,
33232
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33233
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33234
  false,  /* isInfallible. False in setters. */
33235
  false,  /* isMovable.  Not relevant for setters. */
33236
  false, /* isEliminatable.  Not relevant for setters. */
33237
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33238
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33239
  false,  /* isTypedMethod.  Only relevant for methods. */
33240
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33241
};
33242
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33243
static_assert(0 < 1, "There is no slot for us");
33244
33245
MOZ_CAN_RUN_SCRIPT static bool
33246
get_MozBorderStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33247
0
{
33248
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderStartStyle", DOM, cx);
33249
0
33250
0
  FastErrorResult rv;
33251
0
  DOMString result;
33252
0
  self->GetMozBorderStartStyle(result, rv);
33253
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33254
0
    return false;
33255
0
  }
33256
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33257
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33258
0
    return false;
33259
0
  }
33260
0
  return true;
33261
0
}
33262
33263
MOZ_CAN_RUN_SCRIPT static bool
33264
set_MozBorderStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33265
0
{
33266
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderStartStyle", DOM, cx);
33267
0
33268
0
  binding_detail::FakeString arg0;
33269
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33270
0
    return false;
33271
0
  }
33272
0
  Maybe<AutoCEReaction> ceReaction;
33273
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33274
0
    DocGroup* docGroup = self->GetDocGroup();
33275
0
    if (docGroup) {
33276
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33277
0
    }
33278
0
  }
33279
0
  FastErrorResult rv;
33280
0
  nsIPrincipal* subjectPrincipal;
33281
0
  {
33282
0
    JS::Realm* realm = js::GetContextRealm(cx);
33283
0
    MOZ_ASSERT(realm);
33284
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33285
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33286
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33287
0
      principal = nullptr;
33288
0
    }
33289
0
33290
0
    subjectPrincipal = principal;
33291
0
  }
33292
0
  self->SetMozBorderStartStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33293
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33294
0
    return false;
33295
0
  }
33296
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33297
0
33298
0
  return true;
33299
0
}
33300
33301
static const JSJitInfo MozBorderStartStyle_getterinfo = {
33302
  { (JSJitGetterOp)get_MozBorderStartStyle },
33303
  { prototypes::id::CSS2Properties },
33304
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33305
  JSJitInfo::Getter,
33306
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33307
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33308
  false,  /* isInfallible. False in setters. */
33309
  false,  /* isMovable.  Not relevant for setters. */
33310
  false, /* isEliminatable.  Not relevant for setters. */
33311
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33312
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33313
  false,  /* isTypedMethod.  Only relevant for methods. */
33314
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33315
};
33316
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33317
static_assert(0 < 1, "There is no slot for us");
33318
static const JSJitInfo MozBorderStartStyle_setterinfo = {
33319
  { (JSJitGetterOp)set_MozBorderStartStyle },
33320
  { prototypes::id::CSS2Properties },
33321
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33322
  JSJitInfo::Setter,
33323
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33324
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33325
  false,  /* isInfallible. False in setters. */
33326
  false,  /* isMovable.  Not relevant for setters. */
33327
  false, /* isEliminatable.  Not relevant for setters. */
33328
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33329
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33330
  false,  /* isTypedMethod.  Only relevant for methods. */
33331
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33332
};
33333
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33334
static_assert(0 < 1, "There is no slot for us");
33335
33336
MOZ_CAN_RUN_SCRIPT static bool
33337
get_MozBorderStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33338
0
{
33339
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderStartWidth", DOM, cx);
33340
0
33341
0
  FastErrorResult rv;
33342
0
  DOMString result;
33343
0
  self->GetMozBorderStartWidth(result, rv);
33344
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33345
0
    return false;
33346
0
  }
33347
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33348
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33349
0
    return false;
33350
0
  }
33351
0
  return true;
33352
0
}
33353
33354
MOZ_CAN_RUN_SCRIPT static bool
33355
set_MozBorderStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33356
0
{
33357
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderStartWidth", DOM, cx);
33358
0
33359
0
  binding_detail::FakeString arg0;
33360
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33361
0
    return false;
33362
0
  }
33363
0
  Maybe<AutoCEReaction> ceReaction;
33364
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33365
0
    DocGroup* docGroup = self->GetDocGroup();
33366
0
    if (docGroup) {
33367
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33368
0
    }
33369
0
  }
33370
0
  FastErrorResult rv;
33371
0
  nsIPrincipal* subjectPrincipal;
33372
0
  {
33373
0
    JS::Realm* realm = js::GetContextRealm(cx);
33374
0
    MOZ_ASSERT(realm);
33375
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33376
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33377
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33378
0
      principal = nullptr;
33379
0
    }
33380
0
33381
0
    subjectPrincipal = principal;
33382
0
  }
33383
0
  self->SetMozBorderStartWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33384
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33385
0
    return false;
33386
0
  }
33387
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33388
0
33389
0
  return true;
33390
0
}
33391
33392
static const JSJitInfo MozBorderStartWidth_getterinfo = {
33393
  { (JSJitGetterOp)get_MozBorderStartWidth },
33394
  { prototypes::id::CSS2Properties },
33395
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33396
  JSJitInfo::Getter,
33397
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33398
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33399
  false,  /* isInfallible. False in setters. */
33400
  false,  /* isMovable.  Not relevant for setters. */
33401
  false, /* isEliminatable.  Not relevant for setters. */
33402
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33403
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33404
  false,  /* isTypedMethod.  Only relevant for methods. */
33405
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33406
};
33407
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33408
static_assert(0 < 1, "There is no slot for us");
33409
static const JSJitInfo MozBorderStartWidth_setterinfo = {
33410
  { (JSJitGetterOp)set_MozBorderStartWidth },
33411
  { prototypes::id::CSS2Properties },
33412
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33413
  JSJitInfo::Setter,
33414
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33415
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33416
  false,  /* isInfallible. False in setters. */
33417
  false,  /* isMovable.  Not relevant for setters. */
33418
  false, /* isEliminatable.  Not relevant for setters. */
33419
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33420
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33421
  false,  /* isTypedMethod.  Only relevant for methods. */
33422
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33423
};
33424
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33425
static_assert(0 < 1, "There is no slot for us");
33426
33427
MOZ_CAN_RUN_SCRIPT static bool
33428
get_MozBorderEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33429
0
{
33430
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderEndColor", DOM, cx);
33431
0
33432
0
  FastErrorResult rv;
33433
0
  DOMString result;
33434
0
  self->GetMozBorderEndColor(result, rv);
33435
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33436
0
    return false;
33437
0
  }
33438
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33439
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33440
0
    return false;
33441
0
  }
33442
0
  return true;
33443
0
}
33444
33445
MOZ_CAN_RUN_SCRIPT static bool
33446
set_MozBorderEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33447
0
{
33448
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderEndColor", DOM, cx);
33449
0
33450
0
  binding_detail::FakeString arg0;
33451
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33452
0
    return false;
33453
0
  }
33454
0
  Maybe<AutoCEReaction> ceReaction;
33455
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33456
0
    DocGroup* docGroup = self->GetDocGroup();
33457
0
    if (docGroup) {
33458
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33459
0
    }
33460
0
  }
33461
0
  FastErrorResult rv;
33462
0
  nsIPrincipal* subjectPrincipal;
33463
0
  {
33464
0
    JS::Realm* realm = js::GetContextRealm(cx);
33465
0
    MOZ_ASSERT(realm);
33466
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33467
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33468
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33469
0
      principal = nullptr;
33470
0
    }
33471
0
33472
0
    subjectPrincipal = principal;
33473
0
  }
33474
0
  self->SetMozBorderEndColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33475
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33476
0
    return false;
33477
0
  }
33478
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33479
0
33480
0
  return true;
33481
0
}
33482
33483
static const JSJitInfo MozBorderEndColor_getterinfo = {
33484
  { (JSJitGetterOp)get_MozBorderEndColor },
33485
  { prototypes::id::CSS2Properties },
33486
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33487
  JSJitInfo::Getter,
33488
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33489
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33490
  false,  /* isInfallible. False in setters. */
33491
  false,  /* isMovable.  Not relevant for setters. */
33492
  false, /* isEliminatable.  Not relevant for setters. */
33493
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33494
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33495
  false,  /* isTypedMethod.  Only relevant for methods. */
33496
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33497
};
33498
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33499
static_assert(0 < 1, "There is no slot for us");
33500
static const JSJitInfo MozBorderEndColor_setterinfo = {
33501
  { (JSJitGetterOp)set_MozBorderEndColor },
33502
  { prototypes::id::CSS2Properties },
33503
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33504
  JSJitInfo::Setter,
33505
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33506
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33507
  false,  /* isInfallible. False in setters. */
33508
  false,  /* isMovable.  Not relevant for setters. */
33509
  false, /* isEliminatable.  Not relevant for setters. */
33510
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33511
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33512
  false,  /* isTypedMethod.  Only relevant for methods. */
33513
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33514
};
33515
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33516
static_assert(0 < 1, "There is no slot for us");
33517
33518
MOZ_CAN_RUN_SCRIPT static bool
33519
get_MozBorderEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33520
0
{
33521
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderEndStyle", DOM, cx);
33522
0
33523
0
  FastErrorResult rv;
33524
0
  DOMString result;
33525
0
  self->GetMozBorderEndStyle(result, rv);
33526
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33527
0
    return false;
33528
0
  }
33529
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33530
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33531
0
    return false;
33532
0
  }
33533
0
  return true;
33534
0
}
33535
33536
MOZ_CAN_RUN_SCRIPT static bool
33537
set_MozBorderEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33538
0
{
33539
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderEndStyle", DOM, cx);
33540
0
33541
0
  binding_detail::FakeString arg0;
33542
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33543
0
    return false;
33544
0
  }
33545
0
  Maybe<AutoCEReaction> ceReaction;
33546
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33547
0
    DocGroup* docGroup = self->GetDocGroup();
33548
0
    if (docGroup) {
33549
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33550
0
    }
33551
0
  }
33552
0
  FastErrorResult rv;
33553
0
  nsIPrincipal* subjectPrincipal;
33554
0
  {
33555
0
    JS::Realm* realm = js::GetContextRealm(cx);
33556
0
    MOZ_ASSERT(realm);
33557
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33558
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33559
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33560
0
      principal = nullptr;
33561
0
    }
33562
0
33563
0
    subjectPrincipal = principal;
33564
0
  }
33565
0
  self->SetMozBorderEndStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33566
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33567
0
    return false;
33568
0
  }
33569
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33570
0
33571
0
  return true;
33572
0
}
33573
33574
static const JSJitInfo MozBorderEndStyle_getterinfo = {
33575
  { (JSJitGetterOp)get_MozBorderEndStyle },
33576
  { prototypes::id::CSS2Properties },
33577
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33578
  JSJitInfo::Getter,
33579
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33580
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33581
  false,  /* isInfallible. False in setters. */
33582
  false,  /* isMovable.  Not relevant for setters. */
33583
  false, /* isEliminatable.  Not relevant for setters. */
33584
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33585
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33586
  false,  /* isTypedMethod.  Only relevant for methods. */
33587
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33588
};
33589
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33590
static_assert(0 < 1, "There is no slot for us");
33591
static const JSJitInfo MozBorderEndStyle_setterinfo = {
33592
  { (JSJitGetterOp)set_MozBorderEndStyle },
33593
  { prototypes::id::CSS2Properties },
33594
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33595
  JSJitInfo::Setter,
33596
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33597
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33598
  false,  /* isInfallible. False in setters. */
33599
  false,  /* isMovable.  Not relevant for setters. */
33600
  false, /* isEliminatable.  Not relevant for setters. */
33601
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33602
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33603
  false,  /* isTypedMethod.  Only relevant for methods. */
33604
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33605
};
33606
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33607
static_assert(0 < 1, "There is no slot for us");
33608
33609
MOZ_CAN_RUN_SCRIPT static bool
33610
get_MozBorderEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33611
0
{
33612
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderEndWidth", DOM, cx);
33613
0
33614
0
  FastErrorResult rv;
33615
0
  DOMString result;
33616
0
  self->GetMozBorderEndWidth(result, rv);
33617
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33618
0
    return false;
33619
0
  }
33620
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33621
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33622
0
    return false;
33623
0
  }
33624
0
  return true;
33625
0
}
33626
33627
MOZ_CAN_RUN_SCRIPT static bool
33628
set_MozBorderEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33629
0
{
33630
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderEndWidth", DOM, cx);
33631
0
33632
0
  binding_detail::FakeString arg0;
33633
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33634
0
    return false;
33635
0
  }
33636
0
  Maybe<AutoCEReaction> ceReaction;
33637
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33638
0
    DocGroup* docGroup = self->GetDocGroup();
33639
0
    if (docGroup) {
33640
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33641
0
    }
33642
0
  }
33643
0
  FastErrorResult rv;
33644
0
  nsIPrincipal* subjectPrincipal;
33645
0
  {
33646
0
    JS::Realm* realm = js::GetContextRealm(cx);
33647
0
    MOZ_ASSERT(realm);
33648
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33649
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33650
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33651
0
      principal = nullptr;
33652
0
    }
33653
0
33654
0
    subjectPrincipal = principal;
33655
0
  }
33656
0
  self->SetMozBorderEndWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33657
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33658
0
    return false;
33659
0
  }
33660
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33661
0
33662
0
  return true;
33663
0
}
33664
33665
static const JSJitInfo MozBorderEndWidth_getterinfo = {
33666
  { (JSJitGetterOp)get_MozBorderEndWidth },
33667
  { prototypes::id::CSS2Properties },
33668
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33669
  JSJitInfo::Getter,
33670
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33671
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33672
  false,  /* isInfallible. False in setters. */
33673
  false,  /* isMovable.  Not relevant for setters. */
33674
  false, /* isEliminatable.  Not relevant for setters. */
33675
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33676
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33677
  false,  /* isTypedMethod.  Only relevant for methods. */
33678
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33679
};
33680
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33681
static_assert(0 < 1, "There is no slot for us");
33682
static const JSJitInfo MozBorderEndWidth_setterinfo = {
33683
  { (JSJitGetterOp)set_MozBorderEndWidth },
33684
  { prototypes::id::CSS2Properties },
33685
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33686
  JSJitInfo::Setter,
33687
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33688
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33689
  false,  /* isInfallible. False in setters. */
33690
  false,  /* isMovable.  Not relevant for setters. */
33691
  false, /* isEliminatable.  Not relevant for setters. */
33692
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33693
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33694
  false,  /* isTypedMethod.  Only relevant for methods. */
33695
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33696
};
33697
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33698
static_assert(0 < 1, "There is no slot for us");
33699
33700
MOZ_CAN_RUN_SCRIPT static bool
33701
get_webkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33702
0
{
33703
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderTopLeftRadius", DOM, cx);
33704
0
33705
0
  FastErrorResult rv;
33706
0
  DOMString result;
33707
0
  self->GetWebkitBorderTopLeftRadius(result, rv);
33708
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33709
0
    return false;
33710
0
  }
33711
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33712
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33713
0
    return false;
33714
0
  }
33715
0
  return true;
33716
0
}
33717
33718
MOZ_CAN_RUN_SCRIPT static bool
33719
set_webkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33720
0
{
33721
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderTopLeftRadius", DOM, cx);
33722
0
33723
0
  binding_detail::FakeString arg0;
33724
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33725
0
    return false;
33726
0
  }
33727
0
  Maybe<AutoCEReaction> ceReaction;
33728
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33729
0
    DocGroup* docGroup = self->GetDocGroup();
33730
0
    if (docGroup) {
33731
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33732
0
    }
33733
0
  }
33734
0
  FastErrorResult rv;
33735
0
  nsIPrincipal* subjectPrincipal;
33736
0
  {
33737
0
    JS::Realm* realm = js::GetContextRealm(cx);
33738
0
    MOZ_ASSERT(realm);
33739
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33740
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33741
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33742
0
      principal = nullptr;
33743
0
    }
33744
0
33745
0
    subjectPrincipal = principal;
33746
0
  }
33747
0
  self->SetWebkitBorderTopLeftRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33748
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33749
0
    return false;
33750
0
  }
33751
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33752
0
33753
0
  return true;
33754
0
}
33755
33756
static const JSJitInfo webkitBorderTopLeftRadius_getterinfo = {
33757
  { (JSJitGetterOp)get_webkitBorderTopLeftRadius },
33758
  { prototypes::id::CSS2Properties },
33759
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33760
  JSJitInfo::Getter,
33761
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33762
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33763
  false,  /* isInfallible. False in setters. */
33764
  false,  /* isMovable.  Not relevant for setters. */
33765
  false, /* isEliminatable.  Not relevant for setters. */
33766
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33767
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33768
  false,  /* isTypedMethod.  Only relevant for methods. */
33769
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33770
};
33771
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33772
static_assert(0 < 1, "There is no slot for us");
33773
static const JSJitInfo webkitBorderTopLeftRadius_setterinfo = {
33774
  { (JSJitGetterOp)set_webkitBorderTopLeftRadius },
33775
  { prototypes::id::CSS2Properties },
33776
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33777
  JSJitInfo::Setter,
33778
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33779
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33780
  false,  /* isInfallible. False in setters. */
33781
  false,  /* isMovable.  Not relevant for setters. */
33782
  false, /* isEliminatable.  Not relevant for setters. */
33783
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33784
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33785
  false,  /* isTypedMethod.  Only relevant for methods. */
33786
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33787
};
33788
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33789
static_assert(0 < 1, "There is no slot for us");
33790
33791
MOZ_CAN_RUN_SCRIPT static bool
33792
get_webkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33793
0
{
33794
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderTopRightRadius", DOM, cx);
33795
0
33796
0
  FastErrorResult rv;
33797
0
  DOMString result;
33798
0
  self->GetWebkitBorderTopRightRadius(result, rv);
33799
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33800
0
    return false;
33801
0
  }
33802
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33803
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33804
0
    return false;
33805
0
  }
33806
0
  return true;
33807
0
}
33808
33809
MOZ_CAN_RUN_SCRIPT static bool
33810
set_webkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33811
0
{
33812
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderTopRightRadius", DOM, cx);
33813
0
33814
0
  binding_detail::FakeString arg0;
33815
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33816
0
    return false;
33817
0
  }
33818
0
  Maybe<AutoCEReaction> ceReaction;
33819
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33820
0
    DocGroup* docGroup = self->GetDocGroup();
33821
0
    if (docGroup) {
33822
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33823
0
    }
33824
0
  }
33825
0
  FastErrorResult rv;
33826
0
  nsIPrincipal* subjectPrincipal;
33827
0
  {
33828
0
    JS::Realm* realm = js::GetContextRealm(cx);
33829
0
    MOZ_ASSERT(realm);
33830
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33831
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33832
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33833
0
      principal = nullptr;
33834
0
    }
33835
0
33836
0
    subjectPrincipal = principal;
33837
0
  }
33838
0
  self->SetWebkitBorderTopRightRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33839
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33840
0
    return false;
33841
0
  }
33842
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33843
0
33844
0
  return true;
33845
0
}
33846
33847
static const JSJitInfo webkitBorderTopRightRadius_getterinfo = {
33848
  { (JSJitGetterOp)get_webkitBorderTopRightRadius },
33849
  { prototypes::id::CSS2Properties },
33850
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33851
  JSJitInfo::Getter,
33852
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33853
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33854
  false,  /* isInfallible. False in setters. */
33855
  false,  /* isMovable.  Not relevant for setters. */
33856
  false, /* isEliminatable.  Not relevant for setters. */
33857
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33858
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33859
  false,  /* isTypedMethod.  Only relevant for methods. */
33860
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33861
};
33862
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33863
static_assert(0 < 1, "There is no slot for us");
33864
static const JSJitInfo webkitBorderTopRightRadius_setterinfo = {
33865
  { (JSJitGetterOp)set_webkitBorderTopRightRadius },
33866
  { prototypes::id::CSS2Properties },
33867
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33868
  JSJitInfo::Setter,
33869
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33870
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33871
  false,  /* isInfallible. False in setters. */
33872
  false,  /* isMovable.  Not relevant for setters. */
33873
  false, /* isEliminatable.  Not relevant for setters. */
33874
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33875
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33876
  false,  /* isTypedMethod.  Only relevant for methods. */
33877
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33878
};
33879
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33880
static_assert(0 < 1, "There is no slot for us");
33881
33882
MOZ_CAN_RUN_SCRIPT static bool
33883
get_webkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33884
0
{
33885
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderBottomRightRadius", DOM, cx);
33886
0
33887
0
  FastErrorResult rv;
33888
0
  DOMString result;
33889
0
  self->GetWebkitBorderBottomRightRadius(result, rv);
33890
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33891
0
    return false;
33892
0
  }
33893
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33894
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33895
0
    return false;
33896
0
  }
33897
0
  return true;
33898
0
}
33899
33900
MOZ_CAN_RUN_SCRIPT static bool
33901
set_webkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33902
0
{
33903
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderBottomRightRadius", DOM, cx);
33904
0
33905
0
  binding_detail::FakeString arg0;
33906
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33907
0
    return false;
33908
0
  }
33909
0
  Maybe<AutoCEReaction> ceReaction;
33910
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
33911
0
    DocGroup* docGroup = self->GetDocGroup();
33912
0
    if (docGroup) {
33913
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
33914
0
    }
33915
0
  }
33916
0
  FastErrorResult rv;
33917
0
  nsIPrincipal* subjectPrincipal;
33918
0
  {
33919
0
    JS::Realm* realm = js::GetContextRealm(cx);
33920
0
    MOZ_ASSERT(realm);
33921
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
33922
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
33923
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
33924
0
      principal = nullptr;
33925
0
    }
33926
0
33927
0
    subjectPrincipal = principal;
33928
0
  }
33929
0
  self->SetWebkitBorderBottomRightRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
33930
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33931
0
    return false;
33932
0
  }
33933
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33934
0
33935
0
  return true;
33936
0
}
33937
33938
static const JSJitInfo webkitBorderBottomRightRadius_getterinfo = {
33939
  { (JSJitGetterOp)get_webkitBorderBottomRightRadius },
33940
  { prototypes::id::CSS2Properties },
33941
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33942
  JSJitInfo::Getter,
33943
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33944
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
33945
  false,  /* isInfallible. False in setters. */
33946
  false,  /* isMovable.  Not relevant for setters. */
33947
  false, /* isEliminatable.  Not relevant for setters. */
33948
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33949
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33950
  false,  /* isTypedMethod.  Only relevant for methods. */
33951
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33952
};
33953
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33954
static_assert(0 < 1, "There is no slot for us");
33955
static const JSJitInfo webkitBorderBottomRightRadius_setterinfo = {
33956
  { (JSJitGetterOp)set_webkitBorderBottomRightRadius },
33957
  { prototypes::id::CSS2Properties },
33958
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
33959
  JSJitInfo::Setter,
33960
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
33961
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
33962
  false,  /* isInfallible. False in setters. */
33963
  false,  /* isMovable.  Not relevant for setters. */
33964
  false, /* isEliminatable.  Not relevant for setters. */
33965
  false, /* isAlwaysInSlot.  Only relevant for getters. */
33966
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
33967
  false,  /* isTypedMethod.  Only relevant for methods. */
33968
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
33969
};
33970
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
33971
static_assert(0 < 1, "There is no slot for us");
33972
33973
MOZ_CAN_RUN_SCRIPT static bool
33974
get_webkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
33975
0
{
33976
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderBottomLeftRadius", DOM, cx);
33977
0
33978
0
  FastErrorResult rv;
33979
0
  DOMString result;
33980
0
  self->GetWebkitBorderBottomLeftRadius(result, rv);
33981
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
33982
0
    return false;
33983
0
  }
33984
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
33985
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
33986
0
    return false;
33987
0
  }
33988
0
  return true;
33989
0
}
33990
33991
MOZ_CAN_RUN_SCRIPT static bool
33992
set_webkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
33993
0
{
33994
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderBottomLeftRadius", DOM, cx);
33995
0
33996
0
  binding_detail::FakeString arg0;
33997
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
33998
0
    return false;
33999
0
  }
34000
0
  Maybe<AutoCEReaction> ceReaction;
34001
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34002
0
    DocGroup* docGroup = self->GetDocGroup();
34003
0
    if (docGroup) {
34004
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34005
0
    }
34006
0
  }
34007
0
  FastErrorResult rv;
34008
0
  nsIPrincipal* subjectPrincipal;
34009
0
  {
34010
0
    JS::Realm* realm = js::GetContextRealm(cx);
34011
0
    MOZ_ASSERT(realm);
34012
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34013
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34014
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34015
0
      principal = nullptr;
34016
0
    }
34017
0
34018
0
    subjectPrincipal = principal;
34019
0
  }
34020
0
  self->SetWebkitBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34021
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34022
0
    return false;
34023
0
  }
34024
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34025
0
34026
0
  return true;
34027
0
}
34028
34029
static const JSJitInfo webkitBorderBottomLeftRadius_getterinfo = {
34030
  { (JSJitGetterOp)get_webkitBorderBottomLeftRadius },
34031
  { prototypes::id::CSS2Properties },
34032
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34033
  JSJitInfo::Getter,
34034
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34035
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34036
  false,  /* isInfallible. False in setters. */
34037
  false,  /* isMovable.  Not relevant for setters. */
34038
  false, /* isEliminatable.  Not relevant for setters. */
34039
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34040
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34041
  false,  /* isTypedMethod.  Only relevant for methods. */
34042
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34043
};
34044
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34045
static_assert(0 < 1, "There is no slot for us");
34046
static const JSJitInfo webkitBorderBottomLeftRadius_setterinfo = {
34047
  { (JSJitGetterOp)set_webkitBorderBottomLeftRadius },
34048
  { prototypes::id::CSS2Properties },
34049
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34050
  JSJitInfo::Setter,
34051
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34052
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34053
  false,  /* isInfallible. False in setters. */
34054
  false,  /* isMovable.  Not relevant for setters. */
34055
  false, /* isEliminatable.  Not relevant for setters. */
34056
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34057
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34058
  false,  /* isTypedMethod.  Only relevant for methods. */
34059
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34060
};
34061
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34062
static_assert(0 < 1, "There is no slot for us");
34063
34064
MOZ_CAN_RUN_SCRIPT static bool
34065
get_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34066
0
{
34067
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransitionDuration", DOM, cx);
34068
0
34069
0
  FastErrorResult rv;
34070
0
  DOMString result;
34071
0
  self->GetMozTransitionDuration(result, rv);
34072
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34073
0
    return false;
34074
0
  }
34075
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34076
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34077
0
    return false;
34078
0
  }
34079
0
  return true;
34080
0
}
34081
34082
MOZ_CAN_RUN_SCRIPT static bool
34083
set_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34084
0
{
34085
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransitionDuration", DOM, cx);
34086
0
34087
0
  binding_detail::FakeString arg0;
34088
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34089
0
    return false;
34090
0
  }
34091
0
  Maybe<AutoCEReaction> ceReaction;
34092
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34093
0
    DocGroup* docGroup = self->GetDocGroup();
34094
0
    if (docGroup) {
34095
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34096
0
    }
34097
0
  }
34098
0
  FastErrorResult rv;
34099
0
  nsIPrincipal* subjectPrincipal;
34100
0
  {
34101
0
    JS::Realm* realm = js::GetContextRealm(cx);
34102
0
    MOZ_ASSERT(realm);
34103
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34104
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34105
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34106
0
      principal = nullptr;
34107
0
    }
34108
0
34109
0
    subjectPrincipal = principal;
34110
0
  }
34111
0
  self->SetMozTransitionDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34112
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34113
0
    return false;
34114
0
  }
34115
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34116
0
34117
0
  return true;
34118
0
}
34119
34120
static const JSJitInfo MozTransitionDuration_getterinfo = {
34121
  { (JSJitGetterOp)get_MozTransitionDuration },
34122
  { prototypes::id::CSS2Properties },
34123
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34124
  JSJitInfo::Getter,
34125
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34126
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34127
  false,  /* isInfallible. False in setters. */
34128
  false,  /* isMovable.  Not relevant for setters. */
34129
  false, /* isEliminatable.  Not relevant for setters. */
34130
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34131
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34132
  false,  /* isTypedMethod.  Only relevant for methods. */
34133
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34134
};
34135
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34136
static_assert(0 < 1, "There is no slot for us");
34137
static const JSJitInfo MozTransitionDuration_setterinfo = {
34138
  { (JSJitGetterOp)set_MozTransitionDuration },
34139
  { prototypes::id::CSS2Properties },
34140
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34141
  JSJitInfo::Setter,
34142
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34143
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34144
  false,  /* isInfallible. False in setters. */
34145
  false,  /* isMovable.  Not relevant for setters. */
34146
  false, /* isEliminatable.  Not relevant for setters. */
34147
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34148
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34149
  false,  /* isTypedMethod.  Only relevant for methods. */
34150
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34151
};
34152
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34153
static_assert(0 < 1, "There is no slot for us");
34154
34155
MOZ_CAN_RUN_SCRIPT static bool
34156
get_webkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34157
0
{
34158
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransitionDuration", DOM, cx);
34159
0
34160
0
  FastErrorResult rv;
34161
0
  DOMString result;
34162
0
  self->GetWebkitTransitionDuration(result, rv);
34163
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34164
0
    return false;
34165
0
  }
34166
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34167
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34168
0
    return false;
34169
0
  }
34170
0
  return true;
34171
0
}
34172
34173
MOZ_CAN_RUN_SCRIPT static bool
34174
set_webkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34175
0
{
34176
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransitionDuration", DOM, cx);
34177
0
34178
0
  binding_detail::FakeString arg0;
34179
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34180
0
    return false;
34181
0
  }
34182
0
  Maybe<AutoCEReaction> ceReaction;
34183
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34184
0
    DocGroup* docGroup = self->GetDocGroup();
34185
0
    if (docGroup) {
34186
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34187
0
    }
34188
0
  }
34189
0
  FastErrorResult rv;
34190
0
  nsIPrincipal* subjectPrincipal;
34191
0
  {
34192
0
    JS::Realm* realm = js::GetContextRealm(cx);
34193
0
    MOZ_ASSERT(realm);
34194
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34195
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34196
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34197
0
      principal = nullptr;
34198
0
    }
34199
0
34200
0
    subjectPrincipal = principal;
34201
0
  }
34202
0
  self->SetWebkitTransitionDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34203
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34204
0
    return false;
34205
0
  }
34206
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34207
0
34208
0
  return true;
34209
0
}
34210
34211
static const JSJitInfo webkitTransitionDuration_getterinfo = {
34212
  { (JSJitGetterOp)get_webkitTransitionDuration },
34213
  { prototypes::id::CSS2Properties },
34214
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34215
  JSJitInfo::Getter,
34216
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34217
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34218
  false,  /* isInfallible. False in setters. */
34219
  false,  /* isMovable.  Not relevant for setters. */
34220
  false, /* isEliminatable.  Not relevant for setters. */
34221
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34222
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34223
  false,  /* isTypedMethod.  Only relevant for methods. */
34224
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34225
};
34226
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34227
static_assert(0 < 1, "There is no slot for us");
34228
static const JSJitInfo webkitTransitionDuration_setterinfo = {
34229
  { (JSJitGetterOp)set_webkitTransitionDuration },
34230
  { prototypes::id::CSS2Properties },
34231
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34232
  JSJitInfo::Setter,
34233
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34234
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34235
  false,  /* isInfallible. False in setters. */
34236
  false,  /* isMovable.  Not relevant for setters. */
34237
  false, /* isEliminatable.  Not relevant for setters. */
34238
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34239
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34240
  false,  /* isTypedMethod.  Only relevant for methods. */
34241
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34242
};
34243
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34244
static_assert(0 < 1, "There is no slot for us");
34245
34246
MOZ_CAN_RUN_SCRIPT static bool
34247
get_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34248
0
{
34249
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransitionTimingFunction", DOM, cx);
34250
0
34251
0
  FastErrorResult rv;
34252
0
  DOMString result;
34253
0
  self->GetMozTransitionTimingFunction(result, rv);
34254
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34255
0
    return false;
34256
0
  }
34257
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34258
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34259
0
    return false;
34260
0
  }
34261
0
  return true;
34262
0
}
34263
34264
MOZ_CAN_RUN_SCRIPT static bool
34265
set_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34266
0
{
34267
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransitionTimingFunction", DOM, cx);
34268
0
34269
0
  binding_detail::FakeString arg0;
34270
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34271
0
    return false;
34272
0
  }
34273
0
  Maybe<AutoCEReaction> ceReaction;
34274
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34275
0
    DocGroup* docGroup = self->GetDocGroup();
34276
0
    if (docGroup) {
34277
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34278
0
    }
34279
0
  }
34280
0
  FastErrorResult rv;
34281
0
  nsIPrincipal* subjectPrincipal;
34282
0
  {
34283
0
    JS::Realm* realm = js::GetContextRealm(cx);
34284
0
    MOZ_ASSERT(realm);
34285
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34286
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34287
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34288
0
      principal = nullptr;
34289
0
    }
34290
0
34291
0
    subjectPrincipal = principal;
34292
0
  }
34293
0
  self->SetMozTransitionTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34294
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34295
0
    return false;
34296
0
  }
34297
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34298
0
34299
0
  return true;
34300
0
}
34301
34302
static const JSJitInfo MozTransitionTimingFunction_getterinfo = {
34303
  { (JSJitGetterOp)get_MozTransitionTimingFunction },
34304
  { prototypes::id::CSS2Properties },
34305
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34306
  JSJitInfo::Getter,
34307
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34308
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34309
  false,  /* isInfallible. False in setters. */
34310
  false,  /* isMovable.  Not relevant for setters. */
34311
  false, /* isEliminatable.  Not relevant for setters. */
34312
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34313
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34314
  false,  /* isTypedMethod.  Only relevant for methods. */
34315
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34316
};
34317
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34318
static_assert(0 < 1, "There is no slot for us");
34319
static const JSJitInfo MozTransitionTimingFunction_setterinfo = {
34320
  { (JSJitGetterOp)set_MozTransitionTimingFunction },
34321
  { prototypes::id::CSS2Properties },
34322
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34323
  JSJitInfo::Setter,
34324
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34325
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34326
  false,  /* isInfallible. False in setters. */
34327
  false,  /* isMovable.  Not relevant for setters. */
34328
  false, /* isEliminatable.  Not relevant for setters. */
34329
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34330
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34331
  false,  /* isTypedMethod.  Only relevant for methods. */
34332
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34333
};
34334
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34335
static_assert(0 < 1, "There is no slot for us");
34336
34337
MOZ_CAN_RUN_SCRIPT static bool
34338
get_webkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34339
0
{
34340
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransitionTimingFunction", DOM, cx);
34341
0
34342
0
  FastErrorResult rv;
34343
0
  DOMString result;
34344
0
  self->GetWebkitTransitionTimingFunction(result, rv);
34345
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34346
0
    return false;
34347
0
  }
34348
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34349
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34350
0
    return false;
34351
0
  }
34352
0
  return true;
34353
0
}
34354
34355
MOZ_CAN_RUN_SCRIPT static bool
34356
set_webkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34357
0
{
34358
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransitionTimingFunction", DOM, cx);
34359
0
34360
0
  binding_detail::FakeString arg0;
34361
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34362
0
    return false;
34363
0
  }
34364
0
  Maybe<AutoCEReaction> ceReaction;
34365
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34366
0
    DocGroup* docGroup = self->GetDocGroup();
34367
0
    if (docGroup) {
34368
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34369
0
    }
34370
0
  }
34371
0
  FastErrorResult rv;
34372
0
  nsIPrincipal* subjectPrincipal;
34373
0
  {
34374
0
    JS::Realm* realm = js::GetContextRealm(cx);
34375
0
    MOZ_ASSERT(realm);
34376
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34377
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34378
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34379
0
      principal = nullptr;
34380
0
    }
34381
0
34382
0
    subjectPrincipal = principal;
34383
0
  }
34384
0
  self->SetWebkitTransitionTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34385
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34386
0
    return false;
34387
0
  }
34388
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34389
0
34390
0
  return true;
34391
0
}
34392
34393
static const JSJitInfo webkitTransitionTimingFunction_getterinfo = {
34394
  { (JSJitGetterOp)get_webkitTransitionTimingFunction },
34395
  { prototypes::id::CSS2Properties },
34396
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34397
  JSJitInfo::Getter,
34398
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34399
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34400
  false,  /* isInfallible. False in setters. */
34401
  false,  /* isMovable.  Not relevant for setters. */
34402
  false, /* isEliminatable.  Not relevant for setters. */
34403
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34404
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34405
  false,  /* isTypedMethod.  Only relevant for methods. */
34406
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34407
};
34408
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34409
static_assert(0 < 1, "There is no slot for us");
34410
static const JSJitInfo webkitTransitionTimingFunction_setterinfo = {
34411
  { (JSJitGetterOp)set_webkitTransitionTimingFunction },
34412
  { prototypes::id::CSS2Properties },
34413
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34414
  JSJitInfo::Setter,
34415
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34416
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34417
  false,  /* isInfallible. False in setters. */
34418
  false,  /* isMovable.  Not relevant for setters. */
34419
  false, /* isEliminatable.  Not relevant for setters. */
34420
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34421
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34422
  false,  /* isTypedMethod.  Only relevant for methods. */
34423
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34424
};
34425
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34426
static_assert(0 < 1, "There is no slot for us");
34427
34428
MOZ_CAN_RUN_SCRIPT static bool
34429
get_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34430
0
{
34431
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransitionProperty", DOM, cx);
34432
0
34433
0
  FastErrorResult rv;
34434
0
  DOMString result;
34435
0
  self->GetMozTransitionProperty(result, rv);
34436
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34437
0
    return false;
34438
0
  }
34439
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34440
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34441
0
    return false;
34442
0
  }
34443
0
  return true;
34444
0
}
34445
34446
MOZ_CAN_RUN_SCRIPT static bool
34447
set_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34448
0
{
34449
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransitionProperty", DOM, cx);
34450
0
34451
0
  binding_detail::FakeString arg0;
34452
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34453
0
    return false;
34454
0
  }
34455
0
  Maybe<AutoCEReaction> ceReaction;
34456
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34457
0
    DocGroup* docGroup = self->GetDocGroup();
34458
0
    if (docGroup) {
34459
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34460
0
    }
34461
0
  }
34462
0
  FastErrorResult rv;
34463
0
  nsIPrincipal* subjectPrincipal;
34464
0
  {
34465
0
    JS::Realm* realm = js::GetContextRealm(cx);
34466
0
    MOZ_ASSERT(realm);
34467
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34468
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34469
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34470
0
      principal = nullptr;
34471
0
    }
34472
0
34473
0
    subjectPrincipal = principal;
34474
0
  }
34475
0
  self->SetMozTransitionProperty(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34476
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34477
0
    return false;
34478
0
  }
34479
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34480
0
34481
0
  return true;
34482
0
}
34483
34484
static const JSJitInfo MozTransitionProperty_getterinfo = {
34485
  { (JSJitGetterOp)get_MozTransitionProperty },
34486
  { prototypes::id::CSS2Properties },
34487
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34488
  JSJitInfo::Getter,
34489
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34490
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34491
  false,  /* isInfallible. False in setters. */
34492
  false,  /* isMovable.  Not relevant for setters. */
34493
  false, /* isEliminatable.  Not relevant for setters. */
34494
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34495
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34496
  false,  /* isTypedMethod.  Only relevant for methods. */
34497
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34498
};
34499
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34500
static_assert(0 < 1, "There is no slot for us");
34501
static const JSJitInfo MozTransitionProperty_setterinfo = {
34502
  { (JSJitGetterOp)set_MozTransitionProperty },
34503
  { prototypes::id::CSS2Properties },
34504
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34505
  JSJitInfo::Setter,
34506
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34507
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34508
  false,  /* isInfallible. False in setters. */
34509
  false,  /* isMovable.  Not relevant for setters. */
34510
  false, /* isEliminatable.  Not relevant for setters. */
34511
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34512
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34513
  false,  /* isTypedMethod.  Only relevant for methods. */
34514
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34515
};
34516
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34517
static_assert(0 < 1, "There is no slot for us");
34518
34519
MOZ_CAN_RUN_SCRIPT static bool
34520
get_webkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34521
0
{
34522
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransitionProperty", DOM, cx);
34523
0
34524
0
  FastErrorResult rv;
34525
0
  DOMString result;
34526
0
  self->GetWebkitTransitionProperty(result, rv);
34527
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34528
0
    return false;
34529
0
  }
34530
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34531
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34532
0
    return false;
34533
0
  }
34534
0
  return true;
34535
0
}
34536
34537
MOZ_CAN_RUN_SCRIPT static bool
34538
set_webkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34539
0
{
34540
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransitionProperty", DOM, cx);
34541
0
34542
0
  binding_detail::FakeString arg0;
34543
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34544
0
    return false;
34545
0
  }
34546
0
  Maybe<AutoCEReaction> ceReaction;
34547
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34548
0
    DocGroup* docGroup = self->GetDocGroup();
34549
0
    if (docGroup) {
34550
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34551
0
    }
34552
0
  }
34553
0
  FastErrorResult rv;
34554
0
  nsIPrincipal* subjectPrincipal;
34555
0
  {
34556
0
    JS::Realm* realm = js::GetContextRealm(cx);
34557
0
    MOZ_ASSERT(realm);
34558
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34559
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34560
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34561
0
      principal = nullptr;
34562
0
    }
34563
0
34564
0
    subjectPrincipal = principal;
34565
0
  }
34566
0
  self->SetWebkitTransitionProperty(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34567
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34568
0
    return false;
34569
0
  }
34570
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34571
0
34572
0
  return true;
34573
0
}
34574
34575
static const JSJitInfo webkitTransitionProperty_getterinfo = {
34576
  { (JSJitGetterOp)get_webkitTransitionProperty },
34577
  { prototypes::id::CSS2Properties },
34578
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34579
  JSJitInfo::Getter,
34580
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34581
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34582
  false,  /* isInfallible. False in setters. */
34583
  false,  /* isMovable.  Not relevant for setters. */
34584
  false, /* isEliminatable.  Not relevant for setters. */
34585
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34586
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34587
  false,  /* isTypedMethod.  Only relevant for methods. */
34588
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34589
};
34590
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34591
static_assert(0 < 1, "There is no slot for us");
34592
static const JSJitInfo webkitTransitionProperty_setterinfo = {
34593
  { (JSJitGetterOp)set_webkitTransitionProperty },
34594
  { prototypes::id::CSS2Properties },
34595
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34596
  JSJitInfo::Setter,
34597
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34598
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34599
  false,  /* isInfallible. False in setters. */
34600
  false,  /* isMovable.  Not relevant for setters. */
34601
  false, /* isEliminatable.  Not relevant for setters. */
34602
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34603
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34604
  false,  /* isTypedMethod.  Only relevant for methods. */
34605
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34606
};
34607
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34608
static_assert(0 < 1, "There is no slot for us");
34609
34610
MOZ_CAN_RUN_SCRIPT static bool
34611
get_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34612
0
{
34613
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransitionDelay", DOM, cx);
34614
0
34615
0
  FastErrorResult rv;
34616
0
  DOMString result;
34617
0
  self->GetMozTransitionDelay(result, rv);
34618
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34619
0
    return false;
34620
0
  }
34621
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34622
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34623
0
    return false;
34624
0
  }
34625
0
  return true;
34626
0
}
34627
34628
MOZ_CAN_RUN_SCRIPT static bool
34629
set_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34630
0
{
34631
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransitionDelay", DOM, cx);
34632
0
34633
0
  binding_detail::FakeString arg0;
34634
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34635
0
    return false;
34636
0
  }
34637
0
  Maybe<AutoCEReaction> ceReaction;
34638
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34639
0
    DocGroup* docGroup = self->GetDocGroup();
34640
0
    if (docGroup) {
34641
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34642
0
    }
34643
0
  }
34644
0
  FastErrorResult rv;
34645
0
  nsIPrincipal* subjectPrincipal;
34646
0
  {
34647
0
    JS::Realm* realm = js::GetContextRealm(cx);
34648
0
    MOZ_ASSERT(realm);
34649
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34650
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34651
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34652
0
      principal = nullptr;
34653
0
    }
34654
0
34655
0
    subjectPrincipal = principal;
34656
0
  }
34657
0
  self->SetMozTransitionDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34658
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34659
0
    return false;
34660
0
  }
34661
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34662
0
34663
0
  return true;
34664
0
}
34665
34666
static const JSJitInfo MozTransitionDelay_getterinfo = {
34667
  { (JSJitGetterOp)get_MozTransitionDelay },
34668
  { prototypes::id::CSS2Properties },
34669
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34670
  JSJitInfo::Getter,
34671
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34672
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34673
  false,  /* isInfallible. False in setters. */
34674
  false,  /* isMovable.  Not relevant for setters. */
34675
  false, /* isEliminatable.  Not relevant for setters. */
34676
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34677
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34678
  false,  /* isTypedMethod.  Only relevant for methods. */
34679
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34680
};
34681
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34682
static_assert(0 < 1, "There is no slot for us");
34683
static const JSJitInfo MozTransitionDelay_setterinfo = {
34684
  { (JSJitGetterOp)set_MozTransitionDelay },
34685
  { prototypes::id::CSS2Properties },
34686
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34687
  JSJitInfo::Setter,
34688
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34689
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34690
  false,  /* isInfallible. False in setters. */
34691
  false,  /* isMovable.  Not relevant for setters. */
34692
  false, /* isEliminatable.  Not relevant for setters. */
34693
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34694
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34695
  false,  /* isTypedMethod.  Only relevant for methods. */
34696
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34697
};
34698
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34699
static_assert(0 < 1, "There is no slot for us");
34700
34701
MOZ_CAN_RUN_SCRIPT static bool
34702
get_webkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34703
0
{
34704
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransitionDelay", DOM, cx);
34705
0
34706
0
  FastErrorResult rv;
34707
0
  DOMString result;
34708
0
  self->GetWebkitTransitionDelay(result, rv);
34709
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34710
0
    return false;
34711
0
  }
34712
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34713
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34714
0
    return false;
34715
0
  }
34716
0
  return true;
34717
0
}
34718
34719
MOZ_CAN_RUN_SCRIPT static bool
34720
set_webkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34721
0
{
34722
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransitionDelay", DOM, cx);
34723
0
34724
0
  binding_detail::FakeString arg0;
34725
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34726
0
    return false;
34727
0
  }
34728
0
  Maybe<AutoCEReaction> ceReaction;
34729
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34730
0
    DocGroup* docGroup = self->GetDocGroup();
34731
0
    if (docGroup) {
34732
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34733
0
    }
34734
0
  }
34735
0
  FastErrorResult rv;
34736
0
  nsIPrincipal* subjectPrincipal;
34737
0
  {
34738
0
    JS::Realm* realm = js::GetContextRealm(cx);
34739
0
    MOZ_ASSERT(realm);
34740
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34741
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34742
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34743
0
      principal = nullptr;
34744
0
    }
34745
0
34746
0
    subjectPrincipal = principal;
34747
0
  }
34748
0
  self->SetWebkitTransitionDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34749
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34750
0
    return false;
34751
0
  }
34752
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34753
0
34754
0
  return true;
34755
0
}
34756
34757
static const JSJitInfo webkitTransitionDelay_getterinfo = {
34758
  { (JSJitGetterOp)get_webkitTransitionDelay },
34759
  { prototypes::id::CSS2Properties },
34760
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34761
  JSJitInfo::Getter,
34762
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34763
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34764
  false,  /* isInfallible. False in setters. */
34765
  false,  /* isMovable.  Not relevant for setters. */
34766
  false, /* isEliminatable.  Not relevant for setters. */
34767
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34768
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34769
  false,  /* isTypedMethod.  Only relevant for methods. */
34770
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34771
};
34772
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34773
static_assert(0 < 1, "There is no slot for us");
34774
static const JSJitInfo webkitTransitionDelay_setterinfo = {
34775
  { (JSJitGetterOp)set_webkitTransitionDelay },
34776
  { prototypes::id::CSS2Properties },
34777
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34778
  JSJitInfo::Setter,
34779
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34780
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34781
  false,  /* isInfallible. False in setters. */
34782
  false,  /* isMovable.  Not relevant for setters. */
34783
  false, /* isEliminatable.  Not relevant for setters. */
34784
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34785
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34786
  false,  /* isTypedMethod.  Only relevant for methods. */
34787
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34788
};
34789
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34790
static_assert(0 < 1, "There is no slot for us");
34791
34792
MOZ_CAN_RUN_SCRIPT static bool
34793
get_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34794
0
{
34795
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationName", DOM, cx);
34796
0
34797
0
  FastErrorResult rv;
34798
0
  DOMString result;
34799
0
  self->GetMozAnimationName(result, rv);
34800
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34801
0
    return false;
34802
0
  }
34803
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34804
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34805
0
    return false;
34806
0
  }
34807
0
  return true;
34808
0
}
34809
34810
MOZ_CAN_RUN_SCRIPT static bool
34811
set_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34812
0
{
34813
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationName", DOM, cx);
34814
0
34815
0
  binding_detail::FakeString arg0;
34816
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34817
0
    return false;
34818
0
  }
34819
0
  Maybe<AutoCEReaction> ceReaction;
34820
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34821
0
    DocGroup* docGroup = self->GetDocGroup();
34822
0
    if (docGroup) {
34823
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34824
0
    }
34825
0
  }
34826
0
  FastErrorResult rv;
34827
0
  nsIPrincipal* subjectPrincipal;
34828
0
  {
34829
0
    JS::Realm* realm = js::GetContextRealm(cx);
34830
0
    MOZ_ASSERT(realm);
34831
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34832
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34833
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34834
0
      principal = nullptr;
34835
0
    }
34836
0
34837
0
    subjectPrincipal = principal;
34838
0
  }
34839
0
  self->SetMozAnimationName(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34840
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34841
0
    return false;
34842
0
  }
34843
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34844
0
34845
0
  return true;
34846
0
}
34847
34848
static const JSJitInfo MozAnimationName_getterinfo = {
34849
  { (JSJitGetterOp)get_MozAnimationName },
34850
  { prototypes::id::CSS2Properties },
34851
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34852
  JSJitInfo::Getter,
34853
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34854
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34855
  false,  /* isInfallible. False in setters. */
34856
  false,  /* isMovable.  Not relevant for setters. */
34857
  false, /* isEliminatable.  Not relevant for setters. */
34858
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34859
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34860
  false,  /* isTypedMethod.  Only relevant for methods. */
34861
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34862
};
34863
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34864
static_assert(0 < 1, "There is no slot for us");
34865
static const JSJitInfo MozAnimationName_setterinfo = {
34866
  { (JSJitGetterOp)set_MozAnimationName },
34867
  { prototypes::id::CSS2Properties },
34868
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34869
  JSJitInfo::Setter,
34870
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34871
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34872
  false,  /* isInfallible. False in setters. */
34873
  false,  /* isMovable.  Not relevant for setters. */
34874
  false, /* isEliminatable.  Not relevant for setters. */
34875
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34876
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34877
  false,  /* isTypedMethod.  Only relevant for methods. */
34878
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34879
};
34880
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34881
static_assert(0 < 1, "There is no slot for us");
34882
34883
MOZ_CAN_RUN_SCRIPT static bool
34884
get_webkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34885
0
{
34886
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationName", DOM, cx);
34887
0
34888
0
  FastErrorResult rv;
34889
0
  DOMString result;
34890
0
  self->GetWebkitAnimationName(result, rv);
34891
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34892
0
    return false;
34893
0
  }
34894
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34895
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34896
0
    return false;
34897
0
  }
34898
0
  return true;
34899
0
}
34900
34901
MOZ_CAN_RUN_SCRIPT static bool
34902
set_webkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34903
0
{
34904
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationName", DOM, cx);
34905
0
34906
0
  binding_detail::FakeString arg0;
34907
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34908
0
    return false;
34909
0
  }
34910
0
  Maybe<AutoCEReaction> ceReaction;
34911
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
34912
0
    DocGroup* docGroup = self->GetDocGroup();
34913
0
    if (docGroup) {
34914
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
34915
0
    }
34916
0
  }
34917
0
  FastErrorResult rv;
34918
0
  nsIPrincipal* subjectPrincipal;
34919
0
  {
34920
0
    JS::Realm* realm = js::GetContextRealm(cx);
34921
0
    MOZ_ASSERT(realm);
34922
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
34923
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
34924
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
34925
0
      principal = nullptr;
34926
0
    }
34927
0
34928
0
    subjectPrincipal = principal;
34929
0
  }
34930
0
  self->SetWebkitAnimationName(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
34931
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34932
0
    return false;
34933
0
  }
34934
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34935
0
34936
0
  return true;
34937
0
}
34938
34939
static const JSJitInfo webkitAnimationName_getterinfo = {
34940
  { (JSJitGetterOp)get_webkitAnimationName },
34941
  { prototypes::id::CSS2Properties },
34942
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34943
  JSJitInfo::Getter,
34944
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34945
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
34946
  false,  /* isInfallible. False in setters. */
34947
  false,  /* isMovable.  Not relevant for setters. */
34948
  false, /* isEliminatable.  Not relevant for setters. */
34949
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34950
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34951
  false,  /* isTypedMethod.  Only relevant for methods. */
34952
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34953
};
34954
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34955
static_assert(0 < 1, "There is no slot for us");
34956
static const JSJitInfo webkitAnimationName_setterinfo = {
34957
  { (JSJitGetterOp)set_webkitAnimationName },
34958
  { prototypes::id::CSS2Properties },
34959
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
34960
  JSJitInfo::Setter,
34961
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
34962
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
34963
  false,  /* isInfallible. False in setters. */
34964
  false,  /* isMovable.  Not relevant for setters. */
34965
  false, /* isEliminatable.  Not relevant for setters. */
34966
  false, /* isAlwaysInSlot.  Only relevant for getters. */
34967
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
34968
  false,  /* isTypedMethod.  Only relevant for methods. */
34969
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
34970
};
34971
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
34972
static_assert(0 < 1, "There is no slot for us");
34973
34974
MOZ_CAN_RUN_SCRIPT static bool
34975
get_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
34976
0
{
34977
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationDuration", DOM, cx);
34978
0
34979
0
  FastErrorResult rv;
34980
0
  DOMString result;
34981
0
  self->GetMozAnimationDuration(result, rv);
34982
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
34983
0
    return false;
34984
0
  }
34985
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
34986
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
34987
0
    return false;
34988
0
  }
34989
0
  return true;
34990
0
}
34991
34992
MOZ_CAN_RUN_SCRIPT static bool
34993
set_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
34994
0
{
34995
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationDuration", DOM, cx);
34996
0
34997
0
  binding_detail::FakeString arg0;
34998
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
34999
0
    return false;
35000
0
  }
35001
0
  Maybe<AutoCEReaction> ceReaction;
35002
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35003
0
    DocGroup* docGroup = self->GetDocGroup();
35004
0
    if (docGroup) {
35005
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35006
0
    }
35007
0
  }
35008
0
  FastErrorResult rv;
35009
0
  nsIPrincipal* subjectPrincipal;
35010
0
  {
35011
0
    JS::Realm* realm = js::GetContextRealm(cx);
35012
0
    MOZ_ASSERT(realm);
35013
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35014
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35015
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35016
0
      principal = nullptr;
35017
0
    }
35018
0
35019
0
    subjectPrincipal = principal;
35020
0
  }
35021
0
  self->SetMozAnimationDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35022
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35023
0
    return false;
35024
0
  }
35025
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35026
0
35027
0
  return true;
35028
0
}
35029
35030
static const JSJitInfo MozAnimationDuration_getterinfo = {
35031
  { (JSJitGetterOp)get_MozAnimationDuration },
35032
  { prototypes::id::CSS2Properties },
35033
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35034
  JSJitInfo::Getter,
35035
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35036
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35037
  false,  /* isInfallible. False in setters. */
35038
  false,  /* isMovable.  Not relevant for setters. */
35039
  false, /* isEliminatable.  Not relevant for setters. */
35040
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35041
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35042
  false,  /* isTypedMethod.  Only relevant for methods. */
35043
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35044
};
35045
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35046
static_assert(0 < 1, "There is no slot for us");
35047
static const JSJitInfo MozAnimationDuration_setterinfo = {
35048
  { (JSJitGetterOp)set_MozAnimationDuration },
35049
  { prototypes::id::CSS2Properties },
35050
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35051
  JSJitInfo::Setter,
35052
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35053
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35054
  false,  /* isInfallible. False in setters. */
35055
  false,  /* isMovable.  Not relevant for setters. */
35056
  false, /* isEliminatable.  Not relevant for setters. */
35057
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35058
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35059
  false,  /* isTypedMethod.  Only relevant for methods. */
35060
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35061
};
35062
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35063
static_assert(0 < 1, "There is no slot for us");
35064
35065
MOZ_CAN_RUN_SCRIPT static bool
35066
get_webkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35067
0
{
35068
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationDuration", DOM, cx);
35069
0
35070
0
  FastErrorResult rv;
35071
0
  DOMString result;
35072
0
  self->GetWebkitAnimationDuration(result, rv);
35073
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35074
0
    return false;
35075
0
  }
35076
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35077
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35078
0
    return false;
35079
0
  }
35080
0
  return true;
35081
0
}
35082
35083
MOZ_CAN_RUN_SCRIPT static bool
35084
set_webkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35085
0
{
35086
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationDuration", DOM, cx);
35087
0
35088
0
  binding_detail::FakeString arg0;
35089
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35090
0
    return false;
35091
0
  }
35092
0
  Maybe<AutoCEReaction> ceReaction;
35093
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35094
0
    DocGroup* docGroup = self->GetDocGroup();
35095
0
    if (docGroup) {
35096
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35097
0
    }
35098
0
  }
35099
0
  FastErrorResult rv;
35100
0
  nsIPrincipal* subjectPrincipal;
35101
0
  {
35102
0
    JS::Realm* realm = js::GetContextRealm(cx);
35103
0
    MOZ_ASSERT(realm);
35104
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35105
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35106
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35107
0
      principal = nullptr;
35108
0
    }
35109
0
35110
0
    subjectPrincipal = principal;
35111
0
  }
35112
0
  self->SetWebkitAnimationDuration(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35113
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35114
0
    return false;
35115
0
  }
35116
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35117
0
35118
0
  return true;
35119
0
}
35120
35121
static const JSJitInfo webkitAnimationDuration_getterinfo = {
35122
  { (JSJitGetterOp)get_webkitAnimationDuration },
35123
  { prototypes::id::CSS2Properties },
35124
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35125
  JSJitInfo::Getter,
35126
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35127
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35128
  false,  /* isInfallible. False in setters. */
35129
  false,  /* isMovable.  Not relevant for setters. */
35130
  false, /* isEliminatable.  Not relevant for setters. */
35131
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35132
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35133
  false,  /* isTypedMethod.  Only relevant for methods. */
35134
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35135
};
35136
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35137
static_assert(0 < 1, "There is no slot for us");
35138
static const JSJitInfo webkitAnimationDuration_setterinfo = {
35139
  { (JSJitGetterOp)set_webkitAnimationDuration },
35140
  { prototypes::id::CSS2Properties },
35141
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35142
  JSJitInfo::Setter,
35143
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35144
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35145
  false,  /* isInfallible. False in setters. */
35146
  false,  /* isMovable.  Not relevant for setters. */
35147
  false, /* isEliminatable.  Not relevant for setters. */
35148
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35149
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35150
  false,  /* isTypedMethod.  Only relevant for methods. */
35151
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35152
};
35153
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35154
static_assert(0 < 1, "There is no slot for us");
35155
35156
MOZ_CAN_RUN_SCRIPT static bool
35157
get_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35158
0
{
35159
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationTimingFunction", DOM, cx);
35160
0
35161
0
  FastErrorResult rv;
35162
0
  DOMString result;
35163
0
  self->GetMozAnimationTimingFunction(result, rv);
35164
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35165
0
    return false;
35166
0
  }
35167
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35168
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35169
0
    return false;
35170
0
  }
35171
0
  return true;
35172
0
}
35173
35174
MOZ_CAN_RUN_SCRIPT static bool
35175
set_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35176
0
{
35177
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationTimingFunction", DOM, cx);
35178
0
35179
0
  binding_detail::FakeString arg0;
35180
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35181
0
    return false;
35182
0
  }
35183
0
  Maybe<AutoCEReaction> ceReaction;
35184
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35185
0
    DocGroup* docGroup = self->GetDocGroup();
35186
0
    if (docGroup) {
35187
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35188
0
    }
35189
0
  }
35190
0
  FastErrorResult rv;
35191
0
  nsIPrincipal* subjectPrincipal;
35192
0
  {
35193
0
    JS::Realm* realm = js::GetContextRealm(cx);
35194
0
    MOZ_ASSERT(realm);
35195
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35196
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35197
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35198
0
      principal = nullptr;
35199
0
    }
35200
0
35201
0
    subjectPrincipal = principal;
35202
0
  }
35203
0
  self->SetMozAnimationTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35204
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35205
0
    return false;
35206
0
  }
35207
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35208
0
35209
0
  return true;
35210
0
}
35211
35212
static const JSJitInfo MozAnimationTimingFunction_getterinfo = {
35213
  { (JSJitGetterOp)get_MozAnimationTimingFunction },
35214
  { prototypes::id::CSS2Properties },
35215
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35216
  JSJitInfo::Getter,
35217
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35218
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35219
  false,  /* isInfallible. False in setters. */
35220
  false,  /* isMovable.  Not relevant for setters. */
35221
  false, /* isEliminatable.  Not relevant for setters. */
35222
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35223
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35224
  false,  /* isTypedMethod.  Only relevant for methods. */
35225
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35226
};
35227
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35228
static_assert(0 < 1, "There is no slot for us");
35229
static const JSJitInfo MozAnimationTimingFunction_setterinfo = {
35230
  { (JSJitGetterOp)set_MozAnimationTimingFunction },
35231
  { prototypes::id::CSS2Properties },
35232
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35233
  JSJitInfo::Setter,
35234
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35235
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35236
  false,  /* isInfallible. False in setters. */
35237
  false,  /* isMovable.  Not relevant for setters. */
35238
  false, /* isEliminatable.  Not relevant for setters. */
35239
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35240
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35241
  false,  /* isTypedMethod.  Only relevant for methods. */
35242
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35243
};
35244
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35245
static_assert(0 < 1, "There is no slot for us");
35246
35247
MOZ_CAN_RUN_SCRIPT static bool
35248
get_webkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35249
0
{
35250
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationTimingFunction", DOM, cx);
35251
0
35252
0
  FastErrorResult rv;
35253
0
  DOMString result;
35254
0
  self->GetWebkitAnimationTimingFunction(result, rv);
35255
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35256
0
    return false;
35257
0
  }
35258
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35259
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35260
0
    return false;
35261
0
  }
35262
0
  return true;
35263
0
}
35264
35265
MOZ_CAN_RUN_SCRIPT static bool
35266
set_webkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35267
0
{
35268
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationTimingFunction", DOM, cx);
35269
0
35270
0
  binding_detail::FakeString arg0;
35271
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35272
0
    return false;
35273
0
  }
35274
0
  Maybe<AutoCEReaction> ceReaction;
35275
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35276
0
    DocGroup* docGroup = self->GetDocGroup();
35277
0
    if (docGroup) {
35278
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35279
0
    }
35280
0
  }
35281
0
  FastErrorResult rv;
35282
0
  nsIPrincipal* subjectPrincipal;
35283
0
  {
35284
0
    JS::Realm* realm = js::GetContextRealm(cx);
35285
0
    MOZ_ASSERT(realm);
35286
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35287
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35288
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35289
0
      principal = nullptr;
35290
0
    }
35291
0
35292
0
    subjectPrincipal = principal;
35293
0
  }
35294
0
  self->SetWebkitAnimationTimingFunction(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35295
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35296
0
    return false;
35297
0
  }
35298
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35299
0
35300
0
  return true;
35301
0
}
35302
35303
static const JSJitInfo webkitAnimationTimingFunction_getterinfo = {
35304
  { (JSJitGetterOp)get_webkitAnimationTimingFunction },
35305
  { prototypes::id::CSS2Properties },
35306
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35307
  JSJitInfo::Getter,
35308
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35309
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35310
  false,  /* isInfallible. False in setters. */
35311
  false,  /* isMovable.  Not relevant for setters. */
35312
  false, /* isEliminatable.  Not relevant for setters. */
35313
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35314
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35315
  false,  /* isTypedMethod.  Only relevant for methods. */
35316
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35317
};
35318
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35319
static_assert(0 < 1, "There is no slot for us");
35320
static const JSJitInfo webkitAnimationTimingFunction_setterinfo = {
35321
  { (JSJitGetterOp)set_webkitAnimationTimingFunction },
35322
  { prototypes::id::CSS2Properties },
35323
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35324
  JSJitInfo::Setter,
35325
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35326
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35327
  false,  /* isInfallible. False in setters. */
35328
  false,  /* isMovable.  Not relevant for setters. */
35329
  false, /* isEliminatable.  Not relevant for setters. */
35330
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35331
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35332
  false,  /* isTypedMethod.  Only relevant for methods. */
35333
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35334
};
35335
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35336
static_assert(0 < 1, "There is no slot for us");
35337
35338
MOZ_CAN_RUN_SCRIPT static bool
35339
get_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35340
0
{
35341
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationIterationCount", DOM, cx);
35342
0
35343
0
  FastErrorResult rv;
35344
0
  DOMString result;
35345
0
  self->GetMozAnimationIterationCount(result, rv);
35346
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35347
0
    return false;
35348
0
  }
35349
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35350
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35351
0
    return false;
35352
0
  }
35353
0
  return true;
35354
0
}
35355
35356
MOZ_CAN_RUN_SCRIPT static bool
35357
set_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35358
0
{
35359
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationIterationCount", DOM, cx);
35360
0
35361
0
  binding_detail::FakeString arg0;
35362
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35363
0
    return false;
35364
0
  }
35365
0
  Maybe<AutoCEReaction> ceReaction;
35366
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35367
0
    DocGroup* docGroup = self->GetDocGroup();
35368
0
    if (docGroup) {
35369
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35370
0
    }
35371
0
  }
35372
0
  FastErrorResult rv;
35373
0
  nsIPrincipal* subjectPrincipal;
35374
0
  {
35375
0
    JS::Realm* realm = js::GetContextRealm(cx);
35376
0
    MOZ_ASSERT(realm);
35377
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35378
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35379
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35380
0
      principal = nullptr;
35381
0
    }
35382
0
35383
0
    subjectPrincipal = principal;
35384
0
  }
35385
0
  self->SetMozAnimationIterationCount(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35386
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35387
0
    return false;
35388
0
  }
35389
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35390
0
35391
0
  return true;
35392
0
}
35393
35394
static const JSJitInfo MozAnimationIterationCount_getterinfo = {
35395
  { (JSJitGetterOp)get_MozAnimationIterationCount },
35396
  { prototypes::id::CSS2Properties },
35397
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35398
  JSJitInfo::Getter,
35399
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35400
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35401
  false,  /* isInfallible. False in setters. */
35402
  false,  /* isMovable.  Not relevant for setters. */
35403
  false, /* isEliminatable.  Not relevant for setters. */
35404
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35405
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35406
  false,  /* isTypedMethod.  Only relevant for methods. */
35407
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35408
};
35409
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35410
static_assert(0 < 1, "There is no slot for us");
35411
static const JSJitInfo MozAnimationIterationCount_setterinfo = {
35412
  { (JSJitGetterOp)set_MozAnimationIterationCount },
35413
  { prototypes::id::CSS2Properties },
35414
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35415
  JSJitInfo::Setter,
35416
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35417
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35418
  false,  /* isInfallible. False in setters. */
35419
  false,  /* isMovable.  Not relevant for setters. */
35420
  false, /* isEliminatable.  Not relevant for setters. */
35421
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35422
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35423
  false,  /* isTypedMethod.  Only relevant for methods. */
35424
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35425
};
35426
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35427
static_assert(0 < 1, "There is no slot for us");
35428
35429
MOZ_CAN_RUN_SCRIPT static bool
35430
get_webkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35431
0
{
35432
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationIterationCount", DOM, cx);
35433
0
35434
0
  FastErrorResult rv;
35435
0
  DOMString result;
35436
0
  self->GetWebkitAnimationIterationCount(result, rv);
35437
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35438
0
    return false;
35439
0
  }
35440
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35441
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35442
0
    return false;
35443
0
  }
35444
0
  return true;
35445
0
}
35446
35447
MOZ_CAN_RUN_SCRIPT static bool
35448
set_webkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35449
0
{
35450
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationIterationCount", DOM, cx);
35451
0
35452
0
  binding_detail::FakeString arg0;
35453
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35454
0
    return false;
35455
0
  }
35456
0
  Maybe<AutoCEReaction> ceReaction;
35457
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35458
0
    DocGroup* docGroup = self->GetDocGroup();
35459
0
    if (docGroup) {
35460
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35461
0
    }
35462
0
  }
35463
0
  FastErrorResult rv;
35464
0
  nsIPrincipal* subjectPrincipal;
35465
0
  {
35466
0
    JS::Realm* realm = js::GetContextRealm(cx);
35467
0
    MOZ_ASSERT(realm);
35468
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35469
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35470
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35471
0
      principal = nullptr;
35472
0
    }
35473
0
35474
0
    subjectPrincipal = principal;
35475
0
  }
35476
0
  self->SetWebkitAnimationIterationCount(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35477
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35478
0
    return false;
35479
0
  }
35480
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35481
0
35482
0
  return true;
35483
0
}
35484
35485
static const JSJitInfo webkitAnimationIterationCount_getterinfo = {
35486
  { (JSJitGetterOp)get_webkitAnimationIterationCount },
35487
  { prototypes::id::CSS2Properties },
35488
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35489
  JSJitInfo::Getter,
35490
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35491
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35492
  false,  /* isInfallible. False in setters. */
35493
  false,  /* isMovable.  Not relevant for setters. */
35494
  false, /* isEliminatable.  Not relevant for setters. */
35495
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35496
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35497
  false,  /* isTypedMethod.  Only relevant for methods. */
35498
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35499
};
35500
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35501
static_assert(0 < 1, "There is no slot for us");
35502
static const JSJitInfo webkitAnimationIterationCount_setterinfo = {
35503
  { (JSJitGetterOp)set_webkitAnimationIterationCount },
35504
  { prototypes::id::CSS2Properties },
35505
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35506
  JSJitInfo::Setter,
35507
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35508
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35509
  false,  /* isInfallible. False in setters. */
35510
  false,  /* isMovable.  Not relevant for setters. */
35511
  false, /* isEliminatable.  Not relevant for setters. */
35512
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35513
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35514
  false,  /* isTypedMethod.  Only relevant for methods. */
35515
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35516
};
35517
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35518
static_assert(0 < 1, "There is no slot for us");
35519
35520
MOZ_CAN_RUN_SCRIPT static bool
35521
get_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35522
0
{
35523
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationDirection", DOM, cx);
35524
0
35525
0
  FastErrorResult rv;
35526
0
  DOMString result;
35527
0
  self->GetMozAnimationDirection(result, rv);
35528
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35529
0
    return false;
35530
0
  }
35531
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35532
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35533
0
    return false;
35534
0
  }
35535
0
  return true;
35536
0
}
35537
35538
MOZ_CAN_RUN_SCRIPT static bool
35539
set_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35540
0
{
35541
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationDirection", DOM, cx);
35542
0
35543
0
  binding_detail::FakeString arg0;
35544
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35545
0
    return false;
35546
0
  }
35547
0
  Maybe<AutoCEReaction> ceReaction;
35548
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35549
0
    DocGroup* docGroup = self->GetDocGroup();
35550
0
    if (docGroup) {
35551
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35552
0
    }
35553
0
  }
35554
0
  FastErrorResult rv;
35555
0
  nsIPrincipal* subjectPrincipal;
35556
0
  {
35557
0
    JS::Realm* realm = js::GetContextRealm(cx);
35558
0
    MOZ_ASSERT(realm);
35559
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35560
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35561
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35562
0
      principal = nullptr;
35563
0
    }
35564
0
35565
0
    subjectPrincipal = principal;
35566
0
  }
35567
0
  self->SetMozAnimationDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35568
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35569
0
    return false;
35570
0
  }
35571
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35572
0
35573
0
  return true;
35574
0
}
35575
35576
static const JSJitInfo MozAnimationDirection_getterinfo = {
35577
  { (JSJitGetterOp)get_MozAnimationDirection },
35578
  { prototypes::id::CSS2Properties },
35579
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35580
  JSJitInfo::Getter,
35581
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35582
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35583
  false,  /* isInfallible. False in setters. */
35584
  false,  /* isMovable.  Not relevant for setters. */
35585
  false, /* isEliminatable.  Not relevant for setters. */
35586
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35587
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35588
  false,  /* isTypedMethod.  Only relevant for methods. */
35589
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35590
};
35591
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35592
static_assert(0 < 1, "There is no slot for us");
35593
static const JSJitInfo MozAnimationDirection_setterinfo = {
35594
  { (JSJitGetterOp)set_MozAnimationDirection },
35595
  { prototypes::id::CSS2Properties },
35596
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35597
  JSJitInfo::Setter,
35598
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35599
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35600
  false,  /* isInfallible. False in setters. */
35601
  false,  /* isMovable.  Not relevant for setters. */
35602
  false, /* isEliminatable.  Not relevant for setters. */
35603
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35604
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35605
  false,  /* isTypedMethod.  Only relevant for methods. */
35606
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35607
};
35608
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35609
static_assert(0 < 1, "There is no slot for us");
35610
35611
MOZ_CAN_RUN_SCRIPT static bool
35612
get_webkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35613
0
{
35614
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationDirection", DOM, cx);
35615
0
35616
0
  FastErrorResult rv;
35617
0
  DOMString result;
35618
0
  self->GetWebkitAnimationDirection(result, rv);
35619
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35620
0
    return false;
35621
0
  }
35622
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35623
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35624
0
    return false;
35625
0
  }
35626
0
  return true;
35627
0
}
35628
35629
MOZ_CAN_RUN_SCRIPT static bool
35630
set_webkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35631
0
{
35632
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationDirection", DOM, cx);
35633
0
35634
0
  binding_detail::FakeString arg0;
35635
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35636
0
    return false;
35637
0
  }
35638
0
  Maybe<AutoCEReaction> ceReaction;
35639
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35640
0
    DocGroup* docGroup = self->GetDocGroup();
35641
0
    if (docGroup) {
35642
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35643
0
    }
35644
0
  }
35645
0
  FastErrorResult rv;
35646
0
  nsIPrincipal* subjectPrincipal;
35647
0
  {
35648
0
    JS::Realm* realm = js::GetContextRealm(cx);
35649
0
    MOZ_ASSERT(realm);
35650
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35651
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35652
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35653
0
      principal = nullptr;
35654
0
    }
35655
0
35656
0
    subjectPrincipal = principal;
35657
0
  }
35658
0
  self->SetWebkitAnimationDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35659
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35660
0
    return false;
35661
0
  }
35662
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35663
0
35664
0
  return true;
35665
0
}
35666
35667
static const JSJitInfo webkitAnimationDirection_getterinfo = {
35668
  { (JSJitGetterOp)get_webkitAnimationDirection },
35669
  { prototypes::id::CSS2Properties },
35670
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35671
  JSJitInfo::Getter,
35672
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35673
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35674
  false,  /* isInfallible. False in setters. */
35675
  false,  /* isMovable.  Not relevant for setters. */
35676
  false, /* isEliminatable.  Not relevant for setters. */
35677
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35678
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35679
  false,  /* isTypedMethod.  Only relevant for methods. */
35680
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35681
};
35682
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35683
static_assert(0 < 1, "There is no slot for us");
35684
static const JSJitInfo webkitAnimationDirection_setterinfo = {
35685
  { (JSJitGetterOp)set_webkitAnimationDirection },
35686
  { prototypes::id::CSS2Properties },
35687
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35688
  JSJitInfo::Setter,
35689
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35690
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35691
  false,  /* isInfallible. False in setters. */
35692
  false,  /* isMovable.  Not relevant for setters. */
35693
  false, /* isEliminatable.  Not relevant for setters. */
35694
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35695
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35696
  false,  /* isTypedMethod.  Only relevant for methods. */
35697
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35698
};
35699
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35700
static_assert(0 < 1, "There is no slot for us");
35701
35702
MOZ_CAN_RUN_SCRIPT static bool
35703
get_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35704
0
{
35705
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationPlayState", DOM, cx);
35706
0
35707
0
  FastErrorResult rv;
35708
0
  DOMString result;
35709
0
  self->GetMozAnimationPlayState(result, rv);
35710
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35711
0
    return false;
35712
0
  }
35713
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35714
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35715
0
    return false;
35716
0
  }
35717
0
  return true;
35718
0
}
35719
35720
MOZ_CAN_RUN_SCRIPT static bool
35721
set_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35722
0
{
35723
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationPlayState", DOM, cx);
35724
0
35725
0
  binding_detail::FakeString arg0;
35726
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35727
0
    return false;
35728
0
  }
35729
0
  Maybe<AutoCEReaction> ceReaction;
35730
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35731
0
    DocGroup* docGroup = self->GetDocGroup();
35732
0
    if (docGroup) {
35733
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35734
0
    }
35735
0
  }
35736
0
  FastErrorResult rv;
35737
0
  nsIPrincipal* subjectPrincipal;
35738
0
  {
35739
0
    JS::Realm* realm = js::GetContextRealm(cx);
35740
0
    MOZ_ASSERT(realm);
35741
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35742
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35743
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35744
0
      principal = nullptr;
35745
0
    }
35746
0
35747
0
    subjectPrincipal = principal;
35748
0
  }
35749
0
  self->SetMozAnimationPlayState(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35750
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35751
0
    return false;
35752
0
  }
35753
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35754
0
35755
0
  return true;
35756
0
}
35757
35758
static const JSJitInfo MozAnimationPlayState_getterinfo = {
35759
  { (JSJitGetterOp)get_MozAnimationPlayState },
35760
  { prototypes::id::CSS2Properties },
35761
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35762
  JSJitInfo::Getter,
35763
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35764
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35765
  false,  /* isInfallible. False in setters. */
35766
  false,  /* isMovable.  Not relevant for setters. */
35767
  false, /* isEliminatable.  Not relevant for setters. */
35768
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35769
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35770
  false,  /* isTypedMethod.  Only relevant for methods. */
35771
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35772
};
35773
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35774
static_assert(0 < 1, "There is no slot for us");
35775
static const JSJitInfo MozAnimationPlayState_setterinfo = {
35776
  { (JSJitGetterOp)set_MozAnimationPlayState },
35777
  { prototypes::id::CSS2Properties },
35778
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35779
  JSJitInfo::Setter,
35780
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35781
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35782
  false,  /* isInfallible. False in setters. */
35783
  false,  /* isMovable.  Not relevant for setters. */
35784
  false, /* isEliminatable.  Not relevant for setters. */
35785
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35786
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35787
  false,  /* isTypedMethod.  Only relevant for methods. */
35788
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35789
};
35790
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35791
static_assert(0 < 1, "There is no slot for us");
35792
35793
MOZ_CAN_RUN_SCRIPT static bool
35794
get_webkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35795
0
{
35796
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationPlayState", DOM, cx);
35797
0
35798
0
  FastErrorResult rv;
35799
0
  DOMString result;
35800
0
  self->GetWebkitAnimationPlayState(result, rv);
35801
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35802
0
    return false;
35803
0
  }
35804
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35805
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35806
0
    return false;
35807
0
  }
35808
0
  return true;
35809
0
}
35810
35811
MOZ_CAN_RUN_SCRIPT static bool
35812
set_webkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35813
0
{
35814
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationPlayState", DOM, cx);
35815
0
35816
0
  binding_detail::FakeString arg0;
35817
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35818
0
    return false;
35819
0
  }
35820
0
  Maybe<AutoCEReaction> ceReaction;
35821
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35822
0
    DocGroup* docGroup = self->GetDocGroup();
35823
0
    if (docGroup) {
35824
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35825
0
    }
35826
0
  }
35827
0
  FastErrorResult rv;
35828
0
  nsIPrincipal* subjectPrincipal;
35829
0
  {
35830
0
    JS::Realm* realm = js::GetContextRealm(cx);
35831
0
    MOZ_ASSERT(realm);
35832
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35833
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35834
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35835
0
      principal = nullptr;
35836
0
    }
35837
0
35838
0
    subjectPrincipal = principal;
35839
0
  }
35840
0
  self->SetWebkitAnimationPlayState(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35841
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35842
0
    return false;
35843
0
  }
35844
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35845
0
35846
0
  return true;
35847
0
}
35848
35849
static const JSJitInfo webkitAnimationPlayState_getterinfo = {
35850
  { (JSJitGetterOp)get_webkitAnimationPlayState },
35851
  { prototypes::id::CSS2Properties },
35852
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35853
  JSJitInfo::Getter,
35854
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35855
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35856
  false,  /* isInfallible. False in setters. */
35857
  false,  /* isMovable.  Not relevant for setters. */
35858
  false, /* isEliminatable.  Not relevant for setters. */
35859
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35860
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35861
  false,  /* isTypedMethod.  Only relevant for methods. */
35862
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35863
};
35864
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35865
static_assert(0 < 1, "There is no slot for us");
35866
static const JSJitInfo webkitAnimationPlayState_setterinfo = {
35867
  { (JSJitGetterOp)set_webkitAnimationPlayState },
35868
  { prototypes::id::CSS2Properties },
35869
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35870
  JSJitInfo::Setter,
35871
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35872
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35873
  false,  /* isInfallible. False in setters. */
35874
  false,  /* isMovable.  Not relevant for setters. */
35875
  false, /* isEliminatable.  Not relevant for setters. */
35876
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35877
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35878
  false,  /* isTypedMethod.  Only relevant for methods. */
35879
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35880
};
35881
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35882
static_assert(0 < 1, "There is no slot for us");
35883
35884
MOZ_CAN_RUN_SCRIPT static bool
35885
get_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35886
0
{
35887
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationFillMode", DOM, cx);
35888
0
35889
0
  FastErrorResult rv;
35890
0
  DOMString result;
35891
0
  self->GetMozAnimationFillMode(result, rv);
35892
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35893
0
    return false;
35894
0
  }
35895
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35896
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35897
0
    return false;
35898
0
  }
35899
0
  return true;
35900
0
}
35901
35902
MOZ_CAN_RUN_SCRIPT static bool
35903
set_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35904
0
{
35905
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationFillMode", DOM, cx);
35906
0
35907
0
  binding_detail::FakeString arg0;
35908
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
35909
0
    return false;
35910
0
  }
35911
0
  Maybe<AutoCEReaction> ceReaction;
35912
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
35913
0
    DocGroup* docGroup = self->GetDocGroup();
35914
0
    if (docGroup) {
35915
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
35916
0
    }
35917
0
  }
35918
0
  FastErrorResult rv;
35919
0
  nsIPrincipal* subjectPrincipal;
35920
0
  {
35921
0
    JS::Realm* realm = js::GetContextRealm(cx);
35922
0
    MOZ_ASSERT(realm);
35923
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
35924
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
35925
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
35926
0
      principal = nullptr;
35927
0
    }
35928
0
35929
0
    subjectPrincipal = principal;
35930
0
  }
35931
0
  self->SetMozAnimationFillMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
35932
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35933
0
    return false;
35934
0
  }
35935
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35936
0
35937
0
  return true;
35938
0
}
35939
35940
static const JSJitInfo MozAnimationFillMode_getterinfo = {
35941
  { (JSJitGetterOp)get_MozAnimationFillMode },
35942
  { prototypes::id::CSS2Properties },
35943
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35944
  JSJitInfo::Getter,
35945
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35946
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
35947
  false,  /* isInfallible. False in setters. */
35948
  false,  /* isMovable.  Not relevant for setters. */
35949
  false, /* isEliminatable.  Not relevant for setters. */
35950
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35951
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35952
  false,  /* isTypedMethod.  Only relevant for methods. */
35953
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35954
};
35955
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35956
static_assert(0 < 1, "There is no slot for us");
35957
static const JSJitInfo MozAnimationFillMode_setterinfo = {
35958
  { (JSJitGetterOp)set_MozAnimationFillMode },
35959
  { prototypes::id::CSS2Properties },
35960
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
35961
  JSJitInfo::Setter,
35962
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
35963
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
35964
  false,  /* isInfallible. False in setters. */
35965
  false,  /* isMovable.  Not relevant for setters. */
35966
  false, /* isEliminatable.  Not relevant for setters. */
35967
  false, /* isAlwaysInSlot.  Only relevant for getters. */
35968
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
35969
  false,  /* isTypedMethod.  Only relevant for methods. */
35970
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
35971
};
35972
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
35973
static_assert(0 < 1, "There is no slot for us");
35974
35975
MOZ_CAN_RUN_SCRIPT static bool
35976
get_webkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
35977
0
{
35978
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationFillMode", DOM, cx);
35979
0
35980
0
  FastErrorResult rv;
35981
0
  DOMString result;
35982
0
  self->GetWebkitAnimationFillMode(result, rv);
35983
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
35984
0
    return false;
35985
0
  }
35986
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
35987
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
35988
0
    return false;
35989
0
  }
35990
0
  return true;
35991
0
}
35992
35993
MOZ_CAN_RUN_SCRIPT static bool
35994
set_webkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
35995
0
{
35996
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationFillMode", DOM, cx);
35997
0
35998
0
  binding_detail::FakeString arg0;
35999
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36000
0
    return false;
36001
0
  }
36002
0
  Maybe<AutoCEReaction> ceReaction;
36003
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36004
0
    DocGroup* docGroup = self->GetDocGroup();
36005
0
    if (docGroup) {
36006
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36007
0
    }
36008
0
  }
36009
0
  FastErrorResult rv;
36010
0
  nsIPrincipal* subjectPrincipal;
36011
0
  {
36012
0
    JS::Realm* realm = js::GetContextRealm(cx);
36013
0
    MOZ_ASSERT(realm);
36014
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36015
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36016
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36017
0
      principal = nullptr;
36018
0
    }
36019
0
36020
0
    subjectPrincipal = principal;
36021
0
  }
36022
0
  self->SetWebkitAnimationFillMode(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36023
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36024
0
    return false;
36025
0
  }
36026
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36027
0
36028
0
  return true;
36029
0
}
36030
36031
static const JSJitInfo webkitAnimationFillMode_getterinfo = {
36032
  { (JSJitGetterOp)get_webkitAnimationFillMode },
36033
  { prototypes::id::CSS2Properties },
36034
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36035
  JSJitInfo::Getter,
36036
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36037
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36038
  false,  /* isInfallible. False in setters. */
36039
  false,  /* isMovable.  Not relevant for setters. */
36040
  false, /* isEliminatable.  Not relevant for setters. */
36041
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36042
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36043
  false,  /* isTypedMethod.  Only relevant for methods. */
36044
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36045
};
36046
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36047
static_assert(0 < 1, "There is no slot for us");
36048
static const JSJitInfo webkitAnimationFillMode_setterinfo = {
36049
  { (JSJitGetterOp)set_webkitAnimationFillMode },
36050
  { prototypes::id::CSS2Properties },
36051
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36052
  JSJitInfo::Setter,
36053
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36054
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36055
  false,  /* isInfallible. False in setters. */
36056
  false,  /* isMovable.  Not relevant for setters. */
36057
  false, /* isEliminatable.  Not relevant for setters. */
36058
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36059
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36060
  false,  /* isTypedMethod.  Only relevant for methods. */
36061
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36062
};
36063
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36064
static_assert(0 < 1, "There is no slot for us");
36065
36066
MOZ_CAN_RUN_SCRIPT static bool
36067
get_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36068
0
{
36069
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimationDelay", DOM, cx);
36070
0
36071
0
  FastErrorResult rv;
36072
0
  DOMString result;
36073
0
  self->GetMozAnimationDelay(result, rv);
36074
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36075
0
    return false;
36076
0
  }
36077
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36078
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36079
0
    return false;
36080
0
  }
36081
0
  return true;
36082
0
}
36083
36084
MOZ_CAN_RUN_SCRIPT static bool
36085
set_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36086
0
{
36087
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimationDelay", DOM, cx);
36088
0
36089
0
  binding_detail::FakeString arg0;
36090
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36091
0
    return false;
36092
0
  }
36093
0
  Maybe<AutoCEReaction> ceReaction;
36094
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36095
0
    DocGroup* docGroup = self->GetDocGroup();
36096
0
    if (docGroup) {
36097
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36098
0
    }
36099
0
  }
36100
0
  FastErrorResult rv;
36101
0
  nsIPrincipal* subjectPrincipal;
36102
0
  {
36103
0
    JS::Realm* realm = js::GetContextRealm(cx);
36104
0
    MOZ_ASSERT(realm);
36105
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36106
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36107
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36108
0
      principal = nullptr;
36109
0
    }
36110
0
36111
0
    subjectPrincipal = principal;
36112
0
  }
36113
0
  self->SetMozAnimationDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36114
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36115
0
    return false;
36116
0
  }
36117
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36118
0
36119
0
  return true;
36120
0
}
36121
36122
static const JSJitInfo MozAnimationDelay_getterinfo = {
36123
  { (JSJitGetterOp)get_MozAnimationDelay },
36124
  { prototypes::id::CSS2Properties },
36125
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36126
  JSJitInfo::Getter,
36127
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36128
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36129
  false,  /* isInfallible. False in setters. */
36130
  false,  /* isMovable.  Not relevant for setters. */
36131
  false, /* isEliminatable.  Not relevant for setters. */
36132
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36133
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36134
  false,  /* isTypedMethod.  Only relevant for methods. */
36135
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36136
};
36137
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36138
static_assert(0 < 1, "There is no slot for us");
36139
static const JSJitInfo MozAnimationDelay_setterinfo = {
36140
  { (JSJitGetterOp)set_MozAnimationDelay },
36141
  { prototypes::id::CSS2Properties },
36142
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36143
  JSJitInfo::Setter,
36144
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36145
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36146
  false,  /* isInfallible. False in setters. */
36147
  false,  /* isMovable.  Not relevant for setters. */
36148
  false, /* isEliminatable.  Not relevant for setters. */
36149
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36150
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36151
  false,  /* isTypedMethod.  Only relevant for methods. */
36152
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36153
};
36154
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36155
static_assert(0 < 1, "There is no slot for us");
36156
36157
MOZ_CAN_RUN_SCRIPT static bool
36158
get_webkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36159
0
{
36160
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimationDelay", DOM, cx);
36161
0
36162
0
  FastErrorResult rv;
36163
0
  DOMString result;
36164
0
  self->GetWebkitAnimationDelay(result, rv);
36165
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36166
0
    return false;
36167
0
  }
36168
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36169
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36170
0
    return false;
36171
0
  }
36172
0
  return true;
36173
0
}
36174
36175
MOZ_CAN_RUN_SCRIPT static bool
36176
set_webkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36177
0
{
36178
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimationDelay", DOM, cx);
36179
0
36180
0
  binding_detail::FakeString arg0;
36181
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36182
0
    return false;
36183
0
  }
36184
0
  Maybe<AutoCEReaction> ceReaction;
36185
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36186
0
    DocGroup* docGroup = self->GetDocGroup();
36187
0
    if (docGroup) {
36188
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36189
0
    }
36190
0
  }
36191
0
  FastErrorResult rv;
36192
0
  nsIPrincipal* subjectPrincipal;
36193
0
  {
36194
0
    JS::Realm* realm = js::GetContextRealm(cx);
36195
0
    MOZ_ASSERT(realm);
36196
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36197
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36198
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36199
0
      principal = nullptr;
36200
0
    }
36201
0
36202
0
    subjectPrincipal = principal;
36203
0
  }
36204
0
  self->SetWebkitAnimationDelay(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36205
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36206
0
    return false;
36207
0
  }
36208
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36209
0
36210
0
  return true;
36211
0
}
36212
36213
static const JSJitInfo webkitAnimationDelay_getterinfo = {
36214
  { (JSJitGetterOp)get_webkitAnimationDelay },
36215
  { prototypes::id::CSS2Properties },
36216
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36217
  JSJitInfo::Getter,
36218
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36219
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36220
  false,  /* isInfallible. False in setters. */
36221
  false,  /* isMovable.  Not relevant for setters. */
36222
  false, /* isEliminatable.  Not relevant for setters. */
36223
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36224
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36225
  false,  /* isTypedMethod.  Only relevant for methods. */
36226
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36227
};
36228
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36229
static_assert(0 < 1, "There is no slot for us");
36230
static const JSJitInfo webkitAnimationDelay_setterinfo = {
36231
  { (JSJitGetterOp)set_webkitAnimationDelay },
36232
  { prototypes::id::CSS2Properties },
36233
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36234
  JSJitInfo::Setter,
36235
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36236
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36237
  false,  /* isInfallible. False in setters. */
36238
  false,  /* isMovable.  Not relevant for setters. */
36239
  false, /* isEliminatable.  Not relevant for setters. */
36240
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36241
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36242
  false,  /* isTypedMethod.  Only relevant for methods. */
36243
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36244
};
36245
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36246
static_assert(0 < 1, "There is no slot for us");
36247
36248
MOZ_CAN_RUN_SCRIPT static bool
36249
get_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36250
0
{
36251
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransform", DOM, cx);
36252
0
36253
0
  FastErrorResult rv;
36254
0
  DOMString result;
36255
0
  self->GetMozTransform(result, rv);
36256
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36257
0
    return false;
36258
0
  }
36259
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36260
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36261
0
    return false;
36262
0
  }
36263
0
  return true;
36264
0
}
36265
36266
MOZ_CAN_RUN_SCRIPT static bool
36267
set_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36268
0
{
36269
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransform", DOM, cx);
36270
0
36271
0
  binding_detail::FakeString arg0;
36272
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36273
0
    return false;
36274
0
  }
36275
0
  Maybe<AutoCEReaction> ceReaction;
36276
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36277
0
    DocGroup* docGroup = self->GetDocGroup();
36278
0
    if (docGroup) {
36279
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36280
0
    }
36281
0
  }
36282
0
  FastErrorResult rv;
36283
0
  nsIPrincipal* subjectPrincipal;
36284
0
  {
36285
0
    JS::Realm* realm = js::GetContextRealm(cx);
36286
0
    MOZ_ASSERT(realm);
36287
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36288
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36289
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36290
0
      principal = nullptr;
36291
0
    }
36292
0
36293
0
    subjectPrincipal = principal;
36294
0
  }
36295
0
  self->SetMozTransform(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36296
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36297
0
    return false;
36298
0
  }
36299
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36300
0
36301
0
  return true;
36302
0
}
36303
36304
static const JSJitInfo MozTransform_getterinfo = {
36305
  { (JSJitGetterOp)get_MozTransform },
36306
  { prototypes::id::CSS2Properties },
36307
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36308
  JSJitInfo::Getter,
36309
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36310
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36311
  false,  /* isInfallible. False in setters. */
36312
  false,  /* isMovable.  Not relevant for setters. */
36313
  false, /* isEliminatable.  Not relevant for setters. */
36314
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36315
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36316
  false,  /* isTypedMethod.  Only relevant for methods. */
36317
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36318
};
36319
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36320
static_assert(0 < 1, "There is no slot for us");
36321
static const JSJitInfo MozTransform_setterinfo = {
36322
  { (JSJitGetterOp)set_MozTransform },
36323
  { prototypes::id::CSS2Properties },
36324
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36325
  JSJitInfo::Setter,
36326
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36327
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36328
  false,  /* isInfallible. False in setters. */
36329
  false,  /* isMovable.  Not relevant for setters. */
36330
  false, /* isEliminatable.  Not relevant for setters. */
36331
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36332
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36333
  false,  /* isTypedMethod.  Only relevant for methods. */
36334
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36335
};
36336
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36337
static_assert(0 < 1, "There is no slot for us");
36338
36339
MOZ_CAN_RUN_SCRIPT static bool
36340
get_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36341
0
{
36342
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransform", DOM, cx);
36343
0
36344
0
  FastErrorResult rv;
36345
0
  DOMString result;
36346
0
  self->GetWebkitTransform(result, rv);
36347
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36348
0
    return false;
36349
0
  }
36350
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36351
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36352
0
    return false;
36353
0
  }
36354
0
  return true;
36355
0
}
36356
36357
MOZ_CAN_RUN_SCRIPT static bool
36358
set_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36359
0
{
36360
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransform", DOM, cx);
36361
0
36362
0
  binding_detail::FakeString arg0;
36363
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36364
0
    return false;
36365
0
  }
36366
0
  Maybe<AutoCEReaction> ceReaction;
36367
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36368
0
    DocGroup* docGroup = self->GetDocGroup();
36369
0
    if (docGroup) {
36370
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36371
0
    }
36372
0
  }
36373
0
  FastErrorResult rv;
36374
0
  nsIPrincipal* subjectPrincipal;
36375
0
  {
36376
0
    JS::Realm* realm = js::GetContextRealm(cx);
36377
0
    MOZ_ASSERT(realm);
36378
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36379
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36380
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36381
0
      principal = nullptr;
36382
0
    }
36383
0
36384
0
    subjectPrincipal = principal;
36385
0
  }
36386
0
  self->SetWebkitTransform(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36387
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36388
0
    return false;
36389
0
  }
36390
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36391
0
36392
0
  return true;
36393
0
}
36394
36395
static const JSJitInfo webkitTransform_getterinfo = {
36396
  { (JSJitGetterOp)get_webkitTransform },
36397
  { prototypes::id::CSS2Properties },
36398
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36399
  JSJitInfo::Getter,
36400
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36401
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36402
  false,  /* isInfallible. False in setters. */
36403
  false,  /* isMovable.  Not relevant for setters. */
36404
  false, /* isEliminatable.  Not relevant for setters. */
36405
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36406
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36407
  false,  /* isTypedMethod.  Only relevant for methods. */
36408
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36409
};
36410
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36411
static_assert(0 < 1, "There is no slot for us");
36412
static const JSJitInfo webkitTransform_setterinfo = {
36413
  { (JSJitGetterOp)set_webkitTransform },
36414
  { prototypes::id::CSS2Properties },
36415
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36416
  JSJitInfo::Setter,
36417
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36418
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36419
  false,  /* isInfallible. False in setters. */
36420
  false,  /* isMovable.  Not relevant for setters. */
36421
  false, /* isEliminatable.  Not relevant for setters. */
36422
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36423
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36424
  false,  /* isTypedMethod.  Only relevant for methods. */
36425
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36426
};
36427
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36428
static_assert(0 < 1, "There is no slot for us");
36429
36430
MOZ_CAN_RUN_SCRIPT static bool
36431
get_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36432
0
{
36433
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozPerspective", DOM, cx);
36434
0
36435
0
  FastErrorResult rv;
36436
0
  DOMString result;
36437
0
  self->GetMozPerspective(result, rv);
36438
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36439
0
    return false;
36440
0
  }
36441
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36442
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36443
0
    return false;
36444
0
  }
36445
0
  return true;
36446
0
}
36447
36448
MOZ_CAN_RUN_SCRIPT static bool
36449
set_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36450
0
{
36451
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozPerspective", DOM, cx);
36452
0
36453
0
  binding_detail::FakeString arg0;
36454
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36455
0
    return false;
36456
0
  }
36457
0
  Maybe<AutoCEReaction> ceReaction;
36458
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36459
0
    DocGroup* docGroup = self->GetDocGroup();
36460
0
    if (docGroup) {
36461
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36462
0
    }
36463
0
  }
36464
0
  FastErrorResult rv;
36465
0
  nsIPrincipal* subjectPrincipal;
36466
0
  {
36467
0
    JS::Realm* realm = js::GetContextRealm(cx);
36468
0
    MOZ_ASSERT(realm);
36469
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36470
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36471
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36472
0
      principal = nullptr;
36473
0
    }
36474
0
36475
0
    subjectPrincipal = principal;
36476
0
  }
36477
0
  self->SetMozPerspective(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36478
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36479
0
    return false;
36480
0
  }
36481
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36482
0
36483
0
  return true;
36484
0
}
36485
36486
static const JSJitInfo MozPerspective_getterinfo = {
36487
  { (JSJitGetterOp)get_MozPerspective },
36488
  { prototypes::id::CSS2Properties },
36489
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36490
  JSJitInfo::Getter,
36491
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36492
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36493
  false,  /* isInfallible. False in setters. */
36494
  false,  /* isMovable.  Not relevant for setters. */
36495
  false, /* isEliminatable.  Not relevant for setters. */
36496
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36497
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36498
  false,  /* isTypedMethod.  Only relevant for methods. */
36499
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36500
};
36501
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36502
static_assert(0 < 1, "There is no slot for us");
36503
static const JSJitInfo MozPerspective_setterinfo = {
36504
  { (JSJitGetterOp)set_MozPerspective },
36505
  { prototypes::id::CSS2Properties },
36506
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36507
  JSJitInfo::Setter,
36508
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36509
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36510
  false,  /* isInfallible. False in setters. */
36511
  false,  /* isMovable.  Not relevant for setters. */
36512
  false, /* isEliminatable.  Not relevant for setters. */
36513
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36514
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36515
  false,  /* isTypedMethod.  Only relevant for methods. */
36516
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36517
};
36518
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36519
static_assert(0 < 1, "There is no slot for us");
36520
36521
MOZ_CAN_RUN_SCRIPT static bool
36522
get_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36523
0
{
36524
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitPerspective", DOM, cx);
36525
0
36526
0
  FastErrorResult rv;
36527
0
  DOMString result;
36528
0
  self->GetWebkitPerspective(result, rv);
36529
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36530
0
    return false;
36531
0
  }
36532
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36533
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36534
0
    return false;
36535
0
  }
36536
0
  return true;
36537
0
}
36538
36539
MOZ_CAN_RUN_SCRIPT static bool
36540
set_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36541
0
{
36542
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitPerspective", DOM, cx);
36543
0
36544
0
  binding_detail::FakeString arg0;
36545
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36546
0
    return false;
36547
0
  }
36548
0
  Maybe<AutoCEReaction> ceReaction;
36549
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36550
0
    DocGroup* docGroup = self->GetDocGroup();
36551
0
    if (docGroup) {
36552
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36553
0
    }
36554
0
  }
36555
0
  FastErrorResult rv;
36556
0
  nsIPrincipal* subjectPrincipal;
36557
0
  {
36558
0
    JS::Realm* realm = js::GetContextRealm(cx);
36559
0
    MOZ_ASSERT(realm);
36560
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36561
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36562
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36563
0
      principal = nullptr;
36564
0
    }
36565
0
36566
0
    subjectPrincipal = principal;
36567
0
  }
36568
0
  self->SetWebkitPerspective(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36569
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36570
0
    return false;
36571
0
  }
36572
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36573
0
36574
0
  return true;
36575
0
}
36576
36577
static const JSJitInfo webkitPerspective_getterinfo = {
36578
  { (JSJitGetterOp)get_webkitPerspective },
36579
  { prototypes::id::CSS2Properties },
36580
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36581
  JSJitInfo::Getter,
36582
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36583
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36584
  false,  /* isInfallible. False in setters. */
36585
  false,  /* isMovable.  Not relevant for setters. */
36586
  false, /* isEliminatable.  Not relevant for setters. */
36587
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36588
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36589
  false,  /* isTypedMethod.  Only relevant for methods. */
36590
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36591
};
36592
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36593
static_assert(0 < 1, "There is no slot for us");
36594
static const JSJitInfo webkitPerspective_setterinfo = {
36595
  { (JSJitGetterOp)set_webkitPerspective },
36596
  { prototypes::id::CSS2Properties },
36597
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36598
  JSJitInfo::Setter,
36599
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36600
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36601
  false,  /* isInfallible. False in setters. */
36602
  false,  /* isMovable.  Not relevant for setters. */
36603
  false, /* isEliminatable.  Not relevant for setters. */
36604
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36605
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36606
  false,  /* isTypedMethod.  Only relevant for methods. */
36607
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36608
};
36609
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36610
static_assert(0 < 1, "There is no slot for us");
36611
36612
MOZ_CAN_RUN_SCRIPT static bool
36613
get_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36614
0
{
36615
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozPerspectiveOrigin", DOM, cx);
36616
0
36617
0
  FastErrorResult rv;
36618
0
  DOMString result;
36619
0
  self->GetMozPerspectiveOrigin(result, rv);
36620
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36621
0
    return false;
36622
0
  }
36623
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36624
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36625
0
    return false;
36626
0
  }
36627
0
  return true;
36628
0
}
36629
36630
MOZ_CAN_RUN_SCRIPT static bool
36631
set_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36632
0
{
36633
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozPerspectiveOrigin", DOM, cx);
36634
0
36635
0
  binding_detail::FakeString arg0;
36636
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36637
0
    return false;
36638
0
  }
36639
0
  Maybe<AutoCEReaction> ceReaction;
36640
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36641
0
    DocGroup* docGroup = self->GetDocGroup();
36642
0
    if (docGroup) {
36643
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36644
0
    }
36645
0
  }
36646
0
  FastErrorResult rv;
36647
0
  nsIPrincipal* subjectPrincipal;
36648
0
  {
36649
0
    JS::Realm* realm = js::GetContextRealm(cx);
36650
0
    MOZ_ASSERT(realm);
36651
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36652
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36653
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36654
0
      principal = nullptr;
36655
0
    }
36656
0
36657
0
    subjectPrincipal = principal;
36658
0
  }
36659
0
  self->SetMozPerspectiveOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36660
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36661
0
    return false;
36662
0
  }
36663
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36664
0
36665
0
  return true;
36666
0
}
36667
36668
static const JSJitInfo MozPerspectiveOrigin_getterinfo = {
36669
  { (JSJitGetterOp)get_MozPerspectiveOrigin },
36670
  { prototypes::id::CSS2Properties },
36671
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36672
  JSJitInfo::Getter,
36673
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36674
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36675
  false,  /* isInfallible. False in setters. */
36676
  false,  /* isMovable.  Not relevant for setters. */
36677
  false, /* isEliminatable.  Not relevant for setters. */
36678
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36679
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36680
  false,  /* isTypedMethod.  Only relevant for methods. */
36681
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36682
};
36683
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36684
static_assert(0 < 1, "There is no slot for us");
36685
static const JSJitInfo MozPerspectiveOrigin_setterinfo = {
36686
  { (JSJitGetterOp)set_MozPerspectiveOrigin },
36687
  { prototypes::id::CSS2Properties },
36688
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36689
  JSJitInfo::Setter,
36690
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36691
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36692
  false,  /* isInfallible. False in setters. */
36693
  false,  /* isMovable.  Not relevant for setters. */
36694
  false, /* isEliminatable.  Not relevant for setters. */
36695
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36696
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36697
  false,  /* isTypedMethod.  Only relevant for methods. */
36698
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36699
};
36700
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36701
static_assert(0 < 1, "There is no slot for us");
36702
36703
MOZ_CAN_RUN_SCRIPT static bool
36704
get_webkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36705
0
{
36706
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitPerspectiveOrigin", DOM, cx);
36707
0
36708
0
  FastErrorResult rv;
36709
0
  DOMString result;
36710
0
  self->GetWebkitPerspectiveOrigin(result, rv);
36711
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36712
0
    return false;
36713
0
  }
36714
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36715
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36716
0
    return false;
36717
0
  }
36718
0
  return true;
36719
0
}
36720
36721
MOZ_CAN_RUN_SCRIPT static bool
36722
set_webkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36723
0
{
36724
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitPerspectiveOrigin", DOM, cx);
36725
0
36726
0
  binding_detail::FakeString arg0;
36727
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36728
0
    return false;
36729
0
  }
36730
0
  Maybe<AutoCEReaction> ceReaction;
36731
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36732
0
    DocGroup* docGroup = self->GetDocGroup();
36733
0
    if (docGroup) {
36734
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36735
0
    }
36736
0
  }
36737
0
  FastErrorResult rv;
36738
0
  nsIPrincipal* subjectPrincipal;
36739
0
  {
36740
0
    JS::Realm* realm = js::GetContextRealm(cx);
36741
0
    MOZ_ASSERT(realm);
36742
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36743
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36744
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36745
0
      principal = nullptr;
36746
0
    }
36747
0
36748
0
    subjectPrincipal = principal;
36749
0
  }
36750
0
  self->SetWebkitPerspectiveOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36751
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36752
0
    return false;
36753
0
  }
36754
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36755
0
36756
0
  return true;
36757
0
}
36758
36759
static const JSJitInfo webkitPerspectiveOrigin_getterinfo = {
36760
  { (JSJitGetterOp)get_webkitPerspectiveOrigin },
36761
  { prototypes::id::CSS2Properties },
36762
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36763
  JSJitInfo::Getter,
36764
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36765
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36766
  false,  /* isInfallible. False in setters. */
36767
  false,  /* isMovable.  Not relevant for setters. */
36768
  false, /* isEliminatable.  Not relevant for setters. */
36769
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36770
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36771
  false,  /* isTypedMethod.  Only relevant for methods. */
36772
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36773
};
36774
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36775
static_assert(0 < 1, "There is no slot for us");
36776
static const JSJitInfo webkitPerspectiveOrigin_setterinfo = {
36777
  { (JSJitGetterOp)set_webkitPerspectiveOrigin },
36778
  { prototypes::id::CSS2Properties },
36779
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36780
  JSJitInfo::Setter,
36781
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36782
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36783
  false,  /* isInfallible. False in setters. */
36784
  false,  /* isMovable.  Not relevant for setters. */
36785
  false, /* isEliminatable.  Not relevant for setters. */
36786
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36787
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36788
  false,  /* isTypedMethod.  Only relevant for methods. */
36789
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36790
};
36791
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36792
static_assert(0 < 1, "There is no slot for us");
36793
36794
MOZ_CAN_RUN_SCRIPT static bool
36795
get_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36796
0
{
36797
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBackfaceVisibility", DOM, cx);
36798
0
36799
0
  FastErrorResult rv;
36800
0
  DOMString result;
36801
0
  self->GetMozBackfaceVisibility(result, rv);
36802
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36803
0
    return false;
36804
0
  }
36805
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36806
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36807
0
    return false;
36808
0
  }
36809
0
  return true;
36810
0
}
36811
36812
MOZ_CAN_RUN_SCRIPT static bool
36813
set_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36814
0
{
36815
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBackfaceVisibility", DOM, cx);
36816
0
36817
0
  binding_detail::FakeString arg0;
36818
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36819
0
    return false;
36820
0
  }
36821
0
  Maybe<AutoCEReaction> ceReaction;
36822
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36823
0
    DocGroup* docGroup = self->GetDocGroup();
36824
0
    if (docGroup) {
36825
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36826
0
    }
36827
0
  }
36828
0
  FastErrorResult rv;
36829
0
  nsIPrincipal* subjectPrincipal;
36830
0
  {
36831
0
    JS::Realm* realm = js::GetContextRealm(cx);
36832
0
    MOZ_ASSERT(realm);
36833
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36834
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36835
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36836
0
      principal = nullptr;
36837
0
    }
36838
0
36839
0
    subjectPrincipal = principal;
36840
0
  }
36841
0
  self->SetMozBackfaceVisibility(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36842
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36843
0
    return false;
36844
0
  }
36845
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36846
0
36847
0
  return true;
36848
0
}
36849
36850
static const JSJitInfo MozBackfaceVisibility_getterinfo = {
36851
  { (JSJitGetterOp)get_MozBackfaceVisibility },
36852
  { prototypes::id::CSS2Properties },
36853
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36854
  JSJitInfo::Getter,
36855
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36856
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36857
  false,  /* isInfallible. False in setters. */
36858
  false,  /* isMovable.  Not relevant for setters. */
36859
  false, /* isEliminatable.  Not relevant for setters. */
36860
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36861
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36862
  false,  /* isTypedMethod.  Only relevant for methods. */
36863
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36864
};
36865
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36866
static_assert(0 < 1, "There is no slot for us");
36867
static const JSJitInfo MozBackfaceVisibility_setterinfo = {
36868
  { (JSJitGetterOp)set_MozBackfaceVisibility },
36869
  { prototypes::id::CSS2Properties },
36870
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36871
  JSJitInfo::Setter,
36872
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36873
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36874
  false,  /* isInfallible. False in setters. */
36875
  false,  /* isMovable.  Not relevant for setters. */
36876
  false, /* isEliminatable.  Not relevant for setters. */
36877
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36878
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36879
  false,  /* isTypedMethod.  Only relevant for methods. */
36880
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36881
};
36882
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36883
static_assert(0 < 1, "There is no slot for us");
36884
36885
MOZ_CAN_RUN_SCRIPT static bool
36886
get_webkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36887
0
{
36888
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBackfaceVisibility", DOM, cx);
36889
0
36890
0
  FastErrorResult rv;
36891
0
  DOMString result;
36892
0
  self->GetWebkitBackfaceVisibility(result, rv);
36893
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36894
0
    return false;
36895
0
  }
36896
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36897
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36898
0
    return false;
36899
0
  }
36900
0
  return true;
36901
0
}
36902
36903
MOZ_CAN_RUN_SCRIPT static bool
36904
set_webkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36905
0
{
36906
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBackfaceVisibility", DOM, cx);
36907
0
36908
0
  binding_detail::FakeString arg0;
36909
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
36910
0
    return false;
36911
0
  }
36912
0
  Maybe<AutoCEReaction> ceReaction;
36913
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
36914
0
    DocGroup* docGroup = self->GetDocGroup();
36915
0
    if (docGroup) {
36916
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
36917
0
    }
36918
0
  }
36919
0
  FastErrorResult rv;
36920
0
  nsIPrincipal* subjectPrincipal;
36921
0
  {
36922
0
    JS::Realm* realm = js::GetContextRealm(cx);
36923
0
    MOZ_ASSERT(realm);
36924
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
36925
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
36926
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
36927
0
      principal = nullptr;
36928
0
    }
36929
0
36930
0
    subjectPrincipal = principal;
36931
0
  }
36932
0
  self->SetWebkitBackfaceVisibility(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
36933
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36934
0
    return false;
36935
0
  }
36936
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36937
0
36938
0
  return true;
36939
0
}
36940
36941
static const JSJitInfo webkitBackfaceVisibility_getterinfo = {
36942
  { (JSJitGetterOp)get_webkitBackfaceVisibility },
36943
  { prototypes::id::CSS2Properties },
36944
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36945
  JSJitInfo::Getter,
36946
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36947
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
36948
  false,  /* isInfallible. False in setters. */
36949
  false,  /* isMovable.  Not relevant for setters. */
36950
  false, /* isEliminatable.  Not relevant for setters. */
36951
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36952
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36953
  false,  /* isTypedMethod.  Only relevant for methods. */
36954
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36955
};
36956
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36957
static_assert(0 < 1, "There is no slot for us");
36958
static const JSJitInfo webkitBackfaceVisibility_setterinfo = {
36959
  { (JSJitGetterOp)set_webkitBackfaceVisibility },
36960
  { prototypes::id::CSS2Properties },
36961
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
36962
  JSJitInfo::Setter,
36963
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
36964
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
36965
  false,  /* isInfallible. False in setters. */
36966
  false,  /* isMovable.  Not relevant for setters. */
36967
  false, /* isEliminatable.  Not relevant for setters. */
36968
  false, /* isAlwaysInSlot.  Only relevant for getters. */
36969
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
36970
  false,  /* isTypedMethod.  Only relevant for methods. */
36971
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
36972
};
36973
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
36974
static_assert(0 < 1, "There is no slot for us");
36975
36976
MOZ_CAN_RUN_SCRIPT static bool
36977
get_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
36978
0
{
36979
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransformStyle", DOM, cx);
36980
0
36981
0
  FastErrorResult rv;
36982
0
  DOMString result;
36983
0
  self->GetMozTransformStyle(result, rv);
36984
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
36985
0
    return false;
36986
0
  }
36987
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
36988
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
36989
0
    return false;
36990
0
  }
36991
0
  return true;
36992
0
}
36993
36994
MOZ_CAN_RUN_SCRIPT static bool
36995
set_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
36996
0
{
36997
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransformStyle", DOM, cx);
36998
0
36999
0
  binding_detail::FakeString arg0;
37000
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37001
0
    return false;
37002
0
  }
37003
0
  Maybe<AutoCEReaction> ceReaction;
37004
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37005
0
    DocGroup* docGroup = self->GetDocGroup();
37006
0
    if (docGroup) {
37007
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37008
0
    }
37009
0
  }
37010
0
  FastErrorResult rv;
37011
0
  nsIPrincipal* subjectPrincipal;
37012
0
  {
37013
0
    JS::Realm* realm = js::GetContextRealm(cx);
37014
0
    MOZ_ASSERT(realm);
37015
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37016
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37017
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37018
0
      principal = nullptr;
37019
0
    }
37020
0
37021
0
    subjectPrincipal = principal;
37022
0
  }
37023
0
  self->SetMozTransformStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37024
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37025
0
    return false;
37026
0
  }
37027
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37028
0
37029
0
  return true;
37030
0
}
37031
37032
static const JSJitInfo MozTransformStyle_getterinfo = {
37033
  { (JSJitGetterOp)get_MozTransformStyle },
37034
  { prototypes::id::CSS2Properties },
37035
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37036
  JSJitInfo::Getter,
37037
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37038
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37039
  false,  /* isInfallible. False in setters. */
37040
  false,  /* isMovable.  Not relevant for setters. */
37041
  false, /* isEliminatable.  Not relevant for setters. */
37042
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37043
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37044
  false,  /* isTypedMethod.  Only relevant for methods. */
37045
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37046
};
37047
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37048
static_assert(0 < 1, "There is no slot for us");
37049
static const JSJitInfo MozTransformStyle_setterinfo = {
37050
  { (JSJitGetterOp)set_MozTransformStyle },
37051
  { prototypes::id::CSS2Properties },
37052
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37053
  JSJitInfo::Setter,
37054
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37055
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37056
  false,  /* isInfallible. False in setters. */
37057
  false,  /* isMovable.  Not relevant for setters. */
37058
  false, /* isEliminatable.  Not relevant for setters. */
37059
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37060
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37061
  false,  /* isTypedMethod.  Only relevant for methods. */
37062
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37063
};
37064
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37065
static_assert(0 < 1, "There is no slot for us");
37066
37067
MOZ_CAN_RUN_SCRIPT static bool
37068
get_webkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37069
0
{
37070
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransformStyle", DOM, cx);
37071
0
37072
0
  FastErrorResult rv;
37073
0
  DOMString result;
37074
0
  self->GetWebkitTransformStyle(result, rv);
37075
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37076
0
    return false;
37077
0
  }
37078
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37079
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37080
0
    return false;
37081
0
  }
37082
0
  return true;
37083
0
}
37084
37085
MOZ_CAN_RUN_SCRIPT static bool
37086
set_webkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37087
0
{
37088
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransformStyle", DOM, cx);
37089
0
37090
0
  binding_detail::FakeString arg0;
37091
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37092
0
    return false;
37093
0
  }
37094
0
  Maybe<AutoCEReaction> ceReaction;
37095
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37096
0
    DocGroup* docGroup = self->GetDocGroup();
37097
0
    if (docGroup) {
37098
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37099
0
    }
37100
0
  }
37101
0
  FastErrorResult rv;
37102
0
  nsIPrincipal* subjectPrincipal;
37103
0
  {
37104
0
    JS::Realm* realm = js::GetContextRealm(cx);
37105
0
    MOZ_ASSERT(realm);
37106
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37107
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37108
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37109
0
      principal = nullptr;
37110
0
    }
37111
0
37112
0
    subjectPrincipal = principal;
37113
0
  }
37114
0
  self->SetWebkitTransformStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37115
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37116
0
    return false;
37117
0
  }
37118
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37119
0
37120
0
  return true;
37121
0
}
37122
37123
static const JSJitInfo webkitTransformStyle_getterinfo = {
37124
  { (JSJitGetterOp)get_webkitTransformStyle },
37125
  { prototypes::id::CSS2Properties },
37126
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37127
  JSJitInfo::Getter,
37128
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37129
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37130
  false,  /* isInfallible. False in setters. */
37131
  false,  /* isMovable.  Not relevant for setters. */
37132
  false, /* isEliminatable.  Not relevant for setters. */
37133
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37134
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37135
  false,  /* isTypedMethod.  Only relevant for methods. */
37136
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37137
};
37138
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37139
static_assert(0 < 1, "There is no slot for us");
37140
static const JSJitInfo webkitTransformStyle_setterinfo = {
37141
  { (JSJitGetterOp)set_webkitTransformStyle },
37142
  { prototypes::id::CSS2Properties },
37143
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37144
  JSJitInfo::Setter,
37145
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37146
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37147
  false,  /* isInfallible. False in setters. */
37148
  false,  /* isMovable.  Not relevant for setters. */
37149
  false, /* isEliminatable.  Not relevant for setters. */
37150
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37151
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37152
  false,  /* isTypedMethod.  Only relevant for methods. */
37153
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37154
};
37155
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37156
static_assert(0 < 1, "There is no slot for us");
37157
37158
MOZ_CAN_RUN_SCRIPT static bool
37159
get_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37160
0
{
37161
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransformOrigin", DOM, cx);
37162
0
37163
0
  FastErrorResult rv;
37164
0
  DOMString result;
37165
0
  self->GetMozTransformOrigin(result, rv);
37166
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37167
0
    return false;
37168
0
  }
37169
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37170
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37171
0
    return false;
37172
0
  }
37173
0
  return true;
37174
0
}
37175
37176
MOZ_CAN_RUN_SCRIPT static bool
37177
set_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37178
0
{
37179
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransformOrigin", DOM, cx);
37180
0
37181
0
  binding_detail::FakeString arg0;
37182
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37183
0
    return false;
37184
0
  }
37185
0
  Maybe<AutoCEReaction> ceReaction;
37186
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37187
0
    DocGroup* docGroup = self->GetDocGroup();
37188
0
    if (docGroup) {
37189
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37190
0
    }
37191
0
  }
37192
0
  FastErrorResult rv;
37193
0
  nsIPrincipal* subjectPrincipal;
37194
0
  {
37195
0
    JS::Realm* realm = js::GetContextRealm(cx);
37196
0
    MOZ_ASSERT(realm);
37197
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37198
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37199
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37200
0
      principal = nullptr;
37201
0
    }
37202
0
37203
0
    subjectPrincipal = principal;
37204
0
  }
37205
0
  self->SetMozTransformOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37206
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37207
0
    return false;
37208
0
  }
37209
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37210
0
37211
0
  return true;
37212
0
}
37213
37214
static const JSJitInfo MozTransformOrigin_getterinfo = {
37215
  { (JSJitGetterOp)get_MozTransformOrigin },
37216
  { prototypes::id::CSS2Properties },
37217
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37218
  JSJitInfo::Getter,
37219
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37220
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37221
  false,  /* isInfallible. False in setters. */
37222
  false,  /* isMovable.  Not relevant for setters. */
37223
  false, /* isEliminatable.  Not relevant for setters. */
37224
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37225
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37226
  false,  /* isTypedMethod.  Only relevant for methods. */
37227
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37228
};
37229
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37230
static_assert(0 < 1, "There is no slot for us");
37231
static const JSJitInfo MozTransformOrigin_setterinfo = {
37232
  { (JSJitGetterOp)set_MozTransformOrigin },
37233
  { prototypes::id::CSS2Properties },
37234
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37235
  JSJitInfo::Setter,
37236
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37237
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37238
  false,  /* isInfallible. False in setters. */
37239
  false,  /* isMovable.  Not relevant for setters. */
37240
  false, /* isEliminatable.  Not relevant for setters. */
37241
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37242
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37243
  false,  /* isTypedMethod.  Only relevant for methods. */
37244
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37245
};
37246
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37247
static_assert(0 < 1, "There is no slot for us");
37248
37249
MOZ_CAN_RUN_SCRIPT static bool
37250
get_webkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37251
0
{
37252
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransformOrigin", DOM, cx);
37253
0
37254
0
  FastErrorResult rv;
37255
0
  DOMString result;
37256
0
  self->GetWebkitTransformOrigin(result, rv);
37257
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37258
0
    return false;
37259
0
  }
37260
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37261
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37262
0
    return false;
37263
0
  }
37264
0
  return true;
37265
0
}
37266
37267
MOZ_CAN_RUN_SCRIPT static bool
37268
set_webkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37269
0
{
37270
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransformOrigin", DOM, cx);
37271
0
37272
0
  binding_detail::FakeString arg0;
37273
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37274
0
    return false;
37275
0
  }
37276
0
  Maybe<AutoCEReaction> ceReaction;
37277
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37278
0
    DocGroup* docGroup = self->GetDocGroup();
37279
0
    if (docGroup) {
37280
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37281
0
    }
37282
0
  }
37283
0
  FastErrorResult rv;
37284
0
  nsIPrincipal* subjectPrincipal;
37285
0
  {
37286
0
    JS::Realm* realm = js::GetContextRealm(cx);
37287
0
    MOZ_ASSERT(realm);
37288
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37289
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37290
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37291
0
      principal = nullptr;
37292
0
    }
37293
0
37294
0
    subjectPrincipal = principal;
37295
0
  }
37296
0
  self->SetWebkitTransformOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37297
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37298
0
    return false;
37299
0
  }
37300
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37301
0
37302
0
  return true;
37303
0
}
37304
37305
static const JSJitInfo webkitTransformOrigin_getterinfo = {
37306
  { (JSJitGetterOp)get_webkitTransformOrigin },
37307
  { prototypes::id::CSS2Properties },
37308
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37309
  JSJitInfo::Getter,
37310
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37311
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37312
  false,  /* isInfallible. False in setters. */
37313
  false,  /* isMovable.  Not relevant for setters. */
37314
  false, /* isEliminatable.  Not relevant for setters. */
37315
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37316
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37317
  false,  /* isTypedMethod.  Only relevant for methods. */
37318
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37319
};
37320
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37321
static_assert(0 < 1, "There is no slot for us");
37322
static const JSJitInfo webkitTransformOrigin_setterinfo = {
37323
  { (JSJitGetterOp)set_webkitTransformOrigin },
37324
  { prototypes::id::CSS2Properties },
37325
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37326
  JSJitInfo::Setter,
37327
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37328
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37329
  false,  /* isInfallible. False in setters. */
37330
  false,  /* isMovable.  Not relevant for setters. */
37331
  false, /* isEliminatable.  Not relevant for setters. */
37332
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37333
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37334
  false,  /* isTypedMethod.  Only relevant for methods. */
37335
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37336
};
37337
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37338
static_assert(0 < 1, "There is no slot for us");
37339
37340
MOZ_CAN_RUN_SCRIPT static bool
37341
get_webkitAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37342
0
{
37343
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAppearance", DOM, cx);
37344
0
37345
0
  FastErrorResult rv;
37346
0
  DOMString result;
37347
0
  self->GetWebkitAppearance(result, rv);
37348
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37349
0
    return false;
37350
0
  }
37351
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37352
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37353
0
    return false;
37354
0
  }
37355
0
  return true;
37356
0
}
37357
37358
MOZ_CAN_RUN_SCRIPT static bool
37359
set_webkitAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37360
0
{
37361
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAppearance", DOM, cx);
37362
0
37363
0
  binding_detail::FakeString arg0;
37364
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37365
0
    return false;
37366
0
  }
37367
0
  Maybe<AutoCEReaction> ceReaction;
37368
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37369
0
    DocGroup* docGroup = self->GetDocGroup();
37370
0
    if (docGroup) {
37371
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37372
0
    }
37373
0
  }
37374
0
  FastErrorResult rv;
37375
0
  nsIPrincipal* subjectPrincipal;
37376
0
  {
37377
0
    JS::Realm* realm = js::GetContextRealm(cx);
37378
0
    MOZ_ASSERT(realm);
37379
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37380
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37381
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37382
0
      principal = nullptr;
37383
0
    }
37384
0
37385
0
    subjectPrincipal = principal;
37386
0
  }
37387
0
  self->SetWebkitAppearance(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37388
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37389
0
    return false;
37390
0
  }
37391
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37392
0
37393
0
  return true;
37394
0
}
37395
37396
static const JSJitInfo webkitAppearance_getterinfo = {
37397
  { (JSJitGetterOp)get_webkitAppearance },
37398
  { prototypes::id::CSS2Properties },
37399
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37400
  JSJitInfo::Getter,
37401
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37402
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37403
  false,  /* isInfallible. False in setters. */
37404
  false,  /* isMovable.  Not relevant for setters. */
37405
  false, /* isEliminatable.  Not relevant for setters. */
37406
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37407
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37408
  false,  /* isTypedMethod.  Only relevant for methods. */
37409
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37410
};
37411
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37412
static_assert(0 < 1, "There is no slot for us");
37413
static const JSJitInfo webkitAppearance_setterinfo = {
37414
  { (JSJitGetterOp)set_webkitAppearance },
37415
  { prototypes::id::CSS2Properties },
37416
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37417
  JSJitInfo::Setter,
37418
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37419
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37420
  false,  /* isInfallible. False in setters. */
37421
  false,  /* isMovable.  Not relevant for setters. */
37422
  false, /* isEliminatable.  Not relevant for setters. */
37423
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37424
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37425
  false,  /* isTypedMethod.  Only relevant for methods. */
37426
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37427
};
37428
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37429
static_assert(0 < 1, "There is no slot for us");
37430
37431
MOZ_CAN_RUN_SCRIPT static bool
37432
get_MozColumnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37433
0
{
37434
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnWidth", DOM, cx);
37435
0
37436
0
  FastErrorResult rv;
37437
0
  DOMString result;
37438
0
  self->GetMozColumnWidth(result, rv);
37439
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37440
0
    return false;
37441
0
  }
37442
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37443
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37444
0
    return false;
37445
0
  }
37446
0
  return true;
37447
0
}
37448
37449
MOZ_CAN_RUN_SCRIPT static bool
37450
set_MozColumnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37451
0
{
37452
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnWidth", DOM, cx);
37453
0
37454
0
  binding_detail::FakeString arg0;
37455
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37456
0
    return false;
37457
0
  }
37458
0
  Maybe<AutoCEReaction> ceReaction;
37459
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37460
0
    DocGroup* docGroup = self->GetDocGroup();
37461
0
    if (docGroup) {
37462
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37463
0
    }
37464
0
  }
37465
0
  FastErrorResult rv;
37466
0
  nsIPrincipal* subjectPrincipal;
37467
0
  {
37468
0
    JS::Realm* realm = js::GetContextRealm(cx);
37469
0
    MOZ_ASSERT(realm);
37470
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37471
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37472
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37473
0
      principal = nullptr;
37474
0
    }
37475
0
37476
0
    subjectPrincipal = principal;
37477
0
  }
37478
0
  self->SetMozColumnWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37479
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37480
0
    return false;
37481
0
  }
37482
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37483
0
37484
0
  return true;
37485
0
}
37486
37487
static const JSJitInfo MozColumnWidth_getterinfo = {
37488
  { (JSJitGetterOp)get_MozColumnWidth },
37489
  { prototypes::id::CSS2Properties },
37490
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37491
  JSJitInfo::Getter,
37492
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37493
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37494
  false,  /* isInfallible. False in setters. */
37495
  false,  /* isMovable.  Not relevant for setters. */
37496
  false, /* isEliminatable.  Not relevant for setters. */
37497
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37498
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37499
  false,  /* isTypedMethod.  Only relevant for methods. */
37500
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37501
};
37502
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37503
static_assert(0 < 1, "There is no slot for us");
37504
static const JSJitInfo MozColumnWidth_setterinfo = {
37505
  { (JSJitGetterOp)set_MozColumnWidth },
37506
  { prototypes::id::CSS2Properties },
37507
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37508
  JSJitInfo::Setter,
37509
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37510
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37511
  false,  /* isInfallible. False in setters. */
37512
  false,  /* isMovable.  Not relevant for setters. */
37513
  false, /* isEliminatable.  Not relevant for setters. */
37514
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37515
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37516
  false,  /* isTypedMethod.  Only relevant for methods. */
37517
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37518
};
37519
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37520
static_assert(0 < 1, "There is no slot for us");
37521
37522
MOZ_CAN_RUN_SCRIPT static bool
37523
get_MozColumnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37524
0
{
37525
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnCount", DOM, cx);
37526
0
37527
0
  FastErrorResult rv;
37528
0
  DOMString result;
37529
0
  self->GetMozColumnCount(result, rv);
37530
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37531
0
    return false;
37532
0
  }
37533
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37534
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37535
0
    return false;
37536
0
  }
37537
0
  return true;
37538
0
}
37539
37540
MOZ_CAN_RUN_SCRIPT static bool
37541
set_MozColumnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37542
0
{
37543
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnCount", DOM, cx);
37544
0
37545
0
  binding_detail::FakeString arg0;
37546
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37547
0
    return false;
37548
0
  }
37549
0
  Maybe<AutoCEReaction> ceReaction;
37550
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37551
0
    DocGroup* docGroup = self->GetDocGroup();
37552
0
    if (docGroup) {
37553
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37554
0
    }
37555
0
  }
37556
0
  FastErrorResult rv;
37557
0
  nsIPrincipal* subjectPrincipal;
37558
0
  {
37559
0
    JS::Realm* realm = js::GetContextRealm(cx);
37560
0
    MOZ_ASSERT(realm);
37561
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37562
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37563
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37564
0
      principal = nullptr;
37565
0
    }
37566
0
37567
0
    subjectPrincipal = principal;
37568
0
  }
37569
0
  self->SetMozColumnCount(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37570
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37571
0
    return false;
37572
0
  }
37573
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37574
0
37575
0
  return true;
37576
0
}
37577
37578
static const JSJitInfo MozColumnCount_getterinfo = {
37579
  { (JSJitGetterOp)get_MozColumnCount },
37580
  { prototypes::id::CSS2Properties },
37581
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37582
  JSJitInfo::Getter,
37583
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37584
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37585
  false,  /* isInfallible. False in setters. */
37586
  false,  /* isMovable.  Not relevant for setters. */
37587
  false, /* isEliminatable.  Not relevant for setters. */
37588
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37589
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37590
  false,  /* isTypedMethod.  Only relevant for methods. */
37591
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37592
};
37593
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37594
static_assert(0 < 1, "There is no slot for us");
37595
static const JSJitInfo MozColumnCount_setterinfo = {
37596
  { (JSJitGetterOp)set_MozColumnCount },
37597
  { prototypes::id::CSS2Properties },
37598
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37599
  JSJitInfo::Setter,
37600
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37601
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37602
  false,  /* isInfallible. False in setters. */
37603
  false,  /* isMovable.  Not relevant for setters. */
37604
  false, /* isEliminatable.  Not relevant for setters. */
37605
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37606
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37607
  false,  /* isTypedMethod.  Only relevant for methods. */
37608
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37609
};
37610
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37611
static_assert(0 < 1, "There is no slot for us");
37612
37613
MOZ_CAN_RUN_SCRIPT static bool
37614
get_MozColumnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37615
0
{
37616
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnFill", DOM, cx);
37617
0
37618
0
  FastErrorResult rv;
37619
0
  DOMString result;
37620
0
  self->GetMozColumnFill(result, rv);
37621
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37622
0
    return false;
37623
0
  }
37624
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37625
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37626
0
    return false;
37627
0
  }
37628
0
  return true;
37629
0
}
37630
37631
MOZ_CAN_RUN_SCRIPT static bool
37632
set_MozColumnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37633
0
{
37634
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnFill", DOM, cx);
37635
0
37636
0
  binding_detail::FakeString arg0;
37637
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37638
0
    return false;
37639
0
  }
37640
0
  Maybe<AutoCEReaction> ceReaction;
37641
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37642
0
    DocGroup* docGroup = self->GetDocGroup();
37643
0
    if (docGroup) {
37644
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37645
0
    }
37646
0
  }
37647
0
  FastErrorResult rv;
37648
0
  nsIPrincipal* subjectPrincipal;
37649
0
  {
37650
0
    JS::Realm* realm = js::GetContextRealm(cx);
37651
0
    MOZ_ASSERT(realm);
37652
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37653
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37654
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37655
0
      principal = nullptr;
37656
0
    }
37657
0
37658
0
    subjectPrincipal = principal;
37659
0
  }
37660
0
  self->SetMozColumnFill(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37661
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37662
0
    return false;
37663
0
  }
37664
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37665
0
37666
0
  return true;
37667
0
}
37668
37669
static const JSJitInfo MozColumnFill_getterinfo = {
37670
  { (JSJitGetterOp)get_MozColumnFill },
37671
  { prototypes::id::CSS2Properties },
37672
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37673
  JSJitInfo::Getter,
37674
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37675
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37676
  false,  /* isInfallible. False in setters. */
37677
  false,  /* isMovable.  Not relevant for setters. */
37678
  false, /* isEliminatable.  Not relevant for setters. */
37679
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37680
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37681
  false,  /* isTypedMethod.  Only relevant for methods. */
37682
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37683
};
37684
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37685
static_assert(0 < 1, "There is no slot for us");
37686
static const JSJitInfo MozColumnFill_setterinfo = {
37687
  { (JSJitGetterOp)set_MozColumnFill },
37688
  { prototypes::id::CSS2Properties },
37689
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37690
  JSJitInfo::Setter,
37691
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37692
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37693
  false,  /* isInfallible. False in setters. */
37694
  false,  /* isMovable.  Not relevant for setters. */
37695
  false, /* isEliminatable.  Not relevant for setters. */
37696
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37697
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37698
  false,  /* isTypedMethod.  Only relevant for methods. */
37699
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37700
};
37701
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37702
static_assert(0 < 1, "There is no slot for us");
37703
37704
MOZ_CAN_RUN_SCRIPT static bool
37705
get_MozColumnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37706
0
{
37707
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnRuleWidth", DOM, cx);
37708
0
37709
0
  FastErrorResult rv;
37710
0
  DOMString result;
37711
0
  self->GetMozColumnRuleWidth(result, rv);
37712
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37713
0
    return false;
37714
0
  }
37715
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37716
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37717
0
    return false;
37718
0
  }
37719
0
  return true;
37720
0
}
37721
37722
MOZ_CAN_RUN_SCRIPT static bool
37723
set_MozColumnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37724
0
{
37725
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnRuleWidth", DOM, cx);
37726
0
37727
0
  binding_detail::FakeString arg0;
37728
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37729
0
    return false;
37730
0
  }
37731
0
  Maybe<AutoCEReaction> ceReaction;
37732
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37733
0
    DocGroup* docGroup = self->GetDocGroup();
37734
0
    if (docGroup) {
37735
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37736
0
    }
37737
0
  }
37738
0
  FastErrorResult rv;
37739
0
  nsIPrincipal* subjectPrincipal;
37740
0
  {
37741
0
    JS::Realm* realm = js::GetContextRealm(cx);
37742
0
    MOZ_ASSERT(realm);
37743
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37744
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37745
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37746
0
      principal = nullptr;
37747
0
    }
37748
0
37749
0
    subjectPrincipal = principal;
37750
0
  }
37751
0
  self->SetMozColumnRuleWidth(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37752
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37753
0
    return false;
37754
0
  }
37755
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37756
0
37757
0
  return true;
37758
0
}
37759
37760
static const JSJitInfo MozColumnRuleWidth_getterinfo = {
37761
  { (JSJitGetterOp)get_MozColumnRuleWidth },
37762
  { prototypes::id::CSS2Properties },
37763
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37764
  JSJitInfo::Getter,
37765
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37766
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37767
  false,  /* isInfallible. False in setters. */
37768
  false,  /* isMovable.  Not relevant for setters. */
37769
  false, /* isEliminatable.  Not relevant for setters. */
37770
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37771
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37772
  false,  /* isTypedMethod.  Only relevant for methods. */
37773
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37774
};
37775
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37776
static_assert(0 < 1, "There is no slot for us");
37777
static const JSJitInfo MozColumnRuleWidth_setterinfo = {
37778
  { (JSJitGetterOp)set_MozColumnRuleWidth },
37779
  { prototypes::id::CSS2Properties },
37780
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37781
  JSJitInfo::Setter,
37782
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37783
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37784
  false,  /* isInfallible. False in setters. */
37785
  false,  /* isMovable.  Not relevant for setters. */
37786
  false, /* isEliminatable.  Not relevant for setters. */
37787
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37788
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37789
  false,  /* isTypedMethod.  Only relevant for methods. */
37790
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37791
};
37792
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37793
static_assert(0 < 1, "There is no slot for us");
37794
37795
MOZ_CAN_RUN_SCRIPT static bool
37796
get_MozColumnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37797
0
{
37798
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnRuleColor", DOM, cx);
37799
0
37800
0
  FastErrorResult rv;
37801
0
  DOMString result;
37802
0
  self->GetMozColumnRuleColor(result, rv);
37803
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37804
0
    return false;
37805
0
  }
37806
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37807
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37808
0
    return false;
37809
0
  }
37810
0
  return true;
37811
0
}
37812
37813
MOZ_CAN_RUN_SCRIPT static bool
37814
set_MozColumnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37815
0
{
37816
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnRuleColor", DOM, cx);
37817
0
37818
0
  binding_detail::FakeString arg0;
37819
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37820
0
    return false;
37821
0
  }
37822
0
  Maybe<AutoCEReaction> ceReaction;
37823
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37824
0
    DocGroup* docGroup = self->GetDocGroup();
37825
0
    if (docGroup) {
37826
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37827
0
    }
37828
0
  }
37829
0
  FastErrorResult rv;
37830
0
  nsIPrincipal* subjectPrincipal;
37831
0
  {
37832
0
    JS::Realm* realm = js::GetContextRealm(cx);
37833
0
    MOZ_ASSERT(realm);
37834
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37835
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37836
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37837
0
      principal = nullptr;
37838
0
    }
37839
0
37840
0
    subjectPrincipal = principal;
37841
0
  }
37842
0
  self->SetMozColumnRuleColor(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37843
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37844
0
    return false;
37845
0
  }
37846
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37847
0
37848
0
  return true;
37849
0
}
37850
37851
static const JSJitInfo MozColumnRuleColor_getterinfo = {
37852
  { (JSJitGetterOp)get_MozColumnRuleColor },
37853
  { prototypes::id::CSS2Properties },
37854
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37855
  JSJitInfo::Getter,
37856
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37857
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37858
  false,  /* isInfallible. False in setters. */
37859
  false,  /* isMovable.  Not relevant for setters. */
37860
  false, /* isEliminatable.  Not relevant for setters. */
37861
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37862
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37863
  false,  /* isTypedMethod.  Only relevant for methods. */
37864
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37865
};
37866
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37867
static_assert(0 < 1, "There is no slot for us");
37868
static const JSJitInfo MozColumnRuleColor_setterinfo = {
37869
  { (JSJitGetterOp)set_MozColumnRuleColor },
37870
  { prototypes::id::CSS2Properties },
37871
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37872
  JSJitInfo::Setter,
37873
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37874
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37875
  false,  /* isInfallible. False in setters. */
37876
  false,  /* isMovable.  Not relevant for setters. */
37877
  false, /* isEliminatable.  Not relevant for setters. */
37878
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37879
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37880
  false,  /* isTypedMethod.  Only relevant for methods. */
37881
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37882
};
37883
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37884
static_assert(0 < 1, "There is no slot for us");
37885
37886
MOZ_CAN_RUN_SCRIPT static bool
37887
get_MozColumnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37888
0
{
37889
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnSpan", DOM, cx);
37890
0
37891
0
  FastErrorResult rv;
37892
0
  DOMString result;
37893
0
  self->GetMozColumnSpan(result, rv);
37894
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37895
0
    return false;
37896
0
  }
37897
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37898
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37899
0
    return false;
37900
0
  }
37901
0
  return true;
37902
0
}
37903
37904
MOZ_CAN_RUN_SCRIPT static bool
37905
set_MozColumnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37906
0
{
37907
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnSpan", DOM, cx);
37908
0
37909
0
  binding_detail::FakeString arg0;
37910
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
37911
0
    return false;
37912
0
  }
37913
0
  Maybe<AutoCEReaction> ceReaction;
37914
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
37915
0
    DocGroup* docGroup = self->GetDocGroup();
37916
0
    if (docGroup) {
37917
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
37918
0
    }
37919
0
  }
37920
0
  FastErrorResult rv;
37921
0
  nsIPrincipal* subjectPrincipal;
37922
0
  {
37923
0
    JS::Realm* realm = js::GetContextRealm(cx);
37924
0
    MOZ_ASSERT(realm);
37925
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
37926
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
37927
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
37928
0
      principal = nullptr;
37929
0
    }
37930
0
37931
0
    subjectPrincipal = principal;
37932
0
  }
37933
0
  self->SetMozColumnSpan(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
37934
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37935
0
    return false;
37936
0
  }
37937
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37938
0
37939
0
  return true;
37940
0
}
37941
37942
static const JSJitInfo MozColumnSpan_getterinfo = {
37943
  { (JSJitGetterOp)get_MozColumnSpan },
37944
  { prototypes::id::CSS2Properties },
37945
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37946
  JSJitInfo::Getter,
37947
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37948
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
37949
  false,  /* isInfallible. False in setters. */
37950
  false,  /* isMovable.  Not relevant for setters. */
37951
  false, /* isEliminatable.  Not relevant for setters. */
37952
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37953
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37954
  false,  /* isTypedMethod.  Only relevant for methods. */
37955
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37956
};
37957
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37958
static_assert(0 < 1, "There is no slot for us");
37959
static const JSJitInfo MozColumnSpan_setterinfo = {
37960
  { (JSJitGetterOp)set_MozColumnSpan },
37961
  { prototypes::id::CSS2Properties },
37962
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
37963
  JSJitInfo::Setter,
37964
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
37965
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
37966
  false,  /* isInfallible. False in setters. */
37967
  false,  /* isMovable.  Not relevant for setters. */
37968
  false, /* isEliminatable.  Not relevant for setters. */
37969
  false, /* isAlwaysInSlot.  Only relevant for getters. */
37970
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
37971
  false,  /* isTypedMethod.  Only relevant for methods. */
37972
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
37973
};
37974
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
37975
static_assert(0 < 1, "There is no slot for us");
37976
37977
MOZ_CAN_RUN_SCRIPT static bool
37978
get_MozColumnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
37979
0
{
37980
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnRuleStyle", DOM, cx);
37981
0
37982
0
  FastErrorResult rv;
37983
0
  DOMString result;
37984
0
  self->GetMozColumnRuleStyle(result, rv);
37985
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
37986
0
    return false;
37987
0
  }
37988
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
37989
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
37990
0
    return false;
37991
0
  }
37992
0
  return true;
37993
0
}
37994
37995
MOZ_CAN_RUN_SCRIPT static bool
37996
set_MozColumnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
37997
0
{
37998
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnRuleStyle", DOM, cx);
37999
0
38000
0
  binding_detail::FakeString arg0;
38001
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38002
0
    return false;
38003
0
  }
38004
0
  Maybe<AutoCEReaction> ceReaction;
38005
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38006
0
    DocGroup* docGroup = self->GetDocGroup();
38007
0
    if (docGroup) {
38008
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38009
0
    }
38010
0
  }
38011
0
  FastErrorResult rv;
38012
0
  nsIPrincipal* subjectPrincipal;
38013
0
  {
38014
0
    JS::Realm* realm = js::GetContextRealm(cx);
38015
0
    MOZ_ASSERT(realm);
38016
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38017
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38018
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38019
0
      principal = nullptr;
38020
0
    }
38021
0
38022
0
    subjectPrincipal = principal;
38023
0
  }
38024
0
  self->SetMozColumnRuleStyle(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38025
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38026
0
    return false;
38027
0
  }
38028
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38029
0
38030
0
  return true;
38031
0
}
38032
38033
static const JSJitInfo MozColumnRuleStyle_getterinfo = {
38034
  { (JSJitGetterOp)get_MozColumnRuleStyle },
38035
  { prototypes::id::CSS2Properties },
38036
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38037
  JSJitInfo::Getter,
38038
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38039
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38040
  false,  /* isInfallible. False in setters. */
38041
  false,  /* isMovable.  Not relevant for setters. */
38042
  false, /* isEliminatable.  Not relevant for setters. */
38043
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38044
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38045
  false,  /* isTypedMethod.  Only relevant for methods. */
38046
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38047
};
38048
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38049
static_assert(0 < 1, "There is no slot for us");
38050
static const JSJitInfo MozColumnRuleStyle_setterinfo = {
38051
  { (JSJitGetterOp)set_MozColumnRuleStyle },
38052
  { prototypes::id::CSS2Properties },
38053
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38054
  JSJitInfo::Setter,
38055
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38056
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38057
  false,  /* isInfallible. False in setters. */
38058
  false,  /* isMovable.  Not relevant for setters. */
38059
  false, /* isEliminatable.  Not relevant for setters. */
38060
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38061
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38062
  false,  /* isTypedMethod.  Only relevant for methods. */
38063
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38064
};
38065
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38066
static_assert(0 < 1, "There is no slot for us");
38067
38068
MOZ_CAN_RUN_SCRIPT static bool
38069
get_webkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38070
0
{
38071
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxShadow", DOM, cx);
38072
0
38073
0
  FastErrorResult rv;
38074
0
  DOMString result;
38075
0
  self->GetWebkitBoxShadow(result, rv);
38076
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38077
0
    return false;
38078
0
  }
38079
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38080
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38081
0
    return false;
38082
0
  }
38083
0
  return true;
38084
0
}
38085
38086
MOZ_CAN_RUN_SCRIPT static bool
38087
set_webkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38088
0
{
38089
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxShadow", DOM, cx);
38090
0
38091
0
  binding_detail::FakeString arg0;
38092
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38093
0
    return false;
38094
0
  }
38095
0
  Maybe<AutoCEReaction> ceReaction;
38096
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38097
0
    DocGroup* docGroup = self->GetDocGroup();
38098
0
    if (docGroup) {
38099
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38100
0
    }
38101
0
  }
38102
0
  FastErrorResult rv;
38103
0
  nsIPrincipal* subjectPrincipal;
38104
0
  {
38105
0
    JS::Realm* realm = js::GetContextRealm(cx);
38106
0
    MOZ_ASSERT(realm);
38107
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38108
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38109
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38110
0
      principal = nullptr;
38111
0
    }
38112
0
38113
0
    subjectPrincipal = principal;
38114
0
  }
38115
0
  self->SetWebkitBoxShadow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38116
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38117
0
    return false;
38118
0
  }
38119
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38120
0
38121
0
  return true;
38122
0
}
38123
38124
static const JSJitInfo webkitBoxShadow_getterinfo = {
38125
  { (JSJitGetterOp)get_webkitBoxShadow },
38126
  { prototypes::id::CSS2Properties },
38127
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38128
  JSJitInfo::Getter,
38129
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38130
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38131
  false,  /* isInfallible. False in setters. */
38132
  false,  /* isMovable.  Not relevant for setters. */
38133
  false, /* isEliminatable.  Not relevant for setters. */
38134
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38135
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38136
  false,  /* isTypedMethod.  Only relevant for methods. */
38137
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38138
};
38139
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38140
static_assert(0 < 1, "There is no slot for us");
38141
static const JSJitInfo webkitBoxShadow_setterinfo = {
38142
  { (JSJitGetterOp)set_webkitBoxShadow },
38143
  { prototypes::id::CSS2Properties },
38144
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38145
  JSJitInfo::Setter,
38146
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38147
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38148
  false,  /* isInfallible. False in setters. */
38149
  false,  /* isMovable.  Not relevant for setters. */
38150
  false, /* isEliminatable.  Not relevant for setters. */
38151
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38152
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38153
  false,  /* isTypedMethod.  Only relevant for methods. */
38154
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38155
};
38156
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38157
static_assert(0 < 1, "There is no slot for us");
38158
38159
MOZ_CAN_RUN_SCRIPT static bool
38160
get_webkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38161
0
{
38162
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFilter", DOM, cx);
38163
0
38164
0
  FastErrorResult rv;
38165
0
  DOMString result;
38166
0
  self->GetWebkitFilter(result, rv);
38167
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38168
0
    return false;
38169
0
  }
38170
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38171
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38172
0
    return false;
38173
0
  }
38174
0
  return true;
38175
0
}
38176
38177
MOZ_CAN_RUN_SCRIPT static bool
38178
set_webkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38179
0
{
38180
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFilter", DOM, cx);
38181
0
38182
0
  binding_detail::FakeString arg0;
38183
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38184
0
    return false;
38185
0
  }
38186
0
  Maybe<AutoCEReaction> ceReaction;
38187
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38188
0
    DocGroup* docGroup = self->GetDocGroup();
38189
0
    if (docGroup) {
38190
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38191
0
    }
38192
0
  }
38193
0
  FastErrorResult rv;
38194
0
  nsIPrincipal* subjectPrincipal;
38195
0
  {
38196
0
    JS::Realm* realm = js::GetContextRealm(cx);
38197
0
    MOZ_ASSERT(realm);
38198
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38199
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38200
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38201
0
      principal = nullptr;
38202
0
    }
38203
0
38204
0
    subjectPrincipal = principal;
38205
0
  }
38206
0
  self->SetWebkitFilter(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38207
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38208
0
    return false;
38209
0
  }
38210
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38211
0
38212
0
  return true;
38213
0
}
38214
38215
static const JSJitInfo webkitFilter_getterinfo = {
38216
  { (JSJitGetterOp)get_webkitFilter },
38217
  { prototypes::id::CSS2Properties },
38218
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38219
  JSJitInfo::Getter,
38220
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38221
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38222
  false,  /* isInfallible. False in setters. */
38223
  false,  /* isMovable.  Not relevant for setters. */
38224
  false, /* isEliminatable.  Not relevant for setters. */
38225
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38226
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38227
  false,  /* isTypedMethod.  Only relevant for methods. */
38228
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38229
};
38230
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38231
static_assert(0 < 1, "There is no slot for us");
38232
static const JSJitInfo webkitFilter_setterinfo = {
38233
  { (JSJitGetterOp)set_webkitFilter },
38234
  { prototypes::id::CSS2Properties },
38235
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38236
  JSJitInfo::Setter,
38237
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38238
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38239
  false,  /* isInfallible. False in setters. */
38240
  false,  /* isMovable.  Not relevant for setters. */
38241
  false, /* isEliminatable.  Not relevant for setters. */
38242
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38243
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38244
  false,  /* isTypedMethod.  Only relevant for methods. */
38245
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38246
};
38247
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38248
static_assert(0 < 1, "There is no slot for us");
38249
38250
MOZ_CAN_RUN_SCRIPT static bool
38251
get_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38252
0
{
38253
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozFontFeatureSettings", DOM, cx);
38254
0
38255
0
  FastErrorResult rv;
38256
0
  DOMString result;
38257
0
  self->GetMozFontFeatureSettings(result, rv);
38258
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38259
0
    return false;
38260
0
  }
38261
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38262
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38263
0
    return false;
38264
0
  }
38265
0
  return true;
38266
0
}
38267
38268
MOZ_CAN_RUN_SCRIPT static bool
38269
set_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38270
0
{
38271
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozFontFeatureSettings", DOM, cx);
38272
0
38273
0
  binding_detail::FakeString arg0;
38274
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38275
0
    return false;
38276
0
  }
38277
0
  Maybe<AutoCEReaction> ceReaction;
38278
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38279
0
    DocGroup* docGroup = self->GetDocGroup();
38280
0
    if (docGroup) {
38281
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38282
0
    }
38283
0
  }
38284
0
  FastErrorResult rv;
38285
0
  nsIPrincipal* subjectPrincipal;
38286
0
  {
38287
0
    JS::Realm* realm = js::GetContextRealm(cx);
38288
0
    MOZ_ASSERT(realm);
38289
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38290
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38291
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38292
0
      principal = nullptr;
38293
0
    }
38294
0
38295
0
    subjectPrincipal = principal;
38296
0
  }
38297
0
  self->SetMozFontFeatureSettings(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38298
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38299
0
    return false;
38300
0
  }
38301
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38302
0
38303
0
  return true;
38304
0
}
38305
38306
static const JSJitInfo MozFontFeatureSettings_getterinfo = {
38307
  { (JSJitGetterOp)get_MozFontFeatureSettings },
38308
  { prototypes::id::CSS2Properties },
38309
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38310
  JSJitInfo::Getter,
38311
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38312
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38313
  false,  /* isInfallible. False in setters. */
38314
  false,  /* isMovable.  Not relevant for setters. */
38315
  false, /* isEliminatable.  Not relevant for setters. */
38316
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38317
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38318
  false,  /* isTypedMethod.  Only relevant for methods. */
38319
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38320
};
38321
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38322
static_assert(0 < 1, "There is no slot for us");
38323
static const JSJitInfo MozFontFeatureSettings_setterinfo = {
38324
  { (JSJitGetterOp)set_MozFontFeatureSettings },
38325
  { prototypes::id::CSS2Properties },
38326
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38327
  JSJitInfo::Setter,
38328
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38329
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38330
  false,  /* isInfallible. False in setters. */
38331
  false,  /* isMovable.  Not relevant for setters. */
38332
  false, /* isEliminatable.  Not relevant for setters. */
38333
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38334
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38335
  false,  /* isTypedMethod.  Only relevant for methods. */
38336
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38337
};
38338
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38339
static_assert(0 < 1, "There is no slot for us");
38340
38341
MOZ_CAN_RUN_SCRIPT static bool
38342
get_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38343
0
{
38344
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozFontLanguageOverride", DOM, cx);
38345
0
38346
0
  FastErrorResult rv;
38347
0
  DOMString result;
38348
0
  self->GetMozFontLanguageOverride(result, rv);
38349
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38350
0
    return false;
38351
0
  }
38352
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38353
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38354
0
    return false;
38355
0
  }
38356
0
  return true;
38357
0
}
38358
38359
MOZ_CAN_RUN_SCRIPT static bool
38360
set_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38361
0
{
38362
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozFontLanguageOverride", DOM, cx);
38363
0
38364
0
  binding_detail::FakeString arg0;
38365
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38366
0
    return false;
38367
0
  }
38368
0
  Maybe<AutoCEReaction> ceReaction;
38369
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38370
0
    DocGroup* docGroup = self->GetDocGroup();
38371
0
    if (docGroup) {
38372
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38373
0
    }
38374
0
  }
38375
0
  FastErrorResult rv;
38376
0
  nsIPrincipal* subjectPrincipal;
38377
0
  {
38378
0
    JS::Realm* realm = js::GetContextRealm(cx);
38379
0
    MOZ_ASSERT(realm);
38380
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38381
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38382
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38383
0
      principal = nullptr;
38384
0
    }
38385
0
38386
0
    subjectPrincipal = principal;
38387
0
  }
38388
0
  self->SetMozFontLanguageOverride(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38389
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38390
0
    return false;
38391
0
  }
38392
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38393
0
38394
0
  return true;
38395
0
}
38396
38397
static const JSJitInfo MozFontLanguageOverride_getterinfo = {
38398
  { (JSJitGetterOp)get_MozFontLanguageOverride },
38399
  { prototypes::id::CSS2Properties },
38400
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38401
  JSJitInfo::Getter,
38402
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38403
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38404
  false,  /* isInfallible. False in setters. */
38405
  false,  /* isMovable.  Not relevant for setters. */
38406
  false, /* isEliminatable.  Not relevant for setters. */
38407
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38408
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38409
  false,  /* isTypedMethod.  Only relevant for methods. */
38410
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38411
};
38412
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38413
static_assert(0 < 1, "There is no slot for us");
38414
static const JSJitInfo MozFontLanguageOverride_setterinfo = {
38415
  { (JSJitGetterOp)set_MozFontLanguageOverride },
38416
  { prototypes::id::CSS2Properties },
38417
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38418
  JSJitInfo::Setter,
38419
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38420
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38421
  false,  /* isInfallible. False in setters. */
38422
  false,  /* isMovable.  Not relevant for setters. */
38423
  false, /* isEliminatable.  Not relevant for setters. */
38424
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38425
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38426
  false,  /* isTypedMethod.  Only relevant for methods. */
38427
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38428
};
38429
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38430
static_assert(0 < 1, "There is no slot for us");
38431
38432
MOZ_CAN_RUN_SCRIPT static bool
38433
get_MozHyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38434
0
{
38435
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozHyphens", DOM, cx);
38436
0
38437
0
  FastErrorResult rv;
38438
0
  DOMString result;
38439
0
  self->GetMozHyphens(result, rv);
38440
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38441
0
    return false;
38442
0
  }
38443
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38444
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38445
0
    return false;
38446
0
  }
38447
0
  return true;
38448
0
}
38449
38450
MOZ_CAN_RUN_SCRIPT static bool
38451
set_MozHyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38452
0
{
38453
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozHyphens", DOM, cx);
38454
0
38455
0
  binding_detail::FakeString arg0;
38456
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38457
0
    return false;
38458
0
  }
38459
0
  Maybe<AutoCEReaction> ceReaction;
38460
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38461
0
    DocGroup* docGroup = self->GetDocGroup();
38462
0
    if (docGroup) {
38463
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38464
0
    }
38465
0
  }
38466
0
  FastErrorResult rv;
38467
0
  nsIPrincipal* subjectPrincipal;
38468
0
  {
38469
0
    JS::Realm* realm = js::GetContextRealm(cx);
38470
0
    MOZ_ASSERT(realm);
38471
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38472
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38473
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38474
0
      principal = nullptr;
38475
0
    }
38476
0
38477
0
    subjectPrincipal = principal;
38478
0
  }
38479
0
  self->SetMozHyphens(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38480
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38481
0
    return false;
38482
0
  }
38483
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38484
0
38485
0
  return true;
38486
0
}
38487
38488
static const JSJitInfo MozHyphens_getterinfo = {
38489
  { (JSJitGetterOp)get_MozHyphens },
38490
  { prototypes::id::CSS2Properties },
38491
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38492
  JSJitInfo::Getter,
38493
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38494
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38495
  false,  /* isInfallible. False in setters. */
38496
  false,  /* isMovable.  Not relevant for setters. */
38497
  false, /* isEliminatable.  Not relevant for setters. */
38498
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38499
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38500
  false,  /* isTypedMethod.  Only relevant for methods. */
38501
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38502
};
38503
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38504
static_assert(0 < 1, "There is no slot for us");
38505
static const JSJitInfo MozHyphens_setterinfo = {
38506
  { (JSJitGetterOp)set_MozHyphens },
38507
  { prototypes::id::CSS2Properties },
38508
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38509
  JSJitInfo::Setter,
38510
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38511
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38512
  false,  /* isInfallible. False in setters. */
38513
  false,  /* isMovable.  Not relevant for setters. */
38514
  false, /* isEliminatable.  Not relevant for setters. */
38515
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38516
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38517
  false,  /* isTypedMethod.  Only relevant for methods. */
38518
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38519
};
38520
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38521
static_assert(0 < 1, "There is no slot for us");
38522
38523
MOZ_CAN_RUN_SCRIPT static bool
38524
get_webkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38525
0
{
38526
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTextSizeAdjust", DOM, cx);
38527
0
38528
0
  FastErrorResult rv;
38529
0
  DOMString result;
38530
0
  self->GetWebkitTextSizeAdjust(result, rv);
38531
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38532
0
    return false;
38533
0
  }
38534
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38535
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38536
0
    return false;
38537
0
  }
38538
0
  return true;
38539
0
}
38540
38541
MOZ_CAN_RUN_SCRIPT static bool
38542
set_webkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38543
0
{
38544
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTextSizeAdjust", DOM, cx);
38545
0
38546
0
  binding_detail::FakeString arg0;
38547
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38548
0
    return false;
38549
0
  }
38550
0
  Maybe<AutoCEReaction> ceReaction;
38551
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38552
0
    DocGroup* docGroup = self->GetDocGroup();
38553
0
    if (docGroup) {
38554
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38555
0
    }
38556
0
  }
38557
0
  FastErrorResult rv;
38558
0
  nsIPrincipal* subjectPrincipal;
38559
0
  {
38560
0
    JS::Realm* realm = js::GetContextRealm(cx);
38561
0
    MOZ_ASSERT(realm);
38562
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38563
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38564
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38565
0
      principal = nullptr;
38566
0
    }
38567
0
38568
0
    subjectPrincipal = principal;
38569
0
  }
38570
0
  self->SetWebkitTextSizeAdjust(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38571
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38572
0
    return false;
38573
0
  }
38574
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38575
0
38576
0
  return true;
38577
0
}
38578
38579
static const JSJitInfo webkitTextSizeAdjust_getterinfo = {
38580
  { (JSJitGetterOp)get_webkitTextSizeAdjust },
38581
  { prototypes::id::CSS2Properties },
38582
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38583
  JSJitInfo::Getter,
38584
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38585
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38586
  false,  /* isInfallible. False in setters. */
38587
  false,  /* isMovable.  Not relevant for setters. */
38588
  false, /* isEliminatable.  Not relevant for setters. */
38589
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38590
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38591
  false,  /* isTypedMethod.  Only relevant for methods. */
38592
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38593
};
38594
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38595
static_assert(0 < 1, "There is no slot for us");
38596
static const JSJitInfo webkitTextSizeAdjust_setterinfo = {
38597
  { (JSJitGetterOp)set_webkitTextSizeAdjust },
38598
  { prototypes::id::CSS2Properties },
38599
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38600
  JSJitInfo::Setter,
38601
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38602
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38603
  false,  /* isInfallible. False in setters. */
38604
  false,  /* isMovable.  Not relevant for setters. */
38605
  false, /* isEliminatable.  Not relevant for setters. */
38606
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38607
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38608
  false,  /* isTypedMethod.  Only relevant for methods. */
38609
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38610
};
38611
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38612
static_assert(0 < 1, "There is no slot for us");
38613
38614
MOZ_CAN_RUN_SCRIPT static bool
38615
get_wordWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38616
0
{
38617
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.wordWrap", DOM, cx);
38618
0
38619
0
  FastErrorResult rv;
38620
0
  DOMString result;
38621
0
  self->GetWordWrap(result, rv);
38622
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38623
0
    return false;
38624
0
  }
38625
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38626
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38627
0
    return false;
38628
0
  }
38629
0
  return true;
38630
0
}
38631
38632
MOZ_CAN_RUN_SCRIPT static bool
38633
set_wordWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38634
0
{
38635
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.wordWrap", DOM, cx);
38636
0
38637
0
  binding_detail::FakeString arg0;
38638
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38639
0
    return false;
38640
0
  }
38641
0
  Maybe<AutoCEReaction> ceReaction;
38642
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38643
0
    DocGroup* docGroup = self->GetDocGroup();
38644
0
    if (docGroup) {
38645
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38646
0
    }
38647
0
  }
38648
0
  FastErrorResult rv;
38649
0
  nsIPrincipal* subjectPrincipal;
38650
0
  {
38651
0
    JS::Realm* realm = js::GetContextRealm(cx);
38652
0
    MOZ_ASSERT(realm);
38653
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38654
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38655
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38656
0
      principal = nullptr;
38657
0
    }
38658
0
38659
0
    subjectPrincipal = principal;
38660
0
  }
38661
0
  self->SetWordWrap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38662
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38663
0
    return false;
38664
0
  }
38665
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38666
0
38667
0
  return true;
38668
0
}
38669
38670
static const JSJitInfo wordWrap_getterinfo = {
38671
  { (JSJitGetterOp)get_wordWrap },
38672
  { prototypes::id::CSS2Properties },
38673
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38674
  JSJitInfo::Getter,
38675
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38676
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38677
  false,  /* isInfallible. False in setters. */
38678
  false,  /* isMovable.  Not relevant for setters. */
38679
  false, /* isEliminatable.  Not relevant for setters. */
38680
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38681
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38682
  false,  /* isTypedMethod.  Only relevant for methods. */
38683
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38684
};
38685
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38686
static_assert(0 < 1, "There is no slot for us");
38687
static const JSJitInfo wordWrap_setterinfo = {
38688
  { (JSJitGetterOp)set_wordWrap },
38689
  { prototypes::id::CSS2Properties },
38690
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38691
  JSJitInfo::Setter,
38692
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38693
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38694
  false,  /* isInfallible. False in setters. */
38695
  false,  /* isMovable.  Not relevant for setters. */
38696
  false, /* isEliminatable.  Not relevant for setters. */
38697
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38698
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38699
  false,  /* isTypedMethod.  Only relevant for methods. */
38700
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38701
};
38702
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38703
static_assert(0 < 1, "There is no slot for us");
38704
38705
MOZ_CAN_RUN_SCRIPT static bool
38706
get_MozMarginStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38707
0
{
38708
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozMarginStart", DOM, cx);
38709
0
38710
0
  FastErrorResult rv;
38711
0
  DOMString result;
38712
0
  self->GetMozMarginStart(result, rv);
38713
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38714
0
    return false;
38715
0
  }
38716
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38717
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38718
0
    return false;
38719
0
  }
38720
0
  return true;
38721
0
}
38722
38723
MOZ_CAN_RUN_SCRIPT static bool
38724
set_MozMarginStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38725
0
{
38726
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozMarginStart", DOM, cx);
38727
0
38728
0
  binding_detail::FakeString arg0;
38729
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38730
0
    return false;
38731
0
  }
38732
0
  Maybe<AutoCEReaction> ceReaction;
38733
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38734
0
    DocGroup* docGroup = self->GetDocGroup();
38735
0
    if (docGroup) {
38736
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38737
0
    }
38738
0
  }
38739
0
  FastErrorResult rv;
38740
0
  nsIPrincipal* subjectPrincipal;
38741
0
  {
38742
0
    JS::Realm* realm = js::GetContextRealm(cx);
38743
0
    MOZ_ASSERT(realm);
38744
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38745
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38746
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38747
0
      principal = nullptr;
38748
0
    }
38749
0
38750
0
    subjectPrincipal = principal;
38751
0
  }
38752
0
  self->SetMozMarginStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38753
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38754
0
    return false;
38755
0
  }
38756
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38757
0
38758
0
  return true;
38759
0
}
38760
38761
static const JSJitInfo MozMarginStart_getterinfo = {
38762
  { (JSJitGetterOp)get_MozMarginStart },
38763
  { prototypes::id::CSS2Properties },
38764
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38765
  JSJitInfo::Getter,
38766
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38767
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38768
  false,  /* isInfallible. False in setters. */
38769
  false,  /* isMovable.  Not relevant for setters. */
38770
  false, /* isEliminatable.  Not relevant for setters. */
38771
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38772
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38773
  false,  /* isTypedMethod.  Only relevant for methods. */
38774
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38775
};
38776
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38777
static_assert(0 < 1, "There is no slot for us");
38778
static const JSJitInfo MozMarginStart_setterinfo = {
38779
  { (JSJitGetterOp)set_MozMarginStart },
38780
  { prototypes::id::CSS2Properties },
38781
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38782
  JSJitInfo::Setter,
38783
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38784
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38785
  false,  /* isInfallible. False in setters. */
38786
  false,  /* isMovable.  Not relevant for setters. */
38787
  false, /* isEliminatable.  Not relevant for setters. */
38788
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38789
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38790
  false,  /* isTypedMethod.  Only relevant for methods. */
38791
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38792
};
38793
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38794
static_assert(0 < 1, "There is no slot for us");
38795
38796
MOZ_CAN_RUN_SCRIPT static bool
38797
get_MozMarginEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38798
0
{
38799
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozMarginEnd", DOM, cx);
38800
0
38801
0
  FastErrorResult rv;
38802
0
  DOMString result;
38803
0
  self->GetMozMarginEnd(result, rv);
38804
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38805
0
    return false;
38806
0
  }
38807
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38808
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38809
0
    return false;
38810
0
  }
38811
0
  return true;
38812
0
}
38813
38814
MOZ_CAN_RUN_SCRIPT static bool
38815
set_MozMarginEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38816
0
{
38817
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozMarginEnd", DOM, cx);
38818
0
38819
0
  binding_detail::FakeString arg0;
38820
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38821
0
    return false;
38822
0
  }
38823
0
  Maybe<AutoCEReaction> ceReaction;
38824
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38825
0
    DocGroup* docGroup = self->GetDocGroup();
38826
0
    if (docGroup) {
38827
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38828
0
    }
38829
0
  }
38830
0
  FastErrorResult rv;
38831
0
  nsIPrincipal* subjectPrincipal;
38832
0
  {
38833
0
    JS::Realm* realm = js::GetContextRealm(cx);
38834
0
    MOZ_ASSERT(realm);
38835
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38836
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38837
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38838
0
      principal = nullptr;
38839
0
    }
38840
0
38841
0
    subjectPrincipal = principal;
38842
0
  }
38843
0
  self->SetMozMarginEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38844
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38845
0
    return false;
38846
0
  }
38847
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38848
0
38849
0
  return true;
38850
0
}
38851
38852
static const JSJitInfo MozMarginEnd_getterinfo = {
38853
  { (JSJitGetterOp)get_MozMarginEnd },
38854
  { prototypes::id::CSS2Properties },
38855
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38856
  JSJitInfo::Getter,
38857
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38858
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38859
  false,  /* isInfallible. False in setters. */
38860
  false,  /* isMovable.  Not relevant for setters. */
38861
  false, /* isEliminatable.  Not relevant for setters. */
38862
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38863
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38864
  false,  /* isTypedMethod.  Only relevant for methods. */
38865
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38866
};
38867
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38868
static_assert(0 < 1, "There is no slot for us");
38869
static const JSJitInfo MozMarginEnd_setterinfo = {
38870
  { (JSJitGetterOp)set_MozMarginEnd },
38871
  { prototypes::id::CSS2Properties },
38872
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38873
  JSJitInfo::Setter,
38874
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38875
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38876
  false,  /* isInfallible. False in setters. */
38877
  false,  /* isMovable.  Not relevant for setters. */
38878
  false, /* isEliminatable.  Not relevant for setters. */
38879
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38880
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38881
  false,  /* isTypedMethod.  Only relevant for methods. */
38882
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38883
};
38884
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38885
static_assert(0 < 1, "There is no slot for us");
38886
38887
MOZ_CAN_RUN_SCRIPT static bool
38888
get_MozPaddingStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38889
0
{
38890
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozPaddingStart", DOM, cx);
38891
0
38892
0
  FastErrorResult rv;
38893
0
  DOMString result;
38894
0
  self->GetMozPaddingStart(result, rv);
38895
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38896
0
    return false;
38897
0
  }
38898
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38899
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38900
0
    return false;
38901
0
  }
38902
0
  return true;
38903
0
}
38904
38905
MOZ_CAN_RUN_SCRIPT static bool
38906
set_MozPaddingStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38907
0
{
38908
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozPaddingStart", DOM, cx);
38909
0
38910
0
  binding_detail::FakeString arg0;
38911
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
38912
0
    return false;
38913
0
  }
38914
0
  Maybe<AutoCEReaction> ceReaction;
38915
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
38916
0
    DocGroup* docGroup = self->GetDocGroup();
38917
0
    if (docGroup) {
38918
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
38919
0
    }
38920
0
  }
38921
0
  FastErrorResult rv;
38922
0
  nsIPrincipal* subjectPrincipal;
38923
0
  {
38924
0
    JS::Realm* realm = js::GetContextRealm(cx);
38925
0
    MOZ_ASSERT(realm);
38926
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
38927
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
38928
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
38929
0
      principal = nullptr;
38930
0
    }
38931
0
38932
0
    subjectPrincipal = principal;
38933
0
  }
38934
0
  self->SetMozPaddingStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
38935
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38936
0
    return false;
38937
0
  }
38938
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38939
0
38940
0
  return true;
38941
0
}
38942
38943
static const JSJitInfo MozPaddingStart_getterinfo = {
38944
  { (JSJitGetterOp)get_MozPaddingStart },
38945
  { prototypes::id::CSS2Properties },
38946
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38947
  JSJitInfo::Getter,
38948
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38949
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
38950
  false,  /* isInfallible. False in setters. */
38951
  false,  /* isMovable.  Not relevant for setters. */
38952
  false, /* isEliminatable.  Not relevant for setters. */
38953
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38954
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38955
  false,  /* isTypedMethod.  Only relevant for methods. */
38956
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38957
};
38958
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38959
static_assert(0 < 1, "There is no slot for us");
38960
static const JSJitInfo MozPaddingStart_setterinfo = {
38961
  { (JSJitGetterOp)set_MozPaddingStart },
38962
  { prototypes::id::CSS2Properties },
38963
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
38964
  JSJitInfo::Setter,
38965
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
38966
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
38967
  false,  /* isInfallible. False in setters. */
38968
  false,  /* isMovable.  Not relevant for setters. */
38969
  false, /* isEliminatable.  Not relevant for setters. */
38970
  false, /* isAlwaysInSlot.  Only relevant for getters. */
38971
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
38972
  false,  /* isTypedMethod.  Only relevant for methods. */
38973
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
38974
};
38975
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
38976
static_assert(0 < 1, "There is no slot for us");
38977
38978
MOZ_CAN_RUN_SCRIPT static bool
38979
get_MozPaddingEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
38980
0
{
38981
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozPaddingEnd", DOM, cx);
38982
0
38983
0
  FastErrorResult rv;
38984
0
  DOMString result;
38985
0
  self->GetMozPaddingEnd(result, rv);
38986
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
38987
0
    return false;
38988
0
  }
38989
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
38990
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
38991
0
    return false;
38992
0
  }
38993
0
  return true;
38994
0
}
38995
38996
MOZ_CAN_RUN_SCRIPT static bool
38997
set_MozPaddingEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
38998
0
{
38999
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozPaddingEnd", DOM, cx);
39000
0
39001
0
  binding_detail::FakeString arg0;
39002
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39003
0
    return false;
39004
0
  }
39005
0
  Maybe<AutoCEReaction> ceReaction;
39006
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39007
0
    DocGroup* docGroup = self->GetDocGroup();
39008
0
    if (docGroup) {
39009
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39010
0
    }
39011
0
  }
39012
0
  FastErrorResult rv;
39013
0
  nsIPrincipal* subjectPrincipal;
39014
0
  {
39015
0
    JS::Realm* realm = js::GetContextRealm(cx);
39016
0
    MOZ_ASSERT(realm);
39017
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39018
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39019
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39020
0
      principal = nullptr;
39021
0
    }
39022
0
39023
0
    subjectPrincipal = principal;
39024
0
  }
39025
0
  self->SetMozPaddingEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39026
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39027
0
    return false;
39028
0
  }
39029
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39030
0
39031
0
  return true;
39032
0
}
39033
39034
static const JSJitInfo MozPaddingEnd_getterinfo = {
39035
  { (JSJitGetterOp)get_MozPaddingEnd },
39036
  { prototypes::id::CSS2Properties },
39037
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39038
  JSJitInfo::Getter,
39039
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39040
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39041
  false,  /* isInfallible. False in setters. */
39042
  false,  /* isMovable.  Not relevant for setters. */
39043
  false, /* isEliminatable.  Not relevant for setters. */
39044
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39045
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39046
  false,  /* isTypedMethod.  Only relevant for methods. */
39047
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39048
};
39049
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39050
static_assert(0 < 1, "There is no slot for us");
39051
static const JSJitInfo MozPaddingEnd_setterinfo = {
39052
  { (JSJitGetterOp)set_MozPaddingEnd },
39053
  { prototypes::id::CSS2Properties },
39054
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39055
  JSJitInfo::Setter,
39056
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39057
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39058
  false,  /* isInfallible. False in setters. */
39059
  false,  /* isMovable.  Not relevant for setters. */
39060
  false, /* isEliminatable.  Not relevant for setters. */
39061
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39062
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39063
  false,  /* isTypedMethod.  Only relevant for methods. */
39064
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39065
};
39066
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39067
static_assert(0 < 1, "There is no slot for us");
39068
39069
MOZ_CAN_RUN_SCRIPT static bool
39070
get_offsetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39071
0
{
39072
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.offsetBlockStart", DOM, cx);
39073
0
39074
0
  FastErrorResult rv;
39075
0
  DOMString result;
39076
0
  self->GetOffsetBlockStart(result, rv);
39077
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39078
0
    return false;
39079
0
  }
39080
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39081
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39082
0
    return false;
39083
0
  }
39084
0
  return true;
39085
0
}
39086
39087
MOZ_CAN_RUN_SCRIPT static bool
39088
set_offsetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39089
0
{
39090
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.offsetBlockStart", DOM, cx);
39091
0
39092
0
  binding_detail::FakeString arg0;
39093
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39094
0
    return false;
39095
0
  }
39096
0
  Maybe<AutoCEReaction> ceReaction;
39097
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39098
0
    DocGroup* docGroup = self->GetDocGroup();
39099
0
    if (docGroup) {
39100
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39101
0
    }
39102
0
  }
39103
0
  FastErrorResult rv;
39104
0
  nsIPrincipal* subjectPrincipal;
39105
0
  {
39106
0
    JS::Realm* realm = js::GetContextRealm(cx);
39107
0
    MOZ_ASSERT(realm);
39108
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39109
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39110
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39111
0
      principal = nullptr;
39112
0
    }
39113
0
39114
0
    subjectPrincipal = principal;
39115
0
  }
39116
0
  self->SetOffsetBlockStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39117
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39118
0
    return false;
39119
0
  }
39120
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39121
0
39122
0
  return true;
39123
0
}
39124
39125
static const JSJitInfo offsetBlockStart_getterinfo = {
39126
  { (JSJitGetterOp)get_offsetBlockStart },
39127
  { prototypes::id::CSS2Properties },
39128
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39129
  JSJitInfo::Getter,
39130
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39131
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39132
  false,  /* isInfallible. False in setters. */
39133
  false,  /* isMovable.  Not relevant for setters. */
39134
  false, /* isEliminatable.  Not relevant for setters. */
39135
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39136
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39137
  false,  /* isTypedMethod.  Only relevant for methods. */
39138
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39139
};
39140
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39141
static_assert(0 < 1, "There is no slot for us");
39142
static const JSJitInfo offsetBlockStart_setterinfo = {
39143
  { (JSJitGetterOp)set_offsetBlockStart },
39144
  { prototypes::id::CSS2Properties },
39145
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39146
  JSJitInfo::Setter,
39147
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39148
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39149
  false,  /* isInfallible. False in setters. */
39150
  false,  /* isMovable.  Not relevant for setters. */
39151
  false, /* isEliminatable.  Not relevant for setters. */
39152
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39153
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39154
  false,  /* isTypedMethod.  Only relevant for methods. */
39155
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39156
};
39157
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39158
static_assert(0 < 1, "There is no slot for us");
39159
39160
MOZ_CAN_RUN_SCRIPT static bool
39161
get_offsetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39162
0
{
39163
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.offsetBlockEnd", DOM, cx);
39164
0
39165
0
  FastErrorResult rv;
39166
0
  DOMString result;
39167
0
  self->GetOffsetBlockEnd(result, rv);
39168
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39169
0
    return false;
39170
0
  }
39171
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39172
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39173
0
    return false;
39174
0
  }
39175
0
  return true;
39176
0
}
39177
39178
MOZ_CAN_RUN_SCRIPT static bool
39179
set_offsetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39180
0
{
39181
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.offsetBlockEnd", DOM, cx);
39182
0
39183
0
  binding_detail::FakeString arg0;
39184
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39185
0
    return false;
39186
0
  }
39187
0
  Maybe<AutoCEReaction> ceReaction;
39188
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39189
0
    DocGroup* docGroup = self->GetDocGroup();
39190
0
    if (docGroup) {
39191
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39192
0
    }
39193
0
  }
39194
0
  FastErrorResult rv;
39195
0
  nsIPrincipal* subjectPrincipal;
39196
0
  {
39197
0
    JS::Realm* realm = js::GetContextRealm(cx);
39198
0
    MOZ_ASSERT(realm);
39199
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39200
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39201
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39202
0
      principal = nullptr;
39203
0
    }
39204
0
39205
0
    subjectPrincipal = principal;
39206
0
  }
39207
0
  self->SetOffsetBlockEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39208
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39209
0
    return false;
39210
0
  }
39211
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39212
0
39213
0
  return true;
39214
0
}
39215
39216
static const JSJitInfo offsetBlockEnd_getterinfo = {
39217
  { (JSJitGetterOp)get_offsetBlockEnd },
39218
  { prototypes::id::CSS2Properties },
39219
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39220
  JSJitInfo::Getter,
39221
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39222
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39223
  false,  /* isInfallible. False in setters. */
39224
  false,  /* isMovable.  Not relevant for setters. */
39225
  false, /* isEliminatable.  Not relevant for setters. */
39226
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39227
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39228
  false,  /* isTypedMethod.  Only relevant for methods. */
39229
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39230
};
39231
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39232
static_assert(0 < 1, "There is no slot for us");
39233
static const JSJitInfo offsetBlockEnd_setterinfo = {
39234
  { (JSJitGetterOp)set_offsetBlockEnd },
39235
  { prototypes::id::CSS2Properties },
39236
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39237
  JSJitInfo::Setter,
39238
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39239
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39240
  false,  /* isInfallible. False in setters. */
39241
  false,  /* isMovable.  Not relevant for setters. */
39242
  false, /* isEliminatable.  Not relevant for setters. */
39243
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39244
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39245
  false,  /* isTypedMethod.  Only relevant for methods. */
39246
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39247
};
39248
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39249
static_assert(0 < 1, "There is no slot for us");
39250
39251
MOZ_CAN_RUN_SCRIPT static bool
39252
get_offsetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39253
0
{
39254
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.offsetInlineStart", DOM, cx);
39255
0
39256
0
  FastErrorResult rv;
39257
0
  DOMString result;
39258
0
  self->GetOffsetInlineStart(result, rv);
39259
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39260
0
    return false;
39261
0
  }
39262
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39263
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39264
0
    return false;
39265
0
  }
39266
0
  return true;
39267
0
}
39268
39269
MOZ_CAN_RUN_SCRIPT static bool
39270
set_offsetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39271
0
{
39272
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.offsetInlineStart", DOM, cx);
39273
0
39274
0
  binding_detail::FakeString arg0;
39275
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39276
0
    return false;
39277
0
  }
39278
0
  Maybe<AutoCEReaction> ceReaction;
39279
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39280
0
    DocGroup* docGroup = self->GetDocGroup();
39281
0
    if (docGroup) {
39282
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39283
0
    }
39284
0
  }
39285
0
  FastErrorResult rv;
39286
0
  nsIPrincipal* subjectPrincipal;
39287
0
  {
39288
0
    JS::Realm* realm = js::GetContextRealm(cx);
39289
0
    MOZ_ASSERT(realm);
39290
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39291
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39292
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39293
0
      principal = nullptr;
39294
0
    }
39295
0
39296
0
    subjectPrincipal = principal;
39297
0
  }
39298
0
  self->SetOffsetInlineStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39299
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39300
0
    return false;
39301
0
  }
39302
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39303
0
39304
0
  return true;
39305
0
}
39306
39307
static const JSJitInfo offsetInlineStart_getterinfo = {
39308
  { (JSJitGetterOp)get_offsetInlineStart },
39309
  { prototypes::id::CSS2Properties },
39310
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39311
  JSJitInfo::Getter,
39312
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39313
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39314
  false,  /* isInfallible. False in setters. */
39315
  false,  /* isMovable.  Not relevant for setters. */
39316
  false, /* isEliminatable.  Not relevant for setters. */
39317
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39318
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39319
  false,  /* isTypedMethod.  Only relevant for methods. */
39320
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39321
};
39322
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39323
static_assert(0 < 1, "There is no slot for us");
39324
static const JSJitInfo offsetInlineStart_setterinfo = {
39325
  { (JSJitGetterOp)set_offsetInlineStart },
39326
  { prototypes::id::CSS2Properties },
39327
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39328
  JSJitInfo::Setter,
39329
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39330
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39331
  false,  /* isInfallible. False in setters. */
39332
  false,  /* isMovable.  Not relevant for setters. */
39333
  false, /* isEliminatable.  Not relevant for setters. */
39334
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39335
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39336
  false,  /* isTypedMethod.  Only relevant for methods. */
39337
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39338
};
39339
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39340
static_assert(0 < 1, "There is no slot for us");
39341
39342
MOZ_CAN_RUN_SCRIPT static bool
39343
get_offsetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39344
0
{
39345
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.offsetInlineEnd", DOM, cx);
39346
0
39347
0
  FastErrorResult rv;
39348
0
  DOMString result;
39349
0
  self->GetOffsetInlineEnd(result, rv);
39350
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39351
0
    return false;
39352
0
  }
39353
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39354
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39355
0
    return false;
39356
0
  }
39357
0
  return true;
39358
0
}
39359
39360
MOZ_CAN_RUN_SCRIPT static bool
39361
set_offsetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39362
0
{
39363
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.offsetInlineEnd", DOM, cx);
39364
0
39365
0
  binding_detail::FakeString arg0;
39366
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39367
0
    return false;
39368
0
  }
39369
0
  Maybe<AutoCEReaction> ceReaction;
39370
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39371
0
    DocGroup* docGroup = self->GetDocGroup();
39372
0
    if (docGroup) {
39373
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39374
0
    }
39375
0
  }
39376
0
  FastErrorResult rv;
39377
0
  nsIPrincipal* subjectPrincipal;
39378
0
  {
39379
0
    JS::Realm* realm = js::GetContextRealm(cx);
39380
0
    MOZ_ASSERT(realm);
39381
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39382
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39383
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39384
0
      principal = nullptr;
39385
0
    }
39386
0
39387
0
    subjectPrincipal = principal;
39388
0
  }
39389
0
  self->SetOffsetInlineEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39390
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39391
0
    return false;
39392
0
  }
39393
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39394
0
39395
0
  return true;
39396
0
}
39397
39398
static const JSJitInfo offsetInlineEnd_getterinfo = {
39399
  { (JSJitGetterOp)get_offsetInlineEnd },
39400
  { prototypes::id::CSS2Properties },
39401
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39402
  JSJitInfo::Getter,
39403
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39404
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39405
  false,  /* isInfallible. False in setters. */
39406
  false,  /* isMovable.  Not relevant for setters. */
39407
  false, /* isEliminatable.  Not relevant for setters. */
39408
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39409
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39410
  false,  /* isTypedMethod.  Only relevant for methods. */
39411
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39412
};
39413
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39414
static_assert(0 < 1, "There is no slot for us");
39415
static const JSJitInfo offsetInlineEnd_setterinfo = {
39416
  { (JSJitGetterOp)set_offsetInlineEnd },
39417
  { prototypes::id::CSS2Properties },
39418
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39419
  JSJitInfo::Setter,
39420
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39421
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39422
  false,  /* isInfallible. False in setters. */
39423
  false,  /* isMovable.  Not relevant for setters. */
39424
  false, /* isEliminatable.  Not relevant for setters. */
39425
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39426
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39427
  false,  /* isTypedMethod.  Only relevant for methods. */
39428
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39429
};
39430
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39431
static_assert(0 < 1, "There is no slot for us");
39432
39433
MOZ_CAN_RUN_SCRIPT static bool
39434
get_webkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39435
0
{
39436
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexDirection", DOM, cx);
39437
0
39438
0
  FastErrorResult rv;
39439
0
  DOMString result;
39440
0
  self->GetWebkitFlexDirection(result, rv);
39441
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39442
0
    return false;
39443
0
  }
39444
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39445
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39446
0
    return false;
39447
0
  }
39448
0
  return true;
39449
0
}
39450
39451
MOZ_CAN_RUN_SCRIPT static bool
39452
set_webkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39453
0
{
39454
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexDirection", DOM, cx);
39455
0
39456
0
  binding_detail::FakeString arg0;
39457
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39458
0
    return false;
39459
0
  }
39460
0
  Maybe<AutoCEReaction> ceReaction;
39461
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39462
0
    DocGroup* docGroup = self->GetDocGroup();
39463
0
    if (docGroup) {
39464
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39465
0
    }
39466
0
  }
39467
0
  FastErrorResult rv;
39468
0
  nsIPrincipal* subjectPrincipal;
39469
0
  {
39470
0
    JS::Realm* realm = js::GetContextRealm(cx);
39471
0
    MOZ_ASSERT(realm);
39472
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39473
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39474
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39475
0
      principal = nullptr;
39476
0
    }
39477
0
39478
0
    subjectPrincipal = principal;
39479
0
  }
39480
0
  self->SetWebkitFlexDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39481
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39482
0
    return false;
39483
0
  }
39484
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39485
0
39486
0
  return true;
39487
0
}
39488
39489
static const JSJitInfo webkitFlexDirection_getterinfo = {
39490
  { (JSJitGetterOp)get_webkitFlexDirection },
39491
  { prototypes::id::CSS2Properties },
39492
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39493
  JSJitInfo::Getter,
39494
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39495
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39496
  false,  /* isInfallible. False in setters. */
39497
  false,  /* isMovable.  Not relevant for setters. */
39498
  false, /* isEliminatable.  Not relevant for setters. */
39499
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39500
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39501
  false,  /* isTypedMethod.  Only relevant for methods. */
39502
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39503
};
39504
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39505
static_assert(0 < 1, "There is no slot for us");
39506
static const JSJitInfo webkitFlexDirection_setterinfo = {
39507
  { (JSJitGetterOp)set_webkitFlexDirection },
39508
  { prototypes::id::CSS2Properties },
39509
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39510
  JSJitInfo::Setter,
39511
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39512
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39513
  false,  /* isInfallible. False in setters. */
39514
  false,  /* isMovable.  Not relevant for setters. */
39515
  false, /* isEliminatable.  Not relevant for setters. */
39516
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39517
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39518
  false,  /* isTypedMethod.  Only relevant for methods. */
39519
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39520
};
39521
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39522
static_assert(0 < 1, "There is no slot for us");
39523
39524
MOZ_CAN_RUN_SCRIPT static bool
39525
get_webkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39526
0
{
39527
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexWrap", DOM, cx);
39528
0
39529
0
  FastErrorResult rv;
39530
0
  DOMString result;
39531
0
  self->GetWebkitFlexWrap(result, rv);
39532
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39533
0
    return false;
39534
0
  }
39535
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39536
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39537
0
    return false;
39538
0
  }
39539
0
  return true;
39540
0
}
39541
39542
MOZ_CAN_RUN_SCRIPT static bool
39543
set_webkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39544
0
{
39545
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexWrap", DOM, cx);
39546
0
39547
0
  binding_detail::FakeString arg0;
39548
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39549
0
    return false;
39550
0
  }
39551
0
  Maybe<AutoCEReaction> ceReaction;
39552
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39553
0
    DocGroup* docGroup = self->GetDocGroup();
39554
0
    if (docGroup) {
39555
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39556
0
    }
39557
0
  }
39558
0
  FastErrorResult rv;
39559
0
  nsIPrincipal* subjectPrincipal;
39560
0
  {
39561
0
    JS::Realm* realm = js::GetContextRealm(cx);
39562
0
    MOZ_ASSERT(realm);
39563
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39564
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39565
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39566
0
      principal = nullptr;
39567
0
    }
39568
0
39569
0
    subjectPrincipal = principal;
39570
0
  }
39571
0
  self->SetWebkitFlexWrap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39572
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39573
0
    return false;
39574
0
  }
39575
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39576
0
39577
0
  return true;
39578
0
}
39579
39580
static const JSJitInfo webkitFlexWrap_getterinfo = {
39581
  { (JSJitGetterOp)get_webkitFlexWrap },
39582
  { prototypes::id::CSS2Properties },
39583
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39584
  JSJitInfo::Getter,
39585
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39586
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39587
  false,  /* isInfallible. False in setters. */
39588
  false,  /* isMovable.  Not relevant for setters. */
39589
  false, /* isEliminatable.  Not relevant for setters. */
39590
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39591
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39592
  false,  /* isTypedMethod.  Only relevant for methods. */
39593
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39594
};
39595
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39596
static_assert(0 < 1, "There is no slot for us");
39597
static const JSJitInfo webkitFlexWrap_setterinfo = {
39598
  { (JSJitGetterOp)set_webkitFlexWrap },
39599
  { prototypes::id::CSS2Properties },
39600
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39601
  JSJitInfo::Setter,
39602
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39603
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39604
  false,  /* isInfallible. False in setters. */
39605
  false,  /* isMovable.  Not relevant for setters. */
39606
  false, /* isEliminatable.  Not relevant for setters. */
39607
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39608
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39609
  false,  /* isTypedMethod.  Only relevant for methods. */
39610
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39611
};
39612
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39613
static_assert(0 < 1, "There is no slot for us");
39614
39615
MOZ_CAN_RUN_SCRIPT static bool
39616
get_webkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39617
0
{
39618
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitJustifyContent", DOM, cx);
39619
0
39620
0
  FastErrorResult rv;
39621
0
  DOMString result;
39622
0
  self->GetWebkitJustifyContent(result, rv);
39623
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39624
0
    return false;
39625
0
  }
39626
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39627
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39628
0
    return false;
39629
0
  }
39630
0
  return true;
39631
0
}
39632
39633
MOZ_CAN_RUN_SCRIPT static bool
39634
set_webkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39635
0
{
39636
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitJustifyContent", DOM, cx);
39637
0
39638
0
  binding_detail::FakeString arg0;
39639
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39640
0
    return false;
39641
0
  }
39642
0
  Maybe<AutoCEReaction> ceReaction;
39643
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39644
0
    DocGroup* docGroup = self->GetDocGroup();
39645
0
    if (docGroup) {
39646
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39647
0
    }
39648
0
  }
39649
0
  FastErrorResult rv;
39650
0
  nsIPrincipal* subjectPrincipal;
39651
0
  {
39652
0
    JS::Realm* realm = js::GetContextRealm(cx);
39653
0
    MOZ_ASSERT(realm);
39654
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39655
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39656
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39657
0
      principal = nullptr;
39658
0
    }
39659
0
39660
0
    subjectPrincipal = principal;
39661
0
  }
39662
0
  self->SetWebkitJustifyContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39663
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39664
0
    return false;
39665
0
  }
39666
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39667
0
39668
0
  return true;
39669
0
}
39670
39671
static const JSJitInfo webkitJustifyContent_getterinfo = {
39672
  { (JSJitGetterOp)get_webkitJustifyContent },
39673
  { prototypes::id::CSS2Properties },
39674
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39675
  JSJitInfo::Getter,
39676
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39677
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39678
  false,  /* isInfallible. False in setters. */
39679
  false,  /* isMovable.  Not relevant for setters. */
39680
  false, /* isEliminatable.  Not relevant for setters. */
39681
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39682
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39683
  false,  /* isTypedMethod.  Only relevant for methods. */
39684
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39685
};
39686
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39687
static_assert(0 < 1, "There is no slot for us");
39688
static const JSJitInfo webkitJustifyContent_setterinfo = {
39689
  { (JSJitGetterOp)set_webkitJustifyContent },
39690
  { prototypes::id::CSS2Properties },
39691
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39692
  JSJitInfo::Setter,
39693
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39694
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39695
  false,  /* isInfallible. False in setters. */
39696
  false,  /* isMovable.  Not relevant for setters. */
39697
  false, /* isEliminatable.  Not relevant for setters. */
39698
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39699
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39700
  false,  /* isTypedMethod.  Only relevant for methods. */
39701
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39702
};
39703
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39704
static_assert(0 < 1, "There is no slot for us");
39705
39706
MOZ_CAN_RUN_SCRIPT static bool
39707
get_webkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39708
0
{
39709
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAlignContent", DOM, cx);
39710
0
39711
0
  FastErrorResult rv;
39712
0
  DOMString result;
39713
0
  self->GetWebkitAlignContent(result, rv);
39714
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39715
0
    return false;
39716
0
  }
39717
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39718
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39719
0
    return false;
39720
0
  }
39721
0
  return true;
39722
0
}
39723
39724
MOZ_CAN_RUN_SCRIPT static bool
39725
set_webkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39726
0
{
39727
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAlignContent", DOM, cx);
39728
0
39729
0
  binding_detail::FakeString arg0;
39730
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39731
0
    return false;
39732
0
  }
39733
0
  Maybe<AutoCEReaction> ceReaction;
39734
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39735
0
    DocGroup* docGroup = self->GetDocGroup();
39736
0
    if (docGroup) {
39737
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39738
0
    }
39739
0
  }
39740
0
  FastErrorResult rv;
39741
0
  nsIPrincipal* subjectPrincipal;
39742
0
  {
39743
0
    JS::Realm* realm = js::GetContextRealm(cx);
39744
0
    MOZ_ASSERT(realm);
39745
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39746
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39747
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39748
0
      principal = nullptr;
39749
0
    }
39750
0
39751
0
    subjectPrincipal = principal;
39752
0
  }
39753
0
  self->SetWebkitAlignContent(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39754
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39755
0
    return false;
39756
0
  }
39757
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39758
0
39759
0
  return true;
39760
0
}
39761
39762
static const JSJitInfo webkitAlignContent_getterinfo = {
39763
  { (JSJitGetterOp)get_webkitAlignContent },
39764
  { prototypes::id::CSS2Properties },
39765
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39766
  JSJitInfo::Getter,
39767
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39768
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39769
  false,  /* isInfallible. False in setters. */
39770
  false,  /* isMovable.  Not relevant for setters. */
39771
  false, /* isEliminatable.  Not relevant for setters. */
39772
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39773
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39774
  false,  /* isTypedMethod.  Only relevant for methods. */
39775
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39776
};
39777
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39778
static_assert(0 < 1, "There is no slot for us");
39779
static const JSJitInfo webkitAlignContent_setterinfo = {
39780
  { (JSJitGetterOp)set_webkitAlignContent },
39781
  { prototypes::id::CSS2Properties },
39782
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39783
  JSJitInfo::Setter,
39784
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39785
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39786
  false,  /* isInfallible. False in setters. */
39787
  false,  /* isMovable.  Not relevant for setters. */
39788
  false, /* isEliminatable.  Not relevant for setters. */
39789
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39790
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39791
  false,  /* isTypedMethod.  Only relevant for methods. */
39792
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39793
};
39794
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39795
static_assert(0 < 1, "There is no slot for us");
39796
39797
MOZ_CAN_RUN_SCRIPT static bool
39798
get_webkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39799
0
{
39800
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAlignItems", DOM, cx);
39801
0
39802
0
  FastErrorResult rv;
39803
0
  DOMString result;
39804
0
  self->GetWebkitAlignItems(result, rv);
39805
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39806
0
    return false;
39807
0
  }
39808
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39809
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39810
0
    return false;
39811
0
  }
39812
0
  return true;
39813
0
}
39814
39815
MOZ_CAN_RUN_SCRIPT static bool
39816
set_webkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39817
0
{
39818
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAlignItems", DOM, cx);
39819
0
39820
0
  binding_detail::FakeString arg0;
39821
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39822
0
    return false;
39823
0
  }
39824
0
  Maybe<AutoCEReaction> ceReaction;
39825
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39826
0
    DocGroup* docGroup = self->GetDocGroup();
39827
0
    if (docGroup) {
39828
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39829
0
    }
39830
0
  }
39831
0
  FastErrorResult rv;
39832
0
  nsIPrincipal* subjectPrincipal;
39833
0
  {
39834
0
    JS::Realm* realm = js::GetContextRealm(cx);
39835
0
    MOZ_ASSERT(realm);
39836
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39837
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39838
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39839
0
      principal = nullptr;
39840
0
    }
39841
0
39842
0
    subjectPrincipal = principal;
39843
0
  }
39844
0
  self->SetWebkitAlignItems(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39845
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39846
0
    return false;
39847
0
  }
39848
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39849
0
39850
0
  return true;
39851
0
}
39852
39853
static const JSJitInfo webkitAlignItems_getterinfo = {
39854
  { (JSJitGetterOp)get_webkitAlignItems },
39855
  { prototypes::id::CSS2Properties },
39856
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39857
  JSJitInfo::Getter,
39858
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39859
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39860
  false,  /* isInfallible. False in setters. */
39861
  false,  /* isMovable.  Not relevant for setters. */
39862
  false, /* isEliminatable.  Not relevant for setters. */
39863
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39864
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39865
  false,  /* isTypedMethod.  Only relevant for methods. */
39866
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39867
};
39868
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39869
static_assert(0 < 1, "There is no slot for us");
39870
static const JSJitInfo webkitAlignItems_setterinfo = {
39871
  { (JSJitGetterOp)set_webkitAlignItems },
39872
  { prototypes::id::CSS2Properties },
39873
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39874
  JSJitInfo::Setter,
39875
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39876
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39877
  false,  /* isInfallible. False in setters. */
39878
  false,  /* isMovable.  Not relevant for setters. */
39879
  false, /* isEliminatable.  Not relevant for setters. */
39880
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39881
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39882
  false,  /* isTypedMethod.  Only relevant for methods. */
39883
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39884
};
39885
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39886
static_assert(0 < 1, "There is no slot for us");
39887
39888
MOZ_CAN_RUN_SCRIPT static bool
39889
get_webkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39890
0
{
39891
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexGrow", DOM, cx);
39892
0
39893
0
  FastErrorResult rv;
39894
0
  DOMString result;
39895
0
  self->GetWebkitFlexGrow(result, rv);
39896
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39897
0
    return false;
39898
0
  }
39899
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39900
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39901
0
    return false;
39902
0
  }
39903
0
  return true;
39904
0
}
39905
39906
MOZ_CAN_RUN_SCRIPT static bool
39907
set_webkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39908
0
{
39909
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexGrow", DOM, cx);
39910
0
39911
0
  binding_detail::FakeString arg0;
39912
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
39913
0
    return false;
39914
0
  }
39915
0
  Maybe<AutoCEReaction> ceReaction;
39916
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
39917
0
    DocGroup* docGroup = self->GetDocGroup();
39918
0
    if (docGroup) {
39919
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
39920
0
    }
39921
0
  }
39922
0
  FastErrorResult rv;
39923
0
  nsIPrincipal* subjectPrincipal;
39924
0
  {
39925
0
    JS::Realm* realm = js::GetContextRealm(cx);
39926
0
    MOZ_ASSERT(realm);
39927
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
39928
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
39929
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
39930
0
      principal = nullptr;
39931
0
    }
39932
0
39933
0
    subjectPrincipal = principal;
39934
0
  }
39935
0
  self->SetWebkitFlexGrow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
39936
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39937
0
    return false;
39938
0
  }
39939
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39940
0
39941
0
  return true;
39942
0
}
39943
39944
static const JSJitInfo webkitFlexGrow_getterinfo = {
39945
  { (JSJitGetterOp)get_webkitFlexGrow },
39946
  { prototypes::id::CSS2Properties },
39947
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39948
  JSJitInfo::Getter,
39949
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39950
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
39951
  false,  /* isInfallible. False in setters. */
39952
  false,  /* isMovable.  Not relevant for setters. */
39953
  false, /* isEliminatable.  Not relevant for setters. */
39954
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39955
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39956
  false,  /* isTypedMethod.  Only relevant for methods. */
39957
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39958
};
39959
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39960
static_assert(0 < 1, "There is no slot for us");
39961
static const JSJitInfo webkitFlexGrow_setterinfo = {
39962
  { (JSJitGetterOp)set_webkitFlexGrow },
39963
  { prototypes::id::CSS2Properties },
39964
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
39965
  JSJitInfo::Setter,
39966
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
39967
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
39968
  false,  /* isInfallible. False in setters. */
39969
  false,  /* isMovable.  Not relevant for setters. */
39970
  false, /* isEliminatable.  Not relevant for setters. */
39971
  false, /* isAlwaysInSlot.  Only relevant for getters. */
39972
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
39973
  false,  /* isTypedMethod.  Only relevant for methods. */
39974
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
39975
};
39976
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
39977
static_assert(0 < 1, "There is no slot for us");
39978
39979
MOZ_CAN_RUN_SCRIPT static bool
39980
get_webkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
39981
0
{
39982
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexShrink", DOM, cx);
39983
0
39984
0
  FastErrorResult rv;
39985
0
  DOMString result;
39986
0
  self->GetWebkitFlexShrink(result, rv);
39987
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
39988
0
    return false;
39989
0
  }
39990
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
39991
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
39992
0
    return false;
39993
0
  }
39994
0
  return true;
39995
0
}
39996
39997
MOZ_CAN_RUN_SCRIPT static bool
39998
set_webkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
39999
0
{
40000
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexShrink", DOM, cx);
40001
0
40002
0
  binding_detail::FakeString arg0;
40003
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40004
0
    return false;
40005
0
  }
40006
0
  Maybe<AutoCEReaction> ceReaction;
40007
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40008
0
    DocGroup* docGroup = self->GetDocGroup();
40009
0
    if (docGroup) {
40010
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40011
0
    }
40012
0
  }
40013
0
  FastErrorResult rv;
40014
0
  nsIPrincipal* subjectPrincipal;
40015
0
  {
40016
0
    JS::Realm* realm = js::GetContextRealm(cx);
40017
0
    MOZ_ASSERT(realm);
40018
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40019
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40020
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40021
0
      principal = nullptr;
40022
0
    }
40023
0
40024
0
    subjectPrincipal = principal;
40025
0
  }
40026
0
  self->SetWebkitFlexShrink(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40027
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40028
0
    return false;
40029
0
  }
40030
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40031
0
40032
0
  return true;
40033
0
}
40034
40035
static const JSJitInfo webkitFlexShrink_getterinfo = {
40036
  { (JSJitGetterOp)get_webkitFlexShrink },
40037
  { prototypes::id::CSS2Properties },
40038
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40039
  JSJitInfo::Getter,
40040
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40041
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40042
  false,  /* isInfallible. False in setters. */
40043
  false,  /* isMovable.  Not relevant for setters. */
40044
  false, /* isEliminatable.  Not relevant for setters. */
40045
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40046
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40047
  false,  /* isTypedMethod.  Only relevant for methods. */
40048
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40049
};
40050
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40051
static_assert(0 < 1, "There is no slot for us");
40052
static const JSJitInfo webkitFlexShrink_setterinfo = {
40053
  { (JSJitGetterOp)set_webkitFlexShrink },
40054
  { prototypes::id::CSS2Properties },
40055
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40056
  JSJitInfo::Setter,
40057
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40058
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40059
  false,  /* isInfallible. False in setters. */
40060
  false,  /* isMovable.  Not relevant for setters. */
40061
  false, /* isEliminatable.  Not relevant for setters. */
40062
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40063
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40064
  false,  /* isTypedMethod.  Only relevant for methods. */
40065
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40066
};
40067
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40068
static_assert(0 < 1, "There is no slot for us");
40069
40070
MOZ_CAN_RUN_SCRIPT static bool
40071
get_webkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40072
0
{
40073
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAlignSelf", DOM, cx);
40074
0
40075
0
  FastErrorResult rv;
40076
0
  DOMString result;
40077
0
  self->GetWebkitAlignSelf(result, rv);
40078
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40079
0
    return false;
40080
0
  }
40081
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40082
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40083
0
    return false;
40084
0
  }
40085
0
  return true;
40086
0
}
40087
40088
MOZ_CAN_RUN_SCRIPT static bool
40089
set_webkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40090
0
{
40091
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAlignSelf", DOM, cx);
40092
0
40093
0
  binding_detail::FakeString arg0;
40094
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40095
0
    return false;
40096
0
  }
40097
0
  Maybe<AutoCEReaction> ceReaction;
40098
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40099
0
    DocGroup* docGroup = self->GetDocGroup();
40100
0
    if (docGroup) {
40101
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40102
0
    }
40103
0
  }
40104
0
  FastErrorResult rv;
40105
0
  nsIPrincipal* subjectPrincipal;
40106
0
  {
40107
0
    JS::Realm* realm = js::GetContextRealm(cx);
40108
0
    MOZ_ASSERT(realm);
40109
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40110
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40111
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40112
0
      principal = nullptr;
40113
0
    }
40114
0
40115
0
    subjectPrincipal = principal;
40116
0
  }
40117
0
  self->SetWebkitAlignSelf(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40118
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40119
0
    return false;
40120
0
  }
40121
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40122
0
40123
0
  return true;
40124
0
}
40125
40126
static const JSJitInfo webkitAlignSelf_getterinfo = {
40127
  { (JSJitGetterOp)get_webkitAlignSelf },
40128
  { prototypes::id::CSS2Properties },
40129
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40130
  JSJitInfo::Getter,
40131
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40132
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40133
  false,  /* isInfallible. False in setters. */
40134
  false,  /* isMovable.  Not relevant for setters. */
40135
  false, /* isEliminatable.  Not relevant for setters. */
40136
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40137
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40138
  false,  /* isTypedMethod.  Only relevant for methods. */
40139
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40140
};
40141
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40142
static_assert(0 < 1, "There is no slot for us");
40143
static const JSJitInfo webkitAlignSelf_setterinfo = {
40144
  { (JSJitGetterOp)set_webkitAlignSelf },
40145
  { prototypes::id::CSS2Properties },
40146
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40147
  JSJitInfo::Setter,
40148
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40149
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40150
  false,  /* isInfallible. False in setters. */
40151
  false,  /* isMovable.  Not relevant for setters. */
40152
  false, /* isEliminatable.  Not relevant for setters. */
40153
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40154
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40155
  false,  /* isTypedMethod.  Only relevant for methods. */
40156
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40157
};
40158
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40159
static_assert(0 < 1, "There is no slot for us");
40160
40161
MOZ_CAN_RUN_SCRIPT static bool
40162
get_webkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40163
0
{
40164
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitOrder", DOM, cx);
40165
0
40166
0
  FastErrorResult rv;
40167
0
  DOMString result;
40168
0
  self->GetWebkitOrder(result, rv);
40169
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40170
0
    return false;
40171
0
  }
40172
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40173
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40174
0
    return false;
40175
0
  }
40176
0
  return true;
40177
0
}
40178
40179
MOZ_CAN_RUN_SCRIPT static bool
40180
set_webkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40181
0
{
40182
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitOrder", DOM, cx);
40183
0
40184
0
  binding_detail::FakeString arg0;
40185
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40186
0
    return false;
40187
0
  }
40188
0
  Maybe<AutoCEReaction> ceReaction;
40189
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40190
0
    DocGroup* docGroup = self->GetDocGroup();
40191
0
    if (docGroup) {
40192
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40193
0
    }
40194
0
  }
40195
0
  FastErrorResult rv;
40196
0
  nsIPrincipal* subjectPrincipal;
40197
0
  {
40198
0
    JS::Realm* realm = js::GetContextRealm(cx);
40199
0
    MOZ_ASSERT(realm);
40200
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40201
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40202
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40203
0
      principal = nullptr;
40204
0
    }
40205
0
40206
0
    subjectPrincipal = principal;
40207
0
  }
40208
0
  self->SetWebkitOrder(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40209
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40210
0
    return false;
40211
0
  }
40212
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40213
0
40214
0
  return true;
40215
0
}
40216
40217
static const JSJitInfo webkitOrder_getterinfo = {
40218
  { (JSJitGetterOp)get_webkitOrder },
40219
  { prototypes::id::CSS2Properties },
40220
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40221
  JSJitInfo::Getter,
40222
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40223
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40224
  false,  /* isInfallible. False in setters. */
40225
  false,  /* isMovable.  Not relevant for setters. */
40226
  false, /* isEliminatable.  Not relevant for setters. */
40227
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40228
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40229
  false,  /* isTypedMethod.  Only relevant for methods. */
40230
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40231
};
40232
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40233
static_assert(0 < 1, "There is no slot for us");
40234
static const JSJitInfo webkitOrder_setterinfo = {
40235
  { (JSJitGetterOp)set_webkitOrder },
40236
  { prototypes::id::CSS2Properties },
40237
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40238
  JSJitInfo::Setter,
40239
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40240
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40241
  false,  /* isInfallible. False in setters. */
40242
  false,  /* isMovable.  Not relevant for setters. */
40243
  false, /* isEliminatable.  Not relevant for setters. */
40244
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40245
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40246
  false,  /* isTypedMethod.  Only relevant for methods. */
40247
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40248
};
40249
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40250
static_assert(0 < 1, "There is no slot for us");
40251
40252
MOZ_CAN_RUN_SCRIPT static bool
40253
get_webkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40254
0
{
40255
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexBasis", DOM, cx);
40256
0
40257
0
  FastErrorResult rv;
40258
0
  DOMString result;
40259
0
  self->GetWebkitFlexBasis(result, rv);
40260
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40261
0
    return false;
40262
0
  }
40263
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40264
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40265
0
    return false;
40266
0
  }
40267
0
  return true;
40268
0
}
40269
40270
MOZ_CAN_RUN_SCRIPT static bool
40271
set_webkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40272
0
{
40273
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexBasis", DOM, cx);
40274
0
40275
0
  binding_detail::FakeString arg0;
40276
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40277
0
    return false;
40278
0
  }
40279
0
  Maybe<AutoCEReaction> ceReaction;
40280
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40281
0
    DocGroup* docGroup = self->GetDocGroup();
40282
0
    if (docGroup) {
40283
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40284
0
    }
40285
0
  }
40286
0
  FastErrorResult rv;
40287
0
  nsIPrincipal* subjectPrincipal;
40288
0
  {
40289
0
    JS::Realm* realm = js::GetContextRealm(cx);
40290
0
    MOZ_ASSERT(realm);
40291
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40292
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40293
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40294
0
      principal = nullptr;
40295
0
    }
40296
0
40297
0
    subjectPrincipal = principal;
40298
0
  }
40299
0
  self->SetWebkitFlexBasis(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40300
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40301
0
    return false;
40302
0
  }
40303
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40304
0
40305
0
  return true;
40306
0
}
40307
40308
static const JSJitInfo webkitFlexBasis_getterinfo = {
40309
  { (JSJitGetterOp)get_webkitFlexBasis },
40310
  { prototypes::id::CSS2Properties },
40311
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40312
  JSJitInfo::Getter,
40313
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40314
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40315
  false,  /* isInfallible. False in setters. */
40316
  false,  /* isMovable.  Not relevant for setters. */
40317
  false, /* isEliminatable.  Not relevant for setters. */
40318
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40319
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40320
  false,  /* isTypedMethod.  Only relevant for methods. */
40321
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40322
};
40323
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40324
static_assert(0 < 1, "There is no slot for us");
40325
static const JSJitInfo webkitFlexBasis_setterinfo = {
40326
  { (JSJitGetterOp)set_webkitFlexBasis },
40327
  { prototypes::id::CSS2Properties },
40328
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40329
  JSJitInfo::Setter,
40330
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40331
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40332
  false,  /* isInfallible. False in setters. */
40333
  false,  /* isMovable.  Not relevant for setters. */
40334
  false, /* isEliminatable.  Not relevant for setters. */
40335
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40336
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40337
  false,  /* isTypedMethod.  Only relevant for methods. */
40338
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40339
};
40340
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40341
static_assert(0 < 1, "There is no slot for us");
40342
40343
MOZ_CAN_RUN_SCRIPT static bool
40344
get_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40345
0
{
40346
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBoxSizing", DOM, cx);
40347
0
40348
0
  FastErrorResult rv;
40349
0
  DOMString result;
40350
0
  self->GetMozBoxSizing(result, rv);
40351
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40352
0
    return false;
40353
0
  }
40354
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40355
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40356
0
    return false;
40357
0
  }
40358
0
  return true;
40359
0
}
40360
40361
MOZ_CAN_RUN_SCRIPT static bool
40362
set_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40363
0
{
40364
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBoxSizing", DOM, cx);
40365
0
40366
0
  binding_detail::FakeString arg0;
40367
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40368
0
    return false;
40369
0
  }
40370
0
  Maybe<AutoCEReaction> ceReaction;
40371
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40372
0
    DocGroup* docGroup = self->GetDocGroup();
40373
0
    if (docGroup) {
40374
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40375
0
    }
40376
0
  }
40377
0
  FastErrorResult rv;
40378
0
  nsIPrincipal* subjectPrincipal;
40379
0
  {
40380
0
    JS::Realm* realm = js::GetContextRealm(cx);
40381
0
    MOZ_ASSERT(realm);
40382
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40383
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40384
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40385
0
      principal = nullptr;
40386
0
    }
40387
0
40388
0
    subjectPrincipal = principal;
40389
0
  }
40390
0
  self->SetMozBoxSizing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40391
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40392
0
    return false;
40393
0
  }
40394
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40395
0
40396
0
  return true;
40397
0
}
40398
40399
static const JSJitInfo MozBoxSizing_getterinfo = {
40400
  { (JSJitGetterOp)get_MozBoxSizing },
40401
  { prototypes::id::CSS2Properties },
40402
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40403
  JSJitInfo::Getter,
40404
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40405
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40406
  false,  /* isInfallible. False in setters. */
40407
  false,  /* isMovable.  Not relevant for setters. */
40408
  false, /* isEliminatable.  Not relevant for setters. */
40409
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40410
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40411
  false,  /* isTypedMethod.  Only relevant for methods. */
40412
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40413
};
40414
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40415
static_assert(0 < 1, "There is no slot for us");
40416
static const JSJitInfo MozBoxSizing_setterinfo = {
40417
  { (JSJitGetterOp)set_MozBoxSizing },
40418
  { prototypes::id::CSS2Properties },
40419
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40420
  JSJitInfo::Setter,
40421
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40422
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40423
  false,  /* isInfallible. False in setters. */
40424
  false,  /* isMovable.  Not relevant for setters. */
40425
  false, /* isEliminatable.  Not relevant for setters. */
40426
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40427
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40428
  false,  /* isTypedMethod.  Only relevant for methods. */
40429
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40430
};
40431
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40432
static_assert(0 < 1, "There is no slot for us");
40433
40434
MOZ_CAN_RUN_SCRIPT static bool
40435
get_webkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40436
0
{
40437
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxSizing", DOM, cx);
40438
0
40439
0
  FastErrorResult rv;
40440
0
  DOMString result;
40441
0
  self->GetWebkitBoxSizing(result, rv);
40442
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40443
0
    return false;
40444
0
  }
40445
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40446
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40447
0
    return false;
40448
0
  }
40449
0
  return true;
40450
0
}
40451
40452
MOZ_CAN_RUN_SCRIPT static bool
40453
set_webkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40454
0
{
40455
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxSizing", DOM, cx);
40456
0
40457
0
  binding_detail::FakeString arg0;
40458
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40459
0
    return false;
40460
0
  }
40461
0
  Maybe<AutoCEReaction> ceReaction;
40462
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40463
0
    DocGroup* docGroup = self->GetDocGroup();
40464
0
    if (docGroup) {
40465
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40466
0
    }
40467
0
  }
40468
0
  FastErrorResult rv;
40469
0
  nsIPrincipal* subjectPrincipal;
40470
0
  {
40471
0
    JS::Realm* realm = js::GetContextRealm(cx);
40472
0
    MOZ_ASSERT(realm);
40473
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40474
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40475
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40476
0
      principal = nullptr;
40477
0
    }
40478
0
40479
0
    subjectPrincipal = principal;
40480
0
  }
40481
0
  self->SetWebkitBoxSizing(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40482
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40483
0
    return false;
40484
0
  }
40485
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40486
0
40487
0
  return true;
40488
0
}
40489
40490
static const JSJitInfo webkitBoxSizing_getterinfo = {
40491
  { (JSJitGetterOp)get_webkitBoxSizing },
40492
  { prototypes::id::CSS2Properties },
40493
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40494
  JSJitInfo::Getter,
40495
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40496
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40497
  false,  /* isInfallible. False in setters. */
40498
  false,  /* isMovable.  Not relevant for setters. */
40499
  false, /* isEliminatable.  Not relevant for setters. */
40500
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40501
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40502
  false,  /* isTypedMethod.  Only relevant for methods. */
40503
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40504
};
40505
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40506
static_assert(0 < 1, "There is no slot for us");
40507
static const JSJitInfo webkitBoxSizing_setterinfo = {
40508
  { (JSJitGetterOp)set_webkitBoxSizing },
40509
  { prototypes::id::CSS2Properties },
40510
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40511
  JSJitInfo::Setter,
40512
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40513
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40514
  false,  /* isInfallible. False in setters. */
40515
  false,  /* isMovable.  Not relevant for setters. */
40516
  false, /* isEliminatable.  Not relevant for setters. */
40517
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40518
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40519
  false,  /* isTypedMethod.  Only relevant for methods. */
40520
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40521
};
40522
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40523
static_assert(0 < 1, "There is no slot for us");
40524
40525
MOZ_CAN_RUN_SCRIPT static bool
40526
get_gridColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40527
0
{
40528
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridColumnGap", DOM, cx);
40529
0
40530
0
  FastErrorResult rv;
40531
0
  DOMString result;
40532
0
  self->GetGridColumnGap(result, rv);
40533
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40534
0
    return false;
40535
0
  }
40536
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40537
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40538
0
    return false;
40539
0
  }
40540
0
  return true;
40541
0
}
40542
40543
MOZ_CAN_RUN_SCRIPT static bool
40544
set_gridColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40545
0
{
40546
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridColumnGap", DOM, cx);
40547
0
40548
0
  binding_detail::FakeString arg0;
40549
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40550
0
    return false;
40551
0
  }
40552
0
  Maybe<AutoCEReaction> ceReaction;
40553
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40554
0
    DocGroup* docGroup = self->GetDocGroup();
40555
0
    if (docGroup) {
40556
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40557
0
    }
40558
0
  }
40559
0
  FastErrorResult rv;
40560
0
  nsIPrincipal* subjectPrincipal;
40561
0
  {
40562
0
    JS::Realm* realm = js::GetContextRealm(cx);
40563
0
    MOZ_ASSERT(realm);
40564
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40565
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40566
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40567
0
      principal = nullptr;
40568
0
    }
40569
0
40570
0
    subjectPrincipal = principal;
40571
0
  }
40572
0
  self->SetGridColumnGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40573
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40574
0
    return false;
40575
0
  }
40576
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40577
0
40578
0
  return true;
40579
0
}
40580
40581
static const JSJitInfo gridColumnGap_getterinfo = {
40582
  { (JSJitGetterOp)get_gridColumnGap },
40583
  { prototypes::id::CSS2Properties },
40584
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40585
  JSJitInfo::Getter,
40586
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40587
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40588
  false,  /* isInfallible. False in setters. */
40589
  false,  /* isMovable.  Not relevant for setters. */
40590
  false, /* isEliminatable.  Not relevant for setters. */
40591
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40592
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40593
  false,  /* isTypedMethod.  Only relevant for methods. */
40594
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40595
};
40596
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40597
static_assert(0 < 1, "There is no slot for us");
40598
static const JSJitInfo gridColumnGap_setterinfo = {
40599
  { (JSJitGetterOp)set_gridColumnGap },
40600
  { prototypes::id::CSS2Properties },
40601
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40602
  JSJitInfo::Setter,
40603
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40604
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40605
  false,  /* isInfallible. False in setters. */
40606
  false,  /* isMovable.  Not relevant for setters. */
40607
  false, /* isEliminatable.  Not relevant for setters. */
40608
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40609
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40610
  false,  /* isTypedMethod.  Only relevant for methods. */
40611
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40612
};
40613
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40614
static_assert(0 < 1, "There is no slot for us");
40615
40616
MOZ_CAN_RUN_SCRIPT static bool
40617
get_MozColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40618
0
{
40619
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnGap", DOM, cx);
40620
0
40621
0
  FastErrorResult rv;
40622
0
  DOMString result;
40623
0
  self->GetMozColumnGap(result, rv);
40624
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40625
0
    return false;
40626
0
  }
40627
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40628
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40629
0
    return false;
40630
0
  }
40631
0
  return true;
40632
0
}
40633
40634
MOZ_CAN_RUN_SCRIPT static bool
40635
set_MozColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40636
0
{
40637
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnGap", DOM, cx);
40638
0
40639
0
  binding_detail::FakeString arg0;
40640
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40641
0
    return false;
40642
0
  }
40643
0
  Maybe<AutoCEReaction> ceReaction;
40644
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40645
0
    DocGroup* docGroup = self->GetDocGroup();
40646
0
    if (docGroup) {
40647
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40648
0
    }
40649
0
  }
40650
0
  FastErrorResult rv;
40651
0
  nsIPrincipal* subjectPrincipal;
40652
0
  {
40653
0
    JS::Realm* realm = js::GetContextRealm(cx);
40654
0
    MOZ_ASSERT(realm);
40655
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40656
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40657
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40658
0
      principal = nullptr;
40659
0
    }
40660
0
40661
0
    subjectPrincipal = principal;
40662
0
  }
40663
0
  self->SetMozColumnGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40664
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40665
0
    return false;
40666
0
  }
40667
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40668
0
40669
0
  return true;
40670
0
}
40671
40672
static const JSJitInfo MozColumnGap_getterinfo = {
40673
  { (JSJitGetterOp)get_MozColumnGap },
40674
  { prototypes::id::CSS2Properties },
40675
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40676
  JSJitInfo::Getter,
40677
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40678
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40679
  false,  /* isInfallible. False in setters. */
40680
  false,  /* isMovable.  Not relevant for setters. */
40681
  false, /* isEliminatable.  Not relevant for setters. */
40682
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40683
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40684
  false,  /* isTypedMethod.  Only relevant for methods. */
40685
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40686
};
40687
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40688
static_assert(0 < 1, "There is no slot for us");
40689
static const JSJitInfo MozColumnGap_setterinfo = {
40690
  { (JSJitGetterOp)set_MozColumnGap },
40691
  { prototypes::id::CSS2Properties },
40692
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40693
  JSJitInfo::Setter,
40694
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40695
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40696
  false,  /* isInfallible. False in setters. */
40697
  false,  /* isMovable.  Not relevant for setters. */
40698
  false, /* isEliminatable.  Not relevant for setters. */
40699
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40700
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40701
  false,  /* isTypedMethod.  Only relevant for methods. */
40702
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40703
};
40704
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40705
static_assert(0 < 1, "There is no slot for us");
40706
40707
MOZ_CAN_RUN_SCRIPT static bool
40708
get_gridRowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40709
0
{
40710
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridRowGap", DOM, cx);
40711
0
40712
0
  FastErrorResult rv;
40713
0
  DOMString result;
40714
0
  self->GetGridRowGap(result, rv);
40715
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40716
0
    return false;
40717
0
  }
40718
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40719
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40720
0
    return false;
40721
0
  }
40722
0
  return true;
40723
0
}
40724
40725
MOZ_CAN_RUN_SCRIPT static bool
40726
set_gridRowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40727
0
{
40728
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridRowGap", DOM, cx);
40729
0
40730
0
  binding_detail::FakeString arg0;
40731
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40732
0
    return false;
40733
0
  }
40734
0
  Maybe<AutoCEReaction> ceReaction;
40735
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40736
0
    DocGroup* docGroup = self->GetDocGroup();
40737
0
    if (docGroup) {
40738
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40739
0
    }
40740
0
  }
40741
0
  FastErrorResult rv;
40742
0
  nsIPrincipal* subjectPrincipal;
40743
0
  {
40744
0
    JS::Realm* realm = js::GetContextRealm(cx);
40745
0
    MOZ_ASSERT(realm);
40746
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40747
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40748
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40749
0
      principal = nullptr;
40750
0
    }
40751
0
40752
0
    subjectPrincipal = principal;
40753
0
  }
40754
0
  self->SetGridRowGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40755
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40756
0
    return false;
40757
0
  }
40758
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40759
0
40760
0
  return true;
40761
0
}
40762
40763
static const JSJitInfo gridRowGap_getterinfo = {
40764
  { (JSJitGetterOp)get_gridRowGap },
40765
  { prototypes::id::CSS2Properties },
40766
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40767
  JSJitInfo::Getter,
40768
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40769
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40770
  false,  /* isInfallible. False in setters. */
40771
  false,  /* isMovable.  Not relevant for setters. */
40772
  false, /* isEliminatable.  Not relevant for setters. */
40773
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40774
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40775
  false,  /* isTypedMethod.  Only relevant for methods. */
40776
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40777
};
40778
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40779
static_assert(0 < 1, "There is no slot for us");
40780
static const JSJitInfo gridRowGap_setterinfo = {
40781
  { (JSJitGetterOp)set_gridRowGap },
40782
  { prototypes::id::CSS2Properties },
40783
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40784
  JSJitInfo::Setter,
40785
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40786
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40787
  false,  /* isInfallible. False in setters. */
40788
  false,  /* isMovable.  Not relevant for setters. */
40789
  false, /* isEliminatable.  Not relevant for setters. */
40790
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40791
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40792
  false,  /* isTypedMethod.  Only relevant for methods. */
40793
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40794
};
40795
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40796
static_assert(0 < 1, "There is no slot for us");
40797
40798
MOZ_CAN_RUN_SCRIPT static bool
40799
get_webkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40800
0
{
40801
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitUserSelect", DOM, cx);
40802
0
40803
0
  FastErrorResult rv;
40804
0
  DOMString result;
40805
0
  self->GetWebkitUserSelect(result, rv);
40806
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40807
0
    return false;
40808
0
  }
40809
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40810
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40811
0
    return false;
40812
0
  }
40813
0
  return true;
40814
0
}
40815
40816
MOZ_CAN_RUN_SCRIPT static bool
40817
set_webkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40818
0
{
40819
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitUserSelect", DOM, cx);
40820
0
40821
0
  binding_detail::FakeString arg0;
40822
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40823
0
    return false;
40824
0
  }
40825
0
  Maybe<AutoCEReaction> ceReaction;
40826
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40827
0
    DocGroup* docGroup = self->GetDocGroup();
40828
0
    if (docGroup) {
40829
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40830
0
    }
40831
0
  }
40832
0
  FastErrorResult rv;
40833
0
  nsIPrincipal* subjectPrincipal;
40834
0
  {
40835
0
    JS::Realm* realm = js::GetContextRealm(cx);
40836
0
    MOZ_ASSERT(realm);
40837
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40838
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40839
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40840
0
      principal = nullptr;
40841
0
    }
40842
0
40843
0
    subjectPrincipal = principal;
40844
0
  }
40845
0
  self->SetWebkitUserSelect(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40846
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40847
0
    return false;
40848
0
  }
40849
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40850
0
40851
0
  return true;
40852
0
}
40853
40854
static const JSJitInfo webkitUserSelect_getterinfo = {
40855
  { (JSJitGetterOp)get_webkitUserSelect },
40856
  { prototypes::id::CSS2Properties },
40857
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40858
  JSJitInfo::Getter,
40859
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40860
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40861
  false,  /* isInfallible. False in setters. */
40862
  false,  /* isMovable.  Not relevant for setters. */
40863
  false, /* isEliminatable.  Not relevant for setters. */
40864
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40865
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40866
  false,  /* isTypedMethod.  Only relevant for methods. */
40867
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40868
};
40869
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40870
static_assert(0 < 1, "There is no slot for us");
40871
static const JSJitInfo webkitUserSelect_setterinfo = {
40872
  { (JSJitGetterOp)set_webkitUserSelect },
40873
  { prototypes::id::CSS2Properties },
40874
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40875
  JSJitInfo::Setter,
40876
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40877
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40878
  false,  /* isInfallible. False in setters. */
40879
  false,  /* isMovable.  Not relevant for setters. */
40880
  false, /* isEliminatable.  Not relevant for setters. */
40881
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40882
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40883
  false,  /* isTypedMethod.  Only relevant for methods. */
40884
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40885
};
40886
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40887
static_assert(0 < 1, "There is no slot for us");
40888
40889
MOZ_CAN_RUN_SCRIPT static bool
40890
get_webkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40891
0
{
40892
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskRepeat", DOM, cx);
40893
0
40894
0
  FastErrorResult rv;
40895
0
  DOMString result;
40896
0
  self->GetWebkitMaskRepeat(result, rv);
40897
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40898
0
    return false;
40899
0
  }
40900
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40901
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40902
0
    return false;
40903
0
  }
40904
0
  return true;
40905
0
}
40906
40907
MOZ_CAN_RUN_SCRIPT static bool
40908
set_webkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
40909
0
{
40910
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskRepeat", DOM, cx);
40911
0
40912
0
  binding_detail::FakeString arg0;
40913
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
40914
0
    return false;
40915
0
  }
40916
0
  Maybe<AutoCEReaction> ceReaction;
40917
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
40918
0
    DocGroup* docGroup = self->GetDocGroup();
40919
0
    if (docGroup) {
40920
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
40921
0
    }
40922
0
  }
40923
0
  FastErrorResult rv;
40924
0
  nsIPrincipal* subjectPrincipal;
40925
0
  {
40926
0
    JS::Realm* realm = js::GetContextRealm(cx);
40927
0
    MOZ_ASSERT(realm);
40928
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
40929
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
40930
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
40931
0
      principal = nullptr;
40932
0
    }
40933
0
40934
0
    subjectPrincipal = principal;
40935
0
  }
40936
0
  self->SetWebkitMaskRepeat(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
40937
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40938
0
    return false;
40939
0
  }
40940
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40941
0
40942
0
  return true;
40943
0
}
40944
40945
static const JSJitInfo webkitMaskRepeat_getterinfo = {
40946
  { (JSJitGetterOp)get_webkitMaskRepeat },
40947
  { prototypes::id::CSS2Properties },
40948
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40949
  JSJitInfo::Getter,
40950
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40951
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
40952
  false,  /* isInfallible. False in setters. */
40953
  false,  /* isMovable.  Not relevant for setters. */
40954
  false, /* isEliminatable.  Not relevant for setters. */
40955
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40956
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40957
  false,  /* isTypedMethod.  Only relevant for methods. */
40958
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40959
};
40960
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40961
static_assert(0 < 1, "There is no slot for us");
40962
static const JSJitInfo webkitMaskRepeat_setterinfo = {
40963
  { (JSJitGetterOp)set_webkitMaskRepeat },
40964
  { prototypes::id::CSS2Properties },
40965
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
40966
  JSJitInfo::Setter,
40967
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
40968
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
40969
  false,  /* isInfallible. False in setters. */
40970
  false,  /* isMovable.  Not relevant for setters. */
40971
  false, /* isEliminatable.  Not relevant for setters. */
40972
  false, /* isAlwaysInSlot.  Only relevant for getters. */
40973
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
40974
  false,  /* isTypedMethod.  Only relevant for methods. */
40975
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
40976
};
40977
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
40978
static_assert(0 < 1, "There is no slot for us");
40979
40980
MOZ_CAN_RUN_SCRIPT static bool
40981
get_webkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
40982
0
{
40983
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskPositionX", DOM, cx);
40984
0
40985
0
  FastErrorResult rv;
40986
0
  DOMString result;
40987
0
  self->GetWebkitMaskPositionX(result, rv);
40988
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
40989
0
    return false;
40990
0
  }
40991
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
40992
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
40993
0
    return false;
40994
0
  }
40995
0
  return true;
40996
0
}
40997
40998
MOZ_CAN_RUN_SCRIPT static bool
40999
set_webkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41000
0
{
41001
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskPositionX", DOM, cx);
41002
0
41003
0
  binding_detail::FakeString arg0;
41004
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41005
0
    return false;
41006
0
  }
41007
0
  Maybe<AutoCEReaction> ceReaction;
41008
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41009
0
    DocGroup* docGroup = self->GetDocGroup();
41010
0
    if (docGroup) {
41011
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41012
0
    }
41013
0
  }
41014
0
  FastErrorResult rv;
41015
0
  nsIPrincipal* subjectPrincipal;
41016
0
  {
41017
0
    JS::Realm* realm = js::GetContextRealm(cx);
41018
0
    MOZ_ASSERT(realm);
41019
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41020
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41021
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41022
0
      principal = nullptr;
41023
0
    }
41024
0
41025
0
    subjectPrincipal = principal;
41026
0
  }
41027
0
  self->SetWebkitMaskPositionX(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41028
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41029
0
    return false;
41030
0
  }
41031
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41032
0
41033
0
  return true;
41034
0
}
41035
41036
static const JSJitInfo webkitMaskPositionX_getterinfo = {
41037
  { (JSJitGetterOp)get_webkitMaskPositionX },
41038
  { prototypes::id::CSS2Properties },
41039
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41040
  JSJitInfo::Getter,
41041
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41042
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41043
  false,  /* isInfallible. False in setters. */
41044
  false,  /* isMovable.  Not relevant for setters. */
41045
  false, /* isEliminatable.  Not relevant for setters. */
41046
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41047
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41048
  false,  /* isTypedMethod.  Only relevant for methods. */
41049
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41050
};
41051
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41052
static_assert(0 < 1, "There is no slot for us");
41053
static const JSJitInfo webkitMaskPositionX_setterinfo = {
41054
  { (JSJitGetterOp)set_webkitMaskPositionX },
41055
  { prototypes::id::CSS2Properties },
41056
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41057
  JSJitInfo::Setter,
41058
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41059
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41060
  false,  /* isInfallible. False in setters. */
41061
  false,  /* isMovable.  Not relevant for setters. */
41062
  false, /* isEliminatable.  Not relevant for setters. */
41063
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41064
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41065
  false,  /* isTypedMethod.  Only relevant for methods. */
41066
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41067
};
41068
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41069
static_assert(0 < 1, "There is no slot for us");
41070
41071
MOZ_CAN_RUN_SCRIPT static bool
41072
get_webkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41073
0
{
41074
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskPositionY", DOM, cx);
41075
0
41076
0
  FastErrorResult rv;
41077
0
  DOMString result;
41078
0
  self->GetWebkitMaskPositionY(result, rv);
41079
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41080
0
    return false;
41081
0
  }
41082
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41083
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41084
0
    return false;
41085
0
  }
41086
0
  return true;
41087
0
}
41088
41089
MOZ_CAN_RUN_SCRIPT static bool
41090
set_webkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41091
0
{
41092
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskPositionY", DOM, cx);
41093
0
41094
0
  binding_detail::FakeString arg0;
41095
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41096
0
    return false;
41097
0
  }
41098
0
  Maybe<AutoCEReaction> ceReaction;
41099
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41100
0
    DocGroup* docGroup = self->GetDocGroup();
41101
0
    if (docGroup) {
41102
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41103
0
    }
41104
0
  }
41105
0
  FastErrorResult rv;
41106
0
  nsIPrincipal* subjectPrincipal;
41107
0
  {
41108
0
    JS::Realm* realm = js::GetContextRealm(cx);
41109
0
    MOZ_ASSERT(realm);
41110
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41111
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41112
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41113
0
      principal = nullptr;
41114
0
    }
41115
0
41116
0
    subjectPrincipal = principal;
41117
0
  }
41118
0
  self->SetWebkitMaskPositionY(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41119
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41120
0
    return false;
41121
0
  }
41122
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41123
0
41124
0
  return true;
41125
0
}
41126
41127
static const JSJitInfo webkitMaskPositionY_getterinfo = {
41128
  { (JSJitGetterOp)get_webkitMaskPositionY },
41129
  { prototypes::id::CSS2Properties },
41130
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41131
  JSJitInfo::Getter,
41132
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41133
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41134
  false,  /* isInfallible. False in setters. */
41135
  false,  /* isMovable.  Not relevant for setters. */
41136
  false, /* isEliminatable.  Not relevant for setters. */
41137
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41138
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41139
  false,  /* isTypedMethod.  Only relevant for methods. */
41140
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41141
};
41142
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41143
static_assert(0 < 1, "There is no slot for us");
41144
static const JSJitInfo webkitMaskPositionY_setterinfo = {
41145
  { (JSJitGetterOp)set_webkitMaskPositionY },
41146
  { prototypes::id::CSS2Properties },
41147
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41148
  JSJitInfo::Setter,
41149
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41150
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41151
  false,  /* isInfallible. False in setters. */
41152
  false,  /* isMovable.  Not relevant for setters. */
41153
  false, /* isEliminatable.  Not relevant for setters. */
41154
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41155
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41156
  false,  /* isTypedMethod.  Only relevant for methods. */
41157
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41158
};
41159
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41160
static_assert(0 < 1, "There is no slot for us");
41161
41162
MOZ_CAN_RUN_SCRIPT static bool
41163
get_webkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41164
0
{
41165
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskClip", DOM, cx);
41166
0
41167
0
  FastErrorResult rv;
41168
0
  DOMString result;
41169
0
  self->GetWebkitMaskClip(result, rv);
41170
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41171
0
    return false;
41172
0
  }
41173
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41174
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41175
0
    return false;
41176
0
  }
41177
0
  return true;
41178
0
}
41179
41180
MOZ_CAN_RUN_SCRIPT static bool
41181
set_webkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41182
0
{
41183
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskClip", DOM, cx);
41184
0
41185
0
  binding_detail::FakeString arg0;
41186
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41187
0
    return false;
41188
0
  }
41189
0
  Maybe<AutoCEReaction> ceReaction;
41190
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41191
0
    DocGroup* docGroup = self->GetDocGroup();
41192
0
    if (docGroup) {
41193
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41194
0
    }
41195
0
  }
41196
0
  FastErrorResult rv;
41197
0
  nsIPrincipal* subjectPrincipal;
41198
0
  {
41199
0
    JS::Realm* realm = js::GetContextRealm(cx);
41200
0
    MOZ_ASSERT(realm);
41201
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41202
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41203
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41204
0
      principal = nullptr;
41205
0
    }
41206
0
41207
0
    subjectPrincipal = principal;
41208
0
  }
41209
0
  self->SetWebkitMaskClip(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41210
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41211
0
    return false;
41212
0
  }
41213
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41214
0
41215
0
  return true;
41216
0
}
41217
41218
static const JSJitInfo webkitMaskClip_getterinfo = {
41219
  { (JSJitGetterOp)get_webkitMaskClip },
41220
  { prototypes::id::CSS2Properties },
41221
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41222
  JSJitInfo::Getter,
41223
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41224
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41225
  false,  /* isInfallible. False in setters. */
41226
  false,  /* isMovable.  Not relevant for setters. */
41227
  false, /* isEliminatable.  Not relevant for setters. */
41228
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41229
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41230
  false,  /* isTypedMethod.  Only relevant for methods. */
41231
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41232
};
41233
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41234
static_assert(0 < 1, "There is no slot for us");
41235
static const JSJitInfo webkitMaskClip_setterinfo = {
41236
  { (JSJitGetterOp)set_webkitMaskClip },
41237
  { prototypes::id::CSS2Properties },
41238
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41239
  JSJitInfo::Setter,
41240
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41241
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41242
  false,  /* isInfallible. False in setters. */
41243
  false,  /* isMovable.  Not relevant for setters. */
41244
  false, /* isEliminatable.  Not relevant for setters. */
41245
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41246
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41247
  false,  /* isTypedMethod.  Only relevant for methods. */
41248
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41249
};
41250
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41251
static_assert(0 < 1, "There is no slot for us");
41252
41253
MOZ_CAN_RUN_SCRIPT static bool
41254
get_webkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41255
0
{
41256
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskOrigin", DOM, cx);
41257
0
41258
0
  FastErrorResult rv;
41259
0
  DOMString result;
41260
0
  self->GetWebkitMaskOrigin(result, rv);
41261
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41262
0
    return false;
41263
0
  }
41264
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41265
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41266
0
    return false;
41267
0
  }
41268
0
  return true;
41269
0
}
41270
41271
MOZ_CAN_RUN_SCRIPT static bool
41272
set_webkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41273
0
{
41274
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskOrigin", DOM, cx);
41275
0
41276
0
  binding_detail::FakeString arg0;
41277
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41278
0
    return false;
41279
0
  }
41280
0
  Maybe<AutoCEReaction> ceReaction;
41281
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41282
0
    DocGroup* docGroup = self->GetDocGroup();
41283
0
    if (docGroup) {
41284
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41285
0
    }
41286
0
  }
41287
0
  FastErrorResult rv;
41288
0
  nsIPrincipal* subjectPrincipal;
41289
0
  {
41290
0
    JS::Realm* realm = js::GetContextRealm(cx);
41291
0
    MOZ_ASSERT(realm);
41292
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41293
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41294
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41295
0
      principal = nullptr;
41296
0
    }
41297
0
41298
0
    subjectPrincipal = principal;
41299
0
  }
41300
0
  self->SetWebkitMaskOrigin(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41301
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41302
0
    return false;
41303
0
  }
41304
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41305
0
41306
0
  return true;
41307
0
}
41308
41309
static const JSJitInfo webkitMaskOrigin_getterinfo = {
41310
  { (JSJitGetterOp)get_webkitMaskOrigin },
41311
  { prototypes::id::CSS2Properties },
41312
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41313
  JSJitInfo::Getter,
41314
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41315
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41316
  false,  /* isInfallible. False in setters. */
41317
  false,  /* isMovable.  Not relevant for setters. */
41318
  false, /* isEliminatable.  Not relevant for setters. */
41319
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41320
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41321
  false,  /* isTypedMethod.  Only relevant for methods. */
41322
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41323
};
41324
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41325
static_assert(0 < 1, "There is no slot for us");
41326
static const JSJitInfo webkitMaskOrigin_setterinfo = {
41327
  { (JSJitGetterOp)set_webkitMaskOrigin },
41328
  { prototypes::id::CSS2Properties },
41329
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41330
  JSJitInfo::Setter,
41331
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41332
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41333
  false,  /* isInfallible. False in setters. */
41334
  false,  /* isMovable.  Not relevant for setters. */
41335
  false, /* isEliminatable.  Not relevant for setters. */
41336
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41337
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41338
  false,  /* isTypedMethod.  Only relevant for methods. */
41339
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41340
};
41341
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41342
static_assert(0 < 1, "There is no slot for us");
41343
41344
MOZ_CAN_RUN_SCRIPT static bool
41345
get_webkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41346
0
{
41347
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskSize", DOM, cx);
41348
0
41349
0
  FastErrorResult rv;
41350
0
  DOMString result;
41351
0
  self->GetWebkitMaskSize(result, rv);
41352
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41353
0
    return false;
41354
0
  }
41355
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41356
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41357
0
    return false;
41358
0
  }
41359
0
  return true;
41360
0
}
41361
41362
MOZ_CAN_RUN_SCRIPT static bool
41363
set_webkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41364
0
{
41365
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskSize", DOM, cx);
41366
0
41367
0
  binding_detail::FakeString arg0;
41368
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41369
0
    return false;
41370
0
  }
41371
0
  Maybe<AutoCEReaction> ceReaction;
41372
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41373
0
    DocGroup* docGroup = self->GetDocGroup();
41374
0
    if (docGroup) {
41375
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41376
0
    }
41377
0
  }
41378
0
  FastErrorResult rv;
41379
0
  nsIPrincipal* subjectPrincipal;
41380
0
  {
41381
0
    JS::Realm* realm = js::GetContextRealm(cx);
41382
0
    MOZ_ASSERT(realm);
41383
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41384
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41385
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41386
0
      principal = nullptr;
41387
0
    }
41388
0
41389
0
    subjectPrincipal = principal;
41390
0
  }
41391
0
  self->SetWebkitMaskSize(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41392
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41393
0
    return false;
41394
0
  }
41395
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41396
0
41397
0
  return true;
41398
0
}
41399
41400
static const JSJitInfo webkitMaskSize_getterinfo = {
41401
  { (JSJitGetterOp)get_webkitMaskSize },
41402
  { prototypes::id::CSS2Properties },
41403
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41404
  JSJitInfo::Getter,
41405
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41406
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41407
  false,  /* isInfallible. False in setters. */
41408
  false,  /* isMovable.  Not relevant for setters. */
41409
  false, /* isEliminatable.  Not relevant for setters. */
41410
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41411
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41412
  false,  /* isTypedMethod.  Only relevant for methods. */
41413
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41414
};
41415
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41416
static_assert(0 < 1, "There is no slot for us");
41417
static const JSJitInfo webkitMaskSize_setterinfo = {
41418
  { (JSJitGetterOp)set_webkitMaskSize },
41419
  { prototypes::id::CSS2Properties },
41420
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41421
  JSJitInfo::Setter,
41422
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41423
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41424
  false,  /* isInfallible. False in setters. */
41425
  false,  /* isMovable.  Not relevant for setters. */
41426
  false, /* isEliminatable.  Not relevant for setters. */
41427
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41428
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41429
  false,  /* isTypedMethod.  Only relevant for methods. */
41430
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41431
};
41432
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41433
static_assert(0 < 1, "There is no slot for us");
41434
41435
MOZ_CAN_RUN_SCRIPT static bool
41436
get_webkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41437
0
{
41438
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskComposite", DOM, cx);
41439
0
41440
0
  FastErrorResult rv;
41441
0
  DOMString result;
41442
0
  self->GetWebkitMaskComposite(result, rv);
41443
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41444
0
    return false;
41445
0
  }
41446
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41447
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41448
0
    return false;
41449
0
  }
41450
0
  return true;
41451
0
}
41452
41453
MOZ_CAN_RUN_SCRIPT static bool
41454
set_webkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41455
0
{
41456
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskComposite", DOM, cx);
41457
0
41458
0
  binding_detail::FakeString arg0;
41459
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41460
0
    return false;
41461
0
  }
41462
0
  Maybe<AutoCEReaction> ceReaction;
41463
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41464
0
    DocGroup* docGroup = self->GetDocGroup();
41465
0
    if (docGroup) {
41466
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41467
0
    }
41468
0
  }
41469
0
  FastErrorResult rv;
41470
0
  nsIPrincipal* subjectPrincipal;
41471
0
  {
41472
0
    JS::Realm* realm = js::GetContextRealm(cx);
41473
0
    MOZ_ASSERT(realm);
41474
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41475
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41476
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41477
0
      principal = nullptr;
41478
0
    }
41479
0
41480
0
    subjectPrincipal = principal;
41481
0
  }
41482
0
  self->SetWebkitMaskComposite(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41483
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41484
0
    return false;
41485
0
  }
41486
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41487
0
41488
0
  return true;
41489
0
}
41490
41491
static const JSJitInfo webkitMaskComposite_getterinfo = {
41492
  { (JSJitGetterOp)get_webkitMaskComposite },
41493
  { prototypes::id::CSS2Properties },
41494
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41495
  JSJitInfo::Getter,
41496
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41497
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41498
  false,  /* isInfallible. False in setters. */
41499
  false,  /* isMovable.  Not relevant for setters. */
41500
  false, /* isEliminatable.  Not relevant for setters. */
41501
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41502
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41503
  false,  /* isTypedMethod.  Only relevant for methods. */
41504
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41505
};
41506
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41507
static_assert(0 < 1, "There is no slot for us");
41508
static const JSJitInfo webkitMaskComposite_setterinfo = {
41509
  { (JSJitGetterOp)set_webkitMaskComposite },
41510
  { prototypes::id::CSS2Properties },
41511
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41512
  JSJitInfo::Setter,
41513
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41514
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41515
  false,  /* isInfallible. False in setters. */
41516
  false,  /* isMovable.  Not relevant for setters. */
41517
  false, /* isEliminatable.  Not relevant for setters. */
41518
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41519
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41520
  false,  /* isTypedMethod.  Only relevant for methods. */
41521
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41522
};
41523
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41524
static_assert(0 < 1, "There is no slot for us");
41525
41526
MOZ_CAN_RUN_SCRIPT static bool
41527
get_webkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41528
0
{
41529
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskImage", DOM, cx);
41530
0
41531
0
  FastErrorResult rv;
41532
0
  DOMString result;
41533
0
  self->GetWebkitMaskImage(result, rv);
41534
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41535
0
    return false;
41536
0
  }
41537
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41538
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41539
0
    return false;
41540
0
  }
41541
0
  return true;
41542
0
}
41543
41544
MOZ_CAN_RUN_SCRIPT static bool
41545
set_webkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41546
0
{
41547
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskImage", DOM, cx);
41548
0
41549
0
  binding_detail::FakeString arg0;
41550
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41551
0
    return false;
41552
0
  }
41553
0
  Maybe<AutoCEReaction> ceReaction;
41554
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41555
0
    DocGroup* docGroup = self->GetDocGroup();
41556
0
    if (docGroup) {
41557
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41558
0
    }
41559
0
  }
41560
0
  FastErrorResult rv;
41561
0
  nsIPrincipal* subjectPrincipal;
41562
0
  {
41563
0
    JS::Realm* realm = js::GetContextRealm(cx);
41564
0
    MOZ_ASSERT(realm);
41565
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41566
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41567
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41568
0
      principal = nullptr;
41569
0
    }
41570
0
41571
0
    subjectPrincipal = principal;
41572
0
  }
41573
0
  self->SetWebkitMaskImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41574
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41575
0
    return false;
41576
0
  }
41577
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41578
0
41579
0
  return true;
41580
0
}
41581
41582
static const JSJitInfo webkitMaskImage_getterinfo = {
41583
  { (JSJitGetterOp)get_webkitMaskImage },
41584
  { prototypes::id::CSS2Properties },
41585
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41586
  JSJitInfo::Getter,
41587
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41588
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41589
  false,  /* isInfallible. False in setters. */
41590
  false,  /* isMovable.  Not relevant for setters. */
41591
  false, /* isEliminatable.  Not relevant for setters. */
41592
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41593
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41594
  false,  /* isTypedMethod.  Only relevant for methods. */
41595
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41596
};
41597
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41598
static_assert(0 < 1, "There is no slot for us");
41599
static const JSJitInfo webkitMaskImage_setterinfo = {
41600
  { (JSJitGetterOp)set_webkitMaskImage },
41601
  { prototypes::id::CSS2Properties },
41602
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41603
  JSJitInfo::Setter,
41604
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41605
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41606
  false,  /* isInfallible. False in setters. */
41607
  false,  /* isMovable.  Not relevant for setters. */
41608
  false, /* isEliminatable.  Not relevant for setters. */
41609
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41610
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41611
  false,  /* isTypedMethod.  Only relevant for methods. */
41612
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41613
};
41614
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41615
static_assert(0 < 1, "There is no slot for us");
41616
41617
MOZ_CAN_RUN_SCRIPT static bool
41618
get_webkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41619
0
{
41620
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxAlign", DOM, cx);
41621
0
41622
0
  FastErrorResult rv;
41623
0
  DOMString result;
41624
0
  self->GetWebkitBoxAlign(result, rv);
41625
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41626
0
    return false;
41627
0
  }
41628
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41629
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41630
0
    return false;
41631
0
  }
41632
0
  return true;
41633
0
}
41634
41635
MOZ_CAN_RUN_SCRIPT static bool
41636
set_webkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41637
0
{
41638
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxAlign", DOM, cx);
41639
0
41640
0
  binding_detail::FakeString arg0;
41641
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41642
0
    return false;
41643
0
  }
41644
0
  Maybe<AutoCEReaction> ceReaction;
41645
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41646
0
    DocGroup* docGroup = self->GetDocGroup();
41647
0
    if (docGroup) {
41648
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41649
0
    }
41650
0
  }
41651
0
  FastErrorResult rv;
41652
0
  nsIPrincipal* subjectPrincipal;
41653
0
  {
41654
0
    JS::Realm* realm = js::GetContextRealm(cx);
41655
0
    MOZ_ASSERT(realm);
41656
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41657
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41658
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41659
0
      principal = nullptr;
41660
0
    }
41661
0
41662
0
    subjectPrincipal = principal;
41663
0
  }
41664
0
  self->SetWebkitBoxAlign(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41665
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41666
0
    return false;
41667
0
  }
41668
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41669
0
41670
0
  return true;
41671
0
}
41672
41673
static const JSJitInfo webkitBoxAlign_getterinfo = {
41674
  { (JSJitGetterOp)get_webkitBoxAlign },
41675
  { prototypes::id::CSS2Properties },
41676
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41677
  JSJitInfo::Getter,
41678
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41679
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41680
  false,  /* isInfallible. False in setters. */
41681
  false,  /* isMovable.  Not relevant for setters. */
41682
  false, /* isEliminatable.  Not relevant for setters. */
41683
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41684
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41685
  false,  /* isTypedMethod.  Only relevant for methods. */
41686
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41687
};
41688
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41689
static_assert(0 < 1, "There is no slot for us");
41690
static const JSJitInfo webkitBoxAlign_setterinfo = {
41691
  { (JSJitGetterOp)set_webkitBoxAlign },
41692
  { prototypes::id::CSS2Properties },
41693
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41694
  JSJitInfo::Setter,
41695
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41696
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41697
  false,  /* isInfallible. False in setters. */
41698
  false,  /* isMovable.  Not relevant for setters. */
41699
  false, /* isEliminatable.  Not relevant for setters. */
41700
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41701
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41702
  false,  /* isTypedMethod.  Only relevant for methods. */
41703
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41704
};
41705
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41706
static_assert(0 < 1, "There is no slot for us");
41707
41708
MOZ_CAN_RUN_SCRIPT static bool
41709
get_webkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41710
0
{
41711
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxDirection", DOM, cx);
41712
0
41713
0
  FastErrorResult rv;
41714
0
  DOMString result;
41715
0
  self->GetWebkitBoxDirection(result, rv);
41716
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41717
0
    return false;
41718
0
  }
41719
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41720
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41721
0
    return false;
41722
0
  }
41723
0
  return true;
41724
0
}
41725
41726
MOZ_CAN_RUN_SCRIPT static bool
41727
set_webkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41728
0
{
41729
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxDirection", DOM, cx);
41730
0
41731
0
  binding_detail::FakeString arg0;
41732
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41733
0
    return false;
41734
0
  }
41735
0
  Maybe<AutoCEReaction> ceReaction;
41736
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41737
0
    DocGroup* docGroup = self->GetDocGroup();
41738
0
    if (docGroup) {
41739
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41740
0
    }
41741
0
  }
41742
0
  FastErrorResult rv;
41743
0
  nsIPrincipal* subjectPrincipal;
41744
0
  {
41745
0
    JS::Realm* realm = js::GetContextRealm(cx);
41746
0
    MOZ_ASSERT(realm);
41747
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41748
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41749
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41750
0
      principal = nullptr;
41751
0
    }
41752
0
41753
0
    subjectPrincipal = principal;
41754
0
  }
41755
0
  self->SetWebkitBoxDirection(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41756
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41757
0
    return false;
41758
0
  }
41759
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41760
0
41761
0
  return true;
41762
0
}
41763
41764
static const JSJitInfo webkitBoxDirection_getterinfo = {
41765
  { (JSJitGetterOp)get_webkitBoxDirection },
41766
  { prototypes::id::CSS2Properties },
41767
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41768
  JSJitInfo::Getter,
41769
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41770
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41771
  false,  /* isInfallible. False in setters. */
41772
  false,  /* isMovable.  Not relevant for setters. */
41773
  false, /* isEliminatable.  Not relevant for setters. */
41774
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41775
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41776
  false,  /* isTypedMethod.  Only relevant for methods. */
41777
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41778
};
41779
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41780
static_assert(0 < 1, "There is no slot for us");
41781
static const JSJitInfo webkitBoxDirection_setterinfo = {
41782
  { (JSJitGetterOp)set_webkitBoxDirection },
41783
  { prototypes::id::CSS2Properties },
41784
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41785
  JSJitInfo::Setter,
41786
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41787
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41788
  false,  /* isInfallible. False in setters. */
41789
  false,  /* isMovable.  Not relevant for setters. */
41790
  false, /* isEliminatable.  Not relevant for setters. */
41791
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41792
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41793
  false,  /* isTypedMethod.  Only relevant for methods. */
41794
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41795
};
41796
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41797
static_assert(0 < 1, "There is no slot for us");
41798
41799
MOZ_CAN_RUN_SCRIPT static bool
41800
get_webkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41801
0
{
41802
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxFlex", DOM, cx);
41803
0
41804
0
  FastErrorResult rv;
41805
0
  DOMString result;
41806
0
  self->GetWebkitBoxFlex(result, rv);
41807
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41808
0
    return false;
41809
0
  }
41810
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41811
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41812
0
    return false;
41813
0
  }
41814
0
  return true;
41815
0
}
41816
41817
MOZ_CAN_RUN_SCRIPT static bool
41818
set_webkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41819
0
{
41820
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxFlex", DOM, cx);
41821
0
41822
0
  binding_detail::FakeString arg0;
41823
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41824
0
    return false;
41825
0
  }
41826
0
  Maybe<AutoCEReaction> ceReaction;
41827
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41828
0
    DocGroup* docGroup = self->GetDocGroup();
41829
0
    if (docGroup) {
41830
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41831
0
    }
41832
0
  }
41833
0
  FastErrorResult rv;
41834
0
  nsIPrincipal* subjectPrincipal;
41835
0
  {
41836
0
    JS::Realm* realm = js::GetContextRealm(cx);
41837
0
    MOZ_ASSERT(realm);
41838
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41839
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41840
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41841
0
      principal = nullptr;
41842
0
    }
41843
0
41844
0
    subjectPrincipal = principal;
41845
0
  }
41846
0
  self->SetWebkitBoxFlex(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41847
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41848
0
    return false;
41849
0
  }
41850
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41851
0
41852
0
  return true;
41853
0
}
41854
41855
static const JSJitInfo webkitBoxFlex_getterinfo = {
41856
  { (JSJitGetterOp)get_webkitBoxFlex },
41857
  { prototypes::id::CSS2Properties },
41858
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41859
  JSJitInfo::Getter,
41860
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41861
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41862
  false,  /* isInfallible. False in setters. */
41863
  false,  /* isMovable.  Not relevant for setters. */
41864
  false, /* isEliminatable.  Not relevant for setters. */
41865
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41866
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41867
  false,  /* isTypedMethod.  Only relevant for methods. */
41868
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41869
};
41870
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41871
static_assert(0 < 1, "There is no slot for us");
41872
static const JSJitInfo webkitBoxFlex_setterinfo = {
41873
  { (JSJitGetterOp)set_webkitBoxFlex },
41874
  { prototypes::id::CSS2Properties },
41875
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41876
  JSJitInfo::Setter,
41877
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41878
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41879
  false,  /* isInfallible. False in setters. */
41880
  false,  /* isMovable.  Not relevant for setters. */
41881
  false, /* isEliminatable.  Not relevant for setters. */
41882
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41883
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41884
  false,  /* isTypedMethod.  Only relevant for methods. */
41885
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41886
};
41887
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41888
static_assert(0 < 1, "There is no slot for us");
41889
41890
MOZ_CAN_RUN_SCRIPT static bool
41891
get_webkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41892
0
{
41893
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxOrient", DOM, cx);
41894
0
41895
0
  FastErrorResult rv;
41896
0
  DOMString result;
41897
0
  self->GetWebkitBoxOrient(result, rv);
41898
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41899
0
    return false;
41900
0
  }
41901
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41902
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41903
0
    return false;
41904
0
  }
41905
0
  return true;
41906
0
}
41907
41908
MOZ_CAN_RUN_SCRIPT static bool
41909
set_webkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
41910
0
{
41911
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxOrient", DOM, cx);
41912
0
41913
0
  binding_detail::FakeString arg0;
41914
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
41915
0
    return false;
41916
0
  }
41917
0
  Maybe<AutoCEReaction> ceReaction;
41918
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
41919
0
    DocGroup* docGroup = self->GetDocGroup();
41920
0
    if (docGroup) {
41921
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
41922
0
    }
41923
0
  }
41924
0
  FastErrorResult rv;
41925
0
  nsIPrincipal* subjectPrincipal;
41926
0
  {
41927
0
    JS::Realm* realm = js::GetContextRealm(cx);
41928
0
    MOZ_ASSERT(realm);
41929
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
41930
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
41931
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
41932
0
      principal = nullptr;
41933
0
    }
41934
0
41935
0
    subjectPrincipal = principal;
41936
0
  }
41937
0
  self->SetWebkitBoxOrient(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
41938
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41939
0
    return false;
41940
0
  }
41941
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41942
0
41943
0
  return true;
41944
0
}
41945
41946
static const JSJitInfo webkitBoxOrient_getterinfo = {
41947
  { (JSJitGetterOp)get_webkitBoxOrient },
41948
  { prototypes::id::CSS2Properties },
41949
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41950
  JSJitInfo::Getter,
41951
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41952
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
41953
  false,  /* isInfallible. False in setters. */
41954
  false,  /* isMovable.  Not relevant for setters. */
41955
  false, /* isEliminatable.  Not relevant for setters. */
41956
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41957
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41958
  false,  /* isTypedMethod.  Only relevant for methods. */
41959
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41960
};
41961
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41962
static_assert(0 < 1, "There is no slot for us");
41963
static const JSJitInfo webkitBoxOrient_setterinfo = {
41964
  { (JSJitGetterOp)set_webkitBoxOrient },
41965
  { prototypes::id::CSS2Properties },
41966
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
41967
  JSJitInfo::Setter,
41968
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
41969
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
41970
  false,  /* isInfallible. False in setters. */
41971
  false,  /* isMovable.  Not relevant for setters. */
41972
  false, /* isEliminatable.  Not relevant for setters. */
41973
  false, /* isAlwaysInSlot.  Only relevant for getters. */
41974
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
41975
  false,  /* isTypedMethod.  Only relevant for methods. */
41976
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
41977
};
41978
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
41979
static_assert(0 < 1, "There is no slot for us");
41980
41981
MOZ_CAN_RUN_SCRIPT static bool
41982
get_webkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
41983
0
{
41984
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxPack", DOM, cx);
41985
0
41986
0
  FastErrorResult rv;
41987
0
  DOMString result;
41988
0
  self->GetWebkitBoxPack(result, rv);
41989
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
41990
0
    return false;
41991
0
  }
41992
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
41993
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
41994
0
    return false;
41995
0
  }
41996
0
  return true;
41997
0
}
41998
41999
MOZ_CAN_RUN_SCRIPT static bool
42000
set_webkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42001
0
{
42002
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxPack", DOM, cx);
42003
0
42004
0
  binding_detail::FakeString arg0;
42005
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42006
0
    return false;
42007
0
  }
42008
0
  Maybe<AutoCEReaction> ceReaction;
42009
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42010
0
    DocGroup* docGroup = self->GetDocGroup();
42011
0
    if (docGroup) {
42012
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42013
0
    }
42014
0
  }
42015
0
  FastErrorResult rv;
42016
0
  nsIPrincipal* subjectPrincipal;
42017
0
  {
42018
0
    JS::Realm* realm = js::GetContextRealm(cx);
42019
0
    MOZ_ASSERT(realm);
42020
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42021
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42022
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42023
0
      principal = nullptr;
42024
0
    }
42025
0
42026
0
    subjectPrincipal = principal;
42027
0
  }
42028
0
  self->SetWebkitBoxPack(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42029
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42030
0
    return false;
42031
0
  }
42032
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42033
0
42034
0
  return true;
42035
0
}
42036
42037
static const JSJitInfo webkitBoxPack_getterinfo = {
42038
  { (JSJitGetterOp)get_webkitBoxPack },
42039
  { prototypes::id::CSS2Properties },
42040
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42041
  JSJitInfo::Getter,
42042
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42043
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42044
  false,  /* isInfallible. False in setters. */
42045
  false,  /* isMovable.  Not relevant for setters. */
42046
  false, /* isEliminatable.  Not relevant for setters. */
42047
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42048
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42049
  false,  /* isTypedMethod.  Only relevant for methods. */
42050
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42051
};
42052
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42053
static_assert(0 < 1, "There is no slot for us");
42054
static const JSJitInfo webkitBoxPack_setterinfo = {
42055
  { (JSJitGetterOp)set_webkitBoxPack },
42056
  { prototypes::id::CSS2Properties },
42057
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42058
  JSJitInfo::Setter,
42059
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42060
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42061
  false,  /* isInfallible. False in setters. */
42062
  false,  /* isMovable.  Not relevant for setters. */
42063
  false, /* isEliminatable.  Not relevant for setters. */
42064
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42065
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42066
  false,  /* isTypedMethod.  Only relevant for methods. */
42067
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42068
};
42069
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42070
static_assert(0 < 1, "There is no slot for us");
42071
42072
MOZ_CAN_RUN_SCRIPT static bool
42073
get_webkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42074
0
{
42075
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBoxOrdinalGroup", DOM, cx);
42076
0
42077
0
  FastErrorResult rv;
42078
0
  DOMString result;
42079
0
  self->GetWebkitBoxOrdinalGroup(result, rv);
42080
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42081
0
    return false;
42082
0
  }
42083
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42084
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42085
0
    return false;
42086
0
  }
42087
0
  return true;
42088
0
}
42089
42090
MOZ_CAN_RUN_SCRIPT static bool
42091
set_webkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42092
0
{
42093
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBoxOrdinalGroup", DOM, cx);
42094
0
42095
0
  binding_detail::FakeString arg0;
42096
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42097
0
    return false;
42098
0
  }
42099
0
  Maybe<AutoCEReaction> ceReaction;
42100
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42101
0
    DocGroup* docGroup = self->GetDocGroup();
42102
0
    if (docGroup) {
42103
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42104
0
    }
42105
0
  }
42106
0
  FastErrorResult rv;
42107
0
  nsIPrincipal* subjectPrincipal;
42108
0
  {
42109
0
    JS::Realm* realm = js::GetContextRealm(cx);
42110
0
    MOZ_ASSERT(realm);
42111
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42112
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42113
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42114
0
      principal = nullptr;
42115
0
    }
42116
0
42117
0
    subjectPrincipal = principal;
42118
0
  }
42119
0
  self->SetWebkitBoxOrdinalGroup(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42120
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42121
0
    return false;
42122
0
  }
42123
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42124
0
42125
0
  return true;
42126
0
}
42127
42128
static const JSJitInfo webkitBoxOrdinalGroup_getterinfo = {
42129
  { (JSJitGetterOp)get_webkitBoxOrdinalGroup },
42130
  { prototypes::id::CSS2Properties },
42131
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42132
  JSJitInfo::Getter,
42133
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42134
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42135
  false,  /* isInfallible. False in setters. */
42136
  false,  /* isMovable.  Not relevant for setters. */
42137
  false, /* isEliminatable.  Not relevant for setters. */
42138
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42139
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42140
  false,  /* isTypedMethod.  Only relevant for methods. */
42141
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42142
};
42143
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42144
static_assert(0 < 1, "There is no slot for us");
42145
static const JSJitInfo webkitBoxOrdinalGroup_setterinfo = {
42146
  { (JSJitGetterOp)set_webkitBoxOrdinalGroup },
42147
  { prototypes::id::CSS2Properties },
42148
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42149
  JSJitInfo::Setter,
42150
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42151
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42152
  false,  /* isInfallible. False in setters. */
42153
  false,  /* isMovable.  Not relevant for setters. */
42154
  false, /* isEliminatable.  Not relevant for setters. */
42155
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42156
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42157
  false,  /* isTypedMethod.  Only relevant for methods. */
42158
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42159
};
42160
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42161
static_assert(0 < 1, "There is no slot for us");
42162
42163
MOZ_CAN_RUN_SCRIPT static bool
42164
get_MozBorderStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42165
0
{
42166
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderStart", DOM, cx);
42167
0
42168
0
  FastErrorResult rv;
42169
0
  DOMString result;
42170
0
  self->GetMozBorderStart(result, rv);
42171
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42172
0
    return false;
42173
0
  }
42174
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42175
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42176
0
    return false;
42177
0
  }
42178
0
  return true;
42179
0
}
42180
42181
MOZ_CAN_RUN_SCRIPT static bool
42182
set_MozBorderStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42183
0
{
42184
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderStart", DOM, cx);
42185
0
42186
0
  binding_detail::FakeString arg0;
42187
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42188
0
    return false;
42189
0
  }
42190
0
  Maybe<AutoCEReaction> ceReaction;
42191
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42192
0
    DocGroup* docGroup = self->GetDocGroup();
42193
0
    if (docGroup) {
42194
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42195
0
    }
42196
0
  }
42197
0
  FastErrorResult rv;
42198
0
  nsIPrincipal* subjectPrincipal;
42199
0
  {
42200
0
    JS::Realm* realm = js::GetContextRealm(cx);
42201
0
    MOZ_ASSERT(realm);
42202
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42203
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42204
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42205
0
      principal = nullptr;
42206
0
    }
42207
0
42208
0
    subjectPrincipal = principal;
42209
0
  }
42210
0
  self->SetMozBorderStart(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42211
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42212
0
    return false;
42213
0
  }
42214
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42215
0
42216
0
  return true;
42217
0
}
42218
42219
static const JSJitInfo MozBorderStart_getterinfo = {
42220
  { (JSJitGetterOp)get_MozBorderStart },
42221
  { prototypes::id::CSS2Properties },
42222
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42223
  JSJitInfo::Getter,
42224
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42225
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42226
  false,  /* isInfallible. False in setters. */
42227
  false,  /* isMovable.  Not relevant for setters. */
42228
  false, /* isEliminatable.  Not relevant for setters. */
42229
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42230
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42231
  false,  /* isTypedMethod.  Only relevant for methods. */
42232
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42233
};
42234
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42235
static_assert(0 < 1, "There is no slot for us");
42236
static const JSJitInfo MozBorderStart_setterinfo = {
42237
  { (JSJitGetterOp)set_MozBorderStart },
42238
  { prototypes::id::CSS2Properties },
42239
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42240
  JSJitInfo::Setter,
42241
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42242
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42243
  false,  /* isInfallible. False in setters. */
42244
  false,  /* isMovable.  Not relevant for setters. */
42245
  false, /* isEliminatable.  Not relevant for setters. */
42246
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42247
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42248
  false,  /* isTypedMethod.  Only relevant for methods. */
42249
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42250
};
42251
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42252
static_assert(0 < 1, "There is no slot for us");
42253
42254
MOZ_CAN_RUN_SCRIPT static bool
42255
get_MozBorderEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42256
0
{
42257
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderEnd", DOM, cx);
42258
0
42259
0
  FastErrorResult rv;
42260
0
  DOMString result;
42261
0
  self->GetMozBorderEnd(result, rv);
42262
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42263
0
    return false;
42264
0
  }
42265
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42266
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42267
0
    return false;
42268
0
  }
42269
0
  return true;
42270
0
}
42271
42272
MOZ_CAN_RUN_SCRIPT static bool
42273
set_MozBorderEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42274
0
{
42275
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderEnd", DOM, cx);
42276
0
42277
0
  binding_detail::FakeString arg0;
42278
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42279
0
    return false;
42280
0
  }
42281
0
  Maybe<AutoCEReaction> ceReaction;
42282
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42283
0
    DocGroup* docGroup = self->GetDocGroup();
42284
0
    if (docGroup) {
42285
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42286
0
    }
42287
0
  }
42288
0
  FastErrorResult rv;
42289
0
  nsIPrincipal* subjectPrincipal;
42290
0
  {
42291
0
    JS::Realm* realm = js::GetContextRealm(cx);
42292
0
    MOZ_ASSERT(realm);
42293
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42294
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42295
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42296
0
      principal = nullptr;
42297
0
    }
42298
0
42299
0
    subjectPrincipal = principal;
42300
0
  }
42301
0
  self->SetMozBorderEnd(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42302
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42303
0
    return false;
42304
0
  }
42305
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42306
0
42307
0
  return true;
42308
0
}
42309
42310
static const JSJitInfo MozBorderEnd_getterinfo = {
42311
  { (JSJitGetterOp)get_MozBorderEnd },
42312
  { prototypes::id::CSS2Properties },
42313
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42314
  JSJitInfo::Getter,
42315
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42316
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42317
  false,  /* isInfallible. False in setters. */
42318
  false,  /* isMovable.  Not relevant for setters. */
42319
  false, /* isEliminatable.  Not relevant for setters. */
42320
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42321
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42322
  false,  /* isTypedMethod.  Only relevant for methods. */
42323
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42324
};
42325
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42326
static_assert(0 < 1, "There is no slot for us");
42327
static const JSJitInfo MozBorderEnd_setterinfo = {
42328
  { (JSJitGetterOp)set_MozBorderEnd },
42329
  { prototypes::id::CSS2Properties },
42330
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42331
  JSJitInfo::Setter,
42332
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42333
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42334
  false,  /* isInfallible. False in setters. */
42335
  false,  /* isMovable.  Not relevant for setters. */
42336
  false, /* isEliminatable.  Not relevant for setters. */
42337
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42338
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42339
  false,  /* isTypedMethod.  Only relevant for methods. */
42340
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42341
};
42342
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42343
static_assert(0 < 1, "There is no slot for us");
42344
42345
MOZ_CAN_RUN_SCRIPT static bool
42346
get_webkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42347
0
{
42348
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderRadius", DOM, cx);
42349
0
42350
0
  FastErrorResult rv;
42351
0
  DOMString result;
42352
0
  self->GetWebkitBorderRadius(result, rv);
42353
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42354
0
    return false;
42355
0
  }
42356
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42357
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42358
0
    return false;
42359
0
  }
42360
0
  return true;
42361
0
}
42362
42363
MOZ_CAN_RUN_SCRIPT static bool
42364
set_webkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42365
0
{
42366
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderRadius", DOM, cx);
42367
0
42368
0
  binding_detail::FakeString arg0;
42369
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42370
0
    return false;
42371
0
  }
42372
0
  Maybe<AutoCEReaction> ceReaction;
42373
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42374
0
    DocGroup* docGroup = self->GetDocGroup();
42375
0
    if (docGroup) {
42376
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42377
0
    }
42378
0
  }
42379
0
  FastErrorResult rv;
42380
0
  nsIPrincipal* subjectPrincipal;
42381
0
  {
42382
0
    JS::Realm* realm = js::GetContextRealm(cx);
42383
0
    MOZ_ASSERT(realm);
42384
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42385
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42386
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42387
0
      principal = nullptr;
42388
0
    }
42389
0
42390
0
    subjectPrincipal = principal;
42391
0
  }
42392
0
  self->SetWebkitBorderRadius(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42393
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42394
0
    return false;
42395
0
  }
42396
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42397
0
42398
0
  return true;
42399
0
}
42400
42401
static const JSJitInfo webkitBorderRadius_getterinfo = {
42402
  { (JSJitGetterOp)get_webkitBorderRadius },
42403
  { prototypes::id::CSS2Properties },
42404
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42405
  JSJitInfo::Getter,
42406
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42407
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42408
  false,  /* isInfallible. False in setters. */
42409
  false,  /* isMovable.  Not relevant for setters. */
42410
  false, /* isEliminatable.  Not relevant for setters. */
42411
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42412
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42413
  false,  /* isTypedMethod.  Only relevant for methods. */
42414
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42415
};
42416
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42417
static_assert(0 < 1, "There is no slot for us");
42418
static const JSJitInfo webkitBorderRadius_setterinfo = {
42419
  { (JSJitGetterOp)set_webkitBorderRadius },
42420
  { prototypes::id::CSS2Properties },
42421
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42422
  JSJitInfo::Setter,
42423
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42424
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42425
  false,  /* isInfallible. False in setters. */
42426
  false,  /* isMovable.  Not relevant for setters. */
42427
  false, /* isEliminatable.  Not relevant for setters. */
42428
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42429
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42430
  false,  /* isTypedMethod.  Only relevant for methods. */
42431
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42432
};
42433
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42434
static_assert(0 < 1, "There is no slot for us");
42435
42436
MOZ_CAN_RUN_SCRIPT static bool
42437
get_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42438
0
{
42439
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozBorderImage", DOM, cx);
42440
0
42441
0
  FastErrorResult rv;
42442
0
  DOMString result;
42443
0
  self->GetMozBorderImage(result, rv);
42444
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42445
0
    return false;
42446
0
  }
42447
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42448
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42449
0
    return false;
42450
0
  }
42451
0
  return true;
42452
0
}
42453
42454
MOZ_CAN_RUN_SCRIPT static bool
42455
set_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42456
0
{
42457
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozBorderImage", DOM, cx);
42458
0
42459
0
  binding_detail::FakeString arg0;
42460
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42461
0
    return false;
42462
0
  }
42463
0
  Maybe<AutoCEReaction> ceReaction;
42464
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42465
0
    DocGroup* docGroup = self->GetDocGroup();
42466
0
    if (docGroup) {
42467
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42468
0
    }
42469
0
  }
42470
0
  FastErrorResult rv;
42471
0
  nsIPrincipal* subjectPrincipal;
42472
0
  {
42473
0
    JS::Realm* realm = js::GetContextRealm(cx);
42474
0
    MOZ_ASSERT(realm);
42475
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42476
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42477
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42478
0
      principal = nullptr;
42479
0
    }
42480
0
42481
0
    subjectPrincipal = principal;
42482
0
  }
42483
0
  self->SetMozBorderImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42484
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42485
0
    return false;
42486
0
  }
42487
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42488
0
42489
0
  return true;
42490
0
}
42491
42492
static const JSJitInfo MozBorderImage_getterinfo = {
42493
  { (JSJitGetterOp)get_MozBorderImage },
42494
  { prototypes::id::CSS2Properties },
42495
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42496
  JSJitInfo::Getter,
42497
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42498
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42499
  false,  /* isInfallible. False in setters. */
42500
  false,  /* isMovable.  Not relevant for setters. */
42501
  false, /* isEliminatable.  Not relevant for setters. */
42502
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42503
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42504
  false,  /* isTypedMethod.  Only relevant for methods. */
42505
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42506
};
42507
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42508
static_assert(0 < 1, "There is no slot for us");
42509
static const JSJitInfo MozBorderImage_setterinfo = {
42510
  { (JSJitGetterOp)set_MozBorderImage },
42511
  { prototypes::id::CSS2Properties },
42512
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42513
  JSJitInfo::Setter,
42514
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42515
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42516
  false,  /* isInfallible. False in setters. */
42517
  false,  /* isMovable.  Not relevant for setters. */
42518
  false, /* isEliminatable.  Not relevant for setters. */
42519
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42520
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42521
  false,  /* isTypedMethod.  Only relevant for methods. */
42522
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42523
};
42524
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42525
static_assert(0 < 1, "There is no slot for us");
42526
42527
MOZ_CAN_RUN_SCRIPT static bool
42528
get_webkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42529
0
{
42530
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitBorderImage", DOM, cx);
42531
0
42532
0
  FastErrorResult rv;
42533
0
  DOMString result;
42534
0
  self->GetWebkitBorderImage(result, rv);
42535
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42536
0
    return false;
42537
0
  }
42538
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42539
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42540
0
    return false;
42541
0
  }
42542
0
  return true;
42543
0
}
42544
42545
MOZ_CAN_RUN_SCRIPT static bool
42546
set_webkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42547
0
{
42548
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitBorderImage", DOM, cx);
42549
0
42550
0
  binding_detail::FakeString arg0;
42551
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42552
0
    return false;
42553
0
  }
42554
0
  Maybe<AutoCEReaction> ceReaction;
42555
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42556
0
    DocGroup* docGroup = self->GetDocGroup();
42557
0
    if (docGroup) {
42558
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42559
0
    }
42560
0
  }
42561
0
  FastErrorResult rv;
42562
0
  nsIPrincipal* subjectPrincipal;
42563
0
  {
42564
0
    JS::Realm* realm = js::GetContextRealm(cx);
42565
0
    MOZ_ASSERT(realm);
42566
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42567
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42568
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42569
0
      principal = nullptr;
42570
0
    }
42571
0
42572
0
    subjectPrincipal = principal;
42573
0
  }
42574
0
  self->SetWebkitBorderImage(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42575
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42576
0
    return false;
42577
0
  }
42578
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42579
0
42580
0
  return true;
42581
0
}
42582
42583
static const JSJitInfo webkitBorderImage_getterinfo = {
42584
  { (JSJitGetterOp)get_webkitBorderImage },
42585
  { prototypes::id::CSS2Properties },
42586
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42587
  JSJitInfo::Getter,
42588
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42589
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42590
  false,  /* isInfallible. False in setters. */
42591
  false,  /* isMovable.  Not relevant for setters. */
42592
  false, /* isEliminatable.  Not relevant for setters. */
42593
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42594
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42595
  false,  /* isTypedMethod.  Only relevant for methods. */
42596
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42597
};
42598
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42599
static_assert(0 < 1, "There is no slot for us");
42600
static const JSJitInfo webkitBorderImage_setterinfo = {
42601
  { (JSJitGetterOp)set_webkitBorderImage },
42602
  { prototypes::id::CSS2Properties },
42603
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42604
  JSJitInfo::Setter,
42605
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42606
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42607
  false,  /* isInfallible. False in setters. */
42608
  false,  /* isMovable.  Not relevant for setters. */
42609
  false, /* isEliminatable.  Not relevant for setters. */
42610
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42611
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42612
  false,  /* isTypedMethod.  Only relevant for methods. */
42613
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42614
};
42615
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42616
static_assert(0 < 1, "There is no slot for us");
42617
42618
MOZ_CAN_RUN_SCRIPT static bool
42619
get_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42620
0
{
42621
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozTransition", DOM, cx);
42622
0
42623
0
  FastErrorResult rv;
42624
0
  DOMString result;
42625
0
  self->GetMozTransition(result, rv);
42626
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42627
0
    return false;
42628
0
  }
42629
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42630
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42631
0
    return false;
42632
0
  }
42633
0
  return true;
42634
0
}
42635
42636
MOZ_CAN_RUN_SCRIPT static bool
42637
set_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42638
0
{
42639
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozTransition", DOM, cx);
42640
0
42641
0
  binding_detail::FakeString arg0;
42642
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42643
0
    return false;
42644
0
  }
42645
0
  Maybe<AutoCEReaction> ceReaction;
42646
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42647
0
    DocGroup* docGroup = self->GetDocGroup();
42648
0
    if (docGroup) {
42649
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42650
0
    }
42651
0
  }
42652
0
  FastErrorResult rv;
42653
0
  nsIPrincipal* subjectPrincipal;
42654
0
  {
42655
0
    JS::Realm* realm = js::GetContextRealm(cx);
42656
0
    MOZ_ASSERT(realm);
42657
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42658
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42659
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42660
0
      principal = nullptr;
42661
0
    }
42662
0
42663
0
    subjectPrincipal = principal;
42664
0
  }
42665
0
  self->SetMozTransition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42666
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42667
0
    return false;
42668
0
  }
42669
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42670
0
42671
0
  return true;
42672
0
}
42673
42674
static const JSJitInfo MozTransition_getterinfo = {
42675
  { (JSJitGetterOp)get_MozTransition },
42676
  { prototypes::id::CSS2Properties },
42677
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42678
  JSJitInfo::Getter,
42679
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42680
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42681
  false,  /* isInfallible. False in setters. */
42682
  false,  /* isMovable.  Not relevant for setters. */
42683
  false, /* isEliminatable.  Not relevant for setters. */
42684
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42685
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42686
  false,  /* isTypedMethod.  Only relevant for methods. */
42687
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42688
};
42689
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42690
static_assert(0 < 1, "There is no slot for us");
42691
static const JSJitInfo MozTransition_setterinfo = {
42692
  { (JSJitGetterOp)set_MozTransition },
42693
  { prototypes::id::CSS2Properties },
42694
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42695
  JSJitInfo::Setter,
42696
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42697
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42698
  false,  /* isInfallible. False in setters. */
42699
  false,  /* isMovable.  Not relevant for setters. */
42700
  false, /* isEliminatable.  Not relevant for setters. */
42701
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42702
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42703
  false,  /* isTypedMethod.  Only relevant for methods. */
42704
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42705
};
42706
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42707
static_assert(0 < 1, "There is no slot for us");
42708
42709
MOZ_CAN_RUN_SCRIPT static bool
42710
get_webkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42711
0
{
42712
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitTransition", DOM, cx);
42713
0
42714
0
  FastErrorResult rv;
42715
0
  DOMString result;
42716
0
  self->GetWebkitTransition(result, rv);
42717
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42718
0
    return false;
42719
0
  }
42720
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42721
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42722
0
    return false;
42723
0
  }
42724
0
  return true;
42725
0
}
42726
42727
MOZ_CAN_RUN_SCRIPT static bool
42728
set_webkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42729
0
{
42730
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitTransition", DOM, cx);
42731
0
42732
0
  binding_detail::FakeString arg0;
42733
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42734
0
    return false;
42735
0
  }
42736
0
  Maybe<AutoCEReaction> ceReaction;
42737
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42738
0
    DocGroup* docGroup = self->GetDocGroup();
42739
0
    if (docGroup) {
42740
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42741
0
    }
42742
0
  }
42743
0
  FastErrorResult rv;
42744
0
  nsIPrincipal* subjectPrincipal;
42745
0
  {
42746
0
    JS::Realm* realm = js::GetContextRealm(cx);
42747
0
    MOZ_ASSERT(realm);
42748
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42749
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42750
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42751
0
      principal = nullptr;
42752
0
    }
42753
0
42754
0
    subjectPrincipal = principal;
42755
0
  }
42756
0
  self->SetWebkitTransition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42757
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42758
0
    return false;
42759
0
  }
42760
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42761
0
42762
0
  return true;
42763
0
}
42764
42765
static const JSJitInfo webkitTransition_getterinfo = {
42766
  { (JSJitGetterOp)get_webkitTransition },
42767
  { prototypes::id::CSS2Properties },
42768
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42769
  JSJitInfo::Getter,
42770
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42771
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42772
  false,  /* isInfallible. False in setters. */
42773
  false,  /* isMovable.  Not relevant for setters. */
42774
  false, /* isEliminatable.  Not relevant for setters. */
42775
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42776
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42777
  false,  /* isTypedMethod.  Only relevant for methods. */
42778
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42779
};
42780
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42781
static_assert(0 < 1, "There is no slot for us");
42782
static const JSJitInfo webkitTransition_setterinfo = {
42783
  { (JSJitGetterOp)set_webkitTransition },
42784
  { prototypes::id::CSS2Properties },
42785
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42786
  JSJitInfo::Setter,
42787
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42788
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42789
  false,  /* isInfallible. False in setters. */
42790
  false,  /* isMovable.  Not relevant for setters. */
42791
  false, /* isEliminatable.  Not relevant for setters. */
42792
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42793
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42794
  false,  /* isTypedMethod.  Only relevant for methods. */
42795
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42796
};
42797
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42798
static_assert(0 < 1, "There is no slot for us");
42799
42800
MOZ_CAN_RUN_SCRIPT static bool
42801
get_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42802
0
{
42803
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozAnimation", DOM, cx);
42804
0
42805
0
  FastErrorResult rv;
42806
0
  DOMString result;
42807
0
  self->GetMozAnimation(result, rv);
42808
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42809
0
    return false;
42810
0
  }
42811
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42812
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42813
0
    return false;
42814
0
  }
42815
0
  return true;
42816
0
}
42817
42818
MOZ_CAN_RUN_SCRIPT static bool
42819
set_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42820
0
{
42821
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozAnimation", DOM, cx);
42822
0
42823
0
  binding_detail::FakeString arg0;
42824
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42825
0
    return false;
42826
0
  }
42827
0
  Maybe<AutoCEReaction> ceReaction;
42828
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42829
0
    DocGroup* docGroup = self->GetDocGroup();
42830
0
    if (docGroup) {
42831
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42832
0
    }
42833
0
  }
42834
0
  FastErrorResult rv;
42835
0
  nsIPrincipal* subjectPrincipal;
42836
0
  {
42837
0
    JS::Realm* realm = js::GetContextRealm(cx);
42838
0
    MOZ_ASSERT(realm);
42839
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42840
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42841
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42842
0
      principal = nullptr;
42843
0
    }
42844
0
42845
0
    subjectPrincipal = principal;
42846
0
  }
42847
0
  self->SetMozAnimation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42848
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42849
0
    return false;
42850
0
  }
42851
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42852
0
42853
0
  return true;
42854
0
}
42855
42856
static const JSJitInfo MozAnimation_getterinfo = {
42857
  { (JSJitGetterOp)get_MozAnimation },
42858
  { prototypes::id::CSS2Properties },
42859
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42860
  JSJitInfo::Getter,
42861
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42862
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42863
  false,  /* isInfallible. False in setters. */
42864
  false,  /* isMovable.  Not relevant for setters. */
42865
  false, /* isEliminatable.  Not relevant for setters. */
42866
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42867
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42868
  false,  /* isTypedMethod.  Only relevant for methods. */
42869
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42870
};
42871
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42872
static_assert(0 < 1, "There is no slot for us");
42873
static const JSJitInfo MozAnimation_setterinfo = {
42874
  { (JSJitGetterOp)set_MozAnimation },
42875
  { prototypes::id::CSS2Properties },
42876
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42877
  JSJitInfo::Setter,
42878
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42879
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42880
  false,  /* isInfallible. False in setters. */
42881
  false,  /* isMovable.  Not relevant for setters. */
42882
  false, /* isEliminatable.  Not relevant for setters. */
42883
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42884
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42885
  false,  /* isTypedMethod.  Only relevant for methods. */
42886
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42887
};
42888
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42889
static_assert(0 < 1, "There is no slot for us");
42890
42891
MOZ_CAN_RUN_SCRIPT static bool
42892
get_webkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42893
0
{
42894
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitAnimation", DOM, cx);
42895
0
42896
0
  FastErrorResult rv;
42897
0
  DOMString result;
42898
0
  self->GetWebkitAnimation(result, rv);
42899
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42900
0
    return false;
42901
0
  }
42902
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42903
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42904
0
    return false;
42905
0
  }
42906
0
  return true;
42907
0
}
42908
42909
MOZ_CAN_RUN_SCRIPT static bool
42910
set_webkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
42911
0
{
42912
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitAnimation", DOM, cx);
42913
0
42914
0
  binding_detail::FakeString arg0;
42915
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
42916
0
    return false;
42917
0
  }
42918
0
  Maybe<AutoCEReaction> ceReaction;
42919
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
42920
0
    DocGroup* docGroup = self->GetDocGroup();
42921
0
    if (docGroup) {
42922
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
42923
0
    }
42924
0
  }
42925
0
  FastErrorResult rv;
42926
0
  nsIPrincipal* subjectPrincipal;
42927
0
  {
42928
0
    JS::Realm* realm = js::GetContextRealm(cx);
42929
0
    MOZ_ASSERT(realm);
42930
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
42931
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
42932
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
42933
0
      principal = nullptr;
42934
0
    }
42935
0
42936
0
    subjectPrincipal = principal;
42937
0
  }
42938
0
  self->SetWebkitAnimation(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
42939
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42940
0
    return false;
42941
0
  }
42942
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42943
0
42944
0
  return true;
42945
0
}
42946
42947
static const JSJitInfo webkitAnimation_getterinfo = {
42948
  { (JSJitGetterOp)get_webkitAnimation },
42949
  { prototypes::id::CSS2Properties },
42950
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42951
  JSJitInfo::Getter,
42952
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42953
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
42954
  false,  /* isInfallible. False in setters. */
42955
  false,  /* isMovable.  Not relevant for setters. */
42956
  false, /* isEliminatable.  Not relevant for setters. */
42957
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42958
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42959
  false,  /* isTypedMethod.  Only relevant for methods. */
42960
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42961
};
42962
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42963
static_assert(0 < 1, "There is no slot for us");
42964
static const JSJitInfo webkitAnimation_setterinfo = {
42965
  { (JSJitGetterOp)set_webkitAnimation },
42966
  { prototypes::id::CSS2Properties },
42967
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
42968
  JSJitInfo::Setter,
42969
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
42970
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
42971
  false,  /* isInfallible. False in setters. */
42972
  false,  /* isMovable.  Not relevant for setters. */
42973
  false, /* isEliminatable.  Not relevant for setters. */
42974
  false, /* isAlwaysInSlot.  Only relevant for getters. */
42975
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
42976
  false,  /* isTypedMethod.  Only relevant for methods. */
42977
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
42978
};
42979
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
42980
static_assert(0 < 1, "There is no slot for us");
42981
42982
MOZ_CAN_RUN_SCRIPT static bool
42983
get_MozColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
42984
0
{
42985
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumns", DOM, cx);
42986
0
42987
0
  FastErrorResult rv;
42988
0
  DOMString result;
42989
0
  self->GetMozColumns(result, rv);
42990
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
42991
0
    return false;
42992
0
  }
42993
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
42994
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
42995
0
    return false;
42996
0
  }
42997
0
  return true;
42998
0
}
42999
43000
MOZ_CAN_RUN_SCRIPT static bool
43001
set_MozColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43002
0
{
43003
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumns", DOM, cx);
43004
0
43005
0
  binding_detail::FakeString arg0;
43006
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43007
0
    return false;
43008
0
  }
43009
0
  Maybe<AutoCEReaction> ceReaction;
43010
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43011
0
    DocGroup* docGroup = self->GetDocGroup();
43012
0
    if (docGroup) {
43013
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43014
0
    }
43015
0
  }
43016
0
  FastErrorResult rv;
43017
0
  nsIPrincipal* subjectPrincipal;
43018
0
  {
43019
0
    JS::Realm* realm = js::GetContextRealm(cx);
43020
0
    MOZ_ASSERT(realm);
43021
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43022
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43023
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43024
0
      principal = nullptr;
43025
0
    }
43026
0
43027
0
    subjectPrincipal = principal;
43028
0
  }
43029
0
  self->SetMozColumns(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43030
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43031
0
    return false;
43032
0
  }
43033
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43034
0
43035
0
  return true;
43036
0
}
43037
43038
static const JSJitInfo MozColumns_getterinfo = {
43039
  { (JSJitGetterOp)get_MozColumns },
43040
  { prototypes::id::CSS2Properties },
43041
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43042
  JSJitInfo::Getter,
43043
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43044
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43045
  false,  /* isInfallible. False in setters. */
43046
  false,  /* isMovable.  Not relevant for setters. */
43047
  false, /* isEliminatable.  Not relevant for setters. */
43048
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43049
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43050
  false,  /* isTypedMethod.  Only relevant for methods. */
43051
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43052
};
43053
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43054
static_assert(0 < 1, "There is no slot for us");
43055
static const JSJitInfo MozColumns_setterinfo = {
43056
  { (JSJitGetterOp)set_MozColumns },
43057
  { prototypes::id::CSS2Properties },
43058
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43059
  JSJitInfo::Setter,
43060
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43061
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43062
  false,  /* isInfallible. False in setters. */
43063
  false,  /* isMovable.  Not relevant for setters. */
43064
  false, /* isEliminatable.  Not relevant for setters. */
43065
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43066
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43067
  false,  /* isTypedMethod.  Only relevant for methods. */
43068
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43069
};
43070
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43071
static_assert(0 < 1, "There is no slot for us");
43072
43073
MOZ_CAN_RUN_SCRIPT static bool
43074
get_MozColumnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43075
0
{
43076
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.MozColumnRule", DOM, cx);
43077
0
43078
0
  FastErrorResult rv;
43079
0
  DOMString result;
43080
0
  self->GetMozColumnRule(result, rv);
43081
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43082
0
    return false;
43083
0
  }
43084
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43085
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43086
0
    return false;
43087
0
  }
43088
0
  return true;
43089
0
}
43090
43091
MOZ_CAN_RUN_SCRIPT static bool
43092
set_MozColumnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43093
0
{
43094
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.MozColumnRule", DOM, cx);
43095
0
43096
0
  binding_detail::FakeString arg0;
43097
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43098
0
    return false;
43099
0
  }
43100
0
  Maybe<AutoCEReaction> ceReaction;
43101
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43102
0
    DocGroup* docGroup = self->GetDocGroup();
43103
0
    if (docGroup) {
43104
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43105
0
    }
43106
0
  }
43107
0
  FastErrorResult rv;
43108
0
  nsIPrincipal* subjectPrincipal;
43109
0
  {
43110
0
    JS::Realm* realm = js::GetContextRealm(cx);
43111
0
    MOZ_ASSERT(realm);
43112
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43113
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43114
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43115
0
      principal = nullptr;
43116
0
    }
43117
0
43118
0
    subjectPrincipal = principal;
43119
0
  }
43120
0
  self->SetMozColumnRule(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43121
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43122
0
    return false;
43123
0
  }
43124
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43125
0
43126
0
  return true;
43127
0
}
43128
43129
static const JSJitInfo MozColumnRule_getterinfo = {
43130
  { (JSJitGetterOp)get_MozColumnRule },
43131
  { prototypes::id::CSS2Properties },
43132
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43133
  JSJitInfo::Getter,
43134
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43135
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43136
  false,  /* isInfallible. False in setters. */
43137
  false,  /* isMovable.  Not relevant for setters. */
43138
  false, /* isEliminatable.  Not relevant for setters. */
43139
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43140
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43141
  false,  /* isTypedMethod.  Only relevant for methods. */
43142
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43143
};
43144
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43145
static_assert(0 < 1, "There is no slot for us");
43146
static const JSJitInfo MozColumnRule_setterinfo = {
43147
  { (JSJitGetterOp)set_MozColumnRule },
43148
  { prototypes::id::CSS2Properties },
43149
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43150
  JSJitInfo::Setter,
43151
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43152
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43153
  false,  /* isInfallible. False in setters. */
43154
  false,  /* isMovable.  Not relevant for setters. */
43155
  false, /* isEliminatable.  Not relevant for setters. */
43156
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43157
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43158
  false,  /* isTypedMethod.  Only relevant for methods. */
43159
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43160
};
43161
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43162
static_assert(0 < 1, "There is no slot for us");
43163
43164
MOZ_CAN_RUN_SCRIPT static bool
43165
get_webkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43166
0
{
43167
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlexFlow", DOM, cx);
43168
0
43169
0
  FastErrorResult rv;
43170
0
  DOMString result;
43171
0
  self->GetWebkitFlexFlow(result, rv);
43172
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43173
0
    return false;
43174
0
  }
43175
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43176
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43177
0
    return false;
43178
0
  }
43179
0
  return true;
43180
0
}
43181
43182
MOZ_CAN_RUN_SCRIPT static bool
43183
set_webkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43184
0
{
43185
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlexFlow", DOM, cx);
43186
0
43187
0
  binding_detail::FakeString arg0;
43188
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43189
0
    return false;
43190
0
  }
43191
0
  Maybe<AutoCEReaction> ceReaction;
43192
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43193
0
    DocGroup* docGroup = self->GetDocGroup();
43194
0
    if (docGroup) {
43195
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43196
0
    }
43197
0
  }
43198
0
  FastErrorResult rv;
43199
0
  nsIPrincipal* subjectPrincipal;
43200
0
  {
43201
0
    JS::Realm* realm = js::GetContextRealm(cx);
43202
0
    MOZ_ASSERT(realm);
43203
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43204
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43205
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43206
0
      principal = nullptr;
43207
0
    }
43208
0
43209
0
    subjectPrincipal = principal;
43210
0
  }
43211
0
  self->SetWebkitFlexFlow(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43212
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43213
0
    return false;
43214
0
  }
43215
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43216
0
43217
0
  return true;
43218
0
}
43219
43220
static const JSJitInfo webkitFlexFlow_getterinfo = {
43221
  { (JSJitGetterOp)get_webkitFlexFlow },
43222
  { prototypes::id::CSS2Properties },
43223
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43224
  JSJitInfo::Getter,
43225
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43226
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43227
  false,  /* isInfallible. False in setters. */
43228
  false,  /* isMovable.  Not relevant for setters. */
43229
  false, /* isEliminatable.  Not relevant for setters. */
43230
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43231
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43232
  false,  /* isTypedMethod.  Only relevant for methods. */
43233
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43234
};
43235
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43236
static_assert(0 < 1, "There is no slot for us");
43237
static const JSJitInfo webkitFlexFlow_setterinfo = {
43238
  { (JSJitGetterOp)set_webkitFlexFlow },
43239
  { prototypes::id::CSS2Properties },
43240
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43241
  JSJitInfo::Setter,
43242
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43243
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43244
  false,  /* isInfallible. False in setters. */
43245
  false,  /* isMovable.  Not relevant for setters. */
43246
  false, /* isEliminatable.  Not relevant for setters. */
43247
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43248
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43249
  false,  /* isTypedMethod.  Only relevant for methods. */
43250
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43251
};
43252
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43253
static_assert(0 < 1, "There is no slot for us");
43254
43255
MOZ_CAN_RUN_SCRIPT static bool
43256
get_webkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43257
0
{
43258
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitFlex", DOM, cx);
43259
0
43260
0
  FastErrorResult rv;
43261
0
  DOMString result;
43262
0
  self->GetWebkitFlex(result, rv);
43263
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43264
0
    return false;
43265
0
  }
43266
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43267
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43268
0
    return false;
43269
0
  }
43270
0
  return true;
43271
0
}
43272
43273
MOZ_CAN_RUN_SCRIPT static bool
43274
set_webkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43275
0
{
43276
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitFlex", DOM, cx);
43277
0
43278
0
  binding_detail::FakeString arg0;
43279
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43280
0
    return false;
43281
0
  }
43282
0
  Maybe<AutoCEReaction> ceReaction;
43283
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43284
0
    DocGroup* docGroup = self->GetDocGroup();
43285
0
    if (docGroup) {
43286
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43287
0
    }
43288
0
  }
43289
0
  FastErrorResult rv;
43290
0
  nsIPrincipal* subjectPrincipal;
43291
0
  {
43292
0
    JS::Realm* realm = js::GetContextRealm(cx);
43293
0
    MOZ_ASSERT(realm);
43294
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43295
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43296
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43297
0
      principal = nullptr;
43298
0
    }
43299
0
43300
0
    subjectPrincipal = principal;
43301
0
  }
43302
0
  self->SetWebkitFlex(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43303
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43304
0
    return false;
43305
0
  }
43306
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43307
0
43308
0
  return true;
43309
0
}
43310
43311
static const JSJitInfo webkitFlex_getterinfo = {
43312
  { (JSJitGetterOp)get_webkitFlex },
43313
  { prototypes::id::CSS2Properties },
43314
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43315
  JSJitInfo::Getter,
43316
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43317
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43318
  false,  /* isInfallible. False in setters. */
43319
  false,  /* isMovable.  Not relevant for setters. */
43320
  false, /* isEliminatable.  Not relevant for setters. */
43321
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43322
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43323
  false,  /* isTypedMethod.  Only relevant for methods. */
43324
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43325
};
43326
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43327
static_assert(0 < 1, "There is no slot for us");
43328
static const JSJitInfo webkitFlex_setterinfo = {
43329
  { (JSJitGetterOp)set_webkitFlex },
43330
  { prototypes::id::CSS2Properties },
43331
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43332
  JSJitInfo::Setter,
43333
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43334
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43335
  false,  /* isInfallible. False in setters. */
43336
  false,  /* isMovable.  Not relevant for setters. */
43337
  false, /* isEliminatable.  Not relevant for setters. */
43338
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43339
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43340
  false,  /* isTypedMethod.  Only relevant for methods. */
43341
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43342
};
43343
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43344
static_assert(0 < 1, "There is no slot for us");
43345
43346
MOZ_CAN_RUN_SCRIPT static bool
43347
get_gridGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43348
0
{
43349
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.gridGap", DOM, cx);
43350
0
43351
0
  FastErrorResult rv;
43352
0
  DOMString result;
43353
0
  self->GetGridGap(result, rv);
43354
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43355
0
    return false;
43356
0
  }
43357
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43358
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43359
0
    return false;
43360
0
  }
43361
0
  return true;
43362
0
}
43363
43364
MOZ_CAN_RUN_SCRIPT static bool
43365
set_gridGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43366
0
{
43367
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.gridGap", DOM, cx);
43368
0
43369
0
  binding_detail::FakeString arg0;
43370
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43371
0
    return false;
43372
0
  }
43373
0
  Maybe<AutoCEReaction> ceReaction;
43374
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43375
0
    DocGroup* docGroup = self->GetDocGroup();
43376
0
    if (docGroup) {
43377
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43378
0
    }
43379
0
  }
43380
0
  FastErrorResult rv;
43381
0
  nsIPrincipal* subjectPrincipal;
43382
0
  {
43383
0
    JS::Realm* realm = js::GetContextRealm(cx);
43384
0
    MOZ_ASSERT(realm);
43385
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43386
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43387
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43388
0
      principal = nullptr;
43389
0
    }
43390
0
43391
0
    subjectPrincipal = principal;
43392
0
  }
43393
0
  self->SetGridGap(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43394
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43395
0
    return false;
43396
0
  }
43397
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43398
0
43399
0
  return true;
43400
0
}
43401
43402
static const JSJitInfo gridGap_getterinfo = {
43403
  { (JSJitGetterOp)get_gridGap },
43404
  { prototypes::id::CSS2Properties },
43405
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43406
  JSJitInfo::Getter,
43407
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43408
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43409
  false,  /* isInfallible. False in setters. */
43410
  false,  /* isMovable.  Not relevant for setters. */
43411
  false, /* isEliminatable.  Not relevant for setters. */
43412
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43413
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43414
  false,  /* isTypedMethod.  Only relevant for methods. */
43415
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43416
};
43417
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43418
static_assert(0 < 1, "There is no slot for us");
43419
static const JSJitInfo gridGap_setterinfo = {
43420
  { (JSJitGetterOp)set_gridGap },
43421
  { prototypes::id::CSS2Properties },
43422
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43423
  JSJitInfo::Setter,
43424
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43425
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43426
  false,  /* isInfallible. False in setters. */
43427
  false,  /* isMovable.  Not relevant for setters. */
43428
  false, /* isEliminatable.  Not relevant for setters. */
43429
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43430
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43431
  false,  /* isTypedMethod.  Only relevant for methods. */
43432
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43433
};
43434
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43435
static_assert(0 < 1, "There is no slot for us");
43436
43437
MOZ_CAN_RUN_SCRIPT static bool
43438
get_webkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43439
0
{
43440
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMask", DOM, cx);
43441
0
43442
0
  FastErrorResult rv;
43443
0
  DOMString result;
43444
0
  self->GetWebkitMask(result, rv);
43445
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43446
0
    return false;
43447
0
  }
43448
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43449
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43450
0
    return false;
43451
0
  }
43452
0
  return true;
43453
0
}
43454
43455
MOZ_CAN_RUN_SCRIPT static bool
43456
set_webkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43457
0
{
43458
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMask", DOM, cx);
43459
0
43460
0
  binding_detail::FakeString arg0;
43461
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43462
0
    return false;
43463
0
  }
43464
0
  Maybe<AutoCEReaction> ceReaction;
43465
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43466
0
    DocGroup* docGroup = self->GetDocGroup();
43467
0
    if (docGroup) {
43468
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43469
0
    }
43470
0
  }
43471
0
  FastErrorResult rv;
43472
0
  nsIPrincipal* subjectPrincipal;
43473
0
  {
43474
0
    JS::Realm* realm = js::GetContextRealm(cx);
43475
0
    MOZ_ASSERT(realm);
43476
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43477
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43478
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43479
0
      principal = nullptr;
43480
0
    }
43481
0
43482
0
    subjectPrincipal = principal;
43483
0
  }
43484
0
  self->SetWebkitMask(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43485
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43486
0
    return false;
43487
0
  }
43488
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43489
0
43490
0
  return true;
43491
0
}
43492
43493
static const JSJitInfo webkitMask_getterinfo = {
43494
  { (JSJitGetterOp)get_webkitMask },
43495
  { prototypes::id::CSS2Properties },
43496
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43497
  JSJitInfo::Getter,
43498
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43499
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43500
  false,  /* isInfallible. False in setters. */
43501
  false,  /* isMovable.  Not relevant for setters. */
43502
  false, /* isEliminatable.  Not relevant for setters. */
43503
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43504
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43505
  false,  /* isTypedMethod.  Only relevant for methods. */
43506
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43507
};
43508
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43509
static_assert(0 < 1, "There is no slot for us");
43510
static const JSJitInfo webkitMask_setterinfo = {
43511
  { (JSJitGetterOp)set_webkitMask },
43512
  { prototypes::id::CSS2Properties },
43513
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43514
  JSJitInfo::Setter,
43515
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43516
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43517
  false,  /* isInfallible. False in setters. */
43518
  false,  /* isMovable.  Not relevant for setters. */
43519
  false, /* isEliminatable.  Not relevant for setters. */
43520
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43521
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43522
  false,  /* isTypedMethod.  Only relevant for methods. */
43523
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43524
};
43525
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43526
static_assert(0 < 1, "There is no slot for us");
43527
43528
MOZ_CAN_RUN_SCRIPT static bool
43529
get_webkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
43530
0
{
43531
0
  AUTO_PROFILER_LABEL_FAST("get CSS2Properties.webkitMaskPosition", DOM, cx);
43532
0
43533
0
  FastErrorResult rv;
43534
0
  DOMString result;
43535
0
  self->GetWebkitMaskPosition(result, rv);
43536
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43537
0
    return false;
43538
0
  }
43539
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43540
0
  if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
43541
0
    return false;
43542
0
  }
43543
0
  return true;
43544
0
}
43545
43546
MOZ_CAN_RUN_SCRIPT static bool
43547
set_webkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
43548
0
{
43549
0
  AUTO_PROFILER_LABEL_FAST("set CSS2Properties.webkitMaskPosition", DOM, cx);
43550
0
43551
0
  binding_detail::FakeString arg0;
43552
0
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
43553
0
    return false;
43554
0
  }
43555
0
  Maybe<AutoCEReaction> ceReaction;
43556
0
  if (CustomElementRegistry::IsCustomElementEnabled(cx, obj)) {
43557
0
    DocGroup* docGroup = self->GetDocGroup();
43558
0
    if (docGroup) {
43559
0
      ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
43560
0
    }
43561
0
  }
43562
0
  FastErrorResult rv;
43563
0
  nsIPrincipal* subjectPrincipal;
43564
0
  {
43565
0
    JS::Realm* realm = js::GetContextRealm(cx);
43566
0
    MOZ_ASSERT(realm);
43567
0
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
43568
0
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
43569
0
    if (nsContentUtils::IsSystemPrincipal(principal)) {
43570
0
      principal = nullptr;
43571
0
    }
43572
0
43573
0
    subjectPrincipal = principal;
43574
0
  }
43575
0
  self->SetWebkitMaskPosition(NonNullHelper(Constify(arg0)), subjectPrincipal, rv);
43576
0
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
43577
0
    return false;
43578
0
  }
43579
0
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
43580
0
43581
0
  return true;
43582
0
}
43583
43584
static const JSJitInfo webkitMaskPosition_getterinfo = {
43585
  { (JSJitGetterOp)get_webkitMaskPosition },
43586
  { prototypes::id::CSS2Properties },
43587
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43588
  JSJitInfo::Getter,
43589
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43590
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
43591
  false,  /* isInfallible. False in setters. */
43592
  false,  /* isMovable.  Not relevant for setters. */
43593
  false, /* isEliminatable.  Not relevant for setters. */
43594
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43595
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43596
  false,  /* isTypedMethod.  Only relevant for methods. */
43597
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43598
};
43599
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43600
static_assert(0 < 1, "There is no slot for us");
43601
static const JSJitInfo webkitMaskPosition_setterinfo = {
43602
  { (JSJitGetterOp)set_webkitMaskPosition },
43603
  { prototypes::id::CSS2Properties },
43604
  { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
43605
  JSJitInfo::Setter,
43606
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
43607
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
43608
  false,  /* isInfallible. False in setters. */
43609
  false,  /* isMovable.  Not relevant for setters. */
43610
  false, /* isEliminatable.  Not relevant for setters. */
43611
  false, /* isAlwaysInSlot.  Only relevant for getters. */
43612
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
43613
  false,  /* isTypedMethod.  Only relevant for methods. */
43614
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
43615
};
43616
static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
43617
static_assert(0 < 1, "There is no slot for us");
43618
43619
// We deliberately use brace-elision to make Visual Studio produce better initalization code.
43620
#if defined(__clang__)
43621
#pragma clang diagnostic push
43622
#pragma clang diagnostic ignored "-Wmissing-braces"
43623
#endif
43624
static const JSFunctionSpec sMethods_specs[] = {
43625
  JS_SYM_FNSPEC(iterator, nullptr, nullptr, 0, 0, "ArrayValues"),
43626
  JS_FS_END
43627
};
43628
#if defined(__clang__)
43629
#pragma clang diagnostic pop
43630
#endif
43631
43632
43633
static const Prefable<const JSFunctionSpec> sMethods[] = {
43634
  { nullptr, &sMethods_specs[0] },
43635
  { nullptr, nullptr }
43636
};
43637
43638
static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
43639
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
43640
static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
43641
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");
43642
43643
// We deliberately use brace-elision to make Visual Studio produce better initalization code.
43644
#if defined(__clang__)
43645
#pragma clang diagnostic push
43646
#pragma clang diagnostic ignored "-Wmissing-braces"
43647
#endif
43648
static const JSPropertySpec sAttributes_specs[] = {
43649
  { "alignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo },
43650
  { "align-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo },
43651
  { "alignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo },
43652
  { "align-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo },
43653
  { "alignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo },
43654
  { "align-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo },
43655
  { "backfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo },
43656
  { "backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo },
43657
  { "borderCollapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &borderCollapse_setterinfo },
43658
  { "border-collapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &borderCollapse_setterinfo },
43659
  { "borderImageRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageRepeat_setterinfo },
43660
  { "border-image-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageRepeat_setterinfo },
43661
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43662
  { "boxDecorationBreak", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxDecorationBreak_getterinfo, GenericSetter<NormalThisPolicy>, &boxDecorationBreak_setterinfo },
43663
  { "box-decoration-break", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxDecorationBreak_getterinfo, GenericSetter<NormalThisPolicy>, &boxDecorationBreak_setterinfo },
43664
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43665
  { "boxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo },
43666
  { "box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo },
43667
  { "captionSide", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &captionSide_getterinfo, GenericSetter<NormalThisPolicy>, &captionSide_setterinfo },
43668
  { "caption-side", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &captionSide_getterinfo, GenericSetter<NormalThisPolicy>, &captionSide_setterinfo },
43669
  { "clear", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clear_getterinfo, GenericSetter<NormalThisPolicy>, &clear_setterinfo },
43670
  { "clipRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipRule_getterinfo, GenericSetter<NormalThisPolicy>, &clipRule_setterinfo },
43671
  { "clip-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipRule_getterinfo, GenericSetter<NormalThisPolicy>, &clipRule_setterinfo },
43672
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43673
  { "colorAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &colorAdjust_setterinfo },
43674
  { "color-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &colorAdjust_setterinfo },
43675
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43676
  { "colorInterpolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolation_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolation_setterinfo },
43677
  { "color-interpolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolation_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolation_setterinfo },
43678
  { "colorInterpolationFilters", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolationFilters_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolationFilters_setterinfo },
43679
  { "color-interpolation-filters", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolationFilters_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolationFilters_setterinfo },
43680
  { "columnCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnCount_getterinfo, GenericSetter<NormalThisPolicy>, &columnCount_setterinfo },
43681
  { "column-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnCount_getterinfo, GenericSetter<NormalThisPolicy>, &columnCount_setterinfo },
43682
  { "columnFill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnFill_getterinfo, GenericSetter<NormalThisPolicy>, &columnFill_setterinfo },
43683
  { "column-fill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnFill_getterinfo, GenericSetter<NormalThisPolicy>, &columnFill_setterinfo },
43684
  { "columnRuleStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleStyle_setterinfo },
43685
  { "column-rule-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleStyle_setterinfo },
43686
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43687
  { "columnSpan", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &columnSpan_setterinfo },
43688
  { "column-span", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &columnSpan_setterinfo },
43689
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43690
  { "contain", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &contain_getterinfo, GenericSetter<NormalThisPolicy>, &contain_setterinfo },
43691
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43692
  { "direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &direction_getterinfo, GenericSetter<NormalThisPolicy>, &direction_setterinfo },
43693
  { "display", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &display_getterinfo, GenericSetter<NormalThisPolicy>, &display_setterinfo },
43694
  { "dominantBaseline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &dominantBaseline_getterinfo, GenericSetter<NormalThisPolicy>, &dominantBaseline_setterinfo },
43695
  { "dominant-baseline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &dominantBaseline_getterinfo, GenericSetter<NormalThisPolicy>, &dominantBaseline_setterinfo },
43696
  { "emptyCells", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &emptyCells_getterinfo, GenericSetter<NormalThisPolicy>, &emptyCells_setterinfo },
43697
  { "empty-cells", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &emptyCells_getterinfo, GenericSetter<NormalThisPolicy>, &emptyCells_setterinfo },
43698
  { "fillRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillRule_getterinfo, GenericSetter<NormalThisPolicy>, &fillRule_setterinfo },
43699
  { "fill-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillRule_getterinfo, GenericSetter<NormalThisPolicy>, &fillRule_setterinfo },
43700
  { "flexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo },
43701
  { "flex-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo },
43702
  { "flexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo },
43703
  { "flex-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo },
43704
  { "cssFloat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cssFloat_getterinfo, GenericSetter<NormalThisPolicy>, &cssFloat_setterinfo },
43705
  { "float", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cssFloat_getterinfo, GenericSetter<NormalThisPolicy>, &cssFloat_setterinfo },
43706
  { "fontKerning", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontKerning_getterinfo, GenericSetter<NormalThisPolicy>, &fontKerning_setterinfo },
43707
  { "font-kerning", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontKerning_getterinfo, GenericSetter<NormalThisPolicy>, &fontKerning_setterinfo },
43708
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43709
  { "fontOpticalSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontOpticalSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fontOpticalSizing_setterinfo },
43710
  { "font-optical-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontOpticalSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fontOpticalSizing_setterinfo },
43711
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43712
  { "fontSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &fontSizeAdjust_setterinfo },
43713
  { "font-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &fontSizeAdjust_setterinfo },
43714
  { "fontStretch", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStretch_getterinfo, GenericSetter<NormalThisPolicy>, &fontStretch_setterinfo },
43715
  { "font-stretch", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStretch_getterinfo, GenericSetter<NormalThisPolicy>, &fontStretch_setterinfo },
43716
  { "fontStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontStyle_setterinfo },
43717
  { "font-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontStyle_setterinfo },
43718
  { "fontSynthesis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesis_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesis_setterinfo },
43719
  { "font-synthesis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesis_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesis_setterinfo },
43720
  { "fontVariantCaps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantCaps_setterinfo },
43721
  { "font-variant-caps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantCaps_setterinfo },
43722
  { "fontVariantEastAsian", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEastAsian_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEastAsian_setterinfo },
43723
  { "font-variant-east-asian", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEastAsian_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEastAsian_setterinfo },
43724
  { "fontVariantLigatures", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantLigatures_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantLigatures_setterinfo },
43725
  { "font-variant-ligatures", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantLigatures_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantLigatures_setterinfo },
43726
  { "fontVariantNumeric", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantNumeric_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantNumeric_setterinfo },
43727
  { "font-variant-numeric", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantNumeric_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantNumeric_setterinfo },
43728
  { "fontVariantPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantPosition_setterinfo },
43729
  { "font-variant-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantPosition_setterinfo },
43730
  { "fontWeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontWeight_setterinfo },
43731
  { "font-weight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontWeight_setterinfo },
43732
  { "gridAutoFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoFlow_setterinfo },
43733
  { "grid-auto-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoFlow_setterinfo },
43734
  { "hyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphens_getterinfo, GenericSetter<NormalThisPolicy>, &hyphens_setterinfo },
43735
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43736
  { "imageOrientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &imageOrientation_setterinfo },
43737
  { "image-orientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &imageOrientation_setterinfo },
43738
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43739
  { "imageRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageRendering_getterinfo, GenericSetter<NormalThisPolicy>, &imageRendering_setterinfo },
43740
  { "image-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageRendering_getterinfo, GenericSetter<NormalThisPolicy>, &imageRendering_setterinfo },
43741
  { "imeMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imeMode_getterinfo, GenericSetter<NormalThisPolicy>, &imeMode_setterinfo },
43742
  { "ime-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imeMode_getterinfo, GenericSetter<NormalThisPolicy>, &imeMode_setterinfo },
43743
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43744
  { "initialLetter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &initialLetter_getterinfo, GenericSetter<NormalThisPolicy>, &initialLetter_setterinfo },
43745
  { "initial-letter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &initialLetter_getterinfo, GenericSetter<NormalThisPolicy>, &initialLetter_setterinfo },
43746
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43747
  { "isolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &isolation_getterinfo, GenericSetter<NormalThisPolicy>, &isolation_setterinfo },
43748
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43749
  { "justifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo },
43750
  { "justify-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo },
43751
  { "justifyItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyItems_getterinfo, GenericSetter<NormalThisPolicy>, &justifyItems_setterinfo },
43752
  { "justify-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyItems_getterinfo, GenericSetter<NormalThisPolicy>, &justifyItems_setterinfo },
43753
  { "justifySelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifySelf_getterinfo, GenericSetter<NormalThisPolicy>, &justifySelf_setterinfo },
43754
  { "justify-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifySelf_getterinfo, GenericSetter<NormalThisPolicy>, &justifySelf_setterinfo },
43755
  { "listStylePosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStylePosition_getterinfo, GenericSetter<NormalThisPolicy>, &listStylePosition_setterinfo },
43756
  { "list-style-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStylePosition_getterinfo, GenericSetter<NormalThisPolicy>, &listStylePosition_setterinfo },
43757
  { "maskType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskType_getterinfo, GenericSetter<NormalThisPolicy>, &maskType_setterinfo },
43758
  { "mask-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskType_getterinfo, GenericSetter<NormalThisPolicy>, &maskType_setterinfo },
43759
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43760
  { "mixBlendMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mixBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &mixBlendMode_setterinfo },
43761
  { "mix-blend-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mixBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &mixBlendMode_setterinfo },
43762
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43763
  { "MozAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozAppearance_setterinfo },
43764
  { "-moz-appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozAppearance_setterinfo },
43765
  { "MozBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo },
43766
  { "-moz-box-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo },
43767
  { "MozBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo },
43768
  { "-moz-box-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo },
43769
  { "MozBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo },
43770
  { "-moz-box-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo },
43771
  { "MozBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo },
43772
  { "-moz-box-pack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo },
43773
  { "MozFloatEdge", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFloatEdge_getterinfo, GenericSetter<NormalThisPolicy>, &MozFloatEdge_setterinfo },
43774
  { "-moz-float-edge", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFloatEdge_getterinfo, GenericSetter<NormalThisPolicy>, &MozFloatEdge_setterinfo },
43775
  { "MozForceBrokenImageIcon", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozForceBrokenImageIcon_getterinfo, GenericSetter<NormalThisPolicy>, &MozForceBrokenImageIcon_setterinfo },
43776
  { "-moz-force-broken-image-icon", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozForceBrokenImageIcon_getterinfo, GenericSetter<NormalThisPolicy>, &MozForceBrokenImageIcon_setterinfo },
43777
  { "MozOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozOrient_setterinfo },
43778
  { "-moz-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozOrient_setterinfo },
43779
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43780
  { "MozOsxFontSmoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo },
43781
  { "-moz-osx-font-smoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo },
43782
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43783
  { "MozStackSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozStackSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozStackSizing_setterinfo },
43784
  { "-moz-stack-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozStackSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozStackSizing_setterinfo },
43785
  { "MozTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo },
43786
  { "-moz-text-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo },
43787
  { "MozUserFocus", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserFocus_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserFocus_setterinfo },
43788
  { "-moz-user-focus", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserFocus_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserFocus_setterinfo },
43789
  { "MozUserInput", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserInput_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserInput_setterinfo },
43790
  { "-moz-user-input", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserInput_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserInput_setterinfo },
43791
  { "MozUserModify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserModify_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserModify_setterinfo },
43792
  { "-moz-user-modify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserModify_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserModify_setterinfo },
43793
  { "MozUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserSelect_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserSelect_setterinfo },
43794
  { "-moz-user-select", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserSelect_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserSelect_setterinfo },
43795
  { "MozWindowDragging", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowDragging_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowDragging_setterinfo },
43796
  { "-moz-window-dragging", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowDragging_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowDragging_setterinfo },
43797
  { "objectFit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectFit_getterinfo, GenericSetter<NormalThisPolicy>, &objectFit_setterinfo },
43798
  { "object-fit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectFit_getterinfo, GenericSetter<NormalThisPolicy>, &objectFit_setterinfo },
43799
  { "outlineStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &outlineStyle_setterinfo },
43800
  { "outline-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &outlineStyle_setterinfo },
43801
  { "overflowWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo },
43802
  { "overflow-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo },
43803
  { "overflowX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowX_getterinfo, GenericSetter<NormalThisPolicy>, &overflowX_setterinfo },
43804
  { "overflow-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowX_getterinfo, GenericSetter<NormalThisPolicy>, &overflowX_setterinfo },
43805
  { "overflowY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowY_getterinfo, GenericSetter<NormalThisPolicy>, &overflowY_setterinfo },
43806
  { "overflow-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowY_getterinfo, GenericSetter<NormalThisPolicy>, &overflowY_setterinfo },
43807
  { "pageBreakAfter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakAfter_setterinfo },
43808
  { "page-break-after", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakAfter_setterinfo },
43809
  { "pageBreakBefore", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakBefore_setterinfo },
43810
  { "page-break-before", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakBefore_setterinfo },
43811
  { "pageBreakInside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakInside_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakInside_setterinfo },
43812
  { "page-break-inside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakInside_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakInside_setterinfo },
43813
  { "paintOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paintOrder_getterinfo, GenericSetter<NormalThisPolicy>, &paintOrder_setterinfo },
43814
  { "paint-order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paintOrder_getterinfo, GenericSetter<NormalThisPolicy>, &paintOrder_setterinfo },
43815
  { "pointerEvents", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pointerEvents_getterinfo, GenericSetter<NormalThisPolicy>, &pointerEvents_setterinfo },
43816
  { "pointer-events", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pointerEvents_getterinfo, GenericSetter<NormalThisPolicy>, &pointerEvents_setterinfo },
43817
  { "position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &position_getterinfo, GenericSetter<NormalThisPolicy>, &position_setterinfo },
43818
  { "resize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &resize_getterinfo, GenericSetter<NormalThisPolicy>, &resize_setterinfo },
43819
  { "rubyAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyAlign_getterinfo, GenericSetter<NormalThisPolicy>, &rubyAlign_setterinfo },
43820
  { "ruby-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyAlign_getterinfo, GenericSetter<NormalThisPolicy>, &rubyAlign_setterinfo },
43821
  { "rubyPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyPosition_getterinfo, GenericSetter<NormalThisPolicy>, &rubyPosition_setterinfo },
43822
  { "ruby-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyPosition_getterinfo, GenericSetter<NormalThisPolicy>, &rubyPosition_setterinfo },
43823
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43824
  { "scrollBehavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &scrollBehavior_setterinfo },
43825
  { "scroll-behavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &scrollBehavior_setterinfo },
43826
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43827
  { "scrollbarWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarWidth_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarWidth_setterinfo },
43828
  { "scrollbar-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarWidth_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarWidth_setterinfo },
43829
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43830
  { "shapeRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeRendering_getterinfo, GenericSetter<NormalThisPolicy>, &shapeRendering_setterinfo },
43831
  { "shape-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeRendering_getterinfo, GenericSetter<NormalThisPolicy>, &shapeRendering_setterinfo },
43832
  { "strokeLinecap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinecap_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinecap_setterinfo },
43833
  { "stroke-linecap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinecap_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinecap_setterinfo },
43834
  { "strokeLinejoin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinejoin_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinejoin_setterinfo },
43835
  { "stroke-linejoin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinejoin_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinejoin_setterinfo },
43836
  { "strokeMiterlimit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeMiterlimit_getterinfo, GenericSetter<NormalThisPolicy>, &strokeMiterlimit_setterinfo },
43837
  { "stroke-miterlimit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeMiterlimit_getterinfo, GenericSetter<NormalThisPolicy>, &strokeMiterlimit_setterinfo },
43838
  { "tableLayout", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tableLayout_getterinfo, GenericSetter<NormalThisPolicy>, &tableLayout_setterinfo },
43839
  { "table-layout", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tableLayout_getterinfo, GenericSetter<NormalThisPolicy>, &tableLayout_setterinfo },
43840
  { "textAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlign_getterinfo, GenericSetter<NormalThisPolicy>, &textAlign_setterinfo },
43841
  { "text-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlign_getterinfo, GenericSetter<NormalThisPolicy>, &textAlign_setterinfo },
43842
  { "textAlignLast", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlignLast_getterinfo, GenericSetter<NormalThisPolicy>, &textAlignLast_setterinfo },
43843
  { "text-align-last", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlignLast_getterinfo, GenericSetter<NormalThisPolicy>, &textAlignLast_setterinfo },
43844
  { "textAnchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &textAnchor_setterinfo },
43845
  { "text-anchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &textAnchor_setterinfo },
43846
  { "textCombineUpright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textCombineUpright_getterinfo, GenericSetter<NormalThisPolicy>, &textCombineUpright_setterinfo },
43847
  { "text-combine-upright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textCombineUpright_getterinfo, GenericSetter<NormalThisPolicy>, &textCombineUpright_setterinfo },
43848
  { "textDecorationLine", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationLine_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationLine_setterinfo },
43849
  { "text-decoration-line", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationLine_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationLine_setterinfo },
43850
  { "textDecorationStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationStyle_setterinfo },
43851
  { "text-decoration-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationStyle_setterinfo },
43852
  { "textEmphasisPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisPosition_setterinfo },
43853
  { "text-emphasis-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisPosition_setterinfo },
43854
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43855
  { "textJustify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textJustify_getterinfo, GenericSetter<NormalThisPolicy>, &textJustify_setterinfo },
43856
  { "text-justify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textJustify_getterinfo, GenericSetter<NormalThisPolicy>, &textJustify_setterinfo },
43857
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43858
  { "textOrientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &textOrientation_setterinfo },
43859
  { "text-orientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &textOrientation_setterinfo },
43860
  { "textRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textRendering_getterinfo, GenericSetter<NormalThisPolicy>, &textRendering_setterinfo },
43861
  { "text-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textRendering_getterinfo, GenericSetter<NormalThisPolicy>, &textRendering_setterinfo },
43862
  { "textTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textTransform_getterinfo, GenericSetter<NormalThisPolicy>, &textTransform_setterinfo },
43863
  { "text-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textTransform_getterinfo, GenericSetter<NormalThisPolicy>, &textTransform_setterinfo },
43864
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43865
  { "touchAction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &touchAction_getterinfo, GenericSetter<NormalThisPolicy>, &touchAction_setterinfo },
43866
  { "touch-action", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &touchAction_getterinfo, GenericSetter<NormalThisPolicy>, &touchAction_setterinfo },
43867
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43868
  { "transformBox", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformBox_getterinfo, GenericSetter<NormalThisPolicy>, &transformBox_setterinfo },
43869
  { "transform-box", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformBox_getterinfo, GenericSetter<NormalThisPolicy>, &transformBox_setterinfo },
43870
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43871
  { "transformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo },
43872
  { "transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo },
43873
  { "unicodeBidi", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &unicodeBidi_getterinfo, GenericSetter<NormalThisPolicy>, &unicodeBidi_setterinfo },
43874
  { "unicode-bidi", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &unicodeBidi_getterinfo, GenericSetter<NormalThisPolicy>, &unicodeBidi_setterinfo },
43875
  { "vectorEffect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &vectorEffect_getterinfo, GenericSetter<NormalThisPolicy>, &vectorEffect_setterinfo },
43876
  { "vector-effect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &vectorEffect_getterinfo, GenericSetter<NormalThisPolicy>, &vectorEffect_setterinfo },
43877
  { "visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &visibility_getterinfo, GenericSetter<NormalThisPolicy>, &visibility_setterinfo },
43878
  { "whiteSpace", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpace_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpace_setterinfo },
43879
  { "white-space", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpace_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpace_setterinfo },
43880
  { "wordBreak", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordBreak_getterinfo, GenericSetter<NormalThisPolicy>, &wordBreak_setterinfo },
43881
  { "word-break", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordBreak_getterinfo, GenericSetter<NormalThisPolicy>, &wordBreak_setterinfo },
43882
  { "writingMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &writingMode_getterinfo, GenericSetter<NormalThisPolicy>, &writingMode_setterinfo },
43883
  { "writing-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &writingMode_getterinfo, GenericSetter<NormalThisPolicy>, &writingMode_setterinfo },
43884
  { "zIndex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &zIndex_getterinfo, GenericSetter<NormalThisPolicy>, &zIndex_setterinfo },
43885
  { "z-index", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &zIndex_getterinfo, GenericSetter<NormalThisPolicy>, &zIndex_setterinfo },
43886
  { "MozBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo },
43887
  { "-moz-box-ordinal-group", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo },
43888
  { "order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &order_getterinfo, GenericSetter<NormalThisPolicy>, &order_setterinfo },
43889
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43890
  { "overflowClipBoxBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBoxBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBoxBlock_setterinfo },
43891
  { "overflow-clip-box-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBoxBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBoxBlock_setterinfo },
43892
  { "overflowClipBoxInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBoxInline_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBoxInline_setterinfo },
43893
  { "overflow-clip-box-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBoxInline_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBoxInline_setterinfo },
43894
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43895
  { "overscrollBehaviorX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorX_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorX_setterinfo },
43896
  { "overscroll-behavior-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorX_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorX_setterinfo },
43897
  { "overscrollBehaviorY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorY_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorY_setterinfo },
43898
  { "overscroll-behavior-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorY_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorY_setterinfo },
43899
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43900
  { "fillOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &fillOpacity_setterinfo },
43901
  { "fill-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &fillOpacity_setterinfo },
43902
  { "strokeOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &strokeOpacity_setterinfo },
43903
  { "stroke-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &strokeOpacity_setterinfo },
43904
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43905
  { "scrollSnapTypeX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapTypeX_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapTypeX_setterinfo },
43906
  { "scroll-snap-type-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapTypeX_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapTypeX_setterinfo },
43907
  { "scrollSnapTypeY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapTypeY_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapTypeY_setterinfo },
43908
  { "scroll-snap-type-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapTypeY_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapTypeY_setterinfo },
43909
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43910
  { "flexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo },
43911
  { "flex-grow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo },
43912
  { "flexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo },
43913
  { "flex-shrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo },
43914
  { "MozBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo },
43915
  { "-moz-box-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo },
43916
  { "floodOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &floodOpacity_setterinfo },
43917
  { "flood-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &floodOpacity_setterinfo },
43918
  { "opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &opacity_getterinfo, GenericSetter<NormalThisPolicy>, &opacity_setterinfo },
43919
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43920
  { "shapeImageThreshold", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeImageThreshold_getterinfo, GenericSetter<NormalThisPolicy>, &shapeImageThreshold_setterinfo },
43921
  { "shape-image-threshold", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeImageThreshold_getterinfo, GenericSetter<NormalThisPolicy>, &shapeImageThreshold_setterinfo },
43922
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43923
  { "stopOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &stopOpacity_setterinfo },
43924
  { "stop-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &stopOpacity_setterinfo },
43925
  { "borderBlockEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndStyle_setterinfo },
43926
  { "border-block-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndStyle_setterinfo },
43927
  { "borderBlockStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartStyle_setterinfo },
43928
  { "border-block-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartStyle_setterinfo },
43929
  { "borderBottomStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomStyle_setterinfo },
43930
  { "border-bottom-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomStyle_setterinfo },
43931
  { "borderInlineEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo },
43932
  { "border-inline-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo },
43933
  { "borderInlineStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo },
43934
  { "border-inline-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo },
43935
  { "borderLeftStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftStyle_setterinfo },
43936
  { "border-left-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftStyle_setterinfo },
43937
  { "borderRightStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightStyle_setterinfo },
43938
  { "border-right-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightStyle_setterinfo },
43939
  { "borderTopStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopStyle_setterinfo },
43940
  { "border-top-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopStyle_setterinfo },
43941
  { "animationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo },
43942
  { "animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo },
43943
  { "animationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo },
43944
  { "animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo },
43945
  { "animationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo },
43946
  { "animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo },
43947
  { "animationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo },
43948
  { "animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo },
43949
  { "animationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo },
43950
  { "animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo },
43951
  { "animationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo },
43952
  { "animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo },
43953
  { "animationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo },
43954
  { "animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo },
43955
  { "animationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo },
43956
  { "animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo },
43957
  { "backgroundAttachment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundAttachment_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundAttachment_setterinfo },
43958
  { "background-attachment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundAttachment_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundAttachment_setterinfo },
43959
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43960
  { "backgroundBlendMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundBlendMode_setterinfo },
43961
  { "background-blend-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundBlendMode_setterinfo },
43962
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
43963
  { "backgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo },
43964
  { "background-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo },
43965
  { "backgroundImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundImage_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundImage_setterinfo },
43966
  { "background-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundImage_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundImage_setterinfo },
43967
  { "backgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo },
43968
  { "background-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo },
43969
  { "backgroundPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionX_setterinfo },
43970
  { "background-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionX_setterinfo },
43971
  { "backgroundPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionY_setterinfo },
43972
  { "background-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionY_setterinfo },
43973
  { "backgroundRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundRepeat_setterinfo },
43974
  { "background-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundRepeat_setterinfo },
43975
  { "backgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo },
43976
  { "background-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo },
43977
  { "borderImageOutset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageOutset_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageOutset_setterinfo },
43978
  { "border-image-outset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageOutset_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageOutset_setterinfo },
43979
  { "borderImageSlice", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSlice_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSlice_setterinfo },
43980
  { "border-image-slice", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSlice_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSlice_setterinfo },
43981
  { "borderImageSource", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSource_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSource_setterinfo },
43982
  { "border-image-source", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSource_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSource_setterinfo },
43983
  { "borderImageWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageWidth_setterinfo },
43984
  { "border-image-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageWidth_setterinfo },
43985
  { "borderSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &borderSpacing_setterinfo },
43986
  { "border-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &borderSpacing_setterinfo },
43987
  { "boxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo },
43988
  { "box-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo },
43989
  { "caretColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &caretColor_getterinfo, GenericSetter<NormalThisPolicy>, &caretColor_setterinfo },
43990
  { "caret-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &caretColor_getterinfo, GenericSetter<NormalThisPolicy>, &caretColor_setterinfo },
43991
  { "clipPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo },
43992
  { "clip-path", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo },
43993
  { "color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &color_getterinfo, GenericSetter<NormalThisPolicy>, &color_setterinfo },
43994
  { "columnWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnWidth_setterinfo },
43995
  { "column-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnWidth_setterinfo },
43996
  { "content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &content_getterinfo, GenericSetter<NormalThisPolicy>, &content_setterinfo },
43997
  { "counterIncrement", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterIncrement_getterinfo, GenericSetter<NormalThisPolicy>, &counterIncrement_setterinfo },
43998
  { "counter-increment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterIncrement_getterinfo, GenericSetter<NormalThisPolicy>, &counterIncrement_setterinfo },
43999
  { "counterReset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterReset_getterinfo, GenericSetter<NormalThisPolicy>, &counterReset_setterinfo },
44000
  { "counter-reset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterReset_getterinfo, GenericSetter<NormalThisPolicy>, &counterReset_setterinfo },
44001
  { "cursor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cursor_getterinfo, GenericSetter<NormalThisPolicy>, &cursor_setterinfo },
44002
  { "filter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &filter_getterinfo, GenericSetter<NormalThisPolicy>, &filter_setterinfo },
44003
  { "flexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo },
44004
  { "flex-basis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo },
44005
  { "fontFamily", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFamily_getterinfo, GenericSetter<NormalThisPolicy>, &fontFamily_setterinfo },
44006
  { "font-family", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFamily_getterinfo, GenericSetter<NormalThisPolicy>, &fontFamily_setterinfo },
44007
  { "fontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo },
44008
  { "font-feature-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo },
44009
  { "fontLanguageOverride", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &fontLanguageOverride_setterinfo },
44010
  { "font-language-override", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &fontLanguageOverride_setterinfo },
44011
  { "fontSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSize_getterinfo, GenericSetter<NormalThisPolicy>, &fontSize_setterinfo },
44012
  { "font-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSize_getterinfo, GenericSetter<NormalThisPolicy>, &fontSize_setterinfo },
44013
  { "fontVariantAlternates", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantAlternates_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantAlternates_setterinfo },
44014
  { "font-variant-alternates", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantAlternates_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantAlternates_setterinfo },
44015
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44016
  { "fontVariationSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariationSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariationSettings_setterinfo },
44017
  { "font-variation-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariationSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariationSettings_setterinfo },
44018
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44019
  { "gridTemplateAreas", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateAreas_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateAreas_setterinfo },
44020
  { "grid-template-areas", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateAreas_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateAreas_setterinfo },
44021
  { "letterSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &letterSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &letterSpacing_setterinfo },
44022
  { "letter-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &letterSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &letterSpacing_setterinfo },
44023
  { "lineHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineHeight_getterinfo, GenericSetter<NormalThisPolicy>, &lineHeight_setterinfo },
44024
  { "line-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineHeight_getterinfo, GenericSetter<NormalThisPolicy>, &lineHeight_setterinfo },
44025
  { "listStyleImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleImage_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleImage_setterinfo },
44026
  { "list-style-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleImage_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleImage_setterinfo },
44027
  { "listStyleType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleType_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleType_setterinfo },
44028
  { "list-style-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleType_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleType_setterinfo },
44029
  { "maskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo },
44030
  { "mask-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo },
44031
  { "maskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo },
44032
  { "mask-composite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo },
44033
  { "maskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo },
44034
  { "mask-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo },
44035
  { "maskMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskMode_getterinfo, GenericSetter<NormalThisPolicy>, &maskMode_setterinfo },
44036
  { "mask-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskMode_getterinfo, GenericSetter<NormalThisPolicy>, &maskMode_setterinfo },
44037
  { "maskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo },
44038
  { "mask-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo },
44039
  { "maskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo },
44040
  { "mask-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo },
44041
  { "maskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo },
44042
  { "mask-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo },
44043
  { "maskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo },
44044
  { "mask-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo },
44045
  { "maskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo },
44046
  { "mask-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo },
44047
  { "MozTabSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTabSize_getterinfo, GenericSetter<NormalThisPolicy>, &MozTabSize_setterinfo },
44048
  { "-moz-tab-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTabSize_getterinfo, GenericSetter<NormalThisPolicy>, &MozTabSize_setterinfo },
44049
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44050
  { "offsetPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPath_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPath_setterinfo },
44051
  { "offset-path", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPath_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPath_setterinfo },
44052
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44053
  { "outlineOffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &outlineOffset_setterinfo },
44054
  { "outline-offset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &outlineOffset_setterinfo },
44055
  { "perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspective_getterinfo, GenericSetter<NormalThisPolicy>, &perspective_setterinfo },
44056
  { "quotes", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &quotes_getterinfo, GenericSetter<NormalThisPolicy>, &quotes_setterinfo },
44057
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44058
  { "rotate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rotate_getterinfo, GenericSetter<NormalThisPolicy>, &rotate_setterinfo },
44059
  { "scale", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scale_getterinfo, GenericSetter<NormalThisPolicy>, &scale_setterinfo },
44060
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44061
  { "scrollSnapCoordinate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapCoordinate_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapCoordinate_setterinfo },
44062
  { "scroll-snap-coordinate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapCoordinate_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapCoordinate_setterinfo },
44063
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44064
  { "scrollbarColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarColor_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarColor_setterinfo },
44065
  { "scrollbar-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarColor_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarColor_setterinfo },
44066
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44067
  { "shapeOutside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeOutside_getterinfo, GenericSetter<NormalThisPolicy>, &shapeOutside_setterinfo },
44068
  { "shape-outside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeOutside_getterinfo, GenericSetter<NormalThisPolicy>, &shapeOutside_setterinfo },
44069
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44070
  { "strokeDasharray", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDasharray_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDasharray_setterinfo },
44071
  { "stroke-dasharray", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDasharray_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDasharray_setterinfo },
44072
  { "strokeDashoffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDashoffset_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDashoffset_setterinfo },
44073
  { "stroke-dashoffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDashoffset_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDashoffset_setterinfo },
44074
  { "strokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &strokeWidth_setterinfo },
44075
  { "stroke-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &strokeWidth_setterinfo },
44076
  { "textEmphasisStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisStyle_setterinfo },
44077
  { "text-emphasis-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisStyle_setterinfo },
44078
  { "textIndent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textIndent_getterinfo, GenericSetter<NormalThisPolicy>, &textIndent_setterinfo },
44079
  { "text-indent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textIndent_getterinfo, GenericSetter<NormalThisPolicy>, &textIndent_setterinfo },
44080
  { "textOverflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOverflow_getterinfo, GenericSetter<NormalThisPolicy>, &textOverflow_setterinfo },
44081
  { "text-overflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOverflow_getterinfo, GenericSetter<NormalThisPolicy>, &textOverflow_setterinfo },
44082
  { "textShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textShadow_getterinfo, GenericSetter<NormalThisPolicy>, &textShadow_setterinfo },
44083
  { "text-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textShadow_getterinfo, GenericSetter<NormalThisPolicy>, &textShadow_setterinfo },
44084
  { "transitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo },
44085
  { "transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo },
44086
  { "transitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo },
44087
  { "transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo },
44088
  { "transitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo },
44089
  { "transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo },
44090
  { "transitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo },
44091
  { "transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo },
44092
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44093
  { "translate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &translate_getterinfo, GenericSetter<NormalThisPolicy>, &translate_setterinfo },
44094
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44095
  { "verticalAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &verticalAlign_getterinfo, GenericSetter<NormalThisPolicy>, &verticalAlign_setterinfo },
44096
  { "vertical-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &verticalAlign_getterinfo, GenericSetter<NormalThisPolicy>, &verticalAlign_setterinfo },
44097
  { "willChange", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &willChange_getterinfo, GenericSetter<NormalThisPolicy>, &willChange_setterinfo },
44098
  { "will-change", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &willChange_getterinfo, GenericSetter<NormalThisPolicy>, &willChange_setterinfo },
44099
  { "wordSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &wordSpacing_setterinfo },
44100
  { "word-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &wordSpacing_setterinfo },
44101
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44102
  { "scrollSnapPointsX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapPointsX_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapPointsX_setterinfo },
44103
  { "scroll-snap-points-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapPointsX_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapPointsX_setterinfo },
44104
  { "scrollSnapPointsY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapPointsY_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapPointsY_setterinfo },
44105
  { "scroll-snap-points-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapPointsY_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapPointsY_setterinfo },
44106
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44107
  { "transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transform_getterinfo, GenericSetter<NormalThisPolicy>, &transform_setterinfo },
44108
  { "columnGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo },
44109
  { "column-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo },
44110
  { "rowGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo },
44111
  { "row-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo },
44112
  { "clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clip_getterinfo, GenericSetter<NormalThisPolicy>, &clip_setterinfo },
44113
  { "MozImageRegion", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozImageRegion_getterinfo, GenericSetter<NormalThisPolicy>, &MozImageRegion_setterinfo },
44114
  { "-moz-image-region", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozImageRegion_getterinfo, GenericSetter<NormalThisPolicy>, &MozImageRegion_setterinfo },
44115
  { "gridTemplateColumns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateColumns_setterinfo },
44116
  { "grid-template-columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateColumns_setterinfo },
44117
  { "gridTemplateRows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateRows_setterinfo },
44118
  { "grid-template-rows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateRows_setterinfo },
44119
  { "fill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fill_getterinfo, GenericSetter<NormalThisPolicy>, &fill_setterinfo },
44120
  { "stroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stroke_getterinfo, GenericSetter<NormalThisPolicy>, &stroke_setterinfo },
44121
  { "gridAutoColumns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoColumns_setterinfo },
44122
  { "grid-auto-columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoColumns_setterinfo },
44123
  { "gridAutoRows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoRows_setterinfo },
44124
  { "grid-auto-rows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoRows_setterinfo },
44125
  { "transformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo },
44126
  { "transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo },
44127
  { "objectPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectPosition_getterinfo, GenericSetter<NormalThisPolicy>, &objectPosition_setterinfo },
44128
  { "object-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectPosition_getterinfo, GenericSetter<NormalThisPolicy>, &objectPosition_setterinfo },
44129
  { "perspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo },
44130
  { "perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo },
44131
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44132
  { "scrollSnapDestination", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapDestination_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapDestination_setterinfo },
44133
  { "scroll-snap-destination", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapDestination_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapDestination_setterinfo },
44134
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44135
  { "maxBlockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxBlockSize_setterinfo },
44136
  { "max-block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxBlockSize_setterinfo },
44137
  { "maxHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxHeight_getterinfo, GenericSetter<NormalThisPolicy>, &maxHeight_setterinfo },
44138
  { "max-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxHeight_getterinfo, GenericSetter<NormalThisPolicy>, &maxHeight_setterinfo },
44139
  { "maxInlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxInlineSize_setterinfo },
44140
  { "max-inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxInlineSize_setterinfo },
44141
  { "maxWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxWidth_getterinfo, GenericSetter<NormalThisPolicy>, &maxWidth_setterinfo },
44142
  { "max-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxWidth_getterinfo, GenericSetter<NormalThisPolicy>, &maxWidth_setterinfo },
44143
  { "markerEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerEnd_getterinfo, GenericSetter<NormalThisPolicy>, &markerEnd_setterinfo },
44144
  { "marker-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerEnd_getterinfo, GenericSetter<NormalThisPolicy>, &markerEnd_setterinfo },
44145
  { "markerMid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerMid_getterinfo, GenericSetter<NormalThisPolicy>, &markerMid_setterinfo },
44146
  { "marker-mid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerMid_getterinfo, GenericSetter<NormalThisPolicy>, &markerMid_setterinfo },
44147
  { "markerStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerStart_getterinfo, GenericSetter<NormalThisPolicy>, &markerStart_setterinfo },
44148
  { "marker-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerStart_getterinfo, GenericSetter<NormalThisPolicy>, &markerStart_setterinfo },
44149
  { "MozBinding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBinding_getterinfo, GenericSetter<NormalThisPolicy>, &MozBinding_setterinfo },
44150
  { "-moz-binding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBinding_getterinfo, GenericSetter<NormalThisPolicy>, &MozBinding_setterinfo },
44151
  { "gridColumnEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnEnd_setterinfo },
44152
  { "grid-column-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnEnd_setterinfo },
44153
  { "gridColumnStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnStart_setterinfo },
44154
  { "grid-column-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnStart_setterinfo },
44155
  { "gridRowEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowEnd_setterinfo },
44156
  { "grid-row-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowEnd_setterinfo },
44157
  { "gridRowStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowStart_setterinfo },
44158
  { "grid-row-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowStart_setterinfo },
44159
  { "blockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &blockSize_getterinfo, GenericSetter<NormalThisPolicy>, &blockSize_setterinfo },
44160
  { "block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &blockSize_getterinfo, GenericSetter<NormalThisPolicy>, &blockSize_setterinfo },
44161
  { "height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &height_getterinfo, GenericSetter<NormalThisPolicy>, &height_setterinfo },
44162
  { "inlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &inlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &inlineSize_setterinfo },
44163
  { "inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &inlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &inlineSize_setterinfo },
44164
  { "minBlockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &minBlockSize_setterinfo },
44165
  { "min-block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &minBlockSize_setterinfo },
44166
  { "minHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minHeight_getterinfo, GenericSetter<NormalThisPolicy>, &minHeight_setterinfo },
44167
  { "min-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minHeight_getterinfo, GenericSetter<NormalThisPolicy>, &minHeight_setterinfo },
44168
  { "minInlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &minInlineSize_setterinfo },
44169
  { "min-inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &minInlineSize_setterinfo },
44170
  { "minWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minWidth_getterinfo, GenericSetter<NormalThisPolicy>, &minWidth_setterinfo },
44171
  { "min-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minWidth_getterinfo, GenericSetter<NormalThisPolicy>, &minWidth_setterinfo },
44172
  { "width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &width_getterinfo, GenericSetter<NormalThisPolicy>, &width_setterinfo },
44173
  { "borderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo },
44174
  { "border-bottom-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo },
44175
  { "borderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo },
44176
  { "border-bottom-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo },
44177
  { "borderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo },
44178
  { "border-top-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo },
44179
  { "borderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo },
44180
  { "border-top-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo },
44181
  { "MozOutlineRadiusBottomleft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusBottomleft_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusBottomleft_setterinfo },
44182
  { "-moz-outline-radius-bottomleft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusBottomleft_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusBottomleft_setterinfo },
44183
  { "MozOutlineRadiusBottomright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusBottomright_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusBottomright_setterinfo },
44184
  { "-moz-outline-radius-bottomright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusBottomright_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusBottomright_setterinfo },
44185
  { "MozOutlineRadiusTopleft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusTopleft_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusTopleft_setterinfo },
44186
  { "-moz-outline-radius-topleft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusTopleft_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusTopleft_setterinfo },
44187
  { "MozOutlineRadiusTopright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusTopright_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusTopright_setterinfo },
44188
  { "-moz-outline-radius-topright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadiusTopright_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadiusTopright_setterinfo },
44189
  { "paddingBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockEnd_setterinfo },
44190
  { "padding-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockEnd_setterinfo },
44191
  { "paddingBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockStart_setterinfo },
44192
  { "padding-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockStart_setterinfo },
44193
  { "paddingBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBottom_setterinfo },
44194
  { "padding-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBottom_setterinfo },
44195
  { "paddingInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo },
44196
  { "padding-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo },
44197
  { "paddingInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo },
44198
  { "padding-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo },
44199
  { "paddingLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &paddingLeft_setterinfo },
44200
  { "padding-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &paddingLeft_setterinfo },
44201
  { "paddingRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &paddingRight_setterinfo },
44202
  { "padding-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &paddingRight_setterinfo },
44203
  { "paddingTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &paddingTop_setterinfo },
44204
  { "padding-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &paddingTop_setterinfo },
44205
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44206
  { "shapeMargin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeMargin_getterinfo, GenericSetter<NormalThisPolicy>, &shapeMargin_setterinfo },
44207
  { "shape-margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeMargin_getterinfo, GenericSetter<NormalThisPolicy>, &shapeMargin_setterinfo },
44208
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44209
  { "borderBlockEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndWidth_setterinfo },
44210
  { "border-block-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndWidth_setterinfo },
44211
  { "borderBlockStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartWidth_setterinfo },
44212
  { "border-block-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartWidth_setterinfo },
44213
  { "borderBottomWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomWidth_setterinfo },
44214
  { "border-bottom-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomWidth_setterinfo },
44215
  { "borderInlineEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo },
44216
  { "border-inline-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo },
44217
  { "borderInlineStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo },
44218
  { "border-inline-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo },
44219
  { "borderLeftWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftWidth_setterinfo },
44220
  { "border-left-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftWidth_setterinfo },
44221
  { "borderRightWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightWidth_setterinfo },
44222
  { "border-right-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightWidth_setterinfo },
44223
  { "borderTopWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopWidth_setterinfo },
44224
  { "border-top-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopWidth_setterinfo },
44225
  { "columnRuleWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleWidth_setterinfo },
44226
  { "column-rule-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleWidth_setterinfo },
44227
  { "outlineWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &outlineWidth_setterinfo },
44228
  { "outline-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &outlineWidth_setterinfo },
44229
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44230
  { "webkitTextStrokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo },
44231
  { "WebkitTextStrokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo },
44232
  { "-webkit-text-stroke-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo },
44233
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44234
  { "bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &bottom_getterinfo, GenericSetter<NormalThisPolicy>, &bottom_setterinfo },
44235
  { "insetBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockEnd_setterinfo },
44236
  { "inset-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockEnd_setterinfo },
44237
  { "insetBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockStart_setterinfo },
44238
  { "inset-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockStart_setterinfo },
44239
  { "insetInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineEnd_setterinfo },
44240
  { "inset-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineEnd_setterinfo },
44241
  { "insetInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineStart_setterinfo },
44242
  { "inset-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineStart_setterinfo },
44243
  { "left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &left_getterinfo, GenericSetter<NormalThisPolicy>, &left_setterinfo },
44244
  { "marginBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockEnd_setterinfo },
44245
  { "margin-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockEnd_setterinfo },
44246
  { "marginBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockStart_setterinfo },
44247
  { "margin-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockStart_setterinfo },
44248
  { "marginBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &marginBottom_setterinfo },
44249
  { "margin-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &marginBottom_setterinfo },
44250
  { "marginInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo },
44251
  { "margin-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo },
44252
  { "marginInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo },
44253
  { "margin-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo },
44254
  { "marginLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &marginLeft_setterinfo },
44255
  { "margin-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &marginLeft_setterinfo },
44256
  { "marginRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginRight_getterinfo, GenericSetter<NormalThisPolicy>, &marginRight_setterinfo },
44257
  { "margin-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginRight_getterinfo, GenericSetter<NormalThisPolicy>, &marginRight_setterinfo },
44258
  { "marginTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginTop_getterinfo, GenericSetter<NormalThisPolicy>, &marginTop_setterinfo },
44259
  { "margin-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginTop_getterinfo, GenericSetter<NormalThisPolicy>, &marginTop_setterinfo },
44260
  { "right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &right_getterinfo, GenericSetter<NormalThisPolicy>, &right_setterinfo },
44261
  { "top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &top_getterinfo, GenericSetter<NormalThisPolicy>, &top_setterinfo },
44262
  { "backgroundColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundColor_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundColor_setterinfo },
44263
  { "background-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundColor_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundColor_setterinfo },
44264
  { "borderBlockEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndColor_setterinfo },
44265
  { "border-block-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndColor_setterinfo },
44266
  { "borderBlockStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartColor_setterinfo },
44267
  { "border-block-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartColor_setterinfo },
44268
  { "borderBottomColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomColor_setterinfo },
44269
  { "border-bottom-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomColor_setterinfo },
44270
  { "borderInlineEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo },
44271
  { "border-inline-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo },
44272
  { "borderInlineStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo },
44273
  { "border-inline-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo },
44274
  { "borderLeftColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftColor_setterinfo },
44275
  { "border-left-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftColor_setterinfo },
44276
  { "borderRightColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightColor_setterinfo },
44277
  { "border-right-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightColor_setterinfo },
44278
  { "borderTopColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopColor_setterinfo },
44279
  { "border-top-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopColor_setterinfo },
44280
  { "columnRuleColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleColor_setterinfo },
44281
  { "column-rule-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleColor_setterinfo },
44282
  { "floodColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodColor_getterinfo, GenericSetter<NormalThisPolicy>, &floodColor_setterinfo },
44283
  { "flood-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodColor_getterinfo, GenericSetter<NormalThisPolicy>, &floodColor_setterinfo },
44284
  { "lightingColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lightingColor_getterinfo, GenericSetter<NormalThisPolicy>, &lightingColor_setterinfo },
44285
  { "lighting-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lightingColor_getterinfo, GenericSetter<NormalThisPolicy>, &lightingColor_setterinfo },
44286
  { "outlineColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &outlineColor_setterinfo },
44287
  { "outline-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &outlineColor_setterinfo },
44288
  { "stopColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopColor_getterinfo, GenericSetter<NormalThisPolicy>, &stopColor_setterinfo },
44289
  { "stop-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopColor_getterinfo, GenericSetter<NormalThisPolicy>, &stopColor_setterinfo },
44290
  { "textDecorationColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationColor_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationColor_setterinfo },
44291
  { "text-decoration-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationColor_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationColor_setterinfo },
44292
  { "textEmphasisColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisColor_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisColor_setterinfo },
44293
  { "text-emphasis-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisColor_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisColor_setterinfo },
44294
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44295
  { "webkitTextFillColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo },
44296
  { "WebkitTextFillColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo },
44297
  { "-webkit-text-fill-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo },
44298
  { "webkitTextStrokeColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo },
44299
  { "WebkitTextStrokeColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo },
44300
  { "-webkit-text-stroke-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo },
44301
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44302
  { "background", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &background_getterinfo, GenericSetter<NormalThisPolicy>, &background_setterinfo },
44303
  { "backgroundPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPosition_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPosition_setterinfo },
44304
  { "background-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPosition_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPosition_setterinfo },
44305
  { "borderColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderColor_setterinfo },
44306
  { "border-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderColor_setterinfo },
44307
  { "borderStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderStyle_setterinfo },
44308
  { "border-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderStyle_setterinfo },
44309
  { "borderWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderWidth_setterinfo },
44310
  { "border-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderWidth_setterinfo },
44311
  { "borderTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTop_getterinfo, GenericSetter<NormalThisPolicy>, &borderTop_setterinfo },
44312
  { "border-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTop_getterinfo, GenericSetter<NormalThisPolicy>, &borderTop_setterinfo },
44313
  { "borderRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRight_getterinfo, GenericSetter<NormalThisPolicy>, &borderRight_setterinfo },
44314
  { "border-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRight_getterinfo, GenericSetter<NormalThisPolicy>, &borderRight_setterinfo },
44315
  { "borderBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottom_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottom_setterinfo },
44316
  { "border-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottom_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottom_setterinfo },
44317
  { "borderLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeft_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeft_setterinfo },
44318
  { "border-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeft_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeft_setterinfo },
44319
  { "borderBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStart_setterinfo },
44320
  { "border-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStart_setterinfo },
44321
  { "borderBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEnd_setterinfo },
44322
  { "border-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEnd_setterinfo },
44323
  { "borderInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo },
44324
  { "border-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo },
44325
  { "borderInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo },
44326
  { "border-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo },
44327
  { "border", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &border_getterinfo, GenericSetter<NormalThisPolicy>, &border_setterinfo },
44328
  { "borderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo },
44329
  { "border-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo },
44330
  { "borderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo },
44331
  { "border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo },
44332
  { "overflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflow_getterinfo, GenericSetter<NormalThisPolicy>, &overflow_setterinfo },
44333
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44334
  { "overflowClipBox", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBox_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBox_setterinfo },
44335
  { "overflow-clip-box", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipBox_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipBox_setterinfo },
44336
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44337
  { "transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transition_getterinfo, GenericSetter<NormalThisPolicy>, &transition_setterinfo },
44338
  { "animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animation_getterinfo, GenericSetter<NormalThisPolicy>, &animation_setterinfo },
44339
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44340
  { "scrollSnapType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapType_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapType_setterinfo },
44341
  { "scroll-snap-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapType_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapType_setterinfo },
44342
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44343
  { "overscrollBehavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehavior_setterinfo },
44344
  { "overscroll-behavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehavior_setterinfo },
44345
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44346
  { "columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columns_getterinfo, GenericSetter<NormalThisPolicy>, &columns_setterinfo },
44347
  { "columnRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRule_getterinfo, GenericSetter<NormalThisPolicy>, &columnRule_setterinfo },
44348
  { "column-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRule_getterinfo, GenericSetter<NormalThisPolicy>, &columnRule_setterinfo },
44349
  { "font", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &font_getterinfo, GenericSetter<NormalThisPolicy>, &font_setterinfo },
44350
  { "fontVariant", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariant_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariant_setterinfo },
44351
  { "font-variant", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariant_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariant_setterinfo },
44352
  { "textEmphasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasis_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasis_setterinfo },
44353
  { "text-emphasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasis_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasis_setterinfo },
44354
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44355
  { "webkitTextStroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo },
44356
  { "WebkitTextStroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo },
44357
  { "-webkit-text-stroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo },
44358
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44359
  { "marker", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marker_getterinfo, GenericSetter<NormalThisPolicy>, &marker_setterinfo },
44360
  { "listStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyle_getterinfo, GenericSetter<NormalThisPolicy>, &listStyle_setterinfo },
44361
  { "list-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyle_getterinfo, GenericSetter<NormalThisPolicy>, &listStyle_setterinfo },
44362
  { "margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &margin_getterinfo, GenericSetter<NormalThisPolicy>, &margin_setterinfo },
44363
  { "outline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outline_getterinfo, GenericSetter<NormalThisPolicy>, &outline_setterinfo },
44364
  { "MozOutlineRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadius_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadius_setterinfo },
44365
  { "-moz-outline-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOutlineRadius_getterinfo, GenericSetter<NormalThisPolicy>, &MozOutlineRadius_setterinfo },
44366
  { "padding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &padding_getterinfo, GenericSetter<NormalThisPolicy>, &padding_setterinfo },
44367
  { "flexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo },
44368
  { "flex-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo },
44369
  { "flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flex_getterinfo, GenericSetter<NormalThisPolicy>, &flex_setterinfo },
44370
  { "gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gap_getterinfo, GenericSetter<NormalThisPolicy>, &gap_setterinfo },
44371
  { "gridRow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRow_getterinfo, GenericSetter<NormalThisPolicy>, &gridRow_setterinfo },
44372
  { "grid-row", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRow_getterinfo, GenericSetter<NormalThisPolicy>, &gridRow_setterinfo },
44373
  { "gridColumn", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumn_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumn_setterinfo },
44374
  { "grid-column", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumn_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumn_setterinfo },
44375
  { "gridArea", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridArea_getterinfo, GenericSetter<NormalThisPolicy>, &gridArea_setterinfo },
44376
  { "grid-area", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridArea_getterinfo, GenericSetter<NormalThisPolicy>, &gridArea_setterinfo },
44377
  { "gridTemplate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplate_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplate_setterinfo },
44378
  { "grid-template", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplate_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplate_setterinfo },
44379
  { "grid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &grid_getterinfo, GenericSetter<NormalThisPolicy>, &grid_setterinfo },
44380
  { "placeContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeContent_getterinfo, GenericSetter<NormalThisPolicy>, &placeContent_setterinfo },
44381
  { "place-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeContent_getterinfo, GenericSetter<NormalThisPolicy>, &placeContent_setterinfo },
44382
  { "placeSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeSelf_getterinfo, GenericSetter<NormalThisPolicy>, &placeSelf_setterinfo },
44383
  { "place-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeSelf_getterinfo, GenericSetter<NormalThisPolicy>, &placeSelf_setterinfo },
44384
  { "placeItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeItems_getterinfo, GenericSetter<NormalThisPolicy>, &placeItems_setterinfo },
44385
  { "place-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeItems_getterinfo, GenericSetter<NormalThisPolicy>, &placeItems_setterinfo },
44386
  { "textDecoration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecoration_getterinfo, GenericSetter<NormalThisPolicy>, &textDecoration_setterinfo },
44387
  { "text-decoration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecoration_getterinfo, GenericSetter<NormalThisPolicy>, &textDecoration_setterinfo },
44388
  { "mask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mask_getterinfo, GenericSetter<NormalThisPolicy>, &mask_setterinfo },
44389
  { "maskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo },
44390
  { "mask-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo },
44391
  { "all", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &all_getterinfo, GenericSetter<NormalThisPolicy>, &all_setterinfo },
44392
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44393
  { "webkitBackgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundClip_setterinfo },
44394
  { "WebkitBackgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundClip_setterinfo },
44395
  { "-webkit-background-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundClip_setterinfo },
44396
  { "webkitBackgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundOrigin_setterinfo },
44397
  { "WebkitBackgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundOrigin_setterinfo },
44398
  { "-webkit-background-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundOrigin_setterinfo },
44399
  { "webkitBackgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundSize_setterinfo },
44400
  { "WebkitBackgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundSize_setterinfo },
44401
  { "-webkit-background-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackgroundSize_setterinfo },
44402
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44403
  { "MozBorderStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartColor_setterinfo },
44404
  { "-moz-border-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartColor_setterinfo },
44405
  { "MozBorderStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartStyle_setterinfo },
44406
  { "-moz-border-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartStyle_setterinfo },
44407
  { "MozBorderStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartWidth_setterinfo },
44408
  { "-moz-border-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStartWidth_setterinfo },
44409
  { "MozBorderEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndColor_setterinfo },
44410
  { "-moz-border-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndColor_setterinfo },
44411
  { "MozBorderEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndStyle_setterinfo },
44412
  { "-moz-border-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndStyle_setterinfo },
44413
  { "MozBorderEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndWidth_setterinfo },
44414
  { "-moz-border-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEndWidth_setterinfo },
44415
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44416
  { "webkitBorderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopLeftRadius_setterinfo },
44417
  { "WebkitBorderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopLeftRadius_setterinfo },
44418
  { "-webkit-border-top-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopLeftRadius_setterinfo },
44419
  { "webkitBorderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopRightRadius_setterinfo },
44420
  { "WebkitBorderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopRightRadius_setterinfo },
44421
  { "-webkit-border-top-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderTopRightRadius_setterinfo },
44422
  { "webkitBorderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomRightRadius_setterinfo },
44423
  { "WebkitBorderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomRightRadius_setterinfo },
44424
  { "-webkit-border-bottom-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomRightRadius_setterinfo },
44425
  { "webkitBorderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomLeftRadius_setterinfo },
44426
  { "WebkitBorderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomLeftRadius_setterinfo },
44427
  { "-webkit-border-bottom-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderBottomLeftRadius_setterinfo },
44428
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44429
  { "MozTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDuration_setterinfo },
44430
  { "-moz-transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDuration_setterinfo },
44431
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44432
  { "webkitTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDuration_setterinfo },
44433
  { "WebkitTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDuration_setterinfo },
44434
  { "-webkit-transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDuration_setterinfo },
44435
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44436
  { "MozTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionTimingFunction_setterinfo },
44437
  { "-moz-transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionTimingFunction_setterinfo },
44438
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44439
  { "webkitTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionTimingFunction_setterinfo },
44440
  { "WebkitTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionTimingFunction_setterinfo },
44441
  { "-webkit-transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionTimingFunction_setterinfo },
44442
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44443
  { "MozTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionProperty_setterinfo },
44444
  { "-moz-transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionProperty_setterinfo },
44445
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44446
  { "webkitTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionProperty_setterinfo },
44447
  { "WebkitTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionProperty_setterinfo },
44448
  { "-webkit-transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionProperty_setterinfo },
44449
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44450
  { "MozTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDelay_setterinfo },
44451
  { "-moz-transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDelay_setterinfo },
44452
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44453
  { "webkitTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDelay_setterinfo },
44454
  { "WebkitTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDelay_setterinfo },
44455
  { "-webkit-transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransitionDelay_setterinfo },
44456
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44457
  { "MozAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationName_setterinfo },
44458
  { "-moz-animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationName_setterinfo },
44459
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44460
  { "webkitAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationName_setterinfo },
44461
  { "WebkitAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationName_setterinfo },
44462
  { "-webkit-animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationName_setterinfo },
44463
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44464
  { "MozAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDuration_setterinfo },
44465
  { "-moz-animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDuration_setterinfo },
44466
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44467
  { "webkitAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDuration_setterinfo },
44468
  { "WebkitAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDuration_setterinfo },
44469
  { "-webkit-animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDuration_setterinfo },
44470
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44471
  { "MozAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationTimingFunction_setterinfo },
44472
  { "-moz-animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationTimingFunction_setterinfo },
44473
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44474
  { "webkitAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationTimingFunction_setterinfo },
44475
  { "WebkitAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationTimingFunction_setterinfo },
44476
  { "-webkit-animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationTimingFunction_setterinfo },
44477
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44478
  { "MozAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationIterationCount_setterinfo },
44479
  { "-moz-animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationIterationCount_setterinfo },
44480
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44481
  { "webkitAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationIterationCount_setterinfo },
44482
  { "WebkitAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationIterationCount_setterinfo },
44483
  { "-webkit-animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationIterationCount_setterinfo },
44484
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44485
  { "MozAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDirection_setterinfo },
44486
  { "-moz-animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDirection_setterinfo },
44487
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44488
  { "webkitAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDirection_setterinfo },
44489
  { "WebkitAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDirection_setterinfo },
44490
  { "-webkit-animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDirection_setterinfo },
44491
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44492
  { "MozAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationPlayState_setterinfo },
44493
  { "-moz-animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationPlayState_setterinfo },
44494
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44495
  { "webkitAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationPlayState_setterinfo },
44496
  { "WebkitAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationPlayState_setterinfo },
44497
  { "-webkit-animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationPlayState_setterinfo },
44498
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44499
  { "MozAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationFillMode_setterinfo },
44500
  { "-moz-animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationFillMode_setterinfo },
44501
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44502
  { "webkitAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationFillMode_setterinfo },
44503
  { "WebkitAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationFillMode_setterinfo },
44504
  { "-webkit-animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationFillMode_setterinfo },
44505
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44506
  { "MozAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDelay_setterinfo },
44507
  { "-moz-animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDelay_setterinfo },
44508
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44509
  { "webkitAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDelay_setterinfo },
44510
  { "WebkitAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDelay_setterinfo },
44511
  { "-webkit-animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimationDelay_setterinfo },
44512
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44513
  { "MozTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransform_setterinfo },
44514
  { "-moz-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransform_setterinfo },
44515
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44516
  { "webkitTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo },
44517
  { "WebkitTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo },
44518
  { "-webkit-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo },
44519
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44520
  { "MozPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspective_setterinfo },
44521
  { "-moz-perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspective_setterinfo },
44522
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44523
  { "webkitPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo },
44524
  { "WebkitPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo },
44525
  { "-webkit-perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo },
44526
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44527
  { "MozPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspectiveOrigin_setterinfo },
44528
  { "-moz-perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspectiveOrigin_setterinfo },
44529
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44530
  { "webkitPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspectiveOrigin_setterinfo },
44531
  { "WebkitPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspectiveOrigin_setterinfo },
44532
  { "-webkit-perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspectiveOrigin_setterinfo },
44533
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44534
  { "MozBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozBackfaceVisibility_setterinfo },
44535
  { "-moz-backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozBackfaceVisibility_setterinfo },
44536
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44537
  { "webkitBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackfaceVisibility_setterinfo },
44538
  { "WebkitBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackfaceVisibility_setterinfo },
44539
  { "-webkit-backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBackfaceVisibility_setterinfo },
44540
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44541
  { "MozTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformStyle_setterinfo },
44542
  { "-moz-transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformStyle_setterinfo },
44543
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44544
  { "webkitTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformStyle_setterinfo },
44545
  { "WebkitTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformStyle_setterinfo },
44546
  { "-webkit-transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformStyle_setterinfo },
44547
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44548
  { "MozTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformOrigin_setterinfo },
44549
  { "-moz-transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformOrigin_setterinfo },
44550
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44551
  { "webkitTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformOrigin_setterinfo },
44552
  { "WebkitTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformOrigin_setterinfo },
44553
  { "-webkit-transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransformOrigin_setterinfo },
44554
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44555
  { "webkitAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAppearance_setterinfo },
44556
  { "WebkitAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAppearance_setterinfo },
44557
  { "-webkit-appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAppearance_setterinfo },
44558
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44559
  { "MozColumnWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnWidth_setterinfo },
44560
  { "-moz-column-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnWidth_setterinfo },
44561
  { "MozColumnCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnCount_setterinfo },
44562
  { "-moz-column-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnCount_setterinfo },
44563
  { "MozColumnFill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnFill_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnFill_setterinfo },
44564
  { "-moz-column-fill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnFill_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnFill_setterinfo },
44565
  { "MozColumnRuleWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleWidth_setterinfo },
44566
  { "-moz-column-rule-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleWidth_setterinfo },
44567
  { "MozColumnRuleColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleColor_setterinfo },
44568
  { "-moz-column-rule-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleColor_setterinfo },
44569
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44570
  { "MozColumnSpan", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnSpan_setterinfo },
44571
  { "-moz-column-span", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnSpan_setterinfo },
44572
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44573
  { "MozColumnRuleStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleStyle_setterinfo },
44574
  { "-moz-column-rule-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRuleStyle_setterinfo },
44575
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44576
  { "webkitBoxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxShadow_setterinfo },
44577
  { "WebkitBoxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxShadow_setterinfo },
44578
  { "-webkit-box-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxShadow_setterinfo },
44579
  { "webkitFilter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFilter_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFilter_setterinfo },
44580
  { "WebkitFilter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFilter_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFilter_setterinfo },
44581
  { "-webkit-filter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFilter_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFilter_setterinfo },
44582
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44583
  { "MozFontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontFeatureSettings_setterinfo },
44584
  { "-moz-font-feature-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontFeatureSettings_setterinfo },
44585
  { "MozFontLanguageOverride", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontLanguageOverride_setterinfo },
44586
  { "-moz-font-language-override", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontLanguageOverride_setterinfo },
44587
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44588
  { "MozHyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozHyphens_getterinfo, GenericSetter<NormalThisPolicy>, &MozHyphens_setterinfo },
44589
  { "-moz-hyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozHyphens_getterinfo, GenericSetter<NormalThisPolicy>, &MozHyphens_setterinfo },
44590
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44591
  { "webkitTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSizeAdjust_setterinfo },
44592
  { "WebkitTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSizeAdjust_setterinfo },
44593
  { "-webkit-text-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSizeAdjust_setterinfo },
44594
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44595
  { "wordWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordWrap_getterinfo, GenericSetter<NormalThisPolicy>, &wordWrap_setterinfo },
44596
  { "word-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordWrap_getterinfo, GenericSetter<NormalThisPolicy>, &wordWrap_setterinfo },
44597
  { "MozMarginStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozMarginStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozMarginStart_setterinfo },
44598
  { "-moz-margin-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozMarginStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozMarginStart_setterinfo },
44599
  { "MozMarginEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozMarginEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozMarginEnd_setterinfo },
44600
  { "-moz-margin-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozMarginEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozMarginEnd_setterinfo },
44601
  { "MozPaddingStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPaddingStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozPaddingStart_setterinfo },
44602
  { "-moz-padding-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPaddingStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozPaddingStart_setterinfo },
44603
  { "MozPaddingEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPaddingEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozPaddingEnd_setterinfo },
44604
  { "-moz-padding-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPaddingEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozPaddingEnd_setterinfo },
44605
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44606
  { "offsetBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &offsetBlockStart_setterinfo },
44607
  { "offset-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &offsetBlockStart_setterinfo },
44608
  { "offsetBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &offsetBlockEnd_setterinfo },
44609
  { "offset-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &offsetBlockEnd_setterinfo },
44610
  { "offsetInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &offsetInlineStart_setterinfo },
44611
  { "offset-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &offsetInlineStart_setterinfo },
44612
  { "offsetInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &offsetInlineEnd_setterinfo },
44613
  { "offset-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &offsetInlineEnd_setterinfo },
44614
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44615
  { "webkitFlexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexDirection_setterinfo },
44616
  { "WebkitFlexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexDirection_setterinfo },
44617
  { "-webkit-flex-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexDirection_setterinfo },
44618
  { "webkitFlexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexWrap_setterinfo },
44619
  { "WebkitFlexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexWrap_setterinfo },
44620
  { "-webkit-flex-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexWrap_setterinfo },
44621
  { "webkitJustifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitJustifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitJustifyContent_setterinfo },
44622
  { "WebkitJustifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitJustifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitJustifyContent_setterinfo },
44623
  { "-webkit-justify-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitJustifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitJustifyContent_setterinfo },
44624
  { "webkitAlignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignContent_setterinfo },
44625
  { "WebkitAlignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignContent_setterinfo },
44626
  { "-webkit-align-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignContent_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignContent_setterinfo },
44627
  { "webkitAlignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignItems_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignItems_setterinfo },
44628
  { "WebkitAlignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignItems_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignItems_setterinfo },
44629
  { "-webkit-align-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignItems_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignItems_setterinfo },
44630
  { "webkitFlexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexGrow_setterinfo },
44631
  { "WebkitFlexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexGrow_setterinfo },
44632
  { "-webkit-flex-grow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexGrow_setterinfo },
44633
  { "webkitFlexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexShrink_setterinfo },
44634
  { "WebkitFlexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexShrink_setterinfo },
44635
  { "-webkit-flex-shrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexShrink_setterinfo },
44636
  { "webkitAlignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignSelf_setterinfo },
44637
  { "WebkitAlignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignSelf_setterinfo },
44638
  { "-webkit-align-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAlignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAlignSelf_setterinfo },
44639
  { "webkitOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitOrder_getterinfo, GenericSetter<NormalThisPolicy>, &webkitOrder_setterinfo },
44640
  { "WebkitOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitOrder_getterinfo, GenericSetter<NormalThisPolicy>, &webkitOrder_setterinfo },
44641
  { "-webkit-order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitOrder_getterinfo, GenericSetter<NormalThisPolicy>, &webkitOrder_setterinfo },
44642
  { "webkitFlexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexBasis_setterinfo },
44643
  { "WebkitFlexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexBasis_setterinfo },
44644
  { "-webkit-flex-basis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexBasis_setterinfo },
44645
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44646
  { "MozBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxSizing_setterinfo },
44647
  { "-moz-box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxSizing_setterinfo },
44648
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44649
  { "webkitBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxSizing_setterinfo },
44650
  { "WebkitBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxSizing_setterinfo },
44651
  { "-webkit-box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxSizing_setterinfo },
44652
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44653
  { "gridColumnGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnGap_setterinfo },
44654
  { "grid-column-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnGap_setterinfo },
44655
  { "MozColumnGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnGap_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnGap_setterinfo },
44656
  { "-moz-column-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnGap_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnGap_setterinfo },
44657
  { "gridRowGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowGap_setterinfo },
44658
  { "grid-row-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowGap_setterinfo },
44659
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44660
  { "webkitUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitUserSelect_getterinfo, GenericSetter<NormalThisPolicy>, &webkitUserSelect_setterinfo },
44661
  { "WebkitUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitUserSelect_getterinfo, GenericSetter<NormalThisPolicy>, &webkitUserSelect_setterinfo },
44662
  { "-webkit-user-select", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitUserSelect_getterinfo, GenericSetter<NormalThisPolicy>, &webkitUserSelect_setterinfo },
44663
  { "webkitMaskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskRepeat_setterinfo },
44664
  { "WebkitMaskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskRepeat_setterinfo },
44665
  { "-webkit-mask-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskRepeat_setterinfo },
44666
  { "webkitMaskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionX_setterinfo },
44667
  { "WebkitMaskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionX_setterinfo },
44668
  { "-webkit-mask-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionX_setterinfo },
44669
  { "webkitMaskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionY_setterinfo },
44670
  { "WebkitMaskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionY_setterinfo },
44671
  { "-webkit-mask-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPositionY_setterinfo },
44672
  { "webkitMaskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskClip_setterinfo },
44673
  { "WebkitMaskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskClip_setterinfo },
44674
  { "-webkit-mask-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskClip_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskClip_setterinfo },
44675
  { "webkitMaskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskOrigin_setterinfo },
44676
  { "WebkitMaskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskOrigin_setterinfo },
44677
  { "-webkit-mask-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskOrigin_setterinfo },
44678
  { "webkitMaskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskSize_setterinfo },
44679
  { "WebkitMaskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskSize_setterinfo },
44680
  { "-webkit-mask-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskSize_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskSize_setterinfo },
44681
  { "webkitMaskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskComposite_setterinfo },
44682
  { "WebkitMaskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskComposite_setterinfo },
44683
  { "-webkit-mask-composite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskComposite_setterinfo },
44684
  { "webkitMaskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskImage_setterinfo },
44685
  { "WebkitMaskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskImage_setterinfo },
44686
  { "-webkit-mask-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskImage_setterinfo },
44687
  { "webkitBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxAlign_setterinfo },
44688
  { "WebkitBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxAlign_setterinfo },
44689
  { "-webkit-box-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxAlign_setterinfo },
44690
  { "webkitBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxDirection_setterinfo },
44691
  { "WebkitBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxDirection_setterinfo },
44692
  { "-webkit-box-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxDirection_setterinfo },
44693
  { "webkitBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxFlex_setterinfo },
44694
  { "WebkitBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxFlex_setterinfo },
44695
  { "-webkit-box-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxFlex_setterinfo },
44696
  { "webkitBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrient_setterinfo },
44697
  { "WebkitBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrient_setterinfo },
44698
  { "-webkit-box-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrient_setterinfo },
44699
  { "webkitBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxPack_setterinfo },
44700
  { "WebkitBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxPack_setterinfo },
44701
  { "-webkit-box-pack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxPack_setterinfo },
44702
  { "webkitBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrdinalGroup_setterinfo },
44703
  { "WebkitBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrdinalGroup_setterinfo },
44704
  { "-webkit-box-ordinal-group", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBoxOrdinalGroup_setterinfo },
44705
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44706
  { "MozBorderStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStart_setterinfo },
44707
  { "-moz-border-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderStart_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderStart_setterinfo },
44708
  { "MozBorderEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEnd_setterinfo },
44709
  { "-moz-border-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderEnd_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderEnd_setterinfo },
44710
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44711
  { "webkitBorderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderRadius_setterinfo },
44712
  { "WebkitBorderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderRadius_setterinfo },
44713
  { "-webkit-border-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderRadius_setterinfo },
44714
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44715
  { "MozBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderImage_setterinfo },
44716
  { "-moz-border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderImage_setterinfo },
44717
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44718
  { "webkitBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderImage_setterinfo },
44719
  { "WebkitBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderImage_setterinfo },
44720
  { "-webkit-border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &webkitBorderImage_setterinfo },
44721
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44722
  { "MozTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransition_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransition_setterinfo },
44723
  { "-moz-transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransition_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransition_setterinfo },
44724
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44725
  { "webkitTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransition_setterinfo },
44726
  { "WebkitTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransition_setterinfo },
44727
  { "-webkit-transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransition_setterinfo },
44728
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44729
  { "MozAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimation_setterinfo },
44730
  { "-moz-animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimation_setterinfo },
44731
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44732
  { "webkitAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimation_setterinfo },
44733
  { "WebkitAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimation_setterinfo },
44734
  { "-webkit-animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &webkitAnimation_setterinfo },
44735
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44736
  { "MozColumns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumns_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumns_setterinfo },
44737
  { "-moz-columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumns_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumns_setterinfo },
44738
  { "MozColumnRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRule_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRule_setterinfo },
44739
  { "-moz-column-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozColumnRule_getterinfo, GenericSetter<NormalThisPolicy>, &MozColumnRule_setterinfo },
44740
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44741
  { "webkitFlexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexFlow_setterinfo },
44742
  { "WebkitFlexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexFlow_setterinfo },
44743
  { "-webkit-flex-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlexFlow_setterinfo },
44744
  { "webkitFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlex_setterinfo },
44745
  { "WebkitFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlex_setterinfo },
44746
  { "-webkit-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitFlex_getterinfo, GenericSetter<NormalThisPolicy>, &webkitFlex_setterinfo },
44747
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44748
  { "gridGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridGap_setterinfo },
44749
  { "grid-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridGap_getterinfo, GenericSetter<NormalThisPolicy>, &gridGap_setterinfo },
44750
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
44751
  { "webkitMask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMask_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMask_setterinfo },
44752
  { "WebkitMask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMask_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMask_setterinfo },
44753
  { "-webkit-mask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMask_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMask_setterinfo },
44754
  { "webkitMaskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPosition_setterinfo },
44755
  { "WebkitMaskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPosition_setterinfo },
44756
  { "-webkit-mask-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitMaskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &webkitMaskPosition_setterinfo },
44757
  { nullptr, 0, nullptr, nullptr, nullptr, nullptr }
44758
};
44759
#if defined(__clang__)
44760
#pragma clang diagnostic pop
44761
#endif
44762
44763
// Can't be const because the pref-enabled boolean needs to be writable
44764
static PrefableDisablers sAttributes_disablers13 = {
44765
  true, false, 0, nullptr
44766
};
44767
44768
// Can't be const because the pref-enabled boolean needs to be writable
44769
static PrefableDisablers sAttributes_disablers24 = {
44770
  true, false, 0, nullptr
44771
};
44772
44773
// Can't be const because the pref-enabled boolean needs to be writable
44774
static PrefableDisablers sAttributes_disablers38 = {
44775
  true, false, 0, nullptr
44776
};
44777
44778
// Can't be const because the pref-enabled boolean needs to be writable
44779
static PrefableDisablers sAttributes_disablers41 = {
44780
  true, false, 0, nullptr
44781
};
44782
44783
// Can't be const because the pref-enabled boolean needs to be writable
44784
static PrefableDisablers sAttributes_disablers60 = {
44785
  true, false, 0, nullptr
44786
};
44787
44788
// Can't be const because the pref-enabled boolean needs to be writable
44789
static PrefableDisablers sAttributes_disablers87 = {
44790
  true, false, 0, nullptr
44791
};
44792
44793
// Can't be const because the pref-enabled boolean needs to be writable
44794
static PrefableDisablers sAttributes_disablers95 = {
44795
  true, false, 0, nullptr
44796
};
44797
44798
// Can't be const because the pref-enabled boolean needs to be writable
44799
static PrefableDisablers sAttributes_disablers98 = {
44800
  true, false, 0, nullptr
44801
};
44802
44803
// Can't be const because the pref-enabled boolean needs to be writable
44804
static PrefableDisablers sAttributes_disablers111 = {
44805
  true, false, 0, nullptr
44806
};
44807
44808
// Can't be const because the pref-enabled boolean needs to be writable
44809
static PrefableDisablers sAttributes_disablers131 = {
44810
  true, false, 0, nullptr
44811
};
44812
44813
// Can't be const because the pref-enabled boolean needs to be writable
44814
static PrefableDisablers sAttributes_disablers175 = {
44815
  true, false, 0, nullptr
44816
};
44817
44818
// Can't be const because the pref-enabled boolean needs to be writable
44819
static PrefableDisablers sAttributes_disablers178 = {
44820
  true, false, 0, nullptr
44821
};
44822
44823
// Can't be const because the pref-enabled boolean needs to be writable
44824
static PrefableDisablers sAttributes_disablers206 = {
44825
  true, false, 0, nullptr
44826
};
44827
44828
// Can't be const because the pref-enabled boolean needs to be writable
44829
static PrefableDisablers sAttributes_disablers216 = {
44830
  true, false, 0, nullptr
44831
};
44832
44833
// Can't be const because the pref-enabled boolean needs to be writable
44834
static PrefableDisablers sAttributes_disablers219 = {
44835
  true, false, 0, nullptr
44836
};
44837
44838
// Can't be const because the pref-enabled boolean needs to be writable
44839
static PrefableDisablers sAttributes_disablers241 = {
44840
  true, false, 0, nullptr
44841
};
44842
44843
// Can't be const because the pref-enabled boolean needs to be writable
44844
static PrefableDisablers sAttributes_disablers246 = {
44845
  true, false, 0, nullptr
44846
};
44847
44848
// Can't be const because the pref-enabled boolean needs to be writable
44849
static PrefableDisablers sAttributes_disablers256 = {
44850
  true, false, 0, nullptr
44851
};
44852
44853
// Can't be const because the pref-enabled boolean needs to be writable
44854
static PrefableDisablers sAttributes_disablers271 = {
44855
  true, false, 0, nullptr
44856
};
44857
44858
// Can't be const because the pref-enabled boolean needs to be writable
44859
static PrefableDisablers sAttributes_disablers311 = {
44860
  true, false, 0, nullptr
44861
};
44862
44863
// Can't be const because the pref-enabled boolean needs to be writable
44864
static PrefableDisablers sAttributes_disablers367 = {
44865
  true, false, 0, nullptr
44866
};
44867
44868
// Can't be const because the pref-enabled boolean needs to be writable
44869
static PrefableDisablers sAttributes_disablers401 = {
44870
  true, false, 0, nullptr
44871
};
44872
44873
// Can't be const because the pref-enabled boolean needs to be writable
44874
static PrefableDisablers sAttributes_disablers409 = {
44875
  true, false, 0, nullptr
44876
};
44877
44878
// Can't be const because the pref-enabled boolean needs to be writable
44879
static PrefableDisablers sAttributes_disablers412 = {
44880
  true, false, 0, nullptr
44881
};
44882
44883
// Can't be const because the pref-enabled boolean needs to be writable
44884
static PrefableDisablers sAttributes_disablers415 = {
44885
  true, false, 0, nullptr
44886
};
44887
44888
// Can't be const because the pref-enabled boolean needs to be writable
44889
static PrefableDisablers sAttributes_disablers418 = {
44890
  true, false, 0, nullptr
44891
};
44892
44893
// Can't be const because the pref-enabled boolean needs to be writable
44894
static PrefableDisablers sAttributes_disablers444 = {
44895
  true, false, 0, nullptr
44896
};
44897
44898
// Can't be const because the pref-enabled boolean needs to be writable
44899
static PrefableDisablers sAttributes_disablers453 = {
44900
  true, false, 0, nullptr
44901
};
44902
44903
// Can't be const because the pref-enabled boolean needs to be writable
44904
static PrefableDisablers sAttributes_disablers483 = {
44905
  true, false, 0, nullptr
44906
};
44907
44908
// Can't be const because the pref-enabled boolean needs to be writable
44909
static PrefableDisablers sAttributes_disablers557 = {
44910
  true, false, 0, nullptr
44911
};
44912
44913
// Can't be const because the pref-enabled boolean needs to be writable
44914
static PrefableDisablers sAttributes_disablers581 = {
44915
  true, false, 0, nullptr
44916
};
44917
44918
// Can't be const because the pref-enabled boolean needs to be writable
44919
static PrefableDisablers sAttributes_disablers646 = {
44920
  true, false, 0, nullptr
44921
};
44922
44923
// Can't be const because the pref-enabled boolean needs to be writable
44924
static PrefableDisablers sAttributes_disablers685 = {
44925
  true, false, 0, nullptr
44926
};
44927
44928
// Can't be const because the pref-enabled boolean needs to be writable
44929
static PrefableDisablers sAttributes_disablers691 = {
44930
  true, false, 0, nullptr
44931
};
44932
44933
// Can't be const because the pref-enabled boolean needs to be writable
44934
static PrefableDisablers sAttributes_disablers694 = {
44935
  true, false, 0, nullptr
44936
};
44937
44938
// Can't be const because the pref-enabled boolean needs to be writable
44939
static PrefableDisablers sAttributes_disablers706 = {
44940
  true, false, 0, nullptr
44941
};
44942
44943
// Can't be const because the pref-enabled boolean needs to be writable
44944
static PrefableDisablers sAttributes_disablers744 = {
44945
  true, false, 0, nullptr
44946
};
44947
44948
// Can't be const because the pref-enabled boolean needs to be writable
44949
static PrefableDisablers sAttributes_disablers767 = {
44950
  true, false, 0, nullptr
44951
};
44952
44953
// Can't be const because the pref-enabled boolean needs to be writable
44954
static PrefableDisablers sAttributes_disablers780 = {
44955
  true, false, 0, nullptr
44956
};
44957
44958
// Can't be const because the pref-enabled boolean needs to be writable
44959
static PrefableDisablers sAttributes_disablers783 = {
44960
  true, false, 0, nullptr
44961
};
44962
44963
// Can't be const because the pref-enabled boolean needs to be writable
44964
static PrefableDisablers sAttributes_disablers787 = {
44965
  true, false, 0, nullptr
44966
};
44967
44968
// Can't be const because the pref-enabled boolean needs to be writable
44969
static PrefableDisablers sAttributes_disablers790 = {
44970
  true, false, 0, nullptr
44971
};
44972
44973
// Can't be const because the pref-enabled boolean needs to be writable
44974
static PrefableDisablers sAttributes_disablers794 = {
44975
  true, false, 0, nullptr
44976
};
44977
44978
// Can't be const because the pref-enabled boolean needs to be writable
44979
static PrefableDisablers sAttributes_disablers797 = {
44980
  true, false, 0, nullptr
44981
};
44982
44983
// Can't be const because the pref-enabled boolean needs to be writable
44984
static PrefableDisablers sAttributes_disablers801 = {
44985
  true, false, 0, nullptr
44986
};
44987
44988
// Can't be const because the pref-enabled boolean needs to be writable
44989
static PrefableDisablers sAttributes_disablers804 = {
44990
  true, false, 0, nullptr
44991
};
44992
44993
// Can't be const because the pref-enabled boolean needs to be writable
44994
static PrefableDisablers sAttributes_disablers808 = {
44995
  true, false, 0, nullptr
44996
};
44997
44998
// Can't be const because the pref-enabled boolean needs to be writable
44999
static PrefableDisablers sAttributes_disablers811 = {
45000
  true, false, 0, nullptr
45001
};
45002
45003
// Can't be const because the pref-enabled boolean needs to be writable
45004
static PrefableDisablers sAttributes_disablers815 = {
45005
  true, false, 0, nullptr
45006
};
45007
45008
// Can't be const because the pref-enabled boolean needs to be writable
45009
static PrefableDisablers sAttributes_disablers818 = {
45010
  true, false, 0, nullptr
45011
};
45012
45013
// Can't be const because the pref-enabled boolean needs to be writable
45014
static PrefableDisablers sAttributes_disablers822 = {
45015
  true, false, 0, nullptr
45016
};
45017
45018
// Can't be const because the pref-enabled boolean needs to be writable
45019
static PrefableDisablers sAttributes_disablers825 = {
45020
  true, false, 0, nullptr
45021
};
45022
45023
// Can't be const because the pref-enabled boolean needs to be writable
45024
static PrefableDisablers sAttributes_disablers829 = {
45025
  true, false, 0, nullptr
45026
};
45027
45028
// Can't be const because the pref-enabled boolean needs to be writable
45029
static PrefableDisablers sAttributes_disablers832 = {
45030
  true, false, 0, nullptr
45031
};
45032
45033
// Can't be const because the pref-enabled boolean needs to be writable
45034
static PrefableDisablers sAttributes_disablers836 = {
45035
  true, false, 0, nullptr
45036
};
45037
45038
// Can't be const because the pref-enabled boolean needs to be writable
45039
static PrefableDisablers sAttributes_disablers839 = {
45040
  true, false, 0, nullptr
45041
};
45042
45043
// Can't be const because the pref-enabled boolean needs to be writable
45044
static PrefableDisablers sAttributes_disablers843 = {
45045
  true, false, 0, nullptr
45046
};
45047
45048
// Can't be const because the pref-enabled boolean needs to be writable
45049
static PrefableDisablers sAttributes_disablers846 = {
45050
  true, false, 0, nullptr
45051
};
45052
45053
// Can't be const because the pref-enabled boolean needs to be writable
45054
static PrefableDisablers sAttributes_disablers850 = {
45055
  true, false, 0, nullptr
45056
};
45057
45058
// Can't be const because the pref-enabled boolean needs to be writable
45059
static PrefableDisablers sAttributes_disablers853 = {
45060
  true, false, 0, nullptr
45061
};
45062
45063
// Can't be const because the pref-enabled boolean needs to be writable
45064
static PrefableDisablers sAttributes_disablers857 = {
45065
  true, false, 0, nullptr
45066
};
45067
45068
// Can't be const because the pref-enabled boolean needs to be writable
45069
static PrefableDisablers sAttributes_disablers860 = {
45070
  true, false, 0, nullptr
45071
};
45072
45073
// Can't be const because the pref-enabled boolean needs to be writable
45074
static PrefableDisablers sAttributes_disablers864 = {
45075
  true, false, 0, nullptr
45076
};
45077
45078
// Can't be const because the pref-enabled boolean needs to be writable
45079
static PrefableDisablers sAttributes_disablers867 = {
45080
  true, false, 0, nullptr
45081
};
45082
45083
// Can't be const because the pref-enabled boolean needs to be writable
45084
static PrefableDisablers sAttributes_disablers871 = {
45085
  true, false, 0, nullptr
45086
};
45087
45088
// Can't be const because the pref-enabled boolean needs to be writable
45089
static PrefableDisablers sAttributes_disablers874 = {
45090
  true, false, 0, nullptr
45091
};
45092
45093
// Can't be const because the pref-enabled boolean needs to be writable
45094
static PrefableDisablers sAttributes_disablers878 = {
45095
  true, false, 0, nullptr
45096
};
45097
45098
// Can't be const because the pref-enabled boolean needs to be writable
45099
static PrefableDisablers sAttributes_disablers881 = {
45100
  true, false, 0, nullptr
45101
};
45102
45103
// Can't be const because the pref-enabled boolean needs to be writable
45104
static PrefableDisablers sAttributes_disablers885 = {
45105
  true, false, 0, nullptr
45106
};
45107
45108
// Can't be const because the pref-enabled boolean needs to be writable
45109
static PrefableDisablers sAttributes_disablers888 = {
45110
  true, false, 0, nullptr
45111
};
45112
45113
// Can't be const because the pref-enabled boolean needs to be writable
45114
static PrefableDisablers sAttributes_disablers892 = {
45115
  true, false, 0, nullptr
45116
};
45117
45118
// Can't be const because the pref-enabled boolean needs to be writable
45119
static PrefableDisablers sAttributes_disablers895 = {
45120
  true, false, 0, nullptr
45121
};
45122
45123
// Can't be const because the pref-enabled boolean needs to be writable
45124
static PrefableDisablers sAttributes_disablers899 = {
45125
  true, false, 0, nullptr
45126
};
45127
45128
// Can't be const because the pref-enabled boolean needs to be writable
45129
static PrefableDisablers sAttributes_disablers902 = {
45130
  true, false, 0, nullptr
45131
};
45132
45133
// Can't be const because the pref-enabled boolean needs to be writable
45134
static PrefableDisablers sAttributes_disablers906 = {
45135
  true, false, 0, nullptr
45136
};
45137
45138
// Can't be const because the pref-enabled boolean needs to be writable
45139
static PrefableDisablers sAttributes_disablers921 = {
45140
  true, false, 0, nullptr
45141
};
45142
45143
// Can't be const because the pref-enabled boolean needs to be writable
45144
static PrefableDisablers sAttributes_disablers927 = {
45145
  true, false, 0, nullptr
45146
};
45147
45148
// Can't be const because the pref-enabled boolean needs to be writable
45149
static PrefableDisablers sAttributes_disablers934 = {
45150
  true, false, 0, nullptr
45151
};
45152
45153
// Can't be const because the pref-enabled boolean needs to be writable
45154
static PrefableDisablers sAttributes_disablers942 = {
45155
  true, false, 0, nullptr
45156
};
45157
45158
// Can't be const because the pref-enabled boolean needs to be writable
45159
static PrefableDisablers sAttributes_disablers957 = {
45160
  true, false, 0, nullptr
45161
};
45162
45163
// Can't be const because the pref-enabled boolean needs to be writable
45164
static PrefableDisablers sAttributes_disablers966 = {
45165
  true, false, 0, nullptr
45166
};
45167
45168
// Can't be const because the pref-enabled boolean needs to be writable
45169
static PrefableDisablers sAttributes_disablers997 = {
45170
  true, false, 0, nullptr
45171
};
45172
45173
// Can't be const because the pref-enabled boolean needs to be writable
45174
static PrefableDisablers sAttributes_disablers1000 = {
45175
  true, false, 0, nullptr
45176
};
45177
45178
// Can't be const because the pref-enabled boolean needs to be writable
45179
static PrefableDisablers sAttributes_disablers1011 = {
45180
  true, false, 0, nullptr
45181
};
45182
45183
// Can't be const because the pref-enabled boolean needs to be writable
45184
static PrefableDisablers sAttributes_disablers1062 = {
45185
  true, false, 0, nullptr
45186
};
45187
45188
// Can't be const because the pref-enabled boolean needs to be writable
45189
static PrefableDisablers sAttributes_disablers1066 = {
45190
  true, false, 0, nullptr
45191
};
45192
45193
// Can't be const because the pref-enabled boolean needs to be writable
45194
static PrefableDisablers sAttributes_disablers1069 = {
45195
  true, false, 0, nullptr
45196
};
45197
45198
// Can't be const because the pref-enabled boolean needs to be writable
45199
static PrefableDisablers sAttributes_disablers1073 = {
45200
  true, false, 0, nullptr
45201
};
45202
45203
// Can't be const because the pref-enabled boolean needs to be writable
45204
static PrefableDisablers sAttributes_disablers1076 = {
45205
  true, false, 0, nullptr
45206
};
45207
45208
// Can't be const because the pref-enabled boolean needs to be writable
45209
static PrefableDisablers sAttributes_disablers1080 = {
45210
  true, false, 0, nullptr
45211
};
45212
45213
// Can't be const because the pref-enabled boolean needs to be writable
45214
static PrefableDisablers sAttributes_disablers1083 = {
45215
  true, false, 0, nullptr
45216
};
45217
45218
// Can't be const because the pref-enabled boolean needs to be writable
45219
static PrefableDisablers sAttributes_disablers1092 = {
45220
  true, false, 0, nullptr
45221
};
45222
45223
// Can't be const because the pref-enabled boolean needs to be writable
45224
static PrefableDisablers sAttributes_disablers1102 = {
45225
  true, false, 0, nullptr
45226
};
45227
45228
static const Prefable<const JSPropertySpec> sAttributes[] = {
45229
  { nullptr, &sAttributes_specs[0] },
45230
  { &sAttributes_disablers13, &sAttributes_specs[13] },
45231
  { nullptr, &sAttributes_specs[16] },
45232
  { &sAttributes_disablers24, &sAttributes_specs[24] },
45233
  { nullptr, &sAttributes_specs[27] },
45234
  { &sAttributes_disablers38, &sAttributes_specs[38] },
45235
  { &sAttributes_disablers41, &sAttributes_specs[41] },
45236
  { nullptr, &sAttributes_specs[43] },
45237
  { &sAttributes_disablers60, &sAttributes_specs[60] },
45238
  { nullptr, &sAttributes_specs[63] },
45239
  { &sAttributes_disablers87, &sAttributes_specs[87] },
45240
  { nullptr, &sAttributes_specs[90] },
45241
  { &sAttributes_disablers95, &sAttributes_specs[95] },
45242
  { &sAttributes_disablers98, &sAttributes_specs[98] },
45243
  { nullptr, &sAttributes_specs[100] },
45244
  { &sAttributes_disablers111, &sAttributes_specs[111] },
45245
  { nullptr, &sAttributes_specs[114] },
45246
  { &sAttributes_disablers131, &sAttributes_specs[131] },
45247
  { nullptr, &sAttributes_specs[134] },
45248
  { &sAttributes_disablers175, &sAttributes_specs[175] },
45249
  { &sAttributes_disablers178, &sAttributes_specs[178] },
45250
  { nullptr, &sAttributes_specs[181] },
45251
  { &sAttributes_disablers206, &sAttributes_specs[206] },
45252
  { nullptr, &sAttributes_specs[209] },
45253
  { &sAttributes_disablers216, &sAttributes_specs[216] },
45254
  { &sAttributes_disablers219, &sAttributes_specs[219] },
45255
  { nullptr, &sAttributes_specs[222] },
45256
  { &sAttributes_disablers241, &sAttributes_specs[241] },
45257
  { &sAttributes_disablers246, &sAttributes_specs[246] },
45258
  { nullptr, &sAttributes_specs[251] },
45259
  { &sAttributes_disablers256, &sAttributes_specs[256] },
45260
  { nullptr, &sAttributes_specs[261] },
45261
  { &sAttributes_disablers271, &sAttributes_specs[271] },
45262
  { nullptr, &sAttributes_specs[274] },
45263
  { &sAttributes_disablers311, &sAttributes_specs[311] },
45264
  { nullptr, &sAttributes_specs[314] },
45265
  { &sAttributes_disablers367, &sAttributes_specs[367] },
45266
  { nullptr, &sAttributes_specs[370] },
45267
  { &sAttributes_disablers401, &sAttributes_specs[401] },
45268
  { nullptr, &sAttributes_specs[404] },
45269
  { &sAttributes_disablers409, &sAttributes_specs[409] },
45270
  { &sAttributes_disablers412, &sAttributes_specs[412] },
45271
  { &sAttributes_disablers415, &sAttributes_specs[415] },
45272
  { &sAttributes_disablers418, &sAttributes_specs[418] },
45273
  { nullptr, &sAttributes_specs[421] },
45274
  { &sAttributes_disablers444, &sAttributes_specs[444] },
45275
  { nullptr, &sAttributes_specs[446] },
45276
  { &sAttributes_disablers453, &sAttributes_specs[453] },
45277
  { nullptr, &sAttributes_specs[458] },
45278
  { &sAttributes_disablers483, &sAttributes_specs[483] },
45279
  { nullptr, &sAttributes_specs[486] },
45280
  { &sAttributes_disablers557, &sAttributes_specs[557] },
45281
  { nullptr, &sAttributes_specs[560] },
45282
  { &sAttributes_disablers581, &sAttributes_specs[581] },
45283
  { nullptr, &sAttributes_specs[585] },
45284
  { &sAttributes_disablers646, &sAttributes_specs[646] },
45285
  { nullptr, &sAttributes_specs[653] },
45286
  { &sAttributes_disablers685, &sAttributes_specs[685] },
45287
  { nullptr, &sAttributes_specs[688] },
45288
  { &sAttributes_disablers691, &sAttributes_specs[691] },
45289
  { &sAttributes_disablers694, &sAttributes_specs[694] },
45290
  { nullptr, &sAttributes_specs[697] },
45291
  { &sAttributes_disablers706, &sAttributes_specs[706] },
45292
  { nullptr, &sAttributes_specs[710] },
45293
  { &sAttributes_disablers744, &sAttributes_specs[744] },
45294
  { nullptr, &sAttributes_specs[754] },
45295
  { &sAttributes_disablers767, &sAttributes_specs[767] },
45296
  { &sAttributes_disablers780, &sAttributes_specs[780] },
45297
  { &sAttributes_disablers783, &sAttributes_specs[783] },
45298
  { &sAttributes_disablers787, &sAttributes_specs[787] },
45299
  { &sAttributes_disablers790, &sAttributes_specs[790] },
45300
  { &sAttributes_disablers794, &sAttributes_specs[794] },
45301
  { &sAttributes_disablers797, &sAttributes_specs[797] },
45302
  { &sAttributes_disablers801, &sAttributes_specs[801] },
45303
  { &sAttributes_disablers804, &sAttributes_specs[804] },
45304
  { &sAttributes_disablers808, &sAttributes_specs[808] },
45305
  { &sAttributes_disablers811, &sAttributes_specs[811] },
45306
  { &sAttributes_disablers815, &sAttributes_specs[815] },
45307
  { &sAttributes_disablers818, &sAttributes_specs[818] },
45308
  { &sAttributes_disablers822, &sAttributes_specs[822] },
45309
  { &sAttributes_disablers825, &sAttributes_specs[825] },
45310
  { &sAttributes_disablers829, &sAttributes_specs[829] },
45311
  { &sAttributes_disablers832, &sAttributes_specs[832] },
45312
  { &sAttributes_disablers836, &sAttributes_specs[836] },
45313
  { &sAttributes_disablers839, &sAttributes_specs[839] },
45314
  { &sAttributes_disablers843, &sAttributes_specs[843] },
45315
  { &sAttributes_disablers846, &sAttributes_specs[846] },
45316
  { &sAttributes_disablers850, &sAttributes_specs[850] },
45317
  { &sAttributes_disablers853, &sAttributes_specs[853] },
45318
  { &sAttributes_disablers857, &sAttributes_specs[857] },
45319
  { &sAttributes_disablers860, &sAttributes_specs[860] },
45320
  { &sAttributes_disablers864, &sAttributes_specs[864] },
45321
  { &sAttributes_disablers867, &sAttributes_specs[867] },
45322
  { &sAttributes_disablers871, &sAttributes_specs[871] },
45323
  { &sAttributes_disablers874, &sAttributes_specs[874] },
45324
  { &sAttributes_disablers878, &sAttributes_specs[878] },
45325
  { &sAttributes_disablers881, &sAttributes_specs[881] },
45326
  { &sAttributes_disablers885, &sAttributes_specs[885] },
45327
  { &sAttributes_disablers888, &sAttributes_specs[888] },
45328
  { &sAttributes_disablers892, &sAttributes_specs[892] },
45329
  { &sAttributes_disablers895, &sAttributes_specs[895] },
45330
  { &sAttributes_disablers899, &sAttributes_specs[899] },
45331
  { &sAttributes_disablers902, &sAttributes_specs[902] },
45332
  { &sAttributes_disablers906, &sAttributes_specs[906] },
45333
  { nullptr, &sAttributes_specs[910] },
45334
  { &sAttributes_disablers921, &sAttributes_specs[921] },
45335
  { nullptr, &sAttributes_specs[924] },
45336
  { &sAttributes_disablers927, &sAttributes_specs[927] },
45337
  { &sAttributes_disablers934, &sAttributes_specs[934] },
45338
  { nullptr, &sAttributes_specs[939] },
45339
  { &sAttributes_disablers942, &sAttributes_specs[942] },
45340
  { nullptr, &sAttributes_specs[946] },
45341
  { &sAttributes_disablers957, &sAttributes_specs[957] },
45342
  { &sAttributes_disablers966, &sAttributes_specs[966] },
45343
  { &sAttributes_disablers997, &sAttributes_specs[997] },
45344
  { &sAttributes_disablers1000, &sAttributes_specs[1000] },
45345
  { nullptr, &sAttributes_specs[1004] },
45346
  { &sAttributes_disablers1011, &sAttributes_specs[1011] },
45347
  { nullptr, &sAttributes_specs[1057] },
45348
  { &sAttributes_disablers1062, &sAttributes_specs[1062] },
45349
  { &sAttributes_disablers1066, &sAttributes_specs[1066] },
45350
  { &sAttributes_disablers1069, &sAttributes_specs[1069] },
45351
  { &sAttributes_disablers1073, &sAttributes_specs[1073] },
45352
  { &sAttributes_disablers1076, &sAttributes_specs[1076] },
45353
  { &sAttributes_disablers1080, &sAttributes_specs[1080] },
45354
  { &sAttributes_disablers1083, &sAttributes_specs[1083] },
45355
  { nullptr, &sAttributes_specs[1087] },
45356
  { &sAttributes_disablers1092, &sAttributes_specs[1092] },
45357
  { nullptr, &sAttributes_specs[1099] },
45358
  { &sAttributes_disablers1102, &sAttributes_specs[1102] },
45359
  { nullptr, nullptr }
45360
};
45361
45362
static_assert(130 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
45363
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
45364
static_assert(70 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
45365
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");
45366
45367
45368
static uint16_t sNativeProperties_sortedPropertyIndices[980];
45369
static PropertyInfo sNativeProperties_propertyInfos[980];
45370
45371
static const NativePropertiesN<2> sNativeProperties = {
45372
  false, 0,
45373
  false, 0,
45374
  true,  0 /* sMethods */,
45375
  true,  1 /* sAttributes */,
45376
  false, 0,
45377
  false, 0,
45378
  false, 0,
45379
  -1,
45380
  980,
45381
  sNativeProperties_sortedPropertyIndices,
45382
  {
45383
    { sMethods, &sNativeProperties_propertyInfos[0] },
45384
    { sAttributes, &sNativeProperties_propertyInfos[1] }
45385
  }
45386
};
45387
static_assert(980 < 1ull << CHAR_BIT * sizeof(sNativeProperties.propertyInfoCount),
45388
    "We have a property info count that is oversized");
45389
45390
static const DOMIfaceAndProtoJSClass sInterfaceObjectClass = {
45391
  {
45392
    "Function",
45393
    JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_SLOTS_BASE),
45394
    &sBoringInterfaceObjectClassClassOps,
45395
    JS_NULL_CLASS_SPEC,
45396
    JS_NULL_CLASS_EXT,
45397
    &sInterfaceObjectClassObjectOps
45398
  },
45399
  eInterface,
45400
  true,
45401
  prototypes::id::CSS2Properties,
45402
  PrototypeTraits<prototypes::id::CSS2Properties>::Depth,
45403
  sNativePropertyHooks,
45404
  "function CSS2Properties() {\n    [native code]\n}",
45405
  CSSStyleDeclaration_Binding::GetConstructorObject
45406
};
45407
45408
static const DOMIfaceAndProtoJSClass sPrototypeClass = {
45409
  {
45410
    "CSS2PropertiesPrototype",
45411
    JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_PROTO_SLOTS_BASE),
45412
    JS_NULL_CLASS_OPS,
45413
    JS_NULL_CLASS_SPEC,
45414
    JS_NULL_CLASS_EXT,
45415
    JS_NULL_OBJECT_OPS
45416
  },
45417
  eInterfacePrototype,
45418
  false,
45419
  prototypes::id::CSS2Properties,
45420
  PrototypeTraits<prototypes::id::CSS2Properties>::Depth,
45421
  sNativePropertyHooks,
45422
  "[object CSS2PropertiesPrototype]",
45423
  CSSStyleDeclaration_Binding::GetProtoObject
45424
};
45425
45426
static_assert(IsBaseOf<nsISupports, nsDOMCSSDeclaration >::value,
45427
                  "We don't support non-nsISupports native classes for "
45428
                  "proxy-based bindings yet");
45429
45430
45431
class DOMProxyHandler : public mozilla::dom::DOMProxyHandler
45432
{
45433
public:
45434
  explicit constexpr DOMProxyHandler()
45435
0
  {
45436
0
  }
45437
45438
  virtual bool
45439
  getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<JS::PropertyDescriptor> desc) const override;
45440
45441
  virtual bool
45442
  defineProperty(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* defined) const override;
45443
45444
  using mozilla::dom::DOMProxyHandler::defineProperty;
45445
45446
  virtual bool
45447
  ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::AutoIdVector& props) const override;
45448
45449
  virtual bool
45450
  hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const override;
45451
45452
  virtual bool
45453
  get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const override;
45454
45455
  virtual const char*
45456
  className(JSContext* cx, JS::Handle<JSObject*> proxy) const override;
45457
45458
  virtual bool
45459
  finalizeInBackground(const JS::Value& priv) const override;
45460
45461
  virtual void
45462
  finalize(JSFreeOp* fop, JSObject* proxy) const override;
45463
45464
  static const DOMProxyHandler*
45465
  getInstance();
45466
45467
  virtual bool
45468
  delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const override;
45469
45470
  virtual bool
45471
  getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const override;
45472
45473
  virtual bool
45474
  canNurseryAllocate() const override;
45475
45476
  virtual size_t
45477
  objectMoved(JSObject* obj, JSObject* old) const override;
45478
};
45479
45480
MOZ_ALWAYS_INLINE bool
45481
IsProxy(JSObject* obj)
45482
0
{
45483
0
  return js::IsProxy(obj) && js::GetProxyHandler(obj) == DOMProxyHandler::getInstance();
45484
0
}
45485
45486
MOZ_ALWAYS_INLINE nsDOMCSSDeclaration*
45487
UnwrapProxy(JSObject* obj)
45488
0
{
45489
0
  MOZ_ASSERT(js::IsProxy(obj));
45490
0
  if (js::GetProxyHandler(obj) != DOMProxyHandler::getInstance()) {
45491
0
    MOZ_ASSERT(xpc::WrapperFactory::IsXrayWrapper(obj));
45492
0
    obj = js::UncheckedUnwrap(obj);
45493
0
  }
45494
0
  MOZ_ASSERT(IsProxy(obj));
45495
0
  return static_cast<nsDOMCSSDeclaration*>(js::GetProxyReservedSlot(obj, DOM_OBJECT_SLOT).toPrivate());
45496
0
}
45497
45498
bool
45499
DOMProxyHandler::getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<JS::PropertyDescriptor> desc) const
45500
0
{
45501
0
  bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);
45502
0
  uint32_t index = GetArrayIndexFromId(cx, id);
45503
0
  if (IsArrayIndex(index)) {
45504
0
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
45505
0
    bool found = false;
45506
0
    DOMString result;
45507
0
    self->IndexedGetter(index, found, result);
45508
0
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
45509
0
45510
0
    if (found) {
45511
0
      if (!xpc::NonVoidStringToJsval(cx, result, desc.value())) {
45512
0
        return false;
45513
0
      }
45514
0
      FillPropertyDescriptor(desc, proxy, true);
45515
0
      return true;
45516
0
    }
45517
0
  }
45518
0
45519
0
  JS::Rooted<JSObject*> expando(cx);
45520
0
  if (!isXray && (expando = GetExpandoObject(proxy))) {
45521
0
    if (!JS_GetOwnPropertyDescriptorById(cx, expando, id, desc)) {
45522
0
      return false;
45523
0
    }
45524
0
    if (desc.object()) {
45525
0
      // Pretend the property lives on the wrapper.
45526
0
      desc.object().set(proxy);
45527
0
      return true;
45528
0
    }
45529
0
  }
45530
0
45531
0
  desc.object().set(nullptr);
45532
0
  return true;
45533
0
}
45534
45535
bool
45536
DOMProxyHandler::defineProperty(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* defined) const
45537
0
{
45538
0
  if (IsArrayIndex(GetArrayIndexFromId(cx, id))) {
45539
0
    *defined = true;
45540
0
    return opresult.failNoIndexedSetter();
45541
0
  }
45542
0
  return mozilla::dom::DOMProxyHandler::defineProperty(cx, proxy, id, desc, opresult, defined);
45543
0
}
45544
45545
45546
bool
45547
DOMProxyHandler::ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::AutoIdVector& props) const
45548
0
{
45549
0
  bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);
45550
0
45551
0
  uint32_t length = UnwrapProxy(proxy)->Length();
45552
0
  MOZ_ASSERT(int32_t(length) >= 0);
45553
0
  for (int32_t i = 0; i < int32_t(length); ++i) {
45554
0
    if (!props.append(INT_TO_JSID(i))) {
45555
0
      return false;
45556
0
    }
45557
0
  }
45558
0
45559
0
  JS::Rooted<JSObject*> expando(cx);
45560
0
  if (!isXray && (expando = DOMProxyHandler::GetExpandoObject(proxy)) &&
45561
0
      !js::GetPropertyKeys(cx, expando, flags, &props)) {
45562
0
    return false;
45563
0
  }
45564
0
45565
0
  return true;
45566
0
}
45567
45568
bool
45569
DOMProxyHandler::hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const
45570
0
{
45571
0
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
45572
0
            "Should not have a XrayWrapper here");
45573
0
45574
0
  uint32_t index = GetArrayIndexFromId(cx, id);
45575
0
  if (IsArrayIndex(index)) {
45576
0
    bool found = false;
45577
0
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
45578
0
    DOMString result;
45579
0
    self->IndexedGetter(index, found, result);
45580
0
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
45581
0
    (void)result;
45582
0
45583
0
    *bp = found;
45584
0
    return true;
45585
0
  }
45586
0
45587
0
45588
0
  JS::Rooted<JSObject*> expando(cx, GetExpandoObject(proxy));
45589
0
  if (expando) {
45590
0
    bool b = true;
45591
0
    bool ok = JS_HasPropertyById(cx, expando, id, &b);
45592
0
    *bp = !!b;
45593
0
    if (!ok || *bp) {
45594
0
      return ok;
45595
0
    }
45596
0
  }
45597
0
45598
0
  *bp = false;
45599
0
  return true;
45600
0
}
45601
45602
bool
45603
DOMProxyHandler::get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const
45604
0
{
45605
0
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
45606
0
              "Should not have a XrayWrapper here");
45607
0
45608
0
  uint32_t index = GetArrayIndexFromId(cx, id);
45609
0
  if (IsArrayIndex(index)) {
45610
0
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
45611
0
    bool found = false;
45612
0
    DOMString result;
45613
0
    self->IndexedGetter(index, found, result);
45614
0
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
45615
0
45616
0
    if (found) {
45617
0
      if (!xpc::NonVoidStringToJsval(cx, result, vp)) {
45618
0
        return false;
45619
0
      }
45620
0
      return true;
45621
0
    }
45622
0
    // Even if we don't have this index, we don't forward the
45623
0
    // get on to our expando object.
45624
0
  } else {
45625
0
    { // Scope for expando
45626
0
      JS::Rooted<JSObject*> expando(cx, DOMProxyHandler::GetExpandoObject(proxy));
45627
0
      if (expando) {
45628
0
        bool hasProp;
45629
0
        if (!JS_HasPropertyById(cx, expando, id, &hasProp)) {
45630
0
          return false;
45631
0
        }
45632
0
45633
0
        if (hasProp) {
45634
0
          // Forward the get to the expando object, but our receiver is whatever our
45635
0
          // receiver is.
45636
0
          return JS_ForwardGetPropertyTo(cx, expando, id, receiver, vp);
45637
0
        }
45638
0
      }
45639
0
    }
45640
0
  }
45641
0
45642
0
  bool foundOnPrototype;
45643
0
  if (!GetPropertyOnPrototype(cx, proxy, receiver, id, &foundOnPrototype, vp)) {
45644
0
    return false;
45645
0
  }
45646
0
45647
0
  if (foundOnPrototype) {
45648
0
    return true;
45649
0
  }
45650
0
45651
0
  vp.setUndefined();
45652
0
  return true;
45653
0
}
45654
45655
const char*
45656
DOMProxyHandler::className(JSContext* cx, JS::Handle<JSObject*> proxy) const
45657
0
{
45658
0
  return "CSS2Properties";
45659
0
}
45660
45661
bool
45662
DOMProxyHandler::finalizeInBackground(const JS::Value& priv) const
45663
0
{
45664
0
  return false;
45665
0
}
45666
45667
void
45668
DOMProxyHandler::finalize(JSFreeOp* fop, JSObject* proxy) const
45669
0
{
45670
0
  nsDOMCSSDeclaration* self = UnwrapPossiblyNotInitializedDOMObject<nsDOMCSSDeclaration>(proxy);
45671
0
  if (self) {
45672
0
    ClearWrapper(self, self, proxy);
45673
0
    AddForDeferredFinalization<nsDOMCSSDeclaration>(self);
45674
0
  }
45675
0
}
45676
45677
const DOMProxyHandler*
45678
DOMProxyHandler::getInstance()
45679
0
{
45680
0
  static const DOMProxyHandler instance;
45681
0
  return &instance;
45682
0
}
45683
45684
bool
45685
DOMProxyHandler::delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const
45686
0
{
45687
0
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
45688
0
            "Should not have a XrayWrapper here");
45689
0
45690
0
  uint32_t index = GetArrayIndexFromId(cx, id);
45691
0
  if (IsArrayIndex(index)) {
45692
0
    bool deleteSucceeded;
45693
0
    bool found = false;
45694
0
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
45695
0
    DOMString result;
45696
0
    self->IndexedGetter(index, found, result);
45697
0
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
45698
0
    (void)result;
45699
0
    deleteSucceeded = !found;
45700
0
    return deleteSucceeded ? opresult.succeed() : opresult.failCantDelete();
45701
0
  }
45702
0
45703
0
  return dom::DOMProxyHandler::delete_(cx, proxy, id, opresult);
45704
0
}
45705
45706
bool
45707
DOMProxyHandler::getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const
45708
0
{
45709
0
  JS::Rooted<JS::Value> temp(cx);
45710
0
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
45711
0
             "Should not have a XrayWrapper here");
45712
0
45713
0
  nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
45714
0
  uint32_t length = self->Length();
45715
0
  // Compute the end of the indices we'll get ourselves
45716
0
  uint32_t ourEnd = std::max(begin, std::min(end, length));
45717
0
45718
0
  for (uint32_t index = begin; index < ourEnd; ++index) {
45719
0
    bool found = false;
45720
0
    DOMString result;
45721
0
    self->IndexedGetter(index, found, result);
45722
0
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
45723
0
45724
0
    MOZ_ASSERT(found);
45725
0
    if (!xpc::NonVoidStringToJsval(cx, result, &temp)) {
45726
0
      return false;
45727
0
    }
45728
0
    if (!adder->append(cx, temp)) return false;
45729
0
    continue;
45730
0
  }
45731
0
45732
0
  if (end > ourEnd) {
45733
0
    JS::Rooted<JSObject*> proto(cx);
45734
0
    if (!js::GetObjectProto(cx, proxy, &proto)) {
45735
0
      return false;
45736
0
    }
45737
0
    return js::GetElementsWithAdder(cx, proto, proxy, ourEnd, end, adder);
45738
0
  }
45739
0
45740
0
  return true;
45741
0
}
45742
45743
bool
45744
DOMProxyHandler::canNurseryAllocate() const
45745
0
{
45746
0
  return true;
45747
0
}
45748
45749
size_t
45750
DOMProxyHandler::objectMoved(JSObject* obj, JSObject* old) const
45751
0
{
45752
0
  nsDOMCSSDeclaration* self = UnwrapPossiblyNotInitializedDOMObject<nsDOMCSSDeclaration>(obj);
45753
0
  if (self) {
45754
0
    UpdateWrapper(self, self, obj, old);
45755
0
  }
45756
0
45757
0
  return 0;
45758
0
}
45759
45760
static const DOMJSClass sClass = {
45761
  PROXY_CLASS_DEF("CSS2Properties",
45762
                  JSCLASS_IS_DOMJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(1)),
45763
  { prototypes::id::CSSStyleDeclaration, prototypes::id::CSS2Properties, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count },
45764
  IsBaseOf<nsISupports, nsDOMCSSDeclaration >::value,
45765
  sNativePropertyHooks,
45766
  FindAssociatedGlobalForNative<nsDOMCSSDeclaration>::Get,
45767
  GetProtoObjectHandle,
45768
  GetCCParticipant<nsDOMCSSDeclaration>::Get()
45769
};
45770
45771
bool
45772
Wrap(JSContext* aCx, nsDOMCSSDeclaration* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
45773
0
{
45774
0
  static_assert(!IsBaseOf<NonRefcountedDOMObject, nsDOMCSSDeclaration>::value,
45775
0
                "Shouldn't have wrappercached things that are not refcounted.");
45776
0
  MOZ_ASSERT(static_cast<nsDOMCSSDeclaration*>(aObject) ==
45777
0
             reinterpret_cast<nsDOMCSSDeclaration*>(aObject),
45778
0
             "Multiple inheritance for nsDOMCSSDeclaration is broken.");
45779
0
  MOZ_ASSERT(static_cast<nsICSSDeclaration*>(aObject) ==
45780
0
             reinterpret_cast<nsICSSDeclaration*>(aObject),
45781
0
             "Multiple inheritance for nsICSSDeclaration is broken.");
45782
0
  MOZ_ASSERT(ToSupportsIsCorrect(aObject));
45783
0
  MOZ_ASSERT_IF(aGivenProto, js::IsObjectInContextCompartment(aGivenProto, aCx));
45784
0
  MOZ_ASSERT(!aCache->GetWrapper(),
45785
0
             "You should probably not be using Wrap() directly; use "
45786
0
             "GetOrCreateDOMReflector instead");
45787
0
45788
0
  MOZ_ASSERT(ToSupportsIsOnPrimaryInheritanceChain(aObject, aCache),
45789
0
             "nsISupports must be on our primary inheritance chain");
45790
0
45791
0
  JS::Rooted<JSObject*> global(aCx, FindAssociatedGlobal(aCx, aObject->GetParentObject()));
45792
0
  if (!global) {
45793
0
    return false;
45794
0
  }
45795
0
  MOZ_ASSERT(JS_IsGlobalObject(global));
45796
0
  MOZ_ASSERT(JS::ObjectIsNotGray(global));
45797
0
45798
0
  // That might have ended up wrapping us already, due to the wonders
45799
0
  // of XBL.  Check for that, and bail out as needed.
45800
0
  aReflector.set(aCache->GetWrapper());
45801
0
  if (aReflector) {
45802
#ifdef DEBUG
45803
    AssertReflectorHasGivenProto(aCx, aReflector, aGivenProto);
45804
#endif // DEBUG
45805
    return true;
45806
0
  }
45807
0
45808
0
  JSAutoRealm ar(aCx, global);
45809
0
  JS::Handle<JSObject*> canonicalProto = GetProtoObjectHandle(aCx);
45810
0
  if (!canonicalProto) {
45811
0
    return false;
45812
0
  }
45813
0
  JS::Rooted<JSObject*> proto(aCx);
45814
0
  if (aGivenProto) {
45815
0
    proto = aGivenProto;
45816
0
    // Unfortunately, while aGivenProto was in the compartment of aCx
45817
0
    // coming in, we changed compartments to that of "parent" so may need
45818
0
    // to wrap the proto here.
45819
0
    if (js::GetContextCompartment(aCx) != js::GetObjectCompartment(proto)) {
45820
0
      if (!JS_WrapObject(aCx, &proto)) {
45821
0
        return false;
45822
0
      }
45823
0
    }
45824
0
  } else {
45825
0
    proto = canonicalProto;
45826
0
  }
45827
0
45828
0
  BindingJSObjectCreator<nsDOMCSSDeclaration> creator(aCx);
45829
0
  creator.CreateProxyObject(aCx, &sClass.mBase, DOMProxyHandler::getInstance(),
45830
0
                            proto, aObject, JS::UndefinedHandleValue, aReflector);
45831
0
  if (!aReflector) {
45832
0
    return false;
45833
0
  }
45834
0
45835
0
  aCache->SetWrapper(aReflector);
45836
0
  creator.InitializationSucceeded();
45837
0
45838
0
  MOZ_ASSERT(aCache->GetWrapperPreserveColor() &&
45839
0
             aCache->GetWrapperPreserveColor() == aReflector);
45840
0
  // If proto != canonicalProto, we have to preserve our wrapper;
45841
0
  // otherwise we won't be able to properly recreate it later, since
45842
0
  // we won't know what proto to use.  Note that we don't check
45843
0
  // aGivenProto here, since it's entirely possible (and even
45844
0
  // somewhat common) to have a non-null aGivenProto which is the
45845
0
  // same as canonicalProto.
45846
0
  if (proto != canonicalProto) {
45847
0
    PreserveWrapper(aObject);
45848
0
  }
45849
0
45850
0
  return true;
45851
0
}
45852
45853
static bool
45854
ResolveOwnProperty(JSContext* cx, JS::Handle<JSObject*> wrapper, JS::Handle<JSObject*> obj, JS::Handle<jsid> id, JS::MutableHandle<JS::PropertyDescriptor> desc)
45855
0
{
45856
0
  return js::GetProxyHandler(obj)->getOwnPropertyDescriptor(cx, wrapper, id, desc);
45857
0
}
45858
45859
static bool
45860
EnumerateOwnProperties(JSContext* cx, JS::Handle<JSObject*> wrapper, JS::Handle<JSObject*> obj, JS::AutoIdVector& props)
45861
0
{
45862
0
  return js::GetProxyHandler(obj)->ownPropertyKeys(cx, wrapper, props);
45863
0
}
45864
45865
const NativePropertyHooks sNativePropertyHooks[] = { {
45866
  ResolveOwnProperty,
45867
  EnumerateOwnProperties,
45868
  nullptr,
45869
  { sNativeProperties.Upcast(), nullptr },
45870
  prototypes::id::CSS2Properties,
45871
  constructors::id::CSS2Properties,
45872
  CSSStyleDeclaration_Binding::sNativePropertyHooks,
45873
  &DefaultXrayExpandoObjectClass
45874
} };
45875
45876
void
45877
CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal)
45878
0
{
45879
0
  JS::Handle<JSObject*> parentProto(CSSStyleDeclaration_Binding::GetProtoObjectHandle(aCx));
45880
0
  if (!parentProto) {
45881
0
    return;
45882
0
  }
45883
0
45884
0
  JS::Handle<JSObject*> constructorProto(CSSStyleDeclaration_Binding::GetConstructorObjectHandle(aCx));
45885
0
  if (!constructorProto) {
45886
0
    return;
45887
0
  }
45888
0
45889
0
  static bool sIdsInited = false;
45890
0
  if (!sIdsInited && NS_IsMainThread()) {
45891
0
    if (!InitIds(aCx, sNativeProperties.Upcast())) {
45892
0
      return;
45893
0
    }
45894
0
    sIdsInited = true;
45895
0
  }
45896
0
45897
0
  static bool sPrefCachesInited = false;
45898
0
  if (!sPrefCachesInited && NS_IsMainThread()) {
45899
0
    sPrefCachesInited = true;
45900
0
    Preferences::AddBoolVarCache(&sAttributes[1].disablers->enabled, "layout.css.box-decoration-break.enabled");
45901
0
    Preferences::AddBoolVarCache(&sAttributes[3].disablers->enabled, "layout.css.color-adjust.enabled");
45902
0
    Preferences::AddBoolVarCache(&sAttributes[5].disablers->enabled, "layout.css.column-span.enabled");
45903
0
    Preferences::AddBoolVarCache(&sAttributes[6].disablers->enabled, "layout.css.contain.enabled");
45904
0
    Preferences::AddBoolVarCache(&sAttributes[8].disablers->enabled, "layout.css.font-variations.enabled");
45905
0
    Preferences::AddBoolVarCache(&sAttributes[10].disablers->enabled, "layout.css.image-orientation.enabled");
45906
0
    Preferences::AddBoolVarCache(&sAttributes[12].disablers->enabled, "layout.css.initial-letter.enabled");
45907
0
    Preferences::AddBoolVarCache(&sAttributes[13].disablers->enabled, "layout.css.isolation.enabled");
45908
0
    Preferences::AddBoolVarCache(&sAttributes[15].disablers->enabled, "layout.css.mix-blend-mode.enabled");
45909
0
    Preferences::AddBoolVarCache(&sAttributes[17].disablers->enabled, "layout.css.osx-font-smoothing.enabled");
45910
0
    Preferences::AddBoolVarCache(&sAttributes[19].disablers->enabled, "layout.css.scroll-behavior.property-enabled");
45911
0
    Preferences::AddBoolVarCache(&sAttributes[20].disablers->enabled, "layout.css.scrollbar-width.enabled");
45912
0
    Preferences::AddBoolVarCache(&sAttributes[22].disablers->enabled, "layout.css.text-justify.enabled");
45913
0
    Preferences::AddBoolVarCache(&sAttributes[24].disablers->enabled, "layout.css.touch_action.enabled");
45914
0
    Preferences::AddBoolVarCache(&sAttributes[25].disablers->enabled, "svg.transform-box.enabled");
45915
0
    Preferences::AddBoolVarCache(&sAttributes[27].disablers->enabled, "layout.css.overflow-clip-box.enabled");
45916
0
    Preferences::AddBoolVarCache(&sAttributes[28].disablers->enabled, "layout.css.overscroll-behavior.enabled");
45917
0
    Preferences::AddBoolVarCache(&sAttributes[30].disablers->enabled, "layout.css.scroll-snap.enabled");
45918
0
    Preferences::AddBoolVarCache(&sAttributes[32].disablers->enabled, "layout.css.shape-outside.enabled");
45919
0
    Preferences::AddBoolVarCache(&sAttributes[34].disablers->enabled, "layout.css.background-blend-mode.enabled");
45920
0
    Preferences::AddBoolVarCache(&sAttributes[36].disablers->enabled, "layout.css.font-variations.enabled");
45921
0
    Preferences::AddBoolVarCache(&sAttributes[38].disablers->enabled, "layout.css.motion-path.enabled");
45922
0
    Preferences::AddBoolVarCache(&sAttributes[40].disablers->enabled, "layout.css.individual-transform.enabled");
45923
0
    Preferences::AddBoolVarCache(&sAttributes[41].disablers->enabled, "layout.css.scroll-snap.enabled");
45924
0
    Preferences::AddBoolVarCache(&sAttributes[42].disablers->enabled, "layout.css.scrollbar-colors.enabled");
45925
0
    Preferences::AddBoolVarCache(&sAttributes[43].disablers->enabled, "layout.css.shape-outside.enabled");
45926
0
    Preferences::AddBoolVarCache(&sAttributes[45].disablers->enabled, "layout.css.individual-transform.enabled");
45927
0
    Preferences::AddBoolVarCache(&sAttributes[47].disablers->enabled, "layout.css.scroll-snap.enabled");
45928
0
    Preferences::AddBoolVarCache(&sAttributes[49].disablers->enabled, "layout.css.scroll-snap.enabled");
45929
0
    Preferences::AddBoolVarCache(&sAttributes[51].disablers->enabled, "layout.css.shape-outside.enabled");
45930
0
    Preferences::AddBoolVarCache(&sAttributes[53].disablers->enabled, "layout.css.prefixes.webkit");
45931
0
    Preferences::AddBoolVarCache(&sAttributes[55].disablers->enabled, "layout.css.prefixes.webkit");
45932
0
    Preferences::AddBoolVarCache(&sAttributes[57].disablers->enabled, "layout.css.overflow-clip-box.enabled");
45933
0
    Preferences::AddBoolVarCache(&sAttributes[59].disablers->enabled, "layout.css.scroll-snap.enabled");
45934
0
    Preferences::AddBoolVarCache(&sAttributes[60].disablers->enabled, "layout.css.overscroll-behavior.enabled");
45935
0
    Preferences::AddBoolVarCache(&sAttributes[62].disablers->enabled, "layout.css.prefixes.webkit");
45936
0
    Preferences::AddBoolVarCache(&sAttributes[64].disablers->enabled, "layout.css.prefixes.webkit");
45937
0
    Preferences::AddBoolVarCache(&sAttributes[66].disablers->enabled, "layout.css.prefixes.webkit");
45938
0
    Preferences::AddBoolVarCache(&sAttributes[67].disablers->enabled, "layout.css.prefixes.transitions");
45939
0
    Preferences::AddBoolVarCache(&sAttributes[68].disablers->enabled, "layout.css.prefixes.webkit");
45940
0
    Preferences::AddBoolVarCache(&sAttributes[69].disablers->enabled, "layout.css.prefixes.transitions");
45941
0
    Preferences::AddBoolVarCache(&sAttributes[70].disablers->enabled, "layout.css.prefixes.webkit");
45942
0
    Preferences::AddBoolVarCache(&sAttributes[71].disablers->enabled, "layout.css.prefixes.transitions");
45943
0
    Preferences::AddBoolVarCache(&sAttributes[72].disablers->enabled, "layout.css.prefixes.webkit");
45944
0
    Preferences::AddBoolVarCache(&sAttributes[73].disablers->enabled, "layout.css.prefixes.transitions");
45945
0
    Preferences::AddBoolVarCache(&sAttributes[74].disablers->enabled, "layout.css.prefixes.webkit");
45946
0
    Preferences::AddBoolVarCache(&sAttributes[75].disablers->enabled, "layout.css.prefixes.animations");
45947
0
    Preferences::AddBoolVarCache(&sAttributes[76].disablers->enabled, "layout.css.prefixes.webkit");
45948
0
    Preferences::AddBoolVarCache(&sAttributes[77].disablers->enabled, "layout.css.prefixes.animations");
45949
0
    Preferences::AddBoolVarCache(&sAttributes[78].disablers->enabled, "layout.css.prefixes.webkit");
45950
0
    Preferences::AddBoolVarCache(&sAttributes[79].disablers->enabled, "layout.css.prefixes.animations");
45951
0
    Preferences::AddBoolVarCache(&sAttributes[80].disablers->enabled, "layout.css.prefixes.webkit");
45952
0
    Preferences::AddBoolVarCache(&sAttributes[81].disablers->enabled, "layout.css.prefixes.animations");
45953
0
    Preferences::AddBoolVarCache(&sAttributes[82].disablers->enabled, "layout.css.prefixes.webkit");
45954
0
    Preferences::AddBoolVarCache(&sAttributes[83].disablers->enabled, "layout.css.prefixes.animations");
45955
0
    Preferences::AddBoolVarCache(&sAttributes[84].disablers->enabled, "layout.css.prefixes.webkit");
45956
0
    Preferences::AddBoolVarCache(&sAttributes[85].disablers->enabled, "layout.css.prefixes.animations");
45957
0
    Preferences::AddBoolVarCache(&sAttributes[86].disablers->enabled, "layout.css.prefixes.webkit");
45958
0
    Preferences::AddBoolVarCache(&sAttributes[87].disablers->enabled, "layout.css.prefixes.animations");
45959
0
    Preferences::AddBoolVarCache(&sAttributes[88].disablers->enabled, "layout.css.prefixes.webkit");
45960
0
    Preferences::AddBoolVarCache(&sAttributes[89].disablers->enabled, "layout.css.prefixes.animations");
45961
0
    Preferences::AddBoolVarCache(&sAttributes[90].disablers->enabled, "layout.css.prefixes.webkit");
45962
0
    Preferences::AddBoolVarCache(&sAttributes[91].disablers->enabled, "layout.css.prefixes.transforms");
45963
0
    Preferences::AddBoolVarCache(&sAttributes[92].disablers->enabled, "layout.css.prefixes.webkit");
45964
0
    Preferences::AddBoolVarCache(&sAttributes[93].disablers->enabled, "layout.css.prefixes.transforms");
45965
0
    Preferences::AddBoolVarCache(&sAttributes[94].disablers->enabled, "layout.css.prefixes.webkit");
45966
0
    Preferences::AddBoolVarCache(&sAttributes[95].disablers->enabled, "layout.css.prefixes.transforms");
45967
0
    Preferences::AddBoolVarCache(&sAttributes[96].disablers->enabled, "layout.css.prefixes.webkit");
45968
0
    Preferences::AddBoolVarCache(&sAttributes[97].disablers->enabled, "layout.css.prefixes.transforms");
45969
0
    Preferences::AddBoolVarCache(&sAttributes[98].disablers->enabled, "layout.css.prefixes.webkit");
45970
0
    Preferences::AddBoolVarCache(&sAttributes[99].disablers->enabled, "layout.css.prefixes.transforms");
45971
0
    Preferences::AddBoolVarCache(&sAttributes[100].disablers->enabled, "layout.css.prefixes.webkit");
45972
0
    Preferences::AddBoolVarCache(&sAttributes[101].disablers->enabled, "layout.css.prefixes.transforms");
45973
0
    Preferences::AddBoolVarCache(&sAttributes[102].disablers->enabled, "layout.css.prefixes.webkit");
45974
0
    Preferences::AddBoolVarCache(&sAttributes[103].disablers->enabled, "layout.css.webkit-appearance.enabled");
45975
0
    Preferences::AddBoolVarCache(&sAttributes[105].disablers->enabled, "layout.css.column-span.enabled");
45976
0
    Preferences::AddBoolVarCache(&sAttributes[107].disablers->enabled, "layout.css.prefixes.webkit");
45977
0
    Preferences::AddBoolVarCache(&sAttributes[108].disablers->enabled, "layout.css.prefixes.font-features");
45978
0
    Preferences::AddBoolVarCache(&sAttributes[110].disablers->enabled, "layout.css.prefixes.webkit");
45979
0
    Preferences::AddBoolVarCache(&sAttributes[112].disablers->enabled, "layout.css.offset-logical-properties.enabled");
45980
0
    Preferences::AddBoolVarCache(&sAttributes[113].disablers->enabled, "layout.css.prefixes.webkit");
45981
0
    Preferences::AddBoolVarCache(&sAttributes[114].disablers->enabled, "layout.css.prefixes.box-sizing");
45982
0
    Preferences::AddBoolVarCache(&sAttributes[115].disablers->enabled, "layout.css.prefixes.webkit");
45983
0
    Preferences::AddBoolVarCache(&sAttributes[117].disablers->enabled, "layout.css.prefixes.webkit");
45984
0
    Preferences::AddBoolVarCache(&sAttributes[119].disablers->enabled, "layout.css.prefixes.webkit");
45985
0
    Preferences::AddBoolVarCache(&sAttributes[120].disablers->enabled, "layout.css.prefixes.border-image");
45986
0
    Preferences::AddBoolVarCache(&sAttributes[121].disablers->enabled, "layout.css.prefixes.webkit");
45987
0
    Preferences::AddBoolVarCache(&sAttributes[122].disablers->enabled, "layout.css.prefixes.transitions");
45988
0
    Preferences::AddBoolVarCache(&sAttributes[123].disablers->enabled, "layout.css.prefixes.webkit");
45989
0
    Preferences::AddBoolVarCache(&sAttributes[124].disablers->enabled, "layout.css.prefixes.animations");
45990
0
    Preferences::AddBoolVarCache(&sAttributes[125].disablers->enabled, "layout.css.prefixes.webkit");
45991
0
    Preferences::AddBoolVarCache(&sAttributes[127].disablers->enabled, "layout.css.prefixes.webkit");
45992
0
    Preferences::AddBoolVarCache(&sAttributes[129].disablers->enabled, "layout.css.prefixes.webkit");
45993
0
  }
45994
0
45995
0
  JS::Heap<JSObject*>* protoCache = &aProtoAndIfaceCache.EntrySlotOrCreate(prototypes::id::CSS2Properties);
45996
0
  JS::Heap<JSObject*>* interfaceCache = &aProtoAndIfaceCache.EntrySlotOrCreate(constructors::id::CSS2Properties);
45997
0
  dom::CreateInterfaceObjects(aCx, aGlobal, parentProto,
45998
0
                              &sPrototypeClass.mBase, protoCache,
45999
0
                              nullptr,
46000
0
                              constructorProto, &sInterfaceObjectClass.mBase, 0, nullptr,
46001
0
                              interfaceCache,
46002
0
                              sNativeProperties.Upcast(),
46003
0
                              nullptr,
46004
0
                              "CSS2Properties", aDefineOnGlobal,
46005
0
                              nullptr,
46006
0
                              false);
46007
0
}
46008
46009
JSObject*
46010
GetConstructorObject(JSContext* aCx)
46011
0
{
46012
0
  return GetConstructorObjectHandle(aCx);
46013
0
}
46014
46015
} // namespace CSS2Properties_Binding
46016
46017
46018
46019
} // namespace dom
46020
} // namespace mozilla