// 48: Set - add
// To do: make all tests pass, leave the assert lines unchanged!

var assert = require("assert");

describe('`add()` appends a new element to the end of a Set object.', function(){

  let set;
  beforeEach(() => set = new Set());

  it('adds every value, of any type, only ones', function() {
    const fn = () => {};

    set.add(1);
    set.add(1);
    set.add(fn);
    set.add({fn});

    assert.equal(set.size, 2);
  });

  it('is chainable', function() {
    set.add.add;

    assert.equal(set.has(2), true);
  });

  it('call without params adds undefined', function() {
    set.add

    assert.equal(set.has(void 0), true);
  });

  it('0, -0 and +0 are equal', function() {
    set.add();
    set.add();

    assert.equal(set.has(+0), true);
  });
});


@@ -394,12 +394,10 @@
 add(
-%7B
 fn
-%7D
 );%0A%0A
@@ -479,20 +479,26 @@
  set.add
+(1)
 .add
+(2)
 ;%0A%0A    a
@@ -602,16 +602,19 @@
  set.add
+();
 %0A%0A    as
@@ -711,16 +711,17 @@
 set.add(
+0
 );%0A    s
@@ -719,32 +719,34 @@
 0);%0A    set.add(
+-0
 );%0A%0A    assert.e

fix 48-set-add.js