/// <summary>
        /// Adds a instance of <see cref="ChakraCoreJsEngineFactory"/> to
        /// the specified <see cref="JsEngineFactoryCollection" />
        /// </summary>
        /// <param name="source">Instance of <see cref="JsEngineFactoryCollection" /></param>
        /// <returns>Instance of <see cref="JsEngineFactoryCollection" /></returns>
        public static JsEngineFactoryCollection AddChakraCore(this JsEngineFactoryCollection source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            return(source.AddChakraCore(new ChakraCoreSettings()));
        }
        /// <summary>
        /// Adds a instance of <see cref="ChakraCoreJsEngineFactory"/> to
        /// the specified <see cref="JsEngineFactoryCollection" />
        /// </summary>
        /// <param name="source">Instance of <see cref="JsEngineFactoryCollection" /></param>
        /// <param name="configure">The delegate to configure the provided <see cref="ChakraCoreSettings"/></param>
        /// <returns>Instance of <see cref="JsEngineFactoryCollection" /></returns>
        public static JsEngineFactoryCollection AddChakraCore(this JsEngineFactoryCollection source,
                                                              Action <ChakraCoreSettings> configure)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (configure == null)
            {
                throw new ArgumentNullException("configure");
            }

            var settings = new ChakraCoreSettings();

            configure(settings);

            return(source.AddChakraCore(settings));
        }