| Index: src/js/promise.js
|
| diff --git a/src/js/promise.js b/src/js/promise.js
|
| index c057238af696d78416a6198b3c0f68dabb8c31c1..14af0f5196e015b8dacd983f26c4a188cf874f23 100644
|
| --- a/src/js/promise.js
|
| +++ b/src/js/promise.js
|
| @@ -279,30 +279,29 @@ function ResolvePromise(promise, resolution) {
|
| }
|
|
|
| if (IS_CALLABLE(then)) {
|
| - // PromiseResolveThenableJob
|
| - var id;
|
| - var name = "PromiseResolveThenableJob";
|
| - var instrumenting = DEBUG_IS_ACTIVE;
|
| - %EnqueueMicrotask(function() {
|
| - if (instrumenting) {
|
| - %DebugAsyncTaskEvent({ type: "willHandle", id: id, name: name });
|
| - }
|
| - // These resolving functions simply forward the exception, so
|
| - // don't create a new debugEvent.
|
| - var callbacks = CreateResolvingFunctions(promise, false);
|
| - try {
|
| - %_Call(then, resolution, callbacks.resolve, callbacks.reject);
|
| - } catch (e) {
|
| - %_Call(callbacks.reject, UNDEFINED, e);
|
| - }
|
| - if (instrumenting) {
|
| - %DebugAsyncTaskEvent({ type: "didHandle", id: id, name: name });
|
| - }
|
| - });
|
| - if (instrumenting) {
|
| + var callbacks = CreateResolvingFunctions(promise, false);
|
| + var id, before_debug_event, after_debug_event;
|
| + if (DEBUG_IS_ACTIVE) {
|
| id = ++lastMicrotaskId;
|
| - %DebugAsyncTaskEvent({ type: "enqueue", id: id, name: name });
|
| + before_debug_event = {
|
| + type: "willHandle",
|
| + id: id,
|
| + name: "PromiseResolveThenableJob"
|
| + };
|
| + after_debug_event = {
|
| + type: "didHandle",
|
| + id: id,
|
| + name: "PromiseResolveThenableJob"
|
| + };
|
| + %DebugAsyncTaskEvent({
|
| + type: "enqueue",
|
| + id: id,
|
| + name: "PromiseResolveThenableJob"
|
| + });
|
| }
|
| + %EnqueuePromiseResolveThenableJob(
|
| + promise, resolution, then, callbacks.resolve,
|
| + callbacks.reject, before_debug_event, after_debug_event);
|
| return;
|
| }
|
| }
|
| @@ -610,7 +609,7 @@ utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [
|
| "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler,
|
| "promise_reject", DoRejectPromise,
|
| "promise_resolve", ResolvePromise,
|
| - "promise_then", PromiseThen,
|
| + "promise_then", PromiseThen
|
| ]);
|
|
|
| // This allows extras to create promises quickly without building extra
|
|
|