lib/compiler/compiler.js
function UnsafeIter(branch) {
  const key = c.KEY_I(branch.iterSuffix);

  const arr = t.identifier('arr');
  const output = t.identifier('output');

  return t.callExpression(t.functionExpression(null, [], t.blockStatement([
    t.variableDeclaration('var', [
      t.variableDeclarator(arr, Guard(branch.subject.path)),
      t.variableDeclarator(output, t.stringLiteral('')),
      t.variableDeclarator(c.LENGTH, t.memberExpression(arr, c.LENGTH)),
      t.variableDeclarator(c.INDEX, t.numericLiteral(0)),
      t.variableDeclarator(key),
      t.variableDeclarator(c.KEY),
    ]),
    t.forStatement(
      null,
      t.binaryExpression('<', c.INDEX, c.LENGTH),
      t.updateExpression('++', c.INDEX),
      t.blockStatement([
        t.expressionStatement(t.assignmentExpression('=', key, c.INDEX)),
        t.expressionStatement(t.assignmentExpression('=', c.KEY, c.INDEX)),
        t.expressionStatement(t.assignmentExpression('+=', output, ConcatStringList(compile(branch.body)))),
      ]),
    ),
    t.returnStatement(output),
  ])), []);
}
function UnsafeIter(branch) {
  const key = c.KEY_I(branch.iterSuffix);

  const arr = t.identifier('arr');
  const output = t.identifier('output');

  return t.callExpression(t.functionExpression(null, [], t.blockStatement([
    t.variableDeclaration('var', [
      t.variableDeclarator(arr, Guard(branch.subject.path)),
      t.variableDeclarator(output, t.stringLiteral('')),
      t.variableDeclarator(c.LENGTH, t.memberExpression(arr, c.LENGTH)),
      t.variableDeclarator(c.INDEX, t.numericLiteral(0)),
      t.variableDeclarator(key),
      t.variableDeclarator(c.KEY),
    ]),
    t.forStatement(
      null,
      t.binaryExpression('<', c.INDEX, c.LENGTH),
      t.updateExpression('++', c.INDEX),
      t.blockStatement([
        t.expressionStatement(t.assignmentExpression('=', key, c.INDEX)),
        t.expressionStatement(t.assignmentExpression('=', c.KEY, c.INDEX)),
        t.expressionStatement(t.assignmentExpression('+=', output, ConcatStringList(compile(branch.body)))),
      ]),
    ),
    t.returnStatement(output),
  ])), []);
}
function UnsafeIter ( branch ) { const key = c . KEY_I ( branch . iterSuffix ) ; const arr = t . identifier ( 'arr' ) ; const output = t . identifier ( 'output' ) ; return t . callExpression ( t . functionExpression ( null , [ ] , t . blockStatement ( [ t . variableDeclaration ( 'var' , [ t . variableDeclarator ( arr , Guard ( branch . subject . path ) ) , t . variableDeclarator ( output , t . stringLiteral ( '' ) ) , t . variableDeclarator ( c . LENGTH , t . memberExpression ( arr , c . LENGTH ) ) , t . variableDeclarator ( c . INDEX , t . numericLiteral ( 0 ) ) , t . variableDeclarator ( key ) , t . variableDeclarator ( c . KEY ) , ] ) , t . forStatement ( null , t . binaryExpression ( '<' , c . INDEX , c . LENGTH ) , t . updateExpression ( '++' , c . INDEX ) , t . blockStatement ( [ t . expressionStatement ( t . assignmentExpression ( '=' , key , c . INDEX ) ) , t . expressionStatement ( t . assignmentExpression ( '=' , c . KEY , c . INDEX ) ) , t . expressionStatement ( t . assignmentExpression ( '+=' , output , ConcatStringList ( compile ( branch . body ) ) ) ) , ] ) , ) , t . returnStatement ( output ) , ] ) ) , [ ] ) ; }
inline iteration unsafely only supports iterating over arrays-likes
inline iteration unsafely only supports iterating over arrays - likes