code: function(width, height) {
      // Valid values = 1, '1px', '1', '1%', '1.1%', '11.11111%', '111111%'
      // Invalid values = -1, '1.1.1%', '1a', 'a1'
      var pcRegExp = /^[0-9]*\.?[0-9]+%?$/,
        pxRegExp = /^[0-9]+(?:px)?$/,
        isValid = false;
  
      if ((width || height)) {
        // check if we have a valid percentage value
        if (!!(width || 0).toString().match(pcRegExp) &&
          !!(height || 0).toString().match(pcRegExp)) {
          isValid = true;
        // check if we have a valid pixel value
        } else if (!!(width || 0).toString().match(pxRegExp) &&
          !!(height || 0).toString().match(pxRegExp)) {
          isValid = true;
        } else {
          grunt.log.error('Width/height value is not valid. Percentages and pixels cannot be mixed.');
        }
  
      } else {
        grunt.log.error('Either width and/or height must be specified.');
      }
  
      return isValid;
    }
docs: Checks for a valid width and/or height.
  We do not need both - one is sufficient, but if a value is supplied it must be a valid value.
  If width is a percentage, height must also be a percentage - they cannot be mixed.
  
  @private
  @param   {number/string}   width     The width, either as a number or a percentage (or as undefined)
  @param   {number/string}   height    The height, either as a number or a percentage (or as undefined)
  @return  {boolean}         Whether the size is valid.