summaryrefslogtreecommitdiff
path: root/test/built-ins/Map/map-iterable-throws-when-set-is-not-callable.js
blob: 89fc9ce3ca15d04ef185718ac08d002fe9fc4160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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 `set` is not callable on Map constructor with a
  iterable argument.
info: |
  Map ( [ iterable ] )

  When the Map function is called with optional argument the following steps are
  taken:

  ...
  5. If iterable is not present, let iterable be undefined.
  6. If iterable is either undefined or null, let iter be undefined.
  7. Else,
    a. Let adder be Get(map, "set").
    b. ReturnIfAbrupt(adder).
    c. If IsCallable(adder) is false, throw a TypeError exception.
---*/

Map.prototype.set = null;

assert.throws(TypeError, function() {
  new Map([
    [1, 1],
    [2, 2]
  ]);
});