OLD | NEW |
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 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1324 value->GetHeap()->incremental_marking()->RecordWrite(this, nullptr, value); | 1324 value->GetHeap()->incremental_marking()->RecordWrite(this, nullptr, value); |
1325 } | 1325 } |
1326 } | 1326 } |
1327 | 1327 |
1328 HeapObject** HeapObject::map_slot() { | 1328 HeapObject** HeapObject::map_slot() { |
1329 return reinterpret_cast<HeapObject**>(FIELD_ADDR(this, kMapOffset)); | 1329 return reinterpret_cast<HeapObject**>(FIELD_ADDR(this, kMapOffset)); |
1330 } | 1330 } |
1331 | 1331 |
1332 MapWord HeapObject::map_word() const { | 1332 MapWord HeapObject::map_word() const { |
1333 return MapWord( | 1333 return MapWord( |
1334 reinterpret_cast<uintptr_t>(NOBARRIER_READ_FIELD(this, kMapOffset))); | 1334 reinterpret_cast<uintptr_t>(RELAXED_READ_FIELD(this, kMapOffset))); |
1335 } | 1335 } |
1336 | 1336 |
1337 | 1337 |
1338 void HeapObject::set_map_word(MapWord map_word) { | 1338 void HeapObject::set_map_word(MapWord map_word) { |
1339 NOBARRIER_WRITE_FIELD( | 1339 RELAXED_WRITE_FIELD(this, kMapOffset, |
1340 this, kMapOffset, reinterpret_cast<Object*>(map_word.value_)); | 1340 reinterpret_cast<Object*>(map_word.value_)); |
1341 } | 1341 } |
1342 | 1342 |
1343 | 1343 |
1344 MapWord HeapObject::synchronized_map_word() const { | 1344 MapWord HeapObject::synchronized_map_word() const { |
1345 return MapWord( | 1345 return MapWord( |
1346 reinterpret_cast<uintptr_t>(ACQUIRE_READ_FIELD(this, kMapOffset))); | 1346 reinterpret_cast<uintptr_t>(ACQUIRE_READ_FIELD(this, kMapOffset))); |
1347 } | 1347 } |
1348 | 1348 |
1349 | 1349 |
1350 void HeapObject::synchronized_set_map_word(MapWord map_word) { | 1350 void HeapObject::synchronized_set_map_word(MapWord map_word) { |
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2180 IsUndefined(isolate) || IsTrue(isolate) || IsFalse(isolate) || | 2180 IsUndefined(isolate) || IsTrue(isolate) || IsFalse(isolate) || |
2181 IsNull(isolate))) { | 2181 IsNull(isolate))) { |
2182 FATAL("API call returned invalid object"); | 2182 FATAL("API call returned invalid object"); |
2183 } | 2183 } |
2184 #endif // DEBUG | 2184 #endif // DEBUG |
2185 } | 2185 } |
2186 | 2186 |
2187 | 2187 |
2188 Object* FixedArray::get(int index) const { | 2188 Object* FixedArray::get(int index) const { |
2189 SLOW_DCHECK(index >= 0 && index < this->length()); | 2189 SLOW_DCHECK(index >= 0 && index < this->length()); |
2190 return NOBARRIER_READ_FIELD(this, kHeaderSize + index * kPointerSize); | 2190 return RELAXED_READ_FIELD(this, kHeaderSize + index * kPointerSize); |
2191 } | 2191 } |
2192 | 2192 |
2193 Handle<Object> FixedArray::get(FixedArray* array, int index, Isolate* isolate) { | 2193 Handle<Object> FixedArray::get(FixedArray* array, int index, Isolate* isolate) { |
2194 return handle(array->get(index), isolate); | 2194 return handle(array->get(index), isolate); |
2195 } | 2195 } |
2196 | 2196 |
2197 template <class T> | 2197 template <class T> |
2198 MaybeHandle<T> FixedArray::GetValue(Isolate* isolate, int index) const { | 2198 MaybeHandle<T> FixedArray::GetValue(Isolate* isolate, int index) const { |
2199 Object* obj = get(index); | 2199 Object* obj = get(index); |
2200 if (obj->IsUndefined(isolate)) return MaybeHandle<T>(); | 2200 if (obj->IsUndefined(isolate)) return MaybeHandle<T>(); |
2201 return Handle<T>(T::cast(obj), isolate); | 2201 return Handle<T>(T::cast(obj), isolate); |
2202 } | 2202 } |
2203 | 2203 |
2204 template <class T> | 2204 template <class T> |
2205 Handle<T> FixedArray::GetValueChecked(Isolate* isolate, int index) const { | 2205 Handle<T> FixedArray::GetValueChecked(Isolate* isolate, int index) const { |
2206 Object* obj = get(index); | 2206 Object* obj = get(index); |
2207 CHECK(!obj->IsUndefined(isolate)); | 2207 CHECK(!obj->IsUndefined(isolate)); |
2208 return Handle<T>(T::cast(obj), isolate); | 2208 return Handle<T>(T::cast(obj), isolate); |
2209 } | 2209 } |
2210 bool FixedArray::is_the_hole(Isolate* isolate, int index) { | 2210 bool FixedArray::is_the_hole(Isolate* isolate, int index) { |
2211 return get(index)->IsTheHole(isolate); | 2211 return get(index)->IsTheHole(isolate); |
2212 } | 2212 } |
2213 | 2213 |
2214 void FixedArray::set(int index, Smi* value) { | 2214 void FixedArray::set(int index, Smi* value) { |
2215 DCHECK(map() != GetHeap()->fixed_cow_array_map()); | 2215 DCHECK(map() != GetHeap()->fixed_cow_array_map()); |
2216 DCHECK(index >= 0 && index < this->length()); | 2216 DCHECK(index >= 0 && index < this->length()); |
2217 DCHECK(reinterpret_cast<Object*>(value)->IsSmi()); | 2217 DCHECK(reinterpret_cast<Object*>(value)->IsSmi()); |
2218 int offset = kHeaderSize + index * kPointerSize; | 2218 int offset = kHeaderSize + index * kPointerSize; |
2219 NOBARRIER_WRITE_FIELD(this, offset, value); | 2219 RELAXED_WRITE_FIELD(this, offset, value); |
2220 } | 2220 } |
2221 | 2221 |
2222 | 2222 |
2223 void FixedArray::set(int index, Object* value) { | 2223 void FixedArray::set(int index, Object* value) { |
2224 DCHECK_NE(GetHeap()->fixed_cow_array_map(), map()); | 2224 DCHECK_NE(GetHeap()->fixed_cow_array_map(), map()); |
2225 DCHECK(IsFixedArray()); | 2225 DCHECK(IsFixedArray()); |
2226 DCHECK_GE(index, 0); | 2226 DCHECK_GE(index, 0); |
2227 DCHECK_LT(index, this->length()); | 2227 DCHECK_LT(index, this->length()); |
2228 int offset = kHeaderSize + index * kPointerSize; | 2228 int offset = kHeaderSize + index * kPointerSize; |
2229 NOBARRIER_WRITE_FIELD(this, offset, value); | 2229 RELAXED_WRITE_FIELD(this, offset, value); |
2230 WRITE_BARRIER(GetHeap(), this, offset, value); | 2230 WRITE_BARRIER(GetHeap(), this, offset, value); |
2231 } | 2231 } |
2232 | 2232 |
2233 | 2233 |
2234 double FixedDoubleArray::get_scalar(int index) { | 2234 double FixedDoubleArray::get_scalar(int index) { |
2235 DCHECK(map() != GetHeap()->fixed_cow_array_map() && | 2235 DCHECK(map() != GetHeap()->fixed_cow_array_map() && |
2236 map() != GetHeap()->fixed_array_map()); | 2236 map() != GetHeap()->fixed_array_map()); |
2237 DCHECK(index >= 0 && index < this->length()); | 2237 DCHECK(index >= 0 && index < this->length()); |
2238 DCHECK(!is_the_hole(index)); | 2238 DCHECK(!is_the_hole(index)); |
2239 return READ_DOUBLE_FIELD(this, kHeaderSize + index * kDoubleSize); | 2239 return READ_DOUBLE_FIELD(this, kHeaderSize + index * kDoubleSize); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2444 } | 2444 } |
2445 | 2445 |
2446 | 2446 |
2447 void FixedArray::set(int index, | 2447 void FixedArray::set(int index, |
2448 Object* value, | 2448 Object* value, |
2449 WriteBarrierMode mode) { | 2449 WriteBarrierMode mode) { |
2450 DCHECK_NE(map(), GetHeap()->fixed_cow_array_map()); | 2450 DCHECK_NE(map(), GetHeap()->fixed_cow_array_map()); |
2451 DCHECK_GE(index, 0); | 2451 DCHECK_GE(index, 0); |
2452 DCHECK_LT(index, this->length()); | 2452 DCHECK_LT(index, this->length()); |
2453 int offset = kHeaderSize + index * kPointerSize; | 2453 int offset = kHeaderSize + index * kPointerSize; |
2454 NOBARRIER_WRITE_FIELD(this, offset, value); | 2454 RELAXED_WRITE_FIELD(this, offset, value); |
2455 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); | 2455 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); |
2456 } | 2456 } |
2457 | 2457 |
2458 | 2458 |
2459 void FixedArray::NoWriteBarrierSet(FixedArray* array, | 2459 void FixedArray::NoWriteBarrierSet(FixedArray* array, |
2460 int index, | 2460 int index, |
2461 Object* value) { | 2461 Object* value) { |
2462 DCHECK_NE(array->map(), array->GetHeap()->fixed_cow_array_map()); | 2462 DCHECK_NE(array->map(), array->GetHeap()->fixed_cow_array_map()); |
2463 DCHECK_GE(index, 0); | 2463 DCHECK_GE(index, 0); |
2464 DCHECK_LT(index, array->length()); | 2464 DCHECK_LT(index, array->length()); |
2465 DCHECK(!array->GetHeap()->InNewSpace(value)); | 2465 DCHECK(!array->GetHeap()->InNewSpace(value)); |
2466 NOBARRIER_WRITE_FIELD(array, kHeaderSize + index * kPointerSize, value); | 2466 RELAXED_WRITE_FIELD(array, kHeaderSize + index * kPointerSize, value); |
2467 } | 2467 } |
2468 | 2468 |
2469 void FixedArray::set_undefined(int index) { | 2469 void FixedArray::set_undefined(int index) { |
2470 set_undefined(GetIsolate(), index); | 2470 set_undefined(GetIsolate(), index); |
2471 } | 2471 } |
2472 | 2472 |
2473 void FixedArray::set_undefined(Isolate* isolate, int index) { | 2473 void FixedArray::set_undefined(Isolate* isolate, int index) { |
2474 FixedArray::NoWriteBarrierSet(this, index, | 2474 FixedArray::NoWriteBarrierSet(this, index, |
2475 isolate->heap()->undefined_value()); | 2475 isolate->heap()->undefined_value()); |
2476 } | 2476 } |
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3203 HashTable<Derived, Shape, Key>::cast(const Object* obj) { | 3203 HashTable<Derived, Shape, Key>::cast(const Object* obj) { |
3204 SLOW_DCHECK(obj->IsHashTable()); | 3204 SLOW_DCHECK(obj->IsHashTable()); |
3205 return reinterpret_cast<const HashTable*>(obj); | 3205 return reinterpret_cast<const HashTable*>(obj); |
3206 } | 3206 } |
3207 | 3207 |
3208 | 3208 |
3209 SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) | 3209 SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) |
3210 SYNCHRONIZED_SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) | 3210 SYNCHRONIZED_SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) |
3211 | 3211 |
3212 SMI_ACCESSORS(FreeSpace, size, kSizeOffset) | 3212 SMI_ACCESSORS(FreeSpace, size, kSizeOffset) |
3213 NOBARRIER_SMI_ACCESSORS(FreeSpace, size, kSizeOffset) | 3213 RELAXED_SMI_ACCESSORS(FreeSpace, size, kSizeOffset) |
3214 | 3214 |
3215 SMI_ACCESSORS(String, length, kLengthOffset) | 3215 SMI_ACCESSORS(String, length, kLengthOffset) |
3216 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset) | 3216 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset) |
3217 | 3217 |
3218 | 3218 |
3219 int FreeSpace::Size() { return size(); } | 3219 int FreeSpace::Size() { return size(); } |
3220 | 3220 |
3221 | 3221 |
3222 FreeSpace* FreeSpace::next() { | 3222 FreeSpace* FreeSpace::next() { |
3223 DCHECK(map() == GetHeap()->root(Heap::kFreeSpaceMapRootIndex) || | 3223 DCHECK(map() == GetHeap()->root(Heap::kFreeSpaceMapRootIndex) || |
3224 (!GetHeap()->deserialization_complete() && map() == NULL)); | 3224 (!GetHeap()->deserialization_complete() && map() == NULL)); |
3225 DCHECK_LE(kNextOffset + kPointerSize, nobarrier_size()); | 3225 DCHECK_LE(kNextOffset + kPointerSize, relaxed_read_size()); |
3226 return reinterpret_cast<FreeSpace*>( | 3226 return reinterpret_cast<FreeSpace*>( |
3227 Memory::Address_at(address() + kNextOffset)); | 3227 Memory::Address_at(address() + kNextOffset)); |
3228 } | 3228 } |
3229 | 3229 |
3230 | 3230 |
3231 void FreeSpace::set_next(FreeSpace* next) { | 3231 void FreeSpace::set_next(FreeSpace* next) { |
3232 DCHECK(map() == GetHeap()->root(Heap::kFreeSpaceMapRootIndex) || | 3232 DCHECK(map() == GetHeap()->root(Heap::kFreeSpaceMapRootIndex) || |
3233 (!GetHeap()->deserialization_complete() && map() == NULL)); | 3233 (!GetHeap()->deserialization_complete() && map() == NULL)); |
3234 DCHECK_LE(kNextOffset + kPointerSize, nobarrier_size()); | 3234 DCHECK_LE(kNextOffset + kPointerSize, relaxed_read_size()); |
3235 base::NoBarrier_Store( | 3235 base::Relaxed_Store( |
3236 reinterpret_cast<base::AtomicWord*>(address() + kNextOffset), | 3236 reinterpret_cast<base::AtomicWord*>(address() + kNextOffset), |
3237 reinterpret_cast<base::AtomicWord>(next)); | 3237 reinterpret_cast<base::AtomicWord>(next)); |
3238 } | 3238 } |
3239 | 3239 |
3240 | 3240 |
3241 FreeSpace* FreeSpace::cast(HeapObject* o) { | 3241 FreeSpace* FreeSpace::cast(HeapObject* o) { |
3242 SLOW_DCHECK(!o->GetHeap()->deserialization_complete() || o->IsFreeSpace()); | 3242 SLOW_DCHECK(!o->GetHeap()->deserialization_complete() || o->IsFreeSpace()); |
3243 return reinterpret_cast<FreeSpace*>(o); | 3243 return reinterpret_cast<FreeSpace*>(o); |
3244 } | 3244 } |
3245 | 3245 |
(...skipping 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4106 } | 4106 } |
4107 | 4107 |
4108 | 4108 |
4109 void Map::set_visitor_id(int id) { | 4109 void Map::set_visitor_id(int id) { |
4110 DCHECK(0 <= id && id < 256); | 4110 DCHECK(0 <= id && id < 256); |
4111 WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id)); | 4111 WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id)); |
4112 } | 4112 } |
4113 | 4113 |
4114 | 4114 |
4115 int Map::instance_size() { | 4115 int Map::instance_size() { |
4116 return NOBARRIER_READ_BYTE_FIELD( | 4116 return RELAXED_READ_BYTE_FIELD(this, kInstanceSizeOffset) << kPointerSizeLog2; |
4117 this, kInstanceSizeOffset) << kPointerSizeLog2; | |
4118 } | 4117 } |
4119 | 4118 |
4120 | 4119 |
4121 int Map::inobject_properties_or_constructor_function_index() { | 4120 int Map::inobject_properties_or_constructor_function_index() { |
4122 return READ_BYTE_FIELD(this, | 4121 return READ_BYTE_FIELD(this, |
4123 kInObjectPropertiesOrConstructorFunctionIndexOffset); | 4122 kInObjectPropertiesOrConstructorFunctionIndexOffset); |
4124 } | 4123 } |
4125 | 4124 |
4126 | 4125 |
4127 void Map::set_inobject_properties_or_constructor_function_index(int value) { | 4126 void Map::set_inobject_properties_or_constructor_function_index(int value) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4187 return SeqOneByteString::SizeFor( | 4186 return SeqOneByteString::SizeFor( |
4188 reinterpret_cast<SeqOneByteString*>(this)->synchronized_length()); | 4187 reinterpret_cast<SeqOneByteString*>(this)->synchronized_length()); |
4189 } | 4188 } |
4190 if (instance_type == BYTE_ARRAY_TYPE) { | 4189 if (instance_type == BYTE_ARRAY_TYPE) { |
4191 return reinterpret_cast<ByteArray*>(this)->ByteArraySize(); | 4190 return reinterpret_cast<ByteArray*>(this)->ByteArraySize(); |
4192 } | 4191 } |
4193 if (instance_type == BYTECODE_ARRAY_TYPE) { | 4192 if (instance_type == BYTECODE_ARRAY_TYPE) { |
4194 return reinterpret_cast<BytecodeArray*>(this)->BytecodeArraySize(); | 4193 return reinterpret_cast<BytecodeArray*>(this)->BytecodeArraySize(); |
4195 } | 4194 } |
4196 if (instance_type == FREE_SPACE_TYPE) { | 4195 if (instance_type == FREE_SPACE_TYPE) { |
4197 return reinterpret_cast<FreeSpace*>(this)->nobarrier_size(); | 4196 return reinterpret_cast<FreeSpace*>(this)->relaxed_read_size(); |
4198 } | 4197 } |
4199 if (instance_type == STRING_TYPE || | 4198 if (instance_type == STRING_TYPE || |
4200 instance_type == INTERNALIZED_STRING_TYPE) { | 4199 instance_type == INTERNALIZED_STRING_TYPE) { |
4201 // Strings may get concurrently truncated, hence we have to access its | 4200 // Strings may get concurrently truncated, hence we have to access its |
4202 // length synchronized. | 4201 // length synchronized. |
4203 return SeqTwoByteString::SizeFor( | 4202 return SeqTwoByteString::SizeFor( |
4204 reinterpret_cast<SeqTwoByteString*>(this)->synchronized_length()); | 4203 reinterpret_cast<SeqTwoByteString*>(this)->synchronized_length()); |
4205 } | 4204 } |
4206 if (instance_type == FIXED_DOUBLE_ARRAY_TYPE) { | 4205 if (instance_type == FIXED_DOUBLE_ARRAY_TYPE) { |
4207 return FixedDoubleArray::SizeFor( | 4206 return FixedDoubleArray::SizeFor( |
4208 reinterpret_cast<FixedDoubleArray*>(this)->length()); | 4207 reinterpret_cast<FixedDoubleArray*>(this)->length()); |
4209 } | 4208 } |
4210 if (instance_type >= FIRST_FIXED_TYPED_ARRAY_TYPE && | 4209 if (instance_type >= FIRST_FIXED_TYPED_ARRAY_TYPE && |
4211 instance_type <= LAST_FIXED_TYPED_ARRAY_TYPE) { | 4210 instance_type <= LAST_FIXED_TYPED_ARRAY_TYPE) { |
4212 return reinterpret_cast<FixedTypedArrayBase*>( | 4211 return reinterpret_cast<FixedTypedArrayBase*>( |
4213 this)->TypedArraySize(instance_type); | 4212 this)->TypedArraySize(instance_type); |
4214 } | 4213 } |
4215 if (instance_type == SMALL_ORDERED_HASH_SET_TYPE) { | 4214 if (instance_type == SMALL_ORDERED_HASH_SET_TYPE) { |
4216 return reinterpret_cast<SmallOrderedHashSet*>(this)->Size(); | 4215 return reinterpret_cast<SmallOrderedHashSet*>(this)->Size(); |
4217 } | 4216 } |
4218 DCHECK(instance_type == CODE_TYPE); | 4217 DCHECK(instance_type == CODE_TYPE); |
4219 return reinterpret_cast<Code*>(this)->CodeSize(); | 4218 return reinterpret_cast<Code*>(this)->CodeSize(); |
4220 } | 4219 } |
4221 | 4220 |
4222 | 4221 |
4223 void Map::set_instance_size(int value) { | 4222 void Map::set_instance_size(int value) { |
4224 DCHECK_EQ(0, value & (kPointerSize - 1)); | 4223 DCHECK_EQ(0, value & (kPointerSize - 1)); |
4225 value >>= kPointerSizeLog2; | 4224 value >>= kPointerSizeLog2; |
4226 DCHECK(0 <= value && value < 256); | 4225 DCHECK(0 <= value && value < 256); |
4227 NOBARRIER_WRITE_BYTE_FIELD( | 4226 RELAXED_WRITE_BYTE_FIELD(this, kInstanceSizeOffset, static_cast<byte>(value)); |
4228 this, kInstanceSizeOffset, static_cast<byte>(value)); | |
4229 } | 4227 } |
4230 | 4228 |
4231 | 4229 |
4232 void Map::clear_unused() { WRITE_BYTE_FIELD(this, kUnusedOffset, 0); } | 4230 void Map::clear_unused() { WRITE_BYTE_FIELD(this, kUnusedOffset, 0); } |
4233 | 4231 |
4234 | 4232 |
4235 InstanceType Map::instance_type() { | 4233 InstanceType Map::instance_type() { |
4236 return static_cast<InstanceType>(READ_BYTE_FIELD(this, kInstanceTypeOffset)); | 4234 return static_cast<InstanceType>(READ_BYTE_FIELD(this, kInstanceTypeOffset)); |
4237 } | 4235 } |
4238 | 4236 |
(...skipping 2180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6419 } | 6417 } |
6420 | 6418 |
6421 | 6419 |
6422 void Foreign::set_foreign_address(Address value) { | 6420 void Foreign::set_foreign_address(Address value) { |
6423 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); | 6421 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); |
6424 } | 6422 } |
6425 | 6423 |
6426 template <class Derived> | 6424 template <class Derived> |
6427 void SmallOrderedHashTable<Derived>::SetDataEntry(int entry, Object* value) { | 6425 void SmallOrderedHashTable<Derived>::SetDataEntry(int entry, Object* value) { |
6428 int offset = GetDataEntryOffset(entry); | 6426 int offset = GetDataEntryOffset(entry); |
6429 NOBARRIER_WRITE_FIELD(this, offset, value); | 6427 RELAXED_WRITE_FIELD(this, offset, value); |
6430 WRITE_BARRIER(GetHeap(), this, offset, value); | 6428 WRITE_BARRIER(GetHeap(), this, offset, value); |
6431 } | 6429 } |
6432 | 6430 |
6433 ACCESSORS(JSGeneratorObject, function, JSFunction, kFunctionOffset) | 6431 ACCESSORS(JSGeneratorObject, function, JSFunction, kFunctionOffset) |
6434 ACCESSORS(JSGeneratorObject, context, Context, kContextOffset) | 6432 ACCESSORS(JSGeneratorObject, context, Context, kContextOffset) |
6435 ACCESSORS(JSGeneratorObject, receiver, Object, kReceiverOffset) | 6433 ACCESSORS(JSGeneratorObject, receiver, Object, kReceiverOffset) |
6436 ACCESSORS(JSGeneratorObject, input_or_debug_pos, Object, kInputOrDebugPosOffset) | 6434 ACCESSORS(JSGeneratorObject, input_or_debug_pos, Object, kInputOrDebugPosOffset) |
6437 SMI_ACCESSORS(JSGeneratorObject, resume_mode, kResumeModeOffset) | 6435 SMI_ACCESSORS(JSGeneratorObject, resume_mode, kResumeModeOffset) |
6438 SMI_ACCESSORS(JSGeneratorObject, continuation, kContinuationOffset) | 6436 SMI_ACCESSORS(JSGeneratorObject, continuation, kContinuationOffset) |
6439 ACCESSORS(JSGeneratorObject, register_file, FixedArray, kRegisterFileOffset) | 6437 ACCESSORS(JSGeneratorObject, register_file, FixedArray, kRegisterFileOffset) |
(...skipping 1540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7980 | 7978 |
7981 ACCESSORS(JSStringIterator, string, String, kStringOffset) | 7979 ACCESSORS(JSStringIterator, string, String, kStringOffset) |
7982 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) | 7980 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) |
7983 | 7981 |
7984 } // namespace internal | 7982 } // namespace internal |
7985 } // namespace v8 | 7983 } // namespace v8 |
7986 | 7984 |
7987 #include "src/objects/object-macros-undef.h" | 7985 #include "src/objects/object-macros-undef.h" |
7988 | 7986 |
7989 #endif // V8_OBJECTS_INL_H_ | 7987 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |