[][src]Struct deno_core::JsRuntime

pub struct JsRuntime { /* fields omitted */ }

A single execution context of JavaScript. Corresponds roughly to the "Web Worker" concept in the DOM. A JsRuntime is a Future that can be used with an event loop (Tokio, async_std). The JsRuntime future completes when there is an error or when all pending ops have completed.

Ops are created in JavaScript by calling Deno.core.dispatch(), and in Rust by implementing dispatcher function that takes control buffer and optional zero copy buffer as arguments. An async Op corresponds exactly to a Promise in JavaScript.

Implementations

impl JsRuntime[src]

pub fn new(options: RuntimeOptions) -> Self[src]

pub fn state(isolate: &Isolate) -> Rc<RefCell<JsRuntimeState>>[src]

pub fn op_state(&mut self) -> Rc<RefCell<OpState>>[src]

pub fn execute(
    &mut self,
    js_filename: &str,
    js_source: &str
) -> Result<(), ErrBox>
[src]

Executes traditional JavaScript code (traditional = not ES modules)

ErrBox can be downcast to a type that exposes additional information about the V8 exception. By default this type is JsError, however it may be a different type if JsRuntime::set_js_error_create_fn() has been used.

pub fn snapshot(&mut self) -> StartupData[src]

Takes a snapshot. The isolate should have been created with will_snapshot set to true.

ErrBox can be downcast to a type that exposes additional information about the V8 exception. By default this type is JsError, however it may be a different type if JsRuntime::set_js_error_create_fn() has been used.

pub fn register_op<F>(&mut self, name: &str, op_fn: F) -> OpId where
    F: Fn(Rc<RefCell<OpState>>, BufVec) -> Op + 'static, 
[src]

pub fn add_near_heap_limit_callback<C>(&mut self, cb: C) where
    C: FnMut(usize, usize) -> usize + 'static, 
[src]

Registers a callback on the isolate when the memory limits are approached. Use this to prevent V8 from crashing the process when reaching the limit.

Calls the closure with the current heap limit and the initial heap limit. The return value of the closure is set as the new limit.

pub fn remove_near_heap_limit_callback(&mut self, heap_limit: usize)[src]

impl JsRuntime[src]

pub fn mod_evaluate(&mut self, id: ModuleId) -> Result<(), ErrBox>[src]

Evaluates an already instantiated ES module.

ErrBox can be downcast to a type that exposes additional information about the V8 exception. By default this type is JsError, however it may be a different type if JsRuntime::set_js_error_create_fn() has been used.

pub async fn load_module<'_, '_>(
    &'_ mut self,
    specifier: &'_ ModuleSpecifier,
    code: Option<String>
) -> Result<ModuleId, ErrBox>
[src]

Asynchronously load specified module and all of it's dependencies

User must call JsRuntime::mod_evaluate with returned ModuleId manually after load is finished.

Trait Implementations

impl Deref for JsRuntime[src]

type Target = Isolate

The resulting type after dereferencing.

impl DerefMut for JsRuntime[src]

impl Drop for JsRuntime[src]

impl Future for JsRuntime[src]

type Output = Result<(), ErrBox>

The type of value produced on completion.

Auto Trait Implementations

impl !RefUnwindSafe for JsRuntime

impl !Send for JsRuntime

impl !Sync for JsRuntime

impl Unpin for JsRuntime

impl !UnwindSafe for JsRuntime

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<F, T, E> TryFuture for F where
    F: Future<Output = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<Fut> TryFutureExt for Fut where
    Fut: TryFuture + ?Sized
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.