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 
So remove the check for the unsupported case? I lean more towards throwing the errors to let people know it's not supported right now but I'm fine either way since Dart will give a compile error.


> 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.
>