• nikolaos's avatar
    Add spread rewriting · 07f1c362
    nikolaos authored
    In short, array literals containing spreads, when used as expressions,
    are rewritten using do expressions.  E.g.
    
        [1, 2, 3, ...x, 4, ...y, 5]
    
    is roughly rewritten as:
    
        do {
          $R = [1, 2, 3];
          for ($i of x) %AppendElement($R, $i);
          %AppendElement($R, 4);
          for ($j of y) %AppendElement($R, $j);
          %AppendElement($R, 5);
          $R
        }
    
    where $R, $i and $j are fresh temporary variables.
    
    R=rossberg@chromium.org
    BUG=
    
    Review URL: https://codereview.chromium.org/1564083002
    
    Cr-Commit-Position: refs/heads/master@{#33307}
    07f1c362
ast.h 116 KB