Also, this test and "Draw 4" below produce out-of-range colors when the WebGL context's premultipliedAlpha context creation attribute is true. In that situation, the R, G, and B components must be less than or equal to the alpha component. This isn't that important for this test -- the canvas might just render strangely, but the read-back values should be correct. Still, might want to consider setting "premultipliedAlpha: false" above. The counter-point would be that bugs in the implementation of the premultipliedAlpha context creation attribute might somehow break this test, so it should be tested separately. Your call.