// 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 esid: sec-weakset-iterable description: > If the iterable argument is empty, return new Weakset object. info: > 23.4.1.1 WeakSet ( [ iterable ] ) ... 9. Repeat a. Let next be IteratorStep(iter). b. ReturnIfAbrupt(next). c. If next is false, return set. ... ---*/ var counter = 0; var add = WeakSet.prototype.add; WeakSet.prototype.add = function(value) { counter++; return add.call(this, value); }; var set = new WeakSet([]); assert.sameValue(Object.getPrototypeOf(set), WeakSet.prototype); assert(set instanceof WeakSet); assert.sameValue( counter, 0, 'empty iterable does not call WeakSet.prototype.add' );