1 | "use strict";
|
2 |
|
3 | var callable = require("es5-ext/object/valid-callable")
|
4 | , forOf = require("es6-iterator/for-of")
|
5 | , isSet = require("../is-set")
|
6 | , SetConstructor = require("../")
|
7 | , call = Function.prototype.call;
|
8 |
|
9 | module.exports = function (cb /*, thisArg*/) {
|
10 | var thisArg = arguments[1], result;
|
11 | callable(cb);
|
12 | result = isSet(this) ? new this.constructor() : new SetConstructor();
|
13 | forOf(this, function (value) { if (call.call(cb, thisArg, value)) result.add(value); });
|
14 | return result;
|
15 | };
|