{"ScriptPreparationCode":"const canvas = document.getElementById(\u0027canvas\u0027)\r\nconst backCanvas = document.createElement(\u0027canvas\u0027)\r\nbackCanvas.width = canvas.width\r\nbackCanvas.height = canvas.height\r\n\r\nconst ctx = canvas.getContext(\u00272d\u0027)\r\nconst backCtx = backCanvas.getContext(\u00272d\u0027)\r\n\r\nconst path = new Path2D();\r\nfor(const i = 0; i \u003C canvas.width; i\u002B=5) {\r\n path.moveTo(i, 0)\r\n path.lineTo(i, w)\r\n}\r\nfor(const i = 0; i \u003C canvas.height; i\u002B=5) {\r\n path.moveTo(0, i)\r\n path.lineTo(h, i)\r\n}\r\n\r\nbackCtx.stroke(path)","TestCases":[{"Name":"Sroke path","Code":"ctx.stroke(path)","IsDeferred":false},{"Name":"draw saved canvas","Code":"ctx.drawImage(backCanvas, 0, 0)","IsDeferred":false}]}