2021-07-15 17:36:53 +03:00
|
|
|
module builtin
|
|
|
|
|
|
|
|
struct map {
|
2021-10-01 21:23:49 +03:00
|
|
|
m JS.Map
|
|
|
|
pub:
|
2021-07-15 17:36:53 +03:00
|
|
|
len int
|
|
|
|
}
|
|
|
|
|
|
|
|
// Removes the mapping of a particular key from the map.
|
|
|
|
[unsafe]
|
|
|
|
pub fn (mut m map) delete(key voidptr) {
|
2021-07-24 15:35:17 +03:00
|
|
|
#m.map.delete(key)
|
2021-07-15 17:36:53 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (m &map) free() {}
|
2021-07-24 15:35:17 +03:00
|
|
|
|
|
|
|
#map.prototype[Symbol.iterator] = function () { return this.map[Symbol.iterator](); }
|
2021-10-01 21:23:49 +03:00
|
|
|
//#Object.defineProperty(map.prototype,"len",{get: function() { return this.map.size; }})
|
2021-08-07 17:58:49 +03:00
|
|
|
#map.prototype.toString = function () {
|
|
|
|
#function fmtKey(key) { return typeof key == 'string' ? '\'' + key + '\'' : key}
|
|
|
|
#let res = '{'
|
|
|
|
#for (const entry of this) {
|
|
|
|
#res += fmtKey(entry[0]) + ': ' + entry[0];
|
|
|
|
#}
|
|
|
|
#res += '}'
|
|
|
|
#return res;
|
|
|
|
#}
|
2021-10-03 10:08:21 +03:00
|
|
|
|
|
|
|
#map.prototype.getOrSet = function (key, init) { if (this.map.has(key)) { return this.map.get(key); } else { this.map.set(key,init); return init; } }
|