{"ScriptPreparationCode":"var insertMap = new Map();\r\nvar insertObj = {};\r\n\r\nvar ID = function () {\r\n return \u0027_\u0027 \u002B Math.random().toString(36).substr(2, 9);\r\n};\r\n\r\nvar toLookupMap = new Map();\r\nvar toLookupObj = {};\r\nvar toLookupKeys = [];\r\nvar toDeleteMap = new Map();\r\nvar toDeleteObj = {};\r\nvar toDeleteKeys = [];\r\n\r\nvar i = 0, count = 1000;\r\n\r\nfor (i = 0; i \u003C count; i\u002B\u002B) {\r\n var key = ID();\r\n toDeleteMap.set(key, 0);\r\n toDeleteObj[key] = 0;\r\n toDeleteKeys.push(key);\r\n\r\n var key2 = ID();\r\n toLookupMap.set(key2, 0);\r\n toLookupObj[key2] = 0;\r\n toLookupKeys.push(key2);\r\n}","TestCases":[{"Name":"Map insert","Code":"for (i = 0; i \u003C count; i\u002B\u002B) {\r\n insertMap.set(ID(), 0);\r\n}","IsDeferred":false},{"Name":"Obj insert","Code":"for (i = 0; i \u003C count; i\u002B\u002B) {\r\n insertObj[ID()] = 0;\r\n}","IsDeferred":false},{"Name":"Map delete","Code":"toDeleteKeys.forEach(function (key) {\r\n\ttoDeleteMap.delete(key);\r\n});","IsDeferred":false},{"Name":"Obj delete using delete","Code":"toDeleteKeys.forEach(function (key) {\r\n\tdelete toDeleteObj[key];\r\n});","IsDeferred":false},{"Name":"Extra: Object delete assimiling undefined ","Code":"toDeleteKeys.forEach(function (key) {\r\n\ttoDeleteObj[key] = undefined;\r\n});","IsDeferred":false},{"Name":"Map lookup","Code":"toLookupKeys.forEach(function (key) {\r\n\ttoLookupMap.get(key);\r\n});","IsDeferred":false},{"Name":"Object lookup","Code":"toLookupKeys.forEach(function (key) {\r\n\ttoLookupObj[key];\r\n});","IsDeferred":false},{"Name":"Map check","Code":"toLookupKeys.forEach(function (key) {\r\n\ttoLookupMap.has(key);\r\n});","IsDeferred":false},{"Name":"Object check(key in) non-secure","Code":"toLookupKeys.forEach(function (key) {\r\n\tkey in toLookupObj;\r\n});","IsDeferred":false},{"Name":"Object check using hasOwnProperty","Code":"toLookupKeys.forEach(function (key) {\r\n\ttoLookupObj.hasOwnProperty(key);\r\n});","IsDeferred":false},{"Name":"Object check using hasOwnProperty secure implementation","Code":"toLookupKeys.forEach(function (key) {\r\n Object.prototype.hasOwnProperty.call(toLookupObj, key);\r\n});","IsDeferred":false}]}