V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
heap-symbols.h
1 // Copyright 2015 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_HEAP_SYMBOLS_H_
6 #define V8_HEAP_SYMBOLS_H_
7 
8 #ifdef V8_INTL_SUPPORT
9 #define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
10  V(_, breakType_string, "breakType") \
11  V(_, calendar_string, "calendar") \
12  V(_, cardinal_string, "cardinal") \
13  V(_, caseFirst_string, "caseFirst") \
14  V(_, day_string, "day") \
15  V(_, dayPeriod_string, "dayPeriod") \
16  V(_, decimal_string, "decimal") \
17  V(_, era_string, "era") \
18  V(_, fraction_string, "fraction") \
19  V(_, granularity_string, "granularity") \
20  V(_, grapheme_string, "grapheme") \
21  V(_, group_string, "group") \
22  V(_, h11_string, "h11") \
23  V(_, h12_string, "h12") \
24  V(_, h23_string, "h23") \
25  V(_, h24_string, "h24") \
26  V(_, hard_string, "hard") \
27  V(_, hour_string, "hour") \
28  V(_, hour12_string, "hour12") \
29  V(_, hourCycle_string, "hourCycle") \
30  V(_, collation_string, "collation") \
31  V(_, currency_string, "currency") \
32  V(_, currencyDisplay_string, "currencyDisplay") \
33  V(_, ideo_string, "ideo") \
34  V(_, ignorePunctuation_string, "ignorePunctuation") \
35  V(_, Invalid_Date_string, "Invalid Date") \
36  V(_, integer_string, "integer") \
37  V(_, kana_string, "kana") \
38  V(_, letter_string, "letter") \
39  V(_, lineBreakStyle_string, "lineBreakStyle") \
40  V(_, list_string, "list") \
41  V(_, literal_string, "literal") \
42  V(_, locale_string, "locale") \
43  V(_, loose_string, "loose") \
44  V(_, lower_string, "lower") \
45  V(_, maximumFractionDigits_string, "maximumFractionDigits") \
46  V(_, maximumSignificantDigits_string, "maximumSignificantDigits") \
47  V(_, nan_string, "nan") \
48  V(_, minimumFractionDigits_string, "minimumFractionDigits") \
49  V(_, minimumIntegerDigits_string, "minimumIntegerDigits") \
50  V(_, minimumSignificantDigits_string, "minimumSignificantDigits") \
51  V(_, minusSign_string, "minusSign") \
52  V(_, minute_string, "minute") \
53  V(_, month_string, "month") \
54  V(_, none_string, "none") \
55  V(_, normal_string, "normal") \
56  V(_, numberingSystem_string, "numberingSystem") \
57  V(_, numeric_string, "numeric") \
58  V(_, ordinal_string, "ordinal") \
59  V(_, percentSign_string, "percentSign") \
60  V(_, plusSign_string, "plusSign") \
61  V(_, quarter_string, "quarter") \
62  V(_, second_string, "second") \
63  V(_, segment_string, "segment") \
64  V(_, SegmentIterator_string, "Segment Iterator") \
65  V(_, sensitivity_string, "sensitivity") \
66  V(_, sep_string, "sep") \
67  V(_, soft_string, "soft") \
68  V(_, strict_string, "strict") \
69  V(_, style_string, "style") \
70  V(_, term_string, "term") \
71  V(_, timeZone_string, "timeZone") \
72  V(_, timeZoneName_string, "timeZoneName") \
73  V(_, type_string, "type") \
74  V(_, unknown_string, "unknown") \
75  V(_, upper_string, "upper") \
76  V(_, usage_string, "usage") \
77  V(_, useGrouping_string, "useGrouping") \
78  V(_, UTC_string, "UTC") \
79  V(_, unit_string, "unit") \
80  V(_, weekday_string, "weekday") \
81  V(_, year_string, "year")
82 #else // V8_INTL_SUPPORT
83 #define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _)
84 #endif // V8_INTL_SUPPORT
85 
86 #define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
87  INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
88  V(_, add_string, "add") \
89  V(_, always_string, "always") \
90  V(_, anonymous_function_string, "(anonymous function)") \
91  V(_, anonymous_string, "anonymous") \
92  V(_, apply_string, "apply") \
93  V(_, Arguments_string, "Arguments") \
94  V(_, arguments_string, "arguments") \
95  V(_, arguments_to_string, "[object Arguments]") \
96  V(_, Array_string, "Array") \
97  V(_, array_to_string, "[object Array]") \
98  V(_, ArrayBuffer_string, "ArrayBuffer") \
99  V(_, ArrayIterator_string, "Array Iterator") \
100  V(_, as_string, "as") \
101  V(_, assign_string, "assign") \
102  V(_, async_string, "async") \
103  V(_, auto_string, "auto") \
104  V(_, await_string, "await") \
105  V(_, BigInt_string, "BigInt") \
106  V(_, bigint_string, "bigint") \
107  V(_, BigInt64Array_string, "BigInt64Array") \
108  V(_, BigUint64Array_string, "BigUint64Array") \
109  V(_, bind_string, "bind") \
110  V(_, Boolean_string, "Boolean") \
111  V(_, boolean_string, "boolean") \
112  V(_, boolean_to_string, "[object Boolean]") \
113  V(_, bound__string, "bound ") \
114  V(_, buffer_string, "buffer") \
115  V(_, byte_length_string, "byteLength") \
116  V(_, byte_offset_string, "byteOffset") \
117  V(_, call_string, "call") \
118  V(_, callee_string, "callee") \
119  V(_, caller_string, "caller") \
120  V(_, character_string, "character") \
121  V(_, closure_string, "(closure)") \
122  V(_, code_string, "code") \
123  V(_, column_string, "column") \
124  V(_, CompileError_string, "CompileError") \
125  V(_, configurable_string, "configurable") \
126  V(_, construct_string, "construct") \
127  V(_, constructor_string, "constructor") \
128  V(_, conjunction_string, "conjunction") \
129  V(_, create_string, "create") \
130  V(_, Date_string, "Date") \
131  V(_, date_to_string, "[object Date]") \
132  V(_, default_string, "default") \
133  V(_, defineProperty_string, "defineProperty") \
134  V(_, deleteProperty_string, "deleteProperty") \
135  V(_, disjunction_string, "disjunction") \
136  V(_, display_name_string, "displayName") \
137  V(_, done_string, "done") \
138  V(_, dot_catch_string, ".catch") \
139  V(_, dot_for_string, ".for") \
140  V(_, dot_generator_object_string, ".generator_object") \
141  V(_, dot_iterator_string, ".iterator") \
142  V(_, dot_promise_string, ".promise") \
143  V(_, dot_result_string, ".result") \
144  V(_, dot_string, ".") \
145  V(_, dot_switch_tag_string, ".switch_tag") \
146  V(_, dotAll_string, "dotAll") \
147  V(_, entries_string, "entries") \
148  V(_, enumerable_string, "enumerable") \
149  V(_, element_string, "element") \
150  V(_, Error_string, "Error") \
151  V(_, error_to_string, "[object Error]") \
152  V(_, eval_string, "eval") \
153  V(_, EvalError_string, "EvalError") \
154  V(_, exec_string, "exec") \
155  V(_, false_string, "false") \
156  V(_, flags_string, "flags") \
157  V(_, Float32Array_string, "Float32Array") \
158  V(_, Float64Array_string, "Float64Array") \
159  V(_, from_string, "from") \
160  V(_, Function_string, "Function") \
161  V(_, function_native_code_string, "function () { [native code] }") \
162  V(_, function_string, "function") \
163  V(_, function_to_string, "[object Function]") \
164  V(_, Generator_string, "Generator") \
165  V(_, get_space_string, "get ") \
166  V(_, get_string, "get") \
167  V(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \
168  V(_, getOwnPropertyDescriptors_string, "getOwnPropertyDescriptors") \
169  V(_, getPrototypeOf_string, "getPrototypeOf") \
170  V(_, global_string, "global") \
171  V(_, globalThis_string, "globalThis") \
172  V(_, groups_string, "groups") \
173  V(_, has_string, "has") \
174  V(_, ignoreCase_string, "ignoreCase") \
175  V(_, illegal_access_string, "illegal access") \
176  V(_, illegal_argument_string, "illegal argument") \
177  V(_, index_string, "index") \
178  V(_, Infinity_string, "Infinity") \
179  V(_, infinity_string, "infinity") \
180  V(_, input_string, "input") \
181  V(_, Int16Array_string, "Int16Array") \
182  V(_, Int32Array_string, "Int32Array") \
183  V(_, Int8Array_string, "Int8Array") \
184  V(_, isExtensible_string, "isExtensible") \
185  V(_, isView_string, "isView") \
186  V(_, keys_string, "keys") \
187  V(_, lastIndex_string, "lastIndex") \
188  V(_, length_string, "length") \
189  V(_, let_string, "let") \
190  V(_, line_string, "line") \
191  V(_, LinkError_string, "LinkError") \
192  V(_, long_string, "long") \
193  V(_, Map_string, "Map") \
194  V(_, MapIterator_string, "Map Iterator") \
195  V(_, message_string, "message") \
196  V(_, meta_string, "meta") \
197  V(_, minus_Infinity_string, "-Infinity") \
198  V(_, Module_string, "Module") \
199  V(_, multiline_string, "multiline") \
200  V(_, name_string, "name") \
201  V(_, NaN_string, "NaN") \
202  V(_, narrow_string, "narrow") \
203  V(_, native_string, "native") \
204  V(_, new_target_string, ".new.target") \
205  V(_, next_string, "next") \
206  V(_, NFC_string, "NFC") \
207  V(_, NFD_string, "NFD") \
208  V(_, NFKC_string, "NFKC") \
209  V(_, NFKD_string, "NFKD") \
210  V(_, not_equal, "not-equal") \
211  V(_, null_string, "null") \
212  V(_, null_to_string, "[object Null]") \
213  V(_, Number_string, "Number") \
214  V(_, number_string, "number") \
215  V(_, number_to_string, "[object Number]") \
216  V(_, Object_string, "Object") \
217  V(_, object_string, "object") \
218  V(_, object_to_string, "[object Object]") \
219  V(_, of_string, "of") \
220  V(_, ok, "ok") \
221  V(_, one_string, "1") \
222  V(_, ownKeys_string, "ownKeys") \
223  V(_, percent_string, "percent") \
224  V(_, position_string, "position") \
225  V(_, preventExtensions_string, "preventExtensions") \
226  V(_, private_constructor_string, "#constructor") \
227  V(_, Promise_string, "Promise") \
228  V(_, promise_string, "promise") \
229  V(_, proto_string, "__proto__") \
230  V(_, prototype_string, "prototype") \
231  V(_, proxy_string, "proxy") \
232  V(_, Proxy_string, "Proxy") \
233  V(_, query_colon_string, "(?:)") \
234  V(_, RangeError_string, "RangeError") \
235  V(_, raw_string, "raw") \
236  V(_, ReferenceError_string, "ReferenceError") \
237  V(_, ReflectGet_string, "Reflect.get") \
238  V(_, ReflectHas_string, "Reflect.has") \
239  V(_, RegExp_string, "RegExp") \
240  V(_, regexp_to_string, "[object RegExp]") \
241  V(_, resolve_string, "resolve") \
242  V(_, return_string, "return") \
243  V(_, revoke_string, "revoke") \
244  V(_, RuntimeError_string, "RuntimeError") \
245  V(_, Script_string, "Script") \
246  V(_, script_string, "script") \
247  V(_, short_string, "short") \
248  V(_, Set_string, "Set") \
249  V(_, sentence_string, "sentence") \
250  V(_, set_space_string, "set ") \
251  V(_, set_string, "set") \
252  V(_, SetIterator_string, "Set Iterator") \
253  V(_, setPrototypeOf_string, "setPrototypeOf") \
254  V(_, SharedArrayBuffer_string, "SharedArrayBuffer") \
255  V(_, source_string, "source") \
256  V(_, sourceText_string, "sourceText") \
257  V(_, stack_string, "stack") \
258  V(_, stackTraceLimit_string, "stackTraceLimit") \
259  V(_, star_default_star_string, "*default*") \
260  V(_, sticky_string, "sticky") \
261  V(_, String_string, "String") \
262  V(_, string_string, "string") \
263  V(_, string_to_string, "[object String]") \
264  V(_, symbol_species_string, "[Symbol.species]") \
265  V(_, Symbol_string, "Symbol") \
266  V(_, symbol_string, "symbol") \
267  V(_, SyntaxError_string, "SyntaxError") \
268  V(_, target_string, "target") \
269  V(_, then_string, "then") \
270  V(_, this_function_string, ".this_function") \
271  V(_, this_string, "this") \
272  V(_, throw_string, "throw") \
273  V(_, timed_out, "timed-out") \
274  V(_, toJSON_string, "toJSON") \
275  V(_, toString_string, "toString") \
276  V(_, true_string, "true") \
277  V(_, TypeError_string, "TypeError") \
278  V(_, Uint16Array_string, "Uint16Array") \
279  V(_, Uint32Array_string, "Uint32Array") \
280  V(_, Uint8Array_string, "Uint8Array") \
281  V(_, Uint8ClampedArray_string, "Uint8ClampedArray") \
282  V(_, undefined_string, "undefined") \
283  V(_, undefined_to_string, "[object Undefined]") \
284  V(_, unicode_string, "unicode") \
285  V(_, URIError_string, "URIError") \
286  V(_, value_string, "value") \
287  V(_, valueOf_string, "valueOf") \
288  V(_, values_string, "values") \
289  V(_, WeakCell_string, "WeakCell") \
290  V(_, WeakFactory_string, "WeakFactory") \
291  V(_, WeakMap_string, "WeakMap") \
292  V(_, WeakRef_string, "WeakRef") \
293  V(_, WeakSet_string, "WeakSet") \
294  V(_, week_string, "week") \
295  V(_, word_string, "word") \
296  V(_, writable_string, "writable") \
297  V(_, zero_string, "0")
298 
299 #define PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
300  V(_, call_site_frame_array_symbol) \
301  V(_, call_site_frame_index_symbol) \
302  V(_, console_context_id_symbol) \
303  V(_, console_context_name_symbol) \
304  V(_, class_fields_symbol) \
305  V(_, class_positions_symbol) \
306  V(_, detailed_stack_trace_symbol) \
307  V(_, elements_transition_symbol) \
308  V(_, error_end_pos_symbol) \
309  V(_, error_script_symbol) \
310  V(_, error_start_pos_symbol) \
311  V(_, frozen_symbol) \
312  V(_, generic_symbol) \
313  V(_, home_object_symbol) \
314  V(_, interpreter_trampoline_symbol) \
315  V(_, megamorphic_symbol) \
316  V(_, native_context_index_symbol) \
317  V(_, nonextensible_symbol) \
318  V(_, not_mapped_symbol) \
319  V(_, premonomorphic_symbol) \
320  V(_, promise_debug_marker_symbol) \
321  V(_, promise_forwarding_handler_symbol) \
322  V(_, promise_handled_by_symbol) \
323  V(_, sealed_symbol) \
324  V(_, stack_trace_symbol) \
325  V(_, strict_function_transition_symbol) \
326  V(_, wasm_exception_tag_symbol) \
327  V(_, wasm_exception_values_symbol) \
328  V(_, uninitialized_symbol)
329 
330 #define PUBLIC_SYMBOL_LIST_GENERATOR(V, _) \
331  V(_, async_iterator_symbol, Symbol.asyncIterator) \
332  V(_, iterator_symbol, Symbol.iterator) \
333  V(_, intl_fallback_symbol, IntlFallback) \
334  V(_, match_all_symbol, Symbol.matchAll) \
335  V(_, match_symbol, Symbol.match) \
336  V(_, replace_symbol, Symbol.replace) \
337  V(_, search_symbol, Symbol.search) \
338  V(_, species_symbol, Symbol.species) \
339  V(_, split_symbol, Symbol.split) \
340  V(_, to_primitive_symbol, Symbol.toPrimitive) \
341  V(_, unscopables_symbol, Symbol.unscopables)
342 
343 // Well-Known Symbols are "Public" symbols, which have a bit set which causes
344 // them to produce an undefined value when a load results in a failed access
345 // check. Because this behaviour is not specified properly as of yet, it only
346 // applies to a subset of spec-defined Well-Known Symbols.
347 #define WELL_KNOWN_SYMBOL_LIST_GENERATOR(V, _) \
348  V(_, has_instance_symbol, Symbol.hasInstance) \
349  V(_, is_concat_spreadable_symbol, Symbol.isConcatSpreadable) \
350  V(_, to_string_tag_symbol, Symbol.toStringTag)
351 
352 #define INCREMENTAL_SCOPES(F) \
353  /* MC_INCREMENTAL is the top-level incremental marking scope. */ \
354  F(MC_INCREMENTAL) \
355  F(MC_INCREMENTAL_START) \
356  F(MC_INCREMENTAL_SWEEPING) \
357  F(MC_INCREMENTAL_EMBEDDER_PROLOGUE) \
358  F(MC_INCREMENTAL_EMBEDDER_TRACING) \
359  F(MC_INCREMENTAL_FINALIZE) \
360  F(MC_INCREMENTAL_FINALIZE_BODY) \
361  F(MC_INCREMENTAL_EXTERNAL_EPILOGUE) \
362  F(MC_INCREMENTAL_EXTERNAL_PROLOGUE)
363 
364 #define TOP_MC_SCOPES(F) \
365  F(MC_CLEAR) \
366  F(MC_EPILOGUE) \
367  F(MC_EVACUATE) \
368  F(MC_FINISH) \
369  F(MC_MARK) \
370  F(MC_PROLOGUE) \
371  F(MC_SWEEP)
372 
373 #define TRACER_SCOPES(F) \
374  INCREMENTAL_SCOPES(F) \
375  F(HEAP_EMBEDDER_TRACING_EPILOGUE) \
376  F(HEAP_EPILOGUE) \
377  F(HEAP_EPILOGUE_REDUCE_NEW_SPACE) \
378  F(HEAP_EXTERNAL_EPILOGUE) \
379  F(HEAP_EXTERNAL_PROLOGUE) \
380  F(HEAP_EXTERNAL_WEAK_GLOBAL_HANDLES) \
381  F(HEAP_PROLOGUE) \
382  TOP_MC_SCOPES(F) \
383  F(MC_CLEAR_DEPENDENT_CODE) \
384  F(MC_CLEAR_MAPS) \
385  F(MC_CLEAR_SLOTS_BUFFER) \
386  F(MC_CLEAR_STORE_BUFFER) \
387  F(MC_CLEAR_STRING_TABLE) \
388  F(MC_CLEAR_WEAK_COLLECTIONS) \
389  F(MC_CLEAR_WEAK_LISTS) \
390  F(MC_CLEAR_WEAK_REFERENCES) \
391  F(MC_EVACUATE_CANDIDATES) \
392  F(MC_EVACUATE_CLEAN_UP) \
393  F(MC_EVACUATE_COPY) \
394  F(MC_EVACUATE_EPILOGUE) \
395  F(MC_EVACUATE_PROLOGUE) \
396  F(MC_EVACUATE_REBALANCE) \
397  F(MC_EVACUATE_UPDATE_POINTERS) \
398  F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAIN) \
399  F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAP_SPACE) \
400  F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \
401  F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \
402  F(MC_MARK_EMBEDDER_PROLOGUE) \
403  F(MC_MARK_EMBEDDER_TRACING) \
404  F(MC_MARK_EMBEDDER_TRACING_CLOSURE) \
405  F(MC_MARK_FINISH_INCREMENTAL) \
406  F(MC_MARK_MAIN) \
407  F(MC_MARK_ROOTS) \
408  F(MC_MARK_WEAK_CLOSURE) \
409  F(MC_MARK_WEAK_CLOSURE_EPHEMERON) \
410  F(MC_MARK_WEAK_CLOSURE_EPHEMERON_MARKING) \
411  F(MC_MARK_WEAK_CLOSURE_EPHEMERON_LINEAR) \
412  F(MC_MARK_WEAK_CLOSURE_WEAK_HANDLES) \
413  F(MC_MARK_WEAK_CLOSURE_WEAK_ROOTS) \
414  F(MC_MARK_WEAK_CLOSURE_HARMONY) \
415  F(MC_SWEEP_CODE) \
416  F(MC_SWEEP_MAP) \
417  F(MC_SWEEP_OLD) \
418  F(MINOR_MC) \
419  F(MINOR_MC_CLEAR) \
420  F(MINOR_MC_CLEAR_STRING_TABLE) \
421  F(MINOR_MC_CLEAR_WEAK_LISTS) \
422  F(MINOR_MC_EVACUATE) \
423  F(MINOR_MC_EVACUATE_CLEAN_UP) \
424  F(MINOR_MC_EVACUATE_COPY) \
425  F(MINOR_MC_EVACUATE_EPILOGUE) \
426  F(MINOR_MC_EVACUATE_PROLOGUE) \
427  F(MINOR_MC_EVACUATE_REBALANCE) \
428  F(MINOR_MC_EVACUATE_UPDATE_POINTERS) \
429  F(MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTS) \
430  F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \
431  F(MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAK) \
432  F(MINOR_MC_MARK) \
433  F(MINOR_MC_MARK_GLOBAL_HANDLES) \
434  F(MINOR_MC_MARK_SEED) \
435  F(MINOR_MC_MARK_ROOTS) \
436  F(MINOR_MC_MARK_WEAK) \
437  F(MINOR_MC_MARKING_DEQUE) \
438  F(MINOR_MC_RESET_LIVENESS) \
439  F(MINOR_MC_SWEEPING) \
440  F(SCAVENGER_FAST_PROMOTE) \
441  F(SCAVENGER_SCAVENGE) \
442  F(SCAVENGER_PROCESS_ARRAY_BUFFERS) \
443  F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFY) \
444  F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \
445  F(SCAVENGER_SCAVENGE_PARALLEL) \
446  F(SCAVENGER_SCAVENGE_ROOTS) \
447  F(SCAVENGER_SCAVENGE_UPDATE_REFS) \
448  F(SCAVENGER_SCAVENGE_WEAK) \
449  F(SCAVENGER_SCAVENGE_FINALIZE)
450 
451 #define TRACER_BACKGROUND_SCOPES(F) \
452  F(BACKGROUND_ARRAY_BUFFER_FREE) \
453  F(BACKGROUND_STORE_BUFFER) \
454  F(BACKGROUND_UNMAPPER) \
455  F(MC_BACKGROUND_EVACUATE_COPY) \
456  F(MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \
457  F(MC_BACKGROUND_MARKING) \
458  F(MC_BACKGROUND_SWEEPING) \
459  F(MINOR_MC_BACKGROUND_EVACUATE_COPY) \
460  F(MINOR_MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \
461  F(MINOR_MC_BACKGROUND_MARKING) \
462  F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL)
463 
464 #endif // V8_HEAP_SYMBOLS_H_