docs: function (modelName, recordsAdded, recordsUpdated, recordsRemoved) {
        var _this2 = this;
  
        var releaseMethods = _emberRuntimeSystemNative_array.A();
        var klass = this._nameToClass(modelName);
        var records = this.getRecords(klass, modelName);
        var release;
  
        var recordUpdated = function (updatedRecord) {
          recordsUpdated([updatedRecord]);
        };
  
        var recordsToSend = records.map(function (record) {
          releaseMethods.push(_this2.observeRecord(record, recordUpdated));
          return _this2.wrapRecord(record);
        });
  
        var contentDidChange = function (array, idx, removedCount, addedCount) {
          for (var i = idx; i < idx + addedCount; i++) {
            var record = _emberRuntimeMixinsArray.objectAt(array, i);
            var wrapped = _this2.wrapRecord(record);
            releaseMethods.push(_this2.observeRecord(record, recordUpdated));
            recordsAdded([wrapped]);
          }
  
          if (removedCount) {
            recordsRemoved(idx, removedCount);
          }
        };
  
        var observer = { didChange: contentDidChange, willChange: function () {
            return this;
          } };
        _emberRuntimeMixinsArray.addArrayObserver(records, this, observer);
  
        release = function () {
          releaseMethods.forEach(function (fn) {
            fn();
          });
          _emberRuntimeMixinsArray.removeArrayObserver(records, _this2, observer);
          _this2.releaseMethods.removeObject(release);
        };
  
        recordsAdded(recordsToSend);
  
        this.releaseMethods.pushObject(release);
        return release;
      }