summaryrefslogtreecommitdiff
path: root/src/async_wrap.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/async_wrap.cc')
-rw-r--r--src/async_wrap.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/async_wrap.cc b/src/async_wrap.cc
index 8cb30a6f6a..e11ce07681 100644
--- a/src/async_wrap.cc
+++ b/src/async_wrap.cc
@@ -410,13 +410,26 @@ void AsyncWrap::PopAsyncIds(const FunctionCallbackInfo<Value>& args) {
void AsyncWrap::AsyncReset(const FunctionCallbackInfo<Value>& args) {
+ CHECK(args[0]->IsObject());
+
AsyncWrap* wrap;
ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder());
+
+ Local<Object> resource = args[0].As<Object>();
double execution_async_id =
- args[0]->IsNumber() ? args[0].As<Number>()->Value() : kInvalidAsyncId;
- wrap->AsyncReset(execution_async_id);
+ args[1]->IsNumber() ? args[1].As<Number>()->Value() : kInvalidAsyncId;
+ wrap->AsyncReset(resource, execution_async_id);
}
+
+void AsyncWrap::GetProviderType(const FunctionCallbackInfo<Value>& args) {
+ AsyncWrap* wrap;
+ args.GetReturnValue().Set(AsyncWrap::PROVIDER_NONE);
+ ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder());
+ args.GetReturnValue().Set(wrap->provider_type());
+}
+
+
void AsyncWrap::EmitDestroy() {
AsyncWrap::EmitDestroy(env(), async_id_);
// Ensure no double destroy is emitted via AsyncReset().
@@ -437,6 +450,7 @@ Local<FunctionTemplate> AsyncWrap::GetConstructorTemplate(Environment* env) {
tmpl->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "AsyncWrap"));
env->SetProtoMethod(tmpl, "getAsyncId", AsyncWrap::GetAsyncId);
env->SetProtoMethod(tmpl, "asyncReset", AsyncWrap::AsyncReset);
+ env->SetProtoMethod(tmpl, "getProviderType", AsyncWrap::GetProviderType);
env->set_async_wrap_ctor_template(tmpl);
}
return tmpl;