Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dom/bindings/KeyEventBinding.cpp
Line
Count
Source (jump to first uncovered line)
1
/* THIS FILE IS AUTOGENERATED FROM KeyEvent.webidl BY Codegen.py - DO NOT EDIT */
2
3
#include "KeyEventBinding.h"
4
#include "KeyboardEventBinding.h"
5
#include "WrapperFactory.h"
6
#include "mozilla/OwningNonNull.h"
7
#include "mozilla/dom/BindingUtils.h"
8
#include "mozilla/dom/DOMJSClass.h"
9
#include "mozilla/dom/NonRefcountedDOMObject.h"
10
#include "mozilla/dom/Nullable.h"
11
#include "mozilla/dom/PrimitiveConversions.h"
12
#include "mozilla/dom/XrayExpandoClass.h"
13
#include "nsGlobalWindow.h"
14
15
namespace mozilla {
16
namespace dom {
17
18
namespace binding_detail {}; // Just to make sure it's known as a namespace
19
using namespace mozilla::dom::binding_detail;
20
21
22
namespace KeyEvent_Binding {
23
24
// We deliberately use brace-elision to make Visual Studio produce better initalization code.
25
#if defined(__clang__)
26
#pragma clang diagnostic push
27
#pragma clang diagnostic ignored "-Wmissing-braces"
28
#endif
29
static const ConstantSpec sConstants_specs[] = {
30
  { "DOM_VK_CANCEL", JS::NumberValue(3U) },
31
  { "DOM_VK_HELP", JS::NumberValue(6U) },
32
  { "DOM_VK_BACK_SPACE", JS::NumberValue(8U) },
33
  { "DOM_VK_TAB", JS::NumberValue(9U) },
34
  { "DOM_VK_CLEAR", JS::NumberValue(12U) },
35
  { "DOM_VK_RETURN", JS::NumberValue(13U) },
36
  { "DOM_VK_SHIFT", JS::NumberValue(16U) },
37
  { "DOM_VK_CONTROL", JS::NumberValue(17U) },
38
  { "DOM_VK_ALT", JS::NumberValue(18U) },
39
  { "DOM_VK_PAUSE", JS::NumberValue(19U) },
40
  { "DOM_VK_CAPS_LOCK", JS::NumberValue(20U) },
41
  { "DOM_VK_KANA", JS::NumberValue(21U) },
42
  { "DOM_VK_HANGUL", JS::NumberValue(21U) },
43
  { "DOM_VK_EISU", JS::NumberValue(22U) },
44
  { "DOM_VK_JUNJA", JS::NumberValue(23U) },
45
  { "DOM_VK_FINAL", JS::NumberValue(24U) },
46
  { "DOM_VK_HANJA", JS::NumberValue(25U) },
47
  { "DOM_VK_KANJI", JS::NumberValue(25U) },
48
  { "DOM_VK_ESCAPE", JS::NumberValue(27U) },
49
  { "DOM_VK_CONVERT", JS::NumberValue(28U) },
50
  { "DOM_VK_NONCONVERT", JS::NumberValue(29U) },
51
  { "DOM_VK_ACCEPT", JS::NumberValue(30U) },
52
  { "DOM_VK_MODECHANGE", JS::NumberValue(31U) },
53
  { "DOM_VK_SPACE", JS::NumberValue(32U) },
54
  { "DOM_VK_PAGE_UP", JS::NumberValue(33U) },
55
  { "DOM_VK_PAGE_DOWN", JS::NumberValue(34U) },
56
  { "DOM_VK_END", JS::NumberValue(35U) },
57
  { "DOM_VK_HOME", JS::NumberValue(36U) },
58
  { "DOM_VK_LEFT", JS::NumberValue(37U) },
59
  { "DOM_VK_UP", JS::NumberValue(38U) },
60
  { "DOM_VK_RIGHT", JS::NumberValue(39U) },
61
  { "DOM_VK_DOWN", JS::NumberValue(40U) },
62
  { "DOM_VK_SELECT", JS::NumberValue(41U) },
63
  { "DOM_VK_PRINT", JS::NumberValue(42U) },
64
  { "DOM_VK_EXECUTE", JS::NumberValue(43U) },
65
  { "DOM_VK_PRINTSCREEN", JS::NumberValue(44U) },
66
  { "DOM_VK_INSERT", JS::NumberValue(45U) },
67
  { "DOM_VK_DELETE", JS::NumberValue(46U) },
68
  { "DOM_VK_0", JS::NumberValue(48U) },
69
  { "DOM_VK_1", JS::NumberValue(49U) },
70
  { "DOM_VK_2", JS::NumberValue(50U) },
71
  { "DOM_VK_3", JS::NumberValue(51U) },
72
  { "DOM_VK_4", JS::NumberValue(52U) },
73
  { "DOM_VK_5", JS::NumberValue(53U) },
74
  { "DOM_VK_6", JS::NumberValue(54U) },
75
  { "DOM_VK_7", JS::NumberValue(55U) },
76
  { "DOM_VK_8", JS::NumberValue(56U) },
77
  { "DOM_VK_9", JS::NumberValue(57U) },
78
  { "DOM_VK_COLON", JS::NumberValue(58U) },
79
  { "DOM_VK_SEMICOLON", JS::NumberValue(59U) },
80
  { "DOM_VK_LESS_THAN", JS::NumberValue(60U) },
81
  { "DOM_VK_EQUALS", JS::NumberValue(61U) },
82
  { "DOM_VK_GREATER_THAN", JS::NumberValue(62U) },
83
  { "DOM_VK_QUESTION_MARK", JS::NumberValue(63U) },
84
  { "DOM_VK_AT", JS::NumberValue(64U) },
85
  { "DOM_VK_A", JS::NumberValue(65U) },
86
  { "DOM_VK_B", JS::NumberValue(66U) },
87
  { "DOM_VK_C", JS::NumberValue(67U) },
88
  { "DOM_VK_D", JS::NumberValue(68U) },
89
  { "DOM_VK_E", JS::NumberValue(69U) },
90
  { "DOM_VK_F", JS::NumberValue(70U) },
91
  { "DOM_VK_G", JS::NumberValue(71U) },
92
  { "DOM_VK_H", JS::NumberValue(72U) },
93
  { "DOM_VK_I", JS::NumberValue(73U) },
94
  { "DOM_VK_J", JS::NumberValue(74U) },
95
  { "DOM_VK_K", JS::NumberValue(75U) },
96
  { "DOM_VK_L", JS::NumberValue(76U) },
97
  { "DOM_VK_M", JS::NumberValue(77U) },
98
  { "DOM_VK_N", JS::NumberValue(78U) },
99
  { "DOM_VK_O", JS::NumberValue(79U) },
100
  { "DOM_VK_P", JS::NumberValue(80U) },
101
  { "DOM_VK_Q", JS::NumberValue(81U) },
102
  { "DOM_VK_R", JS::NumberValue(82U) },
103
  { "DOM_VK_S", JS::NumberValue(83U) },
104
  { "DOM_VK_T", JS::NumberValue(84U) },
105
  { "DOM_VK_U", JS::NumberValue(85U) },
106
  { "DOM_VK_V", JS::NumberValue(86U) },
107
  { "DOM_VK_W", JS::NumberValue(87U) },
108
  { "DOM_VK_X", JS::NumberValue(88U) },
109
  { "DOM_VK_Y", JS::NumberValue(89U) },
110
  { "DOM_VK_Z", JS::NumberValue(90U) },
111
  { "DOM_VK_WIN", JS::NumberValue(91U) },
112
  { "DOM_VK_CONTEXT_MENU", JS::NumberValue(93U) },
113
  { "DOM_VK_SLEEP", JS::NumberValue(95U) },
114
  { "DOM_VK_NUMPAD0", JS::NumberValue(96U) },
115
  { "DOM_VK_NUMPAD1", JS::NumberValue(97U) },
116
  { "DOM_VK_NUMPAD2", JS::NumberValue(98U) },
117
  { "DOM_VK_NUMPAD3", JS::NumberValue(99U) },
118
  { "DOM_VK_NUMPAD4", JS::NumberValue(100U) },
119
  { "DOM_VK_NUMPAD5", JS::NumberValue(101U) },
120
  { "DOM_VK_NUMPAD6", JS::NumberValue(102U) },
121
  { "DOM_VK_NUMPAD7", JS::NumberValue(103U) },
122
  { "DOM_VK_NUMPAD8", JS::NumberValue(104U) },
123
  { "DOM_VK_NUMPAD9", JS::NumberValue(105U) },
124
  { "DOM_VK_MULTIPLY", JS::NumberValue(106U) },
125
  { "DOM_VK_ADD", JS::NumberValue(107U) },
126
  { "DOM_VK_SEPARATOR", JS::NumberValue(108U) },
127
  { "DOM_VK_SUBTRACT", JS::NumberValue(109U) },
128
  { "DOM_VK_DECIMAL", JS::NumberValue(110U) },
129
  { "DOM_VK_DIVIDE", JS::NumberValue(111U) },
130
  { "DOM_VK_F1", JS::NumberValue(112U) },
131
  { "DOM_VK_F2", JS::NumberValue(113U) },
132
  { "DOM_VK_F3", JS::NumberValue(114U) },
133
  { "DOM_VK_F4", JS::NumberValue(115U) },
134
  { "DOM_VK_F5", JS::NumberValue(116U) },
135
  { "DOM_VK_F6", JS::NumberValue(117U) },
136
  { "DOM_VK_F7", JS::NumberValue(118U) },
137
  { "DOM_VK_F8", JS::NumberValue(119U) },
138
  { "DOM_VK_F9", JS::NumberValue(120U) },
139
  { "DOM_VK_F10", JS::NumberValue(121U) },
140
  { "DOM_VK_F11", JS::NumberValue(122U) },
141
  { "DOM_VK_F12", JS::NumberValue(123U) },
142
  { "DOM_VK_F13", JS::NumberValue(124U) },
143
  { "DOM_VK_F14", JS::NumberValue(125U) },
144
  { "DOM_VK_F15", JS::NumberValue(126U) },
145
  { "DOM_VK_F16", JS::NumberValue(127U) },
146
  { "DOM_VK_F17", JS::NumberValue(128U) },
147
  { "DOM_VK_F18", JS::NumberValue(129U) },
148
  { "DOM_VK_F19", JS::NumberValue(130U) },
149
  { "DOM_VK_F20", JS::NumberValue(131U) },
150
  { "DOM_VK_F21", JS::NumberValue(132U) },
151
  { "DOM_VK_F22", JS::NumberValue(133U) },
152
  { "DOM_VK_F23", JS::NumberValue(134U) },
153
  { "DOM_VK_F24", JS::NumberValue(135U) },
154
  { "DOM_VK_NUM_LOCK", JS::NumberValue(144U) },
155
  { "DOM_VK_SCROLL_LOCK", JS::NumberValue(145U) },
156
  { "DOM_VK_WIN_OEM_FJ_JISHO", JS::NumberValue(146U) },
157
  { "DOM_VK_WIN_OEM_FJ_MASSHOU", JS::NumberValue(147U) },
158
  { "DOM_VK_WIN_OEM_FJ_TOUROKU", JS::NumberValue(148U) },
159
  { "DOM_VK_WIN_OEM_FJ_LOYA", JS::NumberValue(149U) },
160
  { "DOM_VK_WIN_OEM_FJ_ROYA", JS::NumberValue(150U) },
161
  { "DOM_VK_CIRCUMFLEX", JS::NumberValue(160U) },
162
  { "DOM_VK_EXCLAMATION", JS::NumberValue(161U) },
163
  { "DOM_VK_DOUBLE_QUOTE", JS::NumberValue(162U) },
164
  { "DOM_VK_HASH", JS::NumberValue(163U) },
165
  { "DOM_VK_DOLLAR", JS::NumberValue(164U) },
166
  { "DOM_VK_PERCENT", JS::NumberValue(165U) },
167
  { "DOM_VK_AMPERSAND", JS::NumberValue(166U) },
168
  { "DOM_VK_UNDERSCORE", JS::NumberValue(167U) },
169
  { "DOM_VK_OPEN_PAREN", JS::NumberValue(168U) },
170
  { "DOM_VK_CLOSE_PAREN", JS::NumberValue(169U) },
171
  { "DOM_VK_ASTERISK", JS::NumberValue(170U) },
172
  { "DOM_VK_PLUS", JS::NumberValue(171U) },
173
  { "DOM_VK_PIPE", JS::NumberValue(172U) },
174
  { "DOM_VK_HYPHEN_MINUS", JS::NumberValue(173U) },
175
  { "DOM_VK_OPEN_CURLY_BRACKET", JS::NumberValue(174U) },
176
  { "DOM_VK_CLOSE_CURLY_BRACKET", JS::NumberValue(175U) },
177
  { "DOM_VK_TILDE", JS::NumberValue(176U) },
178
  { "DOM_VK_VOLUME_MUTE", JS::NumberValue(181U) },
179
  { "DOM_VK_VOLUME_DOWN", JS::NumberValue(182U) },
180
  { "DOM_VK_VOLUME_UP", JS::NumberValue(183U) },
181
  { "DOM_VK_COMMA", JS::NumberValue(188U) },
182
  { "DOM_VK_PERIOD", JS::NumberValue(190U) },
183
  { "DOM_VK_SLASH", JS::NumberValue(191U) },
184
  { "DOM_VK_BACK_QUOTE", JS::NumberValue(192U) },
185
  { "DOM_VK_OPEN_BRACKET", JS::NumberValue(219U) },
186
  { "DOM_VK_BACK_SLASH", JS::NumberValue(220U) },
187
  { "DOM_VK_CLOSE_BRACKET", JS::NumberValue(221U) },
188
  { "DOM_VK_QUOTE", JS::NumberValue(222U) },
189
  { "DOM_VK_META", JS::NumberValue(224U) },
190
  { "DOM_VK_ALTGR", JS::NumberValue(225U) },
191
  { "DOM_VK_WIN_ICO_HELP", JS::NumberValue(227U) },
192
  { "DOM_VK_WIN_ICO_00", JS::NumberValue(228U) },
193
  { "DOM_VK_PROCESSKEY", JS::NumberValue(229U) },
194
  { "DOM_VK_WIN_ICO_CLEAR", JS::NumberValue(230U) },
195
  { "DOM_VK_WIN_OEM_RESET", JS::NumberValue(233U) },
196
  { "DOM_VK_WIN_OEM_JUMP", JS::NumberValue(234U) },
197
  { "DOM_VK_WIN_OEM_PA1", JS::NumberValue(235U) },
198
  { "DOM_VK_WIN_OEM_PA2", JS::NumberValue(236U) },
199
  { "DOM_VK_WIN_OEM_PA3", JS::NumberValue(237U) },
200
  { "DOM_VK_WIN_OEM_WSCTRL", JS::NumberValue(238U) },
201
  { "DOM_VK_WIN_OEM_CUSEL", JS::NumberValue(239U) },
202
  { "DOM_VK_WIN_OEM_ATTN", JS::NumberValue(240U) },
203
  { "DOM_VK_WIN_OEM_FINISH", JS::NumberValue(241U) },
204
  { "DOM_VK_WIN_OEM_COPY", JS::NumberValue(242U) },
205
  { "DOM_VK_WIN_OEM_AUTO", JS::NumberValue(243U) },
206
  { "DOM_VK_WIN_OEM_ENLW", JS::NumberValue(244U) },
207
  { "DOM_VK_WIN_OEM_BACKTAB", JS::NumberValue(245U) },
208
  { "DOM_VK_ATTN", JS::NumberValue(246U) },
209
  { "DOM_VK_CRSEL", JS::NumberValue(247U) },
210
  { "DOM_VK_EXSEL", JS::NumberValue(248U) },
211
  { "DOM_VK_EREOF", JS::NumberValue(249U) },
212
  { "DOM_VK_PLAY", JS::NumberValue(250U) },
213
  { "DOM_VK_ZOOM", JS::NumberValue(251U) },
214
  { "DOM_VK_PA1", JS::NumberValue(253U) },
215
  { "DOM_VK_WIN_OEM_CLEAR", JS::NumberValue(254U) },
216
  { 0, JS::UndefinedValue() }
217
};
218
#if defined(__clang__)
219
#pragma clang diagnostic pop
220
#endif
221
222
223
static const Prefable<const ConstantSpec> sConstants[] = {
224
  { nullptr, &sConstants_specs[0] },
225
  { nullptr, nullptr }
226
};
227
228
static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
229
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
230
static_assert(186 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
231
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");
232
233
234
static uint16_t sNativeProperties_sortedPropertyIndices[186];
235
static PropertyInfo sNativeProperties_propertyInfos[186];
236
237
static const NativePropertiesN<1> sNativeProperties = {
238
  false, 0,
239
  false, 0,
240
  false, 0,
241
  false, 0,
242
  false, 0,
243
  false, 0,
244
  true,  0 /* sConstants */,
245
  -1,
246
  186,
247
  sNativeProperties_sortedPropertyIndices,
248
  {
249
    { sConstants, &sNativeProperties_propertyInfos[0] }
250
  }
251
};
252
static_assert(186 < 1ull << CHAR_BIT * sizeof(sNativeProperties.propertyInfoCount),
253
    "We have a property info count that is oversized");
254
255
static const DOMIfaceAndProtoJSClass sInterfaceObjectClass = {
256
  {
257
    "Function",
258
    JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_SLOTS_BASE),
259
    &sBoringInterfaceObjectClassClassOps,
260
    JS_NULL_CLASS_SPEC,
261
    JS_NULL_CLASS_EXT,
262
    &sInterfaceObjectClassObjectOps
263
  },
264
  eInterface,
265
  false,
266
  prototypes::id::_ID_Count,
267
  0,
268
  sNativePropertyHooks,
269
  "function KeyEvent() {\n    [native code]\n}",
270
  JS::GetRealmFunctionPrototype
271
};
272
273
const NativePropertyHooks sNativePropertyHooks[] = { {
274
  nullptr,
275
  nullptr,
276
  nullptr,
277
  { sNativeProperties.Upcast(), nullptr },
278
  prototypes::id::_ID_Count,
279
  constructors::id::KeyEvent,
280
  nullptr,
281
  &DefaultXrayExpandoObjectClass
282
} };
283
284
void
285
CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal)
286
0
{
287
0
  JS::Rooted<JSObject*> constructorProto(aCx, JS::GetRealmFunctionPrototype(aCx));
288
0
  if (!constructorProto) {
289
0
    return;
290
0
  }
291
0
292
0
  static bool sIdsInited = false;
293
0
  if (!sIdsInited && NS_IsMainThread()) {
294
0
    if (!InitIds(aCx, sNativeProperties.Upcast())) {
295
0
      return;
296
0
    }
297
0
    sIdsInited = true;
298
0
  }
299
0
300
0
  JS::Heap<JSObject*>* protoCache = nullptr;
301
0
  JS::Heap<JSObject*>* interfaceCache = &aProtoAndIfaceCache.EntrySlotOrCreate(constructors::id::KeyEvent);
302
0
  dom::CreateInterfaceObjects(aCx, aGlobal, nullptr,
303
0
                              nullptr, protoCache,
304
0
                              nullptr,
305
0
                              constructorProto, &sInterfaceObjectClass.mBase, 0, nullptr,
306
0
                              interfaceCache,
307
0
                              sNativeProperties.Upcast(),
308
0
                              nullptr,
309
0
                              "KeyEvent", aDefineOnGlobal,
310
0
                              nullptr,
311
0
                              false);
312
0
}
313
314
JSObject*
315
GetConstructorObject(JSContext* aCx)
316
0
{
317
0
  return GetConstructorObjectHandle(aCx);
318
0
}
319
320
} // namespace KeyEvent_Binding
321
322
323
324
} // namespace dom
325
} // namespace mozilla