| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 var $arrayValues; | 5 var $arrayValues; |
| 6 | 6 |
| 7 (function(global, utils) { | 7 (function(global, utils) { |
| 8 | 8 |
| 9 "use strict"; | 9 "use strict"; |
| 10 | 10 |
| 11 %CheckIsBootstrapping(); | 11 %CheckIsBootstrapping(); |
| 12 | 12 |
| 13 // ----------------------------------------------------------------------- | 13 // ----------------------------------------------------------------------- |
| 14 // Imports | 14 // Imports |
| 15 | 15 |
| 16 var arrayIterationKindSymbol = | 16 var arrayIterationKindSymbol = |
| 17 utils.GetPrivateSymbol("array_iteration_kind_symbol"); | 17 utils.GetPrivateSymbol("array_iteration_kind_symbol"); |
| 18 var arrayIteratorNextIndexSymbol = | 18 var arrayIteratorNextIndexSymbol = |
| 19 utils.GetPrivateSymbol("array_iterator_next_symbol"); | 19 utils.GetPrivateSymbol("array_iterator_next_symbol"); |
| 20 var arrayIteratorObjectSymbol = | 20 var arrayIteratorObjectSymbol = |
| 21 utils.GetPrivateSymbol("array_iterator_object_symbol"); | 21 utils.GetPrivateSymbol("array_iterator_object_symbol"); |
| 22 var GlobalArray = global.Array; | 22 var GlobalArray = global.Array; |
| 23 var ToLengthFlagged; |
| 24 |
| 25 utils.Import(function(from) { |
| 26 ToLengthFlagged = from.ToLengthFlagged; |
| 27 }); |
| 28 |
| 23 | 29 |
| 24 macro TYPED_ARRAYS(FUNCTION) | 30 macro TYPED_ARRAYS(FUNCTION) |
| 25 FUNCTION(Uint8Array) | 31 FUNCTION(Uint8Array) |
| 26 FUNCTION(Int8Array) | 32 FUNCTION(Int8Array) |
| 27 FUNCTION(Uint16Array) | 33 FUNCTION(Uint16Array) |
| 28 FUNCTION(Int16Array) | 34 FUNCTION(Int16Array) |
| 29 FUNCTION(Uint32Array) | 35 FUNCTION(Uint32Array) |
| 30 FUNCTION(Int32Array) | 36 FUNCTION(Int32Array) |
| 31 FUNCTION(Float32Array) | 37 FUNCTION(Float32Array) |
| 32 FUNCTION(Float64Array) | 38 FUNCTION(Float64Array) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 'Array Iterator.prototype.next', this); | 87 'Array Iterator.prototype.next', this); |
| 82 } | 88 } |
| 83 | 89 |
| 84 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol); | 90 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol); |
| 85 if (IS_UNDEFINED(array)) { | 91 if (IS_UNDEFINED(array)) { |
| 86 return CreateIteratorResultObject(UNDEFINED, true); | 92 return CreateIteratorResultObject(UNDEFINED, true); |
| 87 } | 93 } |
| 88 | 94 |
| 89 var index = GET_PRIVATE(iterator, arrayIteratorNextIndexSymbol); | 95 var index = GET_PRIVATE(iterator, arrayIteratorNextIndexSymbol); |
| 90 var itemKind = GET_PRIVATE(iterator, arrayIterationKindSymbol); | 96 var itemKind = GET_PRIVATE(iterator, arrayIterationKindSymbol); |
| 91 var length = TO_UINT32(array.length); | 97 var length = ToLengthFlagged(array.length); |
| 92 | 98 |
| 93 // "sparse" is never used. | 99 // "sparse" is never used. |
| 94 | 100 |
| 95 if (index >= length) { | 101 if (index >= length) { |
| 96 SET_PRIVATE(iterator, arrayIteratorObjectSymbol, UNDEFINED); | 102 SET_PRIVATE(iterator, arrayIteratorObjectSymbol, UNDEFINED); |
| 97 return CreateIteratorResultObject(UNDEFINED, true); | 103 return CreateIteratorResultObject(UNDEFINED, true); |
| 98 } | 104 } |
| 99 | 105 |
| 100 SET_PRIVATE(iterator, arrayIteratorNextIndexSymbol, index + 1); | 106 SET_PRIVATE(iterator, arrayIteratorNextIndexSymbol, index + 1); |
| 101 | 107 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 172 |
| 167 utils.Export(function(to) { | 173 utils.Export(function(to) { |
| 168 to.ArrayIteratorCreateResultObject = CreateIteratorResultObject; | 174 to.ArrayIteratorCreateResultObject = CreateIteratorResultObject; |
| 169 }); | 175 }); |
| 170 | 176 |
| 171 $arrayValues = ArrayValues; | 177 $arrayValues = ArrayValues; |
| 172 | 178 |
| 173 %InstallToContext(["array_values_iterator", ArrayValues]); | 179 %InstallToContext(["array_values_iterator", ArrayValues]); |
| 174 | 180 |
| 175 }) | 181 }) |
| OLD | NEW |