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

Side by Side Diff: src/objects-debug.cc

Issue 2405253006: [builtins] implement Array.prototype[@@iterator] in TFJ builtins (Closed)
Patch Set: latest round Created 4 years, 2 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-body-descriptors-inl.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 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 #include "src/objects.h" 5 #include "src/objects.h"
6 6
7 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/disasm.h" 8 #include "src/disasm.h"
9 #include "src/disassembler.h" 9 #include "src/disassembler.h"
10 #include "src/field-type.h" 10 #include "src/field-type.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 break; 151 break;
152 case JS_MAP_TYPE: 152 case JS_MAP_TYPE:
153 JSMap::cast(this)->JSMapVerify(); 153 JSMap::cast(this)->JSMapVerify();
154 break; 154 break;
155 case JS_SET_ITERATOR_TYPE: 155 case JS_SET_ITERATOR_TYPE:
156 JSSetIterator::cast(this)->JSSetIteratorVerify(); 156 JSSetIterator::cast(this)->JSSetIteratorVerify();
157 break; 157 break;
158 case JS_MAP_ITERATOR_TYPE: 158 case JS_MAP_ITERATOR_TYPE:
159 JSMapIterator::cast(this)->JSMapIteratorVerify(); 159 JSMapIterator::cast(this)->JSMapIteratorVerify();
160 break; 160 break;
161 case JS_TYPED_ARRAY_KEY_ITERATOR_TYPE:
162 case JS_FAST_ARRAY_KEY_ITERATOR_TYPE:
163 case JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE:
164 case JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE:
165 case JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE:
166 case JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE:
167 case JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE:
168 case JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
169 case JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
170 case JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
171 case JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE:
172 case JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE:
173 case JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE:
174 case JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE:
175 case JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE:
176 case JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE:
177 case JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE:
178 case JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE:
179 case JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE:
180 case JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE:
181 case JS_INT8_ARRAY_VALUE_ITERATOR_TYPE:
182 case JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE:
183 case JS_INT16_ARRAY_VALUE_ITERATOR_TYPE:
184 case JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE:
185 case JS_INT32_ARRAY_VALUE_ITERATOR_TYPE:
186 case JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE:
187 case JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE:
188 case JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE:
189 case JS_FAST_ARRAY_VALUE_ITERATOR_TYPE:
190 case JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE:
191 case JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE:
192 case JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE:
193 case JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE:
194 case JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE:
195 case JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE:
196 JSArrayIterator::cast(this)->JSArrayIteratorVerify();
197 break;
198
161 case JS_STRING_ITERATOR_TYPE: 199 case JS_STRING_ITERATOR_TYPE:
162 JSStringIterator::cast(this)->JSStringIteratorVerify(); 200 JSStringIterator::cast(this)->JSStringIteratorVerify();
163 break; 201 break;
164 case JS_WEAK_MAP_TYPE: 202 case JS_WEAK_MAP_TYPE:
165 JSWeakMap::cast(this)->JSWeakMapVerify(); 203 JSWeakMap::cast(this)->JSWeakMapVerify();
166 break; 204 break;
167 case JS_WEAK_SET_TYPE: 205 case JS_WEAK_SET_TYPE:
168 JSWeakSet::cast(this)->JSWeakSetVerify(); 206 JSWeakSet::cast(this)->JSWeakSetVerify();
169 break; 207 break;
170 case JS_REGEXP_TYPE: 208 case JS_REGEXP_TYPE:
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 } 819 }
782 820
783 821
784 void JSWeakMap::JSWeakMapVerify() { 822 void JSWeakMap::JSWeakMapVerify() {
785 CHECK(IsJSWeakMap()); 823 CHECK(IsJSWeakMap());
786 JSObjectVerify(); 824 JSObjectVerify();
787 VerifyHeapPointer(table()); 825 VerifyHeapPointer(table());
788 CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate())); 826 CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
789 } 827 }
790 828
829 void JSArrayIterator::JSArrayIteratorVerify() {
830 CHECK(IsJSArrayIterator());
831 JSObjectVerify();
832 CHECK(object()->IsJSReceiver() || object()->IsUndefined(GetIsolate()));
833
834 CHECK_GE(index()->Number(), 0);
835 CHECK_LE(index()->Number(), kMaxSafeInteger);
836 CHECK(object_map()->IsMap() || object_map()->IsUndefined(GetIsolate()));
837 }
838
791 void JSStringIterator::JSStringIteratorVerify() { 839 void JSStringIterator::JSStringIteratorVerify() {
792 CHECK(IsJSStringIterator()); 840 CHECK(IsJSStringIterator());
793 JSObjectVerify(); 841 JSObjectVerify();
794 CHECK(string()->IsString()); 842 CHECK(string()->IsString());
795 843
796 CHECK_GE(index(), 0); 844 CHECK_GE(index(), 0);
797 CHECK_LE(index(), String::kMaxLength); 845 CHECK_LE(index(), String::kMaxLength);
798 } 846 }
799 847
800 void JSWeakSet::JSWeakSetVerify() { 848 void JSWeakSet::JSWeakSetVerify() {
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 1458
1411 // Both are done at the same time. 1459 // Both are done at the same time.
1412 CHECK_EQ(new_it.done(), old_it.done()); 1460 CHECK_EQ(new_it.done(), old_it.done());
1413 } 1461 }
1414 1462
1415 1463
1416 #endif // DEBUG 1464 #endif // DEBUG
1417 1465
1418 } // namespace internal 1466 } // namespace internal
1419 } // namespace v8 1467 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects-body-descriptors-inl.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698