FunctionEnvironmentRecord

Struct FunctionEnvironmentRecord 

Source
pub struct FunctionEnvironmentRecord {
    pub declarative_record: DeclarativeEnvironmentRecord,
    pub this_value: JsValue,
    pub this_binding_status: BindingStatus,
    pub function: JsObject,
    pub home_object: JsValue,
    pub new_target: JsValue,
}
Expand description

Fields§

§declarative_record: DeclarativeEnvironmentRecord§this_value: JsValue

This is the this value used for this invocation of the function.

§this_binding_status: BindingStatus

If the value is “lexical”, this is an ArrowFunction and does not have a local this value.

§function: JsObject

The function object whose invocation caused this Environment Record to be created.

§home_object: JsValue

If the associated function has super property accesses and is not an ArrowFunction, [[HomeObject]] is the object that the function is bound to as a method. The default value for [[HomeObject]] is undefined.

§new_target: JsValue

If this Environment Record was created by the [[Construct]] internal method, [[NewTarget]] is the value of the [[Construct]] newTarget parameter. Otherwise, its value is undefined.

Implementations§

Source§

impl FunctionEnvironmentRecord

Source

pub fn new( f: JsObject, this: Option<JsValue>, outer: Option<Environment>, binding_status: BindingStatus, new_target: JsValue, context: &mut Context, ) -> JsResult<FunctionEnvironmentRecord>

Source

pub fn bind_this_value( &mut self, value: JsValue, context: &mut Context, ) -> JsResult<JsValue>

9.1.1.3.1 BindThisValue ( V )

More information:

Source

pub fn get_super_base(&self) -> JsValue

9.1.1.3.5 GetSuperBase ( )

More information:

Trait Implementations§

Source§

impl Clone for FunctionEnvironmentRecord

Source§

fn clone(&self) -> FunctionEnvironmentRecord

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FunctionEnvironmentRecord

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for FunctionEnvironmentRecord

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl EnvironmentRecordTrait for FunctionEnvironmentRecord

Source§

fn has_this_binding(&self) -> bool

9.1.1.3.2 HasThisBinding ( )

More information:

Source§

fn has_super_binding(&self) -> bool

9.1.1.3.3 HasSuperBinding ( )

More information:

Source§

fn get_this_binding(&self, context: &mut Context) -> JsResult<JsValue>

9.1.1.3.4 GetThisBinding ( )

More information:

Source§

fn has_binding(&self, name: &str, context: &mut Context) -> JsResult<bool>

Determine if an Environment Record has a binding for the String value N. Return true if it does and false if it does not.
Source§

fn create_mutable_binding( &self, name: &str, deletion: bool, allow_name_reuse: bool, context: &mut Context, ) -> JsResult<()>

Create a new but uninitialized mutable binding in an Environment Record. The String value N is the text of the bound name. If the Boolean argument deletion is true the binding may be subsequently deleted. Read more
Source§

fn create_immutable_binding( &self, name: &str, strict: bool, context: &mut Context, ) -> JsResult<()>

Create a new but uninitialized immutable binding in an Environment Record. The String value N is the text of the bound name. If strict is true then attempts to set it after it has been initialized will always throw an exception, regardless of the strict mode setting of operations that reference that binding.
Source§

fn initialize_binding( &self, name: &str, value: JsValue, context: &mut Context, ) -> JsResult<()>

Set the value of an already existing but uninitialized binding in an Environment Record. The String value N is the text of the bound name. V is the value for the binding and is a value of any ECMAScript language type.
Source§

fn set_mutable_binding( &self, name: &str, value: JsValue, strict: bool, context: &mut Context, ) -> JsResult<()>

Set the value of an already existing mutable binding in an Environment Record. The String value name is the text of the bound name. value is the value for the binding and may be a value of any ECMAScript language type. S is a Boolean flag. If strict is true and the binding cannot be set throw a TypeError exception.
Source§

fn get_binding_value( &self, name: &str, strict: bool, context: &mut Context, ) -> JsResult<JsValue>

Returns the value of an already existing binding from an Environment Record. The String value N is the text of the bound name. S is used to identify references originating in strict mode code or that otherwise require strict mode reference semantics.
Source§

fn delete_binding(&self, name: &str, context: &mut Context) -> JsResult<bool>

Delete a binding from an Environment Record. The String value name is the text of the bound name. If a binding for name exists, remove the binding and return true. If the binding exists but cannot be removed return false. If the binding does not exist return true.
Source§

fn with_base_object(&self) -> Option<JsObject>

If this Environment Record is associated with a with statement, return the with object. Otherwise, return None.
Source§

fn get_outer_environment_ref(&self) -> Option<&Environment>

Get the next environment up
Source§

fn set_outer_environment(&mut self, env: Environment)

Set the next environment up
Source§

fn get_environment_type(&self) -> EnvironmentType

Get the type of environment this is
Source§

fn recursive_create_mutable_binding( &self, name: &str, deletion: bool, _scope: VariableScope, context: &mut Context, ) -> JsResult<()>

Create mutable binding while handling outer environments
Source§

fn recursive_create_immutable_binding( &self, name: &str, deletion: bool, _scope: VariableScope, context: &mut Context, ) -> JsResult<()>

Create immutable binding while handling outer environments
Source§

fn get_outer_environment(&self) -> Option<Environment>

Source§

fn recursive_get_this_binding(&self, context: &mut Context) -> JsResult<JsValue>

Return the this binding from the environment or try to get it from outer environments
Source§

fn recursive_set_mutable_binding( &self, name: &str, value: JsValue, strict: bool, context: &mut Context, ) -> JsResult<()>

Set mutable binding while handling outer environments
Source§

fn recursive_initialize_binding( &self, name: &str, value: JsValue, context: &mut Context, ) -> JsResult<()>

Initialize binding while handling outer environments
Source§

fn recursive_has_binding( &self, name: &str, context: &mut Context, ) -> JsResult<bool>

Check if a binding exists in current or any outer environment
Source§

fn recursive_get_binding_value( &self, name: &str, context: &mut Context, ) -> JsResult<JsValue>

Retrieve binding from current or any outer environment
Source§

impl Finalize for FunctionEnvironmentRecord

Source§

impl From<FunctionEnvironmentRecord> for Environment

Source§

fn from(env: FunctionEnvironmentRecord) -> Environment

Converts to this type from the input type.
Source§

impl Trace for FunctionEnvironmentRecord

Source§

unsafe fn trace(&self)

Marks all contained Gcs.
Source§

unsafe fn root(&self)

Increments the root-count of all contained Gcs.
Source§

unsafe fn unroot(&self)

Decrements the root-count of all contained Gcs.
Source§

fn finalize_glue(&self)

Runs Finalize::finalize() on this object and all contained subobjects

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> NativeObject for T
where T: Any + Debug + Trace,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert the Rust type which implements NativeObject to a &dyn Any.
Source§

fn as_mut_any(&mut self) -> &mut (dyn Any + 'static)

Convert the Rust type which implements NativeObject to a &mut dyn Any.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V