1. 22 Jan, 2014 1 commit
    • carlosgc@webkit.org's avatar
      [GTK] Add GUniquePtr · b726b8b0
      carlosgc@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=127170
      
      Reviewed by Gustavo Noronha Silva.
      
      Source/WTF:
      
      The idea is to replace GOwnPtr with a template alias of
      std:unique_ptr. Not everything can be replaced, though, because
      GOwnPtr::outPtr() doesn't seem to be possible to implement with
      unique_ptr. This smart pointer is more flexible than GOwnPtr and
      allows to transfer the ownership of the pointer using
      std::move().
      
      * GNUmakefile.list.am: Add new file to compilation.
      * wtf/gobject/GUniquePtr.h: Added.
      (WTF::GPtrDeleter::operator()):
      
      Tools:
      
      Add unit tests for GUniquePtr.
      
      * TestWebKitAPI/GNUmakefile.am: Add new file to compilation.
      * TestWebKitAPI/Tests/WTF/gobject/GUniquePtr.cpp: Added.
      (log):
      (takeLogStr):
      (TestWebKitAPI::TEST):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@162516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b726b8b0
  2. 14 Jan, 2014 1 commit
    • andersca@apple.com's avatar
      Get rid of ThreadRestrictionVerifier · 98621338
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=127004
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      Remove now unneeded calls.
      
      * loader/icon/IconDatabase.cpp:
      (WebCore::IconDatabase::defaultIcon):
      (WebCore::IconDatabase::setIconDataForIconURL):
      (WebCore::IconDatabase::getOrCreateIconRecord):
      (WebCore::IconDatabase::readFromDatabase):
      
      Source/WTF:
      
      The ThreadRestrictionVerifier mechanism has been turned off for a while
      since it doesn't really have a good solution for objects that are passed between threads.
      Instead of having dead code in the tree, just get rid of it.
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/RefCounted.h:
      (WTF::RefCountedBase::ref):
      (WTF::RefCountedBase::hasOneRef):
      (WTF::RefCountedBase::refCount):
      (WTF::RefCountedBase::derefBase):
      * wtf/ThreadRestrictionVerifier.h: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      98621338
  3. 11 Jan, 2014 1 commit
    • weinig@apple.com's avatar
      Clean up iterator filter / iterator range code · c3967736
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126817
      
      Reviewed by Anders Carlsson.
      
      Source/WebKit2: 
      
      * Shared/APIArray.h:
      Update elementsOfType() to use combination of FilterIterator and TransformIterator
      (now that FilterIterator no longer has a transform predicate) and make use of the 
      makeFoo() helpers.
      
      Source/WTF: 
      
      - Renames IteratorPair to IteratorRange.
      - Splits FilterIterator into FilterIterator (which now only filters) and
        TransformIterator (which does the transform part of the old FilterIterator).
        Move both of these to IteratorAdaptors.h
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/FilterIterator.h: Removed.
      Add/remove files.
      
      * wtf/HashMap.h:
      (WTF::HashMap::keys):
      (WTF::HashMap::values):
      * wtf/RefPtrHashMap.h:
      Update for rename to IteratorRange. Simplify by using makeIteratorRange().
      
      * wtf/IteratorAdaptors.h: Copied from wtf/FilterIterator.h.
      (WTF::FilterIterator::FilterIterator):
      (WTF::FilterIterator::operator*):
      (WTF::makeFilterIterator):
      (WTF::TransformIterator::TransformIterator):
      (WTF::TransformIterator::operator++):
      (WTF::TransformIterator::operator*):
      (WTF::TransformIterator::operator==):
      (WTF::TransformIterator::operator!=):
      (WTF::makeTransformIterator):
      Split up filtering and transforming. Add makeFilterIterator() and makeTransformIterator()
      helpers.
      
      * wtf/IteratorPair.h: Removed.
      * wtf/IteratorRange.h: Copied from wtf/IteratorPair.h.
      (WTF::IteratorRange::IteratorRange):
      (WTF::makeIteratorRange):
      Renamed to IteratorRange and adds makeIteratorRange() helper.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161770 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c3967736
  4. 08 Jan, 2014 1 commit
    • andersca@apple.com's avatar
      Add WTF::StringView and use it for grammar checking · a2cf5704
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=126644
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Use a StringView in TextCheckerClient::checkTextOfParagraph to avoid upconverting strings unnecessarily.
      
      * editing/TextCheckingHelper.cpp:
      (WebCore::checkTextOfParagraph):
      Pass a StringView to TextCheckerClient::checkTextOfParagraph.
      
      * loader/EmptyClients.h:
      Update for TextCheckerClient changes.
      
      * platform/text/TextCheckerClient.h:
      Change TextCheckerClient::checkTextOfParagraph to take a StringView.
      
      Source/WebKit/efl:
      
      Update to match WebCore changes.
      
      * WebCoreSupport/EditorClientEfl.h:
      (WebCore::EditorClientEfl::checkTextOfParagraph):
      
      Source/WebKit/mac:
      
      * WebCoreSupport/WebEditorClient.h:
      * WebCoreSupport/WebEditorClient.mm:
      (WebEditorClient::checkTextOfParagraph):
      Update to match the new signature.
      
      (nsStringWithoutCopying):
      New function that creates an NSString that references StringView data
      without copying the data. (If this function proves to be useful elsewhere, it could
      potentially be added to StringView).
      
      Source/WebKit2:
      
      Use a StringView and remove a FIXME.
      
      * WebProcess/WebCoreSupport/WebEditorClient.cpp:
      (WebKit::WebEditorClient::checkTextOfParagraph):
      * WebProcess/WebCoreSupport/WebEditorClient.h:
      
      Source/WTF:
      
      Add a new StringView class which is an immutable reference to either an 8-bit or a 16-bit string.
      
      This makes it easier to pass substrings around without having to either copy string data
      or upconvert and use UChar pointers.
      
      The StringView class is very loosely based on the std::string_view class which is proposed for a future version of C++,
      see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3609.html for more details.
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/Forward.h:
      * wtf/text/StringView.h: Added.
      (WTF::StringView::StringView):
      (WTF::StringView::empty):
      (WTF::StringView::characters8):
      (WTF::StringView::characters16):
      (WTF::StringView::isEmpty):
      (WTF::StringView::length):
      (WTF::StringView::is8Bit):
      (WTF::StringView::substring):
      (WTF::StringView::toString):
      (WTF::StringView::toStringWithoutCopying):
      (WTF::StringView::encodedCharacters):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2cf5704
  5. 30 Dec, 2013 3 commits
  6. 28 Dec, 2013 1 commit
    • weinig@apple.com's avatar
      Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys()... · 548b85b4
      weinig@apple.com authored
      Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys() and HashMap::values() using IteratorPair
      https://bugs.webkit.org/show_bug.cgi?id=126253
      
      Reviewed by Anders Carlsson.
      
      ../WebKit2: 
      
      * Shared/APIArray.h:
      Update includes and make elementsOfType() a bit easier to read by using a typedef and some
      judicial indentation.
      
      * Shared/FilterIterator.h: Moved to WTF.
      * Shared/IteratorPair.h: Moved to WTF.
              
      * WebKit2.xcodeproj/project.pbxproj:
      Remove the two files.
      
      ../WTF: 
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      Add new files.
      
      * wtf/HashMap.h:
      * wtf/RefPtrHashMap.h:
      Remove the old implementation of keys() and values() and replace it with one
      that uses IteratorPair.
              
      * wtf/FilterIterator.h: Copied from Source/WebKit2/Shared/FilterIterator.h.
      * wtf/IteratorPair.h: Copied from Source/WebKit2/Shared/IteratorPair.h.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161114 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      548b85b4
  7. 16 Dec, 2013 1 commit
    • andersca@apple.com's avatar
      Remove EnumClass.h from WTF · 82c2afe7
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=125820
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Replace uses of ENUM_CLASS with real enum class declarations.
      
      * Modules/webdatabase/DatabaseBasicTypes.h:
      * Modules/webdatabase/DatabaseError.h:
      * Modules/webdatabase/SQLTransactionState.h:
      * bindings/js/JSSubtleCryptoCustom.cpp:
      * bindings/js/SerializedScriptValue.cpp:
      * crypto/CryptoAlgorithmIdentifier.h:
      * crypto/CryptoAlgorithmParameters.h:
      * crypto/CryptoKey.h:
      * crypto/CryptoKeyData.h:
      * crypto/CryptoKeyType.h:
      * crypto/keys/CryptoKeyDataRSAComponents.h:
      * inspector/InspectorTimelineAgent.h:
      
      Source/WTF:
      
      All compilers we build on now support real strongly typed enums, so we can remove the ENUM_CLASS version.
      
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CheckedArithmetic.h:
      * wtf/EnumClass.h: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      82c2afe7
  8. 12 Dec, 2013 1 commit
  9. 09 Dec, 2013 1 commit
  10. 27 Nov, 2013 1 commit
    • fpizlo@apple.com's avatar
      Do bytecode validation as part of testing · 2eb67eca
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124913
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      Also fix some small bugs in the bytecode liveness analysis that I found by doing
      this validation thingy.
      
      * bytecode/BytecodeLivenessAnalysis.cpp:
      (JSC::isValidRegisterForLiveness):
      (JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::validate):
      (JSC::CodeBlock::beginValidationDidFail):
      (JSC::CodeBlock::endValidationDidFail):
      * bytecode/CodeBlock.h:
      * runtime/Executable.cpp:
      (JSC::ScriptExecutable::prepareForExecutionImpl):
      * runtime/Options.h:
      
      Source/WTF: 
      
      Reviewed by Oliver Hunt.
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/FastBitVector.cpp: Added.
      (WTF::FastBitVector::dump):
      * wtf/FastBitVector.h:
      (WTF::FastBitVector::resize):
      (WTF::FastBitVector::bitCount):
      (WTF::FastBitVector::arrayLength):
      
      Tools: 
      
      Reviewed by Oliver Hunt.
      
      * Scripts/run-jsc-stress-tests:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2eb67eca
  11. 18 Nov, 2013 1 commit
  12. 09 Nov, 2013 1 commit
    • paroga@webkit.org's avatar
      Move RunLoop from WebCore to WTF · f8108ef5
      paroga@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=116606
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * PlatformBlackBerry.cmake:
      * PlatformEfl.cmake:
      * PlatformGTK.cmake:
      * PlatformWin.cmake:
      * WebCore.exp.in:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.xcodeproj/project.pbxproj:
      * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
      * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
      
      Source/WebKit/mac:
      
      * Carbon/CarbonWindowAdapter.mm:
      (+[CarbonWindowAdapter initialize]):
      * History/WebBackForwardList.mm:
      (+[WebBackForwardList initialize]):
      * History/WebHistoryItem.mm:
      (+[WebHistoryItem initialize]):
      * Misc/WebCache.mm:
      (+[WebCache initialize]):
      * Misc/WebElementDictionary.mm:
      (+[WebElementDictionary initialize]):
      * Misc/WebIconDatabase.mm:
      (+[WebIconDatabase initialize]):
      * Plugins/Hosted/WebHostedNetscapePluginView.mm:
      (+[WebHostedNetscapePluginView initialize]):
      * Plugins/WebBaseNetscapePluginView.mm:
      * Plugins/WebBasePluginPackage.mm:
      * Plugins/WebNetscapePluginView.mm:
      (+[WebNetscapePluginView initialize]):
      * WebCoreSupport/WebEditorClient.mm:
      (+[WebUndoStep initialize]):
      * WebCoreSupport/WebFrameLoaderClient.mm:
      * WebView/WebArchive.mm:
      (+[WebArchivePrivate initialize]):
      * WebView/WebDataSource.mm:
      (+[WebDataSource initialize]):
      * WebView/WebHTMLView.mm:
      (+[WebHTMLViewPrivate initialize]):
      (+[WebHTMLView initialize]):
      * WebView/WebPreferences.mm:
      (+[WebPreferences initialize]):
      * WebView/WebResource.mm:
      (+[WebResourcePrivate initialize]):
      * WebView/WebTextIterator.mm:
      (+[WebTextIteratorPrivate initialize]):
      * WebView/WebView.mm:
      (+[WebView initialize]):
      * WebView/WebViewData.mm:
      (+[WebViewPrivate initialize]):
      
      Source/WebKit2:
      
      * DatabaseProcess/DatabaseProcess.cpp:
      * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
      * NetworkProcess/NetworkConnectionToWebProcess.cpp:
      * NetworkProcess/NetworkProcess.cpp:
      * NetworkProcess/NetworkProcess.h:
      * NetworkProcess/NetworkResourceLoader.h:
      * NetworkProcess/mac/DiskCacheMonitor.h:
      * NetworkProcess/unix/NetworkProcessMainUnix.cpp:
      * Platform/CoreIPC/Connection.cpp:
      * Platform/CoreIPC/Connection.h:
      * Platform/CoreIPC/mac/ConnectionMac.cpp:
      * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
      * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
      * PluginProcess/PluginControllerProxy.h:
      * PluginProcess/PluginProcess.cpp:
      * PluginProcess/PluginProcess.h:
      * PluginProcess/WebProcessConnection.cpp:
      * PluginProcess/unix/PluginProcessMainUnix.cpp:
      * Shared/ChildProcess.cpp:
      * Shared/ChildProcess.h:
      * Shared/ChildProcessProxy.cpp:
      * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h:
      * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm:
      * Shared/Plugins/NPObjectProxy.cpp:
      * Shared/WebKit2Initialize.cpp:
      (WebKit::InitializeWebKit2):
      * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
      * UIProcess/API/mac/FindIndicatorWindow.h:
      * UIProcess/API/mac/WKPrintingView.mm:
      * UIProcess/API/mac/WKView.mm:
      * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
      * UIProcess/DrawingAreaProxyImpl.h:
      * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
      * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
      * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
      * UIProcess/Network/NetworkProcessProxy.cpp:
      * UIProcess/Plugins/PluginProcessProxy.cpp:
      * UIProcess/ResponsivenessTimer.cpp:
      * UIProcess/ResponsivenessTimer.h:
      * UIProcess/VisitedLinkProvider.h:
      * UIProcess/WebContext.cpp:
      * UIProcess/WebProcessProxy.cpp:
      * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
      * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
      * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
      * WebProcess/Network/WebResourceLoadScheduler.h:
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
      * WebProcess/Plugins/Netscape/NetscapePlugin.h:
      * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
      * WebProcess/Plugins/PluginView.h:
      * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
      * WebProcess/WebPage/DrawingAreaImpl.h:
      * WebProcess/WebPage/EventDispatcher.cpp:
      * WebProcess/WebPage/PageOverlay.h:
      * WebProcess/WebPage/WebPage.cpp:
      * WebProcess/WebPage/WebPage.h:
      * WebProcess/WebProcess.cpp:
      * WebProcess/efl/WebProcessMainEfl.cpp:
      * WebProcess/gtk/WebProcessMainGtk.cpp:
      
      Source/WTF:
      
      With this change RunLoop can be used in JavaScriptCore too.
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/PlatformBlackBerry.cmake:
      * wtf/PlatformEfl.cmake:
      * wtf/PlatformGTK.cmake:
      * wtf/PlatformWin.cmake:
      * wtf/RunLoop.cpp: Renamed from Source/WebCore/platform/RunLoop.cpp.
      (WTF::RunLoop::Holder::Holder):
      (WTF::RunLoop::Holder::runLoop):
      (WTF::RunLoop::initializeMainRunLoop):
      (WTF::RunLoop::current):
      (WTF::RunLoop::main):
      (WTF::RunLoop::isMain):
      (WTF::RunLoop::performWork):
      (WTF::RunLoop::dispatch):
      * wtf/RunLoop.h: Renamed from Source/WebCore/platform/RunLoop.h.
      (WTF::RunLoop::TimerBase::startRepeating):
      (WTF::RunLoop::TimerBase::startOneShot):
      (WTF::RunLoop::TimerBase::isRepeating):
      (WTF::RunLoop::Timer::Timer):
      (WTF::RunLoop::Timer::fired):
      * wtf/blackberry/RunLoopBlackBerry.cpp: Renamed from Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp.
      (WTF::RunLoop::RunLoop):
      (WTF::RunLoop::~RunLoop):
      (WTF::RunLoop::wakeUp):
      * wtf/cf/RunLoopCF.cpp: Renamed from Source/WebCore/platform/cf/RunLoopCF.cpp.
      (WTF::RunLoop::performWork):
      (WTF::RunLoop::RunLoop):
      (WTF::RunLoop::~RunLoop):
      (WTF::RunLoop::runForDuration):
      (WTF::RunLoop::wakeUp):
      (WTF::RunLoop::run):
      (WTF::RunLoop::stop):
      (WTF::RunLoop::TimerBase::timerFired):
      (WTF::RunLoop::TimerBase::TimerBase):
      (WTF::RunLoop::TimerBase::~TimerBase):
      (WTF::RunLoop::TimerBase::start):
      (WTF::RunLoop::TimerBase::stop):
      (WTF::RunLoop::TimerBase::isActive):
      * wtf/efl/RunLoopEfl.cpp: Renamed from Source/WebCore/platform/efl/RunLoopEfl.cpp.
      (WTF::RunLoop::RunLoop):
      (WTF::RunLoop::~RunLoop):
      (WTF::RunLoop::run):
      (WTF::RunLoop::stop):
      (WTF::RunLoop::wakeUpEvent):
      (WTF::RunLoop::wakeUp):
      (WTF::RunLoop::TimerBase::TimerBase):
      (WTF::RunLoop::TimerBase::~TimerBase):
      (WTF::RunLoop::TimerBase::timerFired):
      (WTF::RunLoop::TimerBase::start):
      (WTF::RunLoop::TimerBase::stop):
      (WTF::RunLoop::TimerBase::isActive):
      * wtf/gtk/RunLoopGtk.cpp: Renamed from Source/WebCore/platform/gtk/RunLoopGtk.cpp.
      (WTF::RunLoop::RunLoop):
      (WTF::RunLoop::~RunLoop):
      (WTF::RunLoop::run):
      (WTF::RunLoop::innermostLoop):
      (WTF::RunLoop::pushNestedMainLoop):
      (WTF::RunLoop::popNestedMainLoop):
      (WTF::RunLoop::stop):
      (WTF::RunLoop::queueWork):
      (WTF::RunLoop::wakeUp):
      (WTF::RunLoop::TimerBase::TimerBase):
      (WTF::RunLoop::TimerBase::~TimerBase):
      (WTF::RunLoop::TimerBase::clearTimerSource):
      (WTF::RunLoop::TimerBase::timerFiredCallback):
      (WTF::RunLoop::TimerBase::start):
      (WTF::RunLoop::TimerBase::stop):
      (WTF::RunLoop::TimerBase::isActive):
      * wtf/win/RunLoopWin.cpp: Renamed from Source/WebCore/platform/win/RunLoopWin.cpp.
      (WTF::RunLoop::RunLoopWndProc):
      (WTF::RunLoop::wndProc):
      (WTF::RunLoop::run):
      (WTF::RunLoop::stop):
      (WTF::RunLoop::registerRunLoopMessageWindowClass):
      (WTF::RunLoop::RunLoop):
      (WTF::RunLoop::~RunLoop):
      (WTF::RunLoop::wakeUp):
      (WTF::RunLoop::TimerBase::timerFired):
      (WTF::generateTimerID):
      (WTF::RunLoop::TimerBase::TimerBase):
      (WTF::RunLoop::TimerBase::~TimerBase):
      (WTF::RunLoop::TimerBase::start):
      (WTF::RunLoop::TimerBase::stop):
      (WTF::RunLoop::TimerBase::isActive):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f8108ef5
  13. 28 Oct, 2013 1 commit
    • carlosgc@webkit.org's avatar
      Unreviewed. Fix make distcheck. · d4b2f78b
      carlosgc@webkit.org authored
      Source/JavaScriptCore:
      
      * GNUmakefile.list.am: Add missing files to compilation.
      
      Source/WebCore:
      
      * GNUmakefile.am: Add crypto idl files to EXTRA_DIST and remove
      css/fullscreenQuickTime.css that was removed.
      
      Source/WebKit2:
      
      * GNUmakefile.am: Add messages.in files in
      UIProcess/Network/CustomProtocols/ to EXTRA_DIST.
      * GNUmakefile.list.am: Remove
      WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp from
      compilation because it depends on code generated only when
      database process is enabled.
      
      Source/WTF:
      
      * GNUmakefile.list.am: Remove unexistent file from compilation.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d4b2f78b
  14. 18 Oct, 2013 1 commit
    • fpizlo@apple.com's avatar
      A CodeBlock's StructureStubInfos shouldn't be in a Vector that we search using... · d49bfe80
      fpizlo@apple.com authored
      A CodeBlock's StructureStubInfos shouldn't be in a Vector that we search using code origins and machine code PCs
      https://bugs.webkit.org/show_bug.cgi?id=122940
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      This accomplishes a number of simplifications. StructureStubInfo is now non-moving,
      whereas previously it was in a Vector, so it moved. This allows you to use pointers to
      StructureStubInfo. This also eliminates the use of return PC as a way of finding the
      StructureStubInfo's. It removes some of the need for the compile-time property access
      records; for example the DFG no longer has to save information about registers in a
      property access record only to later save it to the stub info.
              
      The main thing is accomplishes is that it makes it easier to add StructureStubInfo's
      at any stage of compilation.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::printGetByIdCacheStatus):
      (JSC::CodeBlock::dumpBytecode):
      (JSC::CodeBlock::~CodeBlock):
      (JSC::CodeBlock::propagateTransitions):
      (JSC::CodeBlock::finalizeUnconditionally):
      (JSC::CodeBlock::addStubInfo):
      (JSC::CodeBlock::getStubInfoMap):
      (JSC::CodeBlock::shrinkToFit):
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::begin):
      (JSC::CodeBlock::end):
      (JSC::CodeBlock::rareCaseProfileForBytecodeOffset):
      * bytecode/CodeOrigin.h:
      (JSC::CodeOrigin::CodeOrigin):
      (JSC::CodeOrigin::isHashTableDeletedValue):
      (JSC::CodeOrigin::hash):
      (JSC::CodeOriginHash::hash):
      (JSC::CodeOriginHash::equal):
      * bytecode/GetByIdStatus.cpp:
      (JSC::GetByIdStatus::computeFor):
      * bytecode/GetByIdStatus.h:
      * bytecode/PutByIdStatus.cpp:
      (JSC::PutByIdStatus::computeFor):
      * bytecode/PutByIdStatus.h:
      * bytecode/StructureStubInfo.h:
      (JSC::getStructureStubInfoCodeOrigin):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::parseBlock):
      (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::link):
      * dfg/DFGJITCompiler.h:
      (JSC::DFG::PropertyAccessRecord::PropertyAccessRecord):
      (JSC::DFG::InRecord::InRecord):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileIn):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::callOperation):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::cachedGetById):
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::cachedGetById):
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      * jit/CCallHelpers.h:
      (JSC::CCallHelpers::setupArgumentsWithExecState):
      * jit/JIT.cpp:
      (JSC::PropertyStubCompilationInfo::copyToStubInfo):
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::PropertyStubCompilationInfo::slowCaseInfo):
      * jit/JITInlines.h:
      (JSC::JIT::callOperation):
      * jit/JITOperations.cpp:
      * jit/JITOperations.h:
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::emitSlow_op_get_by_id):
      (JSC::JIT::emitSlow_op_put_by_id):
      * jit/JITPropertyAccess32_64.cpp:
      (JSC::JIT::emitSlow_op_get_by_id):
      (JSC::JIT::emitSlow_op_put_by_id):
      * jit/Repatch.cpp:
      (JSC::appropriateGenericPutByIdFunction):
      (JSC::appropriateListBuildingPutByIdFunction):
      (JSC::resetPutByID):
      
      Source/WTF: 
      
      Reviewed by Oliver Hunt.
      
      * GNUmakefile.list.am:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/BagToHashMap.h: Added.
      (WTF::toHashMap):
      * wtf/CMakeLists.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d49bfe80
  15. 17 Oct, 2013 1 commit
  16. 16 Oct, 2013 1 commit
    • darin@apple.com's avatar
      Add PassRef and createRefCounted so we can improve creation of RefCounted objects · 889b02e5
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122904
      
      Reviewed by Anders Carlsson.
      
      Source/WTF:
      
      * GNUmakefile.list.am: Added PassRef.h.
      * WTF.vcxproj/WTF.vcxproj: Ditto.
      * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
      * WTF.xcodeproj/project.pbxproj: Ditto.
      * wtf/CMakeLists.txt: Ditto.
      
      * wtf/Forward.h: Added PassRef. Also re-sorted and un-indented to match what
      the style-checking script expects.
      
      * wtf/PassRef.h: Added. Includes the createRefCounted function template, which
      is analogous to make_unique, but is for reference counted objects, and also
      assumes that new will never return null. Also includes an overload of adoptRef
      that takes a reference rather than a pointer.
      
      * wtf/PassRefPtr.h: Include "PassRef.h" so we can share the adopted function.
      Got rid of declarations that duplicate ones in there.
      (WTF::refIfNotNull): Use nullptr.
      (WTF::derefIfNotNull): Use nullptr.
      (WTF::PassRefPtr::PassRefPtr): Use nullptr. Added an overload that takes a PassRef.
      (WTF::PassRefPtr::operator UnspecifiedBoolType): Use nullptr.
      (WTF::PassRefPtr::operator=): Made this deleted instead of compile time assertion.
      (WTF::PassRefPtr::PassRefPtr): Made adopting constructor use an adopt tag instead
      of an unused boolean.
      (WTF::PassRefPtr::leakRef): Use nullptr.
      (WTF::adoptRef): Use the adopt tag.
      
      * wtf/Ref.h: Use Noncopyable instead of rolling our own.
      (WTF::Ref::Ref): Add an overload that takes a PassRef.
      (WTF::Ref::operator=): Ditto.
      
      * wtf/RefPtr.h: Removed unneeded forward declaration of PassRefPtr.
      (WTF::RefPtr::RefPtr): Use nullptr. Added overload that takes a PassRef.
      (WTF::RefPtr::release): Use nullptr.
      (WTF::RefPtr::operator UnspecifiedBoolType): Use nullptr.
      (WTF::RefPtr::operator=): Added overload that takes a PassRef.
      (WTF::RefPtr::clear): Use nullptr.
      
      * wtf/StdLibExtras.h: Added inline keyword to isPointerTypeAlignmentOkay,
      reinterpret_cast_ptr, and make_unique. Seems like a simple oversight that these
      were missing before.
      
      Tools:
      
      * TestWebKitAPI/Tests/WTF/Ref.cpp: Added some basic tests for adoptRef and PassRef.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      889b02e5
  17. 23 Sep, 2013 1 commit
  18. 19 Sep, 2013 1 commit
  19. 15 Sep, 2013 2 commits
  20. 12 Sep, 2013 1 commit
    • mikhail.pozdnyakov@intel.com's avatar
      Remove home-brewed nullptr · e69c57e6
      mikhail.pozdnyakov@intel.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119624
      
      Reviewed by Anders Carlsson.
      
      The standard C++11 nullptr and std::nullptr_t type should be used now.
      
      Source/JavaScriptCore:
      
      * heap/PassWeak.h:
      * heap/Weak.h:
      
      Source/WebCore:
      
      * bindings/js/JSDOMBinding.h:
      
      Source/WebKit/efl:
      
      * tests/UnitTestUtils/EWKTestView.cpp:
      
      Source/WTF:
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/NullPtr.cpp: Removed.
      * wtf/NullPtr.h: Removed.
      * wtf/OwnArrayPtr.h:
      * wtf/OwnPtr.h:
      * wtf/PassOwnPtr.h:
      * wtf/PassRefPtr.h:
      * wtf/RetainPtr.h:
      * wtf/win/GDIObject.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e69c57e6
  21. 10 Sep, 2013 2 commits
  22. 09 Sep, 2013 1 commit
  23. 08 Sep, 2013 1 commit
  24. 07 Sep, 2013 2 commits
    • andersca@apple.com's avatar
      Remove NonCopyableSort.h from WTF · 64f1b5a3
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120984
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      * css/MediaQuery.cpp:
      (WebCore::MediaQuery::MediaQuery):
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
      * html/RangeInputType.cpp:
      (WebCore::RangeInputType::updateTickMarkValues):
      * inspector/InspectorMemoryAgent.cpp:
      * page/CaptionUserPreferences.cpp:
      (WebCore::CaptionUserPreferences::sortedTrackListForMenu):
      * page/CaptionUserPreferences.h:
      * page/CaptionUserPreferencesMediaAF.cpp:
      (WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
      * platform/graphics/texmap/TextureMapper.cpp:
      (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
      
      Source/WebKit/blackberry:
      
      * WebKitSupport/RenderQueue.cpp:
      (BlackBerry::WebKit::RenderQueue::quickSort):
      
      Source/WTF:
      
      std::sort as defined by C++11 moves elements when possible, so there's no need for nonCopyableSort anymore.
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/NonCopyingSort.h: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      64f1b5a3
    • andersca@apple.com's avatar
      Get rid of PassOwnArrayPtr · c704b419
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120964
      
      Reviewed by Andreas Kling.
      
      Source/JavaScriptCore:
      
      Use OwnArrayPtr instead of PassOwnArrayPtr.
      
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::BytecodeGenerator):
      * runtime/SymbolTable.h:
      (JSC::SharedSymbolTable::setSlowArguments):
      
      Source/WebCore:
      
      Use OwnArrayPtr instead of PassOwnArrayPtr.
      
      * html/canvas/WebGLRenderingContext.cpp:
      * platform/Length.cpp:
      (WebCore::newCoordsArray):
      (WebCore::newLengthArray):
      * platform/Length.h:
      * platform/audio/FFTFrame.h:
      * platform/graphics/GraphicsContext3D.cpp:
      * platform/graphics/GraphicsContext3D.h:
      * platform/graphics/texmap/TextureMapperGL.cpp:
      * platform/graphics/wince/SharedBitmap.cpp:
      
      Source/WebKit2:
      
      Remove unneeded includes.
      
      * Shared/ImmutableArray.h:
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      
      Source/WTF:
      
      Make OwnArrayPtr a proper move-only type and get rid of PassOwnArrayPtr.
      
      Ultimately I'd like to get rid of OwnArrayPtr as well and just have it be a specialization
      of OwnPtr<T[]>, but this is a step in the right direction.
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/Assertions.cpp:
      * wtf/CMakeLists.txt:
      * wtf/DateMath.h:
      * wtf/FastBitVector.h:
      * wtf/Forward.h:
      * wtf/OwnArrayPtr.h:
      * wtf/PassOwnArrayPtr.h: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c704b419
  25. 27 Aug, 2013 1 commit
    • commit-queue@webkit.org's avatar
      [gstreamer] Make sure gstreamer source element is thread-safe · 069420f5
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=115352
      
      Patch by Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk> on 2013-08-27
      Reviewed by Philippe Normand.
      
      Source/WebCore:
      
      GStreamer source element may be created by any gstreamer element on any thread by calling
      gst_element_make_from_uri with the URIs handled by the source element.
      This patch makes sure the gstreamer source element is thread-safe to avoid issues with it
      being created outside the main thread.
      
      * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
      (webkit_web_src_init):
      (webKitWebSrcDispose):
      (webKitWebSrcFinalize):
      (webKitWebSrcSetProperty):
      (webKitWebSrcGetProperty):
      (removeTimeoutSources):
      (webKitWebSrcStop):
      (webKitWebSrcStart):
      (webKitWebSrcChangeState):
      (webKitWebSrcQueryWithParent):
      (webKitWebSrcGetUri):
      (webKitWebSrcSetUri):
      (webKitWebSrcNeedDataMainCb):
      (webKitWebSrcNeedDataCb):
      (webKitWebSrcEnoughDataMainCb):
      (webKitWebSrcEnoughDataCb):
      (webKitWebSrcSeekMainCb):
      (webKitWebSrcSeekDataCb):
      (webKitWebSrcSetMediaPlayer):
      (StreamingClient::StreamingClient):
      (StreamingClient::~StreamingClient):
      (StreamingClient::createReadBuffer):
      (StreamingClient::handleResponseReceived):
      (StreamingClient::handleDataReceived):
      (StreamingClient::handleNotifyFinished):
      (CachedResourceStreamingClient::CachedResourceStreamingClient):
      (CachedResourceStreamingClient::~CachedResourceStreamingClient):
      (CachedResourceStreamingClient::loadFailed):
      (CachedResourceStreamingClient::setDefersLoading):
      (CachedResourceStreamingClient::getOrCreateReadBuffer):
      (CachedResourceStreamingClient::responseReceived):
      (CachedResourceStreamingClient::dataReceived):
      (CachedResourceStreamingClient::notifyFinished):
      (ResourceHandleStreamingClient::ResourceHandleStreamingClient):
      (ResourceHandleStreamingClient::~ResourceHandleStreamingClient):
      (ResourceHandleStreamingClient::loadFailed):
      (ResourceHandleStreamingClient::setDefersLoading):
      (ResourceHandleStreamingClient::getOrCreateReadBuffer):
      (ResourceHandleStreamingClient::willSendRequest):
      (ResourceHandleStreamingClient::didReceiveResponse):
      (ResourceHandleStreamingClient::didReceiveData):
      (ResourceHandleStreamingClient::didFinishLoading):
      (ResourceHandleStreamingClient::didFail):
      (ResourceHandleStreamingClient::wasBlocked):
      (ResourceHandleStreamingClient::cannotShowURL):
      Make element thread-safe, add support to use the element without a player associated (e.g.
      the DASH plugin using the webkitsrc to download fragments), use GMutexLocker to simplify
      locks and other general improvements.
      
      Source/WTF:
      
      Add convenience class that simplifies locking and unlocking a GMutex.
      
      * GNUmakefile.list.am:
      * wtf/gobject/GMutexLocker.h: Added.
      (WebCore::GMutexLocker::GMutexLocker):
      (WebCore::GMutexLocker::~GMutexLocker):
      (WebCore::GMutexLocker::lock):
      (WebCore::GMutexLocker::unlock):
      (WebCore::GMutexLocker::mutex):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      069420f5
  26. 23 Aug, 2013 1 commit
    • oliver@apple.com's avatar
      Support in memory compression of rarely used data · abcf78c4
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120143
      
      Reviewed by Gavin Barraclough.
      
      Source/JavaScriptCore:
      
      Include zlib in LD_FLAGS and make UnlinkedCodeBlock make use of CompressibleVector.  This saves ~200k on google maps.
      
      * Configurations/JavaScriptCore.xcconfig:
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset):
      (JSC::UnlinkedCodeBlock::addExpressionInfo):
      * bytecode/UnlinkedCodeBlock.h:
      
      Source/WTF:
      
      Adds a set of utility functions to wrap the use of zlib over a generic
      type or a Vector<> as well as adding CompressibleVector that wraps
      either a Vector<> or compressed data.
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/CheckedArithmetic.h:
      * wtf/Compression.cpp: Added.
      (WTF::zAlloc):
      (WTF::zFree):
      (WTF::GenericCompressedData::create):
      (WTF::GenericCompressedData::decompress):
      * wtf/Compression.h: Added.
      (WTF::GenericCompressedData::compressedSize):
      (WTF::GenericCompressedData::originalSize):
      (WTF::GenericCompressedData::GenericCompressedData):
      (WTF::CompressedVector::create):
      (WTF::CompressedVector::decompress):
      (WTF::CompressedVector::size):
      (WTF::CompressibleVector::CompressibleVector):
      (WTF::CompressibleVector::shrinkToFit):
      (WTF::CompressibleVector::size):
      (WTF::CompressibleVector::operator[]):
      (WTF::CompressibleVector::at):
      (WTF::CompressibleVector::begin):
      (WTF::CompressibleVector::end):
      (WTF::CompressibleVector::data):
      (WTF::CompressibleVector::decompressIfNecessary):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      abcf78c4
  27. 15 Aug, 2013 1 commit
    • fpizlo@apple.com's avatar
      Typed arrays should be rewritten · 0e0d9312
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119064
      
      .: 
      
      Reviewed by Oliver Hunt.
      
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * Source/autotools/symbols.filter:
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      Typed arrays were previously deficient in several major ways:
              
      - They were defined separately in WebCore and in the jsc shell. The two
        implementations were different, and the jsc shell one was basically wrong.
        The WebCore one was quite awful, also.
              
      - Typed arrays were not visible to the JIT except through some weird hooks.
        For example, the JIT could not ask "what is the Structure that this typed
        array would have if I just allocated it from this global object". Also,
        it was difficult to wire any of the typed array intrinsics, because most
        of the functionality wasn't visible anywhere in JSC.
              
      - Typed array allocation was brain-dead. Allocating a typed array involved
        two JS objects, two GC weak handles, and three malloc allocations.
              
      - Neutering. It involved keeping tabs on all native views but not the view
        wrappers, even though the native views can autoneuter just by asking the
        buffer if it was neutered anytime you touch them; while the JS view
        wrappers are the ones that you really want to reach out to.
              
      - Common case-ing. Most typed arrays have one buffer and one view, and
        usually nobody touches the buffer. Yet we created all of that stuff
        anyway, using data structures optimized for the case where you had a lot
        of views.
              
      - Semantic goofs. Typed arrays should, in the future, behave like ES
        features rather than DOM features, for example when it comes to exceptions.
        Firefox already does this and I agree with them.
              
      This patch cleanses our codebase of these sins:
              
      - Typed arrays are almost entirely defined in JSC. Only the lifecycle
        management of native references to buffers is left to WebCore.
              
      - Allocating a typed array requires either two GC allocations (a cell and a
        copied storage vector) or one GC allocation, a malloc allocation, and a
        weak handle (a cell and a malloc'd storage vector, plus a finalizer for the
        latter). The latter is only used for oversize arrays. Remember that before
        it was 7 allocations no matter what.
              
      - Typed arrays require just 4 words of overhead: Structure*, Butterfly*,
        mode/length, void* vector. Before it was a lot more than that - remember,
        there were five additional objects that did absolutely nothing for anybody.
              
      - Native views aren't tracked by the buffer, or by the wrappers. They are
        transient. In the future we'll probably switch to not even having them be
        malloc'd.
              
      - Native array buffers have an efficient way of tracking all of their JS view
        wrappers, both for neutering, and for lifecycle management. The GC
        special-cases native array buffers. This saves a bunch of grief; for example
        it means that a JS view wrapper can refer to its buffer via the butterfly,
        which would be dead by the time we went to finalize.
              
      - Typed array semantics now match Firefox, which also happens to be where the
        standards are going. The discussion on webkit-dev seemed to confirm that
        Chrome is also heading in this direction. This includes making
        Uint8ClampedArray not a subtype of Uint8Array, and getting rid of
        ArrayBufferView as a JS-visible construct.
              
      This is up to a 10x speed-up on programs that allocate a lot of typed arrays.
      It's a 1% speed-up on Octane. It also opens up a bunch of possibilities for
      further typed array optimizations in the JSC JITs, including inlining typed
      array allocation, inlining more of the accessors, reducing the cost of type
      checks, etc.
              
      An additional property of this patch is that typed arrays are mostly
      implemented using templates. This deduplicates a bunch of code, but does mean
      that we need some hacks for exporting s_info's of template classes. See
      JSGenericTypedArrayView.h and JSTypedArrays.cpp. Those hacks are fairly
      low-impact compared to code duplication.
              
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * GNUmakefile.list.am:
      * JSCTypedArrayStubs.h: Removed.
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/ByValInfo.h:
      (JSC::hasOptimizableIndexingForClassInfo):
      (JSC::jitArrayModeForClassInfo):
      (JSC::typedArrayTypeForJITArrayMode):
      * bytecode/SpeculatedType.cpp:
      (JSC::speculationFromClassInfo):
      * dfg/DFGArrayMode.cpp:
      (JSC::DFG::toTypedArrayType):
      * dfg/DFGArrayMode.h:
      (JSC::DFG::ArrayMode::typedArrayType):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::checkArray):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
      (JSC::DFG::SpeculativeJIT::compileGetArrayLength):
      * dfg/DFGSpeculativeJIT.h:
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * heap/CopyToken.h:
      * heap/DeferGC.h:
      (JSC::DeferGCForAWhile::DeferGCForAWhile):
      (JSC::DeferGCForAWhile::~DeferGCForAWhile):
      * heap/GCIncomingRefCounted.h: Added.
      (JSC::GCIncomingRefCounted::GCIncomingRefCounted):
      (JSC::GCIncomingRefCounted::~GCIncomingRefCounted):
      (JSC::GCIncomingRefCounted::numberOfIncomingReferences):
      (JSC::GCIncomingRefCounted::incomingReferenceAt):
      (JSC::GCIncomingRefCounted::singletonFlag):
      (JSC::GCIncomingRefCounted::hasVectorOfCells):
      (JSC::GCIncomingRefCounted::hasAnyIncoming):
      (JSC::GCIncomingRefCounted::hasSingleton):
      (JSC::GCIncomingRefCounted::singleton):
      (JSC::GCIncomingRefCounted::vectorOfCells):
      * heap/GCIncomingRefCountedInlines.h: Added.
      (JSC::::addIncomingReference):
      (JSC::::filterIncomingReferences):
      * heap/GCIncomingRefCountedSet.h: Added.
      (JSC::GCIncomingRefCountedSet::size):
      * heap/GCIncomingRefCountedSetInlines.h: Added.
      (JSC::::GCIncomingRefCountedSet):
      (JSC::::~GCIncomingRefCountedSet):
      (JSC::::addReference):
      (JSC::::sweep):
      (JSC::::removeAll):
      (JSC::::removeDead):
      * heap/Heap.cpp:
      (JSC::Heap::addReference):
      (JSC::Heap::extraSize):
      (JSC::Heap::size):
      (JSC::Heap::capacity):
      (JSC::Heap::collect):
      (JSC::Heap::decrementDeferralDepth):
      (JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
      * heap/Heap.h:
      * interpreter/CallFrame.h:
      (JSC::ExecState::dataViewTable):
      * jit/JIT.h:
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::privateCompileGetByVal):
      (JSC::JIT::privateCompilePutByVal):
      (JSC::JIT::emitIntTypedArrayGetByVal):
      (JSC::JIT::emitFloatTypedArrayGetByVal):
      (JSC::JIT::emitIntTypedArrayPutByVal):
      (JSC::JIT::emitFloatTypedArrayPutByVal):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * runtime/ArrayBuffer.cpp:
      (JSC::ArrayBuffer::transfer):
      * runtime/ArrayBuffer.h:
      (JSC::ArrayBuffer::createAdopted):
      (JSC::ArrayBuffer::ArrayBuffer):
      (JSC::ArrayBuffer::gcSizeEstimateInBytes):
      (JSC::ArrayBuffer::pin):
      (JSC::ArrayBuffer::unpin):
      (JSC::ArrayBufferContents::tryAllocate):
      * runtime/ArrayBufferView.cpp:
      (JSC::ArrayBufferView::ArrayBufferView):
      (JSC::ArrayBufferView::~ArrayBufferView):
      (JSC::ArrayBufferView::setNeuterable):
      * runtime/ArrayBufferView.h:
      (JSC::ArrayBufferView::isNeutered):
      (JSC::ArrayBufferView::buffer):
      (JSC::ArrayBufferView::baseAddress):
      (JSC::ArrayBufferView::byteOffset):
      (JSC::ArrayBufferView::verifySubRange):
      (JSC::ArrayBufferView::clampOffsetAndNumElements):
      (JSC::ArrayBufferView::calculateOffsetAndLength):
      * runtime/ClassInfo.h:
      * runtime/CommonIdentifiers.h:
      * runtime/DataView.cpp: Added.
      (JSC::DataView::DataView):
      (JSC::DataView::create):
      (JSC::DataView::wrap):
      * runtime/DataView.h: Added.
      (JSC::DataView::byteLength):
      (JSC::DataView::getType):
      (JSC::DataView::get):
      (JSC::DataView::set):
      * runtime/Float32Array.h:
      * runtime/Float64Array.h:
      * runtime/GenericTypedArrayView.h: Added.
      (JSC::GenericTypedArrayView::data):
      (JSC::GenericTypedArrayView::set):
      (JSC::GenericTypedArrayView::setRange):
      (JSC::GenericTypedArrayView::zeroRange):
      (JSC::GenericTypedArrayView::zeroFill):
      (JSC::GenericTypedArrayView::length):
      (JSC::GenericTypedArrayView::byteLength):
      (JSC::GenericTypedArrayView::item):
      (JSC::GenericTypedArrayView::checkInboundData):
      (JSC::GenericTypedArrayView::getType):
      * runtime/GenericTypedArrayViewInlines.h: Added.
      (JSC::::GenericTypedArrayView):
      (JSC::::create):
      (JSC::::createUninitialized):
      (JSC::::subarray):
      (JSC::::wrap):
      * runtime/IndexingHeader.h:
      (JSC::IndexingHeader::arrayBuffer):
      (JSC::IndexingHeader::setArrayBuffer):
      * runtime/Int16Array.h:
      * runtime/Int32Array.h:
      * runtime/Int8Array.h:
      * runtime/JSArrayBuffer.cpp: Added.
      (JSC::JSArrayBuffer::JSArrayBuffer):
      (JSC::JSArrayBuffer::finishCreation):
      (JSC::JSArrayBuffer::create):
      (JSC::JSArrayBuffer::createStructure):
      (JSC::JSArrayBuffer::getOwnPropertySlot):
      (JSC::JSArrayBuffer::getOwnPropertyDescriptor):
      (JSC::JSArrayBuffer::put):
      (JSC::JSArrayBuffer::defineOwnProperty):
      (JSC::JSArrayBuffer::deleteProperty):
      (JSC::JSArrayBuffer::getOwnNonIndexPropertyNames):
      * runtime/JSArrayBuffer.h: Added.
      (JSC::JSArrayBuffer::impl):
      (JSC::toArrayBuffer):
      * runtime/JSArrayBufferConstructor.cpp: Added.
      (JSC::JSArrayBufferConstructor::JSArrayBufferConstructor):
      (JSC::JSArrayBufferConstructor::finishCreation):
      (JSC::JSArrayBufferConstructor::create):
      (JSC::JSArrayBufferConstructor::createStructure):
      (JSC::constructArrayBuffer):
      (JSC::JSArrayBufferConstructor::getConstructData):
      (JSC::JSArrayBufferConstructor::getCallData):
      * runtime/JSArrayBufferConstructor.h: Added.
      * runtime/JSArrayBufferPrototype.cpp: Added.
      (JSC::arrayBufferProtoFuncSlice):
      (JSC::JSArrayBufferPrototype::JSArrayBufferPrototype):
      (JSC::JSArrayBufferPrototype::finishCreation):
      (JSC::JSArrayBufferPrototype::create):
      (JSC::JSArrayBufferPrototype::createStructure):
      * runtime/JSArrayBufferPrototype.h: Added.
      * runtime/JSArrayBufferView.cpp: Added.
      (JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
      (JSC::JSArrayBufferView::JSArrayBufferView):
      (JSC::JSArrayBufferView::finishCreation):
      (JSC::JSArrayBufferView::getOwnPropertySlot):
      (JSC::JSArrayBufferView::getOwnPropertyDescriptor):
      (JSC::JSArrayBufferView::put):
      (JSC::JSArrayBufferView::defineOwnProperty):
      (JSC::JSArrayBufferView::deleteProperty):
      (JSC::JSArrayBufferView::getOwnNonIndexPropertyNames):
      (JSC::JSArrayBufferView::finalize):
      * runtime/JSArrayBufferView.h: Added.
      (JSC::JSArrayBufferView::sizeOf):
      (JSC::JSArrayBufferView::ConstructionContext::operator!):
      (JSC::JSArrayBufferView::ConstructionContext::structure):
      (JSC::JSArrayBufferView::ConstructionContext::vector):
      (JSC::JSArrayBufferView::ConstructionContext::length):
      (JSC::JSArrayBufferView::ConstructionContext::mode):
      (JSC::JSArrayBufferView::ConstructionContext::butterfly):
      (JSC::JSArrayBufferView::mode):
      (JSC::JSArrayBufferView::vector):
      (JSC::JSArrayBufferView::length):
      (JSC::JSArrayBufferView::offsetOfVector):
      (JSC::JSArrayBufferView::offsetOfLength):
      (JSC::JSArrayBufferView::offsetOfMode):
      * runtime/JSArrayBufferViewInlines.h: Added.
      (JSC::JSArrayBufferView::slowDownAndWasteMemoryIfNecessary):
      (JSC::JSArrayBufferView::buffer):
      (JSC::JSArrayBufferView::impl):
      (JSC::JSArrayBufferView::neuter):
      (JSC::JSArrayBufferView::byteOffset):
      * runtime/JSCell.cpp:
      (JSC::JSCell::slowDownAndWasteMemory):
      (JSC::JSCell::getTypedArrayImpl):
      * runtime/JSCell.h:
      * runtime/JSDataView.cpp: Added.
      (JSC::JSDataView::JSDataView):
      (JSC::JSDataView::create):
      (JSC::JSDataView::createUninitialized):
      (JSC::JSDataView::set):
      (JSC::JSDataView::typedImpl):
      (JSC::JSDataView::getOwnPropertySlot):
      (JSC::JSDataView::getOwnPropertyDescriptor):
      (JSC::JSDataView::slowDownAndWasteMemory):
      (JSC::JSDataView::getTypedArrayImpl):
      (JSC::JSDataView::createStructure):
      * runtime/JSDataView.h: Added.
      * runtime/JSDataViewPrototype.cpp: Added.
      (JSC::JSDataViewPrototype::JSDataViewPrototype):
      (JSC::JSDataViewPrototype::create):
      (JSC::JSDataViewPrototype::createStructure):
      (JSC::JSDataViewPrototype::getOwnPropertySlot):
      (JSC::JSDataViewPrototype::getOwnPropertyDescriptor):
      (JSC::getData):
      (JSC::setData):
      (JSC::dataViewProtoFuncGetInt8):
      (JSC::dataViewProtoFuncGetInt16):
      (JSC::dataViewProtoFuncGetInt32):
      (JSC::dataViewProtoFuncGetUint8):
      (JSC::dataViewProtoFuncGetUint16):
      (JSC::dataViewProtoFuncGetUint32):
      (JSC::dataViewProtoFuncGetFloat32):
      (JSC::dataViewProtoFuncGetFloat64):
      (JSC::dataViewProtoFuncSetInt8):
      (JSC::dataViewProtoFuncSetInt16):
      (JSC::dataViewProtoFuncSetInt32):
      (JSC::dataViewProtoFuncSetUint8):
      (JSC::dataViewProtoFuncSetUint16):
      (JSC::dataViewProtoFuncSetUint32):
      (JSC::dataViewProtoFuncSetFloat32):
      (JSC::dataViewProtoFuncSetFloat64):
      * runtime/JSDataViewPrototype.h: Added.
      * runtime/JSFloat32Array.h: Added.
      * runtime/JSFloat64Array.h: Added.
      * runtime/JSGenericTypedArrayView.h: Added.
      (JSC::JSGenericTypedArrayView::byteLength):
      (JSC::JSGenericTypedArrayView::byteSize):
      (JSC::JSGenericTypedArrayView::typedVector):
      (JSC::JSGenericTypedArrayView::canGetIndexQuickly):
      (JSC::JSGenericTypedArrayView::canSetIndexQuickly):
      (JSC::JSGenericTypedArrayView::getIndexQuicklyAsNativeValue):
      (JSC::JSGenericTypedArrayView::getIndexQuicklyAsDouble):
      (JSC::JSGenericTypedArrayView::getIndexQuickly):
      (JSC::JSGenericTypedArrayView::setIndexQuicklyToNativeValue):
      (JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble):
      (JSC::JSGenericTypedArrayView::setIndexQuickly):
      (JSC::JSGenericTypedArrayView::canAccessRangeQuickly):
      (JSC::JSGenericTypedArrayView::typedImpl):
      (JSC::JSGenericTypedArrayView::createStructure):
      (JSC::JSGenericTypedArrayView::info):
      (JSC::toNativeTypedView):
      * runtime/JSGenericTypedArrayViewConstructor.h: Added.
      * runtime/JSGenericTypedArrayViewConstructorInlines.h: Added.
      (JSC::::JSGenericTypedArrayViewConstructor):
      (JSC::::finishCreation):
      (JSC::::create):
      (JSC::::createStructure):
      (JSC::constructGenericTypedArrayView):
      (JSC::::getConstructData):
      (JSC::::getCallData):
      * runtime/JSGenericTypedArrayViewInlines.h: Added.
      (JSC::::JSGenericTypedArrayView):
      (JSC::::create):
      (JSC::::createUninitialized):
      (JSC::::validateRange):
      (JSC::::setWithSpecificType):
      (JSC::::set):
      (JSC::::getOwnPropertySlot):
      (JSC::::getOwnPropertyDescriptor):
      (JSC::::put):
      (JSC::::defineOwnProperty):
      (JSC::::deleteProperty):
      (JSC::::getOwnPropertySlotByIndex):
      (JSC::::putByIndex):
      (JSC::::deletePropertyByIndex):
      (JSC::::getOwnNonIndexPropertyNames):
      (JSC::::getOwnPropertyNames):
      (JSC::::visitChildren):
      (JSC::::copyBackingStore):
      (JSC::::slowDownAndWasteMemory):
      (JSC::::getTypedArrayImpl):
      * runtime/JSGenericTypedArrayViewPrototype.h: Added.
      * runtime/JSGenericTypedArrayViewPrototypeInlines.h: Added.
      (JSC::genericTypedArrayViewProtoFuncSet):
      (JSC::genericTypedArrayViewProtoFuncSubarray):
      (JSC::::JSGenericTypedArrayViewPrototype):
      (JSC::::finishCreation):
      (JSC::::create):
      (JSC::::createStructure):
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
      (JSC::JSGlobalObject::visitChildren):
      * runtime/JSGlobalObject.h:
      (JSC::JSGlobalObject::arrayBufferPrototype):
      (JSC::JSGlobalObject::arrayBufferStructure):
      (JSC::JSGlobalObject::typedArrayStructure):
      * runtime/JSInt16Array.h: Added.
      * runtime/JSInt32Array.h: Added.
      * runtime/JSInt8Array.h: Added.
      * runtime/JSTypedArrayConstructors.cpp: Added.
      * runtime/JSTypedArrayConstructors.h: Added.
      * runtime/JSTypedArrayPrototypes.cpp: Added.
      * runtime/JSTypedArrayPrototypes.h: Added.
      * runtime/JSTypedArrays.cpp: Added.
      * runtime/JSTypedArrays.h: Added.
      * runtime/JSUint16Array.h: Added.
      * runtime/JSUint32Array.h: Added.
      * runtime/JSUint8Array.h: Added.
      * runtime/JSUint8ClampedArray.h: Added.
      * runtime/Operations.h:
      * runtime/Options.h:
      * runtime/SimpleTypedArrayController.cpp: Added.
      (JSC::SimpleTypedArrayController::SimpleTypedArrayController):
      (JSC::SimpleTypedArrayController::~SimpleTypedArrayController):
      (JSC::SimpleTypedArrayController::toJS):
      * runtime/SimpleTypedArrayController.h: Added.
      * runtime/Structure.h:
      (JSC::Structure::couldHaveIndexingHeader):
      * runtime/StructureInlines.h:
      (JSC::Structure::hasIndexingHeader):
      * runtime/TypedArrayAdaptors.h: Added.
      (JSC::IntegralTypedArrayAdaptor::toNative):
      (JSC::IntegralTypedArrayAdaptor::toJSValue):
      (JSC::IntegralTypedArrayAdaptor::toDouble):
      (JSC::FloatTypedArrayAdaptor::toNative):
      (JSC::FloatTypedArrayAdaptor::toJSValue):
      (JSC::FloatTypedArrayAdaptor::toDouble):
      (JSC::Uint8ClampedAdaptor::toNative):
      (JSC::Uint8ClampedAdaptor::toJSValue):
      (JSC::Uint8ClampedAdaptor::toDouble):
      (JSC::Uint8ClampedAdaptor::clamp):
      * runtime/TypedArrayController.cpp: Added.
      (JSC::TypedArrayController::TypedArrayController):
      (JSC::TypedArrayController::~TypedArrayController):
      * runtime/TypedArrayController.h: Added.
      * runtime/TypedArrayDescriptor.h: Removed.
      * runtime/TypedArrayInlines.h: Added.
      * runtime/TypedArrayType.cpp: Added.
      (JSC::classInfoForType):
      (WTF::printInternal):
      * runtime/TypedArrayType.h: Added.
      (JSC::toIndex):
      (JSC::isTypedView):
      (JSC::elementSize):
      (JSC::isInt):
      (JSC::isFloat):
      (JSC::isSigned):
      (JSC::isClamped):
      * runtime/TypedArrays.h: Added.
      * runtime/Uint16Array.h:
      * runtime/Uint32Array.h:
      * runtime/Uint8Array.h:
      * runtime/Uint8ClampedArray.h:
      * runtime/VM.cpp:
      (JSC::VM::VM):
      (JSC::VM::~VM):
      * runtime/VM.h:
      
      Source/WebCore: 
      
      Reviewed by Oliver Hunt.
      
      Typed arrays are now implemented in JavaScriptCore, and WebCore is merely a
      client of them. There is only one layering violation: WebCore installs a
      WebCoreTypedArrayController on VM, which makes the
      ArrayBuffer<->JSArrayBuffer relationship resemble DOM wrappers. By default,
      JSC makes the ownership go one way; the JSArrayBuffer keeps the ArrayBuffer
      alive but if ArrayBuffer is kept alive from native code then the
      JSArrayByffer may die. WebCoreTypedArrayController will keep the
      JSArrayBuffer alive if the ArrayBuffer is in the opaque root set.
              
      To make non-JSDOMWrappers behave like DOM wrappers, a bunch of code is
      changed to make most references to wrappers refer to JSObject* rather than
      JSDOMWrapper*.
              
      Array buffer views are now transient; the JS array buffer view wrappers
      don't own them or keep them alive. This required a bunch of changes to make
      bindings code use RefPtr<ArrayBufferView> to hold onto their views.
              
      Also there is a bunch of new code to make JSC-provided array buffers and
      views obey the toJS/to<ClassName> idiom for wrapping and unwrapping.
              
      Finally, the DataView API is now completely different: the JSDataView
      provides the same user-visible JS API but using its own internal magic; the
      C++ code that uses DataView now uses a rather different API that is not
      aware of usual DOM semantics, since it's in JSC and not WebCore. It's
      equally useful for all of WebCore's purposes, but some code had to change
      to adapt the new conventions.
              
      Some tests have been changed or rebased due to changes in behavior, that
      bring us into conformance with where the standards are going and allow us to
      match Firefox behavior.
      
      Automake work and some additional GTK changes courtesy of
      Zan Dobersek <zdobersek@igalia.com>.
              
      Additional Qt changes courtesy of Arunprasad Rajkumar <arurajku@cisco.com>.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * ForwardingHeaders/runtime/DataView.h: Added.
      * ForwardingHeaders/runtime/JSArrayBuffer.h: Added.
      * ForwardingHeaders/runtime/JSArrayBufferView.h: Added.
      * ForwardingHeaders/runtime/JSDataView.h: Added.
      * ForwardingHeaders/runtime/JSTypedArrays.h: Added.
      * ForwardingHeaders/runtime/TypedArrayController.h: Added.
      * ForwardingHeaders/runtime/TypedArrayInlines.h: Added.
      * ForwardingHeaders/runtime/TypedArrays.h: Added.
      * GNUmakefile.list.am:
      * Modules/webaudio/RealtimeAnalyser.h:
      * Target.pri:
      * UseJSC.cmake:
      * WebCore.exp.in:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/DOMWrapperWorld.h:
      * bindings/js/JSArrayBufferCustom.cpp: Removed.
      * bindings/js/JSArrayBufferViewHelper.h: Removed.
      * bindings/js/JSAudioContextCustom.cpp:
      * bindings/js/JSBindingsAllInOne.cpp:
      * bindings/js/JSBlobCustom.cpp:
      * bindings/js/JSCSSRuleCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSCSSValueCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSCryptoCustom.cpp:
      (WebCore::JSCrypto::getRandomValues):
      * bindings/js/JSDOMBinding.h:
      (WebCore::wrapperOwner):
      (WebCore::wrapperContext):
      (WebCore::getInlineCachedWrapper):
      (WebCore::setInlineCachedWrapper):
      (WebCore::clearInlineCachedWrapper):
      (WebCore::getCachedWrapper):
      (WebCore::cacheWrapper):
      (WebCore::uncacheWrapper):
      (WebCore::wrap):
      (WebCore::toJS):
      (WebCore::toArrayBufferView):
      (WebCore::toInt8Array):
      (WebCore::toInt16Array):
      (WebCore::toInt32Array):
      (WebCore::toUint8Array):
      (WebCore::toUint8ClampedArray):
      (WebCore::toUint16Array):
      (WebCore::toUint32Array):
      (WebCore::toFloat32Array):
      (WebCore::toFloat64Array):
      (WebCore::toDataView):
      * bindings/js/JSDataViewCustom.cpp: Removed.
      * bindings/js/JSDictionary.cpp:
      * bindings/js/JSDictionary.h:
      * bindings/js/JSDocumentCustom.cpp:
      (WebCore::JSDocument::location):
      (WebCore::toJS):
      * bindings/js/JSEventCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSFileReaderCustom.cpp:
      * bindings/js/JSHTMLCollectionCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSHTMLTemplateElementCustom.cpp:
      (WebCore::JSHTMLTemplateElement::content):
      * bindings/js/JSImageDataCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      * bindings/js/JSMessageEventCustom.cpp:
      * bindings/js/JSMessagePortCustom.cpp:
      * bindings/js/JSSVGPathSegCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSStyleSheetCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSTrackCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::send):
      * bindings/js/SerializedScriptValue.cpp:
      (WebCore::SerializedScriptValue::transferArrayBuffers):
      * bindings/js/WebCoreJSClientData.h:
      (WebCore::initNormalWorldClientData):
      * bindings/js/WebCoreTypedArrayController.cpp: Added.
      (WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
      (WebCore::WebCoreTypedArrayController::~WebCoreTypedArrayController):
      (WebCore::WebCoreTypedArrayController::toJS):
      (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
      (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize):
      * bindings/js/WebCoreTypedArrayController.h: Added.
      (WebCore::WebCoreTypedArrayController::wrapperOwner):
      * bindings/scripts/CodeGenerator.pm:
      (ForAllParents):
      (ParseInterface):
      (SkipIncludeHeader):
      (IsTypedArrayType):
      (IsWrapperType):
      * bindings/scripts/CodeGeneratorJS.pm:
      (AddIncludesForType):
      (GenerateHeader):
      (GenerateImplementation):
      (GenerateParametersCheck):
      (GetNativeType):
      (JSValueToNative):
      (NativeToJSValue):
      (GenerateConstructorDefinition):
      (GenerateConstructorHelperMethods):
      * fileapi/WebKitBlobBuilder.cpp:
      (WebCore::BlobBuilder::append):
      * fileapi/WebKitBlobBuilder.h:
      * html/canvas/ArrayBuffer.idl: Removed.
      * html/canvas/ArrayBufferView.idl: Removed.
      * html/canvas/DataView.cpp: Removed.
      * html/canvas/DataView.h: Removed.
      * html/canvas/DataView.idl: Removed.
      * html/canvas/Float32Array.idl: Removed.
      * html/canvas/Float64Array.idl: Removed.
      * html/canvas/Int16Array.idl: Removed.
      * html/canvas/Int32Array.idl: Removed.
      * html/canvas/Int8Array.idl: Removed.
      * html/canvas/Uint16Array.idl: Removed.
      * html/canvas/Uint32Array.idl: Removed.
      * html/canvas/Uint8Array.idl: Removed.
      * html/canvas/Uint8ClampedArray.idl: Removed.
      * html/canvas/WebGLRenderingContext.cpp:
      (WebCore::WebGLRenderingContext::readPixels):
      (WebCore::WebGLRenderingContext::validateTexFuncData):
      * page/Crypto.cpp:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
      (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData):
      * platform/graphics/filters/FECustomFilter.h:
      * platform/graphics/filters/FEGaussianBlur.cpp:
      * platform/graphics/filters/FilterEffect.cpp:
      * testing/MockCDM.cpp:
      
      Source/WebKit2: 
      
      Reviewed by Oliver Hunt.
              
      You don't need to include JSUint8Array anymore if you just want to
      unwrap one; JSDOMBinding gives you all of the things you need.
      
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      
      Source/WTF: 
      
      Reviewed by Oliver Hunt.
              
      - Added the notion of a reference counted object that can be marked Deferred,
        which is like a special-purpose upref.
              
      - Added a common byte flipper.
      
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * GNUmakefile.list.am:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/DeferrableRefCounted.h: Added.
      (WTF::DeferrableRefCountedBase::ref):
      (WTF::DeferrableRefCountedBase::hasOneRef):
      (WTF::DeferrableRefCountedBase::refCount):
      (WTF::DeferrableRefCountedBase::isDeferred):
      (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
      (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
      (WTF::DeferrableRefCountedBase::derefBase):
      (WTF::DeferrableRefCountedBase::setIsDeferredBase):
      (WTF::DeferrableRefCounted::deref):
      (WTF::DeferrableRefCounted::setIsDeferred):
      (WTF::DeferrableRefCounted::DeferrableRefCounted):
      (WTF::DeferrableRefCounted::~DeferrableRefCounted):
      * wtf/FlipBytes.h: Added.
      (WTF::needToFlipBytesIfLittleEndian):
      (WTF::flipBytes):
      (WTF::flipBytesIfLittleEndian):
      
      LayoutTests: 
      
      Reviewed by Oliver Hunt.
      
      * fast/canvas/webgl/array-set-invalid-arguments-expected.txt:
      * fast/canvas/webgl/array-set-out-of-bounds-expected.txt:
      * fast/canvas/webgl/array-unit-tests-expected.txt:
      * fast/canvas/webgl/array-unit-tests.html:
      * fast/canvas/webgl/data-view-crash-expected.txt:
      * fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js:
      (checkView):
      * fast/dom/call-a-constructor-as-a-function-expected.txt:
      * fast/dom/call-a-constructor-as-a-function.html:
      * fast/js/constructor-length.html:
      * fast/js/global-constructors-attributes-dedicated-worker-expected.txt:
      * fast/js/global-constructors-attributes-expected.txt:
      * fast/js/global-constructors-attributes-shared-worker-expected.txt:
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc.html: Added.
      * fast/js/regress/Int32Array-Int8Array-view-alloc-expected.txt: Added.
      * fast/js/regress/Int32Array-Int8Array-view-alloc.html: Added.
      * fast/js/regress/Int32Array-alloc-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc-huge.html: Added.
      * fast/js/regress/Int32Array-alloc-large-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-large-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-large-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc-large.html: Added.
      * fast/js/regress/Int32Array-alloc-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc.html: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-huge-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-large-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived-buffer.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc.js: Added.
      * fast/js/regress/script-tests/Int32Array-Int8Array-view-alloc.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-huge-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-huge.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-large-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-large.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc.js: Added.
      * platform/mac/fast/js/constructor-length-expected.txt:
      * webgl/resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html:
      * webgl/resources/webgl_test_files/conformance/typedarrays/data-view-test.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0e0d9312
  28. 11 Aug, 2013 1 commit
  29. 05 Aug, 2013 1 commit
    • oliver@apple.com's avatar
      Move TypedArray implementation into JSC · df606084
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119489
      
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      Move TypedArray implementation into JSC in advance of re-implementation
      
      * GNUmakefile.list.am:
      * JSCTypedArrayStubs.h:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * runtime/ArrayBuffer.cpp: Renamed from Source/WTF/wtf/ArrayBuffer.cpp.
      (JSC::ArrayBuffer::transfer):
      (JSC::ArrayBuffer::addView):
      (JSC::ArrayBuffer::removeView):
      * runtime/ArrayBuffer.h: Renamed from Source/WTF/wtf/ArrayBuffer.h.
      (JSC::ArrayBufferContents::ArrayBufferContents):
      (JSC::ArrayBufferContents::data):
      (JSC::ArrayBufferContents::sizeInBytes):
      (JSC::ArrayBufferContents::transfer):
      (JSC::ArrayBufferContents::copyTo):
      (JSC::ArrayBuffer::isNeutered):
      (JSC::ArrayBuffer::~ArrayBuffer):
      (JSC::ArrayBuffer::clampValue):
      (JSC::ArrayBuffer::create):
      (JSC::ArrayBuffer::createUninitialized):
      (JSC::ArrayBuffer::ArrayBuffer):
      (JSC::ArrayBuffer::data):
      (JSC::ArrayBuffer::byteLength):
      (JSC::ArrayBuffer::slice):
      (JSC::ArrayBuffer::sliceImpl):
      (JSC::ArrayBuffer::clampIndex):
      (JSC::ArrayBufferContents::tryAllocate):
      (JSC::ArrayBufferContents::~ArrayBufferContents):
      * runtime/ArrayBufferView.cpp: Renamed from Source/WTF/wtf/ArrayBufferView.cpp.
      (JSC::ArrayBufferView::ArrayBufferView):
      (JSC::ArrayBufferView::~ArrayBufferView):
      (JSC::ArrayBufferView::neuter):
      * runtime/ArrayBufferView.h: Renamed from Source/WTF/wtf/ArrayBufferView.h.
      (JSC::ArrayBufferView::buffer):
      (JSC::ArrayBufferView::baseAddress):
      (JSC::ArrayBufferView::byteOffset):
      (JSC::ArrayBufferView::setNeuterable):
      (JSC::ArrayBufferView::isNeuterable):
      (JSC::ArrayBufferView::verifySubRange):
      (JSC::ArrayBufferView::clampOffsetAndNumElements):
      (JSC::ArrayBufferView::setImpl):
      (JSC::ArrayBufferView::setRangeImpl):
      (JSC::ArrayBufferView::zeroRangeImpl):
      (JSC::ArrayBufferView::calculateOffsetAndLength):
      * runtime/Float32Array.h: Renamed from Source/WTF/wtf/Float32Array.h.
      (JSC::Float32Array::set):
      (JSC::Float32Array::getType):
      (JSC::Float32Array::create):
      (JSC::Float32Array::createUninitialized):
      (JSC::Float32Array::Float32Array):
      (JSC::Float32Array::subarray):
      * runtime/Float64Array.h: Renamed from Source/WTF/wtf/Float64Array.h.
      (JSC::Float64Array::set):
      (JSC::Float64Array::getType):
      (JSC::Float64Array::create):
      (JSC::Float64Array::createUninitialized):
      (JSC::Float64Array::Float64Array):
      (JSC::Float64Array::subarray):
      * runtime/Int16Array.h: Renamed from Source/WTF/wtf/Int16Array.h.
      (JSC::Int16Array::getType):
      (JSC::Int16Array::create):
      (JSC::Int16Array::createUninitialized):
      (JSC::Int16Array::Int16Array):
      (JSC::Int16Array::subarray):
      * runtime/Int32Array.h: Renamed from Source/WTF/wtf/Int32Array.h.
      (JSC::Int32Array::getType):
      (JSC::Int32Array::create):
      (JSC::Int32Array::createUninitialized):
      (JSC::Int32Array::Int32Array):
      (JSC::Int32Array::subarray):
      * runtime/Int8Array.h: Renamed from Source/WTF/wtf/Int8Array.h.
      (JSC::Int8Array::getType):
      (JSC::Int8Array::create):
      (JSC::Int8Array::createUninitialized):
      (JSC::Int8Array::Int8Array):
      (JSC::Int8Array::subarray):
      * runtime/IntegralTypedArrayBase.h: Renamed from Source/WTF/wtf/IntegralTypedArrayBase.h.
      (JSC::IntegralTypedArrayBase::set):
      (JSC::IntegralTypedArrayBase::IntegralTypedArrayBase):
      * runtime/TypedArrayBase.h: Renamed from Source/WTF/wtf/TypedArrayBase.h.
      (JSC::TypedArrayBase::data):
      (JSC::TypedArrayBase::set):
      (JSC::TypedArrayBase::setRange):
      (JSC::TypedArrayBase::zeroRange):
      (JSC::TypedArrayBase::length):
      (JSC::TypedArrayBase::byteLength):
      (JSC::TypedArrayBase::item):
      (JSC::TypedArrayBase::checkInboundData):
      (JSC::TypedArrayBase::TypedArrayBase):
      (JSC::TypedArrayBase::create):
      (JSC::TypedArrayBase::createUninitialized):
      (JSC::TypedArrayBase::subarrayImpl):
      (JSC::TypedArrayBase::neuter):
      * runtime/Uint16Array.h: Renamed from Source/WTF/wtf/Uint16Array.h.
      (JSC::Uint16Array::getType):
      (JSC::Uint16Array::create):
      (JSC::Uint16Array::createUninitialized):
      (JSC::Uint16Array::Uint16Array):
      (JSC::Uint16Array::subarray):
      * runtime/Uint32Array.h: Renamed from Source/WTF/wtf/Uint32Array.h.
      (JSC::Uint32Array::getType):
      (JSC::Uint32Array::create):
      (JSC::Uint32Array::createUninitialized):
      (JSC::Uint32Array::Uint32Array):
      (JSC::Uint32Array::subarray):
      * runtime/Uint8Array.h: Renamed from Source/WTF/wtf/Uint8Array.h.
      (JSC::Uint8Array::getType):
      (JSC::Uint8Array::create):
      (JSC::Uint8Array::createUninitialized):
      (JSC::Uint8Array::Uint8Array):
      (JSC::Uint8Array::subarray):
      * runtime/Uint8ClampedArray.h: Renamed from Source/WTF/wtf/Uint8ClampedArray.h.
      (JSC::Uint8ClampedArray::getType):
      (JSC::Uint8ClampedArray::create):
      (JSC::Uint8ClampedArray::createUninitialized):
      (JSC::Uint8ClampedArray::zeroFill):
      (JSC::Uint8ClampedArray::set):
      (JSC::Uint8ClampedArray::Uint8ClampedArray):
      (JSC::Uint8ClampedArray::subarray):
      * runtime/VM.h:
      
      Source/WebCore:
      
      Update WebCore for new location of TypedArray implementation.
      
      * ForwardingHeaders/runtime/ArrayBuffer.h: Added.
      * ForwardingHeaders/runtime/ArrayBufferView.h: Added.
      * ForwardingHeaders/runtime/Float32Array.h: Added.
      * ForwardingHeaders/runtime/Float64Array.h: Added.
      * ForwardingHeaders/runtime/Int16Array.h: Added.
      * ForwardingHeaders/runtime/Int32Array.h: Added.
      * ForwardingHeaders/runtime/Int8Array.h: Added.
      * ForwardingHeaders/runtime/IntegralTypedArrayBase.h: Added.
      * ForwardingHeaders/runtime/TypedArrayBase.h: Added.
      * ForwardingHeaders/runtime/Uint16Array.h: Added.
      * ForwardingHeaders/runtime/Uint32Array.h: Added.
      * ForwardingHeaders/runtime/Uint8Array.h: Added.
      * ForwardingHeaders/runtime/Uint8ClampedArray.h: Added.
      * Modules/webaudio/AnalyserNode.h:
      (WebCore::AnalyserNode::getFloatFrequencyData):
      (WebCore::AnalyserNode::getByteFrequencyData):
      (WebCore::AnalyserNode::getByteTimeDomainData):
      * Modules/webaudio/AsyncAudioDecoder.cpp:
      * Modules/webaudio/AsyncAudioDecoder.h:
      (WebCore::AsyncAudioDecoder::DecodingTask::audioData):
      * Modules/webaudio/AudioBuffer.h:
      * Modules/webaudio/AudioContext.cpp:
      * Modules/webaudio/AudioParam.h:
      * Modules/webaudio/AudioParamTimeline.h:
      * Modules/webaudio/PeriodicWave.h:
      * Modules/webaudio/RealtimeAnalyser.cpp:
      * Modules/webaudio/RealtimeAnalyser.h:
      * Modules/webaudio/ScriptProcessorNode.cpp:
      * Modules/webaudio/WaveShaperProcessor.h:
      * Modules/websockets/ThreadableWebSocketChannel.h:
      * Modules/websockets/WebSocket.cpp:
      * Modules/websockets/WebSocket.h:
      * Modules/websockets/WebSocketChannel.cpp:
      * Modules/websockets/WebSocketChannel.h:
      * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
      * Modules/websockets/WorkerThreadableWebSocketChannel.h:
      * WebCore.exp.in:
      * bindings/js/JSArrayBufferCustom.cpp:
      * bindings/js/JSArrayBufferViewHelper.h:
      * bindings/js/JSAudioContextCustom.cpp:
      * bindings/js/JSCryptoCustom.cpp:
      * bindings/js/JSDictionary.h:
      * bindings/js/JSFileReaderCustom.cpp:
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      * bindings/js/SerializedScriptValue.cpp:
      (WebCore::SerializedScriptValue::transferArrayBuffers):
      * bindings/js/SerializedScriptValue.h:
      * bindings/scripts/CodeGeneratorJS.pm:
      (AddIncludesForType):
      (GenerateHeader):
      (NativeToJSValue):
      * dom/MessageEvent.h:
      * fileapi/FileReader.cpp:
      * fileapi/FileReader.h:
      * fileapi/FileReaderLoader.cpp:
      * fileapi/FileReaderLoader.h:
      * fileapi/FileReaderSync.cpp:
      * fileapi/FileReaderSync.h:
      * fileapi/WebKitBlobBuilder.cpp:
      * fileapi/WebKitBlobBuilder.h:
      * html/HTMLMediaElement.cpp:
      * html/ImageData.h:
      * html/canvas/ArrayBuffer.idl:
      * html/canvas/ArrayBufferView.idl:
      * html/canvas/CanvasRenderingContext2D.cpp:
      * html/canvas/DataView.h:
      * html/canvas/Float32Array.idl:
      * html/canvas/Float64Array.idl:
      * html/canvas/Int16Array.idl:
      * html/canvas/Int32Array.idl:
      * html/canvas/Int8Array.idl:
      * html/canvas/Uint16Array.idl:
      * html/canvas/Uint32Array.idl:
      * html/canvas/Uint8Array.idl:
      * html/canvas/Uint8ClampedArray.idl:
      * html/canvas/WebGLBuffer.h:
      (WebCore::WebGLBuffer::elementArrayBuffer):
      * html/canvas/WebGLGetInfo.cpp:
      * html/canvas/WebGLGetInfo.h:
      * html/canvas/WebGLRenderingContext.cpp:
      * html/canvas/WebGLRenderingContext.h:
      * inspector/InspectorMemoryAgent.cpp:
      * page/Crypto.cpp:
      * page/Crypto.h:
      * platform/graphics/GraphicsContext3D.cpp:
      * platform/graphics/ImageBuffer.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      * platform/graphics/cg/ImageBufferDataCG.h:
      * platform/graphics/filters/FEBlend.cpp:
      * platform/graphics/filters/FEColorMatrix.cpp:
      * platform/graphics/filters/FEComponentTransfer.cpp:
      * platform/graphics/filters/FEComposite.cpp:
      * platform/graphics/filters/FEConvolveMatrix.cpp:
      * platform/graphics/filters/FECustomFilter.cpp:
      * platform/graphics/filters/FEDisplacementMap.cpp:
      * platform/graphics/filters/FEDropShadow.cpp:
      * platform/graphics/filters/FEGaussianBlur.cpp:
      * platform/graphics/filters/FELighting.h:
      * platform/graphics/filters/FEMorphology.cpp:
      * platform/graphics/filters/FETurbulence.cpp:
      * platform/graphics/filters/FilterEffect.cpp:
      * platform/graphics/filters/FilterEffect.h:
      * platform/graphics/mac/GraphicsContext3DMac.mm:
      * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
      * testing/Internals.h:
      * xml/XMLHttpRequest.cpp:
      * xml/XMLHttpRequest.h:
      (WebCore::XMLHttpRequest::optionalResponseArrayBuffer):
      
      Source/WTF:
      
      Remove TypedArray implementation from WTF
      
      * GNUmakefile.list.am:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/Forward.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df606084
  30. 30 Jul, 2013 1 commit
    • carlosgc@webkit.org's avatar
      Unreviewed. Fix make distcheck. · 13f6daf2
      carlosgc@webkit.org authored
      Source/JavaScriptCore:
      
      * GNUmakefile.list.am: Add missing files to compilation.
      * bytecode/CodeBlock.cpp: Add a ENABLE(FTL_JIT) #if block to
      include FTL header files not included in the compilation.
      * dfg/DFGDriver.cpp: Ditto.
      * dfg/DFGPlan.cpp: Ditto.
      
      Source/ThirdParty/ANGLE:
      
      * GNUmakefile.am: Add missing header files to compilation.
      
      Source/WebCore:
      
      * GNUmakefile.list.am: Add missing header file to compilation.
      
      Source/WebKit2:
      
      * GNUmakefile.list.am: Add missing header file to compilation.
      
      Source/WTF:
      
      * GNUmakefile.list.am: Add missing files to compilation.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      13f6daf2
  31. 25 Jul, 2013 2 commits
  32. 08 Jul, 2013 1 commit
  33. 17 Jun, 2013 1 commit
    • rniwa@webkit.org's avatar
      Initialize AtomicStringTable in WTFThreadData's constructor · e32f3e7d
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=117671
      
      Reviewed by Geoffrey Garen.
      
      Extracted AtomicStringTable from AtomicString.cpp into AtomicStringTable.h/cpp
      and made WTFThreadDada::WTFThreadData create the atomic string table for the thread.
      
      This eliminates a branch from stringTable() in AtomicString.cpp.
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/WTFThreadData.cpp:
      (WTF::WTFThreadData::WTFThreadData):
      * wtf/text/AtomicString.cpp:
      (WTF::stringTable):
      * wtf/text/AtomicStringTable.cpp: Added.
      (WTF::AtomicStringTable::create):
      (WTF::AtomicStringTable::destroy):
      * wtf/text/AtomicStringTable.h: Added.
      (WTF::AtomicStringTable::table):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e32f3e7d
  34. 21 May, 2013 1 commit
    • andersca@apple.com's avatar
      Add WTF::NeverDestroyed and start using it in WTF · 7867ba07
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=116472
      
      Reviewed by Benjamin Poulain.
      
      NeverDestroyed is a class template that can be used for singletons and other objects that we never
      want to destroy. It's intended as a replacement for WTF_STATIC_LOCAL with the advantage that it doesn't
      fragment the heap.
      
      * GNUmakefile.list.am:
      * WTF.vcproj/WTF.vcproj:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      Add NeverDestroyed.h
      
      * wtf/Compiler.h:
      Add a helper macro, WTF_DELETED_FUNCTION.
      
      * wtf/CryptographicallyRandomNumber.cpp:
      Use NeverDestroyed.
      
      * wtf/NeverDestroyed.h: Added.
      
      * wtf/Noncopyable.h:
      Use WTF_DELETED_FUNCTION.
      
      * wtf/text/WTFString.cpp:
      (WTF::emptyString):
      Use
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7867ba07