Skip to content

An ESnext spec-compliant `Set.prototype.symmetricDifference` shim/polyfill/replacement that works as far down as ES3

License

Notifications You must be signed in to change notification settings

es-shims/Set.prototype.symmetricDifference

Repository files navigation

set.prototype.symmetricdifference Version Badge

github actions coverage License Downloads

npm badge

ES Proposal spec-compliant shim for Set.prototype.symmetricDifference. Invoke its "shim" method to shim Set.prototype.symmetricDifference if it is unavailable or noncompliant.

This package implements the es-shim API interface. It works in an ES3-supported environment, and complies with the proposed spec. When shimmed, it uses es-set to shim the Set implementation itself if needed.

Most common usage:

var assert = require('assert');
var symmetricDifference = require('set.prototype.symmetricdifference');

var set1 = new Set([1, 2]);
var set2 = new Set([2, 3]);
var result = symmetricDifference(set1, set2);

assert.deepEqual(result, new Set([1, 3]));

symmetricDifference.shim();

var shimmedResult = set1.symmetricDifference(set2);
assert.deepEqual(shimmedResult, new Set([1, 3]));

Tests

Simply clone the repo, npm install, and run npm test

Set Method Packages