'use strict';
+var call = require('../internals/function-call');
+var aCallable = require('../internals/a-callable');
var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
// https://github.com/tc39/collection-methods
-module.exports = function (/* ...elements */) {
+module.exports = function addAll(/* ...elements */) {
var set = anObject(this);
- var adder = aFunction(set.add);
+ var adder = aCallable(set.add);
for (var k = 0, len = arguments.length; k < len; k++) {
- adder.call(set, arguments[k]);
+ call(adder, set, arguments[k]);
}
return set;
};