// 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.1.1.1 description: > Throws a TypeError if iterable itens are not Objects. info: > Map ( [ iterable ] ) ... 9. Repeat ... d. Let nextItem be IteratorValue(next). e. ReturnIfAbrupt(nextItem). f. If Type(nextItem) is not Object, i. Let error be Completion{[[type]]: throw, [[value]]: a newly created TypeError object, [[target]]:empty}. ii. Return IteratorClose(iter, error). features: [Symbol] ---*/ assert.throws(TypeError, function() { new Map([1]); }); assert.throws(TypeError, function() { new Map(['']); }); assert.throws(TypeError, function() { new Map([true]); }); assert.throws(TypeError, function() { new Map([null]); }); assert.throws(TypeError, function() { new Map([Symbol('a')]); }); assert.throws(TypeError, function() { new Map([undefined]); }); assert.throws(TypeError, function() { new Map([['a', 1], 2]); });