2d.imageData.put.dirty.negative

putImageData() handles negative-sized dirty rectangles correctly