Files
sdk/lib/compiler/implementation
ager@google.com 696fb20ece Avoid repeated declaration of the same loop variable.
The following code:

void main() {
  int j = 0;
  for (int i = 0; i < 10; i++) {
    j++;
  }
}

would generate the following:

for (var j = 0, i = 0; i < 10; ) {
  j = j + 1;
  var i = i + 1;
}

with this change the 'var' in the body disappears.

R=ngeoffray@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10471002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8192 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 13:15:19 +00:00
..
2012-05-31 07:23:21 +00:00
2012-04-24 15:24:00 +00:00
2012-05-23 12:25:36 +00:00
2012-05-22 15:42:13 +00:00
2012-05-15 16:13:44 +00:00
2012-05-22 13:15:46 +00:00
2012-05-15 08:33:27 +00:00

Leg is an experimental add-on to the Frog compiler that aims to
explore areas of long-term interest:

   * high-performance extensible scanner and parser
   * concrete type inferencing
   * fancy language tool support
   * programming environment integration
   * SSA-based intermediate representation
   * adaptive compilation on the client
   * ...

Some of the things listed above are very experimental of nature and
may prove themselves infeasible or unnecesary, so we want to work on
them in a way that guarantees we will not disrupt the work being done
to make Frog a fantastic compiler for Dart in its default setup.

To keep things simple and allow quick experimentation, Leg will only
support a subset of Dart and fall back on using the default Frog
compiler for the remaining parts of the language. We expect Leg to be
a complete and correct implementation of the supported subset
throughout the implementation and experimentation so you should always
be able to try Leg on any Dart project.

The plan is to share code between the default Frog compiler and Leg
where it makes sense and to learn from both code bases along the way.