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 6982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6993 } | 6993 } |
6994 | 6994 |
6995 | 6995 |
6996 String* JSRegExp::Pattern() { | 6996 String* JSRegExp::Pattern() { |
6997 DCHECK(this->data()->IsFixedArray()); | 6997 DCHECK(this->data()->IsFixedArray()); |
6998 Object* data = this->data(); | 6998 Object* data = this->data(); |
6999 String* pattern = String::cast(FixedArray::cast(data)->get(kSourceIndex)); | 6999 String* pattern = String::cast(FixedArray::cast(data)->get(kSourceIndex)); |
7000 return pattern; | 7000 return pattern; |
7001 } | 7001 } |
7002 | 7002 |
| 7003 Object* JSRegExp::CaptureNameMap() { |
| 7004 DCHECK(this->data()->IsFixedArray()); |
| 7005 DCHECK_EQ(TypeTag(), IRREGEXP); |
| 7006 return DataAt(kIrregexpCaptureNameMapIndex); |
| 7007 } |
7003 | 7008 |
7004 Object* JSRegExp::DataAt(int index) { | 7009 Object* JSRegExp::DataAt(int index) { |
7005 DCHECK(TypeTag() != NOT_COMPILED); | 7010 DCHECK(TypeTag() != NOT_COMPILED); |
7006 return FixedArray::cast(data())->get(index); | 7011 return FixedArray::cast(data())->get(index); |
7007 } | 7012 } |
7008 | 7013 |
7009 | 7014 |
7010 void JSRegExp::SetDataAt(int index, Object* value) { | 7015 void JSRegExp::SetDataAt(int index, Object* value) { |
7011 DCHECK(TypeTag() != NOT_COMPILED); | 7016 DCHECK(TypeTag() != NOT_COMPILED); |
7012 DCHECK(index >= kDataIndex); // Only implementation data can be set this way. | 7017 DCHECK(index >= kDataIndex); // Only implementation data can be set this way. |
(...skipping 1263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8276 #undef WRITE_INT64_FIELD | 8281 #undef WRITE_INT64_FIELD |
8277 #undef READ_BYTE_FIELD | 8282 #undef READ_BYTE_FIELD |
8278 #undef WRITE_BYTE_FIELD | 8283 #undef WRITE_BYTE_FIELD |
8279 #undef NOBARRIER_READ_BYTE_FIELD | 8284 #undef NOBARRIER_READ_BYTE_FIELD |
8280 #undef NOBARRIER_WRITE_BYTE_FIELD | 8285 #undef NOBARRIER_WRITE_BYTE_FIELD |
8281 | 8286 |
8282 } // namespace internal | 8287 } // namespace internal |
8283 } // namespace v8 | 8288 } // namespace v8 |
8284 | 8289 |
8285 #endif // V8_OBJECTS_INL_H_ | 8290 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |