Chromium Code Reviews| Index: src/runtime/runtime-promise.cc |
| diff --git a/src/runtime/runtime-promise.cc b/src/runtime/runtime-promise.cc |
| index 6fbf4742c0868bbd95caff1d08454132bf1af32e..14667114ba9cedbd546c82ee7810859f8f2d8adf 100644 |
| --- a/src/runtime/runtime-promise.cc |
| +++ b/src/runtime/runtime-promise.cc |
| @@ -110,15 +110,15 @@ bool GetDebugIdForAsyncFunction(Isolate* isolate, |
| return true; |
| } |
| -void SetDebugInfo(Isolate* isolate, Handle<PromiseReactionJobInfo> info, |
| - int status) { |
| +void SetDebugInfo(Isolate* isolate, Handle<JSPromise> promise, |
| + Handle<PromiseReactionJobInfo> info, int status) { |
| int id; |
| PromiseDebugActionName name; |
| if (GetDebugIdForAsyncFunction(isolate, info, &id)) { |
| name = kDebugAsyncFunction; |
| } else { |
| - id = isolate->debug()->NextAsyncTaskId(handle(info->promise(), isolate)); |
| + id = isolate->debug()->NextAsyncTaskId(promise); |
| DCHECK(status != v8::Promise::kPending); |
| name = status == v8::Promise::kFulfilled ? kDebugPromiseResolve |
| : kDebugPromiseReject; |
| @@ -128,11 +128,11 @@ void SetDebugInfo(Isolate* isolate, Handle<PromiseReactionJobInfo> info, |
| info->set_debug_name(name); |
| } |
| -void EnqueuePromiseReactionJob(Isolate* isolate, |
| +void EnqueuePromiseReactionJob(Isolate* isolate, Handle<JSPromise> promise, |
| Handle<PromiseReactionJobInfo> info, |
| int status) { |
| if (isolate->debug()->is_active()) { |
| - SetDebugInfo(isolate, info, status); |
| + SetDebugInfo(isolate, promise, info, status); |
| } |
| isolate->EnqueueMicrotask(info); |
| @@ -166,11 +166,11 @@ void PromiseFulfill(Isolate* isolate, Handle<JSPromise> promise, int status, |
| isolate); |
| Handle<PromiseReactionJobInfo> info = |
| isolate->factory()->NewPromiseReactionJobInfo( |
| - promise, value, tasks, handle(promise->deferred_promise(), isolate), |
| + value, tasks, handle(promise->deferred_promise(), isolate), |
| handle(promise->deferred_on_resolve(), isolate), |
| handle(promise->deferred_on_reject(), isolate), |
| isolate->native_context()); |
| - EnqueuePromiseReactionJob(isolate, info, status); |
| + EnqueuePromiseReactionJob(isolate, promise, info, status); |
| } |
| PromiseSet(isolate, promise, status, value); |
| @@ -193,10 +193,11 @@ RUNTIME_FUNCTION(Runtime_PromiseReject) { |
| RUNTIME_FUNCTION(Runtime_EnqueuePromiseReactionJob) { |
| HandleScope scope(isolate); |
| - DCHECK_EQ(2, args.length()); |
| - CONVERT_ARG_HANDLE_CHECKED(PromiseReactionJobInfo, info, 0); |
| - CONVERT_SMI_ARG_CHECKED(status, 1); |
| - EnqueuePromiseReactionJob(isolate, info, status); |
| + DCHECK_EQ(3, args.length()); |
|
adamk
2017/01/12 18:24:27
I think you also need to update runtime.h
gsathya
2017/01/12 19:21:47
That was always wrong, now it's correct /o\
adamk
2017/01/12 19:42:01
Hmm, I guess the length in the .h file is only use
|
| + CONVERT_ARG_HANDLE_CHECKED(JSPromise, promise, 0); |
| + CONVERT_ARG_HANDLE_CHECKED(PromiseReactionJobInfo, info, 1); |
| + CONVERT_SMI_ARG_CHECKED(status, 2); |
| + EnqueuePromiseReactionJob(isolate, promise, info, status); |
| return isolate->heap()->undefined_value(); |
| } |