| Index: runtime/lib/collection_patch.dart
|
| diff --git a/runtime/lib/collection_patch.dart b/runtime/lib/collection_patch.dart
|
| index 9f0c74fad4a7efd0bc94e22c91b32e61cbf21786..51934d052db5d296281966b41fa6769d39d0e31b 100644
|
| --- a/runtime/lib/collection_patch.dart
|
| +++ b/runtime/lib/collection_patch.dart
|
| @@ -569,6 +569,17 @@ class _HashSet<E> extends _HashSetBase<E> implements HashSet<E> {
|
| return false;
|
| }
|
|
|
| + E lookup(Object object) {
|
| + int index = _hashCode(object) & (_buckets.length - 1);
|
| + HashSetEntry entry = _buckets[index];
|
| + while (entry != null) {
|
| + var key = entry.key;
|
| + if (_equals(key, object)) return key;
|
| + entry = entry.next;
|
| + }
|
| + return null;
|
| + }
|
| +
|
| // Set.
|
|
|
| void add(E element) {
|
| @@ -724,6 +735,11 @@ class _CustomHashSet<E> extends _HashSet<E> {
|
| return super.contains(element);
|
| }
|
|
|
| + E lookup(Object element) {
|
| + if (!_validKey(element)) return null;
|
| + return super.lookup(element);
|
| + }
|
| +
|
| bool containsAll(Iterable<Object> elements) {
|
| for (Object element in elements) {
|
| if (!_validKey(element) || !this.contains(element)) return false;
|
| @@ -1180,6 +1196,11 @@ class _LinkedCustomHashSet<E> extends _LinkedHashSet<E> {
|
| return super.contains(o);
|
| }
|
|
|
| + E lookup(Object o) {
|
| + if (!_validKey(o)) return null;
|
| + return super.lookup(o);
|
| + }
|
| +
|
| bool remove(Object o) {
|
| if (!_validKey(o)) return false;
|
| return super.remove(o);
|
|
|