1234567891011121314151617181920 |
- 'use strict';
- var getBuiltIn = require('../internals/get-built-in');
- var isCallable = require('../internals/is-callable');
- var isIterable = require('../internals/is-iterable');
- var isObject = require('../internals/is-object');
-
- var Set = getBuiltIn('Set');
-
- var isSetLike = function (it) {
- return isObject(it)
- && typeof it.size == 'number'
- && isCallable(it.has)
- && isCallable(it.keys);
- };
-
- // fallback old -> new set methods proposal arguments
- module.exports = function (it) {
- if (isSetLike(it)) return it;
- return isIterable(it) ? new Set(it) : it;
- };
|