UNPKG

533 BJavaScriptView Raw
1"use strict";
2
3var 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
9module.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};