| Index: Source/modules/webaudio/AudioContext.cpp
 | 
| diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp
 | 
| index 8e158420c3968f859fb1c0f0f9f52045cba40eaf..ad5a05e1900dfffc69d9801c7c8c4beff010bbc7 100644
 | 
| --- a/Source/modules/webaudio/AudioContext.cpp
 | 
| +++ b/Source/modules/webaudio/AudioContext.cpp
 | 
| @@ -628,7 +628,7 @@ ScriptPromise AudioContext::suspendContext(ScriptState* scriptState)
 | 
|                  "cannot suspend an OfflineAudioContext"));
 | 
|      }
 | 
|  
 | 
| -    RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
 | 
| +    RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
 | 
|      ScriptPromise promise = resolver->promise();
 | 
|  
 | 
|      // Save the resolver which will get resolved at the end of the rendering quantum.
 | 
| @@ -650,7 +650,7 @@ ScriptPromise AudioContext::resumeContext(ScriptState* scriptState)
 | 
|                  "cannot resume an OfflineAudioContext"));
 | 
|      }
 | 
|  
 | 
| -    RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
 | 
| +    RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
 | 
|      ScriptPromise promise = resolver->promise();
 | 
|  
 | 
|      // Restart the destination node to pull on the audio graph.
 | 
| @@ -952,7 +952,7 @@ void AudioContext::resolvePromisesForResumeOnMainThread()
 | 
|      ASSERT(isMainThread());
 | 
|      AutoLocker locker(this);
 | 
|  
 | 
| -    for (RefPtr<ScriptPromiseResolver> resolver : m_resumeResolvers) {
 | 
| +    for (auto& resolver : m_resumeResolvers) {
 | 
|          if (m_contextState == Closed) {
 | 
|              resolver->reject(
 | 
|                  DOMException::create(InvalidStateError, "Cannot resume a context that has been closed"));
 | 
| @@ -989,7 +989,7 @@ void AudioContext::resolvePromisesForSuspendOnMainThread()
 | 
|      if (m_destinationNode)
 | 
|          stopRendering();
 | 
|  
 | 
| -    for (RefPtr<ScriptPromiseResolver> resolver : m_suspendResolvers) {
 | 
| +    for (auto& resolver : m_suspendResolvers) {
 | 
|          if (m_contextState == Closed) {
 | 
|              resolver->reject(
 | 
|                  DOMException::create(InvalidStateError, "Cannot suspend a context that has been closed"));
 | 
| @@ -1020,12 +1020,12 @@ void AudioContext::rejectPendingResolvers()
 | 
|      // Audio context is closing down so reject any suspend or resume promises that are still
 | 
|      // pending.
 | 
|  
 | 
| -    for (RefPtr<ScriptPromiseResolver> resolver : m_suspendResolvers) {
 | 
| +    for (auto& resolver : m_suspendResolvers) {
 | 
|          resolver->reject(DOMException::create(InvalidStateError, "Audio context is going away"));
 | 
|      }
 | 
|      m_suspendResolvers.clear();
 | 
|  
 | 
| -    for (RefPtr<ScriptPromiseResolver> resolver : m_resumeResolvers) {
 | 
| +    for (auto& resolver : m_resumeResolvers) {
 | 
|          resolver->reject(DOMException::create(InvalidStateError, "Audio context is going away"));
 | 
|      }
 | 
|      m_resumeResolvers.clear();
 | 
| @@ -1100,6 +1100,8 @@ void AudioContext::trace(Visitor* visitor)
 | 
|      } else {
 | 
|          visitor->trace(m_referencedNodes);
 | 
|      }
 | 
| +    visitor->trace(m_resumeResolvers);
 | 
| +    visitor->trace(m_suspendResolvers);
 | 
|      visitor->trace(m_liveNodes);
 | 
|      visitor->trace(m_liveAudioSummingJunctions);
 | 
|      EventTargetWithInlineData::trace(visitor);
 | 
| 
 |