parent
9480aab0d3
commit
8fce4f1e0c
@ -5487,6 +5487,7 @@ MaybeLocal<Function> Function::Bind(v8::Local<v8::Object> that,
|
|||||||
i::Handle<i::JSReceiver> self;
|
i::Handle<i::JSReceiver> self;
|
||||||
i::Handle<i::Object> that_obj;
|
i::Handle<i::Object> that_obj;
|
||||||
v8::Isolate* isolate = this->GetIsolate();
|
v8::Isolate* isolate = this->GetIsolate();
|
||||||
|
i::MaybeHandle<i::JSBoundFunction> bound_function;
|
||||||
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
|
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
|
||||||
|
|
||||||
if (that.IsEmpty()) {
|
if (that.IsEmpty()) {
|
||||||
@ -5505,18 +5506,24 @@ MaybeLocal<Function> Function::Bind(v8::Local<v8::Object> that,
|
|||||||
self = Utils::OpenHandle(this);
|
self = Utils::OpenHandle(this);
|
||||||
|
|
||||||
// derive a base vector of internal object handles by unwrapping an optional v8::Array
|
// derive a base vector of internal object handles by unwrapping an optional v8::Array
|
||||||
base::ScopedVector<i::Handle<i::Object>> argv(bound_args.IsEmpty() ? 0 : bound_args->Length());
|
if (!bound_args.IsEmpty() && bound_args->Length()) {
|
||||||
if (!bound_args.IsEmpty()) {
|
base::ScopedVector<i::Handle<i::Object>> argv(
|
||||||
for (int i = 0; i < bound_args->Length(); ++i) {
|
bound_args.IsEmpty() ? 0 : bound_args->Length());
|
||||||
MaybeLocal<Value> arg = bound_args->Get(isolate->GetCurrentContext(), i);
|
if (!bound_args.IsEmpty()) {
|
||||||
CHECK(!arg.IsEmpty());
|
for (int i = 0; i < bound_args->Length(); ++i) {
|
||||||
argv[i] = Utils::OpenHandle(*arg.ToLocalChecked());
|
MaybeLocal<Value> arg =
|
||||||
|
bound_args->Get(isolate->GetCurrentContext(), i);
|
||||||
|
CHECK(!arg.IsEmpty());
|
||||||
|
argv[i] = Utils::OpenHandle(*arg.ToLocalChecked());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
bound_function =
|
||||||
|
i_isolate->factory()->NewJSBoundFunction(self, that_obj, argv);
|
||||||
|
} else {
|
||||||
|
bound_function =
|
||||||
|
i_isolate->factory()->NewJSBoundFunction(self, that_obj, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
i::MaybeHandle<i::JSBoundFunction> bound_function =
|
|
||||||
i_isolate->factory()->NewJSBoundFunction(self, that_obj, argv);
|
|
||||||
|
|
||||||
if (bound_function.is_null()) {
|
if (bound_function.is_null()) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user