V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
objects-definitions.h
1
// Copyright 2018 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_OBJECTS_DEFINITIONS_H_
6
#define V8_OBJECTS_DEFINITIONS_H_
7
8
#include "src/heap-symbols.h"
9
10
namespace
v8
{
11
12
namespace
internal {
13
14
// All Maps have a field instance_type containing a InstanceType.
15
// It describes the type of the instances.
16
//
17
// As an example, a JavaScript object is a heap object and its map
18
// instance_type is JS_OBJECT_TYPE.
19
//
20
// The names of the string instance types are intended to systematically
21
// mirror their encoding in the instance_type field of the map. The default
22
// encoding is considered TWO_BYTE. It is not mentioned in the name. ONE_BYTE
23
// encoding is mentioned explicitly in the name. Likewise, the default
24
// representation is considered sequential. It is not mentioned in the
25
// name. The other representations (e.g. CONS, EXTERNAL) are explicitly
26
// mentioned. Finally, the string is either a STRING_TYPE (if it is a normal
27
// string) or a INTERNALIZED_STRING_TYPE (if it is a internalized string).
28
//
29
// NOTE: The following things are some that depend on the string types having
30
// instance_types that are less than those of all other types:
31
// HeapObject::Size, HeapObject::IterateBody, the typeof operator, and
32
// Object::IsString.
33
//
34
// NOTE: Everything following JS_VALUE_TYPE is considered a
35
// JSObject for GC purposes. The first four entries here have typeof
36
// 'object', whereas JS_FUNCTION_TYPE has typeof 'function'.
37
//
38
// NOTE: List had to be split into two, because of conditional item(s) from
39
// INTL namespace. They can't just be appended to the end, because of the
40
// checks we do in tests (expecting JS_FUNCTION_TYPE to be last).
41
#define INSTANCE_TYPE_LIST_BEFORE_INTL(V) \
42
V(INTERNALIZED_STRING_TYPE) \
43
V(EXTERNAL_INTERNALIZED_STRING_TYPE) \
44
V(ONE_BYTE_INTERNALIZED_STRING_TYPE) \
45
V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \
46
V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \
47
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE) \
48
V(UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \
49
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \
50
V(STRING_TYPE) \
51
V(CONS_STRING_TYPE) \
52
V(EXTERNAL_STRING_TYPE) \
53
V(SLICED_STRING_TYPE) \
54
V(THIN_STRING_TYPE) \
55
V(ONE_BYTE_STRING_TYPE) \
56
V(CONS_ONE_BYTE_STRING_TYPE) \
57
V(EXTERNAL_ONE_BYTE_STRING_TYPE) \
58
V(SLICED_ONE_BYTE_STRING_TYPE) \
59
V(THIN_ONE_BYTE_STRING_TYPE) \
60
V(EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \
61
V(UNCACHED_EXTERNAL_STRING_TYPE) \
62
V(UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE) \
63
V(UNCACHED_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \
64
\
65
V(SYMBOL_TYPE) \
66
V(HEAP_NUMBER_TYPE) \
67
V(BIGINT_TYPE) \
68
V(ODDBALL_TYPE) \
69
\
70
V(MAP_TYPE) \
71
V(CODE_TYPE) \
72
V(MUTABLE_HEAP_NUMBER_TYPE) \
73
V(FOREIGN_TYPE) \
74
V(BYTE_ARRAY_TYPE) \
75
V(BYTECODE_ARRAY_TYPE) \
76
V(FREE_SPACE_TYPE) \
77
\
78
V(FIXED_INT8_ARRAY_TYPE) \
79
V(FIXED_UINT8_ARRAY_TYPE) \
80
V(FIXED_INT16_ARRAY_TYPE) \
81
V(FIXED_UINT16_ARRAY_TYPE) \
82
V(FIXED_INT32_ARRAY_TYPE) \
83
V(FIXED_UINT32_ARRAY_TYPE) \
84
V(FIXED_FLOAT32_ARRAY_TYPE) \
85
V(FIXED_FLOAT64_ARRAY_TYPE) \
86
V(FIXED_UINT8_CLAMPED_ARRAY_TYPE) \
87
V(FIXED_BIGINT64_ARRAY_TYPE) \
88
V(FIXED_BIGUINT64_ARRAY_TYPE) \
89
\
90
V(FIXED_DOUBLE_ARRAY_TYPE) \
91
V(FEEDBACK_METADATA_TYPE) \
92
V(FILLER_TYPE) \
93
\
94
V(ACCESS_CHECK_INFO_TYPE) \
95
V(ACCESSOR_INFO_TYPE) \
96
V(ACCESSOR_PAIR_TYPE) \
97
V(ALIASED_ARGUMENTS_ENTRY_TYPE) \
98
V(ALLOCATION_MEMENTO_TYPE) \
99
V(ASM_WASM_DATA_TYPE) \
100
V(ASYNC_GENERATOR_REQUEST_TYPE) \
101
V(DEBUG_INFO_TYPE) \
102
V(FUNCTION_TEMPLATE_INFO_TYPE) \
103
V(FUNCTION_TEMPLATE_RARE_DATA_TYPE) \
104
V(INTERCEPTOR_INFO_TYPE) \
105
V(INTERPRETER_DATA_TYPE) \
106
V(MODULE_INFO_ENTRY_TYPE) \
107
V(MODULE_TYPE) \
108
V(OBJECT_TEMPLATE_INFO_TYPE) \
109
V(PROMISE_CAPABILITY_TYPE) \
110
V(PROMISE_REACTION_TYPE) \
111
V(PROTOTYPE_INFO_TYPE) \
112
V(SCRIPT_TYPE) \
113
V(STACK_FRAME_INFO_TYPE) \
114
V(TUPLE2_TYPE) \
115
V(TUPLE3_TYPE) \
116
V(ARRAY_BOILERPLATE_DESCRIPTION_TYPE) \
117
V(WASM_DEBUG_INFO_TYPE) \
118
V(WASM_EXPORTED_FUNCTION_DATA_TYPE) \
119
\
120
V(CALLABLE_TASK_TYPE) \
121
V(CALLBACK_TASK_TYPE) \
122
V(PROMISE_FULFILL_REACTION_JOB_TASK_TYPE) \
123
V(PROMISE_REJECT_REACTION_JOB_TASK_TYPE) \
124
V(PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE) \
125
V(WEAK_FACTORY_CLEANUP_JOB_TASK_TYPE) \
126
\
127
V(ALLOCATION_SITE_TYPE) \
128
V(EMBEDDER_DATA_ARRAY_TYPE) \
129
\
130
V(FIXED_ARRAY_TYPE) \
131
V(OBJECT_BOILERPLATE_DESCRIPTION_TYPE) \
132
V(HASH_TABLE_TYPE) \
133
V(ORDERED_HASH_MAP_TYPE) \
134
V(ORDERED_HASH_SET_TYPE) \
135
V(ORDERED_NAME_DICTIONARY_TYPE) \
136
V(NAME_DICTIONARY_TYPE) \
137
V(GLOBAL_DICTIONARY_TYPE) \
138
V(NUMBER_DICTIONARY_TYPE) \
139
V(SIMPLE_NUMBER_DICTIONARY_TYPE) \
140
V(STRING_TABLE_TYPE) \
141
V(EPHEMERON_HASH_TABLE_TYPE) \
142
V(SCOPE_INFO_TYPE) \
143
V(SCRIPT_CONTEXT_TABLE_TYPE) \
144
\
145
V(AWAIT_CONTEXT_TYPE) \
146
V(BLOCK_CONTEXT_TYPE) \
147
V(CATCH_CONTEXT_TYPE) \
148
V(DEBUG_EVALUATE_CONTEXT_TYPE) \
149
V(EVAL_CONTEXT_TYPE) \
150
V(FUNCTION_CONTEXT_TYPE) \
151
V(MODULE_CONTEXT_TYPE) \
152
V(NATIVE_CONTEXT_TYPE) \
153
V(SCRIPT_CONTEXT_TYPE) \
154
V(WITH_CONTEXT_TYPE) \
155
\
156
V(WEAK_FIXED_ARRAY_TYPE) \
157
V(TRANSITION_ARRAY_TYPE) \
158
\
159
V(CALL_HANDLER_INFO_TYPE) \
160
V(CELL_TYPE) \
161
V(CODE_DATA_CONTAINER_TYPE) \
162
V(DESCRIPTOR_ARRAY_TYPE) \
163
V(FEEDBACK_CELL_TYPE) \
164
V(FEEDBACK_VECTOR_TYPE) \
165
V(LOAD_HANDLER_TYPE) \
166
V(PRE_PARSED_SCOPE_DATA_TYPE) \
167
V(PROPERTY_ARRAY_TYPE) \
168
V(PROPERTY_CELL_TYPE) \
169
V(SHARED_FUNCTION_INFO_TYPE) \
170
V(SMALL_ORDERED_HASH_MAP_TYPE) \
171
V(SMALL_ORDERED_HASH_SET_TYPE) \
172
V(SMALL_ORDERED_NAME_DICTIONARY_TYPE) \
173
V(STORE_HANDLER_TYPE) \
174
V(UNCOMPILED_DATA_WITHOUT_PRE_PARSED_SCOPE_TYPE) \
175
V(UNCOMPILED_DATA_WITH_PRE_PARSED_SCOPE_TYPE) \
176
V(WEAK_ARRAY_LIST_TYPE) \
177
\
178
V(JS_PROXY_TYPE) \
179
V(JS_GLOBAL_OBJECT_TYPE) \
180
V(JS_GLOBAL_PROXY_TYPE) \
181
V(JS_MODULE_NAMESPACE_TYPE) \
182
V(JS_SPECIAL_API_OBJECT_TYPE) \
183
V(JS_VALUE_TYPE) \
184
V(JS_API_OBJECT_TYPE) \
185
V(JS_OBJECT_TYPE) \
186
\
187
V(JS_ARGUMENTS_TYPE) \
188
V(JS_ARRAY_BUFFER_TYPE) \
189
V(JS_ARRAY_ITERATOR_TYPE) \
190
V(JS_ARRAY_TYPE) \
191
V(JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) \
192
V(JS_ASYNC_FUNCTION_OBJECT_TYPE) \
193
V(JS_ASYNC_GENERATOR_OBJECT_TYPE) \
194
V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
195
V(JS_DATE_TYPE) \
196
V(JS_ERROR_TYPE) \
197
V(JS_GENERATOR_OBJECT_TYPE) \
198
V(JS_MAP_TYPE) \
199
V(JS_MAP_KEY_ITERATOR_TYPE) \
200
V(JS_MAP_KEY_VALUE_ITERATOR_TYPE) \
201
V(JS_MAP_VALUE_ITERATOR_TYPE) \
202
V(JS_MESSAGE_OBJECT_TYPE) \
203
V(JS_PROMISE_TYPE) \
204
V(JS_REGEXP_TYPE) \
205
V(JS_REGEXP_STRING_ITERATOR_TYPE) \
206
V(JS_SET_TYPE) \
207
V(JS_SET_KEY_VALUE_ITERATOR_TYPE) \
208
V(JS_SET_VALUE_ITERATOR_TYPE) \
209
V(JS_STRING_ITERATOR_TYPE) \
210
V(JS_WEAK_CELL_TYPE) \
211
V(JS_WEAK_REF_TYPE) \
212
V(JS_WEAK_FACTORY_CLEANUP_ITERATOR_TYPE) \
213
V(JS_WEAK_FACTORY_TYPE) \
214
V(JS_WEAK_MAP_TYPE) \
215
V(JS_WEAK_SET_TYPE) \
216
V(JS_TYPED_ARRAY_TYPE) \
217
V(JS_DATA_VIEW_TYPE)
218
219
#define INSTANCE_TYPE_LIST_AFTER_INTL(V) \
220
V(WASM_EXCEPTION_TYPE) \
221
V(WASM_GLOBAL_TYPE) \
222
V(WASM_INSTANCE_TYPE) \
223
V(WASM_MEMORY_TYPE) \
224
V(WASM_MODULE_TYPE) \
225
V(WASM_TABLE_TYPE) \
226
V(JS_BOUND_FUNCTION_TYPE) \
227
V(JS_FUNCTION_TYPE)
228
229
#ifdef V8_INTL_SUPPORT
230
#define INSTANCE_TYPE_LIST(V) \
231
INSTANCE_TYPE_LIST_BEFORE_INTL(V) \
232
V(JS_INTL_V8_BREAK_ITERATOR_TYPE) \
233
V(JS_INTL_COLLATOR_TYPE) \
234
V(JS_INTL_DATE_TIME_FORMAT_TYPE) \
235
V(JS_INTL_LIST_FORMAT_TYPE) \
236
V(JS_INTL_LOCALE_TYPE) \
237
V(JS_INTL_NUMBER_FORMAT_TYPE) \
238
V(JS_INTL_PLURAL_RULES_TYPE) \
239
V(JS_INTL_RELATIVE_TIME_FORMAT_TYPE) \
240
V(JS_INTL_SEGMENT_ITERATOR_TYPE) \
241
V(JS_INTL_SEGMENTER_TYPE) \
242
INSTANCE_TYPE_LIST_AFTER_INTL(V)
243
#else
244
#define INSTANCE_TYPE_LIST(V) \
245
INSTANCE_TYPE_LIST_BEFORE_INTL(V) \
246
INSTANCE_TYPE_LIST_AFTER_INTL(V)
247
#endif // V8_INTL_SUPPORT
248
249
// Since string types are not consecutive, this macro is used to
250
// iterate over them.
251
#define STRING_TYPE_LIST(V) \
252
V(STRING_TYPE, kVariableSizeSentinel, string, String) \
253
V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \
254
OneByteString) \
255
V(CONS_STRING_TYPE, ConsString::kSize, cons_string, ConsString) \
256
V(CONS_ONE_BYTE_STRING_TYPE, ConsString::kSize, cons_one_byte_string, \
257
ConsOneByteString) \
258
V(SLICED_STRING_TYPE, SlicedString::kSize, sliced_string, SlicedString) \
259
V(SLICED_ONE_BYTE_STRING_TYPE, SlicedString::kSize, sliced_one_byte_string, \
260
SlicedOneByteString) \
261
V(EXTERNAL_STRING_TYPE, ExternalTwoByteString::kSize, external_string, \
262
ExternalString) \
263
V(EXTERNAL_ONE_BYTE_STRING_TYPE, ExternalOneByteString::kSize, \
264
external_one_byte_string, ExternalOneByteString) \
265
V(EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE, ExternalTwoByteString::kSize, \
266
external_string_with_one_byte_data, ExternalStringWithOneByteData) \
267
V(UNCACHED_EXTERNAL_STRING_TYPE, ExternalTwoByteString::kUncachedSize, \
268
uncached_external_string, UncachedExternalString) \
269
V(UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE, \
270
ExternalOneByteString::kUncachedSize, uncached_external_one_byte_string, \
271
UncachedExternalOneByteString) \
272
V(UNCACHED_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE, \
273
ExternalTwoByteString::kUncachedSize, \
274
uncached_external_string_with_one_byte_data, \
275
UncachedExternalStringWithOneByteData) \
276
\
277
V(INTERNALIZED_STRING_TYPE, kVariableSizeSentinel, internalized_string, \
278
InternalizedString) \
279
V(ONE_BYTE_INTERNALIZED_STRING_TYPE, kVariableSizeSentinel, \
280
one_byte_internalized_string, OneByteInternalizedString) \
281
V(EXTERNAL_INTERNALIZED_STRING_TYPE, ExternalTwoByteString::kSize, \
282
external_internalized_string, ExternalInternalizedString) \
283
V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE, ExternalOneByteString::kSize, \
284
external_one_byte_internalized_string, ExternalOneByteInternalizedString) \
285
V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE, \
286
ExternalTwoByteString::kSize, \
287
external_internalized_string_with_one_byte_data, \
288
ExternalInternalizedStringWithOneByteData) \
289
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE, \
290
ExternalTwoByteString::kUncachedSize, \
291
uncached_external_internalized_string, UncachedExternalInternalizedString) \
292
V(UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE, \
293
ExternalOneByteString::kUncachedSize, \
294
uncached_external_one_byte_internalized_string, \
295
UncachedExternalOneByteInternalizedString) \
296
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE, \
297
ExternalTwoByteString::kUncachedSize, \
298
uncached_external_internalized_string_with_one_byte_data, \
299
UncachedExternalInternalizedStringWithOneByteData) \
300
V(THIN_STRING_TYPE, ThinString::kSize, thin_string, ThinString) \
301
V(THIN_ONE_BYTE_STRING_TYPE, ThinString::kSize, thin_one_byte_string, \
302
ThinOneByteString)
303
304
// A struct is a simple object a set of object-valued fields. Including an
305
// object type in this causes the compiler to generate most of the boilerplate
306
// code for the class including allocation and garbage collection routines,
307
// casts and predicates. All you need to define is the class, methods and
308
// object verification routines. Easy, no?
309
//
310
// Note that for subtle reasons related to the ordering or numerical values of
311
// type tags, elements in this list have to be added to the INSTANCE_TYPE_LIST
312
// manually.
313
#define STRUCT_LIST_GENERATOR(V, _) \
314
V(_, ACCESS_CHECK_INFO_TYPE, AccessCheckInfo, access_check_info) \
315
V(_, ACCESSOR_INFO_TYPE, AccessorInfo, accessor_info) \
316
V(_, ACCESSOR_PAIR_TYPE, AccessorPair, accessor_pair) \
317
V(_, ALIASED_ARGUMENTS_ENTRY_TYPE, AliasedArgumentsEntry, \
318
aliased_arguments_entry) \
319
V(_, ALLOCATION_MEMENTO_TYPE, AllocationMemento, allocation_memento) \
320
V(_, ASM_WASM_DATA_TYPE, AsmWasmData, asm_wasm_data) \
321
V(_, ASYNC_GENERATOR_REQUEST_TYPE, AsyncGeneratorRequest, \
322
async_generator_request) \
323
V(_, DEBUG_INFO_TYPE, DebugInfo, debug_info) \
324
V(_, FUNCTION_TEMPLATE_INFO_TYPE, FunctionTemplateInfo, \
325
function_template_info) \
326
V(_, FUNCTION_TEMPLATE_RARE_DATA_TYPE, FunctionTemplateRareData, \
327
function_template_rare_data) \
328
V(_, INTERCEPTOR_INFO_TYPE, InterceptorInfo, interceptor_info) \
329
V(_, INTERPRETER_DATA_TYPE, InterpreterData, interpreter_data) \
330
V(_, MODULE_INFO_ENTRY_TYPE, ModuleInfoEntry, module_info_entry) \
331
V(_, MODULE_TYPE, Module, module) \
332
V(_, OBJECT_TEMPLATE_INFO_TYPE, ObjectTemplateInfo, object_template_info) \
333
V(_, PROMISE_CAPABILITY_TYPE, PromiseCapability, promise_capability) \
334
V(_, PROMISE_REACTION_TYPE, PromiseReaction, promise_reaction) \
335
V(_, PROTOTYPE_INFO_TYPE, PrototypeInfo, prototype_info) \
336
V(_, SCRIPT_TYPE, Script, script) \
337
V(_, STACK_FRAME_INFO_TYPE, StackFrameInfo, stack_frame_info) \
338
V(_, TUPLE2_TYPE, Tuple2, tuple2) \
339
V(_, TUPLE3_TYPE, Tuple3, tuple3) \
340
V(_, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, ArrayBoilerplateDescription, \
341
array_boilerplate_description) \
342
V(_, WASM_DEBUG_INFO_TYPE, WasmDebugInfo, wasm_debug_info) \
343
V(_, WASM_EXPORTED_FUNCTION_DATA_TYPE, WasmExportedFunctionData, \
344
wasm_exported_function_data) \
345
V(_, CALLABLE_TASK_TYPE, CallableTask, callable_task) \
346
V(_, CALLBACK_TASK_TYPE, CallbackTask, callback_task) \
347
V(_, PROMISE_FULFILL_REACTION_JOB_TASK_TYPE, PromiseFulfillReactionJobTask, \
348
promise_fulfill_reaction_job_task) \
349
V(_, PROMISE_REJECT_REACTION_JOB_TASK_TYPE, PromiseRejectReactionJobTask, \
350
promise_reject_reaction_job_task) \
351
V(_, PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE, PromiseResolveThenableJobTask, \
352
promise_resolve_thenable_job_task) \
353
V(_, WEAK_FACTORY_CLEANUP_JOB_TASK_TYPE, WeakFactoryCleanupJobTask, \
354
weak_factory_cleanup_job_task)
355
356
// Adapts one STRUCT_LIST_GENERATOR entry to the STRUCT_LIST entry
357
#define STRUCT_LIST_ADAPTER(V, NAME, Name, name) V(NAME, Name, name)
358
359
// Produces (NAME, Name, name) entries.
360
#define STRUCT_LIST(V) STRUCT_LIST_GENERATOR(STRUCT_LIST_ADAPTER, V)
361
362
// Adapts one STRUCT_LIST_GENERATOR entry to the STRUCT_MAPS_LIST entry
363
#define STRUCT_MAPS_LIST_ADAPTER(V, NAME, Name, name) \
364
V(Map, name##_map, Name##Map)
365
366
// Produces (Map, struct_name_map, StructNameMap) entries
367
#define STRUCT_MAPS_LIST(V) STRUCT_LIST_GENERATOR(STRUCT_MAPS_LIST_ADAPTER, V)
368
369
//
370
// The following macros define list of allocation size objects and list of
371
// their maps.
372
//
373
#define ALLOCATION_SITE_LIST(V, _) \
374
V(_, ALLOCATION_SITE_TYPE, AllocationSite, WithWeakNext, allocation_site) \
375
V(_, ALLOCATION_SITE_TYPE, AllocationSite, WithoutWeakNext, \
376
allocation_site_without_weaknext)
377
378
// Adapts one ALLOCATION_SITE_LIST entry to the ALLOCATION_SITE_MAPS_LIST entry
379
#define ALLOCATION_SITE_MAPS_LIST_ADAPTER(V, TYPE, Name, Size, name_size) \
380
V(Map, name_size##_map, Name##Size##Map)
381
382
// Produces (Map, allocation_site_name_map, AllocationSiteNameMap) entries
383
#define ALLOCATION_SITE_MAPS_LIST(V) \
384
ALLOCATION_SITE_LIST(ALLOCATION_SITE_MAPS_LIST_ADAPTER, V)
385
386
//
387
// The following macros define list of data handler objects and list of their
388
// maps.
389
//
390
#define DATA_HANDLER_LIST(V, _) \
391
V(_, LOAD_HANDLER_TYPE, LoadHandler, 1, load_handler1) \
392
V(_, LOAD_HANDLER_TYPE, LoadHandler, 2, load_handler2) \
393
V(_, LOAD_HANDLER_TYPE, LoadHandler, 3, load_handler3) \
394
V(_, STORE_HANDLER_TYPE, StoreHandler, 0, store_handler0) \
395
V(_, STORE_HANDLER_TYPE, StoreHandler, 1, store_handler1) \
396
V(_, STORE_HANDLER_TYPE, StoreHandler, 2, store_handler2) \
397
V(_, STORE_HANDLER_TYPE, StoreHandler, 3, store_handler3)
398
399
// Adapts one DATA_HANDLER_LIST entry to the DATA_HANDLER_MAPS_LIST entry.
400
#define DATA_HANDLER_MAPS_LIST_ADAPTER(V, TYPE, Name, Size, name_size) \
401
V(Map, name_size##_map, Name##Size##Map)
402
403
// Produces (Map, handler_name_map, HandlerNameMap) entries
404
#define DATA_HANDLER_MAPS_LIST(V) \
405
DATA_HANDLER_LIST(DATA_HANDLER_MAPS_LIST_ADAPTER, V)
406
407
}
// namespace internal
408
}
// namespace v8
409
410
#endif // V8_OBJECTS_DEFINITIONS_H_
v8
Definition:
libplatform.h:13
v8
src
objects-definitions.h
Generated on Tue Dec 25 2018 14:39:21 by
1.8.14