'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var Class = require('./Class');
var root = require('./root');
var defineProp = require('./defineProp');
var keys = require('./keys');
var each = require('./each');
var isArr = require('./isArr');
var isUndef = require('./isUndef');
if (root.Map && !false) {
    exports = root.Map;
} else {
    exports = Class({
        initialize: function PseudoMap(data) {
            this.clear();
            var self = this;
            defineProp(this, 'size', {
                get: function() {
                    return keys(self._data).length;
                },
                set: function() {},
                enumerable: true,
                configurable: true
            });
            if (data instanceof exports) {
                data.forEach(function(val, key) {
                    this.set(key, val);
                }, this);
            } else if (isArr(data)) {
                each(
                    data,
                    function(val) {
                        this.set(val[0], val[1]);
                    },
                    this
                );
            }
        },
        forEach: function(fn, ctx) {
            each(
                this._data,
                function(val, key) {
                    fn.call(this, val, key);
                },
                ctx
            );
        },
        has: function(key) {
            return !isUndef(this._data[key]);
        },
        get: function(key) {
            return this._data[key];
        },
        set: function(key, val) {
            this._data[key] = val;
        },
        delete: function(key) {
            delete this._data[key];
        },
        clear: function() {
            this._data = {};
        }
    });
}
 
module.exports = exports;