text: load("bf4b12814bc95f34eeb130127d8438ab.js");
  load("93fae755edd261212639eed30afa2ca4.js");
  // Copyright (C) 2015 the V8 project authors. All rights reserved.
  // This code is governed by the BSD license found in the LICENSE file.
  /*---
  es6id: 23.4.1.1
  description: >
    Return IteratorClose(iter, status) if fail on adding value on constructing.
  info: >
    WeakSet ( [ iterable ] )
  
    ...
    9. Repeat
      f. Let status be Call(adder, set, «nextValue»).
      g. If status is an abrupt completion, return IteratorClose(iter, status).
  ---*/
  
  var count = 0;
  var iterable = {};
  iterable[Symbol.iterator] = function() {
    return {
      next: function() {
        return { value: null, done: false };
      },
      return: function() {
        count += 1;
      }
    };
  };
  WeakSet.prototype.add = function() { throw new Test262Error(); };
  
  assert.throws(Test262Error, function() {
    new WeakSet(iterable);
  });
  
  assert.sameValue(
    count, 1,
    'The iterator is closed when `WeakSet.prototype.add` throws an error.'
  );
  