__executeMetaValidators(regularValidationResult, metaValidators) {
      if (!metaValidators.length) {
        return [];
      }

      // If empty, do not show the ResulValidation message (e.g. Correct!)
      if (this._isEmpty(this.modelValue)) {
        this.__prevShownValidationResult = [];
        return [];
      }

      // Map everything to Validator[] for backwards compatibility
      return metaValidators
        .map(v => ({
          validator: v,
          outcome: /** @type {boolean|string} */ (
            v.executeOnResults({
              regularValidationResult: regularValidationResult.map(entry => entry.validator),
              prevValidationResult: this.__prevValidationResult.map(entry => entry.validator),
              prevShownValidationResult: this.__prevShownValidationResult.map(
                entry => entry.validator,
              ),
            })
          ),
        }))
        .filter(v => Boolean(v.outcome));
    }
step b (as explained in `validate()`), called by __finishValidationPass
@param {{validator: Validator;outcome: boolean | string;}[]} regularValidationResult result of steps 1-3
@param {MetaValidator[]} metaValidators
@private