{"ScriptPreparationCode":"var haystack = {};\r\nvar SIZE = 10000;\r\nfor (var i = 0; i \u003C SIZE; i\u002B\u002B) { haystack[\u0027a\u0027 \u002B i] = i; }\r\nvar objA = {};\r\nvar objB = { haystack: haystack };\r\nfunction get1(obj, key) { return (obj.haystack || {})[key] || -1; }\r\nfunction get2(obj, key) { return (obj.haystack \u0026\u0026 key in obj.haystack) ? obj.haystack[key] : -1; }\r\nfunction get3(obj, key) { return obj.haystack \u0026\u0026 obj.haystack[key] || -1; }\r\nfunction randomKey() { return \u0027a\u0027 \u002B Math.floor(Math.random() * SIZE); }","TestCases":[{"Name":"Empty object with short method","Code":"get1(objA, randomKey());","IsDeferred":false},{"Name":"Empty object with long method","Code":"get2(objA, randomKey());","IsDeferred":false},{"Name":"Full object with short method","Code":"get1(objB, randomKey());","IsDeferred":false},{"Name":"Full object with long method","Code":"get2(objB, randomKey());","IsDeferred":false},{"Name":"Empty object with shorter method","Code":"get3(objA, randomKey());","IsDeferred":false},{"Name":"Full object with shorter method","Code":"get3(objB, randomKey());","IsDeferred":false}]}