public void JsScriptCanBeSerialized() { var script = "(()=>{return 6*7;})()"; using (var runtimeHandle = Engine.JsCreateRuntime(JavaScriptRuntimeAttributes.None, null)) { using (var contextHandle = Engine.JsCreateContext(runtimeHandle)) { Engine.JsSetCurrentContext(contextHandle); IntPtr ptrScript = Marshal.StringToHGlobalAnsi(script); try { var scriptHandle = Engine.JsCreateExternalArrayBuffer(ptrScript, (uint)script.Length, null, IntPtr.Zero); var bufferHandle = Engine.JsSerialize(scriptHandle, JavaScriptParseScriptAttributes.None); var handleType = Engine.JsGetValueType(bufferHandle); Assert.True(handleType == JsValueType.ArrayBuffer); scriptHandle.Dispose(); } finally { Marshal.FreeHGlobal(ptrScript); } } } }