categories.js 6.69 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
// 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',
12
      'ELEMENTS_TYPE',
13 14 15 16 17
      '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',
18 19
      'FIXED_BIGINT64_ARRAY_TYPE',
      'FIXED_BIGUINT64_ARRAY_TYPE',
20 21 22 23 24 25 26 27 28 29
      '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',
30
      'FUNCTION_CONTEXT_TYPE',
31 32
      'GLOBAL_ELEMENTS_TYPE',
      'GLOBAL_PROPERTIES_TYPE',
33 34 35 36
      'HEAP_NUMBER_TYPE',
      'INTERNALIZED_STRING_TYPE',
      'JS_ARGUMENTS_TYPE',
      'JS_ARRAY_BUFFER_TYPE',
37
      'JS_ARRAY_ITERATOR_TYPE',
38 39 40 41 42 43 44 45 46 47 48
      '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',
49
      'JS_GENERATOR_OBJECT_TYPE',
50 51 52
      'JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE',
      'JS_GLOBAL_OBJECT_TYPE',
      'JS_GLOBAL_PROXY_TYPE',
53 54 55 56 57 58 59 60 61 62
      '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',
63
      'JS_MAP_KEY_ITERATOR_TYPE',
64
      'JS_MAP_KEY_VALUE_ITERATOR_TYPE',
65
      'JS_MAP_TYPE',
66
      'JS_MAP_VALUE_ITERATOR_TYPE',
67 68 69
      'JS_MESSAGE_OBJECT_TYPE',
      'JS_OBJECT_TYPE',
      'JS_PROMISE_TYPE',
70
      'JS_PROXY_TYPE',
71
      'JS_REGEXP_TYPE',
72
      'JS_SET_KEY_VALUE_ITERATOR_TYPE',
73
      'JS_SET_TYPE',
74
      'JS_SET_VALUE_ITERATOR_TYPE',
75
      'JS_STRING_ITERATOR_TYPE',
76
      'JS_TO_WASM_FUNCTION',
77 78 79 80
      'JS_TYPED_ARRAY_TYPE',
      'JS_VALUE_TYPE',
      'JS_WEAK_MAP_TYPE',
      'MUTABLE_HEAP_NUMBER_TYPE',
81
      'NATIVE_CONTEXT_TYPE',
82
      'OBJECT_PROPERTY_DICTIONARY_TYPE',
83 84
      'ONE_BYTE_INTERNALIZED_STRING_TYPE',
      'ONE_BYTE_STRING_TYPE',
85
      'OTHER_CONTEXT_TYPE',
86
      'PROPERTY_ARRAY_TYPE',
87 88
      'SLICED_ONE_BYTE_STRING_TYPE',
      'SLICED_STRING_TYPE',
89 90
      'STRING_EXTERNAL_RESOURCE_ONE_BYTE_TYPE',
      'STRING_EXTERNAL_RESOURCE_TWO_BYTE_TYPE',
91 92 93 94
      'STRING_TYPE',
      'SYMBOL_TYPE',
      'THIN_ONE_BYTE_STRING_TYPE',
      'THIN_STRING_TYPE',
95 96 97 98
      'UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE',
      'UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE',
      'UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE',
      'UNCACHED_EXTERNAL_STRING_TYPE',
99 100 101
      'WASM_INSTANCE_TYPE',
      'WASM_MEMORY_TYPE',
      'WASM_MODULE_TYPE',
