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
sourceimpl FunctionEnvironmentRecord
impl FunctionEnvironmentRecord
pub fn new(
f: JsObject,
this: Option<JsValue>,
outer: Option<Environment>,
binding_status: BindingStatus,
new_target: JsValue,
context: &mut Context
) -> JsResult<FunctionEnvironmentRecord>
sourcepub fn bind_this_value(
&mut self,
value: JsValue,
context: &mut Context
) -> JsResult<JsValue>
pub fn bind_this_value(
&mut self,
value: JsValue,
context: &mut Context
) -> JsResult<JsValue>
sourcepub fn get_super_base(&self) -> JsValue
pub fn get_super_base(&self) -> JsValue
Trait Implementations
sourceimpl Clone for FunctionEnvironmentRecord
impl Clone for FunctionEnvironmentRecord
sourcefn clone(&self) -> FunctionEnvironmentRecord
fn clone(&self) -> FunctionEnvironmentRecord
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl Debug for FunctionEnvironmentRecord
impl Debug for FunctionEnvironmentRecord
sourceimpl Drop for FunctionEnvironmentRecord
impl Drop for FunctionEnvironmentRecord
sourceimpl EnvironmentRecordTrait for FunctionEnvironmentRecord
impl EnvironmentRecordTrait for FunctionEnvironmentRecord
sourcefn has_this_binding(&self) -> bool
fn has_this_binding(&self) -> bool
sourcefn has_super_binding(&self) -> bool
fn has_super_binding(&self) -> bool
sourcefn get_this_binding(&self, context: &mut Context) -> JsResult<JsValue>
fn get_this_binding(&self, context: &mut Context) -> JsResult<JsValue>
sourcefn has_binding(&self, name: &str, context: &mut Context) -> JsResult<bool>
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. Read more
sourcefn create_mutable_binding(
&self,
name: &str,
deletion: bool,
allow_name_reuse: bool,
context: &mut Context
) -> JsResult<()>
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
sourcefn create_immutable_binding(
&self,
name: &str,
strict: bool,
context: &mut Context
) -> JsResult<()>
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. Read more
sourcefn initialize_binding(
&self,
name: &str,
value: JsValue,
context: &mut Context
) -> JsResult<()>
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. Read more
sourcefn set_mutable_binding(
&self,
name: &str,
value: JsValue,
strict: bool,
context: &mut Context
) -> JsResult<()>
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. Read moresourcefn get_binding_value(
&self,
name: &str,
strict: bool,
context: &mut Context
) -> JsResult<JsValue>
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. Read more
sourcefn delete_binding(&self, name: &str, context: &mut Context) -> JsResult<bool>
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. Read more
sourcefn with_base_object(&self) -> Option<JsObject>
fn with_base_object(&self) -> Option<JsObject>
If this Environment Record is associated with a with statement, return the with object.
Otherwise, return None. Read more
sourcefn get_outer_environment_ref(&self) -> Option<&Environment>
fn get_outer_environment_ref(&self) -> Option<&Environment>
Get the next environment up
sourcefn set_outer_environment(&mut self, env: Environment)
fn set_outer_environment(&mut self, env: Environment)
Set the next environment up
sourcefn get_environment_type(&self) -> EnvironmentType
fn get_environment_type(&self) -> EnvironmentType
Get the type of environment this is
sourcefn recursive_create_mutable_binding(
&self,
name: &str,
deletion: bool,
_scope: VariableScope,
context: &mut Context
) -> JsResult<()>
fn recursive_create_mutable_binding(
&self,
name: &str,
deletion: bool,
_scope: VariableScope,
context: &mut Context
) -> JsResult<()>
Create mutable binding while handling outer environments
sourcefn recursive_create_immutable_binding(
&self,
name: &str,
deletion: bool,
_scope: VariableScope,
context: &mut Context
) -> JsResult<()>
fn recursive_create_immutable_binding(
&self,
name: &str,
deletion: bool,
_scope: VariableScope,
context: &mut Context
) -> JsResult<()>
Create immutable binding while handling outer environments
fn get_outer_environment(&self) -> Option<Environment>
sourcefn recursive_get_this_binding(&self, context: &mut Context) -> JsResult<JsValue>
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 environmentssourcefn recursive_set_mutable_binding(
&self,
name: &str,
value: JsValue,
strict: bool,
context: &mut Context
) -> JsResult<()>
fn recursive_set_mutable_binding(
&self,
name: &str,
value: JsValue,
strict: bool,
context: &mut Context
) -> JsResult<()>
Set mutable binding while handling outer environments
sourcefn recursive_initialize_binding(
&self,
name: &str,
value: JsValue,
context: &mut Context
) -> JsResult<()>
fn recursive_initialize_binding(
&self,
name: &str,
value: JsValue,
context: &mut Context
) -> JsResult<()>
Initialize binding while handling outer environments
sourceimpl Finalize for FunctionEnvironmentRecord
impl Finalize for FunctionEnvironmentRecord
sourceimpl From<FunctionEnvironmentRecord> for Environment
impl From<FunctionEnvironmentRecord> for Environment
sourcefn from(env: FunctionEnvironmentRecord) -> Environment
fn from(env: FunctionEnvironmentRecord) -> Environment
Converts to this type from the input type.
sourceimpl Trace for FunctionEnvironmentRecord
impl Trace for FunctionEnvironmentRecord
sourcefn finalize_glue(&self)
fn finalize_glue(&self)
Runs Finalize::finalize() on this object and all
contained subobjects Read more
Auto Trait Implementations
impl !RefUnwindSafe for FunctionEnvironmentRecord
impl !Send for FunctionEnvironmentRecord
impl !Sync for FunctionEnvironmentRecord
impl Unpin for FunctionEnvironmentRecord
impl !UnwindSafe for FunctionEnvironmentRecord
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more