| Index: third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp b/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp
|
| index e88c277eb7a4b4a7eebe4782af8811efe5afd822..f62c1e4e7f3ec0b8230ce6b81feaade3d033c0f3 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp
|
| @@ -227,25 +227,32 @@ void RejectedPromises::handlerAdded(v8::PromiseRejectMessage data)
|
| }
|
| }
|
|
|
| +PassOwnPtrWillBeRawPtr<RejectedPromises::MessageQueue> RejectedPromises::createMessageQueue()
|
| +{
|
| + return adoptPtrWillBeNoop(new MessageQueue());
|
| +}
|
| +
|
| void RejectedPromises::dispose()
|
| {
|
| - if (!m_queue.isEmpty()) {
|
| - OwnPtrWillBeRawPtr<WillBeHeapDeque<OwnPtrWillBeMember<Message>>> queue = adoptPtr(new WillBeHeapDeque<OwnPtrWillBeMember<Message>>());
|
| - queue->swap(m_queue);
|
| - processQueueNow(queue.release());
|
| - }
|
| + if (m_queue.isEmpty())
|
| + return;
|
| +
|
| + OwnPtrWillBeRawPtr<MessageQueue> queue = createMessageQueue();
|
| + queue->swap(m_queue);
|
| + processQueueNow(queue.release());
|
| }
|
|
|
| void RejectedPromises::processQueue()
|
| {
|
| if (m_queue.isEmpty())
|
| return;
|
| - OwnPtrWillBeRawPtr<WillBeHeapDeque<OwnPtrWillBeMember<Message>>> queue = adoptPtr(new WillBeHeapDeque<OwnPtrWillBeMember<Message>>());
|
| +
|
| + OwnPtrWillBeRawPtr<MessageQueue> queue = createMessageQueue();
|
| queue->swap(m_queue);
|
| Platform::current()->currentThread()->scheduler()->timerTaskRunner()->postTask(FROM_HERE, new Task(bind(&RejectedPromises::processQueueNow, this, queue.release())));
|
| }
|
|
|
| -void RejectedPromises::processQueueNow(PassOwnPtrWillBeRawPtr<WillBeHeapDeque<OwnPtrWillBeMember<Message>>> queue)
|
| +void RejectedPromises::processQueueNow(PassOwnPtrWillBeRawPtr<MessageQueue> queue)
|
| {
|
| // Remove collected handlers.
|
| for (size_t i = 0; i < m_reportedAsErrors.size();) {
|
|
|