コード例 #1
0
        /// <summary>
        /// Runs a serialized script
        /// </summary>
        /// <remarks>
        /// <para>Requires an active script context.</para>
        /// <para>The runtime will detach the data from the buffer and hold on to it until all
        /// instances of any functions created from the buffer are garbage collected.</para>
        /// </remarks>
        /// <param name="script">The source code of the serialized script</param>
        /// <param name="buffer">The serialized script</param>
        /// <param name="scriptLoadCallback">Callback to load the source code of the serialized script</param>
        /// <param name="sourceContext">A cookie identifying the script that can be used
        /// by debuggable script contexts</param>
        /// <param name="sourceUrl">The location the script came from</param>
        /// <returns>The result of running the script, if any</returns>
        public static JsValue RunSerializedScript(string script, byte[] buffer,
                                                  JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext, string sourceUrl)
        {
            JsValue bufferValue = JsValue.CreateExternalArrayBuffer(buffer);

            bufferValue.AddRef();

            JsValue sourceUrlValue = JsValue.FromString(sourceUrl);

            sourceUrlValue.AddRef();

            JsValue result;

            try
            {
                JsErrorCode errorCode = NativeMethods.JsRunSerialized(bufferValue, scriptLoadCallback,
                                                                      sourceContext, sourceUrlValue, out result);
                JsErrorHelpers.ThrowIfError(errorCode);
            }
            finally
            {
                bufferValue.Release();
                sourceUrlValue.Release();
            }

            return(result);
        }
コード例 #2
0
 /// <summary>
 /// Constructs an instance of pre-compiled script
 /// </summary>
 /// <param name="code">The source code of the script</param>
 /// <param name="parseAttributes">Attribute mask for parsing the script</param>
 /// <param name="cachedBytes">Cached data for accelerated recompilation</param>
 /// <param name="documentName">Document name</param>
 public ChakraCorePrecompiledScript(string code, JsParseScriptAttributes parseAttributes, byte[] cachedBytes,
                                    string documentName)
 {
     _code            = code;
     _parseAttributes = parseAttributes;
     _cachedBytes     = cachedBytes;
     _documentName    = documentName;
     _loadScriptSourceCodeCallback = LoadScriptSourceCode;
 }
コード例 #3
0
 internal static extern JsErrorCode JsRunSerialized(JsValue buffer,
                                                    JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext,
                                                    JsValue sourceUrl, out JsValue result);
コード例 #4
0
		internal static extern JsErrorCode JsRunSerialized(JsValue buffer,
			JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext,
			JsValue sourceUrl, out JsValue result);
コード例 #5
0
 public static extern JsErrorCode JsParseSerialized(JsValueRef buffer, JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext, JsValueRef sourceUrl, out JsValueRef result);