| 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 $iteratorCreateResultObject; | 5 var $iteratorCreateResultObject; |
| 6 var $arrayValues; | 6 var $arrayValues; |
| 7 | 7 |
| 8 (function() { | 8 (function() { |
| 9 | 9 |
| 10 "use strict"; | 10 "use strict"; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 function ArrayIterator() {} | 40 function ArrayIterator() {} |
| 41 | 41 |
| 42 | 42 |
| 43 // TODO(wingo): Update section numbers when ES6 has stabilized. The | 43 // TODO(wingo): Update section numbers when ES6 has stabilized. The |
| 44 // section numbers below are already out of date as of the May 2014 | 44 // section numbers below are already out of date as of the May 2014 |
| 45 // draft. | 45 // draft. |
| 46 | 46 |
| 47 | 47 |
| 48 // 15.4.5.1 CreateArrayIterator Abstract Operation | 48 // 15.4.5.1 CreateArrayIterator Abstract Operation |
| 49 function CreateArrayIterator(array, kind) { | 49 function CreateArrayIterator(array, kind) { |
| 50 var object = ToObject(array); | 50 var object = $toObject(array); |
| 51 var iterator = new ArrayIterator; | 51 var iterator = new ArrayIterator; |
| 52 SET_PRIVATE(iterator, arrayIteratorObjectSymbol, object); | 52 SET_PRIVATE(iterator, arrayIteratorObjectSymbol, object); |
| 53 SET_PRIVATE(iterator, arrayIteratorNextIndexSymbol, 0); | 53 SET_PRIVATE(iterator, arrayIteratorNextIndexSymbol, 0); |
| 54 SET_PRIVATE(iterator, arrayIterationKindSymbol, kind); | 54 SET_PRIVATE(iterator, arrayIterationKindSymbol, kind); |
| 55 return iterator; | 55 return iterator; |
| 56 } | 56 } |
| 57 | 57 |
| 58 | 58 |
| 59 // 15.19.4.3.4 CreateItrResultObject | 59 // 15.19.4.3.4 CreateItrResultObject |
| 60 function CreateIteratorResultObject(value, done) { | 60 function CreateIteratorResultObject(value, done) { |
| 61 return {value: value, done: done}; | 61 return {value: value, done: done}; |
| 62 } | 62 } |
| 63 | 63 |
| 64 | 64 |
| 65 // 22.1.5.2.2 %ArrayIteratorPrototype%[@@iterator] | 65 // 22.1.5.2.2 %ArrayIteratorPrototype%[@@iterator] |
| 66 function ArrayIteratorIterator() { | 66 function ArrayIteratorIterator() { |
| 67 return this; | 67 return this; |
| 68 } | 68 } |
| 69 | 69 |
| 70 | 70 |
| 71 // 15.4.5.2.2 ArrayIterator.prototype.next( ) | 71 // 15.4.5.2.2 ArrayIterator.prototype.next( ) |
| 72 function ArrayIteratorNext() { | 72 function ArrayIteratorNext() { |
| 73 var iterator = ToObject(this); | 73 var iterator = $toObject(this); |
| 74 | 74 |
| 75 if (!HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) { | 75 if (!HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) { |
| 76 throw MakeTypeError(kIncompatibleMethodReceiver, | 76 throw MakeTypeError(kIncompatibleMethodReceiver, |
| 77 'Array Iterator.prototype.next', this); | 77 'Array Iterator.prototype.next', this); |
| 78 } | 78 } |
| 79 | 79 |
| 80 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol); | 80 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol); |
| 81 if (IS_UNDEFINED(array)) { | 81 if (IS_UNDEFINED(array)) { |
| 82 return CreateIteratorResultObject(UNDEFINED, true); | 82 return CreateIteratorResultObject(UNDEFINED, true); |
| 83 } | 83 } |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 %AddNamedProperty(GlobalNAME.prototype, symbolIterator, ArrayValues, | 150 %AddNamedProperty(GlobalNAME.prototype, symbolIterator, ArrayValues, |
| 151 DONT_ENUM); | 151 DONT_ENUM); |
| 152 endmacro | 152 endmacro |
| 153 | 153 |
| 154 TYPED_ARRAYS(EXTEND_TYPED_ARRAY) | 154 TYPED_ARRAYS(EXTEND_TYPED_ARRAY) |
| 155 | 155 |
| 156 $iteratorCreateResultObject = CreateIteratorResultObject; | 156 $iteratorCreateResultObject = CreateIteratorResultObject; |
| 157 $arrayValues = ArrayValues; | 157 $arrayValues = ArrayValues; |
| 158 | 158 |
| 159 })(); | 159 })(); |
| OLD | NEW |