Demarcate code added due to lack of NSDMI for aggregates
[WebKit.git] / Source / WTF / ChangeLog
index b2a7b36..198f904 100644 (file)
@@ -1,3 +1,959 @@
+2017-08-25  Daniel Bates  <dabates@apple.com>
+
+        Demarcate code added due to lack of NSDMI for aggregates
+        https://bugs.webkit.org/show_bug.cgi?id=175990
+
+        Reviewed by Andy Estes.
+
+        * wtf/Compiler.h:
+
+2017-08-25  Don Olmstead  <don.olmstead@sony.com>
+
+        Define *_GIGACAGE_MASK when Gigacage is not supported
+        https://bugs.webkit.org/show_bug.cgi?id=175994
+
+        Reviewed by Mark Lam.
+
+        * wtf/Gigacage.h:
+
+2017-08-25  Eric Carlson  <eric.carlson@apple.com>
+
+        Add String::format variant that takes va_args
+        https://bugs.webkit.org/show_bug.cgi?id=175988
+
+        Reviewed by Jer Noble.
+
+        * wtf/text/WTFString.cpp:
+        (WTF::createWithFormatAndArguments): Created with the guts of String::format.
+        (WTF::String::formatWithArguments): New, call createWithFormatAndArguments.
+        (WTF::String::format): Move logic to createWithFormatAndArguments, use it.
+        * wtf/text/WTFString.h:
+
+2017-08-25  Saam Barati  <sbarati@apple.com>
+
+        Support compiling catch in the DFG
+        https://bugs.webkit.org/show_bug.cgi?id=174590
+        <rdar://problem/34047845>
+
+        Reviewed by Filip Pizlo.
+
+        This patch generalizes the BackwardsGraph fake root into a more generalizable
+        class called SingleRootGraph. SingleRootGraph exposes the general graph interface
+        used in Dominators and NaturalLoops. SingleRootGraph takes as input a graph with
+        the normal graph interface, but also allows the input graph to contain more than
+        one root. SingleRootGraph then exposes a single root, which it creates, that has
+        an outgoing edge to all the roots in the original graph.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/BackwardsGraph.h:
+        (WTF::BackwardsGraph::dump const):
+        (WTF::BackwardsGraph::rootName): Deleted.
+        (WTF::BackwardsGraph::Node::Node): Deleted.
+        (WTF::BackwardsGraph::Node::root): Deleted.
+        (WTF::BackwardsGraph::Node::operator== const): Deleted.
+        (WTF::BackwardsGraph::Node::operator!= const): Deleted.
+        (WTF::BackwardsGraph::Node::operator bool const): Deleted.
+        (WTF::BackwardsGraph::Node::isRoot const): Deleted.
+        (WTF::BackwardsGraph::Node::node const): Deleted.
+        (): Deleted.
+        (WTF::BackwardsGraph::Set::Set): Deleted.
+        (WTF::BackwardsGraph::Set::add): Deleted.
+        (WTF::BackwardsGraph::Set::remove): Deleted.
+        (WTF::BackwardsGraph::Set::contains): Deleted.
+        (WTF::BackwardsGraph::Set::dump const): Deleted.
+        (WTF::BackwardsGraph::Map::Map): Deleted.
+        (WTF::BackwardsGraph::Map::clear): Deleted.
+        (WTF::BackwardsGraph::Map::size const): Deleted.
+        (WTF::BackwardsGraph::Map::operator[]): Deleted.
+        (WTF::BackwardsGraph::Map::operator[] const): Deleted.
+        * wtf/Dominators.h:
+        (WTF::Dominators::Dominators):
+        (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOf):
+        (WTF::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf):
+        (WTF::Dominators::iteratedDominanceFrontierOf const):
+        (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl const):
+        * wtf/SingleRootGraph.h: Added.
+        (WTF::SingleRootGraphNode::rootName):
+        (WTF::SingleRootGraphNode::SingleRootGraphNode):
+        (WTF::SingleRootGraphNode::root):
+        (WTF::SingleRootGraphNode::operator== const):
+        (WTF::SingleRootGraphNode::operator!= const):
+        (WTF::SingleRootGraphNode::operator bool const):
+        (WTF::SingleRootGraphNode::isRoot const):
+        (WTF::SingleRootGraphNode::node const):
+        (WTF::SingleRootGraphSet::add):
+        (WTF::SingleRootGraphSet::remove):
+        (WTF::SingleRootGraphSet::contains):
+        (WTF::SingleRootGraphSet::dump const):
+        (WTF::SingleRootMap::SingleRootMap):
+        (WTF::SingleRootMap::clear):
+        (WTF::SingleRootMap::size const):
+        (WTF::SingleRootMap::operator[]):
+        (WTF::SingleRootMap::operator[] const):
+        (WTF::SingleRootGraph::SingleRootGraph):
+        (WTF::SingleRootGraph::root const):
+        (WTF::SingleRootGraph::newMap):
+        (WTF::SingleRootGraph::successors const):
+        (WTF::SingleRootGraph::predecessors const):
+        (WTF::SingleRootGraph::index const):
+        (WTF::SingleRootGraph::node const):
+        (WTF::SingleRootGraph::numNodes const):
+        (WTF::SingleRootGraph::dump const):
+        (WTF::SingleRootGraph::assertIsConsistent const):
+
+2017-08-24  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r221119, r221124, and r221143.
+        https://bugs.webkit.org/show_bug.cgi?id=175973
+
+        "I think it regressed JSBench by 20%" (Requested by saamyjoon
+        on #webkit).
+
+        Reverted changesets:
+
+        "Support compiling catch in the DFG"
+        https://bugs.webkit.org/show_bug.cgi?id=174590
+        http://trac.webkit.org/changeset/221119
+
+        "Unreviewed, build fix in GTK port"
+        https://bugs.webkit.org/show_bug.cgi?id=174590
+        http://trac.webkit.org/changeset/221124
+
+        "DFG::JITCode::osrEntry should get sorted since we perform a
+        binary search on it"
+        https://bugs.webkit.org/show_bug.cgi?id=175893
+        http://trac.webkit.org/changeset/221143
+
+2017-08-23  Filip Pizlo  <fpizlo@apple.com>
+
+        Reduce Gigacage sizes
+        https://bugs.webkit.org/show_bug.cgi?id=175920
+
+        Reviewed by Mark Lam.
+
+        Provide filler API for the no-bmalloc/no-Gigacage case.
+
+        * wtf/Gigacage.h:
+        (Gigacage::mask):
+
+2017-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Unreviewed, build fix in GTK port
+        https://bugs.webkit.org/show_bug.cgi?id=174590
+
+        * wtf/SingleRootGraph.h:
+        (WTF::SingleRootGraph::successors const):
+        (WTF::SingleRootGraph::predecessors const):
+
+2017-08-23  Saam Barati  <sbarati@apple.com>
+
+        Support compiling catch in the DFG
+        https://bugs.webkit.org/show_bug.cgi?id=174590
+
+        Reviewed by Filip Pizlo.
+
+        This patch generalizes the BackwardsGraph fake root into a more generalizable
+        class called SingleRootGraph. SingleRootGraph exposes the general graph interface
+        used in Dominators and NaturalLoops. SingleRootGraph takes as input a graph with
+        the normal graph interface, but also allows the input graph to contain more than
+        one root. SingleRootGraph then exposes a single root, which it creates, that has
+        an outgoing edge to all the roots in the original graph.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/BackwardsGraph.h:
+        (WTF::BackwardsGraph::dump const):
+        (WTF::BackwardsGraph::rootName): Deleted.
+        (WTF::BackwardsGraph::Node::Node): Deleted.
+        (WTF::BackwardsGraph::Node::root): Deleted.
+        (WTF::BackwardsGraph::Node::operator== const): Deleted.
+        (WTF::BackwardsGraph::Node::operator!= const): Deleted.
+        (WTF::BackwardsGraph::Node::operator bool const): Deleted.
+        (WTF::BackwardsGraph::Node::isRoot const): Deleted.
+        (WTF::BackwardsGraph::Node::node const): Deleted.
+        (): Deleted.
+        (WTF::BackwardsGraph::Set::Set): Deleted.
+        (WTF::BackwardsGraph::Set::add): Deleted.
+        (WTF::BackwardsGraph::Set::remove): Deleted.
+        (WTF::BackwardsGraph::Set::contains): Deleted.
+        (WTF::BackwardsGraph::Set::dump const): Deleted.
+        (WTF::BackwardsGraph::Map::Map): Deleted.
+        (WTF::BackwardsGraph::Map::clear): Deleted.
+        (WTF::BackwardsGraph::Map::size const): Deleted.
+        (WTF::BackwardsGraph::Map::operator[]): Deleted.
+        (WTF::BackwardsGraph::Map::operator[] const): Deleted.
+        * wtf/Dominators.h:
+        (WTF::Dominators::Dominators):
+        (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOf):
+        (WTF::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf):
+        (WTF::Dominators::iteratedDominanceFrontierOf const):
+        (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl const):
+        * wtf/SingleRootGraph.h: Added.
+        (WTF::SingleRootGraphNode::rootName):
+        (WTF::SingleRootGraphNode::SingleRootGraphNode):
+        (WTF::SingleRootGraphNode::root):
+        (WTF::SingleRootGraphNode::operator== const):
+        (WTF::SingleRootGraphNode::operator!= const):
+        (WTF::SingleRootGraphNode::operator bool const):
+        (WTF::SingleRootGraphNode::isRoot const):
+        (WTF::SingleRootGraphNode::node const):
+        (WTF::SingleRootGraphSet::add):
+        (WTF::SingleRootGraphSet::remove):
+        (WTF::SingleRootGraphSet::contains):
+        (WTF::SingleRootGraphSet::dump const):
+        (WTF::SingleRootMap::SingleRootMap):
+        (WTF::SingleRootMap::clear):
+        (WTF::SingleRootMap::size const):
+        (WTF::SingleRootMap::operator[]):
+        (WTF::SingleRootMap::operator[] const):
+        (WTF::SingleRootGraph::SingleRootGraph):
+        (WTF::SingleRootGraph::root const):
+        (WTF::SingleRootGraph::newMap):
+        (WTF::SingleRootGraph::successors const):
+        (WTF::SingleRootGraph::predecessors const):
+        (WTF::SingleRootGraph::index const):
+        (WTF::SingleRootGraph::node const):
+        (WTF::SingleRootGraph::numNodes const):
+        (WTF::SingleRootGraph::dump const):
+        (WTF::SingleRootGraph::assertIsConsistent const):
+
+2017-08-23  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Enable persistent coder to encode FetchOptions
+        https://bugs.webkit.org/show_bug.cgi?id=175883
+
+        Reviewed by Alex Christensen.
+
+        Enabling encoding/decoding of enums with EnumTraits.
+        This code is similar to the one of IPC encoder/decoder.
+
+        * wtf/persistence/PersistentDecoder.h:
+        (WTF::Persistence::Decoder::decode):
+        * wtf/persistence/PersistentEncoder.h:
+        (WTF::Persistence::Encoder::encode):
+
+2017-08-23  Per Arne Vollan  <pvollan@apple.com>
+
+        [Win] Compile error, include file <wtf/AVFoundationHeaderDetection.h> is not found.
+        https://bugs.webkit.org/show_bug.cgi?id=175853
+
+        Reviewed by Brent Fulgham.
+
+        Copy generated WTF header files to the same place as we copy forwarding headers.
+        * WTF.vcxproj/WTF.proj:
+
+2017-08-22  Chris Dumez  <cdumez@apple.com>
+
+        Introduce a new CompletionHandler type and use it for NetworkDataTaskClient's completion handlers to help catch bugs
+        https://bugs.webkit.org/show_bug.cgi?id=175832
+
+        Reviewed by Alex Christensen.
+
+        Introduce a new CompletionHandler type which wraps a WTF::Function and ensures via assertions
+        that the function is always called once and only once.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CompletionHandler.h: Added.
+        (WTF::CompletionHandler<Out):
+
+2017-08-22  Alex Christensen  <achristensen@webkit.org>
+
+        Fix Windows build after r221017.
+        https://bugs.webkit.org/show_bug.cgi?id=157053
+
+        * wtf/PlatformWin.cmake:
+
+2017-08-22  Per Arne Vollan  <pvollan@apple.com>
+
+        Implement 64-bit MacroAssembler::probe support for Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=175724
+
+        Reviewed by Mark Lam.
+
+        Enable masm probe and DFG.
+
+        * wtf/Platform.h:
+
+2017-08-21  Mark Lam  <mark.lam@apple.com>
+
+        [Follow up]: Add back the ability to disable MASM_PROBE from the build.
+        https://bugs.webkit.org/show_bug.cgi?id=175656
+        <rdar://problem/33933720>
+
+        Not reviewed.
+
+        Fixed a typo: should be "OS(WINDOWS)", not "OS(WINDOW)".
+
+        * wtf/Platform.h:
+
+2017-08-21  Carlos Alberto Lopez Perez  <clopez@igalia.com>
+
+        [GTK] ARMv7 build fails to build MacroAssemblerARMv7.cpp.
+        https://bugs.webkit.org/show_bug.cgi?id=175514
+
+        Reviewed by Keith Miller.
+
+        * wtf/Platform.h: Enable DFG and MASM_PROBE back for GTK ARM_THUMB2.
+
+2017-08-20  Sam Weinig  <sam@webkit.org>
+
+        StringView could use a function to strip leading/trailing characters without allocation
+        https://bugs.webkit.org/show_bug.cgi?id=175757
+
+        Reviewed by Darin Adler.
+
+        There are many places in WebCore/WebKit that we call functions like, 
+        WebCore::stripLeadingAndTrailingHTMLSpaces,  or String::stripWhiteSpace() only to use 
+        the allocated String as a temporary for either another transformation or a comparison.
+        Now that we have StringView, we can avoid that extra allocation, by having returning a
+        StringView  substring in these scenarios.
+
+        For instance, the check (from ScriptElement.cpp:287):
+
+        if (!stripLeadingAndTrailingHTMLSpaces(sourceURL).isEmpty()) {
+            ...
+        }
+
+        currently allocates a string just to make this check. With a new 
+        stripLeadingAndTrailingHTMLSpaces such as:
+
+        StringView stripLeadingAndTrailingHTMLSpaces(StringView stringView)
+        {
+            return stringView.stripLeadingAndTrailingMatchedCharacters([] (auto c) {
+                return isHTMLSpace(c);
+            });
+        }
+
+        We could instead have exact same code from ScriptElement.cpp now avoid an allocation.
+
+        * wtf/text/StringView.h:
+        (WTF::StringView::stripLeadingAndTrailingMatchedCharacters):
+
+2017-08-21  Eric Carlson  <eric.carlson@apple.com>
+
+        Add WTFLogChannel level to allow runtime log filtering
+        https://bugs.webkit.org/show_bug.cgi?id=175731
+        <rdar://problem/33967234>
+
+        Reviewed by Jer Noble.
+        
+        Add WTFLog*, LOG, and RELEASE_LOG variants that take a "log level" parameter so code
+        can include logging statements that are only conditionally emitted.
+
+        * wtf/Assertions.cpp:
+        * wtf/Assertions.h:
+        * wtf/MemoryPressureHandler.cpp:
+        * wtf/RefCountedLeakCounter.cpp:
+
+2017-08-20  Mark Lam  <mark.lam@apple.com>
+
+        Gardening: fix CLoop build.
+        https://bugs.webkit.org/show_bug.cgi?id=175688
+        <rdar://problem/33436870>
+
+        Not reviewed.
+
+        Disable MASM_PROBE if !ENABLE(JIT).
+
+        * wtf/Platform.h:
+
+2017-08-18  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r220938.
+
+        The API tests added with this change are failing.
+
+        Reverted changeset:
+
+        "Add WTFLogChannel level to allow runtime log filtering"
+        https://bugs.webkit.org/show_bug.cgi?id=175731
+        http://trac.webkit.org/changeset/220938
+
+2017-08-18  Eric Carlson  <eric.carlson@apple.com>
+
+        Add WTFLogChannel level to allow runtime log filtering
+        https://bugs.webkit.org/show_bug.cgi?id=175731
+        <rdar://problem/33967234>
+
+        Reviewed by Jer Noble.
+        
+        Add WTFLog*, LOG, and RELEASE_LOG variants that take a "log level" parameter so code
+        can include logging statements that are only conditionally emitted.
+
+        * wtf/Assertions.cpp:
+        * wtf/Assertions.h:
+        * wtf/MemoryPressureHandler.cpp:
+        * wtf/RefCountedLeakCounter.cpp:
+
+2017-08-18  Per Arne Vollan  <pvollan@apple.com>
+
+        Implement 32-bit MacroAssembler::probe support for Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=175449
+
+        Reviewed by Mark Lam.
+
+        Enable the DFG on Win32. 
+
+        * wtf/Platform.h:
+
+2017-08-17  Mark Lam  <mark.lam@apple.com>
+
+        Only use 16 VFP registers if !CPU(ARM_NEON).
+        https://bugs.webkit.org/show_bug.cgi?id=175514
+
+        Reviewed by JF Bastien.
+
+        If CPU(ARM_NEON) is not enabled, we'll conservatively assume only VFP2 support is
+        available. Hence, we'll only the first 16 FPDoubleRegisterIDs are available.
+
+        For reference, see:
+        NEON registers: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CJACABEJ.html
+        VFP2 and VFP3 registers: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CIHDIBDG.html
+        NEON to VFP register mapping: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CJAIJHFC.html
+
+        This is mostly for GTK toolchains which may target older ARM CPUs which only have
+        VFP2 support.
+
+        * wtf/Platform.h:
+
+2017-08-16  Mark Lam  <mark.lam@apple.com>
+
+        Add back the ability to disable MASM_PROBE from the build.
+        https://bugs.webkit.org/show_bug.cgi?id=175656
+        <rdar://problem/33933720>
+
+        Reviewed by Yusuke Suzuki.
+
+        * wtf/Platform.h:
+
+2017-08-16  Mark Lam  <mark.lam@apple.com>
+
+        Gardening: fix GTK ARM_THUMB2 build.
+        https://bugs.webkit.org/show_bug.cgi?id=175446
+
+        Not reviewed.
+
+        Disable the use of the DFG for GTK ARM_THUMB2 builds until
+        https://bugs.webkit.org/show_bug.cgi?id=175514 is fixed.
+
+        * wtf/Platform.h:
+
+2017-08-16  Andy Estes  <aestes@apple.com>
+
+        [Payment Request] Add an ENABLE flag and an experimental feature preference
+        https://bugs.webkit.org/show_bug.cgi?id=175622
+
+        Reviewed by Tim Horton.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove Proximity Events and related code
+        https://bugs.webkit.org/show_bug.cgi?id=175545
+
+        Reviewed by Daniel Bates.
+
+        No platform enables Proximity Events, so remove code inside ENABLE(PROXIMITY_EVENTS)
+        and other related code.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove ENABLE(REQUEST_AUTOCOMPLETE) code, which was disabled everywhere
+        https://bugs.webkit.org/show_bug.cgi?id=175504
+
+        Reviewed by Sam Weinig.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove ENABLE_VIEW_MODE_CSS_MEDIA and related code
+        https://bugs.webkit.org/show_bug.cgi?id=175557
+
+        Reviewed by Jon Lee.
+
+        No port cares about the ENABLE(VIEW_MODE_CSS_MEDIA) feature, so remove it.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-12  Filip Pizlo  <fpizlo@apple.com>
+
+        Put the ScopedArgumentsTable's ScopeOffset array in some gigacage
+        https://bugs.webkit.org/show_bug.cgi?id=174921
+
+        Reviewed by Mark Lam.
+        
+        If you want to std::unique_ptr a class that knows that it should be in the Gigacage, then we
+        would create the Gigacage equivalent of WTF_MAKE_FAST_ALLOCATED and it would just work.
+        
+        But this does not work if we want to std::unique_ptr a primitive type. So, this patch adds a
+        solution for this problem: CagedUniquePtr<>. This will handle allocation
+        (CagedUniquePtr<>::create()) and deallocation (in the style of std::unique_ptr). It has three
+        variants:
+        
+        - Non-array types.
+        - Arrays that don't have destructors.
+        - Arrays that have destructors.
+        
+        Just like std::unique_ptr, the array case is triggered by saying "[]" at the end of the type.
+        
+        Unlike std::unique_ptr and most other smart pointers, the whole point of this smart pointer is
+        to dictate where the thing you're pointing at is allocated. For this reason, it has to know how
+        to do things like the array destructor protocol. So it creates its own: the CagedUniquePtr for
+        arrays with destructors is a fat pointer that remembers the length of the array.
+        
+        CagedUniquePtr<> makes it impossible to leak/release the pointer. This is stricter than what
+        std::unique_ptr does, and is probably appropriate for all of the places where we would use this
+        type.
+        
+        So far, we only use it for ScopedArgumentsTable::m_arguments, but I suspect that it will be
+        useful in other places.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CMakeLists.txt:
+        * wtf/CagedUniquePtr.h: Added.
+        (WTF::CagedUniquePtr::CagedUniquePtr):
+        (WTF::CagedUniquePtr::create):
+        (WTF::CagedUniquePtr::operator=):
+        (WTF::CagedUniquePtr::~CagedUniquePtr):
+        (WTF::CagedUniquePtr::get const):
+        (WTF::CagedUniquePtr::getMayBeNull const):
+        (WTF::CagedUniquePtr::operator== const):
+        (WTF::CagedUniquePtr::operator!= const):
+        (WTF::CagedUniquePtr::operator bool const):
+        (WTF::CagedUniquePtr::operator* const):
+        (WTF::CagedUniquePtr::operator-> const):
+        (WTF::CagedUniquePtr::operator[] const):
+        (WTF::CagedUniquePtr::destroy):
+        * wtf/Gigacage.cpp:
+        (Gigacage::tryMallocArray):
+        (Gigacage::malloc):
+        (Gigacage::mallocArray):
+        * wtf/Gigacage.h:
+
+2017-08-11  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Replace DATA_TRANSFER_ITEMS by a runtime flag and add a stub implementation
+        https://bugs.webkit.org/show_bug.cgi?id=175474
+
+        Reviewed by Wenson Hsieh.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-11  Don Olmstead  <don.olmstead@sony.com>
+
+        [WTF] Move ValueToString into WTF
+        https://bugs.webkit.org/show_bug.cgi?id=175469
+
+        Reviewed by Sam Weinig.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CMakeLists.txt:
+        * wtf/text/ValueToString.h: Renamed from Source/WebCore/platform/ValueToString.h.
+
+2017-08-11  Tim Horton  <timothy_horton@apple.com>
+
+        Fix the build with modern Clang's -Wexpansion-to-defined
+        https://bugs.webkit.org/show_bug.cgi?id=175467
+        <rdar://problem/33667497>
+
+        Reviewed by Simon Fraser.
+
+        * wtf/FeatureDefines.h:
+        * wtf/Platform.h:
+        Avoid object-like macros that expand to include defined(), because this
+        behaves inconsistently between different compilers (though in ways
+        that don't matter for these particular defines, which aren't used on MSVC),
+        and Clang has added a warning for it.
+
+        Move ENABLE_WEBASSEMBLY to Platform.h since it depends on things that
+        are defined there and can't be evaluated at time-of-use because of the
+        aforementioned new rules. Previously, there was a cycle between
+        ENABLE_WEBASSEMBLY and ENABLE_B3_JIT -- break that so that it just
+        goes FTL_JIT->B3_JIT->WASM instead.
+
+2017-08-10  Sam Weinig  <sam@webkit.org>
+
+        WTF::Function does not allow for reference / non-default constructible return types
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+
+        Reviewed by Chris Dumez.
+
+        When Function, then NoncopyableFunction, was templatized to allow non-void return values
+        in r201493, it maintained the behavior of being callable even if the Function was null.
+        To accomplish this, when null, the default construction of the return parameter was used.
+        This means Function can't be used with return types that are not default constructible,
+        such as reference types and Ref.
+
+        This behavior of returning something when null is surprising, as this is not how normal
+        functions behave, and not very useful. Instead, we now assert that the function is not
+        null when being called.
+
+        * wtf/Function.h:
+        (WTF::Function operator(...)):
+        Instead of allowing a null callable wrapper by returning the default construction of
+        the return type, assert that the wrapper is there when calling a Function.
+
+2017-08-10  Mark Lam  <mark.lam@apple.com>
+
+        Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.
+        https://bugs.webkit.org/show_bug.cgi?id=175446
+        <rdar://problem/33836545>
+
+        Reviewed by Saam Barati.
+
+        This is needed in order to support https://bugs.webkit.org/show_bug.cgi?id=174645.
+        One consequence of this is that the DFG will now be disabled for the MIPS and
+        Windows ports. See:
+            https://bugs.webkit.org/show_bug.cgi?id=175447
+            https://bugs.webkit.org/show_bug.cgi?id=175449
+
+        Also, we should only ENABLE_SIGNAL_BASED_VM_TRAPS if the DFG is enabled.  It was
+        never meaningful to use SIGNAL_BASED_VM_TRAPS with the baseline JIT anyway.  This
+        is a mis-configuration error that is now fixed.
+
+        * wtf/Platform.h:
+
+2017-08-10  Brady Eidson  <beidson@apple.com>
+
+        Rename the source files for the WTF persistent coders.
+        https://bugs.webkit.org/show_bug.cgi?id=175441
+
+        Reviewed by Tim Horton.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CMakeLists.txt:
+
+        * wtf/persistence/PersistentCoder.h: Renamed from Source/WTF/wtf/persistence/Coder.h.
+        * wtf/persistence/PersistentCoders.cpp: Renamed from Source/WTF/wtf/persistence/Coders.cpp.
+        * wtf/persistence/PersistentCoders.h: Renamed from Source/WTF/wtf/persistence/Coders.h.
+        * wtf/persistence/PersistentDecoder.cpp: Renamed from Source/WTF/wtf/persistence/Decoder.cpp.
+        * wtf/persistence/PersistentDecoder.h: Renamed from Source/WTF/wtf/persistence/Decoder.h.
+        * wtf/persistence/PersistentEncoder.cpp: Renamed from Source/WTF/wtf/persistence/Encoder.cpp.
+        * wtf/persistence/PersistentEncoder.h: Renamed from Source/WTF/wtf/persistence/Encoder.h.
+
+2017-08-10  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Unreviewed, attempt to fix build failure with VC2017
+
+        * wtf/PriorityQueue.h:
+
+2017-08-10  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Run more WTF tests
+        https://bugs.webkit.org/show_bug.cgi?id=174970
+
+        Reviewed by Michael Catanzaro.
+
+        CHAR_BIT is not defined.
+
+        * wtf/LEBDecoder.h:
+
+2017-08-09  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [WTF] ThreadSpecific should not introduce additional indirection
+        https://bugs.webkit.org/show_bug.cgi?id=175187
+
+        Reviewed by Mark Lam.
+
+        ThreadSpecific sets Data* to the TLS. And Data holds T*, which
+        is fast allocated actual data. But ideally, we should store T
+        instance directly in Data instead of introducing an additional
+        indirection.
+
+        This patch adds storage in Data in order to embed the instance of T. The constructor
+        for Data will invoke the constructor for T on the embedded storage. We also drop
+        ThreadSpecific::replace which is only used by the web thread to set its thread specific
+        ThreadGlobalData to the one shared from the main thread. The existing implementation
+        relies on the main thread and the web thread never exiting in order for the shared
+        ThreadGlobalData to stay alive. We can achieve the same semantics by using a
+        ThreadSpecific<std::unique_ptr<T>> to hold the ThreadGlobalData instance instead.
+
+        * wtf/ThreadSpecific.h:
+        (WTF::ThreadSpecific::Data::construct):
+        (WTF::ThreadSpecific::Data::Data):
+        We make it fast allocated since we previously allocated ThreadSpecific T data by fastMalloc.
+
+        (WTF::ThreadSpecific::Data::~Data):
+        (WTF::ThreadSpecific::Data::storagePointer const):
+        (WTF::canBeGCThread>::get):
+        We also drop RELEASE_ASSERT from ::get(). We already inserted this assert to setAndConstruct(),
+        so when creating the member to this TLS, we execute this release assert. So it is
+        not necessary to execute this assertion every time we get data from this TLS.
+
+        (WTF::canBeGCThread>::set):
+        (WTF::canBeGCThread>::destroy):
+        (WTF::canBeGCThread>::setAndConstruct):
+        (WTF::T):
+        (WTF::canBeGCThread>::replace): Deleted.
+
+2017-08-10  Tim Horton  <timothy_horton@apple.com>
+
+        Fix a silly typo in Compiler.h
+
+        * wtf/Compiler.h:
+        Heature, indeed.
+
+2017-08-10  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Remove ENABLE_GAMEPAD_DEPRECATED
+        https://bugs.webkit.org/show_bug.cgi?id=175361
+
+        Reviewed by Carlos Garcia Campos.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-09  Don Olmstead  <don.olmstead@sony.com>
+
+        [WTF] Move TextStream into WTF
+        https://bugs.webkit.org/show_bug.cgi?id=175211
+
+        Reviewed by Myles C. Maxfield.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CMakeLists.txt:
+        * wtf/text/TextStream.cpp: Renamed from Source/WebCore/platform/text/TextStream.cpp.
+        (WTF::TextStream::writeIndent):
+        * wtf/text/TextStream.h: Renamed from Source/WebCore/platform/text/TextStream.h.
+        (WTF::TextStream::FormatNumberRespectingIntegers::FormatNumberRespectingIntegers):
+
+2017-08-09  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r220466, r220477, and r220487.
+        https://bugs.webkit.org/show_bug.cgi?id=175411
+
+        This change broke existing API tests and follow up fixes did
+        not resolve all the issues. (Requested by ryanhaddad on
+        #webkit).
+
+        Reverted changesets:
+
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+        http://trac.webkit.org/changeset/220466
+
+        "WTF::Function does not allow for reference / non-default
+        constructible return types"
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+        http://trac.webkit.org/changeset/220477
+
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+        http://trac.webkit.org/changeset/220487
+
+2017-08-09  Sam Weinig  <sam@webkit.org>
+
+        WTF::Function does not allow for reference / non-default constructible return types
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+
+        Reviewed by Chris Dumez.
+
+        When Function, then NoncopyableFunction, was templatized to allow non-void return values
+        in r201493, it maintained the behavior of being callable even if the Function was null.
+        To accomplish this, when null, the default construction of the return parameter was used.
+        This means Function can't be used with return types that are not default constructible,
+        such as reference types and Ref.
+
+        This behavior of returning something when null is surprising, as this is not how normal
+        functions behave, and not very useful. Instead, we now assert that the function is not
+        null when being called.
+
+        * wtf/Function.h:
+        (WTF::Function operator(...)):
+        Instead of allowing a null callable wrapper by returning the default construction of
+        the return type, assert that the wrapper is there when calling a Function.
+
+2017-08-09  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r220457.
+
+        This change introduced API test failures.
+
+        Reverted changeset:
+
+        "WTF::Function does not allow for reference / non-default
+        constructible return types"
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+        http://trac.webkit.org/changeset/220457
+
+2017-08-09  Sam Weinig  <sam@webkit.org>
+
+        WTF::Function does not allow for reference / non-default constructible return types
+        https://bugs.webkit.org/show_bug.cgi?id=175244
+
+        Reviewed by Chris Dumez.
+
+        When Function, then NoncopyableFunction, was templatized to allow non-void return values
+        in r201493, it maintained the behavior of being callable even if the Function was null.
+        To accomplish this, when null, the default construction of the return parameter was used.
+        This means Function can't be used with return types that are not default constructible,
+        such as reference types and Ref.
+
+        This behavior of returning something when null is surprising, as this is not how normal
+        functions behave, and not very useful. Instead, we now assert that the function is not
+        null when being called.
+
+        * wtf/Function.h:
+        (WTF::Function operator(...)):
+        Instead of allowing a null callable wrapper by returning the default construction of
+        the return type, assert that the wrapper is there when calling a Function.
+
+2017-08-08  Filip Pizlo  <fpizlo@apple.com>
+
+        Baseline JIT should do caging
+        https://bugs.webkit.org/show_bug.cgi?id=175037
+
+        Reviewed by Mark Lam.
+
+        * wtf/Gigacage.h:
+        (Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled):
+        (Gigacage::isDisablingPrimitiveGigacageDisabled):
+        (Gigacage::isPrimitiveGigacagePermanentlyEnabled):
+        (Gigacage::canPrimitiveGigacageBeDisabled):
+        (Gigacage::basePtr):
+
+2017-08-08  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r220368.
+
+        This change caused WK1 tests to exit early with crashes.
+
+        Reverted changeset:
+
+        "Baseline JIT should do caging"
+        https://bugs.webkit.org/show_bug.cgi?id=175037
+        http://trac.webkit.org/changeset/220368
+
+2017-08-08  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [CMake] Properly test if compiler supports compiler flags
+        https://bugs.webkit.org/show_bug.cgi?id=174490
+
+        Reviewed by Konstantin Tokarev.
+
+        * wtf/Compiler.h:
+
+2017-08-07  Filip Pizlo  <fpizlo@apple.com>
+
+        Baseline JIT should do caging
+        https://bugs.webkit.org/show_bug.cgi?id=175037
+
+        Reviewed by Mark Lam.
+
+        * wtf/Gigacage.h:
+        (Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled):
+        (Gigacage::isDisablingPrimitiveGigacageDisabled):
+        (Gigacage::isPrimitiveGigacagePermanentlyEnabled):
+        (Gigacage::canPrimitiveGigacageBeDisabled):
+
+2017-08-07  Filip Pizlo  <fpizlo@apple.com>
+
+        Unreviewed, try to fix Windows build.
+
+        * wtf/Gigacage.cpp:
+        * wtf/Gigacage.h:
+
+2017-08-06  Filip Pizlo  <fpizlo@apple.com>
+
+        Primitive auxiliaries and JSValue auxiliaries should have separate gigacages
+        https://bugs.webkit.org/show_bug.cgi?id=174919
+
+        Reviewed by Keith Miller.
+        
+        This mirrors the changes from bmalloc/Gigacage.h.
+        
+        Also it teaches CagedPtr how to reason about multiple gigacages.
+
+        * wtf/CagedPtr.h:
+        (WTF::CagedPtr::get const):
+        (WTF::CagedPtr::operator[] const):
+        * wtf/Gigacage.cpp:
+        (Gigacage::tryMalloc):
+        (Gigacage::tryAllocateVirtualPages):
+        (Gigacage::freeVirtualPages):
+        (Gigacage::tryAlignedMalloc):
+        (Gigacage::alignedFree):
+        (Gigacage::free):
+        * wtf/Gigacage.h:
+        (Gigacage::disablePrimitiveGigacage):
+        (Gigacage::addPrimitiveDisableCallback):
+        (Gigacage::removePrimitiveDisableCallback):
+        (Gigacage::name):
+        (Gigacage::basePtr):
+        (Gigacage::caged):
+        (Gigacage::isCaged):
+        (Gigacage::tryAlignedMalloc):
+        (Gigacage::alignedFree):
+        (Gigacage::free):
+        (Gigacage::disableGigacage): Deleted.
+        (Gigacage::addDisableCallback): Deleted.
+        (Gigacage::removeDisableCallback): Deleted.
+
+2017-08-07  Brian Burg  <bburg@apple.com>
+
+        Remove CANVAS_PATH compilation guard
+        https://bugs.webkit.org/show_bug.cgi?id=175207
+
+        Reviewed by Sam Weinig.
+
+        * wtf/FeatureDefines.h:
+
+2017-08-05  Filip Pizlo  <fpizlo@apple.com>
+
+        REGRESSION (r219895-219897): Number of leaks on Open Source went from 9240 to 235983 and is now at 302372
+        https://bugs.webkit.org/show_bug.cgi?id=175083
+
+        Reviewed by Oliver Hunt.
+        
+        Adds a classic ReadWriteLock class. I wrote my own because I can never remember if the pthread one is
+        guaranted to bias in favor of writers or not.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/Condition.h:
+        (WTF::ConditionBase::construct):
+        (WTF::Condition::Condition):
+        * wtf/Lock.h:
+        (WTF::LockBase::construct):
+        (WTF::Lock::Lock):
+        * wtf/ReadWriteLock.cpp: Added.
+        (WTF::ReadWriteLockBase::construct):
+        (WTF::ReadWriteLockBase::readLock):
+        (WTF::ReadWriteLockBase::readUnlock):
+        (WTF::ReadWriteLockBase::writeLock):
+        (WTF::ReadWriteLockBase::writeUnlock):
+        * wtf/ReadWriteLock.h: Added.
+        (WTF::ReadWriteLockBase::ReadLock::tryLock):
+        (WTF::ReadWriteLockBase::ReadLock::lock):
+        (WTF::ReadWriteLockBase::ReadLock::unlock):
+        (WTF::ReadWriteLockBase::WriteLock::tryLock):
+        (WTF::ReadWriteLockBase::WriteLock::lock):
+        (WTF::ReadWriteLockBase::WriteLock::unlock):
+        (WTF::ReadWriteLockBase::read):
+        (WTF::ReadWriteLockBase::write):
+        (WTF::ReadWriteLock::ReadWriteLock):
+
+2017-08-04  Matt Lewis  <jlewis3@apple.com>
+
+        Unreviewed, rolling out r220271.
+
+        Rolling out due to Layout Test failing on iOS Simulator.
+
+        Reverted changeset:
+
+        "Remove STREAMS_API compilation guard"
+        https://bugs.webkit.org/show_bug.cgi?id=175165
+        http://trac.webkit.org/changeset/220271
+
+2017-08-04  Youenn Fablet  <youenn@apple.com>
+
+        Remove STREAMS_API compilation guard
+        https://bugs.webkit.org/show_bug.cgi?id=175165
+
+        Reviewed by Darin Adler.
+
+        * wtf/FeatureDefines.h:
+
 2017-08-03  Brian Burg  <bburg@apple.com>
 
         Remove ENABLE(WEB_SOCKET) guards