// 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(_, baseName_string, "baseName") \ V(_, accounting_string, "accounting") \ V(_, breakType_string, "breakType") \ V(_, calendar_string, "calendar") \ V(_, cardinal_string, "cardinal") \ V(_, caseFirst_string, "caseFirst") \ V(_, compare_string, "compare") \ V(_, current_string, "current") \ V(_, collation_string, "collation") \ 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(_, day_string, "day") \ V(_, dayPeriod_string, "dayPeriod") \ V(_, decimal_string, "decimal") \ V(_, endRange_string, "endRange") \ V(_, engineering_string, "engineering") \ V(_, era_string, "era") \ V(_, exceptZero_string, "exceptZero") \ V(_, exponentInteger_string, "exponentInteger") \ V(_, exponentMinusSign_string, "exponentMinusSign") \ V(_, exponentSeparator_string, "exponentSeparator") \ V(_, first_string, "first") \ V(_, format_string, "format") \ V(_, fraction_string, "fraction") \ V(_, fractionalSecond_string, "fractionalSecond") \ V(_, fractionalSecondDigits_string, "fractionalSecondDigits") \ 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(_, hour_string, "hour") \ V(_, hour12_string, "hour12") \ V(_, hourCycle_string, "hourCycle") \ V(_, ideo_string, "ideo") \ V(_, ignorePunctuation_string, "ignorePunctuation") \ V(_, Invalid_Date_string, "Invalid Date") \ V(_, integer_string, "integer") \ V(_, kana_string, "kana") \ V(_, language_string, "language") \ 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(_, maximumFractionDigits_string, "maximumFractionDigits") \ V(_, maximumSignificantDigits_string, "maximumSignificantDigits") \ V(_, minimumFractionDigits_string, "minimumFractionDigits") \ V(_, minimumIntegerDigits_string, "minimumIntegerDigits") \ V(_, minimumSignificantDigits_string, "minimumSignificantDigits") \ V(_, minusSign_string, "minusSign") \ V(_, minute_string, "minute") \ V(_, month_string, "month") \ V(_, nan_string, "nan") \ V(_, narrowSymbol_string, "narrowSymbol") \ V(_, never_string, "never") \ V(_, none_string, "none") \ V(_, notation_string, "notation") \ V(_, normal_string, "normal") \ V(_, numberingSystem_string, "numberingSystem") \ 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(_, scientific_string, "scientific") \ V(_, second_string, "second") \ V(_, segment_string, "segment") \ V(_, SegmentIterator_string, "Segment Iterator") \ 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(_, style_string, "style") \ V(_, term_string, "term") \ V(_, timeStyle_string, "timeStyle") \ V(_, timeZone_string, "timeZone") \ V(_, timeZoneName_string, "timeZoneName") \ V(_, type_string, "type") \ V(_, unknown_string, "unknown") \ V(_, upper_string, "upper") \ V(_, usage_string, "usage") \ V(_, useGrouping_string, "useGrouping") \ V(_, UTC_string, "UTC") \ V(_, unit_string, "unit") \ V(_, unitDisplay_string, "unitDisplay") \ V(_, weekday_string, "weekday") \ V(_, year_string, "year") #else // V8_INTL_SUPPORT #define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) #endif // V8_INTL_SUPPORT #define INTERNALIZED_STRING_LIST_GENERATOR(V, _) \ INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \ V(_, add_string, "add") \ V(_, always_string, "always") \ V(_, anonymous_function_string, "(anonymous function)") \ 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(_, async_string, "async") \ V(_, auto_string, "auto") \ V(_, await_string, "await") \ V(_, BigInt_string, "BigInt") \ V(_, bigint_string, "bigint") \ V(_, BigInt64Array_string, "BigInt64Array") \ V(_, BigUint64Array_string, "BigUint64Array") \ V(_, bind_string, "bind") \ 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(_, callee_string, "callee") \ V(_, caller_string, "caller") \ V(_, character_string, "character") \ V(_, closure_string, "(closure)") \ V(_, code_string, "code") \ V(_, column_string, "column") \ V(_, computed_string, "") \ V(_, configurable_string, "configurable") \ V(_, conjunction_string, "conjunction") \ V(_, construct_string, "construct") \ V(_, constructor_string, "constructor") \ V(_, Date_string, "Date") \ V(_, date_to_string, "[object Date]") \ V(_, default_string, "default") \ V(_, defineProperty_string, "defineProperty") \ V(_, deleteProperty_string, "deleteProperty") \ V(_, disjunction_string, "disjunction") \ V(_, display_name_string, "displayName") \ 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_iterator_string, ".iterator") \ V(_, dot_promise_string, ".promise") \ V(_, dot_result_string, ".result") \ V(_, dot_string, ".") \ V(_, dot_switch_tag_string, ".switch_tag") \ V(_, dotAll_string, "dotAll") \ V(_, enumerable_string, "enumerable") \ V(_, element_string, "element") \ V(_, Error_string, "Error") \ V(_, error_to_string, "[object Error]") \ V(_, eval_string, "eval") \ V(_, EvalError_string, "EvalError") \ V(_, exec_string, "exec") \ V(_, false_string, "false") \ V(_, flags_string, "flags") \ V(_, Float32Array_string, "Float32Array") \ V(_, Float64Array_string, "Float64Array") \ 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(_, getOwnPropertyDescriptor_string, "getOwnPropertyDescriptor") \ V(_, getPrototypeOf_string, "getPrototypeOf") \ V(_, global_string, "global") \ V(_, globalThis_string, "globalThis") \ V(_, groups_string, "groups") \ V(_, has_string, "has") \ V(_, ignoreCase_string, "ignoreCase") \ V(_, illegal_access_string, "illegal access") \ V(_, illegal_argument_string, "illegal argument") \ V(_, index_string, "index") \ V(_, Infinity_string, "Infinity") \ V(_, infinity_string, "infinity") \ V(_, input_string, "input") \ V(_, Int16Array_string, "Int16Array") \ V(_, Int32Array_string, "Int32Array") \ V(_, Int8Array_string, "Int8Array") \ V(_, isExtensible_string, "isExtensible") \ V(_, keys_string, "keys") \ V(_, lastIndex_string, "lastIndex") \ V(_, length_string, "length") \ V(_, let_string, "let") \ V(_, line_string, "line") \ V(_, LinkError_string, "LinkError") \ V(_, long_string, "long") \ V(_, Map_string, "Map") \ V(_, MapIterator_string, "Map Iterator") \ V(_, medium_string, "medium") \ V(_, message_string, "message") \ V(_, meta_string, "meta") \ V(_, minus_Infinity_string, "-Infinity") \ V(_, Module_string, "Module") \ V(_, multiline_string, "multiline") \ V(_, name_string, "name") \ V(_, NaN_string, "NaN") \ V(_, narrow_string, "narrow") \ V(_, native_string, "native") \ V(_, new_target_string, ".new.target") \ V(_, next_string, "next") \ V(_, NFC_string, "NFC") \ V(_, NFD_string, "NFD") \ V(_, NFKC_string, "NFKC") \ V(_, NFKD_string, "NFKD") \ V(_, not_equal, "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(_, of_string, "of") \ V(_, ok, "ok") \ V(_, one_string, "1") \ V(_, ownKeys_string, "ownKeys") \ V(_, percent_string, "percent") \ V(_, position_string, "position") \ V(_, preventExtensions_string, "preventExtensions") \ V(_, private_constructor_string, "#constructor") \ V(_, Promise_string, "Promise") \ V(_, proto_string, "__proto__") \ V(_, prototype_string, "prototype") \ V(_, proxy_string, "proxy") \ V(_, Proxy_string, "Proxy") \ V(_, query_colon_string, "(?:)") \ V(_, RangeError_string, "RangeError") \ 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(_, resolve_string, "resolve") \ V(_, return_string, "return") \ V(_, revoke_string, "revoke") \ V(_, RuntimeError_string, "RuntimeError") \ V(_, Script_string, "Script") \ V(_, script_string, "script") \ 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(_, SharedArrayBuffer_string, "SharedArrayBuffer") \ V(_, source_string, "source") \ V(_, sourceText_string, "sourceText") \ V(_, stack_string, "stack") \ V(_, stackTraceLimit_string, "stackTraceLimit") \ V(_, sticky_string, "sticky") \ V(_, String_string, "String") \ V(_, string_string, "string") \ V(_, string_to_string, "[object String]") \ V(_, symbol_species_string, "[Symbol.species]") \ V(_, Symbol_string, "Symbol") \ V(_, symbol_string, "symbol") \ V(_, SyntaxError_string, "SyntaxError") \ V(_, target_string, "target") \ V(_, then_string, "then") \ V(_, this_function_string, ".this_function") \ V(_, this_string, "this") \ V(_, throw_string, "throw") \ V(_, timed_out, "timed-out") \ V(_, toJSON_string, "toJSON") \ V(_, toString_string, "toString") \ V(_, true_string, "true") \ 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(_, URIError_string, "URIError") \ V(_, value_string, "value") \ V(_, valueOf_string, "valueOf") \ V(_, WeakMap_string, "WeakMap") \ V(_, WeakRef_string, "WeakRef") \ V(_, WeakSet_string, "WeakSet") \ V(_, week_string, "week") \ V(_, word_string, "word") \ V(_, writable_string, "writable") \ V(_, zero_string, "0") #define PRIVATE_SYMBOL_LIST_GENERATOR(V, _) \ V(_, call_site_frame_array_symbol) \ V(_, call_site_frame_index_symbol) \ V(_, console_context_id_symbol) \ V(_, console_context_name_symbol) \ V(_, class_fields_symbol) \ V(_, class_positions_symbol) \ V(_, detailed_stack_trace_symbol) \ V(_, elements_transition_symbol) \ V(_, error_end_pos_symbol) \ V(_, error_script_symbol) \ V(_, error_start_pos_symbol) \ V(_, frozen_symbol) \ V(_, generic_symbol) \ V(_, home_object_symbol) \ V(_, interpreter_trampoline_symbol) \ V(_, megamorphic_symbol) \ V(_, native_context_index_symbol) \ V(_, nonextensible_symbol) \ V(_, not_mapped_symbol) \ V(_, premonomorphic_symbol) \ V(_, promise_debug_marker_symbol) \ V(_, promise_forwarding_handler_symbol) \ V(_, promise_handled_by_symbol) \ V(_, sealed_symbol) \ V(_, stack_trace_symbol) \ V(_, strict_function_transition_symbol) \ V(_, wasm_exception_tag_symbol) \ V(_, wasm_exception_values_symbol) \ V(_, uninitialized_symbol) #define PUBLIC_SYMBOL_LIST_GENERATOR(V, _) \ V(_, async_iterator_symbol, Symbol.asyncIterator) \ V(_, iterator_symbol, Symbol.iterator) \ V(_, intl_fallback_symbol, IntlFallback) \ V(_, match_all_symbol, Symbol.matchAll) \ V(_, match_symbol, Symbol.match) \ V(_, replace_symbol, Symbol.replace) \ V(_, search_symbol, Symbol.search) \ V(_, species_symbol, Symbol.species) \ V(_, split_symbol, Symbol.split) \ V(_, to_primitive_symbol, Symbol.toPrimitive) \ V(_, unscopables_symbol, Symbol.unscopables) // 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(_, is_concat_spreadable_symbol, Symbol.isConcatSpreadable) \ V(_, to_string_tag_symbol, Symbol.toStringTag) #define INCREMENTAL_SCOPES(F) \ /* MC_INCREMENTAL is the top-level incremental marking scope. */ \ F(MC_INCREMENTAL) \ F(MC_INCREMENTAL_EMBEDDER_PROLOGUE) \ F(MC_INCREMENTAL_EMBEDDER_TRACING) \ F(MC_INCREMENTAL_EXTERNAL_EPILOGUE) \ F(MC_INCREMENTAL_EXTERNAL_PROLOGUE) \ F(MC_INCREMENTAL_FINALIZE) \ F(MC_INCREMENTAL_FINALIZE_BODY) \ F(MC_INCREMENTAL_LAYOUT_CHANGE) \ F(MC_INCREMENTAL_START) \ F(MC_INCREMENTAL_SWEEPING) #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 TRACER_SCOPES(F) \ INCREMENTAL_SCOPES(F) \ F(HEAP_EMBEDDER_TRACING_EPILOGUE) \ F(HEAP_EPILOGUE) \ F(HEAP_EPILOGUE_REDUCE_NEW_SPACE) \ F(HEAP_EXTERNAL_EPILOGUE) \ F(HEAP_EXTERNAL_PROLOGUE) \ F(HEAP_EXTERNAL_WEAK_GLOBAL_HANDLES) \ F(HEAP_PROLOGUE) \ TOP_MC_SCOPES(F) \ F(MC_CLEAR_DEPENDENT_CODE) \ F(MC_CLEAR_FLUSHABLE_BYTECODE) \ F(MC_CLEAR_FLUSHED_JS_FUNCTIONS) \ F(MC_CLEAR_MAPS) \ F(MC_CLEAR_SLOTS_BUFFER) \ F(MC_CLEAR_STORE_BUFFER) \ F(MC_CLEAR_STRING_TABLE) \ F(MC_CLEAR_WEAK_COLLECTIONS) \ F(MC_CLEAR_WEAK_LISTS) \ F(MC_CLEAR_WEAK_REFERENCES) \ 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_PROLOGUE) \ F(MC_EVACUATE_REBALANCE) \ F(MC_EVACUATE_UPDATE_POINTERS) \ F(MC_EVACUATE_UPDATE_POINTERS_PARALLEL) \ F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAIN) \ F(MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAP_SPACE) \ F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \ F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \ F(MC_MARK_EMBEDDER_PROLOGUE) \ F(MC_MARK_EMBEDDER_TRACING) \ F(MC_MARK_EMBEDDER_TRACING_CLOSURE) \ F(MC_MARK_FINISH_INCREMENTAL) \ F(MC_MARK_MAIN) \ F(MC_MARK_ROOTS) \ F(MC_MARK_WEAK_CLOSURE) \ F(MC_MARK_WEAK_CLOSURE_EPHEMERON) \ F(MC_MARK_WEAK_CLOSURE_EPHEMERON_MARKING) \ F(MC_MARK_WEAK_CLOSURE_EPHEMERON_LINEAR) \ F(MC_MARK_WEAK_CLOSURE_WEAK_HANDLES) \ F(MC_MARK_WEAK_CLOSURE_WEAK_ROOTS) \ F(MC_MARK_WEAK_CLOSURE_HARMONY) \ F(MC_SWEEP_CODE) \ F(MC_SWEEP_MAP) \ F(MC_SWEEP_OLD) \ F(MINOR_MC) \ F(MINOR_MC_CLEAR) \ F(MINOR_MC_CLEAR_STRING_TABLE) \ F(MINOR_MC_CLEAR_WEAK_LISTS) \ F(MINOR_MC_EVACUATE) \ F(MINOR_MC_EVACUATE_CLEAN_UP) \ F(MINOR_MC_EVACUATE_COPY) \ F(MINOR_MC_EVACUATE_COPY_PARALLEL) \ F(MINOR_MC_EVACUATE_EPILOGUE) \ F(MINOR_MC_EVACUATE_PROLOGUE) \ F(MINOR_MC_EVACUATE_REBALANCE) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_PARALLEL) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAK) \ F(MINOR_MC_MARK) \ F(MINOR_MC_MARK_GLOBAL_HANDLES) \ F(MINOR_MC_MARK_PARALLEL) \ F(MINOR_MC_MARK_SEED) \ F(MINOR_MC_MARK_ROOTS) \ F(MINOR_MC_MARK_WEAK) \ F(MINOR_MC_MARKING_DEQUE) \ F(MINOR_MC_RESET_LIVENESS) \ F(MINOR_MC_SWEEPING) \ F(SCAVENGER_FAST_PROMOTE) \ F(SCAVENGER_SCAVENGE) \ F(SCAVENGER_PROCESS_ARRAY_BUFFERS) \ F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFY) \ F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \ F(SCAVENGER_SCAVENGE_PARALLEL) \ F(SCAVENGER_SCAVENGE_ROOTS) \ F(SCAVENGER_SCAVENGE_UPDATE_REFS) \ F(SCAVENGER_SCAVENGE_WEAK) \ F(SCAVENGER_SCAVENGE_FINALIZE) #define TRACER_BACKGROUND_SCOPES(F) \ F(BACKGROUND_ARRAY_BUFFER_FREE) \ F(BACKGROUND_STORE_BUFFER) \ F(BACKGROUND_UNMAPPER) \ F(MC_BACKGROUND_EVACUATE_COPY) \ F(MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \ F(MC_BACKGROUND_MARKING) \ F(MC_BACKGROUND_SWEEPING) \ F(MINOR_MC_BACKGROUND_EVACUATE_COPY) \ F(MINOR_MC_BACKGROUND_EVACUATE_UPDATE_POINTERS) \ F(MINOR_MC_BACKGROUND_MARKING) \ F(SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL) #endif // V8_INIT_HEAP_SYMBOLS_H_