Hi there, I want to add `Map#assign` to TC39 Stage 1.
ECMAScript `Object` has `Object.assign`. On the other hand `Map` doesn't have assigning method. For example, we must write JavaScript like the following: ```js const mapA = new Map([["foo", 1], ["bar", 2]]); const mapB = new Map([["baz", 3], ["foo", 4]]); const mapC = new Map([["baz", 5], ["foo", 6], ["hoge", 7]]); ``` ```js for (const [key, value] of mapB) { mapA.set(key, value); } for (const [key, value] of mapC) { mapA.set(key, value); } // Map(4) {"foo" => 6, "bar" => 2, "baz" => 5, "hoge" => 7} console.log(mapA); ``` This code is redundant. I just want to write `mapA.assign(mapB, mapC);`. ## More Detail Implementation example: ```js Map.prototype.assign = function(...args) { // validation if (typeof this !== "object") { throw new TypeError; } if (this doesn't have [[MapData]] internal slot) { throw new TypeError; } for (const arg of args) { if (typeof arg !== "object") { throw new TypeError; } if (arg doesn't have [[MapData]] internal slot) { throw new TypeError; } } // iterate and set for (const map of args) { for (const [key, value] of map) { this.set(key, value); } } } ``` _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss