After removing the elaborate type checking code for performance, the lack of type checks (we still have some, but not all we did before) allows some values to be passed through our process pipeline that would not have been before.
for instance, in the cells component (and this is the only real place it occurs because normally we don't permit setting arbitrary JS values in templates--the author decides what values to put there, not the user--but in cells the user decides) we can set a cell formula like so
A1: abcdef
A2: =/[a-z]/g
A3: =a1.match(a2)
the value of A3 will be an Array. Not a VVArray (array of components / HTML produced by VV), just an array. In this case of strings.
So what happens is our process code just gets stuck in an endless loop on this. Let's fix this.
After removing the elaborate type checking code for performance, the lack of type checks (we still have some, but not all we did before) allows some values to be passed through our process pipeline that would not have been before.
for instance, in the cells component (and this is the only real place it occurs because normally we don't permit setting arbitrary JS values in templates--the author decides what values to put there, not the user--but in cells the user decides) we can set a cell formula like so
the value of A3 will be an Array. Not a VVArray (array of components / HTML produced by VV), just an array. In this case of strings.
So what happens is our process code just gets stuck in an endless loop on this. Let's fix this.