| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 11a0ef5 commit e208282
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -166,19 +166,25 @@ static void DestroyAsyncIdsCallback(void* arg) { | |||
| 166 | 166 | } | |
| 167 | 167 | ||
| 168 | 168 | ||
| 169 | - void AsyncWrap::EmitPromiseResolve(Environment* env, double async_id) { | ||
| 169 | + void Emit(Environment* env, double async_id, AsyncHooks::Fields type, | ||
| 170 | + Local<Function> fn) { | ||
| 170 | 171 | AsyncHooks* async_hooks = env->async_hooks(); | |
| 171 | 172 | ||
| 172 | - if (async_hooks->fields()[AsyncHooks::kPromiseResolve] == 0) | ||
| 173 | + if (async_hooks->fields()[type] == 0) | ||
| 173 | 174 | return; | |
| 174 | 175 | ||
| 175 | 176 | Local<Value> async_id_value = Number::New(env->isolate(), async_id); | |
| 176 | - Local<Function> fn = env->async_hooks_promise_resolve_function(); | ||
| 177 | 177 | FatalTryCatch try_catch(env); | |
| 178 | 178 | USE(fn->Call(env->context(), Undefined(env->isolate()), 1, &async_id_value)); | |
| 179 | 179 | } | |
| 180 | 180 | ||
| 181 | 181 | ||
| 182 | + void AsyncWrap::EmitPromiseResolve(Environment* env, double async_id) { | ||
| 183 | + Emit(env, async_id, AsyncHooks::kPromiseResolve, | ||
| 184 | + env->async_hooks_promise_resolve_function()); | ||
| 185 | + } | ||
| 186 | + | ||
| 187 | + | ||
| 182 | 188 | void AsyncWrap::EmitTraceEventBefore() { | |
| 183 | 189 | switch (provider_type()) { | |
| 184 | 190 | #define V(PROVIDER) \ | |
@@ -195,15 +201,8 @@ void AsyncWrap::EmitTraceEventBefore() { | |||
| 195 | 201 | ||
| 196 | 202 | ||
| 197 | 203 | void AsyncWrap::EmitBefore(Environment* env, double async_id) { | |
| 198 | - AsyncHooks* async_hooks = env->async_hooks(); | ||
| 199 | - | ||
| 200 | - if (async_hooks->fields()[AsyncHooks::kBefore] == 0) | ||
| 201 | - return; | ||
| 202 | - | ||
| 203 | - Local<Value> async_id_value = Number::New(env->isolate(), async_id); | ||
| 204 | - Local<Function> fn = env->async_hooks_before_function(); | ||
| 205 | - FatalTryCatch try_catch(env); | ||
| 206 | - USE(fn->Call(env->context(), Undefined(env->isolate()), 1, &async_id_value)); | ||
| 204 | + Emit(env, async_id, AsyncHooks::kBefore, | ||
| 205 | + env->async_hooks_before_function()); | ||
| 207 | 206 | } | |
| 208 | 207 | ||
| 209 | 208 | ||
@@ -223,17 +222,10 @@ void AsyncWrap::EmitTraceEventAfter() { | |||
| 223 | 222 | ||
| 224 | 223 | ||
| 225 | 224 | void AsyncWrap::EmitAfter(Environment* env, double async_id) { | |
| 226 | - AsyncHooks* async_hooks = env->async_hooks(); | ||
| 227 | - | ||
| 228 | - if (async_hooks->fields()[AsyncHooks::kAfter] == 0) | ||
| 229 | - return; | ||
| 230 | - | ||
| 231 | 225 | // If the user's callback failed then the after() hooks will be called at the | |
| 232 | 226 | // end of _fatalException(). | |
| 233 | - Local<Value> async_id_value = Number::New(env->isolate(), async_id); | ||
| 234 | - Local<Function> fn = env->async_hooks_after_function(); | ||
| 235 | - FatalTryCatch try_catch(env); | ||
| 236 | - USE(fn->Call(env->context(), Undefined(env->isolate()), 1, &async_id_value)); | ||
| 227 | + Emit(env, async_id, AsyncHooks::kAfter, | ||
| 228 | + env->async_hooks_after_function()); | ||
| 237 | 229 | } | |
| 238 | 230 | ||
| 239 | 231 | class PromiseWrap : public AsyncWrap { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments