Index: src/collection.js |
diff --git a/src/collection.js b/src/collection.js |
index 8d2d18428602b85979ff98afde6f60ea2c30ff92..c8cf639f97d96c3396f463a97ad5181ac4ccc347 100644 |
--- a/src/collection.js |
+++ b/src/collection.js |
@@ -20,26 +20,17 @@ function SetConstructor(iterable) { |
throw MakeTypeError('constructor_not_function', ['Set']); |
} |
- var iter, adder; |
+ %_SetInitialize(this); |
if (!IS_NULL_OR_UNDEFINED(iterable)) { |
- adder = this.add; |
+ var adder = this.add; |
if (!IS_SPEC_FUNCTION(adder)) { |
throw MakeTypeError('property_not_function', ['add', this]); |
} |
- iter = GetIterator(iterable); |
- } |
- |
- %_SetInitialize(this); |
- |
- if (IS_UNDEFINED(iter)) return; |
- var next, done; |
- while (!(next = iter.next()).done) { |
- if (!IS_SPEC_OBJECT(next)) { |
- throw MakeTypeError('iterator_result_not_an_object', [next]); |
+ for (var value of iterable) { |
+ %_CallFunction(this, value, adder); |
} |
- %_CallFunction(this, next.value, adder); |
} |
} |
@@ -160,30 +151,20 @@ function MapConstructor(iterable) { |
throw MakeTypeError('constructor_not_function', ['Map']); |
} |
- var iter, adder; |
+ %_MapInitialize(this); |
if (!IS_NULL_OR_UNDEFINED(iterable)) { |
- adder = this.set; |
+ var adder = this.set; |
if (!IS_SPEC_FUNCTION(adder)) { |
throw MakeTypeError('property_not_function', ['set', this]); |
} |
- iter = GetIterator(iterable); |
- } |
- |
- %_MapInitialize(this); |
- if (IS_UNDEFINED(iter)) return; |
- |
- var next, done, nextItem; |
- while (!(next = iter.next()).done) { |
- if (!IS_SPEC_OBJECT(next)) { |
- throw MakeTypeError('iterator_result_not_an_object', [next]); |
- } |
- nextItem = next.value; |
- if (!IS_SPEC_OBJECT(nextItem)) { |
- throw MakeTypeError('iterator_value_not_an_object', [nextItem]); |
+ for (var nextItem of iterable) { |
+ if (!IS_SPEC_OBJECT(nextItem)) { |
+ throw MakeTypeError('iterator_value_not_an_object', [nextItem]); |
+ } |
+ %_CallFunction(this, nextItem[0], nextItem[1], adder); |
} |
- %_CallFunction(this, nextItem[0], nextItem[1], adder); |
} |
} |