diff --git a/src/canvas.js b/src/canvas.js index 122dd5e59..97ff8f8d4 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -1281,12 +1281,14 @@ function checkPutBinaryImageDataCompatibility() { function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) { var tmpImgData = ctx.getImageData(0, 0, w, h); - // Copy over the imageData pixel by pixel. var tmpImgDataPixels = tmpImgData.data; - var len = tmpImgDataPixels.length; - - while (len--) { - tmpImgDataPixels[len] = imgData.data[len]; + var data = imgData.data; + if ('set' in tmpImgDataPixels) + tmpImgDataPixels.set(data); + else { + // Copy over the imageData pixel by pixel. + for (var i = 0, ii = tmpImgDataPixels.length; i < ii; i++) + tmpImgDataPixels[i] = data[i]; } ctx.putImageData(tmpImgData, 0, 0);