code: function validBBox(bBox) {
    if (!isObject(bBox)) {
      return null;
    }
    var value = void 0;
    if (isFinite(value = bBox.left) || isFinite(value = bBox.x)) {
      bBox.left = bBox.x = value;
    } else {
      return null;
    }
    if (isFinite(value = bBox.top) || isFinite(value = bBox.y)) {
      bBox.top = bBox.y = value;
    } else {
      return null;
    }
  
    if (isFinite(bBox.width) && bBox.width >= 0) {
      bBox.right = bBox.left + bBox.width;
    } else if (isFinite(bBox.right) && bBox.right >= bBox.left) {
      bBox.width = bBox.right - bBox.left;
    } else {
      return null;
    }
    if (isFinite(bBox.height) && bBox.height >= 0) {
      bBox.bottom = bBox.top + bBox.height;
    } else if (isFinite(bBox.bottom) && bBox.bottom >= bBox.top) {
      bBox.height = bBox.bottom - bBox.top;
    } else {
      return null;
    }
    return bBox;
  }
docs: An object that simulates `DOMRect` to indicate a bounding-box.
  @typedef {Object} BBox
  @property {(number|null)} left - document coordinate
  @property {(number|null)} top - document coordinate
  @property {(number|null)} right - document coordinate
  @property {(number|null)} bottom - document coordinate
  @property {(number|null)} x - Substitutes for left
  @property {(number|null)} y - Substitutes for top
  @property {(number|null)} width
  @property {(number|null)} height
   
  @param {Object} bBox - A target object.
  @returns {(BBox|null)} A normalized `BBox`, or null if `bBox` is invalid.