docs: function captureCallback(nodeFire, eventType, callback) {
    const key = eventType + '::' + nodeFire.toString();
    callback.$nodeFireCallbacks = callback.$nodeFireCallbacks || {};
    callback.$nodeFireCallbacks[key] = callback.$nodeFireCallbacks[key] || [];
    const nodeFireCallback = function(snap, previousChildKey) {
      // eslint-disable-next-line no-invalid-this
      runGenerator(callback.call(this, new Snapshot(snap, nodeFire), previousChildKey));
    };
    callback.$nodeFireCallbacks[key].push(nodeFireCallback);
    return nodeFireCallback;
  }