1
1
#include " node.h"
2
+ #include " env-inl.h"
2
3
3
4
namespace node {
4
5
@@ -15,43 +16,44 @@ AsyncResource::AsyncResource(Isolate* isolate,
15
16
Local<Object> resource,
16
17
const char * name,
17
18
async_id trigger_async_id)
18
- : isolate_( isolate),
19
+ : env_(Environment::GetCurrent( isolate) ),
19
20
resource_ (isolate, resource) {
21
+ CHECK_NOT_NULL (env_);
20
22
async_context_ = EmitAsyncInit (isolate, resource, name,
21
23
trigger_async_id);
22
24
}
23
25
24
26
AsyncResource::~AsyncResource () {
25
- EmitAsyncDestroy (isolate_ , async_context_);
27
+ EmitAsyncDestroy (env_ , async_context_);
26
28
resource_.Reset ();
27
29
}
28
30
29
31
MaybeLocal<Value> AsyncResource::MakeCallback (Local<Function> callback,
30
32
int argc,
31
33
Local<Value>* argv) {
32
- return node::MakeCallback (isolate_ , get_resource (),
34
+ return node::MakeCallback (env_-> isolate () , get_resource (),
33
35
callback, argc, argv,
34
36
async_context_);
35
37
}
36
38
37
39
MaybeLocal<Value> AsyncResource::MakeCallback (const char * method,
38
40
int argc,
39
41
Local<Value>* argv) {
40
- return node::MakeCallback (isolate_ , get_resource (),
42
+ return node::MakeCallback (env_-> isolate () , get_resource (),
41
43
method, argc, argv,
42
44
async_context_);
43
45
}
44
46
45
47
MaybeLocal<Value> AsyncResource::MakeCallback (Local<String> symbol,
46
48
int argc,
47
49
Local<Value>* argv) {
48
- return node::MakeCallback (isolate_ , get_resource (),
50
+ return node::MakeCallback (env_-> isolate () , get_resource (),
49
51
symbol, argc, argv,
50
52
async_context_);
51
53
}
52
54
53
55
Local<Object> AsyncResource::get_resource () {
54
- return resource_.Get (isolate_ );
56
+ return resource_.Get (env_-> isolate () );
55
57
}
56
58
57
59
async_id AsyncResource::get_async_id () const {
@@ -62,9 +64,11 @@ async_id AsyncResource::get_trigger_async_id() const {
62
64
return async_context_.trigger_async_id ;
63
65
}
64
66
67
+ // TODO(addaleax): We shouldn’t need to use env_->isolate() if we’re just going
68
+ // to end up using the Isolate* to figure out the Environment* again.
65
69
AsyncResource::CallbackScope::CallbackScope (AsyncResource* res)
66
- : node::CallbackScope(res->isolate_ ,
67
- res->resource_.Get(res->isolate_ ),
70
+ : node::CallbackScope(res->env_-> isolate () ,
71
+ res->resource_.Get(res->env_-> isolate () ),
68
72
res->async_context_) {}
69
73
70
74
} // namespace node
0 commit comments