OLD | NEW |
---|---|
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include "src/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <memory> | 9 #include <memory> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 9791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
9802 | 9802 |
9803 | 9803 |
9804 void FixedArray::CopyTo(int pos, FixedArray* dest, int dest_pos, int len) { | 9804 void FixedArray::CopyTo(int pos, FixedArray* dest, int dest_pos, int len) { |
9805 DisallowHeapAllocation no_gc; | 9805 DisallowHeapAllocation no_gc; |
9806 WriteBarrierMode mode = dest->GetWriteBarrierMode(no_gc); | 9806 WriteBarrierMode mode = dest->GetWriteBarrierMode(no_gc); |
9807 for (int index = 0; index < len; index++) { | 9807 for (int index = 0; index < len; index++) { |
9808 dest->set(dest_pos+index, get(pos+index), mode); | 9808 dest->set(dest_pos+index, get(pos+index), mode); |
9809 } | 9809 } |
9810 } | 9810 } |
9811 | 9811 |
9812 int const ConstantProperties::number_of_properties() { | |
9813 if (has_number_of_properties()) { | |
9814 return Smi::cast(this->get(FixedArray::length() - 1))->value(); | |
9815 } | |
9816 return FixedArray::length() / 2; | |
9817 } | |
9818 | |
9819 int const ConstantProperties::length() { | |
9820 return FixedArray::length() - (this->has_number_of_properties() ? 1 : 0); | |
Toon Verwaest
2017/01/18 08:49:53
Perhaps better to not call this length; it's a lit
Franzi
2017/01/18 14:23:10
Done. Using size() which is intuitive for lists an
| |
9821 } | |
9822 | |
9823 bool const ConstantProperties::has_number_of_properties() { | |
9824 return FixedArray::length() % 2 != 0; | |
9825 } | |
9812 | 9826 |
9813 #ifdef DEBUG | 9827 #ifdef DEBUG |
9814 bool FixedArray::IsEqualTo(FixedArray* other) { | 9828 bool FixedArray::IsEqualTo(FixedArray* other) { |
9815 if (length() != other->length()) return false; | 9829 if (length() != other->length()) return false; |
9816 for (int i = 0 ; i < length(); ++i) { | 9830 for (int i = 0 ; i < length(); ++i) { |
9817 if (get(i) != other->get(i)) return false; | 9831 if (get(i) != other->get(i)) return false; |
9818 } | 9832 } |
9819 return true; | 9833 return true; |
9820 } | 9834 } |
9821 #endif | 9835 #endif |
(...skipping 10079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
19901 // depend on this. | 19915 // depend on this. |
19902 return DICTIONARY_ELEMENTS; | 19916 return DICTIONARY_ELEMENTS; |
19903 } | 19917 } |
19904 DCHECK_LE(kind, LAST_ELEMENTS_KIND); | 19918 DCHECK_LE(kind, LAST_ELEMENTS_KIND); |
19905 return kind; | 19919 return kind; |
19906 } | 19920 } |
19907 } | 19921 } |
19908 | 19922 |
19909 } // namespace internal | 19923 } // namespace internal |
19910 } // namespace v8 | 19924 } // namespace v8 |
OLD | NEW |