optimize assignments: record number of literals
that way the result vector can be pre-allocated - which gives zero resizes if no expansions are in the expression. for the joined argument lists of built-in functions, pre-allocate a fixed 5 elements, which covers all cases and more. the argument lists of user-defined functions are not pre-allocated yet.
Showing with 28 additions and 10 deletions