{"ScriptPreparationCode":"var img = new Image();\r\nvar imageBitmap;\r\nvar doneLoading = false;\r\nvar canvasImage = document.createElement(\u0027canvas\u0027);\r\ncanvasImage.width = 700;\r\ncanvasImage.height = 700;\r\nvar canvasImageBitmap = document.createElement(\u0027canvas\u0027);\r\ncanvasImageBitmap.width = 700;\r\ncanvasImageBitmap.height = 700;\r\nvar canvas = document.createElement(\u0027canvas\u0027);\r\ncanvas.width = 700;\r\ncanvas.height = 700;\r\nvar canvasCanvas = document.createElement(\u0027canvas\u0027);\r\ncanvasCanvas.width = 700;\r\ncanvasCanvas.height = 700;\r\n\r\nvar ctxImage = canvasImage.getContext(\u00272d\u0027);\r\nvar ctxImageBitmap = canvasImageBitmap.getContext(\u00272d\u0027);\r\nvar ctx = canvas.getContext(\u00272d\u0027);\r\nvar ctxCanvas = canvasCanvas.getContext(\u00272d\u0027);\r\n\r\nasync function globalMeasureThatScriptPrepareFunction() {\r\n return new Promise((resolve, reject) =\u003E {\r\n img.addEventListener(\u0027load\u0027, function() {\r\n createImageBitmap(img)\r\n .then(function(bitmap) {\r\n imageBitmap = bitmap;\r\n debugger;\r\n doneLoading = true;\r\n console.log(\u0022bitmap preparation done\u0022);\r\n resolve(true);\r\n }, false);\r\n \r\n ctx.drawImage(img, 0, 0);\r\n console.log(\u0022canvas preparation done\u0022);\r\n });\r\n\r\n img.src = \u0027https://1.bp.blogspot.com/-52MtzD0GfX0/WvP52CL1WjI/AAAAAAAAOVw/_OpK4JHeWK01d-7IiZ6vzojYGhXqLRXrACLcBGAs/s1600/EMxediL.jpg\u0027;\r\n });\r\n}","TestCases":[{"Name":"Image","Code":"ctxImage.drawImage(img,0,0);\r\nctxImage.clearRect(0,0,700,700);","IsDeferred":false},{"Name":"ImageBitmap","Code":"ctxImageBitmap.drawImage(imageBitmap,0,0);\r\nctxImageBitmap.clearRect(0,0,700,700);","IsDeferred":false},{"Name":"Canvas","Code":"ctxCanvas.drawImage(canvas,0,0);\r\nctxCanvas.clearRect(0,0,700,700);","IsDeferred":false}]}