code: function AbstractControl(validator, asyncValidator) {
          this.validator = validator;
          this.asyncValidator = asyncValidator;
          /** @internal */
          this._onCollectionChange = function () { };
          /**
           * A control is `pristine` if the user has not yet changed
           * the value in the UI.
           *
           * @returns True if the user has not yet changed the value in the UI; compare `dirty`.
           * Programmatic changes to a control's value do not mark it dirty.
           */
          this.pristine = true;
          /**
           * True if the control is marked as `touched`.
           *
           * A control is marked `touched` once the user has triggered
           * a `blur` event on it.
           */
          this.touched = false;
          /** @internal */
          this._onDisabledChange = [];
      }
docs: Initialize the AbstractControl instance.
  
  @param validator The function that determines the synchronous validity of this control.
  @param asyncValidator The function that determines the asynchronous validity of this
  control.