Title: [204901] trunk
Revision
204901
Author
[email protected]
Date
2016-08-24 09:55:50 -0700 (Wed, 24 Aug 2016)

Log Message

js/regress/put-by-id-transition-with-indexing-header.html and svg/carto.net/window.svg fail in debug after r204854
https://bugs.webkit.org/show_bug.cgi?id=161115

Reviewed by Keith Miller.
Source/_javascript_Core:

        
There were two small goofs.

* bytecode/ObjectAllocationProfile.h:
(JSC::ObjectAllocationProfile::isNull): The new policy is that the allocator can be null. So now the way you tell if the profile is null is by checking the structure.
* jit/JITOperations.cpp: This was using DeferGC, which is now definitely wrong. It forces the GC to happen when the structure and butterfly are mismatched. It's better for the GC to happen before we put the butterfly in the object.

LayoutTests:


* TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (204900 => 204901)


--- trunk/LayoutTests/ChangeLog	2016-08-24 16:47:11 UTC (rev 204900)
+++ trunk/LayoutTests/ChangeLog	2016-08-24 16:55:50 UTC (rev 204901)
@@ -1,3 +1,12 @@
+2016-08-23  Filip Pizlo  <[email protected]>
+
+        js/regress/put-by-id-transition-with-indexing-header.html and svg/carto.net/window.svg fail in debug after r204854
+        https://bugs.webkit.org/show_bug.cgi?id=161115
+
+        Reviewed by Keith Miller.
+
+        * TestExpectations:
+
 2016-08-24  Mark Lam  <[email protected]>
 
         Gardening: restoring 2 test expectations removed in r204870 by mistake.

Modified: trunk/LayoutTests/TestExpectations (204900 => 204901)


--- trunk/LayoutTests/TestExpectations	2016-08-24 16:47:11 UTC (rev 204900)
+++ trunk/LayoutTests/TestExpectations	2016-08-24 16:55:50 UTC (rev 204901)
@@ -1237,5 +1237,3 @@
 webkit.org/b/159755 fast/text/emoji-gender.html [ ImageOnlyFailure ]
 
 webkit.org/b/160017 js/regress-139548.html [ Slow ]
-
-[Debug] webkit.org/b/161114 svg/carto.net/window.svg [ Skip ]

Modified: trunk/Source/_javascript_Core/ChangeLog (204900 => 204901)


--- trunk/Source/_javascript_Core/ChangeLog	2016-08-24 16:47:11 UTC (rev 204900)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-08-24 16:55:50 UTC (rev 204901)
@@ -1,3 +1,16 @@
+2016-08-23  Filip Pizlo  <[email protected]>
+
+        js/regress/put-by-id-transition-with-indexing-header.html and svg/carto.net/window.svg fail in debug after r204854
+        https://bugs.webkit.org/show_bug.cgi?id=161115
+
+        Reviewed by Keith Miller.
+        
+        There were two small goofs.
+
+        * bytecode/ObjectAllocationProfile.h:
+        (JSC::ObjectAllocationProfile::isNull): The new policy is that the allocator can be null. So now the way you tell if the profile is null is by checking the structure.
+        * jit/JITOperations.cpp: This was using DeferGC, which is now definitely wrong. It forces the GC to happen when the structure and butterfly are mismatched. It's better for the GC to happen before we put the butterfly in the object.
+
 2016-08-24  Filip Pizlo  <[email protected]>
 
         AssemblyHelpers::emitAllocateWithNonNullAllocator() crashes in the FTL on ARM64

Modified: trunk/Source/_javascript_Core/bytecode/ObjectAllocationProfile.h (204900 => 204901)


--- trunk/Source/_javascript_Core/bytecode/ObjectAllocationProfile.h	2016-08-24 16:47:11 UTC (rev 204900)
+++ trunk/Source/_javascript_Core/bytecode/ObjectAllocationProfile.h	2016-08-24 16:55:50 UTC (rev 204901)
@@ -45,7 +45,7 @@
     {
     }
 
-    bool isNull() { return !m_allocator; }
+    bool isNull() { return !m_structure; }
 
     void initialize(VM& vm, JSCell* owner, JSObject* prototype, unsigned inferredInlineCapacity)
     {

Modified: trunk/Source/_javascript_Core/jit/JITOperations.cpp (204900 => 204901)


--- trunk/Source/_javascript_Core/jit/JITOperations.cpp	2016-08-24 16:47:11 UTC (rev 204900)
+++ trunk/Source/_javascript_Core/jit/JITOperations.cpp	2016-08-24 16:55:50 UTC (rev 204901)
@@ -2119,7 +2119,6 @@
     NativeCallFrameTracer tracer(&vm, exec);
 
     ASSERT(!object->structure()->outOfLineCapacity());
-    DeferGC deferGC(vm.heap);
     Butterfly* result = object->growOutOfLineStorage(vm, 0, initialOutOfLineCapacity);
     object->setButterflyWithoutChangingStructure(vm, result);
     return reinterpret_cast<char*>(result);
@@ -2130,7 +2129,6 @@
     VM& vm = exec->vm();
     NativeCallFrameTracer tracer(&vm, exec);
 
-    DeferGC deferGC(vm.heap);
     Butterfly* result = object->growOutOfLineStorage(vm, object->structure()->outOfLineCapacity(), newSize);
     object->setButterflyWithoutChangingStructure(vm, result);
     return reinterpret_cast<char*>(result);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to