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 7013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7024 return FixedArray::cast(data())->get(index); | 7024 return FixedArray::cast(data())->get(index); |
7025 } | 7025 } |
7026 | 7026 |
7027 | 7027 |
7028 void JSRegExp::SetDataAt(int index, Object* value) { | 7028 void JSRegExp::SetDataAt(int index, Object* value) { |
7029 DCHECK(TypeTag() != NOT_COMPILED); | 7029 DCHECK(TypeTag() != NOT_COMPILED); |
7030 DCHECK(index >= kDataIndex); // Only implementation data can be set this way. | 7030 DCHECK(index >= kDataIndex); // Only implementation data can be set this way. |
7031 FixedArray::cast(data())->set(index, value); | 7031 FixedArray::cast(data())->set(index, value); |
7032 } | 7032 } |
7033 | 7033 |
| 7034 void JSRegExp::SetLastIndex(int index) { |
| 7035 static const int offset = |
| 7036 kSize + JSRegExp::kLastIndexFieldIndex * kPointerSize; |
| 7037 Smi* value = Smi::FromInt(index); |
| 7038 WRITE_FIELD(this, offset, value); |
| 7039 } |
| 7040 |
| 7041 Object* JSRegExp::LastIndex() { |
| 7042 static const int offset = |
| 7043 kSize + JSRegExp::kLastIndexFieldIndex * kPointerSize; |
| 7044 return READ_FIELD(this, offset); |
| 7045 } |
7034 | 7046 |
7035 ElementsKind JSObject::GetElementsKind() { | 7047 ElementsKind JSObject::GetElementsKind() { |
7036 ElementsKind kind = map()->elements_kind(); | 7048 ElementsKind kind = map()->elements_kind(); |
7037 #if VERIFY_HEAP && DEBUG | 7049 #if VERIFY_HEAP && DEBUG |
7038 FixedArrayBase* fixed_array = | 7050 FixedArrayBase* fixed_array = |
7039 reinterpret_cast<FixedArrayBase*>(READ_FIELD(this, kElementsOffset)); | 7051 reinterpret_cast<FixedArrayBase*>(READ_FIELD(this, kElementsOffset)); |
7040 | 7052 |
7041 // If a GC was caused while constructing this object, the elements | 7053 // If a GC was caused while constructing this object, the elements |
7042 // pointer may point to a one pointer filler map. | 7054 // pointer may point to a one pointer filler map. |
7043 if (ElementsAreSafeToExamine()) { | 7055 if (ElementsAreSafeToExamine()) { |
(...skipping 1271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8315 #undef WRITE_INT64_FIELD | 8327 #undef WRITE_INT64_FIELD |
8316 #undef READ_BYTE_FIELD | 8328 #undef READ_BYTE_FIELD |
8317 #undef WRITE_BYTE_FIELD | 8329 #undef WRITE_BYTE_FIELD |
8318 #undef NOBARRIER_READ_BYTE_FIELD | 8330 #undef NOBARRIER_READ_BYTE_FIELD |
8319 #undef NOBARRIER_WRITE_BYTE_FIELD | 8331 #undef NOBARRIER_WRITE_BYTE_FIELD |
8320 | 8332 |
8321 } // namespace internal | 8333 } // namespace internal |
8322 } // namespace v8 | 8334 } // namespace v8 |
8323 | 8335 |
8324 #endif // V8_OBJECTS_INL_H_ | 8336 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |