blob: e1017e1193caea4c92acddb818acf283ff3bd6e1 [file] [log] [blame]
// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_INIT_HEAP_SYMBOLS_H_
#define V8_INIT_HEAP_SYMBOLS_H_
#ifdef V8_INTL_SUPPORT
#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
V(_, adoptText_string, "adoptText") \
V(_, approximatelySign_string, "approximatelySign") \
V(_, baseName_string, "baseName") \
V(_, accounting_string, "accounting") \
V(_, breakType_string, "breakType") \
V(_, calendars_string, "calendars") \
V(_, cardinal_string, "cardinal") \
V(_, caseFirst_string, "caseFirst") \
V(_, ceil_string, "ceil") \
V(_, compare_string, "compare") \
V(_, collation_string, "collation") \
V(_, collations_string, "collations") \
V(_, compact_string, "compact") \
V(_, compactDisplay_string, "compactDisplay") \
V(_, currency_string, "currency") \
V(_, currencyDisplay_string, "currencyDisplay") \
V(_, currencySign_string, "currencySign") \
V(_, dateStyle_string, "dateStyle") \
V(_, dateTimeField_string, "dateTimeField") \
V(_, dayPeriod_string, "dayPeriod") \
V(_, daysDisplay_string, "daysDisplay") \
V(_, decimal_string, "decimal") \
V(_, dialect_string, "dialect") \
V(_, digital_string, "digital") \
V(_, direction_string, "direction") \
V(_, endRange_string, "endRange") \
V(_, engineering_string, "engineering") \
V(_, exceptZero_string, "exceptZero") \
V(_, expand_string, "expand") \
V(_, exponentInteger_string, "exponentInteger") \
V(_, exponentMinusSign_string, "exponentMinusSign") \
V(_, exponentSeparator_string, "exponentSeparator") \
V(_, fallback_string, "fallback") \
V(_, first_string, "first") \
V(_, firstDay_string, "firstDay") \
V(_, firstDayOfWeek_string, "firstDayOfWeek") \
V(_, floor_string, "floor") \
V(_, format_string, "format") \
V(_, fraction_string, "fraction") \
V(_, fractionalDigits_string, "fractionalDigits") \
V(_, fractionalSecond_string, "fractionalSecond") \
V(_, full_string, "full") \
V(_, granularity_string, "granularity") \
V(_, grapheme_string, "grapheme") \
V(_, group_string, "group") \
V(_, h11_string, "h11") \
V(_, h12_string, "h12") \
V(_, h23_string, "h23") \
V(_, h24_string, "h24") \
V(_, halfCeil_string, "halfCeil") \
V(_, halfEven_string, "halfEven") \
V(_, halfExpand_string, "halfExpand") \
V(_, halfFloor_string, "halfFloor") \
V(_, halfTrunc_string, "halfTrunc") \
V(_, hour12_string, "hour12") \
V(_, hourCycle_string, "hourCycle") \
V(_, hourCycles_string, "hourCycles") \
V(_, hoursDisplay_string, "hoursDisplay") \
V(_, ideo_string, "ideo") \
V(_, ignorePunctuation_string, "ignorePunctuation") \
V(_, Invalid_Date_string, "Invalid Date") \
V(_, integer_string, "integer") \
V(_, isWordLike_string, "isWordLike") \
V(_, kana_string, "kana") \
V(_, language_string, "language") \
V(_, languageDisplay_string, "languageDisplay") \
V(_, lessPrecision_string, "lessPrecision") \
V(_, letter_string, "letter") \
V(_, list_string, "list") \
V(_, literal_string, "literal") \
V(_, locale_string, "locale") \
V(_, loose_string, "loose") \
V(_, lower_string, "lower") \
V(_, ltr_string, "ltr") \
V(_, maximumFractionDigits_string, "maximumFractionDigits") \
V(_, maximumSignificantDigits_string, "maximumSignificantDigits") \
V(_, microsecondsDisplay_string, "microsecondsDisplay") \
V(_, millisecondsDisplay_string, "millisecondsDisplay") \
V(_, min2_string, "min2") \
V(_, minimalDays_string, "minimalDays") \
V(_, minimumFractionDigits_string, "minimumFractionDigits") \
V(_, minimumIntegerDigits_string, "minimumIntegerDigits") \
V(_, minimumSignificantDigits_string, "minimumSignificantDigits") \
V(_, minus_0, "-0") \
V(_, minusSign_string, "minusSign") \
V(_, minutesDisplay_string, "minutesDisplay") \
V(_, monthsDisplay_string, "monthsDisplay") \
V(_, morePrecision_string, "morePrecision") \
V(_, nan_string, "nan") \
V(_, nanosecondsDisplay_string, "nanosecondsDisplay") \
V(_, narrowSymbol_string, "narrowSymbol") \
V(_, negative_string, "negative") \
V(_, never_string, "never") \
V(_, none_string, "none") \
V(_, notation_string, "notation") \
V(_, normal_string, "normal") \
V(_, numberingSystem_string, "numberingSystem") \
V(_, numberingSystems_string, "numberingSystems") \
V(_, numeric_string, "numeric") \
V(_, ordinal_string, "ordinal") \
V(_, percentSign_string, "percentSign") \
V(_, plusSign_string, "plusSign") \
V(_, quarter_string, "quarter") \
V(_, region_string, "region") \
V(_, relatedYear_string, "relatedYear") \
V(_, roundingMode_string, "roundingMode") \
V(_, roundingPriority_string, "roundingPriority") \
V(_, rtl_string, "rtl") \
V(_, scientific_string, "scientific") \
V(_, secondsDisplay_string, "secondsDisplay") \
V(_, segment_string, "segment") \
V(_, SegmentIterator_string, "Segment Iterator") \
V(_, Segments_string, "Segments") \
V(_, sensitivity_string, "sensitivity") \
V(_, sep_string, "sep") \
V(_, shared_string, "shared") \
V(_, signDisplay_string, "signDisplay") \
V(_, standard_string, "standard") \
V(_, startRange_string, "startRange") \
V(_, strict_string, "strict") \
V(_, stripIfInteger_string, "stripIfInteger") \
V(_, style_string, "style") \
V(_, term_string, "term") \
V(_, textInfo_string, "textInfo") \
V(_, timeStyle_string, "timeStyle") \
V(_, timeZones_string, "timeZones") \
V(_, timeZoneName_string, "timeZoneName") \
V(_, trailingZeroDisplay_string, "trailingZeroDisplay") \
V(_, trunc_string, "trunc") \
V(_, two_digit_string, "2-digit") \
V(_, type_string, "type") \
V(_, unknown_string, "unknown") \
V(_, upper_string, "upper") \
V(_, usage_string, "usage") \
V(_, useGrouping_string, "useGrouping") \
V(_, unitDisplay_string, "unitDisplay") \
V(_, weekday_string, "weekday") \
V(_, weekend_string, "weekend") \
V(_, weeksDisplay_string, "weeksDisplay") \
V(_, weekInfo_string, "weekInfo") \
V(_, yearName_string, "yearName") \
V(_, yearsDisplay_string, "yearsDisplay")
#else // V8_INTL_SUPPORT
#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _)
#endif // V8_INTL_SUPPORT
// Internalized strings to be allocated early on the read only heap and early in
// the roots table. Used to give this string a RootIndex < 32.
#define EXTRA_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
V(_, empty_string, "")
// Internalized strings to be allocated early on the read only heap
#define IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
V(_, prototype_string, "prototype") \
V(_, name_string, "name") \
V(_, enumerable_string, "enumerable") \
V(_, configurable_string, "configurable") \
V(_, value_string, "value") \
V(_, writable_string, "writable")
// Generated with the following Python script:
// ```
// named_chars = {
// # Punctuation
// '!': 'exclamation_mark',
// '"': 'double_quotes',
// '#': 'hash',
// '$': 'dollar',
// '%': 'percent_sign',
// '&': 'ampersand',
// "'": 'single_quote',
// '(': 'open_parenthesis',
// ')': 'close_parenthesis',
// '*': 'asterisk',
// '+': 'plus',
// ',': 'comma',
// '-': 'minus',
// '.': 'dot',
// '/': 'slash',
// ':': 'colon',
// ';': 'semicolon',
// '<': 'less_than',
// '=': 'equals',
// '>': 'greater_than',
// '?': 'question_mark',
// '[': 'open_bracket',
// '\\': 'backslash',
// ']': 'close_bracket',
// '^': 'caret',
// '_': 'underscore',
// '`': 'backtick',
// '{': 'open_brace',
// '|': 'pipe',
// '}': 'close_brace',
// '~': 'tilde',
// '@': 'at_sign',
// ' ': 'space',
// # Numbers
// '0': 'zero',
// '1': 'one',
// '2': 'two',
// '3': 'three',
// '4': 'four',
// '5': 'five',
// '6': 'six',
// '7': 'seven',
// '8': 'eight',
// '9': 'nine',
// # Control Characters
// '\x00': 'ascii_nul', # Null character
// '\x01': 'ascii_soh', # Start of Heading
// '\x02': 'ascii_stx', # Start of Text
// '\x03': 'ascii_etx', # End of Text
// '\x04': 'ascii_eot', # End of Transmission
// '\x05': 'ascii_enq', # Enquiry
// '\x06': 'ascii_ack', # Acknowledge
// '\x07': 'ascii_bel', # Bell
// '\x08': 'ascii_bs', # Backspace
// '\t': 'ascii_ht', # Horizontal Tab
// '\n': 'ascii_lf', # Line Feed
// '\x0b': 'ascii_vt', # Vertical Tab
// '\x0c': 'ascii_ff', # Form Feed
// '\r': 'ascii_cr', # Carriage Return
// '\x0e': 'ascii_so', # Shift Out
// '\x0f': 'ascii_si', # Shift In
// '\x10': 'ascii_dle', # Data Link Escape
// '\x11': 'ascii_dc1', # Device Control 1
// '\x12': 'ascii_dc2', # Device Control 2
// '\x13': 'ascii_dc3', # Device Control 3
// '\x14': 'ascii_dc4', # Device Control 4
// '\x15': 'ascii_nak', # Negative Acknowledge
// '\x16': 'ascii_syn', # Synchronous Idle
// '\x17': 'ascii_etb', # End of Transmission Block
// '\x18': 'ascii_can', # Cancel
// '\x19': 'ascii_em', # End of Medium
// '\x1a': 'ascii_sub', # Substitute
// '\x1b': 'ascii_esc', # Escape
// '\x1c': 'ascii_fs', # File Separator
// '\x1d': 'ascii_gs', # Group Separator
// '\x1e': 'ascii_rs', # Record Separator
// '\x1f': 'ascii_us', # Unit Separator
// '\x7f': 'ascii_del', # Delete
// }
//
// def escape(c):
// if c == '\0':
// return "\\0"
// elif c == '\\':
// return "\\\\"
// elif c == '\n':
// return "\\n"
// elif c == '\t':
// return "\\t"
// elif c == '\r':
// return "\\r"
// elif c == '\v':
// return "\\v"
// elif c == '\b':
// return "\\b"
// elif c == '\f':
// return "\\f"
// elif c == '\a':
// return "\\a"
// elif c == '"':
// return '\\"'
// elif c == '\'':
// return "\\'"
// elif not c.isprintable():
// return f'\\x{ord(c):02x}'
// else:
// return c
//
// for i in range(128):
// c = chr(i)
// if c.isascii() and c.isalpha():
// name = c
// elif c in named_chars:
// name = named_chars[c]
// else:
// raise f"No name for 0x{i:02x}"
//
// print(f"V_(_, {name}_string, \"{escape(c)}\") \\")
// ```
#define SINGLE_CHARACTER_ASCII_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
V_(_, ascii_nul_string, "\0") \
V_(_, ascii_soh_string, "\x01") \
V_(_, ascii_stx_string, "\x02") \
V_(_, ascii_etx_string, "\x03") \
V_(_, ascii_eot_string, "\x04") \
V_(_, ascii_enq_string, "\x05") \
V_(_, ascii_ack_string, "\x06") \
V_(_, ascii_bel_string, "\a") \
V_(_, ascii_bs_string, "\b") \
V_(_, ascii_ht_string, "\t") \
V_(_, ascii_lf_string, "\n") \
V_(_, ascii_vt_string, "\v") \
V_(_, ascii_ff_string, "\f") \
V_(_, ascii_cr_string, "\r") \
V_(_, ascii_so_string, "\x0e") \
V_(_, ascii_si_string, "\x0f") \
V_(_, ascii_dle_string, "\x10") \
V_(_, ascii_dc1_string, "\x11") \
V_(_, ascii_dc2_string, "\x12") \
V_(_, ascii_dc3_string, "\x13") \
V_(_, ascii_dc4_string, "\x14") \
V_(_, ascii_nak_string, "\x15") \
V_(_, ascii_syn_string, "\x16") \
V_(_, ascii_etb_string, "\x17") \
V_(_, ascii_can_string, "\x18") \
V_(_, ascii_em_string, "\x19") \
V_(_, ascii_sub_string, "\x1a") \
V_(_, ascii_esc_string, "\x1b") \
V_(_, ascii_fs_string, "\x1c") \
V_(_, ascii_gs_string, "\x1d") \
V_(_, ascii_rs_string, "\x1e") \
V_(_, ascii_us_string, "\x1f") \
V_(_, space_string, " ") \
V_(_, exclamation_mark_string, "!") \
V_(_, double_quotes_string, "\"") \
V_(_, hash_string, "#") \
V_(_, dollar_string, "$") \
V_(_, percent_sign_string, "%") \
V_(_, ampersand_string, "&") \
V_(_, single_quote_string, "\'") \
V_(_, open_parenthesis_string, "(") \
V_(_, close_parenthesis_string, ")") \
V_(_, asterisk_string, "*") \
V_(_, plus_string, "+") \
V_(_, comma_string, ",") \
V_(_, minus_string, "-") \
V_(_, dot_string, ".") \
V_(_, slash_string, "/") \
V_(_, zero_string, "0") \
V_(_, one_string, "1") \
V_(_, two_string, "2") \
V_(_, three_string, "3") \
V_(_, four_string, "4") \
V_(_, five_string, "5") \
V_(_, six_string, "6") \
V_(_, seven_string, "7") \
V_(_, eight_string, "8") \
V_(_, nine_string, "9") \
V_(_, colon_string, ":") \
V_(_, semicolon_string, ";") \
V_(_, less_than_string, "<") \
V_(_, equals_string, "=") \
V_(_, greater_than_string, ">") \
V_(_, question_mark_string, "?") \
V_(_, at_sign_string, "@") \
V_(_, A_string, "A") \
V_(_, B_string, "B") \
V_(_, C_string, "C") \
V_(_, D_string, "D") \
V_(_, E_string, "E") \
V_(_, F_string, "F") \
V_(_, G_string, "G") \
V_(_, H_string, "H") \
V_(_, I_string, "I") \
V_(_, J_string, "J") \
V_(_, K_string, "K") \
V_(_, L_string, "L") \
V_(_, M_string, "M") \
V_(_, N_string, "N") \
V_(_, O_string, "O") \
V_(_, P_string, "P") \
V_(_, Q_string, "Q") \
V_(_, R_string, "R") \
V_(_, S_string, "S") \
V_(_, T_string, "T") \
V_(_, U_string, "U") \
V_(_, V_string, "V") \
V_(_, W_string, "W") \
V_(_, X_string, "X") \
V_(_, Y_string, "Y") \
V_(_, Z_string, "Z") \
V_(_, open_bracket_string, "[") \
V_(_, backslash_string, "\\") \
V_(_, close_bracket_string, "]") \
V_(_, caret_string, "^") \
V_(_, underscore_string, "_") \
V_(_, backtick_string, "`") \
V_(_, a_string, "a") \
V_(_, b_string, "b") \
V_(_, c_string, "c") \
V_(_, d_string, "d") \
V_(_, e_string, "e") \
V_(_, f_string, "f") \
V_(_, g_string, "g") \
V_(_, h_string, "h") \
V_(_, i_string, "i") \
V_(_, j_string, "j") \
V_(_, k_string, "k") \
V_(_, l_string, "l") \
V_(_, m_string, "m") \
V_(_, n_string, "n") \
V_(_, o_string, "o") \
V_(_, p_string, "p") \
V_(_, q_string, "q") \
V_(_, r_string, "r") \
V_(_, s_string, "s") \
V_(_, t_string, "t") \
V_(_, u_string, "u") \
V_(_, v_string, "v") \
V_(_, w_string, "w") \
V_(_, x_string, "x") \
V_(_, y_string, "y") \
V_(_, z_string, "z") \
V_(_, open_brace_string, "{") \
V_(_, pipe_string, "|") \
V_(_, close_brace_string, "}") \
V_(_, tilde_string, "~") \
V_(_, ascii_del_string, "\x7f")
// Generated with the following Python script:
// ```
// def escape(c):
// # Values outside of the ASCII range have to be embedded with
// # raw \x encoding, so that we embed them as single latin1 bytes
// # rather than two utf8 bytes.
// return f'\\x{ord(c):02x}'
//
// for i in range(128,256):
// name = f'latin1_{i:02x}'
// print(f"V_(_, {name}_string, \"{escape(c)}\") \\")
// ```
#define SINGLE_CHARACTER_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
SINGLE_CHARACTER_ASCII_INTERNALIZED_STRING_LIST_GENERATOR(V_, _) \
V_(_, latin1_80_string, "\x80") \
V_(_, latin1_81_string, "\x81") \
V_(_, latin1_82_string, "\x82") \
V_(_, latin1_83_string, "\x83") \
V_(_, latin1_84_string, "\x84") \
V_(_, latin1_85_string, "\x85") \
V_(_, latin1_86_string, "\x86") \
V_(_, latin1_87_string, "\x87") \
V_(_, latin1_88_string, "\x88") \
V_(_, latin1_89_string, "\x89") \
V_(_, latin1_8a_string, "\x8a") \
V_(_, latin1_8b_string, "\x8b") \
V_(_, latin1_8c_string, "\x8c") \
V_(_, latin1_8d_string, "\x8d") \
V_(_, latin1_8e_string, "\x8e") \
V_(_, latin1_8f_string, "\x8f") \
V_(_, latin1_90_string, "\x90") \
V_(_, latin1_91_string, "\x91") \
V_(_, latin1_92_string, "\x92") \
V_(_, latin1_93_string, "\x93") \
V_(_, latin1_94_string, "\x94") \
V_(_, latin1_95_string, "\x95") \
V_(_, latin1_96_string, "\x96") \
V_(_, latin1_97_string, "\x97") \
V_(_, latin1_98_string, "\x98") \
V_(_, latin1_99_string, "\x99") \
V_(_, latin1_9a_string, "\x9a") \
V_(_, latin1_9b_string, "\x9b") \
V_(_, latin1_9c_string, "\x9c") \
V_(_, latin1_9d_string, "\x9d") \
V_(_, latin1_9e_string, "\x9e") \
V_(_, latin1_9f_string, "\x9f") \
V_(_, latin1_a0_string, "\xa0") \
V_(_, latin1_a1_string, "\xa1") \
V_(_, latin1_a2_string, "\xa2") \
V_(_, latin1_a3_string, "\xa3") \
V_(_, latin1_a4_string, "\xa4") \
V_(_, latin1_a5_string, "\xa5") \
V_(_, latin1_a6_string, "\xa6") \
V_(_, latin1_a7_string, "\xa7") \
V_(_, latin1_a8_string, "\xa8") \
V_(_, latin1_a9_string, "\xa9") \
V_(_, latin1_aa_string, "\xaa") \
V_(_, latin1_ab_string, "\xab") \
V_(_, latin1_ac_string, "\xac") \
V_(_, latin1_ad_string, "\xad") \
V_(_, latin1_ae_string, "\xae") \
V_(_, latin1_af_string, "\xaf") \
V_(_, latin1_b0_string, "\xb0") \
V_(_, latin1_b1_string, "\xb1") \
V_(_, latin1_b2_string, "\xb2") \
V_(_, latin1_b3_string, "\xb3") \
V_(_, latin1_b4_string, "\xb4") \
V_(_, latin1_b5_string, "\xb5") \
V_(_, latin1_b6_string, "\xb6") \
V_(_, latin1_b7_string, "\xb7") \
V_(_, latin1_b8_string, "\xb8") \
V_(_, latin1_b9_string, "\xb9") \
V_(_, latin1_ba_string, "\xba") \
V_(_, latin1_bb_string, "\xbb") \
V_(_, latin1_bc_string, "\xbc") \
V_(_, latin1_bd_string, "\xbd") \
V_(_, latin1_be_string, "\xbe") \
V_(_, latin1_bf_string, "\xbf") \
V_(_, latin1_c0_string, "\xc0") \
V_(_, latin1_c1_string, "\xc1") \
V_(_, latin1_c2_string, "\xc2") \
V_(_, latin1_c3_string, "\xc3") \
V_(_, latin1_c4_string, "\xc4") \
V_(_, latin1_c5_string, "\xc5") \
V_(_, latin1_c6_string, "\xc6") \
V_(_, latin1_c7_string, "\xc7") \
V_(_, latin1_c8_string, "\xc8") \
V_(_, latin1_c9_string, "\xc9") \
V_(_, latin1_ca_string, "\xca") \
V_(_, latin1_cb_string, "\xcb") \
V_(_, latin1_cc_string, "\xcc") \
V_(_, latin1_cd_string, "\xcd") \
V_(_, latin1_ce_string, "\xce") \
V_(_, latin1_cf_string, "\xcf") \
V_(_, latin1_d0_string, "\xd0") \
V_(_, latin1_d1_string, "\xd1") \
V_(_, latin1_d2_string, "\xd2") \
V_(_, latin1_d3_string, "\xd3") \
V_(_, latin1_d4_string, "\xd4") \
V_(_, latin1_d5_string, "\xd5") \
V_(_, latin1_d6_string, "\xd6") \
V_(_, latin1_d7_string, "\xd7") \
V_(_, latin1_d8_string, "\xd8") \
V_(_, latin1_d9_string, "\xd9") \
V_(_, latin1_da_string, "\xda") \
V_(_, latin1_db_string, "\xdb") \
V_(_, latin1_dc_string, "\xdc") \
V_(_, latin1_dd_string, "\xdd") \
V_(_, latin1_de_string, "\xde") \
V_(_, latin1_df_string, "\xdf") \
V_(_, latin1_e0_string, "\xe0") \
V_(_, latin1_e1_string, "\xe1") \
V_(_, latin1_e2_string, "\xe2") \
V_(_, latin1_e3_string, "\xe3") \
V_(_, latin1_e4_string, "\xe4") \
V_(_, latin1_e5_string, "\xe5") \
V_(_, latin1_e6_string, "\xe6") \
V_(_, latin1_e7_string, "\xe7") \
V_(_, latin1_e8_string, "\xe8") \
V_(_, latin1_e9_string, "\xe9") \
V_(_, latin1_ea_string, "\xea") \
V_(_, latin1_eb_string, "\xeb") \
V_(_, latin1_ec_string, "\xec") \
V_(_, latin1_ed_string, "\xed") \
V_(_, latin1_ee_string, "\xee") \
V_(_, latin1_ef_string, "\xef") \
V_(_, latin1_f0_string, "\xf0") \
V_(_, latin1_f1_string, "\xf1") \
V_(_, latin1_f2_string, "\xf2") \
V_(_, latin1_f3_string, "\xf3") \
V_(_, latin1_f4_string, "\xf4") \
V_(_, latin1_f5_string, "\xf5") \
V_(_, latin1_f6_string, "\xf6") \
V_(_, latin1_f7_string, "\xf7") \
V_(_, latin1_f8_string, "\xf8") \
V_(_, latin1_f9_string, "\xf9") \
V_(_, latin1_fa_string, "\xfa") \
V_(_, latin1_fb_string, "\xfb") \
V_(_, latin1_fc_string, "\xfc") \
V_(_, latin1_fd_string, "\xfd") \
V_(_, latin1_fe_string, "\xfe") \
V_(_, latin1_ff_string, "\xff")
#define NOT_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
SINGLE_CHARACTER_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
V(_, add_string, "add") \
V(_, AggregateError_string, "AggregateError") \
V(_, alphabet_string, "alphabet") \
V(_, always_string, "always") \
V(_, anonymous_string, "anonymous") \
V(_, apply_string, "apply") \
V(_, Arguments_string, "Arguments") \
V(_, arguments_string, "arguments") \
V(_, arguments_to_string, "[object Arguments]") \
V(_, Array_string, "Array") \
V(_, array_to_string, "[object Array]") \
V(_, ArrayBuffer_string, "ArrayBuffer") \
V(_, ArrayIterator_string, "Array Iterator") \
V(_, as_string, "as") \
V(_, assert_string, "assert") \
V(_, async_string, "async") \
V(_, AtomicsCondition_string, "Atomics.Condition") \
V(_, AtomicsMutex_string, "Atomics.Mutex") \
V(_, auto_string, "auto") \
V(_, BigInt_string, "BigInt") \
V(_, bigint_string, "bigint") \
V(_, BigInt64Array_string, "BigInt64Array") \
V(_, BigUint64Array_string, "BigUint64Array") \
V(_, bind_string, "bind") \
V(_, blank_string, "blank") \
V(_, Boolean_string, "Boolean") \
V(_, boolean_string, "boolean") \
V(_, boolean_to_string, "[object Boolean]") \
V(_, bound__string, "bound ") \
V(_, buffer_string, "buffer") \
V(_, byte_length_string, "byteLength") \
V(_, byte_offset_string, "byteOffset") \
V(_, CompileError_string, "CompileError") \
V(_, calendar_string, "calendar") \
V(_, callee_string, "callee") \
V(_, caller_string, "caller") \
V(_, cause_string, "cause") \
V(_, character_string, "character") \
V(_, code_string, "code") \
V(_, column_string, "column") \
V(_, computed_string, "<computed>") \
V(_, conjunction_string, "conjunction") \
V(_, console_string, "console") \
V(_, constrain_string, "constrain") \
V(_, construct_string, "construct") \
V(_, current_string, "current") \
V(_, Date_string, "Date") \
V(_, date_to_string, "[object Date]") \
V(_, dateAdd_string, "dateAdd") \
V(_, dateFromFields_string, "dateFromFields") \
V(_, dateUntil_string, "dateUntil") \
V(_, day_string, "day") \
V(_, dayOfWeek_string, "dayOfWeek") \
V(_, dayOfYear_string, "dayOfYear") \
V(_, days_string, "days") \
V(_, daysInMonth_string, "daysInMonth") \
V(_, daysInWeek_string, "daysInWeek") \
V(_, daysInYear_string, "daysInYear") \
V(_, default_string, "default") \
V(_, defineProperty_string, "defineProperty") \
V(_, deleteProperty_string, "deleteProperty") \
V(_, detached_string, "detached") \
V(_, disjunction_string, "disjunction") \
V(_, disposed_string, "disposed") \
V(_, done_string, "done") \
V(_, dot_brand_string, ".brand") \
V(_, dot_catch_string, ".catch") \
V(_, dot_default_string, ".default") \
V(_, dot_for_string, ".for") \
V(_, dot_generator_object_string, ".generator_object") \
V(_, dot_home_object_string, ".home_object") \
V(_, dot_new_target_string, ".new.target") \
V(_, dot_result_string, ".result") \
V(_, dot_repl_result_string, ".repl_result") \
V(_, dot_static_home_object_string, ".static_home_object") \
V(_, dot_switch_tag_string, ".switch_tag") \
V(_, dotAll_string, "dotAll") \
V(_, Error_string, "Error") \
V(_, EvalError_string, "EvalError") \
V(_, element_string, "element") \
V(_, epochMicroseconds_string, "epochMicroseconds") \
V(_, epochMilliseconds_string, "epochMilliseconds") \
V(_, epochNanoseconds_string, "epochNanoseconds") \
V(_, epochSeconds_string, "epochSeconds") \
V(_, era_string, "era") \
V(_, eraYear_string, "eraYear") \
V(_, error_string, "error") \
V(_, errors_string, "errors") \
V(_, error_to_string, "[object Error]") \
V(_, eval_string, "eval") \
V(_, exception_string, "exception") \
V(_, exec_string, "exec") \
V(_, false_string, "false") \
V(_, fields_string, "fields") \
V(_, FinalizationRegistry_string, "FinalizationRegistry") \
V(_, flags_string, "flags") \
V(_, Float16Array_string, "Float16Array") \
V(_, Float32Array_string, "Float32Array") \
V(_, Float64Array_string, "Float64Array") \
V(_, fractionalSecondDigits_string, "fractionalSecondDigits") \
V(_, from_string, "from") \
V(_, Function_string, "Function") \
V(_, function_native_code_string, "function () { [native code] }") \
V(_, function_string, "function") \
V(_, function_to_string, "[object Function]") \
V(_, Generator_string, "Generator") \
V(_, get_space_string, "get ") \
V(_, get_string, "get") \
V(_, getOffsetNanosecondsFor_string, "getOffsetNanosecondsFor") \
V(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \
V(_, getPossibleInstantsFor_string, "getPossibleInstantsFor") \
V(_, getPrototypeOf_string, "getPrototypeOf") \
V(_, global_string, "global") \
V(_, globalThis_string, "globalThis") \
V(_, groups_string, "groups") \
V(_, growable_string, "growable") \
V(_, has_string, "has") \
V(_, hasIndices_string, "hasIndices") \
V(_, hour_string, "hour") \
V(_, hours_string, "hours") \
V(_, hoursInDay_string, "hoursInDay") \
V(_, ignoreCase_string, "ignoreCase") \
V(_, id_string, "id") \
V(_, illegal_access_string, "illegal access") \
V(_, illegal_argument_string, "illegal argument") \
V(_, inLeapYear_string, "inLeapYear") \
V(_, index_string, "index") \
V(_, indices_string, "indices") \
V(_, Infinity_string, "Infinity") \
V(_, infinity_string, "infinity") \
V(_, input_string, "input") \
V(_, instance_members_initializer_string, "<instance_members_initializer>") \
V(_, Int16Array_string, "Int16Array") \
V(_, Int32Array_string, "Int32Array") \
V(_, Int8Array_string, "Int8Array") \
V(_, isExtensible_string, "isExtensible") \
V(_, iso8601_string, "iso8601") \
V(_, isoDay_string, "isoDay") \
V(_, isoHour_string, "isoHour") \
V(_, isoMicrosecond_string, "isoMicrosecond") \
V(_, isoMillisecond_string, "isoMillisecond") \
V(_, isoMinute_string, "isoMinute") \
V(_, isoMonth_string, "isoMonth") \
V(_, isoNanosecond_string, "isoNanosecond") \
V(_, isoSecond_string, "isoSecond") \
V(_, isoYear_string, "isoYear") \
V(_, Iterator_string, "Iterator") \
V(_, jsMemoryEstimate_string, "jsMemoryEstimate") \
V(_, jsMemoryRange_string, "jsMemoryRange") \
V(_, keys_string, "keys") \
V(_, largestUnit_string, "largestUnit") \
V(_, last_chunk_handling_string, "lastChunkHandling") \
V(_, lastIndex_string, "lastIndex") \
V(_, let_string, "let") \
V(_, line_string, "line") \
V(_, linear_string, "linear") \
V(_, LinkError_string, "LinkError") \
V(_, long_string, "long") \
V(_, Map_string, "Map") \
V(_, MapIterator_string, "Map Iterator") \
V(_, max_byte_length_string, "maxByteLength") \
V(_, medium_string, "medium") \
V(_, mergeFields_string, "mergeFields") \
V(_, message_string, "message") \
V(_, meta_string, "meta") \
V(_, minus_Infinity_string, "-Infinity") \
V(_, microsecond_string, "microsecond") \
V(_, microseconds_string, "microseconds") \
V(_, millisecond_string, "millisecond") \
V(_, milliseconds_string, "milliseconds") \
V(_, minute_string, "minute") \
V(_, minutes_string, "minutes") \
V(_, Module_string, "Module") \
V(_, month_string, "month") \
V(_, monthDayFromFields_string, "monthDayFromFields") \
V(_, months_string, "months") \
V(_, monthsInYear_string, "monthsInYear") \
V(_, monthCode_string, "monthCode") \
V(_, multiline_string, "multiline") \
V(_, NaN_string, "NaN") \
V(_, nanosecond_string, "nanosecond") \
V(_, nanoseconds_string, "nanoseconds") \
V(_, narrow_string, "narrow") \
V(_, native_string, "native") \
V(_, new_target_string, ".new.target") \
V(_, NFC_string, "NFC") \
V(_, NFD_string, "NFD") \
V(_, NFKC_string, "NFKC") \
V(_, NFKD_string, "NFKD") \
V(_, not_equal_string, "not-equal") \
V(_, null_string, "null") \
V(_, null_to_string, "[object Null]") \
V(_, Number_string, "Number") \
V(_, number_string, "number") \
V(_, number_to_string, "[object Number]") \
V(_, Object_string, "Object") \
V(_, object_string, "object") \
V(_, object_to_string, "[object Object]") \
V(_, Object_prototype_string, "Object.prototype") \
V(_, offset_string, "offset") \
V(_, offsetNanoseconds_string, "offsetNanoseconds") \
V(_, ok_string, "ok") \
V(_, other_string, "other") \
V(_, overflow_string, "overflow") \
V(_, ownKeys_string, "ownKeys") \
V(_, percent_string, "percent") \
V(_, plainDate_string, "plainDate") \
V(_, plainTime_string, "plainTime") \
V(_, position_string, "position") \
V(_, preventExtensions_string, "preventExtensions") \
V(_, private_constructor_string, "#constructor") \
V(_, Promise_string, "Promise") \
V(_, promise_string, "promise") \
V(_, proto_string, "__proto__") \
V(_, proxy_string, "proxy") \
V(_, Proxy_string, "Proxy") \
V(_, query_colon_string, "(?:)") \
V(_, RangeError_string, "RangeError") \
V(_, raw_json_string, "rawJSON") \
V(_, raw_string, "raw") \
V(_, ReferenceError_string, "ReferenceError") \
V(_, ReflectGet_string, "Reflect.get") \
V(_, ReflectHas_string, "Reflect.has") \
V(_, RegExp_string, "RegExp") \
V(_, regexp_to_string, "[object RegExp]") \
V(_, reject_string, "reject") \
V(_, relativeTo_string, "relativeTo") \
V(_, resizable_string, "resizable") \
V(_, ResizableArrayBuffer_string, "ResizableArrayBuffer") \
V(_, return_string, "return") \
V(_, revoke_string, "revoke") \
V(_, roundingIncrement_string, "roundingIncrement") \
V(_, RuntimeError_string, "RuntimeError") \
V(_, WebAssemblyException_string, "WebAssembly.Exception") \
V(_, WebAssemblyModule_string, "WebAssembly.Module") \
V(_, Script_string, "Script") \
V(_, script_string, "script") \
V(_, second_string, "second") \
V(_, seconds_string, "seconds") \
V(_, short_string, "short") \
V(_, Set_string, "Set") \
V(_, sentence_string, "sentence") \
V(_, set_space_string, "set ") \
V(_, set_string, "set") \
V(_, SetIterator_string, "Set Iterator") \
V(_, setPrototypeOf_string, "setPrototypeOf") \
V(_, ShadowRealm_string, "ShadowRealm") \
V(_, SharedArray_string, "SharedArray") \
V(_, SharedArrayBuffer_string, "SharedArrayBuffer") \
V(_, SharedStruct_string, "SharedStruct") \
V(_, sign_string, "sign") \
V(_, size_string, "size") \
V(_, smallestUnit_string, "smallestUnit") \
V(_, source_string, "source") \
V(_, sourceText_string, "sourceText") \
V(_, stack_string, "stack") \
V(_, stackTraceLimit_string, "stackTraceLimit") \
V(_, static_initializer_string, "<static_initializer>") \
V(_, sticky_string, "sticky") \
V(_, String_string, "String") \
V(_, string_string, "string") \
V(_, string_to_string, "[object String]") \
V(_, suppressed_string, "suppressed") \
V(_, SuppressedError_string, "SuppressedError") \
V(_, SuspendError_string, "SuspendError") \
V(_, Symbol_iterator_string, "Symbol.iterator") \
V(_, Symbol_match_all_string, "Symbol.matchAll") \
V(_, Symbol_replace_string, "Symbol.replace") \
V(_, symbol_species_string, "[Symbol.species]") \
V(_, Symbol_species_string, "Symbol.species") \
V(_, Symbol_split_string, "Symbol.split") \
V(_, Symbol_string, "Symbol") \
V(_, symbol_string, "symbol") \
V(_, SyntaxError_string, "SyntaxError") \
V(_, target_string, "target") \
V(_, this_function_string, ".this_function") \
V(_, this_string, "this") \
V(_, throw_string, "throw") \
V(_, timed_out_string, "timed-out") \
V(_, timeZone_string, "timeZone") \
V(_, toJSON_string, "toJSON") \
V(_, toString_string, "toString") \
V(_, true_string, "true") \
V(_, total_string, "total") \
V(_, TypeError_string, "TypeError") \
V(_, Uint16Array_string, "Uint16Array") \
V(_, Uint32Array_string, "Uint32Array") \
V(_, Uint8Array_string, "Uint8Array") \
V(_, Uint8ClampedArray_string, "Uint8ClampedArray") \
V(_, undefined_string, "undefined") \
V(_, undefined_to_string, "[object Undefined]") \
V(_, unicode_string, "unicode") \
V(_, unicodeSets_string, "unicodeSets") \
V(_, unit_string, "unit") \
V(_, URIError_string, "URIError") \
V(_, UTC_string, "UTC") \
V(_, WeakMap_string, "WeakMap") \
V(_, WeakRef_string, "WeakRef") \
V(_, WeakSet_string, "WeakSet") \
V(_, week_string, "week") \
V(_, weeks_string, "weeks") \
V(_, weekOfYear_string, "weekOfYear") \
V(_, with_string, "with") \
V(_, word_string, "word") \
V(_, yearMonthFromFields_string, "yearMonthFromFields") \
V(_, year_string, "year") \
V(_, years_string, "years")
#define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
EXTRA_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _) \
NOT_IMPORTANT_INTERNALIZED_STRING_LIST_GENERATOR(V, _)
// Symbols to be allocated early on the read only heap
#define IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
V(_, not_mapped_symbol) \
V(_, uninitialized_symbol) \
V(_, megamorphic_symbol) \
V(_, elements_transition_symbol) \
V(_, mega_dom_symbol)
#define NOT_IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
V(_, array_buffer_wasm_memory_symbol) \
V(_, call_site_info_symbol) \
V(_, class_fields_symbol) \
V(_, class_positions_symbol) \
V(_, error_end_pos_symbol) \
V(_, error_message_symbol) \
V(_, error_script_symbol) \
V(_, error_stack_symbol) \
V(_, error_start_pos_symbol) \
V(_, frozen_symbol) \
V(_, interpreter_trampoline_symbol) \
V(_, native_context_index_symbol) \
V(_, nonextensible_symbol) \
V(_, promise_debug_message_symbol) \
V(_, promise_forwarding_handler_symbol) \
V(_, promise_handled_by_symbol) \
V(_, promise_awaited_by_symbol) \
V(_, regexp_result_names_symbol) \
V(_, regexp_result_regexp_input_symbol) \
V(_, regexp_result_regexp_last_index_symbol) \
V(_, sealed_symbol) \
V(_, shared_struct_map_elements_template_symbol) \
V(_, shared_struct_map_registry_key_symbol) \
V(_, strict_function_transition_symbol) \
V(_, template_literal_function_literal_id_symbol) \
V(_, template_literal_slot_id_symbol) \
V(_, wasm_cross_instance_call_symbol) \
V(_, wasm_exception_tag_symbol) \
V(_, wasm_exception_values_symbol) \
V(_, wasm_uncatchable_symbol) \
V(_, wasm_debug_proxy_cache_symbol) \
V(_, wasm_debug_proxy_names_symbol)
#define PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \
NOT_IMPORTANT_PRIVATE_SYMBOL_LIST_GENERATOR(V, _)
#define PUBLIC_SYMBOL_LIST_GENERATOR(V, _) \
V(_, async_iterator_symbol, Symbol.asyncIterator) \
V(_, intl_fallback_symbol, IntlLegacyConstructedSymbol) \
V(_, match_symbol, Symbol.match) \
V(_, search_symbol, Symbol.search) \
V(_, unscopables_symbol, Symbol.unscopables) \
V(_, dispose_symbol, Symbol.dispose) \
V(_, async_dispose_symbol, Symbol.asyncDispose)
// Well-Known Symbols are "Public" symbols, which have a bit set which causes
// them to produce an undefined value when a load results in a failed access
// check. Because this behaviour is not specified properly as of yet, it only
// applies to a subset of spec-defined Well-Known Symbols.
#define WELL_KNOWN_SYMBOL_LIST_GENERATOR(V, _) \
V(_, has_instance_symbol, Symbol.hasInstance) \
V(_, to_string_tag_symbol, Symbol.toStringTag)
// Custom list of Names that can cause protector invalidations.
// These Names have to be allocated consecutively for fast checks,
#define INTERNALIZED_STRING_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
V(_, constructor_string, "constructor") \
V(_, length_string, "length") \
V(_, next_string, "next") \
V(_, resolve_string, "resolve") \
V(_, then_string, "then") \
V(_, valueOf_string, "valueOf")
// Note that the description string should be part of the internalized
// string roots to make sure we don't accidentally end up allocating the
// description in between the symbols during deserialization.
#define SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
V(_, iterator_symbol, Symbol.iterator) \
V(_, match_all_symbol, Symbol.matchAll) \
V(_, replace_symbol, Symbol.replace) \
V(_, species_symbol, Symbol.species) \
V(_, split_symbol, Symbol.split)
#define PUBLIC_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
V(_, to_primitive_symbol, Symbol.toPrimitive)
#define WELL_KNOWN_SYMBOL_FOR_PROTECTOR_LIST_GENERATOR(V, _) \
V(_, is_concat_spreadable_symbol, Symbol.isConcatSpreadable)
#define MC_INCREMENTAL_SCOPES(F) \
/* MC_INCREMENTAL is the top-level incremental marking scope. */ \
F(MC_INCREMENTAL) \
F(MC_INCREMENTAL_EMBEDDER_TRACING) \
F(MC_INCREMENTAL_EXTERNAL_EPILOGUE) \
F(MC_INCREMENTAL_EXTERNAL_PROLOGUE) \
F(MC_INCREMENTAL_LAYOUT_CHANGE) \
F(MC_INCREMENTAL_START) \
F(MC_INCREMENTAL_SWEEPING)
#define MINOR_MS_INCREMENTAL_SCOPES(F) F(MINOR_MS_INCREMENTAL_START)
#define TOP_MC_SCOPES(F) \
F(MC_CLEAR) \
F(MC_EPILOGUE) \
F(MC_EVACUATE) \
F(MC_FINISH) \
F(MC_MARK) \
F(MC_PROLOGUE) \
F(MC_SWEEP)
#define TOP_MINOR_MS_SCOPES(F) \
F(MINOR_MS_CLEAR) \
F(MINOR_MS_FINISH) \
F(MINOR_MS_MARK) \
F(MINOR_MS_SWEEP)
#define MINOR_MS_MAIN_THREAD_SCOPES(F) \
F(MINOR_MARK_SWEEPER) \
F(MINOR_MS) \
TOP_MINOR_MS_SCOPES(F) \
F(MINOR_MS_CLEAR_STRING_FORWARDING_TABLE) \
F(MINOR_MS_CLEAR_STRING_TABLE) \
F(MINOR_MS_CLEAR_WEAK_GLOBAL_HANDLES) \
F(MINOR_MS_COMPLETE_SWEEP_ARRAY_BUFFERS) \
F(MINOR_MS_COMPLETE_SWEEPING) \
F(MINOR_MS_MARK_FINISH_INCREMENTAL) \
F(MINOR_MS_MARK_PARALLEL) \
F(MINOR_MS_MARK_INCREMENTAL_SEED) \
F(MINOR_MS_MARK_SEED) \
F(MINOR_MS_MARK_TRACED_HANDLES) \
F(MINOR_MS_MARK_CONSERVATIVE_STACK) \
F(MINOR_MS_MARK_CLOSURE_PARALLEL) \
F(MINOR_MS_MARK_CLOSURE) \
F(MINOR_MS_MARK_EMBEDDER_PROLOGUE) \
F(MINOR_MS_MARK_EMBEDDER_TRACING) \
F(MINOR_MS_MARK_VERIFY) \
F(MINOR_MS_INCREMENTAL_STEP) \
F(MINOR_MS_SWEEP_NEW) \
F(MINOR_MS_SWEEP_NEW_LO) \
F(MINOR_MS_SWEEP_UPDATE_STRING_TABLE) \
F(MINOR_MS_SWEEP_START_JOBS) \
F(MINOR_MS_FINISH_SWEEP_ARRAY_BUFFERS) \
F(MINOR_MS_FINISH_ENSURE_CAPACITY)
#define SCAVENGER_MAIN_THREAD_SCOPES(F) \
F(SCAVENGER) \
F(SCAVENGER_COMPLETE_SWEEP_ARRAY_BUFFERS) \
F(SCAVENGER_FREE_REMEMBERED_SET) \
F(SCAVENGER_RESIZE_NEW_SPACE) \
F(SCAVENGER_SCAVENGE) \
F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFY) \
F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \
F(SCAVENGER_SCAVENGE_PARALLEL) \
F(SCAVENGER_SCAVENGE_PARALLEL_PHASE) \
F(SCAVENGER_SCAVENGE_PIN_OBJECTS) \
F(SCAVENGER_SCAVENGE_ROOTS) \
F(SCAVENGER_SCAVENGE_STACK_ROOTS) \
F(SCAVENGER_SCAVENGE_UPDATE_REFS) \
F(SCAVENGER_SCAVENGE_WEAK) \
F(SCAVENGER_SCAVENGE_FINALIZE) \
F(SCAVENGER_SWEEP_ARRAY_BUFFERS) \
F(SCAVENGER_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL) \
F(SCAVENGER_TRACED_HANDLES_RESET_PARALLEL)
#define MC_MAIN_THREAD_SCOPES(F) \
F(MARK_COMPACTOR) \
TOP_MC_SCOPES(F) \
F(MC_CLEAR_DEPENDENT_CODE) \
F(MC_CLEAR_EXTERNAL_STRING_TABLE) \
F(MC_CLEAR_STRING_FORWARDING_TABLE) \
F(MC_CLEAR_FLUSHABLE_BYTECODE) \
F(MC_CLEAR_FLUSHED_JS_FUNCTIONS) \
F(MC_CLEAR_JOIN_JOB) \
F(MC_CLEAR_JS_WEAK_REFERENCES) \
F(MC_CLEAR_MAPS) \
F(MC_CLEAR_SLOTS_BUFFER) \
F(MC_CLEAR_STRING_TABLE) \
F(MC_CLEAR_WEAK_COLLECTIONS) \
F(MC_CLEAR_WEAK_GLOBAL_HANDLES) \
F(MC_CLEAR_WEAK_LISTS) \
F(MC_CLEAR_WEAK_REFERENCES_FILTER_NON_TRIVIAL) \
F(MC_CLEAR_WEAK_REFERENCES_JOIN_FILTER_JOB) \
F(MC_CLEAR_WEAK_REFERENCES_NON_TRIVIAL) \
F(MC_CLEAR_WEAK_REFERENCES_TRIVIAL) \
F(MC_SWEEP_EXTERNAL_POINTER_TABLE) \
F(MC_SWEEP_TRUSTED_POINTER_TABLE) \
F(MC_SWEEP_CODE_POINTER_TABLE) \
F(MC_SWEEP_WASM_CODE_POINTER_TABLE) \
F(MC_SWEEP_JS_DISPATCH_TABLE) \
F(MC_COMPLETE_SWEEP_ARRAY_BUFFERS) \
F(MC_COMPLETE_SWEEPING) \
F(MC_EVACUATE_CANDIDATES) \
F(MC_EVACUATE_CLEAN_UP) \
F(MC_EVACUATE_COPY) \
F(MC_EVACUATE_COPY_PARALLEL) \
F(MC_EVACUATE_EPILOGUE) \
F(MC_EVACUATE_PIN_PAGES) \
F(MC_EVACUATE_PROLOGUE) \
F(MC_EVACUATE_REBALANCE) \
F(MC_EVACUATE_UPDATE_POINTERS) \
F(MC_EVACUATE_UPDATE_POINTERS_CLIENT_HEAPS) \
F(MC_EVACUATE_UPDATE_POINTERS_PARALLEL) \
F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAIN) \
F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \
F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \
F(MC_EVACUATE_UPDATE_POINTERS_POINTER_TABLES) \
F(MC_FINISH_SWEEP_ARRAY_BUFFERS) \
F(MC_MARK_CLIENT_HEAPS) \
F(MC_MARK_EMBEDDER_PROLOGUE) \
F(MC_MARK_EMBEDDER_TRACING) \
F(MC_MARK_FINISH_INCREMENTAL) \
F(MC_MARK_FULL_CLOSURE_PARALLEL) \
F(MC_MARK_FULL_CLOSURE_PARALLEL_JOIN) \
F(MC_MARK_FULL_CLOSURE_SERIAL) \
F(MC_MARK_RETAIN_MAPS) \
F(MC_MARK_ROOTS) \
F(MC_MARK_FULL_CLOSURE) \
F(MC_MARK_WEAK_CLOSURE_EPHEMERON_MARKING) \
F(MC_MARK_WEAK_CLOSURE_EPHEMERON_LINEAR) \
F(MC_MARK_VERIFY) \
F(MC_SWEEP_CODE) \
F(MC_SWEEP_CODE_LO) \
F(MC_SWEEP_LO) \
F(MC_SWEEP_MAP) \
F(MC_SWEEP_NEW) \
F(MC_SWEEP_NEW_LO) \
F(MC_SWEEP_OLD) \
F(MC_SWEEP_SHARED) \
F(MC_SWEEP_SHARED_LO) \
F(MC_SWEEP_TRUSTED) \
F(MC_SWEEP_TRUSTED_LO) \
F(MC_SWEEP_START_JOBS) \
F(MC_WEAKNESS_HANDLING)
#define TRACER_SCOPES(F) \
MC_INCREMENTAL_SCOPES(F) \
MINOR_MS_INCREMENTAL_SCOPES(F) \
F(HEAP_EMBEDDER_TRACING_EPILOGUE) \
F(HEAP_EPILOGUE) \
F(HEAP_EPILOGUE_SAFEPOINT) \
F(HEAP_EXTERNAL_EPILOGUE) \
F(HEAP_EXTERNAL_NEAR_HEAP_LIMIT) \
F(HEAP_EXTERNAL_PROLOGUE) \
F(HEAP_EXTERNAL_SECOND_PASS_CALLBACKS) \
F(HEAP_EXTERNAL_WEAK_GLOBAL_HANDLES) \
F(HEAP_PROLOGUE) \
F(HEAP_PROLOGUE_SAFEPOINT) \
MC_MAIN_THREAD_SCOPES(F) \
MINOR_MS_MAIN_THREAD_SCOPES(F) \
F(SAFEPOINT) \
SCAVENGER_MAIN_THREAD_SCOPES(F) \
F(TIME_TO_GLOBAL_SAFEPOINT) \
F(TIME_TO_SAFEPOINT) \
F(UNPARK) \
F(YOUNG_ARRAY_BUFFER_SWEEP) \
F(FULL_ARRAY_BUFFER_SWEEP) \
F(CONSERVATIVE_STACK_SCANNING)
#define TRACER_BACKGROUND_SCOPES(F) \
/* FIRST_BACKGROUND_SCOPE = */ \
F(BACKGROUND_YOUNG_ARRAY_BUFFER_SWEEP) \
F(BACKGROUND_FULL_ARRAY_BUFFER_SWEEP) \
F(BACKGROUND_COLLECTION) \
F(BACKGROUND_UNPARK) \
F(BACKGROUND_SAFEPOINT) \
F(MC_BACKGROUND_EVACUATE_COPY) \
F(MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \
F(MC_BACKGROUND_MARKING) \
F(MC_BACKGROUND_SWEEPING) \
F(MINOR_MS_BACKGROUND_MARKING) \
F(MINOR_MS_BACKGROUND_SWEEPING) \
F(MINOR_MS_BACKGROUND_MARKING_CLOSURE) \
F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL) \
F(SCAVENGER_BACKGROUND_TRACED_HANDLES_RESET_PARALLEL) \
/* LAST_BACKGROUND_SCOPE = */ \
F(SCAVENGER_BACKGROUND_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL)
#define TRACER_YOUNG_EPOCH_SCOPES(F) \
F(YOUNG_ARRAY_BUFFER_SWEEP) \
F(BACKGROUND_YOUNG_ARRAY_BUFFER_SWEEP) \
MINOR_MS_INCREMENTAL_SCOPES(F) \
MINOR_MS_MAIN_THREAD_SCOPES(F) \
F(MINOR_MS_BACKGROUND_MARKING) \
F(MINOR_MS_BACKGROUND_SWEEPING) \
F(MINOR_MS_BACKGROUND_MARKING_CLOSURE) \
SCAVENGER_MAIN_THREAD_SCOPES(F) \
F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL) \
F(SCAVENGER_BACKGROUND_TRACED_HANDLES_RESET_PARALLEL) \
F(SCAVENGER_BACKGROUND_TRACED_HANDLES_COMPUTE_WEAKNESS_PARALLEL)
#endif // V8_INIT_HEAP_SYMBOLS_H_