code: function devModeEqual(a, b) {
      var /** @type {?} */ isListLikeIterableA = isListLikeIterable(a);
      var /** @type {?} */ isListLikeIterableB = isListLikeIterable(b);
      if (isListLikeIterableA && isListLikeIterableB) {
          return areIterablesEqual(a, b, devModeEqual);
      }
      else {
          var /** @type {?} */ isAObject = a && (typeof a === 'object' || typeof a === 'function');
          var /** @type {?} */ isBObject = b && (typeof b === 'object' || typeof b === 'function');
          if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) {
              return true;
          }
          else {
              return looseIdentical(a, b);
          }
      }
  }
docs: @license
  Copyright Google Inc. All Rights Reserved.
  
  Use of this source code is governed by an MIT-style license that can be
  found in the LICENSE file at https://angular.io/license
   
  @param {?} a
  @param {?} b
  @return {?}