| "use strict"; |
| |
| var typeOf = require("@sinonjs/commons").typeOf; |
| var forEach = require("@sinonjs/commons").prototypes.array.forEach; |
| |
| /** |
| * This helper makes it convenient to create Set instances from a |
| * collection, an overcomes the shortcoming that IE11 doesn't support |
| * collection arguments |
| * |
| * @private |
| * @param {Array} array An array to create a set from |
| * @returns {Set} A set (unique) containing the members from array |
| * |
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set |
| */ |
| function createSet(array) { |
| if (arguments.length > 0 && !Array.isArray(array)) { |
| throw new TypeError( |
| "createSet can be called with either no arguments or an Array" |
| ); |
| } |
| |
| var items = typeOf(array) === "array" ? array : []; |
| var set = new Set(); |
| |
| forEach(items, function (item) { |
| set.add(item); |
| }); |
| |
| return set; |
| } |
| |
| module.exports = createSet; |