Chromium Code Reviews| Index: src/objects.h |
| diff --git a/src/objects.h b/src/objects.h |
| index 0c03575c1e74b792c729d8fc67ad43fdc13153cd..85720536240fd001c0642b0e4425c172bc62fc10 100644 |
| --- a/src/objects.h |
| +++ b/src/objects.h |
| @@ -293,159 +293,161 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
| // NOTE: Everything following JS_VALUE_TYPE is considered a |
| // JSObject for GC purposes. The first four entries here have typeof |
| // 'object', whereas JS_FUNCTION_TYPE has typeof 'function'. |
| -#define INSTANCE_TYPE_LIST(V) \ |
| - V(INTERNALIZED_STRING_TYPE) \ |
| - V(EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| - V(ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| - V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| - V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| - V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| - V(SHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| - V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| - V(STRING_TYPE) \ |
| - V(CONS_STRING_TYPE) \ |
| - V(EXTERNAL_STRING_TYPE) \ |
| - V(SLICED_STRING_TYPE) \ |
| - V(THIN_STRING_TYPE) \ |
| - V(ONE_BYTE_STRING_TYPE) \ |
| - V(CONS_ONE_BYTE_STRING_TYPE) \ |
| - V(EXTERNAL_ONE_BYTE_STRING_TYPE) \ |
| - V(SLICED_ONE_BYTE_STRING_TYPE) \ |
| - V(THIN_ONE_BYTE_STRING_TYPE) \ |
| - V(EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| - V(SHORT_EXTERNAL_STRING_TYPE) \ |
| - V(SHORT_EXTERNAL_ONE_BYTE_STRING_TYPE) \ |
| - V(SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| - \ |
| - V(SYMBOL_TYPE) \ |
| - V(HEAP_NUMBER_TYPE) \ |
| - V(ODDBALL_TYPE) \ |
| - \ |
| - V(MAP_TYPE) \ |
| - V(CODE_TYPE) \ |
| - V(MUTABLE_HEAP_NUMBER_TYPE) \ |
| - V(FOREIGN_TYPE) \ |
| - V(BYTE_ARRAY_TYPE) \ |
| - V(BYTECODE_ARRAY_TYPE) \ |
| - V(FREE_SPACE_TYPE) \ |
| - \ |
| - V(FIXED_INT8_ARRAY_TYPE) \ |
| - V(FIXED_UINT8_ARRAY_TYPE) \ |
| - V(FIXED_INT16_ARRAY_TYPE) \ |
| - V(FIXED_UINT16_ARRAY_TYPE) \ |
| - V(FIXED_INT32_ARRAY_TYPE) \ |
| - V(FIXED_UINT32_ARRAY_TYPE) \ |
| - V(FIXED_FLOAT32_ARRAY_TYPE) \ |
| - V(FIXED_FLOAT64_ARRAY_TYPE) \ |
| - V(FIXED_UINT8_CLAMPED_ARRAY_TYPE) \ |
| - \ |
| - V(FIXED_DOUBLE_ARRAY_TYPE) \ |
| - V(FILLER_TYPE) \ |
| - \ |
| - V(ACCESSOR_INFO_TYPE) \ |
| - V(ACCESSOR_PAIR_TYPE) \ |
| - V(ACCESS_CHECK_INFO_TYPE) \ |
| - V(INTERCEPTOR_INFO_TYPE) \ |
| - V(CALL_HANDLER_INFO_TYPE) \ |
| - V(FUNCTION_TEMPLATE_INFO_TYPE) \ |
| - V(OBJECT_TEMPLATE_INFO_TYPE) \ |
| - V(ALLOCATION_SITE_TYPE) \ |
| - V(ALLOCATION_MEMENTO_TYPE) \ |
| - V(SCRIPT_TYPE) \ |
| - V(TYPE_FEEDBACK_INFO_TYPE) \ |
| - V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| - V(PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE) \ |
| - V(PROMISE_REACTION_JOB_INFO_TYPE) \ |
| - V(DEBUG_INFO_TYPE) \ |
| - V(BREAK_POINT_INFO_TYPE) \ |
| - V(STACK_FRAME_INFO_TYPE) \ |
| - V(PROTOTYPE_INFO_TYPE) \ |
| - V(TUPLE2_TYPE) \ |
| - V(TUPLE3_TYPE) \ |
| - V(CONTEXT_EXTENSION_TYPE) \ |
| - V(CONSTANT_ELEMENTS_PAIR_TYPE) \ |
| - V(MODULE_TYPE) \ |
| - V(MODULE_INFO_ENTRY_TYPE) \ |
| - V(ASYNC_GENERATOR_REQUEST_TYPE) \ |
| - V(FIXED_ARRAY_TYPE) \ |
| - V(TRANSITION_ARRAY_TYPE) \ |
| - V(SHARED_FUNCTION_INFO_TYPE) \ |
| - V(CELL_TYPE) \ |
| - V(WEAK_CELL_TYPE) \ |
| - V(PROPERTY_CELL_TYPE) \ |
| - \ |
| - V(JS_PROXY_TYPE) \ |
| - V(JS_GLOBAL_OBJECT_TYPE) \ |
| - V(JS_GLOBAL_PROXY_TYPE) \ |
| - V(JS_SPECIAL_API_OBJECT_TYPE) \ |
| - V(JS_VALUE_TYPE) \ |
| - V(JS_MESSAGE_OBJECT_TYPE) \ |
| - V(JS_DATE_TYPE) \ |
| - V(JS_API_OBJECT_TYPE) \ |
| - V(JS_OBJECT_TYPE) \ |
| - V(JS_ARGUMENTS_TYPE) \ |
| - V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
| - V(JS_GENERATOR_OBJECT_TYPE) \ |
| - V(JS_ASYNC_GENERATOR_OBJECT_TYPE) \ |
| - V(JS_MODULE_NAMESPACE_TYPE) \ |
| - V(JS_ARRAY_TYPE) \ |
| - V(JS_ARRAY_BUFFER_TYPE) \ |
| - V(JS_TYPED_ARRAY_TYPE) \ |
| - V(JS_DATA_VIEW_TYPE) \ |
| - V(JS_SET_TYPE) \ |
| - V(JS_MAP_TYPE) \ |
| - V(JS_SET_ITERATOR_TYPE) \ |
| - V(JS_MAP_ITERATOR_TYPE) \ |
| - V(JS_WEAK_MAP_TYPE) \ |
| - V(JS_WEAK_SET_TYPE) \ |
| - V(JS_PROMISE_CAPABILITY_TYPE) \ |
| - V(JS_PROMISE_TYPE) \ |
| - V(JS_REGEXP_TYPE) \ |
| - V(JS_ERROR_TYPE) \ |
| - V(JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) \ |
| - V(JS_STRING_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \ |
| - V(JS_FAST_ARRAY_KEY_ITERATOR_TYPE) \ |
| - V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_INT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - V(JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE) \ |
| - \ |
| - V(JS_BOUND_FUNCTION_TYPE) \ |
| +#define INSTANCE_TYPE_LIST(V) \ |
| + V(INTERNALIZED_STRING_TYPE) \ |
| + V(EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| + V(ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| + V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| + V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| + V(SHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \ |
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| + V(STRING_TYPE) \ |
| + V(CONS_STRING_TYPE) \ |
| + V(EXTERNAL_STRING_TYPE) \ |
| + V(SLICED_STRING_TYPE) \ |
| + V(THIN_STRING_TYPE) \ |
| + V(ONE_BYTE_STRING_TYPE) \ |
| + V(CONS_ONE_BYTE_STRING_TYPE) \ |
| + V(EXTERNAL_ONE_BYTE_STRING_TYPE) \ |
| + V(SLICED_ONE_BYTE_STRING_TYPE) \ |
| + V(THIN_ONE_BYTE_STRING_TYPE) \ |
| + V(EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| + V(SHORT_EXTERNAL_STRING_TYPE) \ |
| + V(SHORT_EXTERNAL_ONE_BYTE_STRING_TYPE) \ |
| + V(SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| + \ |
| + V(SYMBOL_TYPE) \ |
| + V(HEAP_NUMBER_TYPE) \ |
| + V(ODDBALL_TYPE) \ |
| + \ |
| + V(MAP_TYPE) \ |
| + V(CODE_TYPE) \ |
| + V(MUTABLE_HEAP_NUMBER_TYPE) \ |
| + V(FOREIGN_TYPE) \ |
| + V(BYTE_ARRAY_TYPE) \ |
| + V(BYTECODE_ARRAY_TYPE) \ |
| + V(FREE_SPACE_TYPE) \ |
| + \ |
| + V(FIXED_INT8_ARRAY_TYPE) \ |
| + V(FIXED_UINT8_ARRAY_TYPE) \ |
| + V(FIXED_INT16_ARRAY_TYPE) \ |
| + V(FIXED_UINT16_ARRAY_TYPE) \ |
| + V(FIXED_INT32_ARRAY_TYPE) \ |
| + V(FIXED_UINT32_ARRAY_TYPE) \ |
| + V(FIXED_FLOAT32_ARRAY_TYPE) \ |
| + V(FIXED_FLOAT64_ARRAY_TYPE) \ |
| + V(FIXED_UINT8_CLAMPED_ARRAY_TYPE) \ |
| + \ |
| + V(FIXED_DOUBLE_ARRAY_TYPE) \ |
| + V(FILLER_TYPE) \ |
| + \ |
| + V(ACCESSOR_INFO_TYPE) \ |
| + V(ACCESSOR_PAIR_TYPE) \ |
| + V(ACCESS_CHECK_INFO_TYPE) \ |
| + V(INTERCEPTOR_INFO_TYPE) \ |
| + V(FUNCTION_TEMPLATE_INFO_TYPE) \ |
| + V(OBJECT_TEMPLATE_INFO_TYPE) \ |
| + V(ALLOCATION_SITE_TYPE) \ |
| + V(ALLOCATION_MEMENTO_TYPE) \ |
| + V(SCRIPT_TYPE) \ |
| + V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| + V(PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE) \ |
| + V(PROMISE_REACTION_JOB_INFO_TYPE) \ |
| + V(DEBUG_INFO_TYPE) \ |
| + V(STACK_FRAME_INFO_TYPE) \ |
| + V(PROTOTYPE_INFO_TYPE) \ |
| + V(TUPLE2_TYPE) \ |
| + V(TUPLE3_TYPE) \ |
| + V(CONTEXT_EXTENSION_TYPE) \ |
| + V(MODULE_TYPE) \ |
| + V(MODULE_INFO_ENTRY_TYPE) \ |
| + V(ASYNC_GENERATOR_REQUEST_TYPE) \ |
| + V(FIXED_ARRAY_TYPE) \ |
| + V(TRANSITION_ARRAY_TYPE) \ |
| + V(SHARED_FUNCTION_INFO_TYPE) \ |
| + V(CELL_TYPE) \ |
| + V(WEAK_CELL_TYPE) \ |
| + V(PROPERTY_CELL_TYPE) \ |
| + /* TODO(yangguo): these padding types are for ABI stability. Remove after*/ \ |
| + /* version 6.0 branch, or replace them when there is demand for new types.*/ \ |
| + V(PADDING_TYPE_1) \ |
| + V(PADDING_TYPE_2) \ |
| + V(PADDING_TYPE_3) \ |
| + V(PADDING_TYPE_4) \ |
| + \ |
| + V(JS_PROXY_TYPE) \ |
| + V(JS_GLOBAL_OBJECT_TYPE) \ |
| + V(JS_GLOBAL_PROXY_TYPE) \ |
| + V(JS_SPECIAL_API_OBJECT_TYPE) \ |
| + V(JS_VALUE_TYPE) \ |
| + V(JS_MESSAGE_OBJECT_TYPE) \ |
| + V(JS_DATE_TYPE) \ |
| + V(JS_API_OBJECT_TYPE) \ |
| + V(JS_OBJECT_TYPE) \ |
| + V(JS_ARGUMENTS_TYPE) \ |
| + V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
| + V(JS_GENERATOR_OBJECT_TYPE) \ |
| + V(JS_ASYNC_GENERATOR_OBJECT_TYPE) \ |
| + V(JS_MODULE_NAMESPACE_TYPE) \ |
| + V(JS_ARRAY_TYPE) \ |
| + V(JS_ARRAY_BUFFER_TYPE) \ |
| + V(JS_TYPED_ARRAY_TYPE) \ |
| + V(JS_DATA_VIEW_TYPE) \ |
| + V(JS_SET_TYPE) \ |
| + V(JS_MAP_TYPE) \ |
| + V(JS_SET_ITERATOR_TYPE) \ |
| + V(JS_MAP_ITERATOR_TYPE) \ |
| + V(JS_WEAK_MAP_TYPE) \ |
| + V(JS_WEAK_SET_TYPE) \ |
| + V(JS_PROMISE_CAPABILITY_TYPE) \ |
| + V(JS_PROMISE_TYPE) \ |
| + V(JS_REGEXP_TYPE) \ |
| + V(JS_ERROR_TYPE) \ |
| + V(JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) \ |
| + V(JS_STRING_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \ |
| + V(JS_FAST_ARRAY_KEY_ITERATOR_TYPE) \ |
| + V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_INT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + V(JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE) \ |
| + \ |
| + V(JS_BOUND_FUNCTION_TYPE) \ |
| V(JS_FUNCTION_TYPE) |
| // Since string types are not consecutive, this macro is used to |
| @@ -516,26 +518,22 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
| V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ |
| V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ |
| V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ |
| - V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ |
| V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ |
| V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ |
| V(ALLOCATION_SITE, AllocationSite, allocation_site) \ |
| V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento) \ |
| V(SCRIPT, Script, script) \ |
| - V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \ |
| V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) \ |
| V(PROMISE_RESOLVE_THENABLE_JOB_INFO, PromiseResolveThenableJobInfo, \ |
| promise_resolve_thenable_job_info) \ |
| V(PROMISE_REACTION_JOB_INFO, PromiseReactionJobInfo, \ |
| promise_reaction_job_info) \ |
| V(DEBUG_INFO, DebugInfo, debug_info) \ |
| - V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) \ |
| V(STACK_FRAME_INFO, StackFrameInfo, stack_frame_info) \ |
| V(PROTOTYPE_INFO, PrototypeInfo, prototype_info) \ |
| V(TUPLE2, Tuple2, tuple2) \ |
| V(TUPLE3, Tuple3, tuple3) \ |
| V(CONTEXT_EXTENSION, ContextExtension, context_extension) \ |
| - V(CONSTANT_ELEMENTS_PAIR, ConstantElementsPair, constant_elements_pair) \ |
| V(MODULE, Module, module) \ |
| V(MODULE_INFO_ENTRY, ModuleInfoEntry, module_info_entry) \ |
| V(ASYNC_GENERATOR_REQUEST, AsyncGeneratorRequest, async_generator_request) |
| @@ -690,24 +688,20 @@ enum InstanceType { |
| ACCESSOR_PAIR_TYPE, |
| ACCESS_CHECK_INFO_TYPE, |
| INTERCEPTOR_INFO_TYPE, |
| - CALL_HANDLER_INFO_TYPE, |
| FUNCTION_TEMPLATE_INFO_TYPE, |
| OBJECT_TEMPLATE_INFO_TYPE, |
| ALLOCATION_SITE_TYPE, |
| ALLOCATION_MEMENTO_TYPE, |
| SCRIPT_TYPE, |
| - TYPE_FEEDBACK_INFO_TYPE, |
| ALIASED_ARGUMENTS_ENTRY_TYPE, |
| PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE, |
| PROMISE_REACTION_JOB_INFO_TYPE, |
| DEBUG_INFO_TYPE, |
| - BREAK_POINT_INFO_TYPE, |
| STACK_FRAME_INFO_TYPE, |
| PROTOTYPE_INFO_TYPE, |
| TUPLE2_TYPE, |
| TUPLE3_TYPE, |
| CONTEXT_EXTENSION_TYPE, |
| - CONSTANT_ELEMENTS_PAIR_TYPE, |
| MODULE_TYPE, |
| MODULE_INFO_ENTRY_TYPE, |
| ASYNC_GENERATOR_REQUEST_TYPE, |
| @@ -718,6 +712,13 @@ enum InstanceType { |
| WEAK_CELL_TYPE, |
| PROPERTY_CELL_TYPE, |
| + // TODO(yangguo): these padding types are for ABI stability. Remove after |
| + // version 6.0 branch, or replace them when there is demand for new types. |
| + PADDING_TYPE_1, |
| + PADDING_TYPE_2, |
| + PADDING_TYPE_3, |
| + PADDING_TYPE_4, |
| + |
| // All the following types are subtypes of JSReceiver, which corresponds to |
| // objects in the JS sense. The first and the last type in this range are |
| // the two forms of function. This organization enables using the same |
| @@ -978,127 +979,130 @@ template <class C> inline bool Is(Object* obj); |
| V(Number) |
| #define HEAP_OBJECT_TYPE_LIST(V) \ |
| - V(HeapNumber) \ |
| - V(MutableHeapNumber) \ |
| - V(Name) \ |
| - V(UniqueName) \ |
| - V(String) \ |
| - V(SeqString) \ |
| - V(ExternalString) \ |
| - V(ConsString) \ |
| - V(SlicedString) \ |
| - V(ExternalTwoByteString) \ |
| - V(ExternalOneByteString) \ |
| - V(SeqTwoByteString) \ |
| - V(SeqOneByteString) \ |
| - V(InternalizedString) \ |
| - V(ThinString) \ |
| - V(Symbol) \ |
| - \ |
| - V(FixedTypedArrayBase) \ |
| - V(FixedUint8Array) \ |
| - V(FixedInt8Array) \ |
| - V(FixedUint16Array) \ |
| - V(FixedInt16Array) \ |
| - V(FixedUint32Array) \ |
| - V(FixedInt32Array) \ |
| - V(FixedFloat32Array) \ |
| - V(FixedFloat64Array) \ |
| - V(FixedUint8ClampedArray) \ |
| + V(AbstractCode) \ |
| + V(AccessCheckNeeded) \ |
| + V(ArrayList) \ |
| + V(BoilerplateDescription) \ |
| + V(Boolean) \ |
| + V(BreakPointInfo) \ |
| V(ByteArray) \ |
| V(BytecodeArray) \ |
| - V(FreeSpace) \ |
| - V(JSReceiver) \ |
| - V(JSObject) \ |
| - V(JSArgumentsObject) \ |
| - V(JSContextExtensionObject) \ |
| - V(JSGeneratorObject) \ |
| - V(JSAsyncGeneratorObject) \ |
| - V(JSModuleNamespace) \ |
| - V(Map) \ |
| - V(DescriptorArray) \ |
| - V(FrameArray) \ |
| - V(TransitionArray) \ |
| - V(FeedbackMetadata) \ |
| - V(FeedbackVector) \ |
| + V(Callable) \ |
| + V(CallHandlerInfo) \ |
| + V(Cell) \ |
| + V(Code) \ |
| + V(CodeCacheHashTable) \ |
| + V(CompilationCacheTable) \ |
| + V(ConsString) \ |
| + V(ConstantElementsPair) \ |
| + V(Constructor) \ |
| + V(Context) \ |
| V(DeoptimizationInputData) \ |
| V(DeoptimizationOutputData) \ |
| V(DependentCode) \ |
| - V(HandlerTable) \ |
| + V(DescriptorArray) \ |
| + V(Dictionary) \ |
| + V(External) \ |
| + V(ExternalOneByteString) \ |
| + V(ExternalString) \ |
| + V(ExternalTwoByteString) \ |
| + V(FeedbackMetadata) \ |
| + V(FeedbackVector) \ |
| + V(Filler) \ |
| V(FixedArray) \ |
| - V(BoilerplateDescription) \ |
| + V(FixedArrayBase) \ |
| V(FixedDoubleArray) \ |
| - V(WeakFixedArray) \ |
| - V(ArrayList) \ |
| - V(RegExpMatchInfo) \ |
| - V(Context) \ |
| - V(ScriptContextTable) \ |
| - V(NativeContext) \ |
| - V(ScopeInfo) \ |
| - V(ModuleInfo) \ |
| - V(JSBoundFunction) \ |
| - V(JSFunction) \ |
| - V(Code) \ |
| - V(AbstractCode) \ |
| - V(Oddball) \ |
| - V(SharedFunctionInfo) \ |
| - V(JSValue) \ |
| - V(JSDate) \ |
| - V(JSMessageObject) \ |
| - V(StringWrapper) \ |
| + V(FixedFloat32Array) \ |
| + V(FixedFloat64Array) \ |
| + V(FixedInt16Array) \ |
| + V(FixedInt32Array) \ |
| + V(FixedInt8Array) \ |
| + V(FixedTypedArrayBase) \ |
| + V(FixedUint16Array) \ |
| + V(FixedUint32Array) \ |
| + V(FixedUint8Array) \ |
| + V(FixedUint8ClampedArray) \ |
| V(Foreign) \ |
| - V(Boolean) \ |
| + V(FrameArray) \ |
| + V(FreeSpace) \ |
| + V(Function) \ |
| + V(HandlerTable) \ |
| + V(HashTable) \ |
| + V(HeapNumber) \ |
| + V(InternalizedString) \ |
| + V(JSArgumentsObject) \ |
| V(JSArray) \ |
| V(JSArrayBuffer) \ |
| V(JSArrayBufferView) \ |
| + V(JSArrayIterator) \ |
| V(JSAsyncFromSyncIterator) \ |
| + V(JSAsyncGeneratorObject) \ |
| + V(JSBoundFunction) \ |
| V(JSCollection) \ |
| - V(JSTypedArray) \ |
| - V(JSArrayIterator) \ |
| + V(JSContextExtensionObject) \ |
| V(JSDataView) \ |
| - V(JSProxy) \ |
| + V(JSDate) \ |
| V(JSError) \ |
| - V(JSPromiseCapability) \ |
| + V(JSFunction) \ |
| + V(JSGeneratorObject) \ |
| + V(JSGlobalObject) \ |
| + V(JSGlobalProxy) \ |
| + V(JSMap) \ |
| + V(JSMapIterator) \ |
| + V(JSMessageObject) \ |
| + V(JSModuleNamespace) \ |
| + V(JSObject) \ |
| V(JSPromise) \ |
| - V(JSStringIterator) \ |
| + V(JSPromiseCapability) \ |
| + V(JSProxy) \ |
| + V(JSReceiver) \ |
| + V(JSRegExp) \ |
| V(JSSet) \ |
| - V(JSMap) \ |
| V(JSSetIterator) \ |
| - V(JSMapIterator) \ |
| + V(JSStringIterator) \ |
| + V(JSTypedArray) \ |
| + V(JSValue) \ |
| V(JSWeakCollection) \ |
| V(JSWeakMap) \ |
| V(JSWeakSet) \ |
| - V(JSRegExp) \ |
| - V(HashTable) \ |
| - V(Dictionary) \ |
| - V(UnseededNumberDictionary) \ |
| - V(StringTable) \ |
| - V(StringSet) \ |
| - V(NormalizedMapCache) \ |
| - V(CompilationCacheTable) \ |
| - V(CodeCacheHashTable) \ |
| + V(Map) \ |
| V(MapCache) \ |
| - V(JSGlobalObject) \ |
| - V(JSGlobalProxy) \ |
| - V(Undetectable) \ |
| - V(AccessCheckNeeded) \ |
| - V(Callable) \ |
| - V(Function) \ |
| - V(Constructor) \ |
| - V(TemplateInfo) \ |
| - V(Filler) \ |
| - V(FixedArrayBase) \ |
| - V(External) \ |
| + V(ModuleInfo) \ |
| + V(MutableHeapNumber) \ |
| + V(Name) \ |
| + V(NativeContext) \ |
| + V(NormalizedMapCache) \ |
| + V(ObjectHashSet) \ |
| + V(ObjectHashTable) \ |
| + V(Oddball) \ |
| + V(OrderedHashTable) \ |
| + V(PropertyCell) \ |
| + V(RegExpMatchInfo) \ |
| + V(ScopeInfo) \ |
| + V(ScriptContextTable) \ |
| + V(SeqOneByteString) \ |
| + V(SeqString) \ |
| + V(SeqTwoByteString) \ |
| + V(SharedFunctionInfo) \ |
| + V(SlicedString) \ |
| + V(SloppyArgumentsElements) \ |
| + V(String) \ |
| + V(StringSet) \ |
| + V(StringTable) \ |
| + V(StringWrapper) \ |
| V(Struct) \ |
| - V(Cell) \ |
| + V(Symbol) \ |
| + V(TemplateInfo) \ |
| V(TemplateList) \ |
| - V(PropertyCell) \ |
| + V(ThinString) \ |
| + V(TransitionArray) \ |
| + V(TypeFeedbackInfo) \ |
| + V(Undetectable) \ |
| + V(UniqueName) \ |
| + V(UnseededNumberDictionary) \ |
| V(WeakCell) \ |
| - V(ObjectHashTable) \ |
| - V(ObjectHashSet) \ |
| - V(WeakHashTable) \ |
| - V(OrderedHashTable) \ |
| - V(SloppyArgumentsElements) |
| + V(WeakFixedArray) \ |
| + V(WeakHashTable) |
| #define ODDBALL_LIST(V) \ |
| V(Undefined, undefined_value) \ |
| @@ -7505,10 +7509,6 @@ class TypeFeedbackInfo: public Struct { |
| DECLARE_CAST(TypeFeedbackInfo) |
| - // Dispatched behavior. |
| - DECLARE_PRINTER(TypeFeedbackInfo) |
| - DECLARE_VERIFIER(TypeFeedbackInfo) |
| - |
| static const int kStorage1Offset = HeapObject::kHeaderSize; |
| static const int kStorage2Offset = kStorage1Offset + kPointerSize; |
|
Michael Starzinger
2017/04/13 11:25:59
Likewise.
Yang
2017/04/13 11:53:33
Done.
|
| static const int kStorage3Offset = kStorage2Offset + kPointerSize; |
| @@ -9841,10 +9841,6 @@ class CallHandlerInfo: public Struct { |
| DECLARE_CAST(CallHandlerInfo) |
| - // Dispatched behavior. |
| - DECLARE_PRINTER(CallHandlerInfo) |
| - DECLARE_VERIFIER(CallHandlerInfo) |
| - |
| static const int kCallbackOffset = HeapObject::kHeaderSize; |
| static const int kDataOffset = kCallbackOffset + kPointerSize; |
|
Michael Starzinger
2017/04/13 11:25:59
Likewise.
Yang
2017/04/13 11:53:33
Done.
|
| static const int kSize = kDataOffset + kPointerSize; |
| @@ -10068,7 +10064,7 @@ class DebugInfo: public Struct { |
| // The BreakPointInfo class holds information for break points set in a |
| // function. The DebugInfo object holds a BreakPointInfo object for each code |
| // position with one or more break points. |
| -class BreakPointInfo: public Struct { |
| +class BreakPointInfo : public Tuple2 { |
| public: |
| // The position in the source for the break position. |
| DECL_INT_ACCESSORS(source_position) |
| @@ -10091,10 +10087,6 @@ class BreakPointInfo: public Struct { |
| DECLARE_CAST(BreakPointInfo) |
| - // Dispatched behavior. |
| - DECLARE_PRINTER(BreakPointInfo) |
| - DECLARE_VERIFIER(BreakPointInfo) |
| - |
| static const int kSourcePositionIndex = Struct::kHeaderSize; |
| static const int kBreakPointObjectsIndex = |
|
Michael Starzinger
2017/04/13 11:25:59
Let's use Tuple2::kValue1Offset and Tuple2::kValue
Yang
2017/04/13 11:53:33
Done.
|
| kSourcePositionIndex + kPointerSize; |