_loop = function _loop() {
        var row = null;

        if (_this3.instance.dataType === 'array') {
          if (_this3.instance.getSettings().dataSchema) {
            // Clone template array
            row = (0, _object.deepClone)(_this3.getSchema());
          } else {
            row = [];
            /* eslint-disable no-loop-func */

            (0, _number.rangeEach)(columnCount - 1, function () {
              return row.push(null);
            });
          }
        } else if (_this3.instance.dataType === 'function') {
          row = _this3.instance.getSettings().dataSchema(rowIndex);
        } else {
          row = {};
          (0, _object.deepExtend)(row, _this3.getSchema());
        }

        if (rowIndex === _this3.instance.countSourceRows()) {
          _this3.dataSource.push(row);
        } else {
          _this3.spliceData(rowIndex, 0, row);
        }

        numberOfCreatedRows += 1;
      }
Creates row at the bottom of the data array.

@param {Number} [index] Physical index of the row before which the new row will be inserted.
@param {Number} [amount=1] An amount of rows to add.
@param {String} [source] Source of method call.
@fires Hooks#afterCreateRow
@returns {Number} Returns number of created rows.