Chromium Code Reviews| 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 4697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4708 | 4708 |
| 4709 void Map::set_migration_target(bool value) { | 4709 void Map::set_migration_target(bool value) { |
| 4710 set_bit_field3(IsMigrationTarget::update(bit_field3(), value)); | 4710 set_bit_field3(IsMigrationTarget::update(bit_field3(), value)); |
| 4711 } | 4711 } |
| 4712 | 4712 |
| 4713 | 4713 |
| 4714 bool Map::is_migration_target() { | 4714 bool Map::is_migration_target() { |
| 4715 return IsMigrationTarget::decode(bit_field3()); | 4715 return IsMigrationTarget::decode(bit_field3()); |
| 4716 } | 4716 } |
| 4717 | 4717 |
| 4718 void Map::set_immutable_proto(bool value) { | |
| 4719 set_bit_field3(ImmutablePrototype::update(bit_field3(), value)); | |
| 4720 } | |
| 4721 | |
| 4722 bool Map::is_immutable_proto() { | |
| 4723 return ImmutablePrototype::decode(bit_field3()); | |
| 4724 } | |
| 4718 | 4725 |
| 4719 void Map::set_new_target_is_base(bool value) { | 4726 void Map::set_new_target_is_base(bool value) { |
| 4720 set_bit_field3(NewTargetIsBase::update(bit_field3(), value)); | 4727 set_bit_field3(NewTargetIsBase::update(bit_field3(), value)); |
| 4721 } | 4728 } |
| 4722 | 4729 |
| 4723 | 4730 |
| 4724 bool Map::new_target_is_base() { return NewTargetIsBase::decode(bit_field3()); } | 4731 bool Map::new_target_is_base() { return NewTargetIsBase::decode(bit_field3()); } |
| 4725 | 4732 |
| 4726 | 4733 |
| 4727 void Map::set_construction_counter(int value) { | 4734 void Map::set_construction_counter(int value) { |
| (...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5614 ACCESSORS(FunctionTemplateInfo, instance_call_handler, Object, | 5621 ACCESSORS(FunctionTemplateInfo, instance_call_handler, Object, |
| 5615 kInstanceCallHandlerOffset) | 5622 kInstanceCallHandlerOffset) |
| 5616 ACCESSORS(FunctionTemplateInfo, access_check_info, Object, | 5623 ACCESSORS(FunctionTemplateInfo, access_check_info, Object, |
| 5617 kAccessCheckInfoOffset) | 5624 kAccessCheckInfoOffset) |
| 5618 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object, | 5625 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object, |
| 5619 kSharedFunctionInfoOffset) | 5626 kSharedFunctionInfoOffset) |
| 5620 | 5627 |
| 5621 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset) | 5628 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset) |
| 5622 | 5629 |
| 5623 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) | 5630 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) |
| 5624 ACCESSORS(ObjectTemplateInfo, internal_field_count, Object, | 5631 ACCESSORS(ObjectTemplateInfo, data, Object, kDataOffset) |
| 5625 kInternalFieldCountOffset) | 5632 int ObjectTemplateInfo::internal_field_count() const { |
| 5633 Object* value = data(); | |
| 5634 DCHECK(value->IsSmi()); | |
| 5635 return Smi::cast(value)->value() >> 1; | |
|
Toon Verwaest
2016/06/30 15:35:33
You probably want to use BitField to designate the
Dan Ehrenberg
2016/06/30 23:12:41
Done
| |
| 5636 } | |
| 5637 void ObjectTemplateInfo::set_internal_field_count(int count) { | |
| 5638 DCHECK(count << 1 < Smi::kMaxValue); | |
| 5639 return set_data(Smi::FromInt((immutable_proto() ? 1 : 0) | (count << 1))); | |
| 5640 } | |
| 5641 bool ObjectTemplateInfo::immutable_proto() const { | |
| 5642 Object* value = data(); | |
| 5643 DCHECK(value->IsSmi()); | |
| 5644 return Smi::cast(value)->value() & 1; | |
| 5645 } | |
| 5646 void ObjectTemplateInfo::set_immutable_proto(bool immutable) { | |
| 5647 return set_data( | |
| 5648 Smi::FromInt((immutable ? 1 : 0) | (internal_field_count() << 1))); | |
| 5649 } | |
| 5626 | 5650 |
| 5627 ACCESSORS(AllocationSite, transition_info, Object, kTransitionInfoOffset) | 5651 ACCESSORS(AllocationSite, transition_info, Object, kTransitionInfoOffset) |
| 5628 ACCESSORS(AllocationSite, nested_site, Object, kNestedSiteOffset) | 5652 ACCESSORS(AllocationSite, nested_site, Object, kNestedSiteOffset) |
| 5629 SMI_ACCESSORS(AllocationSite, pretenure_data, kPretenureDataOffset) | 5653 SMI_ACCESSORS(AllocationSite, pretenure_data, kPretenureDataOffset) |
| 5630 SMI_ACCESSORS(AllocationSite, pretenure_create_count, | 5654 SMI_ACCESSORS(AllocationSite, pretenure_create_count, |
| 5631 kPretenureCreateCountOffset) | 5655 kPretenureCreateCountOffset) |
| 5632 ACCESSORS(AllocationSite, dependent_code, DependentCode, | 5656 ACCESSORS(AllocationSite, dependent_code, DependentCode, |
| 5633 kDependentCodeOffset) | 5657 kDependentCodeOffset) |
| 5634 ACCESSORS(AllocationSite, weak_next, Object, kWeakNextOffset) | 5658 ACCESSORS(AllocationSite, weak_next, Object, kWeakNextOffset) |
| 5635 ACCESSORS(AllocationMemento, allocation_site, Object, kAllocationSiteOffset) | 5659 ACCESSORS(AllocationMemento, allocation_site, Object, kAllocationSiteOffset) |
| (...skipping 2402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8038 #undef WRITE_INT64_FIELD | 8062 #undef WRITE_INT64_FIELD |
| 8039 #undef READ_BYTE_FIELD | 8063 #undef READ_BYTE_FIELD |
| 8040 #undef WRITE_BYTE_FIELD | 8064 #undef WRITE_BYTE_FIELD |
| 8041 #undef NOBARRIER_READ_BYTE_FIELD | 8065 #undef NOBARRIER_READ_BYTE_FIELD |
| 8042 #undef NOBARRIER_WRITE_BYTE_FIELD | 8066 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 8043 | 8067 |
| 8044 } // namespace internal | 8068 } // namespace internal |
| 8045 } // namespace v8 | 8069 } // namespace v8 |
| 8046 | 8070 |
| 8047 #endif // V8_OBJECTS_INL_H_ | 8071 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |