# Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

entry_point: "main.dart"
definitions: [a, b]
position: "dart:collection"
expression: |
  (a, b) {
    if (a._usedData != b._usedData ||
        a._deletedKeys != b._deletedKeys ||
        a._hashMask != b._hashMask ||
        a._index.length != b._index.length ||
        a._data.length != b._data.length) {
      return false;
    }
    for (var i = 0; i < a._index.length; ++i) {
      if (a._index[i] != b._index[i]) {
        return false;
      }
    }
    for (var i = 0; i < a._data.length; ++i) {
      var ad = a._data[i];
      var bd = b._data[i];
      if (!identical(ad, bd) && !(ad == a && bd == b)) {
        return false;
      }
    }
    return true;
  }(a, b)