{"ScriptPreparationCode":"function log() {\r\n var str = \u0022\u0022;\r\n for (var i = 0; i \u003C arguments.length; \u002B\u002Bi) {\r\n str \u002B= String(arguments[i]);\r\n }\r\n}\r\n\r\nvar resA;\r\nfunction doTry (e) {\r\n try {\r\n resA = e.details[0];\r\n } catch (err) {\r\n log(\u0022unexpected format of event:\u0022, err.toString());\r\n }\r\n}\r\n\r\nvar resB;\r\nfunction doCheck (e) {\r\n if (e \u0026\u0026 e.details) {\r\n resB = e.details[0];\r\n } else {\r\n log(\u0022unexpected format of event:\u0022, e);\r\n }\r\n}\r\n\r\nvar goodEvents = [];\r\nfor (var i = 0; i \u003C 10000; \u002B\u002Bi) {\r\n goodEvents.push({ details: [ Math.random() ] });\r\n}\r\n\r\nvar badEvents = [];\r\nfor (var i = 0; i \u003C 10000; \u002B\u002Bi) {\r\n if (i % 20 === 0) {\r\n badEvents.push(null);\r\n } else if (i % 20 === 10) {\r\n badEvents.push({});\r\n } else {\r\n \tbadEvents.push({ details: [ Math.random() ] });\r\n }\r\n}\r\n\r\nfunction test (events, fn) {\r\n for (var i = 0; i \u003C events.length; \u002B\u002Bi) {\r\n fn(events[i]);\r\n }\r\n}","TestCases":[{"Name":"try","Code":"test(goodEvents, doTry);","IsDeferred":false},{"Name":"check","Code":"test(goodEvents, doCheck);","IsDeferred":false},{"Name":"try (bad)","Code":"test(badEvents, doTry);","IsDeferred":false},{"Name":"check (bad)","Code":"test(badEvents, doCheck);","IsDeferred":false}]}