| Index: src/array-iterator.js
|
| diff --git a/src/array-iterator.js b/src/array-iterator.js
|
| index f04d6c974a4d41ea27347afde466ec1166e38d31..796ee064eb918865259a2d9a77b49c378b7a048c 100644
|
| --- a/src/array-iterator.js
|
| +++ b/src/array-iterator.js
|
| @@ -10,9 +10,11 @@
|
| // var $Array = global.Array;
|
|
|
|
|
| -var arrayIteratorObjectSymbol = GLOBAL_PRIVATE("ArrayIterator#object");
|
| -var arrayIteratorNextIndexSymbol = GLOBAL_PRIVATE("ArrayIterator#next");
|
| -var arrayIterationKindSymbol = GLOBAL_PRIVATE("ArrayIterator#kind");
|
| +var arrayIteratorObjectSymbol = GLOBAL_PRIVATE_OWN("ArrayIterator#object");
|
| +var arrayIteratorNextIndexSymbol = GLOBAL_PRIVATE_OWN("ArrayIterator#next");
|
| +var arrayIterationKindSymbol = GLOBAL_PRIVATE_OWN("ArrayIterator#kind");
|
| +
|
| +var arrayEndOfIterationMarker = new $Object();
|
|
|
|
|
| function ArrayIterator() {}
|
| @@ -50,13 +52,13 @@ function ArrayIteratorIterator() {
|
| function ArrayIteratorNext() {
|
| var iterator = ToObject(this);
|
|
|
| - if (!HAS_PRIVATE(iterator, arrayIteratorObjectSymbol)) {
|
| + if (!HAS_DEFINED_PRIVATE(iterator, arrayIteratorObjectSymbol)) {
|
| throw MakeTypeError('incompatible_method_receiver',
|
| ['Array Iterator.prototype.next']);
|
| }
|
|
|
| var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol);
|
| - if (IS_UNDEFINED(array)) {
|
| + if (array === arrayEndOfIterationMarker) {
|
| return CreateIteratorResultObject(UNDEFINED, true);
|
| }
|
|
|
| @@ -67,7 +69,7 @@ function ArrayIteratorNext() {
|
| // "sparse" is never used.
|
|
|
| if (index >= length) {
|
| - SET_PRIVATE(iterator, arrayIteratorObjectSymbol, UNDEFINED);
|
| + SET_PRIVATE(iterator, arrayIteratorObjectSymbol, arrayEndOfIterationMarker);
|
| return CreateIteratorResultObject(UNDEFINED, true);
|
| }
|
|
|
|
|