[JSC] Array.prototype.reverse modifies JSImmutableButterfly
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog
index 4dcf16a4470fb9a46f998e5a3d8cbceb3dd4171e..2d2ac0bfa067180707e0a5bb5aae74ef2eb3ae60 100644 (file)
@@ -1,3 +1,20 @@
+2018-08-24  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
+
+        [JSC] Array.prototype.reverse modifies JSImmutableButterfly
+        https://bugs.webkit.org/show_bug.cgi?id=188794
+
+        Reviewed by Saam Barati.
+
+        While Array.prototype.reverse modifies the butterfly of the given Array,
+        it does not account JSImmutableButterfly case. So it accidentally modifies
+        the content of JSImmutableButterfly.
+        This patch converts CoW arrays to writable arrays before reversing.
+
+        * runtime/ArrayPrototype.cpp:
+        (JSC::arrayProtoFuncReverse):
+        * runtime/JSObject.h:
+        (JSC::JSObject::ensureWritable):
+
 2018-08-24  Michael Saboff  <msaboff@apple.com>
 
         YARR: Update UCS canonicalization tables for Unicode 11
 2018-08-24  Michael Saboff  <msaboff@apple.com>
 
         YARR: Update UCS canonicalization tables for Unicode 11