| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index 6d59ad4499911aacf4f4cae59ce4e00909040f41..73c15a4e1e04c56e172210b786b844893853d48b 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -1930,11 +1930,18 @@ bool InternalPromiseHasUserDefinedRejectHandler(Isolate* isolate,
|
| Handle<FixedArray> deferred_promise_arr =
|
| Handle<FixedArray>::cast(deferred_promise);
|
| for (int i = 0; i < deferred_promise_arr->length(); i++) {
|
| - Handle<JSReceiver> queue_item(JSReceiver::cast(queue_arr->get(i)));
|
| Handle<JSReceiver> deferred_promise_item(
|
| JSReceiver::cast(deferred_promise_arr->get(i)));
|
| - if (PromiseHandlerCheck(isolate, queue_item, deferred_promise_item)) {
|
| - return true;
|
| + if (queue_arr->get(i)->IsSymbol()) {
|
| + if (InternalPromiseHasUserDefinedRejectHandler(
|
| + isolate, Handle<JSPromise>::cast(deferred_promise_item))) {
|
| + return true;
|
| + }
|
| + } else {
|
| + Handle<JSReceiver> queue_item(JSReceiver::cast(queue_arr->get(i)));
|
| + if (PromiseHandlerCheck(isolate, queue_item, deferred_promise_item)) {
|
| + return true;
|
| + }
|
| }
|
| }
|
|
|
|
|