Index: src/collection.js |
diff --git a/src/collection.js b/src/collection.js |
index f7db8625c5db3d3020f4eac0e348790dc21bb8e1..8bf6ec3515baf2c2ebd2b4ead4c300671ea8064e 100644 |
--- a/src/collection.js |
+++ b/src/collection.js |
@@ -139,7 +139,7 @@ function SetConstructor(iterable) { |
} |
for (var value of iterable) { |
- %_CallFunction(this, value, adder); |
+ %_Call(adder, this, value); |
} |
} |
} |
@@ -246,12 +246,6 @@ function SetForEach(f, receiver) { |
} |
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); |
- var needs_wrapper = false; |
- if (IS_NULL(receiver)) { |
- if (%IsSloppyModeFunction(f)) receiver = UNDEFINED; |
- } else if (!IS_UNDEFINED(receiver)) { |
- needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
- } |
var iterator = new SetIterator(this, ITERATOR_KIND_VALUES); |
var key; |
@@ -260,8 +254,7 @@ function SetForEach(f, receiver) { |
while (%SetIteratorNext(iterator, value_array)) { |
if (stepping) %DebugPrepareStepInIfStepping(f); |
key = value_array[0]; |
- var new_receiver = needs_wrapper ? TO_OBJECT(receiver) : receiver; |
- %_CallFunction(new_receiver, key, key, this, f); |
+ %_Call(f, receiver, key, key, this); |
} |
} |
@@ -307,7 +300,7 @@ function MapConstructor(iterable) { |
if (!IS_SPEC_OBJECT(nextItem)) { |
throw MakeTypeError(kIteratorValueNotAnObject, nextItem); |
} |
- %_CallFunction(this, nextItem[0], nextItem[1], adder); |
+ %_Call(adder, this, nextItem[0], nextItem[1]); |
} |
} |
} |
@@ -437,20 +430,13 @@ function MapForEach(f, receiver) { |
} |
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); |
- var needs_wrapper = false; |
- if (IS_NULL(receiver)) { |
- if (%IsSloppyModeFunction(f)) receiver = UNDEFINED; |
- } else if (!IS_UNDEFINED(receiver)) { |
- needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
- } |
var iterator = new MapIterator(this, ITERATOR_KIND_ENTRIES); |
var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); |
var value_array = [UNDEFINED, UNDEFINED]; |
while (%MapIteratorNext(iterator, value_array)) { |
if (stepping) %DebugPrepareStepInIfStepping(f); |
- var new_receiver = needs_wrapper ? TO_OBJECT(receiver) : receiver; |
- %_CallFunction(new_receiver, value_array[1], value_array[0], this, f); |
+ %_Call(f, receiver, value_array[1], value_array[0], this); |
} |
} |
@@ -486,7 +472,7 @@ function MapFromArray(array) { |
for (var i = 0; i < length; i += 2) { |
var key = array[i]; |
var value = array[i + 1]; |
- %_CallFunction(map, key, value, MapSet); |
+ %_Call(MapSet, map, key, value); |
} |
return map; |
}; |
@@ -495,7 +481,7 @@ function SetFromArray(array) { |
var set = new GlobalSet; |
var length = array.length; |
for (var i = 0; i < length; ++i) { |
- %_CallFunction(set, array[i], SetAdd); |
+ %_Call(SetAdd, set, array[i]); |
} |
return set; |
}; |