示例#1
0
        public JavaScriptRuntime(JavaScriptRuntimeSettings settings = null)
        {
            if (settings == null)
            {
                settings = new JavaScriptRuntimeSettings();
            }

            childEngines_ = new List <WeakReference <JavaScriptEngine> >();
            settings_     = settings;
            var attrs = settings.GetRuntimeAttributes();

            var errorCode = api_.JsCreateRuntime(attrs, IntPtr.Zero, out handle_);

            if (errorCode != JsErrorCode.JsNoError)
            {
                Errors.ThrowFor(errorCode);
            }

            settings.Used = true;

            GCHandle handle = GCHandle.Alloc(this, GCHandleType.Weak);

            errorCode = api_.JsSetRuntimeMemoryAllocationCallback(handle_, GCHandle.ToIntPtr(handle), MemoryCallbackThunkPtr);
            if (errorCode != JsErrorCode.JsNoError)
            {
                Errors.ThrowFor(errorCode);
            }
        }
示例#2
0
        private void Eval_Click(object sender, RoutedEventArgs e)
        {
            var settings = new JavaScriptRuntimeSettings();
            var runtime = new JavaScriptRuntime(settings);
            var engine = runtime.CreateEngine();

            var result = engine.Execute(new Microsoft.Scripting.ScriptSource("[eval code]", input.Text));

            output.Text = result.ToString();
        }
示例#3
0
        public JavaScriptRuntime(JavaScriptRuntimeSettings settings = null)
        {
            if (settings == null)
                settings = new JavaScriptRuntimeSettings();

            settings_ = settings;
            var attrs = settings.GetRuntimeAttributes();

            var errorCode = api_.JsCreateRuntime(attrs, IntPtr.Zero, out handle_);
            if (errorCode != JsErrorCode.JsNoError)
                Errors.ThrowFor(errorCode);

            settings.Used = true;

            GCHandle handle = GCHandle.Alloc(this, GCHandleType.Weak);
            errorCode = api_.JsSetRuntimeMemoryAllocationCallback(handle_, GCHandle.ToIntPtr(handle), MemoryCallbackThunkPtr);
            if (errorCode != JsErrorCode.JsNoError)
                Errors.ThrowFor(errorCode);
        }
示例#4
0
 public void Setup()
 {
     var settings = new JavaScriptRuntimeSettings();
     runtime_ = new JavaScriptRuntime(settings);
     engine_ = runtime_.CreateEngine();
 }
 public override void Setup()
 {
     var settings = new JavaScriptRuntimeSettings() { AllowScriptInterrupt = true, };
     runtime_ = new JavaScriptRuntime(settings);
     engine_ = runtime_.CreateEngine();
 }
 public override void Setup()
 {
     var settings = new JavaScriptRuntimeSettings() { EnableIdleProcessing = true, };
     runtime_ = new JavaScriptRuntime(settings);
     engine_ = runtime_.CreateEngine();
 }