1 // Copyright 2018 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 // Categories for instance types. 6 const CATEGORIES = new Map([ 7 [ 8 'user', new Set([ 9 'CONS_ONE_BYTE_STRING_TYPE', 10 'CONS_STRING_TYPE', 11 'DESCRIPTOR_ARRAY_TYPE', 12 'ELEMENTS_TYPE', 13 'EXTERNAL_INTERNALIZED_STRING_TYPE', 14 'EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE', 15 'EXTERNAL_ONE_BYTE_STRING_TYPE', 16 'EXTERNAL_STRING_TYPE', 17 'EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE', 18 'FIXED_BIGINT64_ARRAY_TYPE', 19 'FIXED_BIGUINT64_ARRAY_TYPE', 20 'FIXED_DOUBLE_ARRAY_TYPE', 21 'FIXED_FLOAT32_ARRAY_TYPE', 22 'FIXED_FLOAT64_ARRAY_TYPE', 23 'FIXED_INT16_ARRAY_TYPE', 24 'FIXED_INT32_ARRAY_TYPE', 25 'FIXED_INT8_ARRAY_TYPE', 26 'FIXED_UINT16_ARRAY_TYPE', 27 'FIXED_UINT32_ARRAY_TYPE', 28 'FIXED_UINT8_ARRAY_TYPE', 29 'FIXED_UINT8_CLAMPED_ARRAY_TYPE', 30 'FUNCTION_CONTEXT_TYPE', 31 'GLOBAL_ELEMENTS_TYPE', 32 'GLOBAL_PROPERTIES_TYPE', 33 'HEAP_NUMBER_TYPE', 34 'INTERNALIZED_STRING_TYPE', 35 'JS_ARGUMENTS_TYPE', 36 'JS_ARRAY_BUFFER_TYPE', 37 'JS_ARRAY_TYPE', 38 'JS_BOUND_FUNCTION_TYPE', 39 'JS_DATE_TYPE', 40 'JS_ERROR_TYPE', 41 'JS_FAST_ARRAY_KEY_ITERATOR_TYPE', 42 'JS_FAST_ARRAY_VALUE_ITERATOR_TYPE', 43 'JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE', 44 'JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE', 45 'JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE', 46 'JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE', 47 'JS_FUNCTION_TYPE', 48 'JS_GENERATOR_OBJECT_TYPE', 49 'JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE', 50 'JS_GLOBAL_OBJECT_TYPE', 51 'JS_GLOBAL_PROXY_TYPE', 52 'JS_MAP_KEY_VALUE_ITERATOR_TYPE', 53 'JS_MAP_TYPE', 54 'JS_MAP_VALUE_ITERATOR_TYPE', 55 'JS_MESSAGE_OBJECT_TYPE', 56 'JS_OBJECT_TYPE', 57 'JS_PROMISE_TYPE', 58 'JS_REGEXP_TYPE', 59 'JS_SET_TYPE', 60 'JS_SET_VALUE_ITERATOR_TYPE', 61 'JS_STRING_ITERATOR_TYPE', 62 'JS_TO_WASM_FUNCTION', 63 'JS_TYPED_ARRAY_TYPE', 64 'JS_VALUE_TYPE', 65 'JS_WEAK_MAP_TYPE', 66 'MUTABLE_HEAP_NUMBER_TYPE', 67 'NATIVE_CONTEXT_TYPE', 68 'OBJECT_PROPERTY_DICTIONARY_TYPE', 69 'ONE_BYTE_INTERNALIZED_STRING_TYPE', 70 'ONE_BYTE_STRING_TYPE', 71 'OTHER_CONTEXT_TYPE', 72 'PROPERTY_ARRAY_TYPE', 73 'SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE', 74 'SHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE', 75 'SHORT_EXTERNAL_ONE_BYTE_STRING_TYPE', 76 'SHORT_EXTERNAL_STRING_TYPE', 77 'SLICED_ONE_BYTE_STRING_TYPE', 78 'SLICED_STRING_TYPE', 79 'STRING_EXTERNAL_RESOURCE_ONE_BYTE_TYPE', 80 'STRING_EXTERNAL_RESOURCE_TWO_BYTE_TYPE', 81 'STRING_TYPE', 82 'SYMBOL_TYPE', 83 'THIN_ONE_BYTE_STRING_TYPE', 84 'THIN_STRING_TYPE', 85 'WASM_INSTANCE_TYPE', 86 'WASM_MEMORY_TYPE', 87 'WASM_MODULE_TYPE', 88 ]) 89 ], 90 [ 91 'system', new Set([ 92 'ACCESS_CHECK_INFO_TYPE', 93 'ACCESSOR_INFO_TYPE', 94 'ACCESSOR_PAIR_TYPE', 95 'ALLOCATION_MEMENTO_TYPE', 96 'ALLOCATION_SITE_TYPE', 97 'ARRAY_BOILERPLATE_DESCRIPTION_TYPE', 98 'ARRAY_BOILERPLATE_DESCRIPTION_ELEMENTS_TYPE', 99 'BOILERPLATE_ELEMENTS_TYPE', 100 'BOILERPLATE_PROPERTY_ARRAY_TYPE', 101 'BOILERPLATE_PROPERTY_DICTIONARY_TYPE', 102 'BYTE_ARRAY_TYPE', 103 'CALL_HANDLER_INFO_TYPE', 104 'CELL_TYPE', 105 'CODE_STUBS_TABLE_TYPE', 106 'CONTEXT_EXTENSION_TYPE', 107 'ENUM_CACHE_TYPE', 108 'ENUM_INDICES_CACHE_TYPE', 109 'FOREIGN_TYPE', 110 'FUNCTION_TEMPLATE_INFO_ENTRIES_TYPE', 111 'FUNCTION_TEMPLATE_INFO_TYPE', 112 'INTERCEPTOR_INFO_TYPE', 113 'JS_API_OBJECT_TYPE', 114 'JS_ARRAY_BOILERPLATE_TYPE', 115 'JS_OBJECT_BOILERPLATE_TYPE', 116 'JS_SPECIAL_API_OBJECT_TYPE', 117 'MAP_TYPE', 118 'NUMBER_STRING_CACHE_TYPE', 119 'OBJECT_BOILERPLATE_DESCRIPTION_TYPE', 120 'OBJECT_TEMPLATE_INFO_TYPE', 121 'OBJECT_TO_CODE_TYPE', 122 'ODDBALL_TYPE', 123 'PROMISE_REACTION_JOB_INFO_TYPE', 124 'PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE', 125 'PROPERTY_CELL_TYPE', 126 'PROTOTYPE_INFO_TYPE', 127 'PROTOTYPE_USERS_TYPE', 128 'REGEXP_MULTIPLE_CACHE_TYPE', 129 'RETAINED_MAPS_TYPE', 130 'SCOPE_INFO_TYPE', 131 'SCRIPT_LIST_TYPE', 132 'SCRIPT_SHARED_FUNCTION_INFOS_TYPE', 133 'SERIALIZED_OBJECTS_TYPE', 134 'SINGLE_CHARACTER_STRING_CACHE_TYPE', 135 'STACK_FRAME_INFO_TYPE', 136 'STRING_SPLIT_CACHE_TYPE', 137 'STRING_TABLE_TYPE', 138 'TRANSITION_ARRAY_TYPE', 139 'WEAK_NEW_SPACE_OBJECT_TO_CODE_TYPE', 140 ]) 141 ], 142 [ 143 'code', new Set([ 144 'BUILTIN', 145 'BYTECODE_ARRAY_CONSTANT_POOL_TYPE', 146 'BYTECODE_ARRAY_HANDLER_TABLE_TYPE', 147 'BYTECODE_ARRAY_TYPE', 148 'BYTECODE_HANDLER', 149 'CODE_DATA_CONTAINER_TYPE', 150 'DEOPTIMIZATION_DATA_TYPE', 151 'EMBEDDED_OBJECT_TYPE', 152 'FEEDBACK_CELL_TYPE', 153 'FEEDBACK_METADATA_TYPE', 154 'FEEDBACK_VECTOR_ENTRY_TYPE', 155 'FEEDBACK_VECTOR_HEADER_TYPE', 156 'FEEDBACK_VECTOR_SLOT_CALL_TYPE', 157 'FEEDBACK_VECTOR_SLOT_CALL_UNUSED_TYPE', 158 'FEEDBACK_VECTOR_SLOT_ENUM_TYPE', 159 'FEEDBACK_VECTOR_SLOT_LOAD_TYPE', 160 'FEEDBACK_VECTOR_SLOT_LOAD_UNUSED_TYPE', 161 'FEEDBACK_VECTOR_SLOT_OTHER_TYPE', 162 'FEEDBACK_VECTOR_SLOT_STORE_TYPE', 163 'FEEDBACK_VECTOR_SLOT_STORE_UNUSED_TYPE', 164 'FEEDBACK_VECTOR_TYPE', 165 'LOAD_HANDLER_TYPE', 166 'NOSCRIPT_SHARED_FUNCTION_INFOS_TYPE', 167 'OPTIMIZED_CODE_LITERALS_TYPE', 168 'OPTIMIZED_FUNCTION', 169 'PRE_PARSED_SCOPE_DATA_TYPE', 170 'REGEXP', 171 'RELOC_INFO_TYPE', 172 'SCRIPT_SOURCE_EXTERNAL_ONE_BYTE_TYPE', 173 'SCRIPT_SOURCE_EXTERNAL_TWO_BYTE_TYPE', 174 'SCRIPT_SOURCE_EXTERNAL_TYPE', 175 'SCRIPT_SOURCE_NON_EXTERNAL_ONE_BYTE_TYPE', 176 'SCRIPT_SOURCE_NON_EXTERNAL_TWO_BYTE_TYPE', 177 'SCRIPT_TYPE', 178 'SHARED_FUNCTION_INFO_TYPE', 179 'SOURCE_POSITION_TABLE_TYPE', 180 'STORE_HANDLER_TYPE', 181 'STUB', 182 'UNCOMPILED_DATA_WITHOUT_PRE_PARSED_SCOPE_TYPE', 183 'UNCOMPILED_DATA_WITH_PRE_PARSED_SCOPE_TYPE', 184 'UNCOMPILED_JS_FUNCTION_TYPE', 185 'UNCOMPILED_SHARED_FUNCTION_INFO_TYPE' 186 ]) 187 ], 188 ['unclassified', new Set()], 189 ]); 190 191 // Maps category to description text that is shown in html. 192 const CATEGORY_NAMES = new Map([ 193 ['user', 'JS'], 194 ['system', 'Metadata'], 195 ['code', 'Code'], 196 ['unclassified', 'Unclassified'], 197 ]); 198