Struct v8::PropertyCallbackArguments
source · [−]pub struct PropertyCallbackArguments<'s> { /* private fields */ }
Implementations
sourceimpl<'s> PropertyCallbackArguments<'s>
impl<'s> PropertyCallbackArguments<'s>
sourcepub fn this(&self) -> Local<'s, Object>
pub fn this(&self) -> Local<'s, Object>
Returns the receiver. In many cases, this is the object on which the
property access was intercepted. When using
Reflect.get
, Function.prototype.call
, or similar functions, it is the
object passed in as receiver or thisArg.
void GetterCallback(Local<Name> name,
const v8::PropertyCallbackInfo<v8::Value>& info) {
auto context = info.GetIsolate()->GetCurrentContext();
v8::Local<v8::Value> a_this =
info.This()
->GetRealNamedProperty(context, v8_str("a"))
.ToLocalChecked();
v8::Local<v8::Value> a_holder =
info.Holder()
->GetRealNamedProperty(context, v8_str("a"))
.ToLocalChecked();
CHECK(v8_str("r")->Equals(context, a_this).FromJust());
CHECK(v8_str("obj")->Equals(context, a_holder).FromJust());
info.GetReturnValue().Set(name);
}
v8::Local<v8::FunctionTemplate> templ =
v8::FunctionTemplate::New(isolate);
templ->InstanceTemplate()->SetHandler(
v8::NamedPropertyHandlerConfiguration(GetterCallback));
LocalContext env;
env->Global()
->Set(env.local(), v8_str("obj"), templ->GetFunction(env.local())
.ToLocalChecked()
->NewInstance(env.local())
.ToLocalChecked())
.FromJust();
CompileRun("obj.a = 'obj'; var r = {a: 'r'}; Reflect.get(obj, 'x', r)");
Trait Implementations
Auto Trait Implementations
impl<'s> RefUnwindSafe for PropertyCallbackArguments<'s>
impl<'s> !Send for PropertyCallbackArguments<'s>
impl<'s> !Sync for PropertyCallbackArguments<'s>
impl<'s> Unpin for PropertyCallbackArguments<'s>
impl<'s> UnwindSafe for PropertyCallbackArguments<'s>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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