Index: sdk/lib/_internal/compiler/implementation/lib/js_array.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/lib/js_array.dart b/sdk/lib/_internal/compiler/implementation/lib/js_array.dart |
index d7148a5981ce074417f3ec1534aa04d1508567b6..62d7463d25f3f69a86127709a6e57c80a3f29cc9 100644 |
--- a/sdk/lib/_internal/compiler/implementation/lib/js_array.dart |
+++ b/sdk/lib/_internal/compiler/implementation/lib/js_array.dart |
@@ -33,6 +33,33 @@ class JSArray<E> implements List<E> { |
return JS('var', r'#.pop()', this); |
} |
+ void remove(Object element) { |
+ checkGrowable(this, 'remove'); |
+ for (int i = 0; i < this.length; i++) { |
+ if (this[i] == element) { |
+ JS('var', r'#.splice(#, 1)', this, i); |
+ return; |
+ } |
+ } |
+ } |
+ |
+ void removeAll(Iterable elements) { |
+ Collections.removeAll(this, elements); |
+ } |
+ |
+ void retainAll(Iterable elements) { |
+ Collections.retainAll(this, elements); |
+ } |
+ |
+ void removeMatching(bool test(E element)) { |
+ // This could, and should, be optimized. |
+ Collections.removeMatching(this, test); |
+ } |
+ |
+ void reatainMatching(bool test(E element)) { |
+ Collections.reatainMatching(this, test); |
+ } |
+ |
Iterable<E> where(bool f(E element)) { |
return IterableMixinWorkaround.where(this, f); |
} |