diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.set.symmetric-difference.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.set.symmetric-difference.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.set.symmetric-difference.js b/node_modules/core-js/modules/esnext.set.symmetric-difference.js new file mode 100644 index 0000000..ccd326f --- /dev/null +++ b/node_modules/core-js/modules/esnext.set.symmetric-difference.js @@ -0,0 +1,23 @@ +'use strict'; +var $ = require('../internals/export'); +var IS_PURE = require('../internals/is-pure'); +var getBuiltIn = require('../internals/get-built-in'); +var anObject = require('../internals/an-object'); +var aFunction = require('../internals/a-function'); +var speciesConstructor = require('../internals/species-constructor'); +var iterate = require('../internals/iterate'); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, { + symmetricDifference: function symmetricDifference(iterable) { + var set = anObject(this); + var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set); + var remover = aFunction(newSet['delete']); + var adder = aFunction(newSet.add); + iterate(iterable, function (value) { + remover.call(newSet, value) || adder.call(newSet, value); + }); + return newSet; + } +}); |