102 103 104 105
    ])
  ],
  [
    'system', new Set([
106 107 108 109 110
      'ACCESS_CHECK_INFO_TYPE',
      'ACCESSOR_INFO_TYPE',
      'ACCESSOR_PAIR_TYPE',
      'ALLOCATION_MEMENTO_TYPE',
      'ALLOCATION_SITE_TYPE',
111 112
      'ARRAY_BOILERPLATE_DESCRIPTION_TYPE',
      'ARRAY_BOILERPLATE_DESCRIPTION_ELEMENTS_TYPE',
113 114
      'BOILERPLATE_ELEMENTS_TYPE',
      'BOILERPLATE_PROPERTY_ARRAY_TYPE',
115
      'BOILERPLATE_PROPERTY_DICTIONARY_TYPE',
116
      'BYTE_ARRAY_TYPE',
117
      'CALL_HANDLER_INFO_TYPE',
118
      'CELL_TYPE',
119
      'CODE_STUBS_TABLE_TYPE',
120
      'CONTEXT_EXTENSION_TYPE',
121 122
      'ENUM_CACHE_TYPE',
      'ENUM_INDICES_CACHE_TYPE',
123
      'FOREIGN_TYPE',
124
      'FUNCTION_TEMPLATE_INFO_ENTRIES_TYPE',
125 126 127
      'FUNCTION_TEMPLATE_INFO_TYPE',
      'INTERCEPTOR_INFO_TYPE',
      'JS_API_OBJECT_TYPE',
128
      'JS_ARRAY_BOILERPLATE_TYPE',
129
      'JS_OBJECT_BOILERPLATE_TYPE',
130 131
      'JS_SPECIAL_API_OBJECT_TYPE',
      'MAP_TYPE',
132
      'NUMBER_STRING_CACHE_TYPE',
133
      'OBJECT_BOILERPLATE_DESCRIPTION_TYPE',
134
      'OBJECT_TEMPLATE_INFO_TYPE',
135
      'OBJECT_TO_CODE_TYPE',
136 137 138 139 140
      'ODDBALL_TYPE',
      'PROMISE_REACTION_JOB_INFO_TYPE',
      'PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE',
      'PROPERTY_CELL_TYPE',
      'PROTOTYPE_INFO_TYPE',
141
      'PROTOTYPE_USERS_TYPE',
142 143
      'REGEXP_MULTIPLE_CACHE_TYPE',
      'RETAINED_MAPS_TYPE',
144
      'SCOPE_INFO_TYPE',
145
      'SCRIPT_LIST_TYPE',
146
      'SCRIPT_SHARED_FUNCTION_INFOS_TYPE',
147 148
      'SERIALIZED_OBJECTS_TYPE',
      'SINGLE_CHARACTER_STRING_CACHE_TYPE',
149
      'STACK_FRAME_INFO_TYPE',
150 151
      'STRING_SPLIT_CACHE_TYPE',
      'STRING_TABLE_TYPE',
152
      'TRANSITION_ARRAY_TYPE',
153
      'WEAK_NEW_SPACE_OBJECT_TO_CODE_TYPE',
154 155 156 157
    ])
  ],
  [
    'code', new Set([
158 159 160
      'BUILTIN',
      'BYTECODE_ARRAY_CONSTANT_POOL_TYPE',
      'BYTECODE_ARRAY_HANDLER_TABLE_TYPE',
161
      'BYTECODE_ARRAY_TYPE',
162
      'BYTECODE_HANDLER',
163
      'CODE_DATA_CONTAINER_TYPE',
164 165
      'DEOPTIMIZATION_DATA_TYPE',
      'EMBEDDED_OBJECT_TYPE',
166
      'FEEDBACK_CELL_TYPE',
167
      'FEEDBACK_METADATA_TYPE',
168
      'FEEDBACK_VECTOR_ENTRY_TYPE',
169
      'FEEDBACK_VECTOR_HEADER_TYPE',
170 171 172 173 174 175 176 177
      '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',
178 179
      'FEEDBACK_VECTOR_TYPE',
      'LOAD_HANDLER_TYPE',
180
      'NOSCRIPT_SHARED_FUNCTION_INFOS_TYPE',
181
      'OPTIMIZED_CODE_LITERALS_TYPE',
182
      'OPTIMIZED_FUNCTION',
183
      'PREPARSE_DATA_TYPE',
184
      'REGEXP',
185
      'RELOC_INFO_TYPE',
186 187
      'SCRIPT_SOURCE_EXTERNAL_ONE_BYTE_TYPE',
      'SCRIPT_SOURCE_EXTERNAL_TWO_BYTE_TYPE',
188
      'SCRIPT_SOURCE_EXTERNAL_TYPE',
189 190
      'SCRIPT_SOURCE_NON_EXTERNAL_ONE_BYTE_TYPE',
      'SCRIPT_SOURCE_NON_EXTERNAL_TWO_BYTE_TYPE',
191 192
      'SCRIPT_TYPE',
      'SHARED_FUNCTION_INFO_TYPE',
193
      'SOURCE_POSITION_TABLE_TYPE',
194
      'STORE_HANDLER_TYPE',
195
      'STUB',
196 197
      'UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE',
      'UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE',
198
      'UNCOMPILED_JS_FUNCTION_TYPE',
199
      'UNCOMPILED_SHARED_FUNCTION_INFO_TYPE'
200 201 202 203 204 205 206
    ])
  ],
  ['unclassified', new Set()],
]);

// Maps category to description text that is shown in html.
const CATEGORY_NAMES = new Map([
207 208
  ['user', 'JS'],
  ['system', 'Metadata'],
209 210 211
  ['code', 'Code'],
  ['unclassified', 'Unclassified'],
]);