WebGL shaders get arrays and while loops
The GLSL shader interpreter could branch, loop with for, and call functions, but it was still missing two everyday building blocks: arrays and while loops. Real shaders use arrays constantly - a set of sample offsets for a blur, weights for a convolution kernel, a small lookup table - and reach for while when a loop does not fit the counted for shape. This release adds both. A shader can declare a fixed-size local array, write and read its elements by index (including a computed index inside a loop), and iterate with while, all under the same hard step budget that makes a runaway loop error instead of hanging the renderer. Indexing a vector by component (v[i]) works too. Proven end to end: a shader that fills a four-element array in one while loop, sums it in another, and branches on the total renders the colour its logic selects. This rounds out the GLSL language to the shape the great majority of real shaders are written in, so the Web APIs aspect moves 61 to 62; the overall holds at 56 (still a software renderer).