u(t) is called 60 times per second.
t: Elapsed time in seconds.
S: Shorthand for Math.sin.
C: Shorthand for Math.cos.
T: Shorthand for Math.tan.
R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
It's because, when you hit [ or ], e.code[3] evals to c (fourth letter in BracketLeft and BracketRight). Then, self[c] overrides the c variable, which is the reference to the canvas, and because of that c.width|= stops working. The other keys still work because x still points to the canvas context, which is what draws the rectangles. ;)
zanella: I'll give you the golf, but it's not a fix. It'll break if you press x or c. Not that I care too much; this dweet is quite clever even if no one should ever do this in practice.
Btw thanks for the explanation :) Also I golfed 9 more characters off it: t?g?c.width|=g=0:onkeydown=e=>self[e.key]+=10:a=s=k=l=g=0;x.fillRect(s-a,l-k,10,10)
u(t) is called 60 times per second.
t: elapsed time in seconds.
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
S: Math.sin
C: Math.cos
T: Math.tan
R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)