| 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 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 } | 709 } |
| 710 | 710 |
| 711 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } | 711 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } |
| 712 | 712 |
| 713 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } | 713 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } |
| 714 | 714 |
| 715 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } | 715 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } |
| 716 | 716 |
| 717 bool HeapObject::IsArrayList() const { return IsFixedArray(); } | 717 bool HeapObject::IsArrayList() const { return IsFixedArray(); } |
| 718 | 718 |
| 719 bool HeapObject::IsRegExpMatchInfo() const { return IsFixedArray(); } |
| 720 |
| 719 bool Object::IsLayoutDescriptor() const { | 721 bool Object::IsLayoutDescriptor() const { |
| 720 return IsSmi() || IsFixedTypedArrayBase(); | 722 return IsSmi() || IsFixedTypedArrayBase(); |
| 721 } | 723 } |
| 722 | 724 |
| 723 bool HeapObject::IsTypeFeedbackVector() const { return IsFixedArray(); } | 725 bool HeapObject::IsTypeFeedbackVector() const { return IsFixedArray(); } |
| 724 | 726 |
| 725 bool HeapObject::IsTypeFeedbackMetadata() const { return IsFixedArray(); } | 727 bool HeapObject::IsTypeFeedbackMetadata() const { return IsFixedArray(); } |
| 726 | 728 |
| 727 bool HeapObject::IsLiteralsArray() const { return IsFixedArray(); } | 729 bool HeapObject::IsLiteralsArray() const { return IsFixedArray(); } |
| 728 | 730 |
| (...skipping 1799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2528 FixedArray::cast(this)->set(kFirstIndex + index, obj, mode); | 2530 FixedArray::cast(this)->set(kFirstIndex + index, obj, mode); |
| 2529 } | 2531 } |
| 2530 | 2532 |
| 2531 | 2533 |
| 2532 void ArrayList::Clear(int index, Object* undefined) { | 2534 void ArrayList::Clear(int index, Object* undefined) { |
| 2533 DCHECK(undefined->IsUndefined(GetIsolate())); | 2535 DCHECK(undefined->IsUndefined(GetIsolate())); |
| 2534 FixedArray::cast(this) | 2536 FixedArray::cast(this) |
| 2535 ->set(kFirstIndex + index, undefined, SKIP_WRITE_BARRIER); | 2537 ->set(kFirstIndex + index, undefined, SKIP_WRITE_BARRIER); |
| 2536 } | 2538 } |
| 2537 | 2539 |
| 2540 int RegExpMatchInfo::NumberOfCaptureRegisters() { |
| 2541 DCHECK_GE(length(), kLastMatchOverhead); |
| 2542 Object* obj = get(kNumberOfCapturesIndex); |
| 2543 return Smi::cast(obj)->value(); |
| 2544 } |
| 2545 |
| 2546 void RegExpMatchInfo::SetNumberOfCaptureRegisters(int value) { |
| 2547 DCHECK_GE(length(), kLastMatchOverhead); |
| 2548 set(kNumberOfCapturesIndex, Smi::FromInt(value)); |
| 2549 } |
| 2550 |
| 2551 String* RegExpMatchInfo::LastSubject() { |
| 2552 DCHECK_GE(length(), kLastMatchOverhead); |
| 2553 Object* obj = get(kLastSubjectIndex); |
| 2554 return String::cast(obj); |
| 2555 } |
| 2556 |
| 2557 void RegExpMatchInfo::SetLastSubject(String* value) { |
| 2558 DCHECK_GE(length(), kLastMatchOverhead); |
| 2559 set(kLastSubjectIndex, value); |
| 2560 } |
| 2561 |
| 2562 Object* RegExpMatchInfo::LastInput() { |
| 2563 DCHECK_GE(length(), kLastMatchOverhead); |
| 2564 return get(kLastInputIndex); |
| 2565 } |
| 2566 |
| 2567 void RegExpMatchInfo::SetLastInput(Object* value) { |
| 2568 DCHECK_GE(length(), kLastMatchOverhead); |
| 2569 set(kLastInputIndex, value); |
| 2570 } |
| 2571 |
| 2572 int RegExpMatchInfo::Capture(int i) { |
| 2573 DCHECK_LT(i, NumberOfCaptureRegisters()); |
| 2574 Object* obj = get(kFirstCaptureIndex + i); |
| 2575 return Smi::cast(obj)->value(); |
| 2576 } |
| 2577 |
| 2578 void RegExpMatchInfo::SetCapture(int i, int value) { |
| 2579 DCHECK_LT(i, NumberOfCaptureRegisters()); |
| 2580 set(kFirstCaptureIndex + i, Smi::FromInt(value)); |
| 2581 } |
| 2538 | 2582 |
| 2539 WriteBarrierMode HeapObject::GetWriteBarrierMode( | 2583 WriteBarrierMode HeapObject::GetWriteBarrierMode( |
| 2540 const DisallowHeapAllocation& promise) { | 2584 const DisallowHeapAllocation& promise) { |
| 2541 Heap* heap = GetHeap(); | 2585 Heap* heap = GetHeap(); |
| 2542 if (heap->incremental_marking()->IsMarking()) return UPDATE_WRITE_BARRIER; | 2586 if (heap->incremental_marking()->IsMarking()) return UPDATE_WRITE_BARRIER; |
| 2543 if (heap->InNewSpace(this)) return SKIP_WRITE_BARRIER; | 2587 if (heap->InNewSpace(this)) return SKIP_WRITE_BARRIER; |
| 2544 return UPDATE_WRITE_BARRIER; | 2588 return UPDATE_WRITE_BARRIER; |
| 2545 } | 2589 } |
| 2546 | 2590 |
| 2547 | 2591 |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3307 CAST_ACCESSOR(NameDictionary) | 3351 CAST_ACCESSOR(NameDictionary) |
| 3308 CAST_ACCESSOR(NormalizedMapCache) | 3352 CAST_ACCESSOR(NormalizedMapCache) |
| 3309 CAST_ACCESSOR(Object) | 3353 CAST_ACCESSOR(Object) |
| 3310 CAST_ACCESSOR(ObjectHashTable) | 3354 CAST_ACCESSOR(ObjectHashTable) |
| 3311 CAST_ACCESSOR(ObjectHashSet) | 3355 CAST_ACCESSOR(ObjectHashSet) |
| 3312 CAST_ACCESSOR(Oddball) | 3356 CAST_ACCESSOR(Oddball) |
| 3313 CAST_ACCESSOR(OrderedHashMap) | 3357 CAST_ACCESSOR(OrderedHashMap) |
| 3314 CAST_ACCESSOR(OrderedHashSet) | 3358 CAST_ACCESSOR(OrderedHashSet) |
| 3315 CAST_ACCESSOR(PropertyCell) | 3359 CAST_ACCESSOR(PropertyCell) |
| 3316 CAST_ACCESSOR(TemplateList) | 3360 CAST_ACCESSOR(TemplateList) |
| 3361 CAST_ACCESSOR(RegExpMatchInfo) |
| 3317 CAST_ACCESSOR(ScopeInfo) | 3362 CAST_ACCESSOR(ScopeInfo) |
| 3318 CAST_ACCESSOR(SeededNumberDictionary) | 3363 CAST_ACCESSOR(SeededNumberDictionary) |
| 3319 CAST_ACCESSOR(SeqOneByteString) | 3364 CAST_ACCESSOR(SeqOneByteString) |
| 3320 CAST_ACCESSOR(SeqString) | 3365 CAST_ACCESSOR(SeqString) |
| 3321 CAST_ACCESSOR(SeqTwoByteString) | 3366 CAST_ACCESSOR(SeqTwoByteString) |
| 3322 CAST_ACCESSOR(SharedFunctionInfo) | 3367 CAST_ACCESSOR(SharedFunctionInfo) |
| 3323 CAST_ACCESSOR(Simd128Value) | 3368 CAST_ACCESSOR(Simd128Value) |
| 3324 CAST_ACCESSOR(SlicedString) | 3369 CAST_ACCESSOR(SlicedString) |
| 3325 CAST_ACCESSOR(Smi) | 3370 CAST_ACCESSOR(Smi) |
| 3326 CAST_ACCESSOR(String) | 3371 CAST_ACCESSOR(String) |
| (...skipping 5026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8353 #undef WRITE_INT64_FIELD | 8398 #undef WRITE_INT64_FIELD |
| 8354 #undef READ_BYTE_FIELD | 8399 #undef READ_BYTE_FIELD |
| 8355 #undef WRITE_BYTE_FIELD | 8400 #undef WRITE_BYTE_FIELD |
| 8356 #undef NOBARRIER_READ_BYTE_FIELD | 8401 #undef NOBARRIER_READ_BYTE_FIELD |
| 8357 #undef NOBARRIER_WRITE_BYTE_FIELD | 8402 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 8358 | 8403 |
| 8359 } // namespace internal | 8404 } // namespace internal |
| 8360 } // namespace v8 | 8405 } // namespace v8 |
| 8361 | 8406 |
| 8362 #endif // V8_OBJECTS_INL_H_ | 8407 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |