| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 528842d41c0b7fd9ee65f142fa5ca3be206872ec..be118fd41e3dd8b051cd9c4f17f2d26f99ebce47 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -294,159 +294,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
|
| @@ -517,26 +519,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)
|
| @@ -691,24 +689,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,
|
| @@ -719,6 +713,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,129 +979,132 @@ template <class C> inline bool Is(Object* obj);
|
| V(Primitive) \
|
| 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(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(DeoptimizationInputData) \
|
| - V(DeoptimizationOutputData) \
|
| - V(DependentCode) \
|
| - V(HandlerTable) \
|
| - V(FixedArray) \
|
| - V(BoilerplateDescription) \
|
| - 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(Foreign) \
|
| - V(Boolean) \
|
| - V(JSArray) \
|
| - V(JSArrayBuffer) \
|
| - V(JSArrayBufferView) \
|
| - V(JSAsyncFromSyncIterator) \
|
| - V(JSCollection) \
|
| - V(JSTypedArray) \
|
| - V(JSArrayIterator) \
|
| - V(JSDataView) \
|
| - V(JSProxy) \
|
| - V(JSError) \
|
| - V(JSPromiseCapability) \
|
| - V(JSPromise) \
|
| - V(JSStringIterator) \
|
| - V(JSSet) \
|
| - V(JSMap) \
|
| - V(JSSetIterator) \
|
| - V(JSMapIterator) \
|
| - 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(MapCache) \
|
| - V(JSGlobalObject) \
|
| - V(JSGlobalProxy) \
|
| - V(Undetectable) \
|
| - V(AccessCheckNeeded) \
|
| - V(Callable) \
|
| - V(Function) \
|
| - V(Constructor) \
|
| - V(TemplateInfo) \
|
| - V(Filler) \
|
| - V(FixedArrayBase) \
|
| - V(External) \
|
| - V(Struct) \
|
| - V(Cell) \
|
| - V(TemplateList) \
|
| - V(PropertyCell) \
|
| - V(WeakCell) \
|
| - V(ObjectHashTable) \
|
| - V(ObjectHashSet) \
|
| - V(WeakHashTable) \
|
| - V(OrderedHashTable) \
|
| - V(SloppyArgumentsElements) \
|
| - V(SourcePositionTableWithFrameCache)
|
| +#define HEAP_OBJECT_TYPE_LIST(V) \
|
| + V(AbstractCode) \
|
| + V(AccessCheckNeeded) \
|
| + V(ArrayList) \
|
| + V(BoilerplateDescription) \
|
| + V(Boolean) \
|
| + V(BreakPointInfo) \
|
| + V(ByteArray) \
|
| + V(BytecodeArray) \
|
| + 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(DescriptorArray) \
|
| + V(Dictionary) \
|
| + V(External) \
|
| + V(ExternalOneByteString) \
|
| + V(ExternalString) \
|
| + V(ExternalTwoByteString) \
|
| + V(FeedbackMetadata) \
|
| + V(FeedbackVector) \
|
| + V(Filler) \
|
| + V(FixedArray) \
|
| + V(FixedArrayBase) \
|
| + V(FixedDoubleArray) \
|
| + V(FixedFloat32Array) \
|
| + V(FixedFloat64Array) \
|
| + V(FixedInt16Array) \
|
| + V(FixedInt32Array) \
|
| + V(FixedInt8Array) \
|
| + V(FixedTypedArrayBase) \
|
| + V(FixedUint16Array) \
|
| + V(FixedUint32Array) \
|
| + V(FixedUint8Array) \
|
| + V(FixedUint8ClampedArray) \
|
| + V(Foreign) \
|
| + 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(JSContextExtensionObject) \
|
| + V(JSDataView) \
|
| + V(JSDate) \
|
| + V(JSError) \
|
| + V(JSFunction) \
|
| + V(JSGeneratorObject) \
|
| + V(JSGlobalObject) \
|
| + V(JSGlobalProxy) \
|
| + V(JSMap) \
|
| + V(JSMapIterator) \
|
| + V(JSMessageObject) \
|
| + V(JSModuleNamespace) \
|
| + V(JSObject) \
|
| + V(JSPromise) \
|
| + V(JSPromiseCapability) \
|
| + V(JSProxy) \
|
| + V(JSReceiver) \
|
| + V(JSRegExp) \
|
| + V(JSSet) \
|
| + V(JSSetIterator) \
|
| + V(JSStringIterator) \
|
| + V(JSTypedArray) \
|
| + V(JSValue) \
|
| + V(JSWeakCollection) \
|
| + V(JSWeakMap) \
|
| + V(JSWeakSet) \
|
| + V(Map) \
|
| + V(MapCache) \
|
| + 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(SourcePositionTableWithFrameCache) \
|
| + V(String) \
|
| + V(StringSet) \
|
| + V(StringTable) \
|
| + V(StringWrapper) \
|
| + V(Struct) \
|
| + V(Symbol) \
|
| + V(TemplateInfo) \
|
| + V(TemplateList) \
|
| + V(ThinString) \
|
| + V(TransitionArray) \
|
| + V(TypeFeedbackInfo) \
|
| + V(Undetectable) \
|
| + V(UniqueName) \
|
| + V(UnseededNumberDictionary) \
|
| + V(WeakCell) \
|
| + V(WeakFixedArray) \
|
| + V(WeakHashTable)
|
|
|
| #define ODDBALL_LIST(V) \
|
| V(Undefined, undefined_value) \
|
| @@ -7503,8 +7507,7 @@ class JSRegExp: public JSObject {
|
|
|
| DEFINE_OPERATORS_FOR_FLAGS(JSRegExp::Flags)
|
|
|
| -
|
| -class TypeFeedbackInfo: public Struct {
|
| +class TypeFeedbackInfo : public Tuple3 {
|
| public:
|
| inline int ic_total_count();
|
| inline void set_ic_total_count(int count);
|
| @@ -7525,14 +7528,9 @@ 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;
|
| - static const int kStorage3Offset = kStorage2Offset + kPointerSize;
|
| - static const int kSize = kStorage3Offset + kPointerSize;
|
| + static const int kStorage1Offset = kValue1Offset;
|
| + static const int kStorage2Offset = kValue2Offset;
|
| + static const int kStorage3Offset = kValue3Offset;
|
|
|
| private:
|
| static const int kTypeChangeChecksumBits = 7;
|
| @@ -9857,21 +9855,15 @@ class InterceptorInfo: public Struct {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo);
|
| };
|
|
|
| -
|
| -class CallHandlerInfo: public Struct {
|
| +class CallHandlerInfo : public Tuple2 {
|
| public:
|
| DECL_ACCESSORS(callback, Object)
|
| DECL_ACCESSORS(data, Object)
|
|
|
| DECLARE_CAST(CallHandlerInfo)
|
|
|
| - // Dispatched behavior.
|
| - DECLARE_PRINTER(CallHandlerInfo)
|
| - DECLARE_VERIFIER(CallHandlerInfo)
|
| -
|
| - static const int kCallbackOffset = HeapObject::kHeaderSize;
|
| - static const int kDataOffset = kCallbackOffset + kPointerSize;
|
| - static const int kSize = kDataOffset + kPointerSize;
|
| + static const int kCallbackOffset = kValue1Offset;
|
| + static const int kDataOffset = kValue2Offset;
|
|
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo);
|
| @@ -10092,7 +10084,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)
|
| @@ -10115,14 +10107,8 @@ 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 =
|
| - kSourcePositionIndex + kPointerSize;
|
| - static const int kSize = kBreakPointObjectsIndex + kPointerSize;
|
| + static const int kSourcePositionIndex = kValue1Offset;
|
| + static const int kBreakPointObjectsIndex = kValue2Offset;
|
|
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(BreakPointInfo);
|
|
|