[][src]Struct deno_core::EsIsolate

pub struct EsIsolate(_);

More specialized version of CoreIsolate that provides loading and execution of ES Modules.

Creating EsIsolate requires to pass loader argument that implements ModuleLoader trait - that way actual resolution and loading of modules can be customized by the implementor.

Implementations

impl EsIsolate[src]

pub fn new(
    loader: Rc<dyn ModuleLoader>,
    startup_data: StartupData<'_>,
    will_snapshot: bool
) -> Self
[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 CoreIsolate::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 Isolate::mod_evaluate with returned ModuleId manually after load is finished.

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

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

Methods from Deref<Target = CoreIsolate>

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 CoreIsolate::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 CoreIsolate::set_js_error_create_fn() has been used.

pub fn register_op<F>(&mut self, name: &str, op: F) -> OpId where
    F: Fn(&mut CoreIsolateState, &mut [ZeroCopyBuf]) -> Op + 'static, 
[src]

Defines the how Deno.core.dispatch() acts. Called whenever Deno.core.dispatch() is called in JavaScript. zero_copy_buf corresponds to the second argument of Deno.core.dispatch().

Requires runtime to explicitly ask for op ids before using any of the ops.

pub fn register_op_json_sync<F>(&mut self, name: &str, op: F) -> OpId where
    F: 'static + Fn(&mut CoreIsolateState, Value, &mut [ZeroCopyBuf]) -> Result<Value, ErrBox>, 
[src]

pub fn register_op_json_async<F, Fut>(&mut self, name: &str, op: F) -> OpId where
    Fut: 'static + Future<Output = Result<Value, ErrBox>>,
    F: 'static + Fn(&mut CoreIsolateState, Value, &mut [ZeroCopyBuf]) -> Fut, 
[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]

Trait Implementations

impl Deref for EsIsolate[src]

type Target = CoreIsolate

The resulting type after dereferencing.

impl DerefMut for EsIsolate[src]

impl Future for EsIsolate[src]

type Output = Result<(), ErrBox>

The type of value produced on completion.

Auto Trait Implementations

impl !RefUnwindSafe for EsIsolate

impl !Send for EsIsolate

impl !Sync for EsIsolate

impl Unpin for EsIsolate

impl !UnwindSafe for EsIsolate

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.