Specification:
Map.prototype.map = function(cb, context) { return new Map(Array.from(this).map(cb, context)); }
Map.prototype.filter = function(cb, context) { return new Map(Array.from(this).filter(cb, context)); }
Usage example:
new Map([['keya', 'valuea'], ['keyb', 'valueb']])
.map(([key, value]) => [key + 1, value + 1])
.filter(([key, value]) => key === 'keya1')
// Map {"keya1" => "valuea1"}
Array.from takes a second mapper argument.