| Index: src/runtime/runtime-promise.cc
|
| diff --git a/src/runtime/runtime-promise.cc b/src/runtime/runtime-promise.cc
|
| index f609df73fd6e7864266e54e640291a14ecefaca2..47332544a5949427a71bffd2502b0add0ac19be1 100644
|
| --- a/src/runtime/runtime-promise.cc
|
| +++ b/src/runtime/runtime-promise.cc
|
| @@ -69,8 +69,8 @@ void EnqueuePromiseReactionJob(Isolate* isolate, Handle<JSPromise> promise,
|
| if (deferred->IsFixedArray()) {
|
| deferred_obj = isolate->factory()->undefined_value();
|
| }
|
| -
|
| - Handle<Object> argv[] = {deferred_obj, status};
|
| + Handle<Object> argv[] = {deferred_obj, status,
|
| + isolate->debug()->NextAsyncTaskId(promise)};
|
| maybe_result = Execution::TryCall(
|
| isolate, isolate->promise_debug_get_info(),
|
| isolate->factory()->undefined_value(), arraysize(argv), argv);
|
| @@ -104,6 +104,14 @@ void PromiseSet(Isolate* isolate, Handle<JSPromise> promise, int status,
|
|
|
| void PromiseFulfill(Isolate* isolate, Handle<JSPromise> promise,
|
| Handle<Smi> status, Handle<Object> value) {
|
| + if (isolate->debug()->is_active()) {
|
| + isolate->debug()->OnAsyncTaskEvent(
|
| + debug::EnqueueRecurring, isolate->debug()->NextAsyncTaskId(promise),
|
| + status->value() == kPromiseFulfilled
|
| + ? isolate->factory()->PromiseResolve_string()
|
| + : isolate->factory()->PromiseReject_string());
|
| + }
|
| +
|
| // Check if there are any callbacks.
|
| if (!promise->deferred()->IsUndefined(isolate)) {
|
| Handle<Object> tasks((status->value() == kPromiseFulfilled)
|
| @@ -171,12 +179,8 @@ RUNTIME_FUNCTION(Runtime_EnqueuePromiseResolveThenableJob) {
|
|
|
| Handle<Object> debug_id, debug_name;
|
| if (isolate->debug()->is_active()) {
|
| - debug_id =
|
| - handle(Smi::FromInt(isolate->GetNextDebugMicrotaskId()), isolate);
|
| + debug_id = isolate->debug()->NextAsyncTaskId(promise);
|
| debug_name = isolate->factory()->PromiseResolveThenableJob_string();
|
| - isolate->debug()->OnAsyncTaskEvent(isolate->factory()->enqueue_string(),
|
| - debug_id,
|
| - Handle<String>::cast(debug_name));
|
| } else {
|
| debug_id = isolate->factory()->undefined_value();
|
| debug_name = isolate->factory()->undefined_value();
|
|
|