in checked mode.
It also checks at the end in all cases.
Iteration only goes from 0 to the original length of the list.
This ensures that iterating a list while adding to it (like by x.addAll(x))
is caught instead of growing until out-of-memory.
For well-behaved programs this makes no difference since length and original
length stay the same.
Also, it means that calling moveNext again later, after increasing the length,
will not make iteration continue. After returning false, iteration is always
done.
However, it means that reducing the length causes an out-of-range read before
reaching the end, and before a concurrent modification error can happen.
R=sra@google.com
Review URL: https://codereview.chromium.org//1024843002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45198 260f80e4-7a28-3924-810f-c04153c831b5
This is based on the archive of release notes. Its primary goal is to
provide a canonical source for Dart package developers to refer to
when determining what SDK constraints to use for their packages. It
only goes back through 1.7.0 because older SDKs aren't in wide use and
it's unlikely that package authors will need to know what features
changed back then.
R=kevmoo@google.com
Review URL: https://codereview.chromium.org//1064493002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44899 260f80e4-7a28-3924-810f-c04153c831b5