Context: tc39/proposal-set-methods#50
- If Type(this) is not Object, or this does not have a [[SetData]] internal slot, throw a new TypeError exception.
- If Type(arg) is not Object, or arg does not have a [[SetData]] internal slot, throw a new TypeError exception.
- Let diffList be a List containing all elements that are in this.[[SetData]] but are not in arg.[[SetData]], using SameValueZero to determine identity. (Optional: formalize this with a loop that operates on the Lists.)
- Let newSet be ? OrdinaryCreateFromConstructor(%Set%, "%SetPrototype%", « [[SetData]] »).