constructor(whitePoint, blackPoint, range) {
    super("Lab", 3);

    if (!whitePoint) {
      throw new FormatError(
        "WhitePoint missing - required for color space Lab"
      );
    }
    // Translate args to spec variables
    [this.XW, this.YW, this.ZW] = whitePoint;
    [this.amin, this.amax, this.bmin, this.bmax] = range || [
      -100, 100, -100, 100,
    ];

    // These are here just for completeness - the spec doesn't offer any
    // formulas that use BlackPoint in Lab
    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];

    // Validate vars as per spec
    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {
      throw new FormatError(
        "Invalid WhitePoint components, no fallback available"
      );
    }

    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
      info("Invalid BlackPoint, falling back to default");
      this.XB = this.YB = this.ZB = 0;
    }

    if (this.amin > this.amax || this.bmin > this.bmax) {
      info("Invalid Range, falling back to defaults");
      this.amin = -100;
      this.amax = 100;
      this.bmin = -100;
      this.bmax = 100;
    }
  }
LabCS: Based on "PDF Reference, Sixth Ed", p.250

The default color is `new Float32Array([0, 0, 0])`.