Chromium Code Reviews| Index: runtime/lib/growable_array.dart |
| diff --git a/runtime/lib/growable_array.dart b/runtime/lib/growable_array.dart |
| index 95594b60c81805cc6ed27cfdb59a5ab4f1ac1e47..f65380b68be6a79ab7cf3a89ec1840c875679073 100644 |
| --- a/runtime/lib/growable_array.dart |
| +++ b/runtime/lib/growable_array.dart |
| @@ -238,10 +238,10 @@ class _GrowableObjectArray<T> implements List<T> { |
| } |
| void forEach(f(T element)) { |
| - // TODO(srdjan): Use IterableMixinWorkaround.forEach(this, f); |
| - // Accessing the list directly improves DeltaBlue performance by 25%. |
| + int initialLength = length; |
| for (int i = 0; i < length; i++) { |
| f(this[i]); |
| + if (length != initialLength) throw new ConcurrentModificationError(this); |
|
hausner
2013/04/25 23:07:17
This is not sufficient to detect modifications. Th
Ivan Posva
2013/04/26 05:58:22
I think the only concern is that length could chan
|
| } |
| } |