Index: Source/wtf/ArrayBuffer.cpp |
diff --git a/Source/wtf/ArrayBuffer.cpp b/Source/wtf/ArrayBuffer.cpp |
index cfbdc9de1418bca9204a2a7a94e37116d28251ac..ec75b94568500cc00049b64cf555daee6e5df6ab 100644 |
--- a/Source/wtf/ArrayBuffer.cpp |
+++ b/Source/wtf/ArrayBuffer.cpp |
@@ -40,6 +40,13 @@ bool ArrayBuffer::transfer(ArrayBufferContents& result) |
return false; |
} |
+ if (isShared()) { |
+ m_contents.transfer(result); |
+ // Return early to prevent neutering views when transferring |
+ // SharedArrayBuffers. |
+ return true; |
+ } |
+ |
bool allViewsAreNeuterable = true; |
for (ArrayBufferView* i = m_firstView; i; i = i->m_nextView) { |
if (!i->isNeuterable()) |