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

Side by Side Diff: src/objects-inl.h

Issue 2741683004: [rename] Rename internal field to embedder field. (Closed)
Patch Set: DEPRECATE_SOON(GetInternalField) Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 2103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2114 } 2114 }
2115 UNREACHABLE(); 2115 UNREACHABLE();
2116 return 0; 2116 return 0;
2117 } 2117 }
2118 } 2118 }
2119 2119
2120 inline bool IsSpecialReceiverInstanceType(InstanceType instance_type) { 2120 inline bool IsSpecialReceiverInstanceType(InstanceType instance_type) {
2121 return instance_type <= LAST_SPECIAL_RECEIVER_TYPE; 2121 return instance_type <= LAST_SPECIAL_RECEIVER_TYPE;
2122 } 2122 }
2123 2123
2124 int JSObject::GetInternalFieldCount(Map* map) { 2124 int JSObject::GetEmbedderFieldCount(Map* map) {
2125 int instance_size = map->instance_size(); 2125 int instance_size = map->instance_size();
2126 if (instance_size == kVariableSizeSentinel) return 0; 2126 if (instance_size == kVariableSizeSentinel) return 0;
2127 InstanceType instance_type = map->instance_type(); 2127 InstanceType instance_type = map->instance_type();
2128 return ((instance_size - GetHeaderSize(instance_type)) >> kPointerSizeLog2) - 2128 return ((instance_size - GetHeaderSize(instance_type)) >> kPointerSizeLog2) -
2129 map->GetInObjectProperties(); 2129 map->GetInObjectProperties();
2130 } 2130 }
2131 2131
2132 int JSObject::GetEmbedderFieldCount() { return GetEmbedderFieldCount(map()); }
2132 2133
2133 int JSObject::GetInternalFieldCount() { return GetInternalFieldCount(map()); } 2134 int JSObject::GetEmbedderFieldOffset(int index) {
2134 2135 DCHECK(index < GetEmbedderFieldCount() && index >= 0);
2135
2136 int JSObject::GetInternalFieldOffset(int index) {
2137 DCHECK(index < GetInternalFieldCount() && index >= 0);
2138 return GetHeaderSize() + (kPointerSize * index); 2136 return GetHeaderSize() + (kPointerSize * index);
2139 } 2137 }
2140 2138
2141 2139 Object* JSObject::GetEmbedderField(int index) {
2142 Object* JSObject::GetInternalField(int index) { 2140 DCHECK(index < GetEmbedderFieldCount() && index >= 0);
2143 DCHECK(index < GetInternalFieldCount() && index >= 0);
2144 // Internal objects do follow immediately after the header, whereas in-object 2141 // Internal objects do follow immediately after the header, whereas in-object
2145 // properties are at the end of the object. Therefore there is no need 2142 // properties are at the end of the object. Therefore there is no need
2146 // to adjust the index here. 2143 // to adjust the index here.
2147 return READ_FIELD(this, GetHeaderSize() + (kPointerSize * index)); 2144 return READ_FIELD(this, GetHeaderSize() + (kPointerSize * index));
2148 } 2145 }
2149 2146
2150 2147 void JSObject::SetEmbedderField(int index, Object* value) {
2151 void JSObject::SetInternalField(int index, Object* value) { 2148 DCHECK(index < GetEmbedderFieldCount() && index >= 0);
2152 DCHECK(index < GetInternalFieldCount() && index >= 0);
2153 // Internal objects do follow immediately after the header, whereas in-object 2149 // Internal objects do follow immediately after the header, whereas in-object
2154 // properties are at the end of the object. Therefore there is no need 2150 // properties are at the end of the object. Therefore there is no need
2155 // to adjust the index here. 2151 // to adjust the index here.
2156 int offset = GetHeaderSize() + (kPointerSize * index); 2152 int offset = GetHeaderSize() + (kPointerSize * index);
2157 WRITE_FIELD(this, offset, value); 2153 WRITE_FIELD(this, offset, value);
2158 WRITE_BARRIER(GetHeap(), this, offset, value); 2154 WRITE_BARRIER(GetHeap(), this, offset, value);
2159 } 2155 }
2160 2156
2161 2157 void JSObject::SetEmbedderField(int index, Smi* value) {
2162 void JSObject::SetInternalField(int index, Smi* value) { 2158 DCHECK(index < GetEmbedderFieldCount() && index >= 0);
2163 DCHECK(index < GetInternalFieldCount() && index >= 0);
2164 // Internal objects do follow immediately after the header, whereas in-object 2159 // Internal objects do follow immediately after the header, whereas in-object
2165 // properties are at the end of the object. Therefore there is no need 2160 // properties are at the end of the object. Therefore there is no need
2166 // to adjust the index here. 2161 // to adjust the index here.
2167 int offset = GetHeaderSize() + (kPointerSize * index); 2162 int offset = GetHeaderSize() + (kPointerSize * index);
2168 WRITE_FIELD(this, offset, value); 2163 WRITE_FIELD(this, offset, value);
2169 } 2164 }
2170 2165
2171 2166
2172 bool JSObject::IsUnboxedDoubleField(FieldIndex index) { 2167 bool JSObject::IsUnboxedDoubleField(FieldIndex index) {
2173 if (!FLAG_unbox_double_fields) return false; 2168 if (!FLAG_unbox_double_fields) return false;
(...skipping 3523 matching lines...) Expand 10 before | Expand all | Expand 10 after
5697 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object, 5692 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object,
5698 kSharedFunctionInfoOffset) 5693 kSharedFunctionInfoOffset)
5699 ACCESSORS(FunctionTemplateInfo, cached_property_name, Object, 5694 ACCESSORS(FunctionTemplateInfo, cached_property_name, Object,
5700 kCachedPropertyNameOffset) 5695 kCachedPropertyNameOffset)
5701 5696
5702 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset) 5697 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset)
5703 5698
5704 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) 5699 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset)
5705 ACCESSORS(ObjectTemplateInfo, data, Object, kDataOffset) 5700 ACCESSORS(ObjectTemplateInfo, data, Object, kDataOffset)
5706 5701
5707 int ObjectTemplateInfo::internal_field_count() const { 5702 int ObjectTemplateInfo::embedder_field_count() const {
5708 Object* value = data(); 5703 Object* value = data();
5709 DCHECK(value->IsSmi()); 5704 DCHECK(value->IsSmi());
5710 return InternalFieldCount::decode(Smi::cast(value)->value()); 5705 return EmbedderFieldCount::decode(Smi::cast(value)->value());
5711 } 5706 }
5712 5707
5713 void ObjectTemplateInfo::set_internal_field_count(int count) { 5708 void ObjectTemplateInfo::set_embedder_field_count(int count) {
5714 return set_data(Smi::FromInt( 5709 return set_data(Smi::FromInt(
5715 InternalFieldCount::update(Smi::cast(data())->value(), count))); 5710 EmbedderFieldCount::update(Smi::cast(data())->value(), count)));
5716 } 5711 }
5717 5712
5718 bool ObjectTemplateInfo::immutable_proto() const { 5713 bool ObjectTemplateInfo::immutable_proto() const {
5719 Object* value = data(); 5714 Object* value = data();
5720 DCHECK(value->IsSmi()); 5715 DCHECK(value->IsSmi());
5721 return IsImmutablePrototype::decode(Smi::cast(value)->value()); 5716 return IsImmutablePrototype::decode(Smi::cast(value)->value());
5722 } 5717 }
5723 5718
5724 void ObjectTemplateInfo::set_immutable_proto(bool immutable) { 5719 void ObjectTemplateInfo::set_immutable_proto(bool immutable) {
5725 return set_data(Smi::FromInt( 5720 return set_data(Smi::FromInt(
(...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after
7563 return JSGlobalProxy::cast(global_proxy())->IsDetachedFrom(this); 7558 return JSGlobalProxy::cast(global_proxy())->IsDetachedFrom(this);
7564 } 7559 }
7565 7560
7566 7561
7567 bool JSGlobalProxy::IsDetachedFrom(JSGlobalObject* global) const { 7562 bool JSGlobalProxy::IsDetachedFrom(JSGlobalObject* global) const {
7568 const PrototypeIterator iter(this->GetIsolate(), 7563 const PrototypeIterator iter(this->GetIsolate(),
7569 const_cast<JSGlobalProxy*>(this)); 7564 const_cast<JSGlobalProxy*>(this));
7570 return iter.GetCurrent() != global; 7565 return iter.GetCurrent() != global;
7571 } 7566 }
7572 7567
7573 inline int JSGlobalProxy::SizeWithInternalFields(int internal_field_count) { 7568 inline int JSGlobalProxy::SizeWithEmbedderFields(int embedder_field_count) {
7574 DCHECK_GE(internal_field_count, 0); 7569 DCHECK_GE(embedder_field_count, 0);
7575 return kSize + internal_field_count * kPointerSize; 7570 return kSize + embedder_field_count * kPointerSize;
7576 } 7571 }
7577 7572
7578 Smi* JSReceiver::GetOrCreateIdentityHash(Isolate* isolate, 7573 Smi* JSReceiver::GetOrCreateIdentityHash(Isolate* isolate,
7579 Handle<JSReceiver> object) { 7574 Handle<JSReceiver> object) {
7580 return object->IsJSProxy() ? JSProxy::GetOrCreateIdentityHash( 7575 return object->IsJSProxy() ? JSProxy::GetOrCreateIdentityHash(
7581 isolate, Handle<JSProxy>::cast(object)) 7576 isolate, Handle<JSProxy>::cast(object))
7582 : JSObject::GetOrCreateIdentityHash( 7577 : JSObject::GetOrCreateIdentityHash(
7583 isolate, Handle<JSObject>::cast(object)); 7578 isolate, Handle<JSObject>::cast(object));
7584 } 7579 }
7585 7580
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
8270 #undef WRITE_INT64_FIELD 8265 #undef WRITE_INT64_FIELD
8271 #undef READ_BYTE_FIELD 8266 #undef READ_BYTE_FIELD
8272 #undef WRITE_BYTE_FIELD 8267 #undef WRITE_BYTE_FIELD
8273 #undef NOBARRIER_READ_BYTE_FIELD 8268 #undef NOBARRIER_READ_BYTE_FIELD
8274 #undef NOBARRIER_WRITE_BYTE_FIELD 8269 #undef NOBARRIER_WRITE_BYTE_FIELD
8275 8270
8276 } // namespace internal 8271 } // namespace internal
8277 } // namespace v8 8272 } // namespace v8
8278 8273
8279 #endif // V8_OBJECTS_INL_H_ 8274 #endif // V8_OBJECTS_INL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698