v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
heap-symbols.h
Go to the documentation of this file.
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_INIT_HEAP_SYMBOLS_H_
6#define V8_INIT_HEAP_SYMBOLS_H_
7
8#ifdef V8_INTL_SUPPORT
9#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
10 V(_, adoptText_string, "adoptText") \
11 V(_, approximatelySign_string, "approximatelySign") \
12 V(_, baseName_string, "baseName") \
13 V(_, accounting_string, "accounting") \
14 V(_, breakType_string, "breakType") \
15 V(_, calendars_string, "calendars") \
16 V(_, cardinal_string, "cardinal") \
17 V(_, caseFirst_string, "caseFirst") \
18 V(_, ceil_string, "ceil") \
19 V(_, compare_string, "compare") \
20 V(_, collation_string, "collation") \
21 V(_, collations_string, "collations") \
22 V(_, compact_string, "compact") \
23 V(_, compactDisplay_string, "compactDisplay") \
24 V(_, currency_string, "currency") \
25 V(_, currencyDisplay_string, "currencyDisplay") \
26 V(_, currencySign_string, "currencySign") \
27 V(_, dateStyle_string, "dateStyle") \
28 V(_, dateTimeField_string, "dateTimeField") \
29 V(_, dayPeriod_string, "dayPeriod") \
30 V(_, daysDisplay_string, "daysDisplay") \
31 V(_, decimal_string, "decimal") \
32 V(_, dialect_string, "dialect") \
33 V(_, digital_string, "digital") \
34 V(_, direction_string, "direction") \
35 V(_, endRange_string, "endRange") \
36 V(_, engineering_string, "engineering") \
37 V(_, exceptZero_string, "exceptZero") \
38 V(_, expand_string, "expand") \
39 V(_, exponentInteger_string, "exponentInteger") \
40 V(_, exponentMinusSign_string, "exponentMinusSign") \
41 V(_, exponentSeparator_string, "exponentSeparator") \
42 V(_, fallback_string, "fallback") \
43 V(_, first_string, "first") \
44 V(_, firstDay_string, "firstDay") \
45 V(_, firstDayOfWeek_string, "firstDayOfWeek") \
46 V(_, floor_string, "floor") \
47 V(_, format_string, "format") \
48 V(_, fraction_string, "fraction") \
49 V(_, fractionalDigits_string, "fractionalDigits") \
50 V(_, fractionalSecond_string, "fractionalSecond") \
51 V(_, full_string, "full") \
52 V(_, granularity_string, "granularity") \
53 V(_, grapheme_string, "grapheme") \
54 V(_, group_string, "group") \
55 V(_, h11_string, "h11") \
56 V(_, h12_string, "h12") \
57 V(_, h23_string, "h23") \
58 V(_, h24_string, "h24") \
59 V(_, halfCeil_string, "halfCeil") \
60 V(_, halfEven_string, "halfEven") \
61 V(_, halfExpand_string, "halfExpand") \
62 V(_, halfFloor_string, "halfFloor") \
63 V(_, halfTrunc_string, "halfTrunc") \
64 V(_, hour12_string, "hour12") \
65 V(_, hourCycle_string, "hourCycle") \
66 V(_, hourCycles_string, "hourCycles") \
67 V(_, hoursDisplay_string, "hoursDisplay") \
68 V(_, ideo_string, "ideo") \
69 V(_, ignorePunctuation_string, "ignorePunctuation") \
70 V(_, Invalid_Date_string, "Invalid Date") \
71 V(_, integer_string, "integer") \
72 V(_, isWordLike_string, "isWordLike") \
73 V(_, kana_string, "kana") \
74 V(_, language_string, "language") \
75 V(_, languageDisplay_string, "languageDisplay") \
76 V(_, lessPrecision_string, "lessPrecision") \
77 V(_, letter_string, "letter") \
78 V(_, list_string, "list") \
79 V(_, literal_string, "literal") \
80 V(_, locale_string, "locale") \
81 V(_, loose_string, "loose") \
82 V(_, lower_string, "lower") \
83 V(_, ltr_string, "ltr") \
84 V(_, maximumFractionDigits_string, "maximumFractionDigits") \
85 V(_, maximumSignificantDigits_string, "maximumSignificantDigits") \
86 V(_, microsecondsDisplay_string, "microsecondsDisplay") \
87 V(_, millisecondsDisplay_string, "millisecondsDisplay") \
88 V(_, min2_string, "min2") \
89 V(_, minimalDays_string, "minimalDays") \
90 V(_, minimumFractionDigits_string, "minimumFractionDigits") \
91 V(_, minimumIntegerDigits_string, "minimumIntegerDigits") \
92 V(_, minimumSignificantDigits_string, "minimumSignificantDigits") \
93 V(_, minus_0, "-0") \
94 V(_, minusSign_string, "minusSign") \
95 V(_, minutesDisplay_string, "minutesDisplay") \
96 V(_, monthsDisplay_string, "monthsDisplay") \
97 V(_, morePrecision_string, "morePrecision") \
98 V(_, nan_string, "nan") \
99 V(_, nanosecondsDisplay_string, "nanosecondsDisplay") \
100 V(_, narrowSymbol_string, "narrowSymbol") \
101 V(_, negative_string, "negative") \
102 V(_, never_string, "never") \
103 V(_, none_string, "none") \
104 V(_, notation_string, "notation") \
105 V(_, normal_string, "normal") \
106 V(_, numberingSystem_string, "numberingSystem") \
107 V(_, numberingSystems_string, "numberingSystems") \
108 V(_, numeric_string, "numeric") \
109 V(_, ordinal_string, "ordinal") \
110 V(_, percentSign_string, "percentSign") \
111 V(_, plusSign_string, "plusSign") \
112 V(_, quarter_string, "quarter") \
113 V(_, region_string, "region") \
114 V(_, relatedYear_string, "relatedYear") \
115 V(_, roundingMode_string, "roundingMode") \
116 V(_, roundingPriority_string, "roundingPriority") \
117 V(_, rtl_string, "rtl") \
118 V(_, scientific_string, "scientific") \
119 V(_, secondsDisplay_string, "secondsDisplay") \
120 V(_, segment_string, "segment") \
121 V(_, SegmentIterator_string, "Segment Iterator") \
122 V(_, Segments_string, "Segments") \
123 V(_, sensitivity_string, "sensitivity") \
124 V(_, sep_string, "sep") \
125 V(_, shared_string, "shared") \
126 V(_, signDisplay_string, "signDisplay") \
127 V(_, standard_string, "standard") \
128 V(_, startRange_string, "startRange") \
129 V(_, strict_string, "strict") \
130 V(_, stripIfInteger_string, "stripIfInteger") \
131 V(_, style_string, "style") \
132 V(_, term_string, "term") \
133 V(_, textInfo_string, "textInfo") \
134 V(_, timeStyle_string, "timeStyle") \
135 V(_, timeZones_string, "timeZones") \
136 V(_, timeZoneName_string, "timeZoneName") \
137 V(_, trailingZeroDisplay_string, "trailingZeroDisplay") \
138 V(_, trunc_string, "trunc") \
139 V(_, two_digit_string, "2-digit") \
140 V(_, type_string, "type") \
141 V(_, unknown_string, "unknown") \
142 V(_, upper_string, "upper") \
143 V(_, usage_string, "usage") \
144 V(_, useGrouping_string, "useGrouping") \
145 V(_, unitDisplay_string, "unitDisplay") \
146 V(_, weekday_string, "weekday") \
147 V(_, weekend_string, "weekend") \
148 V(_, weeksDisplay_string, "weeksDisplay") \
149 V(_, weekInfo_string, "weekInfo") \
150 V(_, yearName_string, "yearName") \
151 V(_, yearsDisplay_string, "yearsDisplay")
152#else // V8_INTL_SUPPORT
153#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _)
154#endif // V8_INTL_SUPPORT
155
156// Internalized strings to be allocated early on the read only heap and early in
157// the roots table. Used to give this string a RootIndex < 32.
158#define EXTRA_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
159 V(_, empty_string, "")
160
161// Internalized strings to be allocated early on the read only heap
162#define IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
163 V(_, prototype_string, "prototype") \
164 V(_, name_string, "name") \
165 V(_, enumerable_string, "enumerable") \
166 V(_, configurable_string, "configurable") \
167 V(_, value_string, "value") \
168 V(_, writable_string, "writable")
169
170// Generated with the following Python script:
171// ```
172// named_chars = {
173// # Punctuation
174// '!': 'exclamation_mark',
175// '"': 'double_quotes',
176// '#': 'hash',
177// '$': 'dollar',
178// '%': 'percent_sign',
179// '&': 'ampersand',
180// "'": 'single_quote',
181// '(': 'open_parenthesis',
182// ')': 'close_parenthesis',
183// '*': 'asterisk',
184// '+': 'plus',
185// ',': 'comma',
186// '-': 'minus',
187// '.': 'dot',
188// '/': 'slash',
189// ':': 'colon',
190// ';': 'semicolon',
191// '<': 'less_than',
192// '=': 'equals',
193// '>': 'greater_than',
194// '?': 'question_mark',
195// '[': 'open_bracket',
196// '\\': 'backslash',
197// ']': 'close_bracket',
198// '^': 'caret',
199// '_': 'underscore',
200// '`': 'backtick',
201// '{': 'open_brace',
202// '|': 'pipe',
203// '}': 'close_brace',
204// '~': 'tilde',
205// '@': 'at_sign',
206// ' ': 'space',
207// # Numbers
208// '0': 'zero',
209// '1': 'one',
210// '2': 'two',
211// '3': 'three',
212// '4': 'four',
213// '5': 'five',
214// '6': 'six',
215// '7': 'seven',
216// '8': 'eight',
217// '9': 'nine',
218// # Control Characters
219// '\x00': 'ascii_nul', # Null character
220// '\x01': 'ascii_soh', # Start of Heading
221// '\x02': 'ascii_stx', # Start of Text
222// '\x03': 'ascii_etx', # End of Text
223// '\x04': 'ascii_eot', # End of Transmission
224// '\x05': 'ascii_enq', # Enquiry
225// '\x06': 'ascii_ack', # Acknowledge
226// '\x07': 'ascii_bel', # Bell
227// '\x08': 'ascii_bs', # Backspace
228// '\t': 'ascii_ht', # Horizontal Tab
229// '\n': 'ascii_lf', # Line Feed
230// '\x0b': 'ascii_vt', # Vertical Tab
231// '\x0c': 'ascii_ff', # Form Feed
232// '\r': 'ascii_cr', # Carriage Return
233// '\x0e': 'ascii_so', # Shift Out
234// '\x0f': 'ascii_si', # Shift In
235// '\x10': 'ascii_dle', # Data Link Escape
236// '\x11': 'ascii_dc1', # Device Control 1
237// '\x12': 'ascii_dc2', # Device Control 2
238// '\x13': 'ascii_dc3', # Device Control 3
239// '\x14': 'ascii_dc4', # Device Control 4
240// '\x15': 'ascii_nak', # Negative Acknowledge
241// '\x16': 'ascii_syn', # Synchronous Idle
242// '\x17': 'ascii_etb', # End of Transmission Block
243// '\x18': 'ascii_can', # Cancel
244// '\x19': 'ascii_em', # End of Medium
245// '\x1a': 'ascii_sub', # Substitute
246// '\x1b': 'ascii_esc', # Escape
247// '\x1c': 'ascii_fs', # File Separator
248// '\x1d': 'ascii_gs', # Group Separator
249// '\x1e': 'ascii_rs', # Record Separator
250// '\x1f': 'ascii_us', # Unit Separator
251// '\x7f': 'ascii_del', # Delete
252// }
253//
254// def escape(c):
255// if c == '\0':
256// return "\\0"
257// elif c == '\\':
258// return "\\\\"
259// elif c == '\n':
260// return "\\n"
261// elif c == '\t':
262// return "\\t"
263// elif c == '\r':
264// return "\\r"
265// elif c == '\v':
266// return "\\v"
267// elif c == '\b':
268// return "\\b"
269// elif c == '\f':
270// return "\\f"
271// elif c == '\a':
272// return "\\a"
273// elif c == '"':
274// return '\\"'
275// elif c == '\'':
276// return "\\'"
277// elif not c.isprintable():
278// return f'\\x{ord(c):02x}'
279// else:
280// return c
281//
282// for i in range(128):
283// c = chr(i)
284// if c.isascii() and c.isalpha():
285// name = c
286// elif c in named_chars:
287// name = named_chars[c]
288// else:
289// raise f"No name for 0x{i:02x}"
290//
291// print(f"V_(_, {name}_string, \"{escape(c)}\") \\")
292// ```
293#define SINGLE_CHARACTER_ASCII_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
294 V_(_, ascii_nul_string, "\0") \
295 V_(_, ascii_soh_string, "\x01") \
296 V_(_, ascii_stx_string, "\x02") \
297 V_(_, ascii_etx_string, "\x03") \
298 V_(_, ascii_eot_string, "\x04") \
299 V_(_, ascii_enq_string, "\x05") \
300 V_(_, ascii_ack_string, "\x06") \
301 V_(_, ascii_bel_string, "\a") \
302 V_(_, ascii_bs_string, "\b") \
303 V_(_, ascii_ht_string, "\t") \
304 V_(_, ascii_lf_string, "\n") \
305 V_(_, ascii_vt_string, "\v") \
306 V_(_, ascii_ff_string, "\f") \
307 V_(_, ascii_cr_string, "\r") \
308 V_(_, ascii_so_string, "\x0e") \
309 V_(_, ascii_si_string, "\x0f") \
310 V_(_, ascii_dle_string, "\x10") \
311 V_(_, ascii_dc1_string, "\x11") \
312 V_(_, ascii_dc2_string, "\x12") \
313 V_(_, ascii_dc3_string, "\x13") \
314 V_(_, ascii_dc4_string, "\x14") \
315 V_(_, ascii_nak_string, "\x15") \
316 V_(_, ascii_syn_string, "\x16") \
317 V_(_, ascii_etb_string, "\x17") \
318 V_(_, ascii_can_string, "\x18") \
319 V_(_, ascii_em_string, "\x19") \
320 V_(_, ascii_sub_string, "\x1a") \
321 V_(_, ascii_esc_string, "\x1b") \
322 V_(_, ascii_fs_string, "\x1c") \
323 V_(_, ascii_gs_string, "\x1d") \
324 V_(_, ascii_rs_string, "\x1e") \
325 V_(_, ascii_us_string, "\x1f") \
326 V_(_, space_string, " ") \
327 V_(_, exclamation_mark_string, "!") \
328 V_(_, double_quotes_string, "\"") \
329 V_(_, hash_string, "#") \
330 V_(_, dollar_string, "$") \
331 V_(_, percent_sign_string, "%") \
332 V_(_, ampersand_string, "&") \
333 V_(_, single_quote_string, "\'") \
334 V_(_, open_parenthesis_string, "(") \
335 V_(_, close_parenthesis_string, ")") \
336 V_(_, asterisk_string, "*") \
337 V_(_, plus_string, "+") \
338 V_(_, comma_string, ",") \
339 V_(_, minus_string, "-") \
340 V_(_, dot_string, ".") \
341 V_(_, slash_string, "/") \
342 V_(_, zero_string, "0") \
343 V_(_, one_string, "1") \
344 V_(_, two_string, "2") \
345 V_(_, three_string, "3") \
346 V_(_, four_string, "4") \
347 V_(_, five_string, "5") \
348 V_(_, six_string, "6") \
349 V_(_, seven_string, "7") \
350 V_(_, eight_string, "8") \
351 V_(_, nine_string, "9") \
352 V_(_, colon_string, ":") \
353 V_(_, semicolon_string, ";") \
354 V_(_, less_than_string, "<") \
355 V_(_, equals_string, "=") \
356 V_(_, greater_than_string, ">") \
357 V_(_, question_mark_string, "?") \
358 V_(_, at_sign_string, "@") \
359 V_(_, A_string, "A") \
360 V_(_, B_string, "B") \
361 V_(_, C_string, "C") \
362 V_(_, D_string, "D") \
363 V_(_, E_string, "E") \
364 V_(_, F_string, "F") \
365 V_(_, G_string, "G") \
366 V_(_, H_string, "H") \
367 V_(_, I_string, "I") \
368 V_(_, J_string, "J") \
369 V_(_, K_string, "K") \
370 V_(_, L_string, "L") \
371 V_(_, M_string, "M") \
372 V_(_, N_string, "N") \
373 V_(_, O_string, "O") \
374 V_(_, P_string, "P") \
375 V_(_, Q_string, "Q") \
376 V_(_, R_string, "R") \
377 V_(_, S_string, "S") \
378 V_(_, T_string, "T") \
379 V_(_, U_string, "U") \
380 V_(_, V_string, "V") \
381 V_(_, W_string, "W") \
382 V_(_, X_string, "X") \
383 V_(_, Y_string, "Y") \
384 V_(_, Z_string, "Z") \
385 V_(_, open_bracket_string, "[") \
386 V_(_, backslash_string, "\\") \
387 V_(_, close_bracket_string, "]") \
388 V_(_, caret_string, "^") \
389 V_(_, underscore_string, "_") \
390 V_(_, backtick_string, "`") \
391 V_(_, a_string, "a") \
392 V_(_, b_string, "b") \
393 V_(_, c_string, "c") \
394 V_(_, d_string, "d") \
395 V_(_, e_string, "e") \
396 V_(_, f_string, "f") \
397 V_(_, g_string, "g") \
398 V_(_, h_string, "h") \
399 V_(_, i_string, "i") \
400 V_(_, j_string, "j") \
401 V_(_, k_string, "k") \
402 V_(_, l_string, "l") \
403 V_(_, m_string, "m") \
404 V_(_, n_string, "n") \
405 V_(_, o_string, "o") \
406 V_(_, p_string, "p") \
407 V_(_, q_string, "q") \
408 V_(_, r_string, "r") \
409 V_(_, s_string, "s") \
410 V_(_, t_string, "t") \
411 V_(_, u_string, "u") \
412 V_(_, v_string, "v") \
413 V_(_, w_string, "w") \
414 V_(_, x_string, "x") \
415 V_(_, y_string, "y") \
416 V_(_, z_string, "z") \
417 V_(_, open_brace_string, "{") \
418 V_(_, pipe_string, "|") \
419 V_(_, close_brace_string, "}") \
420 V_(_, tilde_string, "~") \
421 V_(_, ascii_del_string, "\x7f")
422
423// Generated with the following Python script:
424// ```
425// def escape(c):
426// # Values outside of the ASCII range have to be embedded with
427// # raw \x encoding, so that we embed them as single latin1 bytes
428// # rather than two utf8 bytes.
429// return f'\\x{ord(c):02x}'
430//
431// for i in range(128,256):
432// name = f'latin1_{i:02x}'
433// print(f"V_(_, {name}_string, \"{escape(c)}\") \\")
434// ```
435#define SINGLE_CHARACTER_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
436 SINGLE_CHARACTER_ASCII_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
437 V_(_, latin1_80_string, "\x80") \
438 V_(_, latin1_81_string, "\x81") \
439 V_(_, latin1_82_string, "\x82") \
440 V_(_, latin1_83_string, "\x83") \
441 V_(_, latin1_84_string, "\x84") \
442 V_(_, latin1_85_string, "\x85") \
443 V_(_, latin1_86_string, "\x86") \
444 V_(_, latin1_87_string, "\x87") \
445 V_(_, latin1_88_string, "\x88") \
446 V_(_, latin1_89_string, "\x89") \
447 V_(_, latin1_8a_string, "\x8a") \
448 V_(_, latin1_8b_string, "\x8b") \
449 V_(_, latin1_8c_string, "\x8c") \
450 V_(_, latin1_8d_string, "\x8d") \
451 V_(_, latin1_8e_string, "\x8e") \
452 V_(_, latin1_8f_string, "\x8f") \
453 V_(_, latin1_90_string, "\x90") \
454 V_(_, latin1_91_string, "\x91") \
455 V_(_, latin1_92_string, "\x92") \
456 V_(_, latin1_93_string, "\x93") \
457 V_(_, latin1_94_string, "\x94") \
458 V_(_, latin1_95_string, "\x95") \
459 V_(_, latin1_96_string, "\x96") \
460 V_(_, latin1_97_string, "\x97") \
461 V_(_, latin1_98_string, "\x98") \
462 V_(_, latin1_99_string, "\x99") \
463 V_(_, latin1_9a_string, "\x9a") \
464 V_(_, latin1_9b_string, "\x9b") \
465 V_(_, latin1_9c_string, "\x9c") \
466 V_(_, latin1_9d_string, "\x9d") \
467 V_(_, latin1_9e_string, "\x9e") \
468 V_(_, latin1_9f_string, "\x9f") \
469 V_(_, latin1_a0_string, "\xa0") \
470 V_(_, latin1_a1_string, "\xa1") \
471 V_(_, latin1_a2_string, "\xa2") \
472 V_(_, latin1_a3_string, "\xa3") \
473 V_(_, latin1_a4_string, "\xa4") \
474 V_(_, latin1_a5_string, "\xa5") \
475 V_(_, latin1_a6_string, "\xa6") \
476 V_(_, latin1_a7_string, "\xa7") \
477 V_(_, latin1_a8_string, "\xa8") \
478 V_(_, latin1_a9_string, "\xa9") \
479 V_(_, latin1_aa_string, "\xaa") \
480 V_(_, latin1_ab_string, "\xab") \
481 V_(_, latin1_ac_string, "\xac") \
482 V_(_, latin1_ad_string, "\xad") \
483 V_(_, latin1_ae_string, "\xae") \
484 V_(_, latin1_af_string, "\xaf") \
485 V_(_, latin1_b0_string, "\xb0") \
486 V_(_, latin1_b1_string, "\xb1") \
487 V_(_, latin1_b2_string, "\xb2") \
488 V_(_, latin1_b3_string, "\xb3") \
489 V_(_, latin1_b4_string, "\xb4") \
490 V_(_, latin1_b5_string, "\xb5") \
491 V_(_, latin1_b6_string, "\xb6") \
492 V_(_, latin1_b7_string, "\xb7") \
493 V_(_, latin1_b8_string, "\xb8") \
494 V_(_, latin1_b9_string, "\xb9") \
495 V_(_, latin1_ba_string, "\xba") \
496 V_(_, latin1_bb_string, "\xbb") \
497 V_(_, latin1_bc_string, "\xbc") \
498 V_(_, latin1_bd_string, "\xbd") \
499 V_(_, latin1_be_string, "\xbe") \
500 V_(_, latin1_bf_string, "\xbf") \
501 V_(_, latin1_c0_string, "\xc0") \
502 V_(_, latin1_c1_string, "\xc1") \
503 V_(_, latin1_c2_string, "\xc2") \
504 V_(_, latin1_c3_string, "\xc3") \
505 V_(_, latin1_c4_string, "\xc4") \
506 V_(_, latin1_c5_string, "\xc5") \
507 V_(_, latin1_c6_string, "\xc6") \
508 V_(_, latin1_c7_string, "\xc7") \
509 V_(_, latin1_c8_string, "\xc8") \
510 V_(_, latin1_c9_string, "\xc9") \
511 V_(_, latin1_ca_string, "\xca") \
512 V_(_, latin1_cb_string, "\xcb") \
513 V_(_, latin1_cc_string, "\xcc") \
514 V_(_, latin1_cd_string, "\xcd") \
515 V_(_, latin1_ce_string, "\xce") \
516 V_(_, latin1_cf_string, "\xcf") \
517 V_(_, latin1_d0_string, "\xd0") \
518 V_(_, latin1_d1_string, "\xd1") \
519 V_(_, latin1_d2_string, "\xd2") \
520 V_(_, latin1_d3_string, "\xd3") \
521 V_(_, latin1_d4_string, "\xd4") \
522 V_(_, latin1_d5_string, "\xd5") \
523 V_(_, latin1_d6_string, "\xd6") \
524 V_(_, latin1_d7_string, "\xd7") \
525 V_(_, latin1_d8_string, "\xd8") \
526 V_(_, latin1_d9_string, "\xd9") \
527 V_(_, latin1_da_string, "\xda") \
528 V_(_, latin1_db_string, "\xdb") \
529 V_(_, latin1_dc_string, "\xdc") \
530 V_(_, latin1_dd_string, "\xdd") \
531 V_(_, latin1_de_string, "\xde") \
532 V_(_, latin1_df_string, "\xdf") \
533 V_(_, latin1_e0_string, "\xe0") \
534 V_(_, latin1_e1_string, "\xe1") \
535 V_(_, latin1_e2_string, "\xe2") \
536 V_(_, latin1_e3_string, "\xe3") \
537 V_(_, latin1_e4_string, "\xe4") \
538 V_(_, latin1_e5_string, "\xe5") \
539 V_(_, latin1_e6_string, "\xe6") \
540 V_(_, latin1_e7_string, "\xe7") \
541 V_(_, latin1_e8_string, "\xe8") \
542 V_(_, latin1_e9_string, "\xe9") \
543 V_(_, latin1_ea_string, "\xea") \
544 V_(_, latin1_eb_string, "\xeb") \
545 V_(_, latin1_ec_string, "\xec") \
546 V_(_, latin1_ed_string, "\xed") \
547 V_(_, latin1_ee_string, "\xee") \
548 V_(_, latin1_ef_string, "\xef") \
549 V_(_, latin1_f0_string, "\xf0") \
550 V_(_, latin1_f1_string, "\xf1") \
551 V_(_, latin1_f2_string, "\xf2") \
552 V_(_, latin1_f3_string, "\xf3") \
553 V_(_, latin1_f4_string, "\xf4") \
554 V_(_, latin1_f5_string, "\xf5") \
555 V_(_, latin1_f6_string, "\xf6") \
556 V_(_, latin1_f7_string, "\xf7") \
557 V_(_, latin1_f8_string, "\xf8") \
558 V_(_, latin1_f9_string, "\xf9") \
559 V_(_, latin1_fa_string, "\xfa") \
560 V_(_, latin1_fb_string, "\xfb") \
561 V_(_, latin1_fc_string, "\xfc") \
562 V_(_, latin1_fd_string, "\xfd") \
563 V_(_, latin1_fe_string, "\xfe") \
564 V_(_, latin1_ff_string, "\xff")
565
566#define NOT_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
567 INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
568 SINGLE_CHARACTER_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
569 V(_, add_string, "add") \
570 V(_, AggregateError_string, "AggregateError") \
571 V(_, alphabet_string, "alphabet") \
572 V(_, always_string, "always") \
573 V(_, anonymous_string, "anonymous") \
574 V(_, apply_string, "apply") \
575 V(_, Arguments_string, "Arguments") \
576 V(_, arguments_string, "arguments") \
577 V(_, arguments_to_string, "[object Arguments]") \
578 V(_, Array_string, "Array") \
579 V(_, array_to_string, "[object Array]") \
580 V(_, ArrayBuffer_string, "ArrayBuffer") \
581 V(_, ArrayIterator_string, "Array Iterator") \
582 V(_, as_string, "as") \
583 V(_, assert_string, "assert") \
584 V(_, async_string, "async") \
585 V(_, AtomicsCondition_string, "Atomics.Condition") \
586 V(_, AtomicsMutex_string, "Atomics.Mutex") \
587 V(_, auto_string, "auto") \
588 V(_, BigInt_string, "BigInt") \
589 V(_, bigint_string, "bigint") \
590 V(_, BigInt64Array_string, "BigInt64Array") \
591 V(_, BigUint64Array_string, "BigUint64Array") \
592 V(_, bind_string, "bind") \
593 V(_, blank_string, "blank") \
594 V(_, Boolean_string, "Boolean") \
595 V(_, boolean_string, "boolean") \
596 V(_, boolean_to_string, "[object Boolean]") \
597 V(_, bound__string, "bound ") \
598 V(_, buffer_string, "buffer") \
599 V(_, byte_length_string, "byteLength") \
600 V(_, byte_offset_string, "byteOffset") \
601 V(_, CompileError_string, "CompileError") \
602 V(_, calendar_string, "calendar") \
603 V(_, callee_string, "callee") \
604 V(_, caller_string, "caller") \
605 V(_, cause_string, "cause") \
606 V(_, character_string, "character") \
607 V(_, code_string, "code") \
608 V(_, column_string, "column") \
609 V(_, computed_string, "<computed>") \
610 V(_, conjunction_string, "conjunction") \
611 V(_, console_string, "console") \
612 V(_, constrain_string, "constrain") \
613 V(_, construct_string, "construct") \
614 V(_, current_string, "current") \
615 V(_, Date_string, "Date") \
616 V(_, date_to_string, "[object Date]") \
617 V(_, dateAdd_string, "dateAdd") \
618 V(_, dateFromFields_string, "dateFromFields") \
619 V(_, dateUntil_string, "dateUntil") \
620 V(_, day_string, "day") \
621 V(_, dayOfWeek_string, "dayOfWeek") \
622 V(_, dayOfYear_string, "dayOfYear") \
623 V(_, days_string, "days") \
624 V(_, daysInMonth_string, "daysInMonth") \
625 V(_, daysInWeek_string, "daysInWeek") \
626 V(_, daysInYear_string, "daysInYear") \
627 V(_, default_string, "default") \
628 V(_, defineProperty_string, "defineProperty") \
629 V(_, deleteProperty_string, "deleteProperty") \
630 V(_, detached_string, "detached") \
631 V(_, disjunction_string, "disjunction") \
632 V(_, disposed_string, "disposed") \
633 V(_, done_string, "done") \
634 V(_, dot_brand_string, ".brand") \
635 V(_, dot_catch_string, ".catch") \
636 V(_, dot_default_string, ".default") \
637 V(_, dot_for_string, ".for") \
638 V(_, dot_generator_object_string, ".generator_object") \
639 V(_, dot_home_object_string, ".home_object") \
640 V(_, dot_new_target_string, ".new.target") \
641 V(_, dot_result_string, ".result") \
642 V(_, dot_repl_result_string, ".repl_result") \
643 V(_, dot_static_home_object_string, ".static_home_object") \
644 V(_, dot_switch_tag_string, ".switch_tag") \
645 V(_, dotAll_string, "dotAll") \
646 V(_, Error_string, "Error") \
647 V(_, EvalError_string, "EvalError") \
648 V(_, element_string, "element") \
649 V(_, epochMicroseconds_string, "epochMicroseconds") \
650 V(_, epochMilliseconds_string, "epochMilliseconds") \
651 V(_, epochNanoseconds_string, "epochNanoseconds") \
652 V(_, epochSeconds_string, "epochSeconds") \
653 V(_, era_string, "era") \
654 V(_, eraYear_string, "eraYear") \
655 V(_, error_string, "error") \
656 V(_, errors_string, "errors") \
657 V(_, error_to_string, "[object Error]") \
658 V(_, eval_string, "eval") \
659 V(_, exception_string, "exception") \
660 V(_, exec_string, "exec") \
661 V(_, false_string, "false") \
662 V(_, fields_string, "fields") \
663 V(_, FinalizationRegistry_string, "FinalizationRegistry") \
664 V(_, flags_string, "flags") \
665 V(_, Float16Array_string, "Float16Array") \
666 V(_, Float32Array_string, "Float32Array") \
667 V(_, Float64Array_string, "Float64Array") \
668 V(_, fractionalSecondDigits_string, "fractionalSecondDigits") \
669 V(_, from_string, "from") \
670 V(_, Function_string, "Function") \
671 V(_, function_native_code_string, "function () { [native code] }") \
672 V(_, function_string, "function") \
673 V(_, function_to_string, "[object Function]") \
674 V(_, Generator_string, "Generator") \
675 V(_, get_space_string, "get ") \
676 V(_, get_string, "get") \
677 V(_, getOffsetNanosecondsFor_string, "getOffsetNanosecondsFor") \
678 V(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \
679 V(_, getPossibleInstantsFor_string, "getPossibleInstantsFor") \
680 V(_, getPrototypeOf_string, "getPrototypeOf") \
681 V(_, global_string, "global") \
682 V(_, globalThis_string, "globalThis") \
683 V(_, groups_string, "groups") \
684 V(_, growable_string, "growable") \
685 V(_, has_string, "has") \
686 V(_, hasIndices_string, "hasIndices") \
687 V(_, hour_string, "hour") \
688 V(_, hours_string, "hours") \
689 V(_, hoursInDay_string, "hoursInDay") \
690 V(_, ignoreCase_string, "ignoreCase") \
691 V(_, id_string, "id") \
692 V(_, illegal_access_string, "illegal access") \
693 V(_, illegal_argument_string, "illegal argument") \
694 V(_, inLeapYear_string, "inLeapYear") \
695 V(_, index_string, "index") \
696 V(_, indices_string, "indices") \
697 V(_, Infinity_string, "Infinity") \
698 V(_, infinity_string, "infinity") \
699 V(_, input_string, "input") \
700 V(_, instance_members_initializer_string, "<instance_members_initializer>") \
701 V(_, Int16Array_string, "Int16Array") \
702 V(_, Int32Array_string, "Int32Array") \
703 V(_, Int8Array_string, "Int8Array") \
704 V(_, isExtensible_string, "isExtensible") \
705 V(_, iso8601_string, "iso8601") \
706 V(_, isoDay_string, "isoDay") \
707 V(_, isoHour_string, "isoHour") \
708 V(_, isoMicrosecond_string, "isoMicrosecond") \
709 V(_, isoMillisecond_string, "isoMillisecond") \
710 V(_, isoMinute_string, "isoMinute") \
711 V(_, isoMonth_string, "isoMonth") \
712 V(_, isoNanosecond_string, "isoNanosecond") \
713 V(_, isoSecond_string, "isoSecond") \
714 V(_, isoYear_string, "isoYear") \
715 V(_, Iterator_string, "Iterator") \
716 V(_, jsMemoryEstimate_string, "jsMemoryEstimate") \
717 V(_, jsMemoryRange_string, "jsMemoryRange") \
718 V(_, keys_string, "keys") \
719 V(_, largestUnit_string, "largestUnit") \
720 V(_, last_chunk_handling_string, "lastChunkHandling") \
721 V(_, lastIndex_string, "lastIndex") \
722 V(_, let_string, "let") \
723 V(_, line_string, "line") \
724 V(_, linear_string, "linear") \
725 V(_, LinkError_string, "LinkError") \
726 V(_, long_string, "long") \
727 V(_, Map_string, "Map") \
728 V(_, MapIterator_string, "Map Iterator") \
729 V(_, max_byte_length_string, "maxByteLength") \
730 V(_, medium_string, "medium") \
731 V(_, mergeFields_string, "mergeFields") \
732 V(_, message_string, "message") \
733 V(_, meta_string, "meta") \
734 V(_, minus_Infinity_string, "-Infinity") \
735 V(_, microsecond_string, "microsecond") \
736 V(_, microseconds_string, "microseconds") \
737 V(_, millisecond_string, "millisecond") \
738 V(_, milliseconds_string, "milliseconds") \
739 V(_, minute_string, "minute") \
740 V(_, minutes_string, "minutes") \
741 V(_, Module_string, "Module") \
742 V(_, month_string, "month") \
743 V(_, monthDayFromFields_string, "monthDayFromFields") \
744 V(_, months_string, "months") \
745 V(_, monthsInYear_string, "monthsInYear") \
746 V(_, monthCode_string, "monthCode") \
747 V(_, multiline_string, "multiline") \
748 V(_, NaN_string, "NaN") \
749 V(_, nanosecond_string, "nanosecond") \
750 V(_, nanoseconds_string, "nanoseconds") \
751 V(_, narrow_string, "narrow") \
752 V(_, native_string, "native") \
753 V(_, new_target_string, ".new.target") \
754 V(_, NFC_string, "NFC") \
755 V(_, NFD_string, "NFD") \
756 V(_, NFKC_string, "NFKC") \
757 V(_, NFKD_string, "NFKD") \
758 V(_, not_equal_string, "not-equal") \
759 V(_, null_string, "null") \
760 V(_, null_to_string, "[object Null]") \
761 V(_, Number_string, "Number") \
762 V(_, number_string, "number") \
763 V(_, number_to_string, "[object Number]") \
764 V(_, Object_string, "Object") \
765 V(_, object_string, "object") \
766 V(_, object_to_string, "[object Object]") \
767 V(_, Object_prototype_string, "Object.prototype") \
768 V(_, offset_string, "offset") \
769 V(_, offsetNanoseconds_string, "offsetNanoseconds") \
770 V(_, ok_string, "ok") \
771 V(_, other_string, "other") \
772 V(_, overflow_string, "overflow") \
773 V(_, ownKeys_string, "ownKeys") \
774 V(_, percent_string, "percent") \
775 V(_, plainDate_string, "plainDate") \
776 V(_, plainTime_string, "plainTime") \
777 V(_, position_string, "position") \
778 V(_, preventExtensions_string, "preventExtensions") \
779 V(_, private_constructor_string, "#constructor") \
780 V(_, Promise_string, "Promise") \
781 V(_, promise_string, "promise") \
782 V(_, proto_string, "__proto__") \
783 V(_, proxy_string, "proxy") \
784 V(_, Proxy_string, "Proxy") \
785 V(_, query_colon_string, "(?:)") \
786 V(_, RangeError_string, "RangeError") \
787 V(_, raw_json_string, "rawJSON") \
788 V(_, raw_string, "raw") \
789 V(_, ReferenceError_string, "ReferenceError") \
790 V(_, ReflectGet_string, "Reflect.get") \
791 V(_, ReflectHas_string, "Reflect.has") \
792 V(_, RegExp_string, "RegExp") \
793 V(_, regexp_to_string, "[object RegExp]") \
794 V(_, reject_string, "reject") \
795 V(_, relativeTo_string, "relativeTo") \
796 V(_, resizable_string, "resizable") \
797 V(_, ResizableArrayBuffer_string, "ResizableArrayBuffer") \
798 V(_, return_string, "return") \
799 V(_, revoke_string, "revoke") \
800 V(_, roundingIncrement_string, "roundingIncrement") \
801 V(_, RuntimeError_string, "RuntimeError") \
802 V(_, WebAssemblyException_string, "WebAssembly.Exception") \
803 V(_, WebAssemblyModule_string, "WebAssembly.Module") \
804 V(_, Script_string, "Script") \
805 V(_, script_string, "script") \
806 V(_, second_string, "second") \
807 V(_, seconds_string, "seconds") \
808 V(_, short_string, "short") \
809 V(_, Set_string, "Set") \
810 V(_, sentence_string, "sentence") \
811 V(_, set_space_string, "set ") \
812 V(_, set_string, "set") \
813 V(_, SetIterator_string, "Set Iterator") \
814 V(_, setPrototypeOf_string, "setPrototypeOf") \
815 V(_, ShadowRealm_string, "ShadowRealm") \
816 V(_, SharedArray_string, "SharedArray") \
817 V(_, SharedArrayBuffer_string, "SharedArrayBuffer") \
818 V(_, SharedStruct_string, "SharedStruct") \
819 V(_, sign_string, "sign") \
820 V(_, size_string, "size") \
821 V(_, smallestUnit_string, "smallestUnit") \
822 V(_, source_string, "source") \
823 V(_, sourceText_string, "sourceText") \
824 V(_, stack_string, "stack") \
825 V(_, stackTraceLimit_string, "stackTraceLimit") \
826 V(_, static_initializer_string, "<static_initializer>") \
827 V(_, sticky_string, "sticky") \
828 V(_, String_string, "String") \
829 V(_, string_string, "string") \
830 V(_, string_to_string, "[object String]") \
831 V(_, suppressed_string, "suppressed") \
832 V(_, SuppressedError_string, "SuppressedError") \
833 V(_, SuspendError_string, "SuspendError") \
834 V(_, Symbol_iterator_string, "Symbol.iterator") \
835 V(_, Symbol_match_all_string, "Symbol.matchAll") \
836 V(_, Symbol_replace_string, "Symbol.replace") \
837 V(_, symbol_species_string, "[Symbol.species]") \
838 V(_, Symbol_species_string, "Symbol.species") \
839 V(_, Symbol_split_string, "Symbol.split") \
840 V(_, Symbol_string, "Symbol") \
841 V(_, symbol_string, "symbol") \
842 V(_, SyntaxError_string, "SyntaxError") \
843 V(_, target_string, "target") \
844 V(_, this_function_string, ".this_function") \
845 V(_, this_string, "this") \
846 V(_, throw_string, "throw") \
847 V(_, timed_out_string, "timed-out") \
848 V(_, timeZone_string, "timeZone") \
849 V(_, toJSON_string, "toJSON") \
850 V(_, toString_string, "toString") \
851 V(_, true_string, "true") \
852 V(_, total_string, "total") \
853 V(_, TypedArrayLength_string, "get TypedArray.prototype.length") \
854 V(_, TypeError_string, "TypeError") \
855 V(_, Uint16Array_string, "Uint16Array") \
856 V(_, Uint32Array_string, "Uint32Array") \
857 V(_, Uint8Array_string, "Uint8Array") \
858 V(_, Uint8ClampedArray_string, "Uint8ClampedArray") \
859 V(_, undefined_string, "undefined") \
860 V(_, undefined_to_string, "[object Undefined]") \
861 V(_, unicode_string, "unicode") \
862 V(_, unicodeSets_string, "unicodeSets") \
863 V(_, unit_string, "unit") \
864 V(_, URIError_string, "URIError") \
865 V(_, UTC_string, "UTC") \
866 V(_, WeakMap_string, "WeakMap") \
867 V(_, WeakRef_string, "WeakRef") \
868 V(_, WeakSet_string, "WeakSet") \
869 V(_, week_string, "week") \
870 V(_, weeks_string, "weeks") \
871 V(_, weekOfYear_string, "weekOfYear") \
872 V(_, with_string, "with") \
873 V(_, word_string, "word") \
874 V(_, yearMonthFromFields_string, "yearMonthFromFields") \
875 V(_, year_string, "year") \
876 V(_, years_string, "years")
877
878#define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
879 EXTRA_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
880 IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
881 NOT_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _)
882
883// Symbols to be allocated early on the read only heap
884#define IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
885 V(_, not_mapped_symbol) \
886 V(_, uninitialized_symbol) \
887 V(_, megamorphic_symbol) \
888 V(_, elements_transition_symbol) \
889 V(_, mega_dom_symbol)
890
891#define NOT_IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
892 V(_, array_buffer_wasm_memory_symbol) \
893 V(_, call_site_info_symbol) \
894 V(_, class_fields_symbol) \
895 V(_, class_positions_symbol) \
896 V(_, error_end_pos_symbol) \
897 V(_, error_message_symbol) \
898 V(_, error_script_symbol) \
899 V(_, error_stack_symbol) \
900 V(_, error_start_pos_symbol) \
901 V(_, frozen_symbol) \
902 V(_, interpreter_trampoline_symbol) \
903 V(_, native_context_index_symbol) \
904 V(_, nonextensible_symbol) \
905 V(_, promise_debug_message_symbol) \
906 V(_, promise_forwarding_handler_symbol) \
907 V(_, promise_handled_by_symbol) \
908 V(_, promise_awaited_by_symbol) \
909 V(_, regexp_result_names_symbol) \
910 V(_, regexp_result_regexp_input_symbol) \
911 V(_, regexp_result_regexp_last_index_symbol) \
912 V(_, sealed_symbol) \
913 V(_, shared_struct_map_elements_template_symbol) \
914 V(_, shared_struct_map_registry_key_symbol) \
915 V(_, strict_function_transition_symbol) \
916 V(_, template_literal_function_literal_id_symbol) \
917 V(_, template_literal_slot_id_symbol) \
918 V(_, wasm_cross_instance_call_symbol) \
919 V(_, wasm_exception_tag_symbol) \
920 V(_, wasm_exception_values_symbol) \
921 V(_, wasm_uncatchable_symbol) \
922 V(_, wasm_debug_proxy_cache_symbol) \
923 V(_, wasm_debug_proxy_names_symbol)
924
925#define PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
926 IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
927 NOT_IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _)
928
929#define PUBLIC_SYMBOL_LIST_GENERATOR(V, _) \
930 V(_, async_iterator_symbol, Symbol.asyncIterator) \
931 V(_, intl_fallback_symbol, IntlLegacyConstructedSymbol) \
932 V(_, match_symbol, Symbol.match) \
933 V(_, search_symbol, Symbol.search) \
934 V(_, unscopables_symbol, Symbol.unscopables) \
935 V(_, dispose_symbol, Symbol.dispose) \
936 V(_, async_dispose_symbol, Symbol.asyncDispose)
937
938// Well-Known Symbols are "Public" symbols, which have a bit set which causes
939// them to produce an undefined value when a load results in a failed access
940// check. Because this behaviour is not specified properly as of yet, it only
941// applies to a subset of spec-defined Well-Known Symbols.
942#define WELL_KNOWN_SYMBOL_LIST_GENERATOR(V, _) \
943 V(_, has_instance_symbol, Symbol.hasInstance) \
944 V(_, to_string_tag_symbol, Symbol.toStringTag)
945
946// Custom list of Names that can cause protector invalidations.
947// These Names have to be allocated consecutively for fast checks,
948#define INTERNALIZED_STRING_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
949 V(_, constructor_string, "constructor") \
950 V(_, length_string, "length") \
951 V(_, next_string, "next") \
952 V(_, resolve_string, "resolve") \
953 V(_, then_string, "then") \
954 V(_, valueOf_string, "valueOf")
955
956// Note that the description string should be part of the internalized
957// string roots to make sure we don't accidentally end up allocating the
958// description in between the symbols during deserialization.
959#define SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
960 V(_, iterator_symbol, Symbol.iterator) \
961 V(_, match_all_symbol, Symbol.matchAll) \
962 V(_, replace_symbol, Symbol.replace) \
963 V(_, species_symbol, Symbol.species) \
964 V(_, split_symbol, Symbol.split)
965
966#define PUBLIC_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
967 V(_, to_primitive_symbol, Symbol.toPrimitive)
968
969#define WELL_KNOWN_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
970 V(_, is_concat_spreadable_symbol, Symbol.isConcatSpreadable)
971
972#define MC_INCREMENTAL_SCOPES(F) \
973 /* MC_INCREMENTAL is the top-level incremental marking scope. */ \
974 F(MC_INCREMENTAL) \
975 F(MC_INCREMENTAL_EMBEDDER_TRACING) \
976 F(MC_INCREMENTAL_EXTERNAL_EPILOGUE) \
977 F(MC_INCREMENTAL_EXTERNAL_PROLOGUE) \
978 F(MC_INCREMENTAL_LAYOUT_CHANGE) \
979 F(MC_INCREMENTAL_START) \
980 F(MC_INCREMENTAL_SWEEPING)
981
982#define MINOR_MS_INCREMENTAL_SCOPES(F) F(MINOR_MS_INCREMENTAL_START)
983
984#define TOP_MC_SCOPES(F) \
985 F(MC_CLEAR) \
986 F(MC_EPILOGUE) \
987 F(MC_EVACUATE) \
988 F(MC_FINISH) \
989 F(MC_MARK) \
990 F(MC_PROLOGUE) \
991 F(MC_SWEEP)
992
993#define TOP_MINOR_MS_SCOPES(F) \
994 F(MINOR_MS_CLEAR) \
995 F(MINOR_MS_FINISH) \
996 F(MINOR_MS_MARK) \
997 F(MINOR_MS_SWEEP)
998
999#define MINOR_MS_MAIN_THREAD_SCOPES(F) \
1000 F(MINOR_MARK_SWEEPER) \
1001 F(MINOR_MS) \
1002 TOP_MINOR_MS_SCOPES(F) \
1003 F(MINOR_MS_CLEAR_STRING_FORWARDING_TABLE) \
1004 F(MINOR_MS_CLEAR_STRING_TABLE) \
1005 F(MINOR_MS_CLEAR_WEAK_GLOBAL_HANDLES) \
1006 F(MINOR_MS_COMPLETE_SWEEP_ARRAY_BUFFERS) \
1007 F(MINOR_MS_COMPLETE_SWEEPING) \
1008 F(MINOR_MS_MARK_FINISH_INCREMENTAL) \
1009 F(MINOR_MS_MARK_PARALLEL) \
1010 F(MINOR_MS_MARK_INCREMENTAL_SEED) \
1011 F(MINOR_MS_MARK_SEED) \
1012 F(MINOR_MS_MARK_TRACED_HANDLES) \
1013 F(MINOR_MS_MARK_CONSERVATIVE_STACK) \
1014 F(MINOR_MS_MARK_CLOSURE_PARALLEL) \
1015 F(MINOR_MS_MARK_CLOSURE) \
1016 F(MINOR_MS_MARK_EMBEDDER_PROLOGUE) \
1017 F(MINOR_MS_MARK_EMBEDDER_TRACING) \
1018 F(MINOR_MS_MARK_VERIFY) \
1019 F(MINOR_MS_INCREMENTAL_STEP) \
1020 F(MINOR_MS_SWEEP_NEW) \
1021 F(MINOR_MS_SWEEP_NEW_LO) \
1022 F(MINOR_MS_SWEEP_UPDATE_STRING_TABLE) \
1023 F(MINOR_MS_SWEEP_START_JOBS) \
1024 F(MINOR_MS_FINISH_SWEEP_ARRAY_BUFFERS) \
1025 F(MINOR_MS_FINISH_ENSURE_CAPACITY)
1026
1027#define SCAVENGER_MAIN_THREAD_SCOPES(F) \
1028 F(SCAVENGER) \
1029 F(SCAVENGER_COMPLETE_SWEEP_ARRAY_BUFFERS) \
1030 F(SCAVENGER_FREE_REMEMBERED_SET) \
1031 F(SCAVENGER_RESIZE_NEW_SPACE) \
1032 F(SCAVENGER_SCAVENGE) \
1033 F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFY) \
1034 F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \
1035 F(SCAVENGER_SCAVENGE_PARALLEL) \
1036 F(SCAVENGER_SCAVENGE_PARALLEL_PHASE) \
1037 F(SCAVENGER_SCAVENGE_PIN_OBJECTS) \
1038 F(SCAVENGER_SCAVENGE_ROOTS) \
1039 F(SCAVENGER_SCAVENGE_STACK_ROOTS) \
1040 F(SCAVENGER_SCAVENGE_UPDATE_REFS) \
1041 F(SCAVENGER_SCAVENGE_WEAK) \
1042 F(SCAVENGER_SCAVENGE_FINALIZE) \
1043 F(SCAVENGER_SCAVENGE_RESTORE_AND_QUARANTINE_PINNED) \
1044 F(SCAVENGER_SWEEP_ARRAY_BUFFERS) \
1045 F(SCAVENGER_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL) \
1046 F(SCAVENGER_TRACED_HANDLES_RESET_PARALLEL)
1047
1048#define MC_MAIN_THREAD_SCOPES(F) \
1049 F(MARK_COMPACTOR) \
1050 TOP_MC_SCOPES(F) \
1051 F(MC_CLEAR_DEPENDENT_CODE) \
1052 F(MC_CLEAR_EXTERNAL_STRING_TABLE) \
1053 F(MC_CLEAR_STRING_FORWARDING_TABLE) \
1054 F(MC_CLEAR_FLUSHABLE_BYTECODE) \
1055 F(MC_CLEAR_FLUSHED_JS_FUNCTIONS) \
1056 F(MC_CLEAR_JOIN_JOB) \
1057 F(MC_CLEAR_JS_WEAK_REFERENCES) \
1058 F(MC_CLEAR_MAPS) \
1059 F(MC_CLEAR_SLOTS_BUFFER) \
1060 F(MC_CLEAR_STRING_TABLE) \
1061 F(MC_CLEAR_WEAK_COLLECTIONS) \
1062 F(MC_CLEAR_WEAK_GLOBAL_HANDLES) \
1063 F(MC_CLEAR_WEAK_LISTS) \
1064 F(MC_CLEAR_WEAK_REFERENCES_FILTER_NON_TRIVIAL) \
1065 F(MC_CLEAR_WEAK_REFERENCES_JOIN_FILTER_JOB) \
1066 F(MC_CLEAR_WEAK_REFERENCES_NON_TRIVIAL) \
1067 F(MC_CLEAR_WEAK_REFERENCES_TRIVIAL) \
1068 F(MC_SWEEP_EXTERNAL_POINTER_TABLE) \
1069 F(MC_SWEEP_TRUSTED_POINTER_TABLE) \
1070 F(MC_SWEEP_CODE_POINTER_TABLE) \
1071 F(MC_SWEEP_WASM_CODE_POINTER_TABLE) \
1072 F(MC_SWEEP_JS_DISPATCH_TABLE) \
1073 F(MC_COMPLETE_SWEEP_ARRAY_BUFFERS) \
1074 F(MC_COMPLETE_SWEEPING) \
1075 F(MC_EVACUATE_CANDIDATES) \
1076 F(MC_EVACUATE_CLEAN_UP) \
1077 F(MC_EVACUATE_COPY) \
1078 F(MC_EVACUATE_COPY_PARALLEL) \
1079 F(MC_EVACUATE_EPILOGUE) \
1080 F(MC_EVACUATE_PIN_PAGES) \
1081 F(MC_EVACUATE_PROLOGUE) \
1082 F(MC_EVACUATE_REBALANCE) \
1083 F(MC_EVACUATE_UPDATE_POINTERS) \
1084 F(MC_EVACUATE_UPDATE_POINTERS_CLIENT_HEAPS) \
1085 F(MC_EVACUATE_UPDATE_POINTERS_PARALLEL) \
1086 F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAIN) \
1087 F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \
1088 F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \
1089 F(MC_EVACUATE_UPDATE_POINTERS_POINTER_TABLES) \
1090 F(MC_FINISH_SWEEP_ARRAY_BUFFERS) \
1091 F(MC_MARK_CLIENT_HEAPS) \
1092 F(MC_MARK_EMBEDDER_PROLOGUE) \
1093 F(MC_MARK_EMBEDDER_TRACING) \
1094 F(MC_MARK_FINISH_INCREMENTAL) \
1095 F(MC_MARK_FULL_CLOSURE_PARALLEL) \
1096 F(MC_MARK_FULL_CLOSURE_PARALLEL_JOIN) \
1097 F(MC_MARK_FULL_CLOSURE_SERIAL) \
1098 F(MC_MARK_RETAIN_MAPS) \
1099 F(MC_MARK_ROOTS) \
1100 F(MC_MARK_FULL_CLOSURE) \
1101 F(MC_MARK_WEAK_CLOSURE_EPHEMERON_MARKING) \
1102 F(MC_MARK_WEAK_CLOSURE_EPHEMERON_LINEAR) \
1103 F(MC_MARK_VERIFY) \
1104 F(MC_SWEEP_CODE) \
1105 F(MC_SWEEP_CODE_LO) \
1106 F(MC_SWEEP_LO) \
1107 F(MC_SWEEP_MAP) \
1108 F(MC_SWEEP_NEW) \
1109 F(MC_SWEEP_NEW_LO) \
1110 F(MC_SWEEP_OLD) \
1111 F(MC_SWEEP_SHARED) \
1112 F(MC_SWEEP_SHARED_LO) \
1113 F(MC_SWEEP_TRUSTED) \
1114 F(MC_SWEEP_TRUSTED_LO) \
1115 F(MC_SWEEP_START_JOBS) \
1116 F(MC_WEAKNESS_HANDLING)
1117
1118#define TRACER_SCOPES(F) \
1119 MC_INCREMENTAL_SCOPES(F) \
1120 MINOR_MS_INCREMENTAL_SCOPES(F) \
1121 F(HEAP_EMBEDDER_TRACING_EPILOGUE) \
1122 F(HEAP_EPILOGUE) \
1123 F(HEAP_EPILOGUE_SAFEPOINT) \
1124 F(HEAP_EXTERNAL_EPILOGUE) \
1125 F(HEAP_EXTERNAL_NEAR_HEAP_LIMIT) \
1126 F(HEAP_EXTERNAL_PROLOGUE) \
1127 F(HEAP_EXTERNAL_SECOND_PASS_CALLBACKS) \
1128 F(HEAP_EXTERNAL_WEAK_GLOBAL_HANDLES) \
1129 F(HEAP_PROLOGUE) \
1130 F(HEAP_PROLOGUE_SAFEPOINT) \
1131 MC_MAIN_THREAD_SCOPES(F) \
1132 MINOR_MS_MAIN_THREAD_SCOPES(F) \
1133 F(SAFEPOINT) \
1134 SCAVENGER_MAIN_THREAD_SCOPES(F) \
1135 F(TIME_TO_GLOBAL_SAFEPOINT) \
1136 F(TIME_TO_SAFEPOINT) \
1137 F(UNPARK) \
1138 F(YOUNG_ARRAY_BUFFER_SWEEP) \
1139 F(FULL_ARRAY_BUFFER_SWEEP) \
1140 F(CONSERVATIVE_STACK_SCANNING)
1141
1142#define TRACER_BACKGROUND_SCOPES(F) \
1143 /* FIRST_BACKGROUND_SCOPE = */ \
1144 F(BACKGROUND_YOUNG_ARRAY_BUFFER_SWEEP) \
1145 F(BACKGROUND_FULL_ARRAY_BUFFER_SWEEP) \
1146 F(BACKGROUND_COLLECTION) \
1147 F(BACKGROUND_UNPARK) \
1148 F(BACKGROUND_SAFEPOINT) \
1149 F(MC_BACKGROUND_EVACUATE_COPY) \
1150 F(MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \
1151 F(MC_BACKGROUND_MARKING) \
1152 F(MC_BACKGROUND_SWEEPING) \
1153 F(MINOR_MS_BACKGROUND_MARKING) \
1154 F(MINOR_MS_BACKGROUND_SWEEPING) \
1155 F(MINOR_MS_BACKGROUND_MARKING_CLOSURE) \
1156 F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL) \
1157 F(SCAVENGER_BACKGROUND_QUARANTINED_PAGE_SWEEPING) \
1158 F(SCAVENGER_BACKGROUND_TRACED_HANDLES_RESET_PARALLEL) \
1159 /* LAST_BACKGROUND_SCOPE = */ \
1160 F(SCAVENGER_BACKGROUND_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL)
1161
1162#define TRACER_YOUNG_EPOCH_SCOPES(F) \
1163 F(YOUNG_ARRAY_BUFFER_SWEEP) \
1164 F(BACKGROUND_YOUNG_ARRAY_BUFFER_SWEEP) \
1165 MINOR_MS_INCREMENTAL_SCOPES(F) \
1166 MINOR_MS_MAIN_THREAD_SCOPES(F) \
1167 F(MINOR_MS_BACKGROUND_MARKING) \
1168 F(MINOR_MS_BACKGROUND_SWEEPING) \
1169 F(MINOR_MS_BACKGROUND_MARKING_CLOSURE) \
1170 SCAVENGER_MAIN_THREAD_SCOPES(F) \
1171 F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL) \
1172 F(SCAVENGER_BACKGROUND_QUARANTINED_PAGE_SWEEPING) \
1173 F(SCAVENGER_BACKGROUND_TRACED_HANDLES_RESET_PARALLEL) \
1174 F(SCAVENGER_BACKGROUND_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL)
1175
1176#endif // V8_INIT_HEAP_SYMBOLS_H_