You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
"use strict"; |
|
var MapPolyfill = (function () { |
|
function MapPolyfill() { |
|
this.size = 0; |
|
this._values = []; |
|
this._keys = []; |
|
} |
|
MapPolyfill.prototype.get = function (key) { |
|
var i = this._keys.indexOf(key); |
|
return i === -1 ? undefined : this._values[i]; |
|
}; |
|
MapPolyfill.prototype.set = function (key, value) { |
|
var i = this._keys.indexOf(key); |
|
if (i === -1) { |
|
this._keys.push(key); |
|
this._values.push(value); |
|
this.size++; |
|
} |
|
else { |
|
this._values[i] = value; |
|
} |
|
return this; |
|
}; |
|
MapPolyfill.prototype.delete = function (key) { |
|
var i = this._keys.indexOf(key); |
|
if (i === -1) { |
|
return false; |
|
} |
|
this._values.splice(i, 1); |
|
this._keys.splice(i, 1); |
|
this.size--; |
|
return true; |
|
}; |
|
MapPolyfill.prototype.clear = function () { |
|
this._keys.length = 0; |
|
this._values.length = 0; |
|
this.size = 0; |
|
}; |
|
MapPolyfill.prototype.forEach = function (cb, thisArg) { |
|
for (var i = 0; i < this.size; i++) { |
|
cb.call(thisArg, this._values[i], this._keys[i]); |
|
} |
|
}; |
|
return MapPolyfill; |
|
}()); |
|
exports.MapPolyfill = MapPolyfill; |
|
//# sourceMappingURL=MapPolyfill.js.map
|