feat(transpiler): Transform for..of to Dart as for..in

Added transformation of for..of into Dart for..in.  
Added error for JS for..in since the semantics don't match.  
Added error for for..of utilizing destructuring declarations.

Closes #53 
I do agree though removing it would reduce unnecessary code. It just might not be as obvious when the writer doesn't write that portion of the for loop.  


> On Nov 17, 2014, at 2:12 AM, Victor Berchet <notifications@github.com> wrote:
> 
> In tools/transpiler/src/outputgeneration/DartParseTreeWriter.js:
> 
> > @@ -465,6 +469,45 @@ export class DartParseTreeWriter extends JavaScriptParseTreeWriter {
> >      this.writeList_(tree.parameterNameAndValues, COMMA, false);
> >    }
> >  
> > +  // FOR LOOPS
> > +  // Translate for..of to for..in and throw error on for..in (JS)
> > +  /**
> > +   * Transforms for..of into for..in.
> > +   * Unsupported:
> > +   *  - Destructuring iterators for map key, value
> I don't think that we should rush an impl unless some code depends on it - IMO it is preferable not to put add code to the writer and have a proper code transformer, then destructuring can be handled by adding an other transformer.
> 
> Could the Map case be solved with for([k, v] of MapWrapper.iterator(map)) ?
> 
> —
> Reply to this email directly or view it on GitHub.
>