{"ScriptPreparationCode":"/*your preparation JavaScript code goes here\r\nTo execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/\r\nasync function globalMeasureThatScriptPrepareFunction() {\r\n // This function is optional, feel free to remove it.\r\n // await someThing();\r\n}","TestCases":[{"Name":"actual","Code":"(function() {\r\n var loadTimeout = 5000;\r\n var loadFired = false;\r\n var timeoutFallback;\r\n\t\r\n function onWindowLoad() {\r\n if (!loadFired) {\r\n loadFired = true;\r\n clearTimeout(timeoutFallback);\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n \u0027event\u0027: \u0027window_load\u0027\r\n });\r\n }\r\n }\r\n\r\n function fallback() {\r\n if (!loadFired) {\r\n loadFired = true;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n \u0027event\u0027: \u0027load_fallback\u0027\r\n });\r\n }\r\n }\r\n\r\n window.addEventListener(\u0027load\u0027, onWindowLoad);\r\n\r\n timeoutFallback = setTimeout(fallback, loadTimeout);\r\n})();","IsDeferred":false},{"Name":"future","Code":"(function() {\r\n var loadTimeout = 5000;\r\n var loadFired = false;\r\n var timeoutFallback;\r\n \r\n function onWindowLoad() {\r\n if (loadFired) {\r\n return;\r\n }\r\n \r\n loadFired = true;\r\n clearTimeout(timeoutFallback);\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n \u0027event\u0027: \u0027window_load\u0027\r\n });\r\n }\r\n \r\n function fallback() {\r\n if (loadFired) {\r\n return;\r\n }\r\n \r\n loadFired = true;\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n \u0027event\u0027: \u0027load_fallback\u0027\r\n });\r\n }\r\n \r\n window.addEventListener(\u0027load\u0027, onWindowLoad);\r\n timeoutFallback = setTimeout(fallback, loadTimeout);\r\n})();","IsDeferred":false}]}