Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: src/objects.cc

Issue 2663513002: [objects.h splitting] Move out ConstantElementsPair and BoileplateDescriptor. (Closed)
Patch Set: moving constant_elements_kind to ast.cc Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/objects.h ('k') | src/objects-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 9819 matching lines...) Expand 10 before | Expand all | Expand 10 after
9830 9830
9831 9831
9832 void FixedArray::CopyTo(int pos, FixedArray* dest, int dest_pos, int len) { 9832 void FixedArray::CopyTo(int pos, FixedArray* dest, int dest_pos, int len) {
9833 DisallowHeapAllocation no_gc; 9833 DisallowHeapAllocation no_gc;
9834 WriteBarrierMode mode = dest->GetWriteBarrierMode(no_gc); 9834 WriteBarrierMode mode = dest->GetWriteBarrierMode(no_gc);
9835 for (int index = 0; index < len; index++) { 9835 for (int index = 0; index < len; index++) {
9836 dest->set(dest_pos+index, get(pos+index), mode); 9836 dest->set(dest_pos+index, get(pos+index), mode);
9837 } 9837 }
9838 } 9838 }
9839 9839
9840 Object* BoilerplateDescription::name(int index) const {
9841 // get() already checks for out of bounds access, but we do not want to allow
9842 // access to the last element, if it is the number of properties.
9843 DCHECK_NE(size(), index);
9844 return get(2 * index);
9845 }
9846
9847 Object* BoilerplateDescription::value(int index) const {
9848 return get(2 * index + 1);
9849 }
9850
9851 int BoilerplateDescription::size() const {
9852 DCHECK_EQ(0, (length() - (this->has_number_of_properties() ? 1 : 0)) % 2);
9853 // Rounding is intended.
9854 return length() / 2;
9855 }
9856
9857 int BoilerplateDescription::backing_store_size() const {
9858 if (has_number_of_properties()) {
9859 // If present, the last entry contains the number of properties.
9860 return Smi::cast(this->get(length() - 1))->value();
9861 }
9862 // If the number is not given explicitly, we assume there are no
9863 // properties with computed names.
9864 return size();
9865 }
9866
9867 void BoilerplateDescription::set_backing_store_size(Isolate* isolate,
9868 int backing_store_size) {
9869 DCHECK(has_number_of_properties());
9870 DCHECK_NE(size(), backing_store_size);
9871 Handle<Object> backing_store_size_obj =
9872 isolate->factory()->NewNumberFromInt(backing_store_size);
9873 set(length() - 1, *backing_store_size_obj);
9874 }
9875
9876 bool BoilerplateDescription::has_number_of_properties() const {
9877 return length() % 2 != 0;
9878 }
9879
9880 #ifdef DEBUG 9840 #ifdef DEBUG
9881 bool FixedArray::IsEqualTo(FixedArray* other) { 9841 bool FixedArray::IsEqualTo(FixedArray* other) {
9882 if (length() != other->length()) return false; 9842 if (length() != other->length()) return false;
9883 for (int i = 0 ; i < length(); ++i) { 9843 for (int i = 0 ; i < length(); ++i) {
9884 if (get(i) != other->get(i)) return false; 9844 if (get(i) != other->get(i)) return false;
9885 } 9845 }
9886 return true; 9846 return true;
9887 } 9847 }
9888 #endif 9848 #endif
9889 9849
(...skipping 10176 matching lines...) Expand 10 before | Expand all | Expand 10 after
20066 // depend on this. 20026 // depend on this.
20067 return DICTIONARY_ELEMENTS; 20027 return DICTIONARY_ELEMENTS;
20068 } 20028 }
20069 DCHECK_LE(kind, LAST_ELEMENTS_KIND); 20029 DCHECK_LE(kind, LAST_ELEMENTS_KIND);
20070 return kind; 20030 return kind;
20071 } 20031 }
20072 } 20032 }
20073 20033
20074 } // namespace internal 20034 } // namespace internal
20075 } // namespace v8 20035 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698