/// <summary>
        /// Converts a optimization options to JSON
        /// </summary>
        /// <param name="options">Optimization options</param>
        /// <returns>Optimization options in JSON format</returns>
        private static JObject ConvertOptimizationOptionsToJson(OptimizationOptions options)
        {
            var optionsJson = new JObject(
                new JProperty("restructure", options.Restructure),
                new JProperty("forceMediaMerge", options.ForceMediaMerge),
                new JProperty("comments", ConvertCommentsModeEnumValueToCode(options.Comments))
                );

            return(optionsJson);
        }
 /// <summary>
 /// Constructs a instance of CSS optimizer
 /// </summary>
 /// <param name="createJsEngineInstance">Delegate that creates an instance of JS engine</param>
 /// <param name="options">Optimization options</param>
 public CssOptimizer(Func <IJsEngine> createJsEngineInstance, OptimizationOptions options)
 {
     _jsEngine      = createJsEngineInstance();
     _optionsString = ConvertOptimizationOptionsToJson(options ?? new OptimizationOptions()).ToString();
 }