defendMethod = (getContext, behaviorMethod, methodGuard, label) => {
  const methodGuardPayload = getMethodGuardPayload(methodGuard);
  const { callKind } = methodGuardPayload;
  if (callKind === 'sync') {
    return defendSyncMethod(
      getContext,
      behaviorMethod,
      methodGuardPayload,
      label,
    );
  } else {
    assert(callKind === 'async');
    return defendAsyncMethod(
      getContext,
      behaviorMethod,
      methodGuardPayload,
      label,
    );
  }
}
@param {(representative: any) => ClassContext | KitContext} getContext
@param {CallableFunction} behaviorMethod
@param {MethodGuard} methodGuard
@param {string} label