code: function calculateMD5(text, options) {
      // Calculates options based on options. It is possible to ignore whitespaces and comments. (Look write function)
      // If comments are ignored, whitespaces are ignored automatically.
      if (!options) { throw new Error('Options parameter is required'); }
      if (options.ignoreWhitespaceChange || options.ignoreCommentChange) {
          var outputOptions = options.ignoreCommentChange ? null : { comments:function() {return true}};
          try         { text = UglifyJS.minify(text, {fromString: true, output: outputOptions }).code; }
          catch(err)  { throw new Error( 'Cannot minify JS file: ' + err.message ) }
      }
      return md5(text);
  }
docs: Claculates MD5 of the given text according to options. If ignoreWhitespaceChange and/or ignoreCommentChange options
  are true, MD5 is calculated after UglifyJS minified the source code according to given options.
  @private
  @param {string} text - Text to calculate MD5 from
  @param {genOptions} options - Options how MD5 is calculated
  @returns {string} - MD5 of the text