(function (Win) { var Map = function () { This.count = 0; This.entryset = {}; }; var proto = Map.prototype; Proto.size = function () { return this.count; }; Proto.isempty = function () { return this.count = = 0; }; Proto.containskey = function (key) { if (This.isempty ()) { return false; } For (Var prop in This.entryset) { if (prop = = key) { return true; } } return false; }; Proto.containsvalue = function (value) { if (This.isempty ()) { return false; } for (var key in This.entryset) { if (this.entryset[key] = = value) { return true; } } return false; }; Proto.get = function (key) { if (This.isempty ()) { return null; } if (This.containskey (key)) { return This.entryset[key]; } return null; }; Proto.put = function (key, value) { This.entryset[key] = value; this.count++; }; Proto.remove = function (key) { if (This.containskey (key)) { Delete This.entryset[key]; this.count--; } }; Proto.putall = function (map) { for (var key in Map.entryset) { This.put (Key, Map.entryset[key]); } }; Proto.clear = function () { for (var key in This.entryset) { This.remove (key); } }; Proto.values = function () { var result = []; for (var key in This.entryset) { Result.push (This.entryset[key]); } return result; }; Proto.keyset = function () { var result = []; for (var key in This.entryset) { Result.push (key); } return result; }; proto.tostring = function () { var result = []; for (var key in This.entryset) { Result.push (key + ":" + This.entryset[key]); } Return "{" + result.join () + "}"; }; proto.valueof = function () { return this.tostring (); }; win. Map = map; }) (window); |