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

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

Issue 2405253006: [builtins] implement Array.prototype[@@iterator] in TFJ builtins (Closed)
Patch Set: V1 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
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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 break; 148 break;
149 case JS_MAP_TYPE: 149 case JS_MAP_TYPE:
150 JSMap::cast(this)->JSMapVerify(); 150 JSMap::cast(this)->JSMapVerify();
151 break; 151 break;
152 case JS_SET_ITERATOR_TYPE: 152 case JS_SET_ITERATOR_TYPE:
153 JSSetIterator::cast(this)->JSSetIteratorVerify(); 153 JSSetIterator::cast(this)->JSSetIteratorVerify();
154 break; 154 break;
155 case JS_MAP_ITERATOR_TYPE: 155 case JS_MAP_ITERATOR_TYPE:
156 JSMapIterator::cast(this)->JSMapIteratorVerify(); 156 JSMapIterator::cast(this)->JSMapIteratorVerify();
157 break; 157 break;
158 case JS_TYPED_ARRAY_KEY_ITERATOR_TYPE:
159 case JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE:
160 case JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE:
161 case JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE:
162 case JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE:
163 case JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
164 case JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
165 case JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE:
166 case JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE:
167 case JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE:
168 case JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE:
169 case JS_INT8_ARRAY_VALUE_ITERATOR_TYPE:
170 case JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE:
171 case JS_INT16_ARRAY_VALUE_ITERATOR_TYPE:
172 case JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE:
173 case JS_INT32_ARRAY_VALUE_ITERATOR_TYPE:
174 case JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE:
175 case JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE:
176 case JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE:
177 JSTypedArrayIterator::cast(this)->JSTypedArrayIteratorVerify();
178 break;
179
180 case JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE:
181 case JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE:
182 case JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE:
183 case JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE:
184 case JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE:
185 case JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE:
186 case JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE:
187 case JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE:
188 case JS_FAST_ARRAY_VALUE_ITERATOR_TYPE:
189 case JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE:
190 case JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE:
191 case JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE:
192 case JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE:
193 case JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE:
194 case JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE:
195 JSArrayIterator::cast(this)->JSArrayIteratorVerify();
196 break;
197
158 case JS_STRING_ITERATOR_TYPE: 198 case JS_STRING_ITERATOR_TYPE:
159 JSStringIterator::cast(this)->JSStringIteratorVerify(); 199 JSStringIterator::cast(this)->JSStringIteratorVerify();
160 break; 200 break;
161 case JS_WEAK_MAP_TYPE: 201 case JS_WEAK_MAP_TYPE:
162 JSWeakMap::cast(this)->JSWeakMapVerify(); 202 JSWeakMap::cast(this)->JSWeakMapVerify();
163 break; 203 break;
164 case JS_WEAK_SET_TYPE: 204 case JS_WEAK_SET_TYPE:
165 JSWeakSet::cast(this)->JSWeakSetVerify(); 205 JSWeakSet::cast(this)->JSWeakSetVerify();
166 break; 206 break;
167 case JS_REGEXP_TYPE: 207 case JS_REGEXP_TYPE:
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 } 818 }
779 819
780 820
781 void JSWeakMap::JSWeakMapVerify() { 821 void JSWeakMap::JSWeakMapVerify() {
782 CHECK(IsJSWeakMap()); 822 CHECK(IsJSWeakMap());
783 JSObjectVerify(); 823 JSObjectVerify();
784 VerifyHeapPointer(table()); 824 VerifyHeapPointer(table());
785 CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate())); 825 CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
786 } 826 }
787 827
828 void JSTypedArrayIterator::JSTypedArrayIteratorVerify() {
829 CHECK(IsJSTypedArrayIterator());
830 JSObjectVerify();
831 CHECK(object()->IsJSTypedArray() || object()->IsUndefined(GetIsolate()));
832
833 CHECK_GE(index(), 0);
834 CHECK_LE(index(), Smi::kMaxValue);
835 }
836
837 void JSArrayIterator::JSArrayIteratorVerify() {
838 CHECK(IsJSArrayIterator());
839 JSObjectVerify();
840 CHECK(object()->IsJSReceiver() || object()->IsUndefined(GetIsolate()));
841
842 CHECK_GE(index()->Number(), 0);
843 CHECK_LE(index()->Number(), kMaxSafeInteger);
844 }
845
788 void JSStringIterator::JSStringIteratorVerify() { 846 void JSStringIterator::JSStringIteratorVerify() {
789 CHECK(IsJSStringIterator()); 847 CHECK(IsJSStringIterator());
790 JSObjectVerify(); 848 JSObjectVerify();
791 CHECK(string()->IsString()); 849 CHECK(string()->IsString());
792 850
793 CHECK_GE(index(), 0); 851 CHECK_GE(index(), 0);
794 CHECK_LE(index(), String::kMaxLength); 852 CHECK_LE(index(), String::kMaxLength);
795 } 853 }
796 854
797 void JSWeakSet::JSWeakSetVerify() { 855 void JSWeakSet::JSWeakSetVerify() {
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 1430
1373 // Both are done at the same time. 1431 // Both are done at the same time.
1374 CHECK_EQ(new_it.done(), old_it.done()); 1432 CHECK_EQ(new_it.done(), old_it.done());
1375 } 1433 }
1376 1434
1377 1435
1378 #endif // DEBUG 1436 #endif // DEBUG
1379 1437
1380 } // namespace internal 1438 } // namespace internal
1381 } // namespace v8 1439 } // namespace v8
OLDNEW
« src/bootstrapper.cc ('K') | « 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