WebGL depth: textures and indexed drawing
The WebGL engine that landed last release drew flat and smoothly-shaded triangles; the two things nearly all real WebGL content adds on top were still missing, and this release adds both. First, textures: a shader can now bind a texture, set its sampling parameters, and sample it per pixel - texture2D in the fragment shader returns the real texel, with nearest or bilinear filtering and repeat/mirror/clamp wrapping, so a page can render a data or procedural texture (a gradient ramp, a lookup table, a generated pattern) onto its geometry. Second, indexed drawing: drawElements walks an element (index) buffer to assemble triangles from a shared vertex list, which is how essentially every mesh larger than a quad is drawn. Both are proven end to end - a texel sampled through a full shader pipeline reads back its exact colour, and an indexed quad fills the canvas - across four new tests. Honest scope: textures come from typed-array or ImageData pixels (procedural and data textures); binding an image or canvas element is accepted but samples as white, because the pixels are decoded in the paint pipeline, not the script VM. This is WebGL depth, so the Web APIs aspect moves 56 to 57; the overall holds at 56 (still a software renderer, and image-source textures plus framebuffer objects remain).