Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(608)

Unified Diff: src/objects.h

Issue 2811183005: Do not use new struct type where unnecessary. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/factory.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « src/factory.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698