esnext.set.join.js 889 B

123456789101112131415161718192021222324
  1. 'use strict';
  2. var IS_PURE = require('../internals/is-pure');
  3. var $ = require('../internals/export');
  4. var uncurryThis = require('../internals/function-uncurry-this');
  5. var anObject = require('../internals/an-object');
  6. var toString = require('../internals/to-string');
  7. var getSetIterator = require('../internals/get-set-iterator');
  8. var iterate = require('../internals/iterate');
  9. var arrayJoin = uncurryThis([].join);
  10. var push = [].push;
  11. // `Set.prototype.join` method
  12. // https://github.com/tc39/proposal-collection-methods
  13. $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
  14. join: function join(separator) {
  15. var set = anObject(this);
  16. var iterator = getSetIterator(set);
  17. var sep = separator === undefined ? ',' : toString(separator);
  18. var result = [];
  19. iterate(iterator, push, { that: result, IS_ITERATOR: true });
  20. return arrayJoin(result, sep);
  21. }
  22. });