{"ScriptPreparationCode":"var audio = document.createElement(\u0022audio\u0022);\r\n\r\nfunction andAOne(e){ \r\n e.count = (e.count|| 0) \u002B1; \r\n e.count === 501 \u0026\u0026 e.preventDefault();\r\n}\r\n\r\nfunction andAOneAndAStop(e){ \r\n e.count = (e.count|| 0) \u002B1; \r\n e.count === 501 \u0026\u0026 e.stopPropagationImmediately();\r\n}\r\n\r\nfunction andAOneAndANeverStop(e){ \r\n e.count = (e.count|| 0) \u002B1; \r\n e.count === 5001 \u0026\u0026 e.stopPropagationImmediately();\r\n}","TestCases":[{"Name":"async 1000","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022ratechange\u0022,andAOne.bind({}));\r\naudio.playbackRate = 2;","IsDeferred":false},{"Name":"async 501","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022ratechange\u0022,andAOneAndAStop.bind({}));\r\naudio.playbackRate = 2;","IsDeferred":false},{"Name":"sync 1000","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022click\u0022,andAOne.bind({}));\r\naudio.click();","IsDeferred":false},{"Name":"sync 501","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022click\u0022,andAOneAndAStop.bind({}));\r\naudio.click();","IsDeferred":false},{"Name":"sync 1000 with a fake stopImmediatePropagation()","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022click\u0022,andAOneAndANeverStop.bind({}));\r\naudio.click();","IsDeferred":false},{"Name":"async 1000 with a fake stopImmediatePropagation()","Code":"for (var i = 0; i \u003C100; i\u002B\u002B)\r\n audio.addEventListener(\u0022ratechange\u0022,andAOneAndANeverStop.bind({}));\r\naudio.playbackRate = 2;","IsDeferred":false}]}