Changeset 219317 in webkit for trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
- Timestamp:
- Jul 10, 2017, 5:29:36 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
r219192 r219317 219 219 ASSERT(hasStructures()); 220 220 m_structures.filter(structures); 221 RELEASE_ASSERT(!m_structures.isEmpty()); 221 222 return *this; 222 223 } … … 903 904 Allocation* allocation = m_heap.onlyLocalAllocation(node->child1().node()); 904 905 if (allocation && allocation->isObjectAllocation()) { 905 allocation->filterStructures(node->structureSet()); 906 RegisteredStructureSet filteredStructures = allocation->structures(); 907 filteredStructures.filter(node->structureSet()); 908 if (filteredStructures.isEmpty()) { 909 // FIXME: Write a test for this: 910 // https://bugs.webkit.org/show_bug.cgi?id=174322 911 m_heap.escape(node->child1().node()); 912 break; 913 } 914 allocation->setStructures(filteredStructures); 906 915 if (Node* value = heapResolve(PromotedHeapLocation(allocation->identifier(), StructurePLoc))) 907 916 node->convertToCheckStructureImmediate(value); … … 947 956 } 948 957 } 949 if (hasInvalidStructures ) {958 if (hasInvalidStructures || validStructures.isEmpty()) { 950 959 m_heap.escape(node->child1().node()); 951 960 break;
Note:
See TracChangeset
for help on using the changeset viewer.