docs: function (idx, amt, objects) {
        if (this.isFrozen) {
          throw _emberRuntimeMixinsFreezable.FROZEN_ERROR;
        }
  
        // if we replaced exactly the same number of items, then pass only the
        // replaced range. Otherwise, pass the full remaining array length
        // since everything has shifted
        var len = objects ? _emberMetalProperty_get.get(objects, 'length') : 0;
        this.arrayContentWillChange(idx, amt, len);
  
        if (len === 0) {
          this.splice(idx, amt);
        } else {
          _emberMetalReplace._replace(this, idx, amt, objects);
        }
  
        this.arrayContentDidChange(idx, amt, len);
        return this;
      }