1'use strict';
2var strong = require('./_collection-strong');
3var validate = require('./_validate-collection');
4var MAP = 'Map';
5
6// 23.1 Map Objects
7module.exports = require('./_collection')(MAP, function (get) {
8  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
9}, {
10  // 23.1.3.6 Map.prototype.get(key)
11  get: function get(key) {
12    var entry = strong.getEntry(validate(this, MAP), key);
13    return entry && entry.v;
14  },
15  // 23.1.3.9 Map.prototype.set(key, value)
16  set: function set(key, value) {
17    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
18  }
19}, strong, true);
20