function SetConstructor(iterable) {
  if (IS_UNDEFINED(new.target)) {
    throw MakeTypeError(kConstructorNotFunction, "Set");
  }

  %_SetInitialize(this);

  if (!IS_NULL_OR_UNDEFINED(iterable)) {
    var adder = this.add;
    if (!IS_CALLABLE(adder)) {
      throw MakeTypeError(kPropertyNotFunction, adder, 'add', this);
    }

    for (var value of iterable) {
      %_Call(adder, this, value);
    }
  }
}
function SetConstructor(iterable) {
  if (IS_UNDEFINED(new.target)) {
    throw MakeTypeError(kConstructorNotFunction, "Set");
  }

  %_SetInitialize(this);

  if (!IS_NULL_OR_UNDEFINED(iterable)) {
    var adder = this.add;
    if (!IS_CALLABLE(adder)) {
      throw MakeTypeError(kPropertyNotFunction, adder, 'add', this);
    }

    for (var value of iterable) {
      %_Call(adder, this, value);
    }
  }
}
function SetConstructor ( iterable ) { if ( IS_UNDEFINED ( new . target ) ) { throw MakeTypeError ( kConstructorNotFunction , "Set" ) ; } % _SetInitialize ( this ) ; if ( ! IS_NULL_OR_UNDEFINED ( iterable ) ) { var adder = this . add ; if ( ! IS_CALLABLE ( adder ) ) { throw MakeTypeError ( kPropertyNotFunction , adder , 'add' , this ) ; } for ( var value of iterable ) { % _Call ( adder , this , value ) ; } } }
------------------------------------------------------------------- Harmony Set
------------------------------------------------------------------- Harmony Set