See https://bugs.webkit.org/show_bug.cgi?id=192890
Currently they are required because of our syntax for array declaration: when seeing x[42] it is ambiguous if it is the beginning of a declaration (x[42]y;) or the beginning of an assignment (x[42] = y;). If we go back to a C-like syntax for array declarations (x y[42];) the ambiguity will be gone, and we will be able to remove the backtracking.
WHLSL is no longer relevant.