|  | // Copyright 2018 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. | 
|  |  | 
|  | // Categories for instance types. | 
|  | const CATEGORIES = new Map([ | 
|  | [ | 
|  | 'user', new Set([ | 
|  | 'CONS_ONE_BYTE_STRING_TYPE', | 
|  | 'CONS_STRING_TYPE', | 
|  | 'DESCRIPTOR_ARRAY_TYPE', | 
|  | 'ELEMENTS_TYPE', | 
|  | 'EXTERNAL_INTERNALIZED_STRING_TYPE', | 
|  | 'EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE', | 
|  | 'EXTERNAL_ONE_BYTE_STRING_TYPE', | 
|  | 'EXTERNAL_STRING_TYPE', | 
|  | 'EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE', | 
|  | 'FIXED_BIGINT64_ARRAY_TYPE', | 
|  | 'FIXED_BIGUINT64_ARRAY_TYPE', | 
|  | 'FIXED_DOUBLE_ARRAY_TYPE', | 
|  | 'FIXED_FLOAT32_ARRAY_TYPE', | 
|  | 'FIXED_FLOAT64_ARRAY_TYPE', | 
|  | 'FIXED_INT16_ARRAY_TYPE', | 
|  | 'FIXED_INT32_ARRAY_TYPE', | 
|  | 'FIXED_INT8_ARRAY_TYPE', | 
|  | 'FIXED_UINT16_ARRAY_TYPE', | 
|  | 'FIXED_UINT32_ARRAY_TYPE', | 
|  | 'FIXED_UINT8_ARRAY_TYPE', | 
|  | 'FIXED_UINT8_CLAMPED_ARRAY_TYPE', | 
|  | 'FUNCTION_CONTEXT_TYPE', | 
|  | 'GLOBAL_ELEMENTS_TYPE', | 
|  | 'GLOBAL_PROPERTIES_TYPE', | 
|  | 'HEAP_NUMBER_TYPE', | 
|  | 'INTERNALIZED_STRING_TYPE', | 
|  | 'JS_ARGUMENTS_TYPE', | 
|  | 'JS_ARRAY_BUFFER_TYPE', | 
|  | 'JS_ARRAY_ITERATOR_TYPE', | 
|  | 'JS_ARRAY_TYPE', | 
|  | 'JS_BOUND_FUNCTION_TYPE', | 
|  | 'JS_DATE_TYPE', | 
|  | 'JS_ERROR_TYPE', | 
|  | 'JS_FAST_ARRAY_KEY_ITERATOR_TYPE', | 
|  | 'JS_FAST_ARRAY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_FUNCTION_TYPE', | 
|  | 'JS_GENERATOR_OBJECT_TYPE', | 
|  | 'JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_GLOBAL_OBJECT_TYPE', | 
|  | 'JS_GLOBAL_PROXY_TYPE', | 
|  | 'JS_INTL_COLLATOR_TYPE', | 
|  | 'JS_INTL_DATE_TIME_FORMAT_TYPE', | 
|  | 'JS_INTL_LIST_FORMAT_TYPE', | 
|  | 'JS_INTL_LOCALE_TYPE', | 
|  | 'JS_INTL_NUMBER_FORMAT_TYPE', | 
|  | 'JS_INTL_PLURAL_RULES_TYPE', | 
|  | 'JS_INTL_RELATIVE_TIME_FORMAT_TYPE', | 
|  | 'JS_INTL_SEGMENT_ITERATOR_TYPE', | 
|  | 'JS_INTL_SEGMENTER_TYPE', | 
|  | 'JS_INTL_V8_BREAK_ITERATOR_TYPE', | 
|  | 'JS_MAP_KEY_ITERATOR_TYPE', | 
|  | 'JS_MAP_KEY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_MAP_TYPE', | 
|  | 'JS_MAP_VALUE_ITERATOR_TYPE', | 
|  | 'JS_MESSAGE_OBJECT_TYPE', | 
|  | 'JS_OBJECT_TYPE', | 
|  | 'JS_PRIMITIVE_WRAPPER_TYPE', | 
|  | 'JS_PROMISE_TYPE', | 
|  | 'JS_PROXY_TYPE', | 
|  | 'JS_REGEXP_TYPE', | 
|  | 'JS_SET_KEY_VALUE_ITERATOR_TYPE', | 
|  | 'JS_SET_TYPE', | 
|  | 'JS_SET_VALUE_ITERATOR_TYPE', | 
|  | 'JS_STRING_ITERATOR_TYPE', | 
|  | 'JS_TO_WASM_FUNCTION', | 
|  | 'JS_TYPED_ARRAY_TYPE', | 
|  | 'JS_WEAK_MAP_TYPE', | 
|  | 'MUTABLE_HEAP_NUMBER_TYPE', | 
|  | 'NATIVE_CONTEXT_TYPE', | 
|  | 'OBJECT_PROPERTY_DICTIONARY_TYPE', | 
|  | 'ONE_BYTE_INTERNALIZED_STRING_TYPE', | 
|  | 'ONE_BYTE_STRING_TYPE', | 
|  | 'OTHER_CONTEXT_TYPE', | 
|  | 'PROPERTY_ARRAY_TYPE', | 
|  | 'SLICED_ONE_BYTE_STRING_TYPE', | 
|  | 'SLICED_STRING_TYPE', | 
|  | 'STRING_EXTERNAL_RESOURCE_ONE_BYTE_TYPE', | 
|  | 'STRING_EXTERNAL_RESOURCE_TWO_BYTE_TYPE', | 
|  | 'STRING_TYPE', | 
|  | 'SYMBOL_TYPE', | 
|  | 'THIN_ONE_BYTE_STRING_TYPE', | 
|  | 'THIN_STRING_TYPE', | 
|  | 'UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE', | 
|  | 'UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE', | 
|  | 'UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE', | 
|  | 'UNCACHED_EXTERNAL_STRING_TYPE', | 
|  | 'WASM_INSTANCE_TYPE', | 
|  | 'WASM_MEMORY_TYPE', | 
|  | 'WASM_MODULE_TYPE', | 
|  | ]) | 
|  | ], | 
|  | [ | 
|  | 'system', new Set([ | 
|  | 'ACCESS_CHECK_INFO_TYPE', | 
|  | 'ACCESSOR_INFO_TYPE', | 
|  | 'ACCESSOR_PAIR_TYPE', | 
|  | 'ALLOCATION_MEMENTO_TYPE', | 
|  | 'ALLOCATION_SITE_TYPE', | 
|  | 'ARRAY_BOILERPLATE_DESCRIPTION_TYPE', | 
|  | 'ARRAY_BOILERPLATE_DESCRIPTION_ELEMENTS_TYPE', | 
|  | 'BOILERPLATE_ELEMENTS_TYPE', | 
|  | 'BOILERPLATE_PROPERTY_ARRAY_TYPE', | 
|  | 'BOILERPLATE_PROPERTY_DICTIONARY_TYPE', | 
|  | 'BYTE_ARRAY_TYPE', | 
|  | 'CALL_HANDLER_INFO_TYPE', | 
|  | 'CELL_TYPE', | 
|  | 'CODE_STUBS_TABLE_TYPE', | 
|  | 'CONTEXT_EXTENSION_TYPE', | 
|  | 'ENUM_CACHE_TYPE', | 
|  | 'ENUM_INDICES_CACHE_TYPE', | 
|  | 'FOREIGN_TYPE', | 
|  | 'FUNCTION_TEMPLATE_INFO_ENTRIES_TYPE', | 
|  | 'FUNCTION_TEMPLATE_INFO_TYPE', | 
|  | 'INTERCEPTOR_INFO_TYPE', | 
|  | 'JS_API_OBJECT_TYPE', | 
|  | 'JS_ARRAY_BOILERPLATE_TYPE', | 
|  | 'JS_OBJECT_BOILERPLATE_TYPE', | 
|  | 'JS_SPECIAL_API_OBJECT_TYPE', | 
|  | 'MAP_TYPE', | 
|  | 'NUMBER_STRING_CACHE_TYPE', | 
|  | 'OBJECT_BOILERPLATE_DESCRIPTION_TYPE', | 
|  | 'OBJECT_TEMPLATE_INFO_TYPE', | 
|  | 'OBJECT_TO_CODE_TYPE', | 
|  | 'ODDBALL_TYPE', | 
|  | 'PROMISE_REACTION_JOB_INFO_TYPE', | 
|  | 'PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE', | 
|  | 'PROPERTY_CELL_TYPE', | 
|  | 'PROTOTYPE_INFO_TYPE', | 
|  | 'PROTOTYPE_USERS_TYPE', | 
|  | 'REGEXP_MULTIPLE_CACHE_TYPE', | 
|  | 'RETAINED_MAPS_TYPE', | 
|  | 'SCOPE_INFO_TYPE', | 
|  | 'SCRIPT_LIST_TYPE', | 
|  | 'SCRIPT_SHARED_FUNCTION_INFOS_TYPE', | 
|  | 'SERIALIZED_OBJECTS_TYPE', | 
|  | 'SINGLE_CHARACTER_STRING_CACHE_TYPE', | 
|  | 'STACK_FRAME_INFO_TYPE', | 
|  | 'STRING_SPLIT_CACHE_TYPE', | 
|  | 'STRING_TABLE_TYPE', | 
|  | 'TRANSITION_ARRAY_TYPE', | 
|  | 'WEAK_NEW_SPACE_OBJECT_TO_CODE_TYPE', | 
|  | ]) | 
|  | ], | 
|  | [ | 
|  | 'code', new Set([ | 
|  | 'BUILTIN', | 
|  | 'BYTECODE_ARRAY_CONSTANT_POOL_TYPE', | 
|  | 'BYTECODE_ARRAY_HANDLER_TABLE_TYPE', | 
|  | 'BYTECODE_ARRAY_TYPE', | 
|  | 'BYTECODE_HANDLER', | 
|  | 'CODE_DATA_CONTAINER_TYPE', | 
|  | 'DEOPTIMIZATION_DATA_TYPE', | 
|  | 'EMBEDDED_OBJECT_TYPE', | 
|  | 'FEEDBACK_CELL_TYPE', | 
|  | 'FEEDBACK_METADATA_TYPE', | 
|  | 'FEEDBACK_VECTOR_ENTRY_TYPE', | 
|  | 'FEEDBACK_VECTOR_HEADER_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_CALL_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_CALL_UNUSED_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_ENUM_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_LOAD_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_LOAD_UNUSED_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_OTHER_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_STORE_TYPE', | 
|  | 'FEEDBACK_VECTOR_SLOT_STORE_UNUSED_TYPE', | 
|  | 'FEEDBACK_VECTOR_TYPE', | 
|  | 'LOAD_HANDLER_TYPE', | 
|  | 'NOSCRIPT_SHARED_FUNCTION_INFOS_TYPE', | 
|  | 'OPTIMIZED_CODE_LITERALS_TYPE', | 
|  | 'OPTIMIZED_FUNCTION', | 
|  | 'PREPARSE_DATA_TYPE', | 
|  | 'REGEXP', | 
|  | 'RELOC_INFO_TYPE', | 
|  | 'SCRIPT_SOURCE_EXTERNAL_ONE_BYTE_TYPE', | 
|  | 'SCRIPT_SOURCE_EXTERNAL_TWO_BYTE_TYPE', | 
|  | 'SCRIPT_SOURCE_EXTERNAL_TYPE', | 
|  | 'SCRIPT_SOURCE_NON_EXTERNAL_ONE_BYTE_TYPE', | 
|  | 'SCRIPT_SOURCE_NON_EXTERNAL_TWO_BYTE_TYPE', | 
|  | 'SCRIPT_TYPE', | 
|  | 'SHARED_FUNCTION_INFO_TYPE', | 
|  | 'SOURCE_POSITION_TABLE_TYPE', | 
|  | 'STORE_HANDLER_TYPE', | 
|  | 'STUB', | 
|  | 'UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE', | 
|  | 'UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE', | 
|  | 'UNCOMPILED_JS_FUNCTION_TYPE', | 
|  | 'UNCOMPILED_SHARED_FUNCTION_INFO_TYPE' | 
|  | ]) | 
|  | ], | 
|  | ['unclassified', new Set()], | 
|  | ]); | 
|  |  | 
|  | // Maps category to description text that is shown in html. | 
|  | const CATEGORY_NAMES = new Map([ | 
|  | ['user', 'JS'], | 
|  | ['system', 'Metadata'], | 
|  | ['code', 'Code'], | 
|  | ['unclassified', 'Unclassified'], | 
|  | ]); |