Title: [233065] trunk/Source/_javascript_Core
Revision
233065
Author
[email protected]
Date
2018-06-21 15:57:09 -0700 (Thu, 21 Jun 2018)

Log Message

Do some CoW cleanup
https://bugs.webkit.org/show_bug.cgi?id=186896

Reviewed by Mark Lam.

* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::decompressArrayAllocationProfile):
We don't need to WTFMove() ints

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
remove a TODO.

* runtime/JSObject.cpp:
(JSC::JSObject::putByIndex):
We were checking for isCopyOnWrite even after we converted away
from CoW in above code.
(JSC::JSObject::ensureWritableInt32Slow):
Model this in the same way the other ensureWritableXSlow are modeled.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (233064 => 233065)


--- trunk/Source/_javascript_Core/ChangeLog	2018-06-21 22:51:00 UTC (rev 233064)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-06-21 22:57:09 UTC (rev 233065)
@@ -1,3 +1,25 @@
+2018-06-21  Saam Barati  <[email protected]>
+
+        Do some CoW cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=186896
+
+        Reviewed by Mark Lam.
+
+        * bytecode/UnlinkedCodeBlock.h:
+        (JSC::UnlinkedCodeBlock::decompressArrayAllocationProfile):
+        We don't need to WTFMove() ints
+
+        * dfg/DFGByteCodeParser.cpp:
+        (JSC::DFG::ByteCodeParser::parseBlock):
+        remove a TODO.
+
+        * runtime/JSObject.cpp:
+        (JSC::JSObject::putByIndex):
+        We were checking for isCopyOnWrite even after we converted away
+        from CoW in above code.
+        (JSC::JSObject::ensureWritableInt32Slow):
+        Model this in the same way the other ensureWritableXSlow are modeled.
+
 2018-06-20  Keith Miller  <[email protected]>
 
         flattenDictionaryStruture needs to zero inline storage.

Modified: trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h (233064 => 233065)


--- trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h	2018-06-21 22:51:00 UTC (rev 233064)
+++ trunk/Source/_javascript_Core/bytecode/UnlinkedCodeBlock.h	2018-06-21 22:57:09 UTC (rev 233065)
@@ -309,7 +309,7 @@
     {
         unsigned profile = "" << 8) >> 8;
         IndexingType recommendedIndexingType = compressedProfile >> 24;
-        return std::make_tuple<unsigned, IndexingType>(WTFMove(profile), WTFMove(recommendedIndexingType));
+        return { profile, recommendedIndexingType };
 
     }
     unsigned numberOfObjectAllocationProfiles() { return m_objectAllocationProfileCount; }

Modified: trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp (233064 => 233065)


--- trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2018-06-21 22:51:00 UTC (rev 233064)
+++ trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2018-06-21 22:57:09 UTC (rev 233065)
@@ -4595,7 +4595,6 @@
             JSImmutableButterfly* immutableButterfly = frozen->cast<JSImmutableButterfly*>();
             NewArrayBufferData data { };
             data.indexingMode = immutableButterfly->indexingMode();
-            // TODO: Do I need this?
             data.vectorLengthHint = immutableButterfly->toButterfly()->vectorLength();
 
             set(VirtualRegister(bytecode.dst()), addToGraph(NewArrayBuffer, OpInfo(frozen), OpInfo(data.asQuadWord)));

Modified: trunk/Source/_javascript_Core/runtime/JSObject.cpp (233064 => 233065)


--- trunk/Source/_javascript_Core/runtime/JSObject.cpp	2018-06-21 22:51:00 UTC (rev 233064)
+++ trunk/Source/_javascript_Core/runtime/JSObject.cpp	2018-06-21 22:57:09 UTC (rev 233065)
@@ -851,7 +851,7 @@
     }
         
     case ALL_INT32_INDEXING_TYPES: {
-        if (!value.isInt32() || isCopyOnWrite(thisObject->indexingMode())) {
+        if (!value.isInt32()) {
             thisObject->convertInt32ForValue(vm, value);
             return putByIndex(cell, exec, propertyName, value, shouldThrow);
         }
@@ -1478,9 +1478,10 @@
 {
     ASSERT(inherits(vm, info()));
 
-    if (isCopyOnWrite(indexingMode()) && hasInt32(indexingMode())) {
+    if (isCopyOnWrite(indexingMode())) {
         convertFromCopyOnWrite(vm);
-        return butterfly()->contiguousInt32();
+        if (hasInt32(indexingMode()))
+            return butterfly()->contiguousInt32();
     }
 
     if (structure(vm)->hijacksIndexingHeader())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to