[WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
authorysuzuki@apple.com <ysuzuki@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 4 Apr 2019 19:07:53 +0000 (19:07 +0000)
committerysuzuki@apple.com <ysuzuki@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 4 Apr 2019 19:07:53 +0000 (19:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196475

Reviewed by Saam Barati.

Source/bmalloc:

Add MAKE_BISO_MALLOCED_IMPL_TEMPLATE, which can be used for explicit specialization for template classes.

* bmalloc/IsoHeap.h:
* bmalloc/IsoHeapInlines.h:

Source/WebCore:

This patch puts most of derived classes of ScriptWrappable into IsoHeap. We do not include derived classes of Event simply
because Internal repository code also inherits it. After watching the result of this patch, we will try Event and its derived
classes into IsoHeap too.

This patch makes the following things IsoHeap-allocated. These classes are listed by using lldb python script.

    1. DOM collections (HTMLCollection etc.)
    2. WebAudio nodes
    3. IDB classes
    4. FileSystem API classes
    5. Canvas contexts
    6. WebRTC classses
    7. XMLHttpRequest related classes
    8. WebSocket related classes
    9. Worker and Worklet related classes
    10. Other misc classes

* Modules/applepay/ApplePaySession.cpp:
* Modules/applepay/ApplePaySession.h:
* Modules/encryptedmedia/MediaKeySession.cpp:
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
* Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
* Modules/entriesapi/DOMFileSystem.cpp:
* Modules/entriesapi/DOMFileSystem.h:
(WebCore::DOMFileSystem::createEntryForFile): Deleted.
(WebCore::DOMFileSystem::name const): Deleted.
* Modules/entriesapi/FileSystemDirectoryEntry.h:
* Modules/entriesapi/FileSystemDirectoryReader.cpp:
* Modules/entriesapi/FileSystemDirectoryReader.h:
* Modules/entriesapi/FileSystemEntry.cpp:
* Modules/entriesapi/FileSystemEntry.h:
* Modules/entriesapi/FileSystemFileEntry.h:
* Modules/geolocation/Geolocation.cpp:
* Modules/geolocation/Geolocation.h:
(WebCore::Geolocation::document const): Deleted.
(WebCore::Geolocation::frame const): Deleted.
(WebCore::Geolocation::resetIsAllowed): Deleted.
(WebCore::Geolocation::isAllowed const): Deleted.
(WebCore::Geolocation::isDenied const): Deleted.
(WebCore::Geolocation::hasListeners const): Deleted.
* Modules/indexeddb/IDBCursor.cpp:
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBCursorWithValue.cpp:
* Modules/indexeddb/IDBCursorWithValue.h:
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::info const): Deleted.
(WebCore::IDBDatabase::databaseConnectionIdentifier const): Deleted.
(WebCore::IDBDatabase::connectionProxy): Deleted.
(WebCore::IDBDatabase::isClosingOrClosed const): Deleted.
* Modules/indexeddb/IDBKeyRange.cpp:
* Modules/indexeddb/IDBKeyRange.h:
(WebCore::IDBKeyRange::lower const): Deleted.
(WebCore::IDBKeyRange::upper const): Deleted.
(WebCore::IDBKeyRange::lowerOpen const): Deleted.
(WebCore::IDBKeyRange::upperOpen const): Deleted.
* Modules/indexeddb/IDBOpenDBRequest.cpp:
* Modules/indexeddb/IDBOpenDBRequest.h:
* Modules/indexeddb/IDBRequest.cpp:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/indexeddb/IDBTransaction.h:
(WebCore::IDBTransaction::mode const): Deleted.
(WebCore::IDBTransaction::info const): Deleted.
(WebCore::IDBTransaction::database): Deleted.
(WebCore::IDBTransaction::database const): Deleted.
(WebCore::IDBTransaction::originalDatabaseInfo const): Deleted.
(WebCore::IDBTransaction::isVersionChange const): Deleted.
(WebCore::IDBTransaction::isReadOnly const): Deleted.
(WebCore::IDBTransaction::isFinished const): Deleted.
* Modules/mediarecorder/MediaRecorder.cpp:
* Modules/mediarecorder/MediaRecorder.h:
* Modules/mediasession/MediaRemoteControls.cpp:
* Modules/mediasession/MediaRemoteControls.h:
(WebCore::MediaRemoteControls::create): Deleted.
(WebCore::MediaRemoteControls::previousTrackEnabled const): Deleted.
(WebCore::MediaRemoteControls::nextTrackEnabled const): Deleted.
* Modules/mediasource/MediaSource.cpp:
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBufferList.cpp:
* Modules/mediasource/SourceBufferList.h:
* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
* Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
* Modules/mediastream/MediaDeviceInfo.cpp:
* Modules/mediastream/MediaDeviceInfo.h:
(WebCore::MediaDeviceInfo::label const): Deleted.
(WebCore::MediaDeviceInfo::deviceId const): Deleted.
(WebCore::MediaDeviceInfo::groupId const): Deleted.
(WebCore::MediaDeviceInfo::kind const): Deleted.
* Modules/mediastream/MediaDevices.cpp:
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/MediaStream.cpp:
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamTrack.cpp:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCDTMFSender.cpp:
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.cpp:
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCIceCandidate.cpp:
* Modules/mediastream/RTCIceCandidate.h:
(WebCore::RTCIceCandidate::candidate const): Deleted.
(WebCore::RTCIceCandidate::sdpMid const): Deleted.
(WebCore::RTCIceCandidate::sdpMLineIndex const): Deleted.
(WebCore::RTCIceCandidate::setCandidate): Deleted.
* Modules/mediastream/RTCIceTransport.cpp:
* Modules/mediastream/RTCIceTransport.h:
(WebCore::RTCIceTransport::create): Deleted.
(WebCore::RTCIceTransport::state const): Deleted.
(WebCore::RTCIceTransport::setState): Deleted.
(WebCore::RTCIceTransport::gatheringState const): Deleted.
(WebCore::RTCIceTransport::setGatheringState): Deleted.
(WebCore::RTCIceTransport::RTCIceTransport): Deleted.
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCRtpReceiver.cpp:
* Modules/mediastream/RTCRtpReceiver.h:
(WebCore::RTCRtpReceiver::create): Deleted.
(WebCore::RTCRtpReceiver::setBackend): Deleted.
(WebCore::RTCRtpReceiver::getParameters): Deleted.
(WebCore::RTCRtpReceiver::getContributingSources const): Deleted.
(WebCore::RTCRtpReceiver::getSynchronizationSources const): Deleted.
(WebCore::RTCRtpReceiver::track): Deleted.
(WebCore::RTCRtpReceiver::backend): Deleted.
* Modules/mediastream/RTCRtpSender.cpp:
* Modules/mediastream/RTCRtpSender.h:
(WebCore::RTCRtpSender::track): Deleted.
(WebCore::RTCRtpSender::trackId const): Deleted.
(WebCore::RTCRtpSender::trackKind const): Deleted.
(WebCore::RTCRtpSender::mediaStreamIds const): Deleted.
(WebCore::RTCRtpSender::setMediaStreamIds): Deleted.
(WebCore::RTCRtpSender::isStopped const): Deleted.
(WebCore::RTCRtpSender::backend): Deleted.
* Modules/mediastream/RTCRtpTransceiver.cpp:
* Modules/mediastream/RTCRtpTransceiver.h:
(WebCore::RTCRtpTransceiver::create): Deleted.
(WebCore::RTCRtpTransceiver::sender): Deleted.
(WebCore::RTCRtpTransceiver::receiver): Deleted.
(WebCore::RTCRtpTransceiver::iceTransport): Deleted.
(WebCore::RTCRtpTransceiver::backend): Deleted.
* Modules/mediastream/RTCSessionDescription.cpp:
* Modules/mediastream/RTCSessionDescription.h:
(WebCore::RTCSessionDescription::type const): Deleted.
(WebCore::RTCSessionDescription::sdp const): Deleted.
(WebCore::RTCSessionDescription::setSdp): Deleted.
* Modules/notifications/Notification.cpp:
* Modules/notifications/Notification.h:
* Modules/paymentrequest/PaymentRequest.cpp:
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentResponse.cpp:
* Modules/paymentrequest/PaymentResponse.h:
* Modules/speech/SpeechSynthesisUtterance.cpp:
* Modules/speech/SpeechSynthesisUtterance.h:
* Modules/webaudio/AnalyserNode.cpp:
* Modules/webaudio/AnalyserNode.h:
* Modules/webaudio/AudioBasicInspectorNode.cpp:
* Modules/webaudio/AudioBasicInspectorNode.h:
* Modules/webaudio/AudioBasicProcessorNode.cpp:
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.cpp:
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioDestinationNode.cpp:
* Modules/webaudio/AudioDestinationNode.h:
* Modules/webaudio/AudioNode.cpp:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioScheduledSourceNode.cpp:
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/BiquadFilterNode.cpp:
* Modules/webaudio/BiquadFilterNode.h:
* Modules/webaudio/ChannelMergerNode.cpp:
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelSplitterNode.cpp:
* Modules/webaudio/ChannelSplitterNode.h:
* Modules/webaudio/ConvolverNode.cpp:
* Modules/webaudio/ConvolverNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
* Modules/webaudio/DefaultAudioDestinationNode.h:
* Modules/webaudio/DelayNode.cpp:
* Modules/webaudio/DelayNode.h:
* Modules/webaudio/DynamicsCompressorNode.cpp:
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/GainNode.cpp:
* Modules/webaudio/GainNode.h:
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OfflineAudioContext.cpp:
* Modules/webaudio/OfflineAudioContext.h:
* Modules/webaudio/OfflineAudioDestinationNode.cpp:
* Modules/webaudio/OfflineAudioDestinationNode.h:
* Modules/webaudio/OscillatorNode.cpp:
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/PannerNode.cpp:
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/ScriptProcessorNode.cpp:
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webaudio/WaveShaperNode.cpp:
* Modules/webaudio/WaveShaperNode.h:
* Modules/webgpu/GPUCanvasContext.cpp:
* Modules/webgpu/GPUCanvasContext.h:
* Modules/websockets/WebSocket.cpp:
* Modules/websockets/WebSocket.h:
* Modules/webvr/VRDisplay.cpp:
* Modules/webvr/VRDisplay.h:
(WebCore::VRDisplay::isPresenting const): Deleted.
(WebCore::VRDisplay::displayName const): Deleted.
(WebCore::VRDisplay::displayId const): Deleted.
(WebCore::VRDisplay::depthNear const): Deleted.
(WebCore::VRDisplay::setDepthNear): Deleted.
(WebCore::VRDisplay::depthFar const): Deleted.
(WebCore::VRDisplay::setDepthFar): Deleted.
(WebCore::VRDisplay::document): Deleted.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* animation/CSSAnimation.cpp:
* animation/CSSAnimation.h:
* animation/CSSTransition.cpp:
* animation/CSSTransition.h:
* animation/DeclarativeAnimation.cpp:
* animation/DeclarativeAnimation.h:
* animation/WebAnimation.cpp:
* animation/WebAnimation.h:
* bindings/js/ScriptWrappable.h:
* css/CSSComputedStyleDeclaration.cpp:
* css/CSSComputedStyleDeclaration.h:
* css/CSSStyleDeclaration.cpp:
(): Deleted.
* css/CSSStyleDeclaration.h:
* css/DOMMatrix.h:
* css/DOMMatrixReadOnly.cpp:
* css/DOMMatrixReadOnly.h:
* css/FontFaceSet.cpp:
* css/FontFaceSet.h:
* css/PropertySetCSSStyleDeclaration.cpp:
* css/PropertySetCSSStyleDeclaration.h:
* css/WebKitCSSMatrix.cpp:
* css/WebKitCSSMatrix.h:
* css/typedom/TypedOMCSSImageValue.cpp: Added.
* css/typedom/TypedOMCSSImageValue.h:
* css/typedom/TypedOMCSSNumericValue.cpp: Added.
* css/typedom/TypedOMCSSNumericValue.h:
* css/typedom/TypedOMCSSStyleValue.cpp: Added.
* css/typedom/TypedOMCSSStyleValue.h:
* css/typedom/TypedOMCSSUnitValue.cpp: Added.
* css/typedom/TypedOMCSSUnitValue.h:
* css/typedom/TypedOMCSSUnparsedValue.cpp: Added.
* css/typedom/TypedOMCSSUnparsedValue.h:
* dom/AbortController.cpp:
* dom/AbortController.h:
* dom/AbortSignal.cpp:
* dom/AbortSignal.h:
* dom/AllDescendantsCollection.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
* dom/AllDescendantsCollection.h:
* dom/ChildNodeList.cpp:
* dom/ChildNodeList.h:
* dom/ClassCollection.cpp:
* dom/ClassCollection.h:
* dom/DOMImplementation.cpp:
* dom/DOMImplementation.h:
(WebCore::DOMImplementation::ref): Deleted.
(WebCore::DOMImplementation::deref): Deleted.
(WebCore::DOMImplementation::document): Deleted.
(WebCore::DOMImplementation::hasFeature): Deleted.
* dom/DOMPoint.h:
* dom/DOMPointReadOnly.cpp:
* dom/DOMPointReadOnly.h:
* dom/DOMQuad.cpp:
* dom/DOMQuad.h:
* dom/DOMRect.h:
* dom/DOMRectReadOnly.cpp: Copied from Source/WebCore/dom/DOMPointReadOnly.cpp.
* dom/DOMRectReadOnly.h:
* dom/DataTransferItemList.cpp:
* dom/DataTransferItemList.h:
(WebCore::DataTransferItemList::ref): Deleted.
(WebCore::DataTransferItemList::deref): Deleted.
(WebCore::DataTransferItemList::dataTransfer): Deleted.
(WebCore::DataTransferItemList::hasItems const): Deleted.
(WebCore::DataTransferItemList::items const): Deleted.
* dom/DatasetDOMStringMap.cpp:
* dom/DatasetDOMStringMap.h:
* dom/DocumentParser.h:
* dom/EventTarget.cpp:
* dom/EventTarget.h:
* dom/LiveNodeList.cpp:
* dom/LiveNodeList.h:
* dom/MessageChannel.cpp:
* dom/MessagePort.cpp:
* dom/MessagePort.h:
* dom/NameNodeList.cpp:
* dom/NameNodeList.h:
* dom/NamedNodeMap.cpp:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::NamedNodeMap): Deleted.
(WebCore::NamedNodeMap::element): Deleted.
* dom/NodeIterator.cpp:
* dom/NodeIterator.h:
(WebCore::NodeIterator::detach): Deleted.
(WebCore::NodeIterator::referenceNode const): Deleted.
(WebCore::NodeIterator::pointerBeforeReferenceNode const): Deleted.
* dom/NodeList.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
* dom/NodeList.h:
* dom/NodeRareData.cpp:
* dom/ScriptExecutionContext.cpp:
* dom/SimulatedClick.cpp:
* dom/StaticNodeList.cpp:
* dom/StaticNodeList.h:
* dom/TagCollection.cpp:
* dom/TagCollection.h:
* dom/TreeWalker.cpp:
* dom/TreeWalker.h:
(WebCore::TreeWalker::create): Deleted.
(WebCore::TreeWalker::currentNode): Deleted.
(WebCore::TreeWalker::currentNode const): Deleted.
* fileapi/Blob.cpp:
* fileapi/Blob.h:
* fileapi/File.cpp:
* fileapi/File.h:
* fileapi/FileList.cpp:
* fileapi/FileList.h:
(WebCore::FileList::create): Deleted.
(WebCore::FileList::length const): Deleted.
(WebCore::FileList::isEmpty const): Deleted.
(WebCore::FileList::files const): Deleted.
(WebCore::FileList::file const): Deleted.
(WebCore::FileList::FileList): Deleted.
(WebCore::FileList::append): Deleted.
(WebCore::FileList::clear): Deleted.
* fileapi/FileReader.cpp:
* fileapi/FileReader.h:
* html/CachedHTMLCollection.h:
* html/GenericCachedHTMLCollection.cpp:
* html/GenericCachedHTMLCollection.h:
* html/HTMLAllCollection.cpp:
* html/HTMLAllCollection.h:
* html/HTMLCollection.cpp:
* html/HTMLCollection.h:
* html/HTMLFormControlsCollection.cpp:
* html/HTMLFormControlsCollection.h:
* html/HTMLNameCollection.cpp:
* html/HTMLNameCollection.h:
* html/HTMLOptionsCollection.cpp:
* html/HTMLOptionsCollection.h:
* html/HTMLTableRowsCollection.cpp:
* html/HTMLTableRowsCollection.h:
* html/ImageBitmap.cpp:
* html/ImageBitmap.h:
(WebCore::ImageBitmap::isDetached const): Deleted.
(WebCore::ImageBitmap::buffer): Deleted.
(WebCore::ImageBitmap::originClean const): Deleted.
* html/LabelsNodeList.cpp:
* html/LabelsNodeList.h:
* html/MediaController.cpp:
* html/MediaController.h:
* html/OffscreenCanvas.cpp:
* html/OffscreenCanvas.h:
* html/RadioNodeList.cpp:
* html/RadioNodeList.h:
* html/canvas/CanvasRenderingContext.cpp:
* html/canvas/CanvasRenderingContext.h:
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2DBase.cpp:
* html/canvas/CanvasRenderingContext2DBase.h:
* html/canvas/GPUBasedCanvasRenderingContext.h:
* html/canvas/ImageBitmapRenderingContext.cpp:
* html/canvas/ImageBitmapRenderingContext.h:
* html/canvas/OffscreenCanvasRenderingContext2D.cpp:
* html/canvas/OffscreenCanvasRenderingContext2D.h:
* html/canvas/PaintRenderingContext2D.cpp:
* html/canvas/PaintRenderingContext2D.h:
* html/canvas/PlaceholderRenderingContext.cpp:
* html/canvas/PlaceholderRenderingContext.h:
* html/canvas/WebGL2RenderingContext.cpp:
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLRenderingContext.cpp:
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContextBase.cpp:
* html/canvas/WebGLRenderingContextBase.h:
* html/track/AudioTrackList.h:
* html/track/DataCue.cpp:
* html/track/DataCue.h:
* html/track/InbandDataTextTrack.cpp:
* html/track/InbandDataTextTrack.h:
* html/track/InbandGenericTextTrack.cpp:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandTextTrack.cpp:
* html/track/InbandTextTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.cpp:
* html/track/LoadableTextTrack.h:
* html/track/TextTrack.cpp:
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
* html/track/TextTrackCue.h:
* html/track/TextTrackCueGeneric.cpp:
* html/track/TextTrackCueGeneric.h:
* html/track/TextTrackList.cpp:
* html/track/TextTrackList.h:
* html/track/TrackListBase.cpp:
* html/track/TrackListBase.h:
* html/track/VTTCue.cpp:
* html/track/VTTCue.h:
* html/track/VideoTrackList.h:
* loader/appcache/DOMApplicationCache.cpp:
* loader/appcache/DOMApplicationCache.h:
* page/AbstractDOMWindow.cpp:
* page/AbstractDOMWindow.h:
* page/BarProp.cpp:
* page/BarProp.h:
(WebCore::BarProp::create): Deleted.
* page/DOMWindow.cpp:
* page/DOMWindow.h:
* page/EventSource.cpp:
* page/EventSource.h:
* page/History.cpp:
* page/History.h:
* page/Location.cpp:
* page/Location.h:
(WebCore::Location::create): Deleted.
(WebCore::Location::toString const): Deleted.
* page/Navigator.cpp:
* page/Navigator.h:
* page/Performance.cpp:
* page/Performance.h:
* page/RemoteDOMWindow.cpp:
* page/RemoteDOMWindow.h:
* page/Screen.cpp:
* page/Screen.h:
* page/VisualViewport.cpp:
* page/VisualViewport.h:
* plugins/DOMMimeTypeArray.cpp:
* plugins/DOMMimeTypeArray.h:
(WebCore::DOMMimeTypeArray::create): Deleted.
* plugins/DOMPlugin.cpp:
* plugins/DOMPlugin.h:
(WebCore::DOMPlugin::create): Deleted.
* plugins/DOMPluginArray.cpp:
* plugins/DOMPluginArray.h:
(WebCore::DOMPluginArray::create): Deleted.
* storage/Storage.cpp:
* storage/Storage.h:
(WebCore::Storage::area const): Deleted.
* workers/AbstractWorker.cpp:
* workers/AbstractWorker.h:
* workers/DedicatedWorkerGlobalScope.cpp:
* workers/DedicatedWorkerGlobalScope.h:
* workers/Worker.cpp:
* workers/Worker.h:
* workers/WorkerGlobalScope.cpp:
* workers/WorkerGlobalScope.h:
* workers/service/ServiceWorker.cpp:
* workers/service/ServiceWorker.h:
* workers/service/ServiceWorkerContainer.cpp:
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerGlobalScope.cpp:
* workers/service/ServiceWorkerGlobalScope.h:
* workers/service/ServiceWorkerRegistration.cpp:
* workers/service/ServiceWorkerRegistration.h:
* worklets/PaintWorkletGlobalScope.cpp:
* worklets/PaintWorkletGlobalScope.h:
* worklets/Worklet.cpp:
* worklets/Worklet.h:
* worklets/WorkletGlobalScope.cpp:
* worklets/WorkletGlobalScope.h:
* xml/XMLHttpRequest.cpp:
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestEventTarget.h:
* xml/XMLHttpRequestUpload.cpp:
* xml/XMLHttpRequestUpload.h:
* xml/XPathParser.cpp:

Source/WTF:

* wtf/ForbidHeapAllocation.h:
* wtf/IsoMalloc.h:
* wtf/IsoMallocInlines.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@243887 268f45cc-cd09-0410-ab3c-d52691b4dbfc

363 files changed:
Source/WTF/ChangeLog
Source/WTF/wtf/ForbidHeapAllocation.h
Source/WTF/wtf/IsoMalloc.h
Source/WTF/wtf/IsoMallocInlines.h
Source/WebCore/ChangeLog
Source/WebCore/Modules/applepay/ApplePaySession.cpp
Source/WebCore/Modules/applepay/ApplePaySession.h
Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp
Source/WebCore/Modules/encryptedmedia/MediaKeySession.h
Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp
Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.h
Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp
Source/WebCore/Modules/entriesapi/DOMFileSystem.h
Source/WebCore/Modules/entriesapi/FileSystemDirectoryEntry.h
Source/WebCore/Modules/entriesapi/FileSystemDirectoryReader.cpp
Source/WebCore/Modules/entriesapi/FileSystemDirectoryReader.h
Source/WebCore/Modules/entriesapi/FileSystemEntry.cpp
Source/WebCore/Modules/entriesapi/FileSystemEntry.h
Source/WebCore/Modules/entriesapi/FileSystemFileEntry.h
Source/WebCore/Modules/geolocation/Geolocation.cpp
Source/WebCore/Modules/geolocation/Geolocation.h
Source/WebCore/Modules/indexeddb/IDBCursor.cpp
Source/WebCore/Modules/indexeddb/IDBCursor.h
Source/WebCore/Modules/indexeddb/IDBCursorWithValue.cpp
Source/WebCore/Modules/indexeddb/IDBCursorWithValue.h
Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
Source/WebCore/Modules/indexeddb/IDBDatabase.h
Source/WebCore/Modules/indexeddb/IDBKeyRange.cpp
Source/WebCore/Modules/indexeddb/IDBKeyRange.h
Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h
Source/WebCore/Modules/indexeddb/IDBRequest.cpp
Source/WebCore/Modules/indexeddb/IDBRequest.h
Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
Source/WebCore/Modules/indexeddb/IDBTransaction.h
Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp
Source/WebCore/Modules/mediarecorder/MediaRecorder.h
Source/WebCore/Modules/mediasession/MediaRemoteControls.cpp
Source/WebCore/Modules/mediasession/MediaRemoteControls.h
Source/WebCore/Modules/mediasource/MediaSource.cpp
Source/WebCore/Modules/mediasource/MediaSource.h
Source/WebCore/Modules/mediasource/SourceBuffer.cpp
Source/WebCore/Modules/mediasource/SourceBuffer.h
Source/WebCore/Modules/mediasource/SourceBufferList.cpp
Source/WebCore/Modules/mediasource/SourceBufferList.h
Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.h
Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp
Source/WebCore/Modules/mediastream/MediaDeviceInfo.h
Source/WebCore/Modules/mediastream/MediaDevices.cpp
Source/WebCore/Modules/mediastream/MediaDevices.h
Source/WebCore/Modules/mediastream/MediaStream.cpp
Source/WebCore/Modules/mediastream/MediaStream.h
Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
Source/WebCore/Modules/mediastream/MediaStreamTrack.h
Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp
Source/WebCore/Modules/mediastream/RTCDTMFSender.h
Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
Source/WebCore/Modules/mediastream/RTCDataChannel.h
Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp
Source/WebCore/Modules/mediastream/RTCIceCandidate.h
Source/WebCore/Modules/mediastream/RTCIceTransport.cpp
Source/WebCore/Modules/mediastream/RTCIceTransport.h
Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
Source/WebCore/Modules/mediastream/RTCPeerConnection.h
Source/WebCore/Modules/mediastream/RTCRtpReceiver.cpp
Source/WebCore/Modules/mediastream/RTCRtpReceiver.h
Source/WebCore/Modules/mediastream/RTCRtpSender.cpp
Source/WebCore/Modules/mediastream/RTCRtpSender.h
Source/WebCore/Modules/mediastream/RTCRtpTransceiver.cpp
Source/WebCore/Modules/mediastream/RTCRtpTransceiver.h
Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp
Source/WebCore/Modules/mediastream/RTCSessionDescription.h
Source/WebCore/Modules/notifications/Notification.cpp
Source/WebCore/Modules/notifications/Notification.h
Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp
Source/WebCore/Modules/paymentrequest/PaymentRequest.h
Source/WebCore/Modules/paymentrequest/PaymentResponse.cpp
Source/WebCore/Modules/paymentrequest/PaymentResponse.h
Source/WebCore/Modules/speech/SpeechSynthesisUtterance.cpp
Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h
Source/WebCore/Modules/webaudio/AnalyserNode.cpp
Source/WebCore/Modules/webaudio/AnalyserNode.h
Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp
Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h
Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp
Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h
Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h
Source/WebCore/Modules/webaudio/AudioContext.cpp
Source/WebCore/Modules/webaudio/AudioContext.h
Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp
Source/WebCore/Modules/webaudio/AudioDestinationNode.h
Source/WebCore/Modules/webaudio/AudioNode.cpp
Source/WebCore/Modules/webaudio/AudioNode.h
Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp
Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h
Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp
Source/WebCore/Modules/webaudio/BiquadFilterNode.h
Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp
Source/WebCore/Modules/webaudio/ChannelMergerNode.h
Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp
Source/WebCore/Modules/webaudio/ChannelSplitterNode.h
Source/WebCore/Modules/webaudio/ConvolverNode.cpp
Source/WebCore/Modules/webaudio/ConvolverNode.h
Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.cpp
Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h
Source/WebCore/Modules/webaudio/DelayNode.cpp
Source/WebCore/Modules/webaudio/DelayNode.h
Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp
Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h
Source/WebCore/Modules/webaudio/GainNode.cpp
Source/WebCore/Modules/webaudio/GainNode.h
Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp
Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.h
Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp
Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.h
Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp
Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h
Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp
Source/WebCore/Modules/webaudio/OfflineAudioContext.h
Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp
Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h
Source/WebCore/Modules/webaudio/OscillatorNode.cpp
Source/WebCore/Modules/webaudio/OscillatorNode.h
Source/WebCore/Modules/webaudio/PannerNode.cpp
Source/WebCore/Modules/webaudio/PannerNode.h
Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp
Source/WebCore/Modules/webaudio/ScriptProcessorNode.h
Source/WebCore/Modules/webaudio/WaveShaperNode.cpp
Source/WebCore/Modules/webaudio/WaveShaperNode.h
Source/WebCore/Modules/webgpu/GPUCanvasContext.cpp
Source/WebCore/Modules/webgpu/GPUCanvasContext.h
Source/WebCore/Modules/websockets/WebSocket.cpp
Source/WebCore/Modules/websockets/WebSocket.h
Source/WebCore/Modules/webvr/VRDisplay.cpp
Source/WebCore/Modules/webvr/VRDisplay.h
Source/WebCore/Sources.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/animation/CSSAnimation.cpp
Source/WebCore/animation/CSSAnimation.h
Source/WebCore/animation/CSSTransition.cpp
Source/WebCore/animation/CSSTransition.h
Source/WebCore/animation/DeclarativeAnimation.cpp
Source/WebCore/animation/DeclarativeAnimation.h
Source/WebCore/animation/WebAnimation.cpp
Source/WebCore/animation/WebAnimation.h
Source/WebCore/bindings/js/ScriptWrappable.h
Source/WebCore/css/CSSComputedStyleDeclaration.cpp
Source/WebCore/css/CSSComputedStyleDeclaration.h
Source/WebCore/css/CSSStyleDeclaration.cpp
Source/WebCore/css/CSSStyleDeclaration.h
Source/WebCore/css/DOMMatrix.h
Source/WebCore/css/DOMMatrixReadOnly.cpp
Source/WebCore/css/DOMMatrixReadOnly.h
Source/WebCore/css/FontFaceSet.cpp
Source/WebCore/css/FontFaceSet.h
Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp
Source/WebCore/css/PropertySetCSSStyleDeclaration.h
Source/WebCore/css/WebKitCSSMatrix.cpp
Source/WebCore/css/WebKitCSSMatrix.h
Source/WebCore/css/typedom/TypedOMCSSImageValue.cpp [new file with mode: 0644]
Source/WebCore/css/typedom/TypedOMCSSImageValue.h
Source/WebCore/css/typedom/TypedOMCSSNumericValue.cpp [new file with mode: 0644]
Source/WebCore/css/typedom/TypedOMCSSNumericValue.h
Source/WebCore/css/typedom/TypedOMCSSStyleValue.cpp [new file with mode: 0644]
Source/WebCore/css/typedom/TypedOMCSSStyleValue.h
Source/WebCore/css/typedom/TypedOMCSSUnitValue.cpp [new file with mode: 0644]
Source/WebCore/css/typedom/TypedOMCSSUnitValue.h
Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.cpp [new file with mode: 0644]
Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.h
Source/WebCore/dom/AbortController.cpp
Source/WebCore/dom/AbortController.h
Source/WebCore/dom/AbortSignal.cpp
Source/WebCore/dom/AbortSignal.h
Source/WebCore/dom/AllDescendantsCollection.cpp [new file with mode: 0644]
Source/WebCore/dom/AllDescendantsCollection.h
Source/WebCore/dom/ChildNodeList.cpp
Source/WebCore/dom/ChildNodeList.h
Source/WebCore/dom/ClassCollection.cpp
Source/WebCore/dom/ClassCollection.h
Source/WebCore/dom/DOMImplementation.cpp
Source/WebCore/dom/DOMImplementation.h
Source/WebCore/dom/DOMPoint.h
Source/WebCore/dom/DOMPointReadOnly.cpp
Source/WebCore/dom/DOMPointReadOnly.h
Source/WebCore/dom/DOMQuad.cpp
Source/WebCore/dom/DOMQuad.h
Source/WebCore/dom/DOMRect.h
Source/WebCore/dom/DOMRectReadOnly.cpp [new file with mode: 0644]
Source/WebCore/dom/DOMRectReadOnly.h
Source/WebCore/dom/DataTransferItemList.cpp
Source/WebCore/dom/DataTransferItemList.h
Source/WebCore/dom/DatasetDOMStringMap.cpp
Source/WebCore/dom/DatasetDOMStringMap.h
Source/WebCore/dom/DocumentParser.h
Source/WebCore/dom/EventTarget.cpp
Source/WebCore/dom/EventTarget.h
Source/WebCore/dom/LiveNodeList.cpp
Source/WebCore/dom/LiveNodeList.h
Source/WebCore/dom/MessageChannel.cpp
Source/WebCore/dom/MessagePort.cpp
Source/WebCore/dom/MessagePort.h
Source/WebCore/dom/NameNodeList.cpp
Source/WebCore/dom/NameNodeList.h
Source/WebCore/dom/NamedNodeMap.cpp
Source/WebCore/dom/NamedNodeMap.h
Source/WebCore/dom/NodeIterator.cpp
Source/WebCore/dom/NodeIterator.h
Source/WebCore/dom/NodeList.cpp [new file with mode: 0644]
Source/WebCore/dom/NodeList.h
Source/WebCore/dom/NodeRareData.cpp
Source/WebCore/dom/ScriptExecutionContext.cpp
Source/WebCore/dom/SimulatedClick.cpp
Source/WebCore/dom/StaticNodeList.cpp
Source/WebCore/dom/StaticNodeList.h
Source/WebCore/dom/TagCollection.cpp
Source/WebCore/dom/TagCollection.h
Source/WebCore/dom/TreeWalker.cpp
Source/WebCore/dom/TreeWalker.h
Source/WebCore/fileapi/Blob.cpp
Source/WebCore/fileapi/Blob.h
Source/WebCore/fileapi/File.cpp
Source/WebCore/fileapi/File.h
Source/WebCore/fileapi/FileList.cpp
Source/WebCore/fileapi/FileList.h
Source/WebCore/fileapi/FileReader.cpp
Source/WebCore/fileapi/FileReader.h
Source/WebCore/html/CachedHTMLCollection.h
Source/WebCore/html/GenericCachedHTMLCollection.cpp
Source/WebCore/html/GenericCachedHTMLCollection.h
Source/WebCore/html/HTMLAllCollection.cpp
Source/WebCore/html/HTMLAllCollection.h
Source/WebCore/html/HTMLCollection.cpp
Source/WebCore/html/HTMLCollection.h
Source/WebCore/html/HTMLFormControlsCollection.cpp
Source/WebCore/html/HTMLFormControlsCollection.h
Source/WebCore/html/HTMLNameCollection.cpp
Source/WebCore/html/HTMLNameCollection.h
Source/WebCore/html/HTMLOptionsCollection.cpp
Source/WebCore/html/HTMLOptionsCollection.h
Source/WebCore/html/HTMLTableRowsCollection.cpp
Source/WebCore/html/HTMLTableRowsCollection.h
Source/WebCore/html/ImageBitmap.cpp
Source/WebCore/html/ImageBitmap.h
Source/WebCore/html/LabelsNodeList.cpp
Source/WebCore/html/LabelsNodeList.h
Source/WebCore/html/MediaController.cpp
Source/WebCore/html/MediaController.h
Source/WebCore/html/OffscreenCanvas.cpp
Source/WebCore/html/OffscreenCanvas.h
Source/WebCore/html/RadioNodeList.cpp
Source/WebCore/html/RadioNodeList.h
Source/WebCore/html/canvas/CanvasRenderingContext.cpp
Source/WebCore/html/canvas/CanvasRenderingContext.h
Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
Source/WebCore/html/canvas/CanvasRenderingContext2D.h
Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h
Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.h
Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp
Source/WebCore/html/canvas/ImageBitmapRenderingContext.h
Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp
Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.h
Source/WebCore/html/canvas/PaintRenderingContext2D.cpp
Source/WebCore/html/canvas/PaintRenderingContext2D.h
Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp
Source/WebCore/html/canvas/PlaceholderRenderingContext.h
Source/WebCore/html/canvas/WebGL2RenderingContext.cpp
Source/WebCore/html/canvas/WebGL2RenderingContext.h
Source/WebCore/html/canvas/WebGLRenderingContext.cpp
Source/WebCore/html/canvas/WebGLRenderingContext.h
Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
Source/WebCore/html/canvas/WebGLRenderingContextBase.h
Source/WebCore/html/track/AudioTrackList.h
Source/WebCore/html/track/DataCue.cpp
Source/WebCore/html/track/DataCue.h
Source/WebCore/html/track/InbandDataTextTrack.cpp
Source/WebCore/html/track/InbandDataTextTrack.h
Source/WebCore/html/track/InbandGenericTextTrack.cpp
Source/WebCore/html/track/InbandGenericTextTrack.h
Source/WebCore/html/track/InbandTextTrack.cpp
Source/WebCore/html/track/InbandTextTrack.h
Source/WebCore/html/track/InbandWebVTTTextTrack.cpp
Source/WebCore/html/track/InbandWebVTTTextTrack.h
Source/WebCore/html/track/LoadableTextTrack.cpp
Source/WebCore/html/track/LoadableTextTrack.h
Source/WebCore/html/track/TextTrack.cpp
Source/WebCore/html/track/TextTrack.h
Source/WebCore/html/track/TextTrackCue.cpp
Source/WebCore/html/track/TextTrackCue.h
Source/WebCore/html/track/TextTrackCueGeneric.cpp
Source/WebCore/html/track/TextTrackCueGeneric.h
Source/WebCore/html/track/TextTrackList.cpp
Source/WebCore/html/track/TextTrackList.h
Source/WebCore/html/track/TrackListBase.cpp
Source/WebCore/html/track/TrackListBase.h
Source/WebCore/html/track/VTTCue.cpp
Source/WebCore/html/track/VTTCue.h
Source/WebCore/html/track/VideoTrackList.h
Source/WebCore/loader/appcache/DOMApplicationCache.cpp
Source/WebCore/loader/appcache/DOMApplicationCache.h
Source/WebCore/page/AbstractDOMWindow.cpp
Source/WebCore/page/AbstractDOMWindow.h
Source/WebCore/page/BarProp.cpp
Source/WebCore/page/BarProp.h
Source/WebCore/page/DOMWindow.cpp
Source/WebCore/page/DOMWindow.h
Source/WebCore/page/EventSource.cpp
Source/WebCore/page/EventSource.h
Source/WebCore/page/History.cpp
Source/WebCore/page/History.h
Source/WebCore/page/Location.cpp
Source/WebCore/page/Location.h
Source/WebCore/page/Navigator.cpp
Source/WebCore/page/Navigator.h
Source/WebCore/page/Performance.cpp
Source/WebCore/page/Performance.h
Source/WebCore/page/RemoteDOMWindow.cpp
Source/WebCore/page/RemoteDOMWindow.h
Source/WebCore/page/Screen.cpp
Source/WebCore/page/Screen.h
Source/WebCore/page/VisualViewport.cpp
Source/WebCore/page/VisualViewport.h
Source/WebCore/plugins/DOMMimeTypeArray.cpp
Source/WebCore/plugins/DOMMimeTypeArray.h
Source/WebCore/plugins/DOMPlugin.cpp
Source/WebCore/plugins/DOMPlugin.h
Source/WebCore/plugins/DOMPluginArray.cpp
Source/WebCore/plugins/DOMPluginArray.h
Source/WebCore/storage/Storage.cpp
Source/WebCore/storage/Storage.h
Source/WebCore/workers/AbstractWorker.cpp
Source/WebCore/workers/AbstractWorker.h
Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp
Source/WebCore/workers/DedicatedWorkerGlobalScope.h
Source/WebCore/workers/Worker.cpp
Source/WebCore/workers/Worker.h
Source/WebCore/workers/WorkerGlobalScope.cpp
Source/WebCore/workers/WorkerGlobalScope.h
Source/WebCore/workers/service/ServiceWorker.cpp
Source/WebCore/workers/service/ServiceWorker.h
Source/WebCore/workers/service/ServiceWorkerContainer.cpp
Source/WebCore/workers/service/ServiceWorkerContainer.h
Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp
Source/WebCore/workers/service/ServiceWorkerGlobalScope.h
Source/WebCore/workers/service/ServiceWorkerRegistration.cpp
Source/WebCore/workers/service/ServiceWorkerRegistration.h
Source/WebCore/worklets/PaintWorkletGlobalScope.cpp
Source/WebCore/worklets/PaintWorkletGlobalScope.h
Source/WebCore/worklets/Worklet.cpp
Source/WebCore/worklets/Worklet.h
Source/WebCore/worklets/WorkletGlobalScope.cpp
Source/WebCore/worklets/WorkletGlobalScope.h
Source/WebCore/xml/XMLHttpRequest.cpp
Source/WebCore/xml/XMLHttpRequest.h
Source/WebCore/xml/XMLHttpRequestEventTarget.h
Source/WebCore/xml/XMLHttpRequestUpload.cpp
Source/WebCore/xml/XMLHttpRequestUpload.h
Source/WebCore/xml/XPathParser.cpp
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/IsoHeap.h
Source/bmalloc/bmalloc/IsoHeapInlines.h

index 71a8692..06c6a77 100644 (file)
@@ -1,3 +1,14 @@
+2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
+        https://bugs.webkit.org/show_bug.cgi?id=196475
+
+        Reviewed by Saam Barati.
+
+        * wtf/ForbidHeapAllocation.h:
+        * wtf/IsoMalloc.h:
+        * wtf/IsoMallocInlines.h:
+
 2019-04-03  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake][WTF] Mirror XCode header directories
index 9547aaf..47d0a98 100644 (file)
 
 #pragma once
 
+// We do not delete "delete" operators to allow classes to have a virtual destructor. The following code raises a compile error like "error: attempt to use a deleted function".
+//
+//     class A {
+//     public:
+//         virtual ~A();
+//         void operator delete(void*) = delete;
+//         void operator delete[](void*) = delete;
+//     };
+//
 #define WTF_FORBID_HEAP_ALLOCATION \
 private: \
     void* operator new(size_t, void*) = delete; \
     void* operator new[](size_t, void*) = delete; \
     void* operator new(size_t) = delete; \
-    void operator delete(void*) = delete; \
     void* operator new[](size_t size) = delete; \
-    void operator delete[](void*) = delete; \
     void* operator new(size_t, NotNullTag, void* location) = delete; \
     typedef int __thisIsHereToForceASemicolonAfterThisForbidHeapAllocationMacro
index 38e3d83..4551e1c 100644 (file)
 
 #pragma once
 
+#include <wtf/ForbidHeapAllocation.h>
+
 #if (defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC)
 
 #include <wtf/FastMalloc.h>
 
 #define WTF_MAKE_ISO_ALLOCATED(name) WTF_MAKE_FAST_ALLOCATED
+#define WTF_MAKE_ISO_ALLOCATED_EXPORT(name, exportMacro) WTF_MAKE_FAST_ALLOCATED
+#define WTF_MAKE_ISO_NONALLOCATABLE(name) WTF_FORBID_HEAP_ALLOCATION
 
 #else
 
 #include <bmalloc/IsoHeap.h>
 
-#define WTF_MAKE_ISO_ALLOCATED(name) MAKE_BISO_MALLOCED(name)
+#define WTF_NOEXPORT
+
+#define WTF_MAKE_ISO_ALLOCATED(name) MAKE_BISO_MALLOCED(name, WTF_NOEXPORT)
+#define WTF_MAKE_ISO_ALLOCATED_EXPORT(name, exportMacro) MAKE_BISO_MALLOCED(name, exportMacro)
+#define WTF_MAKE_ISO_NONALLOCATABLE(name) WTF_FORBID_HEAP_ALLOCATION
 
 #endif
 
index 1a8200b..2cb0f41 100644 (file)
@@ -31,6 +31,7 @@
 
 #define WTF_MAKE_ISO_ALLOCATED_INLINE(name) WTF_MAKE_FAST_ALLOCATED
 #define WTF_MAKE_ISO_ALLOCATED_IMPL(name) struct WTFIsoMallocSemicolonifier##name { }
+#define WTF_MAKE_ISO_ALLOCATED_IMPL_TEMPLATE(name) struct WTFIsoMallocSemicolonifier##name { }
 
 #else
 
@@ -38,6 +39,7 @@
 
 #define WTF_MAKE_ISO_ALLOCATED_INLINE(name) MAKE_BISO_MALLOCED_INLINE(name)
 #define WTF_MAKE_ISO_ALLOCATED_IMPL(name) MAKE_BISO_MALLOCED_IMPL(name)
+#define WTF_MAKE_ISO_ALLOCATED_IMPL_TEMPLATE(name) MAKE_BISO_MALLOCED_IMPL_TEMPLATE(name)
 
 #endif
 
index ed49935..9dfaf92 100644 (file)
@@ -1,3 +1,490 @@
+2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
+        https://bugs.webkit.org/show_bug.cgi?id=196475
+
+        Reviewed by Saam Barati.
+
+        This patch puts most of derived classes of ScriptWrappable into IsoHeap. We do not include derived classes of Event simply
+        because Internal repository code also inherits it. After watching the result of this patch, we will try Event and its derived
+        classes into IsoHeap too.
+
+        This patch makes the following things IsoHeap-allocated. These classes are listed by using lldb python script.
+
+            1. DOM collections (HTMLCollection etc.)
+            2. WebAudio nodes
+            3. IDB classes
+            4. FileSystem API classes
+            5. Canvas contexts
+            6. WebRTC classses
+            7. XMLHttpRequest related classes
+            8. WebSocket related classes
+            9. Worker and Worklet related classes
+            10. Other misc classes
+
+        * Modules/applepay/ApplePaySession.cpp:
+        * Modules/applepay/ApplePaySession.h:
+        * Modules/encryptedmedia/MediaKeySession.cpp:
+        * Modules/encryptedmedia/MediaKeySession.h:
+        * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
+        * Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
+        * Modules/entriesapi/DOMFileSystem.cpp:
+        * Modules/entriesapi/DOMFileSystem.h:
+        (WebCore::DOMFileSystem::createEntryForFile): Deleted.
+        (WebCore::DOMFileSystem::name const): Deleted.
+        * Modules/entriesapi/FileSystemDirectoryEntry.h:
+        * Modules/entriesapi/FileSystemDirectoryReader.cpp:
+        * Modules/entriesapi/FileSystemDirectoryReader.h:
+        * Modules/entriesapi/FileSystemEntry.cpp:
+        * Modules/entriesapi/FileSystemEntry.h:
+        * Modules/entriesapi/FileSystemFileEntry.h:
+        * Modules/geolocation/Geolocation.cpp:
+        * Modules/geolocation/Geolocation.h:
+        (WebCore::Geolocation::document const): Deleted.
+        (WebCore::Geolocation::frame const): Deleted.
+        (WebCore::Geolocation::resetIsAllowed): Deleted.
+        (WebCore::Geolocation::isAllowed const): Deleted.
+        (WebCore::Geolocation::isDenied const): Deleted.
+        (WebCore::Geolocation::hasListeners const): Deleted.
+        * Modules/indexeddb/IDBCursor.cpp:
+        * Modules/indexeddb/IDBCursor.h:
+        * Modules/indexeddb/IDBCursorWithValue.cpp:
+        * Modules/indexeddb/IDBCursorWithValue.h:
+        * Modules/indexeddb/IDBDatabase.cpp:
+        * Modules/indexeddb/IDBDatabase.h:
+        (WebCore::IDBDatabase::info const): Deleted.
+        (WebCore::IDBDatabase::databaseConnectionIdentifier const): Deleted.
+        (WebCore::IDBDatabase::connectionProxy): Deleted.
+        (WebCore::IDBDatabase::isClosingOrClosed const): Deleted.
+        * Modules/indexeddb/IDBKeyRange.cpp:
+        * Modules/indexeddb/IDBKeyRange.h:
+        (WebCore::IDBKeyRange::lower const): Deleted.
+        (WebCore::IDBKeyRange::upper const): Deleted.
+        (WebCore::IDBKeyRange::lowerOpen const): Deleted.
+        (WebCore::IDBKeyRange::upperOpen const): Deleted.
+        * Modules/indexeddb/IDBOpenDBRequest.cpp:
+        * Modules/indexeddb/IDBOpenDBRequest.h:
+        * Modules/indexeddb/IDBRequest.cpp:
+        * Modules/indexeddb/IDBRequest.h:
+        * Modules/indexeddb/IDBTransaction.cpp:
+        * Modules/indexeddb/IDBTransaction.h:
+        (WebCore::IDBTransaction::mode const): Deleted.
+        (WebCore::IDBTransaction::info const): Deleted.
+        (WebCore::IDBTransaction::database): Deleted.
+        (WebCore::IDBTransaction::database const): Deleted.
+        (WebCore::IDBTransaction::originalDatabaseInfo const): Deleted.
+        (WebCore::IDBTransaction::isVersionChange const): Deleted.
+        (WebCore::IDBTransaction::isReadOnly const): Deleted.
+        (WebCore::IDBTransaction::isFinished const): Deleted.
+        * Modules/mediarecorder/MediaRecorder.cpp:
+        * Modules/mediarecorder/MediaRecorder.h:
+        * Modules/mediasession/MediaRemoteControls.cpp:
+        * Modules/mediasession/MediaRemoteControls.h:
+        (WebCore::MediaRemoteControls::create): Deleted.
+        (WebCore::MediaRemoteControls::previousTrackEnabled const): Deleted.
+        (WebCore::MediaRemoteControls::nextTrackEnabled const): Deleted.
+        * Modules/mediasource/MediaSource.cpp:
+        * Modules/mediasource/MediaSource.h:
+        * Modules/mediasource/SourceBuffer.cpp:
+        * Modules/mediasource/SourceBuffer.h:
+        * Modules/mediasource/SourceBufferList.cpp:
+        * Modules/mediasource/SourceBufferList.h:
+        * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
+        * Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
+        * Modules/mediastream/MediaDeviceInfo.cpp:
+        * Modules/mediastream/MediaDeviceInfo.h:
+        (WebCore::MediaDeviceInfo::label const): Deleted.
+        (WebCore::MediaDeviceInfo::deviceId const): Deleted.
+        (WebCore::MediaDeviceInfo::groupId const): Deleted.
+        (WebCore::MediaDeviceInfo::kind const): Deleted.
+        * Modules/mediastream/MediaDevices.cpp:
+        * Modules/mediastream/MediaDevices.h:
+        * Modules/mediastream/MediaStream.cpp:
+        * Modules/mediastream/MediaStream.h:
+        * Modules/mediastream/MediaStreamTrack.cpp:
+        * Modules/mediastream/MediaStreamTrack.h:
+        * Modules/mediastream/RTCDTMFSender.cpp:
+        * Modules/mediastream/RTCDTMFSender.h:
+        * Modules/mediastream/RTCDataChannel.cpp:
+        * Modules/mediastream/RTCDataChannel.h:
+        * Modules/mediastream/RTCIceCandidate.cpp:
+        * Modules/mediastream/RTCIceCandidate.h:
+        (WebCore::RTCIceCandidate::candidate const): Deleted.
+        (WebCore::RTCIceCandidate::sdpMid const): Deleted.
+        (WebCore::RTCIceCandidate::sdpMLineIndex const): Deleted.
+        (WebCore::RTCIceCandidate::setCandidate): Deleted.
+        * Modules/mediastream/RTCIceTransport.cpp:
+        * Modules/mediastream/RTCIceTransport.h:
+        (WebCore::RTCIceTransport::create): Deleted.
+        (WebCore::RTCIceTransport::state const): Deleted.
+        (WebCore::RTCIceTransport::setState): Deleted.
+        (WebCore::RTCIceTransport::gatheringState const): Deleted.
+        (WebCore::RTCIceTransport::setGatheringState): Deleted.
+        (WebCore::RTCIceTransport::RTCIceTransport): Deleted.
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        * Modules/mediastream/RTCPeerConnection.h:
+        * Modules/mediastream/RTCRtpReceiver.cpp:
+        * Modules/mediastream/RTCRtpReceiver.h:
+        (WebCore::RTCRtpReceiver::create): Deleted.
+        (WebCore::RTCRtpReceiver::setBackend): Deleted.
+        (WebCore::RTCRtpReceiver::getParameters): Deleted.
+        (WebCore::RTCRtpReceiver::getContributingSources const): Deleted.
+        (WebCore::RTCRtpReceiver::getSynchronizationSources const): Deleted.
+        (WebCore::RTCRtpReceiver::track): Deleted.
+        (WebCore::RTCRtpReceiver::backend): Deleted.
+        * Modules/mediastream/RTCRtpSender.cpp:
+        * Modules/mediastream/RTCRtpSender.h:
+        (WebCore::RTCRtpSender::track): Deleted.
+        (WebCore::RTCRtpSender::trackId const): Deleted.
+        (WebCore::RTCRtpSender::trackKind const): Deleted.
+        (WebCore::RTCRtpSender::mediaStreamIds const): Deleted.
+        (WebCore::RTCRtpSender::setMediaStreamIds): Deleted.
+        (WebCore::RTCRtpSender::isStopped const): Deleted.
+        (WebCore::RTCRtpSender::backend): Deleted.
+        * Modules/mediastream/RTCRtpTransceiver.cpp:
+        * Modules/mediastream/RTCRtpTransceiver.h:
+        (WebCore::RTCRtpTransceiver::create): Deleted.
+        (WebCore::RTCRtpTransceiver::sender): Deleted.
+        (WebCore::RTCRtpTransceiver::receiver): Deleted.
+        (WebCore::RTCRtpTransceiver::iceTransport): Deleted.
+        (WebCore::RTCRtpTransceiver::backend): Deleted.
+        * Modules/mediastream/RTCSessionDescription.cpp:
+        * Modules/mediastream/RTCSessionDescription.h:
+        (WebCore::RTCSessionDescription::type const): Deleted.
+        (WebCore::RTCSessionDescription::sdp const): Deleted.
+        (WebCore::RTCSessionDescription::setSdp): Deleted.
+        * Modules/notifications/Notification.cpp:
+        * Modules/notifications/Notification.h:
+        * Modules/paymentrequest/PaymentRequest.cpp:
+        * Modules/paymentrequest/PaymentRequest.h:
+        * Modules/paymentrequest/PaymentResponse.cpp:
+        * Modules/paymentrequest/PaymentResponse.h:
+        * Modules/speech/SpeechSynthesisUtterance.cpp:
+        * Modules/speech/SpeechSynthesisUtterance.h:
+        * Modules/webaudio/AnalyserNode.cpp:
+        * Modules/webaudio/AnalyserNode.h:
+        * Modules/webaudio/AudioBasicInspectorNode.cpp:
+        * Modules/webaudio/AudioBasicInspectorNode.h:
+        * Modules/webaudio/AudioBasicProcessorNode.cpp:
+        * Modules/webaudio/AudioBasicProcessorNode.h:
+        * Modules/webaudio/AudioBufferSourceNode.cpp:
+        * Modules/webaudio/AudioBufferSourceNode.h:
+        * Modules/webaudio/AudioContext.cpp:
+        * Modules/webaudio/AudioContext.h:
+        * Modules/webaudio/AudioDestinationNode.cpp:
+        * Modules/webaudio/AudioDestinationNode.h:
+        * Modules/webaudio/AudioNode.cpp:
+        * Modules/webaudio/AudioNode.h:
+        * Modules/webaudio/AudioScheduledSourceNode.cpp:
+        * Modules/webaudio/AudioScheduledSourceNode.h:
+        * Modules/webaudio/BiquadFilterNode.cpp:
+        * Modules/webaudio/BiquadFilterNode.h:
+        * Modules/webaudio/ChannelMergerNode.cpp:
+        * Modules/webaudio/ChannelMergerNode.h:
+        * Modules/webaudio/ChannelSplitterNode.cpp:
+        * Modules/webaudio/ChannelSplitterNode.h:
+        * Modules/webaudio/ConvolverNode.cpp:
+        * Modules/webaudio/ConvolverNode.h:
+        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
+        * Modules/webaudio/DefaultAudioDestinationNode.h:
+        * Modules/webaudio/DelayNode.cpp:
+        * Modules/webaudio/DelayNode.h:
+        * Modules/webaudio/DynamicsCompressorNode.cpp:
+        * Modules/webaudio/DynamicsCompressorNode.h:
+        * Modules/webaudio/GainNode.cpp:
+        * Modules/webaudio/GainNode.h:
+        * Modules/webaudio/MediaElementAudioSourceNode.cpp:
+        * Modules/webaudio/MediaElementAudioSourceNode.h:
+        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
+        * Modules/webaudio/MediaStreamAudioDestinationNode.h:
+        * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
+        * Modules/webaudio/MediaStreamAudioSourceNode.h:
+        * Modules/webaudio/OfflineAudioContext.cpp:
+        * Modules/webaudio/OfflineAudioContext.h:
+        * Modules/webaudio/OfflineAudioDestinationNode.cpp:
+        * Modules/webaudio/OfflineAudioDestinationNode.h:
+        * Modules/webaudio/OscillatorNode.cpp:
+        * Modules/webaudio/OscillatorNode.h:
+        * Modules/webaudio/PannerNode.cpp:
+        * Modules/webaudio/PannerNode.h:
+        * Modules/webaudio/ScriptProcessorNode.cpp:
+        * Modules/webaudio/ScriptProcessorNode.h:
+        * Modules/webaudio/WaveShaperNode.cpp:
+        * Modules/webaudio/WaveShaperNode.h:
+        * Modules/webgpu/GPUCanvasContext.cpp:
+        * Modules/webgpu/GPUCanvasContext.h:
+        * Modules/websockets/WebSocket.cpp:
+        * Modules/websockets/WebSocket.h:
+        * Modules/webvr/VRDisplay.cpp:
+        * Modules/webvr/VRDisplay.h:
+        (WebCore::VRDisplay::isPresenting const): Deleted.
+        (WebCore::VRDisplay::displayName const): Deleted.
+        (WebCore::VRDisplay::displayId const): Deleted.
+        (WebCore::VRDisplay::depthNear const): Deleted.
+        (WebCore::VRDisplay::setDepthNear): Deleted.
+        (WebCore::VRDisplay::depthFar const): Deleted.
+        (WebCore::VRDisplay::setDepthFar): Deleted.
+        (WebCore::VRDisplay::document): Deleted.
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * animation/CSSAnimation.cpp:
+        * animation/CSSAnimation.h:
+        * animation/CSSTransition.cpp:
+        * animation/CSSTransition.h:
+        * animation/DeclarativeAnimation.cpp:
+        * animation/DeclarativeAnimation.h:
+        * animation/WebAnimation.cpp:
+        * animation/WebAnimation.h:
+        * bindings/js/ScriptWrappable.h:
+        * css/CSSComputedStyleDeclaration.cpp:
+        * css/CSSComputedStyleDeclaration.h:
+        * css/CSSStyleDeclaration.cpp:
+        (): Deleted.
+        * css/CSSStyleDeclaration.h:
+        * css/DOMMatrix.h:
+        * css/DOMMatrixReadOnly.cpp:
+        * css/DOMMatrixReadOnly.h:
+        * css/FontFaceSet.cpp:
+        * css/FontFaceSet.h:
+        * css/PropertySetCSSStyleDeclaration.cpp:
+        * css/PropertySetCSSStyleDeclaration.h:
+        * css/WebKitCSSMatrix.cpp:
+        * css/WebKitCSSMatrix.h:
+        * css/typedom/TypedOMCSSImageValue.cpp: Added.
+        * css/typedom/TypedOMCSSImageValue.h:
+        * css/typedom/TypedOMCSSNumericValue.cpp: Added.
+        * css/typedom/TypedOMCSSNumericValue.h:
+        * css/typedom/TypedOMCSSStyleValue.cpp: Added.
+        * css/typedom/TypedOMCSSStyleValue.h:
+        * css/typedom/TypedOMCSSUnitValue.cpp: Added.
+        * css/typedom/TypedOMCSSUnitValue.h:
+        * css/typedom/TypedOMCSSUnparsedValue.cpp: Added.
+        * css/typedom/TypedOMCSSUnparsedValue.h:
+        * dom/AbortController.cpp:
+        * dom/AbortController.h:
+        * dom/AbortSignal.cpp:
+        * dom/AbortSignal.h:
+        * dom/AllDescendantsCollection.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
+        * dom/AllDescendantsCollection.h:
+        * dom/ChildNodeList.cpp:
+        * dom/ChildNodeList.h:
+        * dom/ClassCollection.cpp:
+        * dom/ClassCollection.h:
+        * dom/DOMImplementation.cpp:
+        * dom/DOMImplementation.h:
+        (WebCore::DOMImplementation::ref): Deleted.
+        (WebCore::DOMImplementation::deref): Deleted.
+        (WebCore::DOMImplementation::document): Deleted.
+        (WebCore::DOMImplementation::hasFeature): Deleted.
+        * dom/DOMPoint.h:
+        * dom/DOMPointReadOnly.cpp:
+        * dom/DOMPointReadOnly.h:
+        * dom/DOMQuad.cpp:
+        * dom/DOMQuad.h:
+        * dom/DOMRect.h:
+        * dom/DOMRectReadOnly.cpp: Copied from Source/WebCore/dom/DOMPointReadOnly.cpp.
+        * dom/DOMRectReadOnly.h:
+        * dom/DataTransferItemList.cpp:
+        * dom/DataTransferItemList.h:
+        (WebCore::DataTransferItemList::ref): Deleted.
+        (WebCore::DataTransferItemList::deref): Deleted.
+        (WebCore::DataTransferItemList::dataTransfer): Deleted.
+        (WebCore::DataTransferItemList::hasItems const): Deleted.
+        (WebCore::DataTransferItemList::items const): Deleted.
+        * dom/DatasetDOMStringMap.cpp:
+        * dom/DatasetDOMStringMap.h:
+        * dom/DocumentParser.h:
+        * dom/EventTarget.cpp:
+        * dom/EventTarget.h:
+        * dom/LiveNodeList.cpp:
+        * dom/LiveNodeList.h:
+        * dom/MessageChannel.cpp:
+        * dom/MessagePort.cpp:
+        * dom/MessagePort.h:
+        * dom/NameNodeList.cpp:
+        * dom/NameNodeList.h:
+        * dom/NamedNodeMap.cpp:
+        * dom/NamedNodeMap.h:
+        (WebCore::NamedNodeMap::NamedNodeMap): Deleted.
+        (WebCore::NamedNodeMap::element): Deleted.
+        * dom/NodeIterator.cpp:
+        * dom/NodeIterator.h:
+        (WebCore::NodeIterator::detach): Deleted.
+        (WebCore::NodeIterator::referenceNode const): Deleted.
+        (WebCore::NodeIterator::pointerBeforeReferenceNode const): Deleted.
+        * dom/NodeList.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
+        * dom/NodeList.h:
+        * dom/NodeRareData.cpp:
+        * dom/ScriptExecutionContext.cpp:
+        * dom/SimulatedClick.cpp:
+        * dom/StaticNodeList.cpp:
+        * dom/StaticNodeList.h:
+        * dom/TagCollection.cpp:
+        * dom/TagCollection.h:
+        * dom/TreeWalker.cpp:
+        * dom/TreeWalker.h:
+        (WebCore::TreeWalker::create): Deleted.
+        (WebCore::TreeWalker::currentNode): Deleted.
+        (WebCore::TreeWalker::currentNode const): Deleted.
+        * fileapi/Blob.cpp:
+        * fileapi/Blob.h:
+        * fileapi/File.cpp:
+        * fileapi/File.h:
+        * fileapi/FileList.cpp:
+        * fileapi/FileList.h:
+        (WebCore::FileList::create): Deleted.
+        (WebCore::FileList::length const): Deleted.
+        (WebCore::FileList::isEmpty const): Deleted.
+        (WebCore::FileList::files const): Deleted.
+        (WebCore::FileList::file const): Deleted.
+        (WebCore::FileList::FileList): Deleted.
+        (WebCore::FileList::append): Deleted.
+        (WebCore::FileList::clear): Deleted.
+        * fileapi/FileReader.cpp:
+        * fileapi/FileReader.h:
+        * html/CachedHTMLCollection.h:
+        * html/GenericCachedHTMLCollection.cpp:
+        * html/GenericCachedHTMLCollection.h:
+        * html/HTMLAllCollection.cpp:
+        * html/HTMLAllCollection.h:
+        * html/HTMLCollection.cpp:
+        * html/HTMLCollection.h:
+        * html/HTMLFormControlsCollection.cpp:
+        * html/HTMLFormControlsCollection.h:
+        * html/HTMLNameCollection.cpp:
+        * html/HTMLNameCollection.h:
+        * html/HTMLOptionsCollection.cpp:
+        * html/HTMLOptionsCollection.h:
+        * html/HTMLTableRowsCollection.cpp:
+        * html/HTMLTableRowsCollection.h:
+        * html/ImageBitmap.cpp:
+        * html/ImageBitmap.h:
+        (WebCore::ImageBitmap::isDetached const): Deleted.
+        (WebCore::ImageBitmap::buffer): Deleted.
+        (WebCore::ImageBitmap::originClean const): Deleted.
+        * html/LabelsNodeList.cpp:
+        * html/LabelsNodeList.h:
+        * html/MediaController.cpp:
+        * html/MediaController.h:
+        * html/OffscreenCanvas.cpp:
+        * html/OffscreenCanvas.h:
+        * html/RadioNodeList.cpp:
+        * html/RadioNodeList.h:
+        * html/canvas/CanvasRenderingContext.cpp:
+        * html/canvas/CanvasRenderingContext.h:
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        * html/canvas/CanvasRenderingContext2D.h:
+        * html/canvas/CanvasRenderingContext2DBase.cpp:
+        * html/canvas/CanvasRenderingContext2DBase.h:
+        * html/canvas/GPUBasedCanvasRenderingContext.h:
+        * html/canvas/ImageBitmapRenderingContext.cpp:
+        * html/canvas/ImageBitmapRenderingContext.h:
+        * html/canvas/OffscreenCanvasRenderingContext2D.cpp:
+        * html/canvas/OffscreenCanvasRenderingContext2D.h:
+        * html/canvas/PaintRenderingContext2D.cpp:
+        * html/canvas/PaintRenderingContext2D.h:
+        * html/canvas/PlaceholderRenderingContext.cpp:
+        * html/canvas/PlaceholderRenderingContext.h:
+        * html/canvas/WebGL2RenderingContext.cpp:
+        * html/canvas/WebGL2RenderingContext.h:
+        * html/canvas/WebGLRenderingContext.cpp:
+        * html/canvas/WebGLRenderingContext.h:
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        * html/canvas/WebGLRenderingContextBase.h:
+        * html/track/AudioTrackList.h:
+        * html/track/DataCue.cpp:
+        * html/track/DataCue.h:
+        * html/track/InbandDataTextTrack.cpp:
+        * html/track/InbandDataTextTrack.h:
+        * html/track/InbandGenericTextTrack.cpp:
+        * html/track/InbandGenericTextTrack.h:
+        * html/track/InbandTextTrack.cpp:
+        * html/track/InbandTextTrack.h:
+        * html/track/InbandWebVTTTextTrack.cpp:
+        * html/track/InbandWebVTTTextTrack.h:
+        * html/track/LoadableTextTrack.cpp:
+        * html/track/LoadableTextTrack.h:
+        * html/track/TextTrack.cpp:
+        * html/track/TextTrack.h:
+        * html/track/TextTrackCue.cpp:
+        * html/track/TextTrackCue.h:
+        * html/track/TextTrackCueGeneric.cpp:
+        * html/track/TextTrackCueGeneric.h:
+        * html/track/TextTrackList.cpp:
+        * html/track/TextTrackList.h:
+        * html/track/TrackListBase.cpp:
+        * html/track/TrackListBase.h:
+        * html/track/VTTCue.cpp:
+        * html/track/VTTCue.h:
+        * html/track/VideoTrackList.h:
+        * loader/appcache/DOMApplicationCache.cpp:
+        * loader/appcache/DOMApplicationCache.h:
+        * page/AbstractDOMWindow.cpp:
+        * page/AbstractDOMWindow.h:
+        * page/BarProp.cpp:
+        * page/BarProp.h:
+        (WebCore::BarProp::create): Deleted.
+        * page/DOMWindow.cpp:
+        * page/DOMWindow.h:
+        * page/EventSource.cpp:
+        * page/EventSource.h:
+        * page/History.cpp:
+        * page/History.h:
+        * page/Location.cpp:
+        * page/Location.h:
+        (WebCore::Location::create): Deleted.
+        (WebCore::Location::toString const): Deleted.
+        * page/Navigator.cpp:
+        * page/Navigator.h:
+        * page/Performance.cpp:
+        * page/Performance.h:
+        * page/RemoteDOMWindow.cpp:
+        * page/RemoteDOMWindow.h:
+        * page/Screen.cpp:
+        * page/Screen.h:
+        * page/VisualViewport.cpp:
+        * page/VisualViewport.h:
+        * plugins/DOMMimeTypeArray.cpp:
+        * plugins/DOMMimeTypeArray.h:
+        (WebCore::DOMMimeTypeArray::create): Deleted.
+        * plugins/DOMPlugin.cpp:
+        * plugins/DOMPlugin.h:
+        (WebCore::DOMPlugin::create): Deleted.
+        * plugins/DOMPluginArray.cpp:
+        * plugins/DOMPluginArray.h:
+        (WebCore::DOMPluginArray::create): Deleted.
+        * storage/Storage.cpp:
+        * storage/Storage.h:
+        (WebCore::Storage::area const): Deleted.
+        * workers/AbstractWorker.cpp:
+        * workers/AbstractWorker.h:
+        * workers/DedicatedWorkerGlobalScope.cpp:
+        * workers/DedicatedWorkerGlobalScope.h:
+        * workers/Worker.cpp:
+        * workers/Worker.h:
+        * workers/WorkerGlobalScope.cpp:
+        * workers/WorkerGlobalScope.h:
+        * workers/service/ServiceWorker.cpp:
+        * workers/service/ServiceWorker.h:
+        * workers/service/ServiceWorkerContainer.cpp:
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        * workers/service/ServiceWorkerGlobalScope.h:
+        * workers/service/ServiceWorkerRegistration.cpp:
+        * workers/service/ServiceWorkerRegistration.h:
+        * worklets/PaintWorkletGlobalScope.cpp:
+        * worklets/PaintWorkletGlobalScope.h:
+        * worklets/Worklet.cpp:
+        * worklets/Worklet.h:
+        * worklets/WorkletGlobalScope.cpp:
+        * worklets/WorkletGlobalScope.h:
+        * xml/XMLHttpRequest.cpp:
+        * xml/XMLHttpRequest.h:
+        * xml/XMLHttpRequestEventTarget.h:
+        * xml/XMLHttpRequestUpload.cpp:
+        * xml/XMLHttpRequestUpload.h:
+        * xml/XPathParser.cpp:
+
 2019-04-04  Chris Dumez  <cdumez@apple.com>
 
         Unreviewed, fix iOS build with recent SDKs.
index 9d040a3..e30a85e 100644 (file)
 #include "SecurityOrigin.h"
 #include "Settings.h"
 #include "UserGestureIndicator.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ApplePaySession);
+
 // The amount follows the regular expression -?[0-9]+(\.[0-9][0-9])?.
 static bool validateAmount(const String& amountString)
 {
index 88a63b8..c09eb29 100644 (file)
@@ -58,6 +58,7 @@ struct ApplePayShippingContactUpdate;
 struct ApplePayShippingMethodUpdate;
 
 class ApplePaySession final : public PaymentSession, public ActiveDOMObject, public EventTargetWithInlineData {
+    WTF_MAKE_ISO_ALLOCATED(ApplePaySession);
 public:
     static ExceptionOr<Ref<ApplePaySession>> create(Document&, unsigned version, ApplePayPaymentRequest&&);
     virtual ~ApplePaySession();
index 0404d86..c58adf6 100644 (file)
 #include "SecurityOriginData.h"
 #include "Settings.h"
 #include "SharedBuffer.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaKeySession);
+
 Ref<MediaKeySession> MediaKeySession::create(ScriptExecutionContext& context, WeakPtr<MediaKeys>&& keys, MediaKeySessionType sessionType, bool useDistinctiveIdentifier, Ref<CDM>&& implementation, Ref<CDMInstanceSession>&& instanceSession)
 {
     auto session = adoptRef(*new MediaKeySession(context, WTFMove(keys), sessionType, useDistinctiveIdentifier, WTFMove(implementation), WTFMove(instanceSession)));
index b64cab8..c9f60f1 100644 (file)
@@ -53,6 +53,7 @@ class MediaKeys;
 class SharedBuffer;
 
 class MediaKeySession final : public RefCounted<MediaKeySession>, public EventTargetWithInlineData, public ActiveDOMObject, public CanMakeWeakPtr<MediaKeySession>, public CDMInstanceSessionClient {
+    WTF_MAKE_ISO_ALLOCATED(MediaKeySession);
 public:
     static Ref<MediaKeySession> create(ScriptExecutionContext&, WeakPtr<MediaKeys>&&, MediaKeySessionType, bool useDistinctiveIdentifier, Ref<CDM>&&, Ref<CDMInstanceSession>&&);
     virtual ~MediaKeySession();
index 65edda1..70c70e3 100644 (file)
 #include "WebKitMediaKeyMessageEvent.h"
 #include "WebKitMediaKeys.h"
 #include <wtf/FileSystem.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitMediaKeySession);
+
 Ref<WebKitMediaKeySession> WebKitMediaKeySession::create(ScriptExecutionContext& context, WebKitMediaKeys& keys, const String& keySystem)
 {
     auto session = adoptRef(*new WebKitMediaKeySession(context, keys, keySystem));
index 9301f09..9b63235 100644 (file)
@@ -42,6 +42,7 @@ class WebKitMediaKeyError;
 class WebKitMediaKeys;
 
 class WebKitMediaKeySession final : public RefCounted<WebKitMediaKeySession>, public EventTargetWithInlineData, private ActiveDOMObject, private LegacyCDMSessionClient {
+    WTF_MAKE_ISO_ALLOCATED(WebKitMediaKeySession);
 public:
     static Ref<WebKitMediaKeySession> create(ScriptExecutionContext&, WebKitMediaKeys&, const String& keySystem);
     ~WebKitMediaKeySession();
index 9032f2d..4bd2e00 100644 (file)
 #include <wtf/CrossThreadCopier.h>
 #include <wtf/FileMetadata.h>
 #include <wtf/FileSystem.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/UUID.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMFileSystem);
+
 struct ListedChild {
     String filename;
     FileMetadata::Type type;
index 9b30d7c..3836b87 100644 (file)
@@ -39,7 +39,8 @@ class FileSystemFileEntry;
 class FileSystemEntry;
 class ScriptExecutionContext;
 
-class DOMFileSystem : public ScriptWrappable, public RefCounted<DOMFileSystem> {
+class DOMFileSystem final : public ScriptWrappable, public RefCounted<DOMFileSystem> {
+    WTF_MAKE_ISO_ALLOCATED(DOMFileSystem);
 public:
     static Ref<FileSystemEntry> createEntryForFile(ScriptExecutionContext& context, Ref<File>&& file)
     {
@@ -74,7 +75,6 @@ private:
     Ref<File> m_file;
     String m_rootPath;
     Ref<WorkQueue> m_workQueue;
-
 };
 
 } // namespace WebCore
index e4ea33f..984f5da 100644 (file)
@@ -58,6 +58,7 @@ private:
 
     FileSystemDirectoryEntry(ScriptExecutionContext&, DOMFileSystem&, const String& virtualPath);
 };
+static_assert(sizeof(FileSystemDirectoryEntry) == sizeof(FileSystemEntry), "");
 
 } // namespace WebCore
 
index f9273c4..df8f393 100644 (file)
 #include "FileSystemDirectoryEntry.h"
 #include "FileSystemEntriesCallback.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FileSystemDirectoryReader);
+
 FileSystemDirectoryReader::FileSystemDirectoryReader(ScriptExecutionContext& context, FileSystemDirectoryEntry& directory)
     : ActiveDOMObject(&context)
     , m_directory(directory)
index 3dd3d51..fcc4919 100644 (file)
@@ -39,6 +39,7 @@ class FileSystemEntriesCallback;
 class ScriptExecutionContext;
 
 class FileSystemDirectoryReader final : public ScriptWrappable, public ActiveDOMObject, public RefCounted<FileSystemDirectoryReader> {
+    WTF_MAKE_ISO_ALLOCATED(FileSystemDirectoryReader);
 public:
     static Ref<FileSystemDirectoryReader> create(ScriptExecutionContext& context, FileSystemDirectoryEntry& directory)
     {
index 424cca2..3c5c4f9 100644 (file)
 #include "FileSystemEntryCallback.h"
 #include "ScriptExecutionContext.h"
 #include <wtf/FileSystem.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FileSystemEntry);
+
 FileSystemEntry::FileSystemEntry(ScriptExecutionContext& context, DOMFileSystem& filesystem, const String& virtualPath)
     : ActiveDOMObject(&context)
     , m_filesystem(filesystem)
index 3e76e78..c12f327 100644 (file)
@@ -37,6 +37,7 @@ class ErrorCallback;
 class FileSystemEntryCallback;
 
 class FileSystemEntry : public ScriptWrappable, public ActiveDOMObject, public RefCounted<FileSystemEntry> {
+    WTF_MAKE_ISO_ALLOCATED(FileSystemEntry);
 public:
     virtual ~FileSystemEntry();
 
index 34f6323..ab96e02 100644 (file)
@@ -47,6 +47,7 @@ private:
 
     FileSystemFileEntry(ScriptExecutionContext&, DOMFileSystem&, const String& virtualPath);
 };
+static_assert(sizeof(FileSystemFileEntry) == sizeof(FileSystemEntry), "");
 
 } // namespace WebCore
 
index 5536894..64116e1 100644 (file)
@@ -42,6 +42,7 @@
 #include "PositionError.h"
 #include "RuntimeApplicationChecks.h"
 #include "SecurityOrigin.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/text/StringBuilder.h>
 
@@ -52,6 +53,8 @@ static const ASCIILiteral failedToStartServiceErrorMessage { "Failed to start Ge
 static const ASCIILiteral framelessDocumentErrorMessage { "Geolocation cannot be used in frameless documents"_s };
 static const ASCIILiteral originCannotRequestGeolocationErrorMessage { "Origin does not have permission to use Geolocation service"_s };
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Geolocation);
+
 static RefPtr<Geoposition> createGeoposition(Optional<GeolocationPosition>&& position)
 {
     if (!position)
index 1db4d1c..6a12579 100644 (file)
@@ -50,7 +50,8 @@ class ScriptExecutionContext;
 class SecurityOrigin;
 struct PositionOptions;
 
-class Geolocation : public ScriptWrappable, public RefCounted<Geolocation>, public ActiveDOMObject {
+class Geolocation final : public ScriptWrappable, public RefCounted<Geolocation>, public ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(Geolocation);
     friend class GeoNotifier;
 public:
     static Ref<Geolocation> create(ScriptExecutionContext*);
index 6d40ae1..933cba5 100644 (file)
 #include <JavaScriptCore/HeapInlines.h>
 #include <JavaScriptCore/JSCJSValueInlines.h>
 #include <JavaScriptCore/StrongInlines.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 using namespace JSC;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBCursor);
+
 Ref<IDBCursor> IDBCursor::create(IDBObjectStore& objectStore, const IDBCursorInfo& info)
 {
     return adoptRef(*new IDBCursor(objectStore, info));
index 14ae3aa..1af95a3 100644 (file)
@@ -45,6 +45,7 @@ class IDBObjectStore;
 class IDBTransaction;
 
 class IDBCursor : public ScriptWrappable, public RefCounted<IDBCursor> {
+    WTF_MAKE_ISO_ALLOCATED(IDBCursor);
 public:
     static Ref<IDBCursor> create(IDBObjectStore&, const IDBCursorInfo&);
     static Ref<IDBCursor> create(IDBIndex&, const IDBCursorInfo&);
index 810c3d4..6f00fd6 100644 (file)
 #if ENABLE(INDEXED_DATABASE)
 
 #include <JavaScriptCore/HeapInlines.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBCursorWithValue);
+
 Ref<IDBCursorWithValue> IDBCursorWithValue::create(IDBObjectStore& objectStore, const IDBCursorInfo& info)
 {
     return adoptRef(*new IDBCursorWithValue(objectStore, info));
index e403f77..ba5e653 100644 (file)
@@ -33,6 +33,7 @@
 namespace WebCore {
 
 class IDBCursorWithValue final : public IDBCursor {
+    WTF_MAKE_ISO_ALLOCATED(IDBCursorWithValue);
 public:
     static Ref<IDBCursorWithValue> create(IDBObjectStore&, const IDBCursorInfo&);
     static Ref<IDBCursorWithValue> create(IDBIndex&, const IDBCursorInfo&);
index 7106ba1..5b34eaf 100644 (file)
 #include "Logging.h"
 #include "ScriptExecutionContext.h"
 #include <JavaScriptCore/HeapInlines.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBDatabase);
+
 Ref<IDBDatabase> IDBDatabase::create(ScriptExecutionContext& context, IDBClient::IDBConnectionProxy& connectionProxy, const IDBResultData& resultData)
 {
     return adoptRef(*new IDBDatabase(context, connectionProxy, resultData));
index fc3e12b..533d34a 100644 (file)
@@ -45,7 +45,8 @@ class IDBTransactionInfo;
 
 struct EventNames;
 
-class IDBDatabase : public ThreadSafeRefCounted<IDBDatabase>, public EventTargetWithInlineData, public IDBActiveDOMObject {
+class IDBDatabase final : public ThreadSafeRefCounted<IDBDatabase>, public EventTargetWithInlineData, public IDBActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(IDBDatabase);
 public:
     static Ref<IDBDatabase> create(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBResultData&);
 
index a254d01..f7505da 100644 (file)
 #include "IDBKeyData.h"
 #include "ScriptExecutionContext.h"
 #include <JavaScriptCore/JSCJSValue.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 using namespace JSC;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBKeyRange);
+
 Ref<IDBKeyRange> IDBKeyRange::create(RefPtr<IDBKey>&& lower, RefPtr<IDBKey>&& upper, bool isLowerOpen, bool isUpperOpen)
 {
     return adoptRef(*new IDBKeyRange(WTFMove(lower), WTFMove(upper), isLowerOpen, isUpperOpen));
index 0f13f97..77aa371 100644 (file)
@@ -42,7 +42,8 @@ namespace WebCore {
 class IDBKey;
 class ScriptExecutionContext;
 
-class IDBKeyRange : public ScriptWrappable, public RefCounted<IDBKeyRange> {
+class IDBKeyRange final : public ScriptWrappable, public RefCounted<IDBKeyRange> {
+    WTF_MAKE_ISO_ALLOCATED(IDBKeyRange);
 public:
     static Ref<IDBKeyRange> create(RefPtr<IDBKey>&& lower, RefPtr<IDBKey>&& upper, bool isLowerOpen, bool isUpperOpen);
     static Ref<IDBKeyRange> create(RefPtr<IDBKey>&&);
index 4411876..9eae8d4 100644 (file)
 #include "IDBVersionChangeEvent.h"
 #include "Logging.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBOpenDBRequest);
+
 Ref<IDBOpenDBRequest> IDBOpenDBRequest::createDeleteRequest(ScriptExecutionContext& context, IDBClient::IDBConnectionProxy& connectionProxy, const IDBDatabaseIdentifier& databaseIdentifier)
 {
     return adoptRef(*new IDBOpenDBRequest(context, connectionProxy, databaseIdentifier, 0, IndexedDB::RequestType::Delete));
index 8f029b5..8748eb3 100644 (file)
@@ -35,6 +35,7 @@ namespace WebCore {
 class IDBResultData;
 
 class IDBOpenDBRequest final : public IDBRequest {
+    WTF_MAKE_ISO_ALLOCATED(IDBOpenDBRequest);
 public:
     static Ref<IDBOpenDBRequest> createDeleteRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBDatabaseIdentifier&);
     static Ref<IDBOpenDBRequest> createOpenRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBDatabaseIdentifier&, uint64_t version);
index 88edd5c..aa7543a 100644 (file)
@@ -48,6 +48,7 @@
 #include "ScriptExecutionContext.h"
 #include "ThreadSafeDataBuffer.h"
 #include <JavaScriptCore/StrongInlines.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Scope.h>
 #include <wtf/Variant.h>
 
@@ -55,6 +56,8 @@
 namespace WebCore {
 using namespace JSC;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBRequest);
+
 Ref<IDBRequest> IDBRequest::create(ScriptExecutionContext& context, IDBObjectStore& objectStore, IDBTransaction& transaction)
 {
     return adoptRef(*new IDBRequest(context, objectStore, transaction));
index 5c9234f..3f66f63 100644 (file)
@@ -61,6 +61,7 @@ class IDBConnectionToServer;
 }
 
 class IDBRequest : public EventTargetWithInlineData, public IDBActiveDOMObject, public RefCounted<IDBRequest>, public CanMakeWeakPtr<IDBRequest> {
+    WTF_MAKE_ISO_ALLOCATED(IDBRequest);
 public:
     enum class NullResultType {
         Empty,
index d985fd4..cb0397c 100644 (file)
 #include "SerializedScriptValue.h"
 #include "TransactionOperation.h"
 #include <wtf/CompletionHandler.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 using namespace JSC;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(IDBTransaction);
+
 std::atomic<unsigned> IDBTransaction::numberOfIDBTransactions { 0 };
 
 Ref<IDBTransaction> IDBTransaction::create(IDBDatabase& database, const IDBTransactionInfo& info)
index 6a2815f..0313bf9 100644 (file)
@@ -65,7 +65,8 @@ class IDBConnectionProxy;
 class TransactionOperation;
 }
 
-class IDBTransaction : public ThreadSafeRefCounted<IDBTransaction>, public EventTargetWithInlineData, public IDBActiveDOMObject {
+class IDBTransaction final : public ThreadSafeRefCounted<IDBTransaction>, public EventTargetWithInlineData, public IDBActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(IDBTransaction);
 public:
     static Ref<IDBTransaction> create(IDBDatabase&, const IDBTransactionInfo&);
     static Ref<IDBTransaction> create(IDBDatabase&, const IDBTransactionInfo&, IDBOpenDBRequest&);
index a396fb0..d5afd44 100644 (file)
@@ -35,6 +35,7 @@
 #include "MediaRecorderErrorEvent.h"
 #include "MediaRecorderPrivate.h"
 #include "SharedBuffer.h"
+#include <wtf/IsoMallocInlines.h>
 
 #if PLATFORM(COCOA)
 #include "MediaRecorderPrivateAVFImpl.h"
@@ -42,6 +43,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaRecorder);
+
 creatorFunction MediaRecorder::m_customCreator = nullptr;
 
 ExceptionOr<Ref<MediaRecorder>> MediaRecorder::create(Document& document, Ref<MediaStream>&& stream, Options&& options)
index 0cde815..5ff5d82 100644 (file)
@@ -47,6 +47,7 @@ class MediaRecorder final
     , public CanMakeWeakPtr<MediaRecorder>
     , private MediaStream::Observer
     , private MediaStreamTrackPrivate::Observer {
+    WTF_MAKE_ISO_ALLOCATED(MediaRecorder);
 public:
     enum class RecordingState { Inactive, Recording, Paused };
     
index 2ed8bfa..4435942 100644 (file)
@@ -32,6 +32,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaRemoteControls);
+
 MediaRemoteControls::MediaRemoteControls(ScriptExecutionContext& context, MediaSession* session)
     : m_scriptExecutionContext(context)
     , m_session(session)
index cf24dea..bf0a9df 100644 (file)
@@ -34,7 +34,8 @@ namespace WebCore {
 
 class MediaSession;
 
-class MediaRemoteControls : public RefCounted<MediaRemoteControls>, public EventTargetWithInlineData {
+class MediaRemoteControls final : public RefCounted<MediaRemoteControls>, public EventTargetWithInlineData {
+    WTF_MAKE_ISO_ALLOCATED(MediaRemoteControls);
 public:
     static Ref<MediaRemoteControls> create(ScriptExecutionContext& context, MediaSession* session = nullptr)
     {
index bc65ddb..7e9363d 100644 (file)
 #include "TextTrackList.h"
 #include "TimeRanges.h"
 #include "VideoTrackList.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaSource);
+
 String convertEnumerationToString(MediaSourcePrivate::AddStatus enumerationValue)
 {
     static const NeverDestroyed<String> values[] = {
index d296d0b..f2ae440 100644 (file)
@@ -58,6 +58,7 @@ class MediaSource final
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(MediaSource);
 public:
     static void setRegistry(URLRegistry*);
     static MediaSource* lookup(const String& url) { return s_registry ? static_cast<MediaSource*>(s_registry->lookup(url)) : nullptr; }
index dd565ac..7849ef2 100644 (file)
 #include <JavaScriptCore/VM.h>
 #include <limits>
 #include <wtf/CheckedArithmetic.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(SourceBuffer);
+
 static const double ExponentialMovingAverageCoefficient = 0.1;
 
 struct SourceBuffer::TrackBuffer {
index edf145a..25050db 100644 (file)
@@ -67,6 +67,7 @@ class SourceBuffer final
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(SourceBuffer);
 public:
     static Ref<SourceBuffer> create(Ref<SourceBufferPrivate>&&, MediaSource*);
     virtual ~SourceBuffer();
index cd0fdf2..2966c97 100644 (file)
 #include "Event.h"
 #include "EventNames.h"
 #include "SourceBuffer.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(SourceBufferList);
+
 SourceBufferList::SourceBufferList(ScriptExecutionContext* context)
     : ActiveDOMObject(context)
     , m_asyncEventQueue(*this)
index 073198d..22f7b14 100644 (file)
@@ -43,6 +43,7 @@ namespace WebCore {
 class SourceBuffer;
 
 class SourceBufferList final : public RefCounted<SourceBufferList>, public EventTargetWithInlineData, public ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(SourceBufferList);
 public:
     static Ref<SourceBufferList> create(ScriptExecutionContext* context)
     {
index 2860130..27a9a53 100644 (file)
 #include "GraphicsContext.h"
 #include "HTMLCanvasElement.h"
 #include "WebGLRenderingContextBase.h"
+#include <wtf/IsoMallocInlines.h>
 
 #if ENABLE(MEDIA_STREAM)
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CanvasCaptureMediaStreamTrack);
+
 Ref<CanvasCaptureMediaStreamTrack> CanvasCaptureMediaStreamTrack::create(ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Optional<double>&& frameRequestRate)
 {
     auto source = CanvasCaptureMediaStreamTrack::Source::create(canvas.get(), WTFMove(frameRequestRate));
index 1f7f12d..265c378 100644 (file)
@@ -38,6 +38,7 @@ class Image;
 class ScriptExecutionContext;
 
 class CanvasCaptureMediaStreamTrack final : public MediaStreamTrack {
+    WTF_MAKE_ISO_ALLOCATED(CanvasCaptureMediaStreamTrack);
 public:
     static Ref<CanvasCaptureMediaStreamTrack> create(ScriptExecutionContext&, Ref<HTMLCanvasElement>&&, Optional<double>&& frameRequestRate);
 
index fe760d9..fc9aa46 100644 (file)
 
 #if ENABLE(MEDIA_STREAM)
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaDeviceInfo);
+
 inline MediaDeviceInfo::MediaDeviceInfo(ScriptExecutionContext* context, const String& label, const String& deviceId, const String& groupId, Kind kind)
     : ContextDestructionObserver(context)
     , m_label(label)
index fc68904..67b1470 100644 (file)
@@ -33,7 +33,8 @@
 
 namespace WebCore {
 
-class MediaDeviceInfo : public RefCounted<MediaDeviceInfo>, public ScriptWrappable, private ContextDestructionObserver {
+class MediaDeviceInfo final : public RefCounted<MediaDeviceInfo>, public ScriptWrappable, private ContextDestructionObserver {
+    WTF_MAKE_ISO_ALLOCATED(MediaDeviceInfo);
 public:
     enum class Kind { Audioinput, Audiooutput, Videoinput };
 
index 91dcc86..e54ff34 100644 (file)
 #include "RuntimeEnabledFeatures.h"
 #include "UserMediaController.h"
 #include "UserMediaRequest.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/RandomNumber.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaDevices);
+
 inline MediaDevices::MediaDevices(Document& document)
     : ActiveDOMObject(document)
     , m_scheduledEventTimer(*this, &MediaDevices::scheduledEventTimerFired)
index 7cda1eb..c6f451f 100644 (file)
@@ -52,7 +52,8 @@ class MediaStream;
 
 struct MediaTrackSupportedConstraints;
 
-class MediaDevices : public RefCounted<MediaDevices>, public ActiveDOMObject, public EventTargetWithInlineData, public CanMakeWeakPtr<MediaDevices> {
+class MediaDevices final : public RefCounted<MediaDevices>, public ActiveDOMObject, public EventTargetWithInlineData, public CanMakeWeakPtr<MediaDevices> {
+    WTF_MAKE_ISO_ALLOCATED(MediaDevices);
 public:
     static Ref<MediaDevices> create(Document&);
 
index 3de834c..51e3402 100644 (file)
 #include "NetworkingContext.h"
 #include "Page.h"
 #include "RealtimeMediaSource.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/URL.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStream);
+
 Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context)
 {
     return MediaStream::create(context, MediaStreamPrivate::create({ }));
index c0553ae..ffd1c82 100644 (file)
@@ -60,6 +60,7 @@ class MediaStream final
     , private LoggerHelper
 #endif
     , public RefCounted<MediaStream> {
+    WTF_MAKE_ISO_ALLOCATED(MediaStream);
 public:
     class Observer {
     public:
index dbb547e..72acc40 100644 (file)
 #include "Page.h"
 #include "RealtimeMediaSourceCenter.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStreamTrack);
+
 Ref<MediaStreamTrack> MediaStreamTrack::create(ScriptExecutionContext& context, Ref<MediaStreamTrackPrivate>&& privateTrack)
 {
     return adoptRef(*new MediaStreamTrack(context, WTFMove(privateTrack)));
index 37bff72..e3d1cb6 100644 (file)
@@ -58,6 +58,7 @@ class MediaStreamTrack
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(MediaStreamTrack);
 public:
     class Observer {
     public:
index 53ddc12..ba40275 100644 (file)
 #include "RTCDTMFSenderHandler.h"
 #include "RTCDTMFToneChangeEvent.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCDTMFSender);
+
 static const long minToneDurationMs = 40;
 static const long defaultToneDurationMs = 100;
 static const long maxToneDurationMs = 6000;
index c975a59..1b80cf4 100644 (file)
@@ -38,6 +38,7 @@ namespace WebCore {
 class MediaStreamTrack;
 
 class RTCDTMFSender final : public RefCounted<RTCDTMFSender>, public EventTargetWithInlineData, public ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(RTCDTMFSender);
 public:
     virtual ~RTCDTMFSender();
 
index e027bb5..95ebbe9 100644 (file)
 #include "ScriptExecutionContext.h"
 #include <JavaScriptCore/ArrayBuffer.h>
 #include <JavaScriptCore/ArrayBufferView.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCDataChannel);
+
 static const AtomicString& blobKeyword()
 {
     static NeverDestroyed<AtomicString> blob("blob", AtomicString::ConstructFromLiteral);
index b016b8a..0d6436d 100644 (file)
@@ -47,6 +47,7 @@ class Blob;
 class RTCPeerConnectionHandler;
 
 class RTCDataChannel final : public ActiveDOMObject, public RTCDataChannelHandlerClient, public EventTargetWithInlineData {
+    WTF_MAKE_ISO_ALLOCATED(RTCDataChannel);
 public:
     static Ref<RTCDataChannel> create(ScriptExecutionContext&, std::unique_ptr<RTCDataChannelHandler>&&, String&&, RTCDataChannelInit&&);
 
index 17afd21..6674e52 100644 (file)
 
 #if ENABLE(WEB_RTC)
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCIceCandidate);
+
 inline RTCIceCandidate::RTCIceCandidate(const String& candidate, const String& sdpMid, Optional<unsigned short> sdpMLineIndex)
     : m_candidate(candidate)
     , m_sdpMid(sdpMid)
index 73a6097..366390c 100644 (file)
@@ -37,7 +37,8 @@
 
 namespace WebCore {
 
-class RTCIceCandidate : public RefCounted<RTCIceCandidate>, public ScriptWrappable {
+class RTCIceCandidate final : public RefCounted<RTCIceCandidate>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(RTCIceCandidate);
 public:
     struct Init {
         String candidate;
index 1a5006b..576d9fb 100644 (file)
 
 #include "config.h"
 #include "RTCIceTransport.h"
+
+#if ENABLE(WEB_RTC)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCIceTransport);
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_RTC)
index 9524b41..dcbfa38 100644 (file)
@@ -41,7 +41,8 @@
 
 namespace WebCore {
 
-class RTCIceTransport : public RefCounted<RTCIceTransport>, public ScriptWrappable {
+class RTCIceTransport final : public RefCounted<RTCIceTransport>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(RTCIceTransport);
 public:
     static Ref<RTCIceTransport> create()
     {
index 164a000..af2b7c7 100644 (file)
@@ -54,6 +54,7 @@
 #include "RTCSessionDescription.h"
 #include "RTCTrackEvent.h"
 #include <wtf/CryptographicallyRandomNumber.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 #include <wtf/UUID.h>
 #include <wtf/text/Base64.h>
@@ -62,6 +63,8 @@ namespace WebCore {
 
 using namespace PeerConnection;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCPeerConnection);
+
 Ref<RTCPeerConnection> RTCPeerConnection::create(ScriptExecutionContext& context)
 {
     auto peerConnection = adoptRef(*new RTCPeerConnection(context));
index da67c56..d70c138 100644 (file)
@@ -77,6 +77,7 @@ class RTCPeerConnection final
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(RTCPeerConnection);
 public:
     static Ref<RTCPeerConnection> create(ScriptExecutionContext&);
     virtual ~RTCPeerConnection();
index 926d53f..09e891f 100644 (file)
 
 #include "PeerConnectionBackend.h"
 #include "RTCRtpCapabilities.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCRtpReceiver);
+
 RTCRtpReceiver::RTCRtpReceiver(PeerConnectionBackend& connection, Ref<MediaStreamTrack>&& track, std::unique_ptr<RTCRtpReceiverBackend>&& backend)
     : m_track(WTFMove(track))
     , m_backend(WTFMove(backend))
index 7e7229e..9dd9467 100644 (file)
@@ -42,7 +42,8 @@ namespace WebCore {
 class PeerConnectionBackend;
 struct RTCRtpCapabilities;
 
-class RTCRtpReceiver : public RefCounted<RTCRtpReceiver>, public ScriptWrappable  {
+class RTCRtpReceiver final : public RefCounted<RTCRtpReceiver>, public ScriptWrappable  {
+    WTF_MAKE_ISO_ALLOCATED(RTCRtpReceiver);
 public:
     static Ref<RTCRtpReceiver> create(PeerConnectionBackend& connection, Ref<MediaStreamTrack>&& track, std::unique_ptr<RTCRtpReceiverBackend>&& backend)
     {
index b27cfb3..2b249fe 100644 (file)
 
 #include "RTCRtpCapabilities.h"
 #include "RuntimeEnabledFeatures.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCRtpSender);
+
 Ref<RTCRtpSender> RTCRtpSender::create(PeerConnectionBackend& connection, Ref<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds, std::unique_ptr<RTCRtpSenderBackend>&& backend)
 {
     auto sender = adoptRef(*new RTCRtpSender(connection, String(track->kind()), WTFMove(mediaStreamIds), WTFMove(backend)));
index e7387d3..e3e0b2f 100644 (file)
@@ -42,7 +42,8 @@ namespace WebCore {
 class PeerConnectionBackend;
 struct RTCRtpCapabilities;
 
-class RTCRtpSender : public RefCounted<RTCRtpSender>, public ScriptWrappable {
+class RTCRtpSender final : public RefCounted<RTCRtpSender>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(RTCRtpSender);
 public:
     static Ref<RTCRtpSender> create(PeerConnectionBackend&, Ref<MediaStreamTrack>&&, Vector<String>&& mediaStreamIds, std::unique_ptr<RTCRtpSenderBackend>&&);
     static Ref<RTCRtpSender> create(PeerConnectionBackend&, String&& trackKind, Vector<String>&& mediaStreamIds, std::unique_ptr<RTCRtpSenderBackend>&&);
index 6b46347..e9ab323 100644 (file)
 
 #if ENABLE(WEB_RTC)
 
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCRtpTransceiver);
+
 RTCRtpTransceiver::RTCRtpTransceiver(Ref<RTCRtpSender>&& sender, Ref<RTCRtpReceiver>&& receiver, std::unique_ptr<RTCRtpTransceiverBackend>&& backend)
     : m_direction(RTCRtpTransceiverDirection::Sendrecv)
     , m_sender(WTFMove(sender))
index e4879b5..9eaa306 100644 (file)
@@ -45,7 +45,8 @@
 
 namespace WebCore {
 
-class RTCRtpTransceiver : public RefCounted<RTCRtpTransceiver>, public ScriptWrappable {
+class RTCRtpTransceiver final : public RefCounted<RTCRtpTransceiver>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(RTCRtpTransceiver);
 public:
     static Ref<RTCRtpTransceiver> create(Ref<RTCRtpSender>&& sender, Ref<RTCRtpReceiver>&& receiver, std::unique_ptr<RTCRtpTransceiverBackend>&& backend) { return adoptRef(*new RTCRtpTransceiver(WTFMove(sender), WTFMove(receiver), WTFMove(backend))); }
     virtual ~RTCRtpTransceiver() = default;
index dd4fff4..922b471 100644 (file)
 
 #if ENABLE(WEB_RTC)
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(RTCSessionDescription);
+
 inline RTCSessionDescription::RTCSessionDescription(RTCSdpType type, String&& sdp)
     : m_type(type)
     , m_sdp(WTFMove(sdp))
index 109b2a9..2a8719a 100644 (file)
@@ -39,9 +39,9 @@
 
 namespace WebCore {
 
-class RTCSessionDescription : public RefCounted<RTCSessionDescription>, public ScriptWrappable {
+class RTCSessionDescription final : public RefCounted<RTCSessionDescription>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(RTCSessionDescription);
 public:
-
     struct Init {
         RTCSdpType type;
         String sdp;
index ad6969a..0c328fa 100644 (file)
 #include "NotificationController.h"
 #include "NotificationPermissionCallback.h"
 #include "WindowFocusAllowedIndicator.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Notification);
+
 Ref<Notification> Notification::create(Document& context, const String& title, const Options& options)
 {
     auto notification = adoptRef(*new Notification(context, title, options));
index feda1a1..4b5bcd3 100644 (file)
@@ -47,7 +47,7 @@ class Document;
 class NotificationPermissionCallback;
 
 class Notification final : public RefCounted<Notification>, public ActiveDOMObject, public EventTargetWithInlineData {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(Notification);
 public:
     using Permission = NotificationPermission;
     using Direction = NotificationDirection;
index 05017e4..61ff5be 100644 (file)
 #include <JavaScriptCore/JSONObject.h>
 #include <JavaScriptCore/ThrowScope.h>
 #include <wtf/ASCIICType.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/RunLoop.h>
 #include <wtf/Scope.h>
 #include <wtf/UUID.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(PaymentRequest);
+
 // Implements the IsWellFormedCurrencyCode abstract operation from ECMA 402
 // https://tc39.github.io/ecma402/#sec-iswellformedcurrencycode
 static bool isWellFormedCurrencyCode(const String& currency)
index b8b2d9d..cc0bbcb 100644 (file)
@@ -51,6 +51,7 @@ struct PaymentDetailsUpdate;
 struct PaymentMethodData;
 
 class PaymentRequest final : public ActiveDOMObject, public CanMakeWeakPtr<PaymentRequest>, public EventTargetWithInlineData, public RefCounted<PaymentRequest> {
+    WTF_MAKE_ISO_ALLOCATED(PaymentRequest);
 public:
     using AbortPromise = DOMPromiseDeferred<void>;
     using CanMakePaymentPromise = DOMPromiseDeferred<IDLBoolean>;
index c915a6e..d6c18b8 100644 (file)
 
 #include "NotImplemented.h"
 #include "PaymentRequest.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/RunLoop.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(PaymentResponse);
+
 PaymentResponse::PaymentResponse(ScriptExecutionContext* context, PaymentRequest& request)
     : ActiveDOMObject { context }
     , m_request { makeWeakPtr(request) }
index 0c98274..ee226a0 100644 (file)
@@ -43,6 +43,7 @@ class PaymentRequest;
 struct PaymentValidationErrors;
 
 class PaymentResponse final : public ActiveDOMObject, public EventTargetWithInlineData, public RefCounted<PaymentResponse> {
+    WTF_MAKE_ISO_ALLOCATED(PaymentResponse);
 public:
     using DetailsFunction = Function<JSC::Strong<JSC::JSObject>(JSC::ExecState&)>;
 
index 6746f4e..07aae89 100644 (file)
 
 #if ENABLE(SPEECH_SYNTHESIS)
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(SpeechSynthesisUtterance);
     
 Ref<SpeechSynthesisUtterance> SpeechSynthesisUtterance::create(ScriptExecutionContext& context, const String& text)
 {
index 8c24f77..1c1f59e 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class SpeechSynthesisUtterance final : public PlatformSpeechSynthesisUtteranceClient, public RefCounted<SpeechSynthesisUtterance>, public ContextDestructionObserver, public EventTargetWithInlineData {
+    WTF_MAKE_ISO_ALLOCATED(SpeechSynthesisUtterance);
 public:
     static Ref<SpeechSynthesisUtterance> create(ScriptExecutionContext&, const String&);
 
index 588755c..1798707 100644 (file)
 
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AnalyserNode);
+
 AnalyserNode::AnalyserNode(AudioContext& context, float sampleRate)
     : AudioBasicInspectorNode(context, sampleRate, 2)
 {
index 8bc63b4..da1b5e8 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class AnalyserNode final : public AudioBasicInspectorNode {
+    WTF_MAKE_ISO_ALLOCATED(AnalyserNode);
 public:
     static Ref<AnalyserNode> create(AudioContext& context, float sampleRate)
     {
index 768644b..ba8c255 100644 (file)
 
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicInspectorNode);
+
 AudioBasicInspectorNode::AudioBasicInspectorNode(AudioContext& context, float sampleRate, unsigned outputChannelCount)
     : AudioNode(context, sampleRate)
 {
index b86f1a3..80e08d2 100644 (file)
@@ -32,6 +32,7 @@ namespace WebCore {
 // If the output is not connected to any other node, then the AudioBasicInspectorNode's processIfNecessary() function will be called automatically by
 // AudioContext before the end of each render quantum so that it can inspect the audio stream.
 class AudioBasicInspectorNode : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(AudioBasicInspectorNode);
 public:
     AudioBasicInspectorNode(AudioContext&, float sampleRate, unsigned outputChannelCount);
 
index 4279a09..bc189c0 100644 (file)
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
 #include "AudioProcessor.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicProcessorNode);
+
 AudioBasicProcessorNode::AudioBasicProcessorNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
 {
index 11cc34b..82cffda 100644 (file)
@@ -35,6 +35,7 @@ class AudioProcessor;
     
 // AudioBasicProcessorNode is an AudioNode with one input and one output where the input and output have the same number of channels.
 class AudioBasicProcessorNode : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(AudioBasicProcessorNode);
 public:
     AudioBasicProcessorNode(AudioContext&, float sampleRate);
 
index 1d214b9..5f76fc5 100644 (file)
 #include "FloatConversion.h"
 #include "PannerNode.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBufferSourceNode);
+
 const double DefaultGrainDuration = 0.020; // 20ms
 
 // Arbitrary upper limit on playback rate.
index 106b9c9..783c999 100644 (file)
@@ -37,6 +37,7 @@ class PannerNode;
 // It generally will be used for short sounds which require a high degree of scheduling flexibility (can playback in rhythmically perfect ways).
 
 class AudioBufferSourceNode final : public AudioScheduledSourceNode {
+    WTF_MAKE_ISO_ALLOCATED(AudioBufferSourceNode);
 public:
     static Ref<AudioBufferSourceNode> create(AudioContext&, float sampleRate);
 
index 6bd4db1..2e769e5 100644 (file)
@@ -95,6 +95,7 @@
 
 #include <JavaScriptCore/ArrayBuffer.h>
 #include <wtf/Atomics.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 #include <wtf/Ref.h>
 #include <wtf/RefCounted.h>
@@ -104,6 +105,8 @@ const unsigned MaxPeriodicWaveLength = 4096;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioContext);
+
 #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(document()->page() && document()->page()->isAlwaysOnLoggingAllowed(), Media, "%p - AudioContext::" fmt, this, ##__VA_ARGS__)
     
 bool AudioContext::isSampleRateRangeGood(float sampleRate)
index 77f0596..86c57c3 100644 (file)
@@ -89,6 +89,7 @@ class AudioContext
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(AudioContext);
 public:
     // Create an AudioContext for rendering to the audio hardware.
     static RefPtr<AudioContext> create(Document&);
index 3d69e91..9758875 100644 (file)
 #include "AudioNodeOutput.h"
 #include "AudioUtilities.h"
 #include "DenormalDisabler.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
     
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioDestinationNode);
+
 AudioDestinationNode::AudioDestinationNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
     , m_currentSampleFrame(0)
index 0b99d06..8948f4e 100644 (file)
@@ -34,6 +34,7 @@ namespace WebCore {
 class AudioContext;
 
 class AudioDestinationNode : public AudioNode, public AudioIOCallback {
+    WTF_MAKE_ISO_ALLOCATED(AudioDestinationNode);
 public:
     AudioDestinationNode(AudioContext&, float sampleRate);
     virtual ~AudioDestinationNode();
index b5ab0d4..2ab6726 100644 (file)
@@ -34,6 +34,7 @@
 #include "AudioParam.h"
 #include "Logging.h"
 #include <wtf/Atomics.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 
 #if DEBUG_AUDIONODE_REFERENCES
@@ -42,6 +43,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioNode);
+
 String convertEnumerationToString(AudioNode::NodeType enumerationValue)
 {
     static const NeverDestroyed<String> values[] = {
index 4d94212..d26f23f 100644 (file)
@@ -52,7 +52,7 @@ class AudioNode
 #endif
 {
     WTF_MAKE_NONCOPYABLE(AudioNode);
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(AudioNode);
 public:
     enum { ProcessingSizeInFrames = 128 };
 
index 5beffdd..1954c7b 100644 (file)
@@ -35,6 +35,7 @@
 #include "ScriptController.h"
 #include "ScriptExecutionContext.h"
 #include <algorithm>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MathExtras.h>
 
 #if PLATFORM(IOS_FAMILY)
@@ -43,6 +44,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AudioScheduledSourceNode);
+
 const double AudioScheduledSourceNode::UnknownTime = -1;
 
 AudioScheduledSourceNode::AudioScheduledSourceNode(AudioContext& context, float sampleRate)
index f6a1b2c..2e9c2e0 100644 (file)
@@ -33,6 +33,7 @@
 namespace WebCore {
 
 class AudioScheduledSourceNode : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(AudioScheduledSourceNode);
 public:
     // These are the possible states an AudioScheduledSourceNode can be in:
     //
index df364b4..16373ce 100644 (file)
 #if ENABLE(WEB_AUDIO)
 
 #include "BiquadFilterNode.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(BiquadFilterNode);
+
 BiquadFilterNode::BiquadFilterNode(AudioContext& context, float sampleRate)
     : AudioBasicProcessorNode(context, sampleRate)
 {
index e650412..8094d91 100644 (file)
@@ -32,6 +32,7 @@ namespace WebCore {
 class AudioParam;
 
 class BiquadFilterNode final : public AudioBasicProcessorNode {
+    WTF_MAKE_ISO_ALLOCATED(BiquadFilterNode);
 public:
     static Ref<BiquadFilterNode> create(AudioContext& context, float sampleRate)
     {
index e364bca..20b8da1 100644 (file)
 #include "AudioContext.h"
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
+#include <wtf/IsoMallocInlines.h>
 
 const unsigned DefaultNumberOfOutputChannels = 1;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ChannelMergerNode);
+
 RefPtr<ChannelMergerNode> ChannelMergerNode::create(AudioContext& context, float sampleRate, unsigned numberOfInputs)
 {
     if (!numberOfInputs || numberOfInputs > AudioContext::maxNumberOfChannels())
index 57d63b5..66636ee 100644 (file)
@@ -35,6 +35,7 @@ namespace WebCore {
 class AudioContext;
     
 class ChannelMergerNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(ChannelMergerNode);
 public:
     static RefPtr<ChannelMergerNode> create(AudioContext&, float sampleRate, unsigned numberOfInputs);
 
index d2199ff..4635498 100644 (file)
 #include "AudioContext.h"
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(ChannelSplitterNode);
     
 RefPtr<ChannelSplitterNode> ChannelSplitterNode::create(AudioContext& context, float sampleRate, unsigned numberOfOutputs)
 {
index 6c39239..8d98328 100644 (file)
@@ -31,6 +31,7 @@ namespace WebCore {
 class AudioContext;
     
 class ChannelSplitterNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(ChannelSplitterNode);
 public:
     static RefPtr<ChannelSplitterNode> create(AudioContext&, float sampleRate, unsigned numberOfOutputs);
 
index 12a0948..2382dab 100644 (file)
@@ -33,6 +33,7 @@
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
 #include "Reverb.h"
+#include <wtf/IsoMallocInlines.h>
 
 // Note about empirical tuning:
 // The maximum FFT size affects reverb performance and accuracy.
@@ -44,6 +45,8 @@ const size_t MaxFFTSize = 32768;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ConvolverNode);
+
 ConvolverNode::ConvolverNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
 {
index c0074d9..64bfebe 100644 (file)
@@ -33,6 +33,7 @@ class AudioBuffer;
 class Reverb;
     
 class ConvolverNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(ConvolverNode);
 public:
     static Ref<ConvolverNode> create(AudioContext& context, float sampleRate)
     {
index a6d134f..4836cee 100644 (file)
 #include "AudioDestination.h"
 #include "Logging.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 
 const unsigned EnabledInputChannels = 2;
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(DefaultAudioDestinationNode);
     
 DefaultAudioDestinationNode::DefaultAudioDestinationNode(AudioContext& context)
     : AudioDestinationNode(context, AudioDestination::hardwareSampleRate())
index d8f6d47..6fd95c0 100644 (file)
@@ -31,6 +31,7 @@ namespace WebCore {
 class AudioDestination;
     
 class DefaultAudioDestinationNode final : public AudioDestinationNode {
+    WTF_MAKE_ISO_ALLOCATED(DefaultAudioDestinationNode);
 public:
     static Ref<DefaultAudioDestinationNode> create(AudioContext& context)
     {
index 389cd06..4265a00 100644 (file)
 #include "DelayNode.h"
 
 #include "DelayProcessor.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DelayNode);
+
 const double maximumAllowedDelayTime = 180;
 
 inline DelayNode::DelayNode(AudioContext& context, float sampleRate, double maxDelayTime)
index f3c6565..c9ecad9 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class DelayNode final : public AudioBasicProcessorNode {
+    WTF_MAKE_ISO_ALLOCATED(DelayNode);
 public:
     static ExceptionOr<Ref<DelayNode>> create(AudioContext&, float sampleRate, double maxDelayTime);
 
index dbeb41f..aa0e4a8 100644 (file)
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
 #include "DynamicsCompressor.h"
+#include <wtf/IsoMallocInlines.h>
 
 // Set output to stereo by default.
 static const unsigned defaultNumberOfOutputChannels = 2;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DynamicsCompressorNode);
+
 DynamicsCompressorNode::DynamicsCompressorNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
 {
index f91fe0e..44cbfba 100644 (file)
@@ -33,6 +33,7 @@ namespace WebCore {
 class DynamicsCompressor;
 
 class DynamicsCompressorNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(DynamicsCompressorNode);
 public:
     static Ref<DynamicsCompressorNode> create(AudioContext& context, float sampleRate)
     {
index 0899313..6c94a52 100644 (file)
 #include "AudioBus.h"
 #include "AudioNodeInput.h"
 #include "AudioNodeOutput.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(GainNode);
+
 GainNode::GainNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
     , m_lastGain(1.0)
index 892ea51..fa85b0b 100644 (file)
@@ -36,6 +36,7 @@ class AudioContext;
 // De-zippering (smoothing) is applied when the gain value is changed dynamically.
 
 class GainNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(GainNode);
 public:
     static Ref<GainNode> create(AudioContext& context, float sampleRate)
     {
index 6fa1851..66111b6 100644 (file)
@@ -32,6 +32,7 @@
 #include "AudioNodeOutput.h"
 #include "Logging.h"
 #include "MediaPlayer.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Locker.h>
 
 // These are somewhat arbitrary limits, but we need to do some kind of sanity-checking.
@@ -40,6 +41,8 @@ const unsigned maxSampleRate = 192000;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaElementAudioSourceNode);
+
 Ref<MediaElementAudioSourceNode> MediaElementAudioSourceNode::create(AudioContext& context, HTMLMediaElement& mediaElement)
 {
     return adoptRef(*new MediaElementAudioSourceNode(context, mediaElement));
index 4da8a0a..3a13154 100644 (file)
@@ -38,6 +38,7 @@ namespace WebCore {
 class AudioContext;
     
 class MediaElementAudioSourceNode final : public AudioNode, public AudioSourceProviderClient {
+    WTF_MAKE_ISO_ALLOCATED(MediaElementAudioSourceNode);
 public:
     static Ref<MediaElementAudioSourceNode> create(AudioContext&, HTMLMediaElement&);
 
index 8fc41fd..4442cbe 100644 (file)
 #include "AudioNodeInput.h"
 #include "MediaStream.h"
 #include "MediaStreamAudioSource.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Locker.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStreamAudioDestinationNode);
+
 Ref<MediaStreamAudioDestinationNode> MediaStreamAudioDestinationNode::create(AudioContext& context, size_t numberOfChannels)
 {
     return adoptRef(*new MediaStreamAudioDestinationNode(context, numberOfChannels));
index b192f26..f5a7e8f 100644 (file)
@@ -36,6 +36,7 @@ class AudioContext;
 class MediaStreamAudioSource;
 
 class MediaStreamAudioDestinationNode final : public AudioBasicInspectorNode {
+    WTF_MAKE_ISO_ALLOCATED(MediaStreamAudioDestinationNode);
 public:
     static Ref<MediaStreamAudioDestinationNode> create(AudioContext&, size_t numberOfChannels);
 
index af5d8c9..aefb33f 100644 (file)
 #include "AudioContext.h"
 #include "AudioNodeOutput.h"
 #include "Logging.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Locker.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStreamAudioSourceNode);
+
 Ref<MediaStreamAudioSourceNode> MediaStreamAudioSourceNode::create(AudioContext& context, MediaStream& mediaStream, MediaStreamTrack& audioTrack)
 {
     return adoptRef(*new MediaStreamAudioSourceNode(context, mediaStream, audioTrack));
index 98d6b8f..e3edefe 100644 (file)
@@ -38,6 +38,7 @@ class AudioContext;
 class MultiChannelResampler;
 
 class MediaStreamAudioSourceNode final : public AudioNode, public AudioSourceProviderClient {
+    WTF_MAKE_ISO_ALLOCATED(MediaStreamAudioSourceNode);
 public:
     static Ref<MediaStreamAudioSourceNode> create(AudioContext&, MediaStream&, MediaStreamTrack&);
 
index 078c0b4..ef78ce7 100644 (file)
 #include "OfflineAudioContext.h"
 
 #include "Document.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(OfflineAudioContext);
+
 inline OfflineAudioContext::OfflineAudioContext(Document& document, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate)
     : AudioContext(document, numberOfChannels, numberOfFrames, sampleRate)
 {
index 5d2c1d4..39cdff5 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class OfflineAudioContext final : public AudioContext {
+    WTF_MAKE_ISO_ALLOCATED(OfflineAudioContext);
 public:
     static ExceptionOr<Ref<OfflineAudioContext>> create(ScriptExecutionContext&, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate);
 
index accb1d2..7a377e9 100644 (file)
 #include "AudioContext.h"
 #include "HRTFDatabaseLoader.h"
 #include <algorithm>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
  
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(OfflineAudioDestinationNode);
     
 const size_t renderQuantumSize = 128;    
 
index 609e58b..f030f3b 100644 (file)
@@ -35,6 +35,7 @@ class AudioBus;
 class AudioContext;
     
 class OfflineAudioDestinationNode final : public AudioDestinationNode {
+    WTF_MAKE_ISO_ALLOCATED(OfflineAudioDestinationNode);
 public:
     static Ref<OfflineAudioDestinationNode> create(AudioContext& context, AudioBuffer* renderTarget)
     {
index c208a5f..5b5029b 100644 (file)
 #include "AudioParam.h"
 #include "PeriodicWave.h"
 #include "VectorMath.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
 using namespace VectorMath;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(OscillatorNode);
+
 PeriodicWave* OscillatorNode::s_periodicWaveSine = nullptr;
 PeriodicWave* OscillatorNode::s_periodicWaveSquare = nullptr;
 PeriodicWave* OscillatorNode::s_periodicWaveSawtooth = nullptr;
index cf8ded7..58e6df2 100644 (file)
@@ -34,6 +34,7 @@ class PeriodicWave;
 // OscillatorNode is an audio generator of periodic waveforms.
 
 class OscillatorNode final : public AudioScheduledSourceNode {
+    WTF_MAKE_ISO_ALLOCATED(OscillatorNode);
 public:
     // The waveform type.
     enum class Type {
index 75a23e4..f647469 100644 (file)
 #include "AudioNodeOutput.h"
 #include "HRTFPanner.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MathExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(PannerNode);
+
 static void fixNANs(double &x)
 {
     if (std::isnan(x) || std::isinf(x))
index cd1d75b..83f7987 100644 (file)
@@ -48,6 +48,7 @@ namespace WebCore {
 // All of these effects follow the OpenAL specification very closely.
 
 class PannerNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(PannerNode);
 public:
     static Ref<PannerNode> create(AudioContext& context, float sampleRate)
     {
index a5fca27..960e978 100644 (file)
 #include "Document.h"
 #include "EventNames.h"
 #include <JavaScriptCore/Float32Array.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ScriptProcessorNode);
+
 Ref<ScriptProcessorNode> ScriptProcessorNode::create(AudioContext& context, float sampleRate, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputChannels)
 {
     return adoptRef(*new ScriptProcessorNode(context, sampleRate, bufferSize, numberOfInputChannels, numberOfOutputChannels));
index 33863b7..98e1f0a 100644 (file)
@@ -45,6 +45,7 @@ class AudioProcessingEvent;
 // AudioBuffers for each input and output.
 
 class ScriptProcessorNode final : public AudioNode {
+    WTF_MAKE_ISO_ALLOCATED(ScriptProcessorNode);
 public:
     // bufferSize must be one of the following values: 256, 512, 1024, 2048, 4096, 8192, 16384.
     // This value controls how frequently the onaudioprocess event handler is called and how many sample-frames need to be processed each call.
index 6535460..8486993 100644 (file)
 #if ENABLE(WEB_AUDIO)
 
 #include "AudioContext.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(WaveShaperNode);
 
 WaveShaperNode::WaveShaperNode(AudioContext& context)
     : AudioBasicProcessorNode(context, context.sampleRate())
index cd146bf..f49e349 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class WaveShaperNode final : public AudioBasicProcessorNode {
+    WTF_MAKE_ISO_ALLOCATED(WaveShaperNode);
 public:
     static Ref<WaveShaperNode> create(AudioContext& context)
     {
index 79e65c9..8dc36df 100644 (file)
 
 #if ENABLE(WEBGPU)
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(GPUCanvasContext);
+
 std::unique_ptr<GPUCanvasContext> GPUCanvasContext::create(CanvasBase& canvas)
 {
     auto context = std::unique_ptr<GPUCanvasContext>(new GPUCanvasContext(canvas));
index 61c9aa2..7234d9b 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class GPUCanvasContext final : public GPUBasedCanvasRenderingContext {
+    WTF_MAKE_ISO_ALLOCATED(GPUCanvasContext);
 public:
     static std::unique_ptr<GPUCanvasContext> create(CanvasBase&);
 
index d22dff0..2a03524 100644 (file)
@@ -56,6 +56,7 @@
 #include <JavaScriptCore/ScriptCallStack.h>
 #include <wtf/HashSet.h>
 #include <wtf/HexNumber.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/RunLoop.h>
 #include <wtf/StdLibExtras.h>
@@ -68,6 +69,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(WebSocket);
+
 const size_t maxReasonSizeInBytes = 123;
 
 static inline bool isValidProtocolCharacter(UChar character)
index b669660..55cc4c0 100644 (file)
@@ -51,6 +51,7 @@ class Blob;
 class ThreadableWebSocketChannel;
 
 class WebSocket final : public RefCounted<WebSocket>, public EventTargetWithInlineData, public ActiveDOMObject, private WebSocketChannelClient {
+    WTF_MAKE_ISO_ALLOCATED(WebSocket);
 public:
     static const char* subprotocolSeparator();
 
index 4af23b5..c6667bb 100644 (file)
 #include "VRPlatformDisplay.h"
 #include "VRPose.h"
 #include "VRStageParameters.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(VRDisplay);
+
 Ref<VRDisplay> VRDisplay::create(ScriptExecutionContext& context, WeakPtr<VRPlatformDisplay>&& platformDisplay)
 {
     return adoptRef(*new VRDisplay(context, WTFMove(platformDisplay)));
index ef82619..58513c6 100644 (file)
@@ -45,7 +45,8 @@ class VRPlatformDisplay;
 class VRPose;
 class VRStageParameters;
 
-class VRDisplay : public RefCounted<VRDisplay>, public VRPlatformDisplayClient, public EventTargetWithInlineData, public ActiveDOMObject {
+class VRDisplay final : public RefCounted<VRDisplay>, public VRPlatformDisplayClient, public EventTargetWithInlineData, public ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(VRDisplay);
 public:
     static Ref<VRDisplay> create(ScriptExecutionContext&, WeakPtr<VRPlatformDisplay>&&);
 
index 62fc43f..325707b 100644 (file)
@@ -175,6 +175,7 @@ Modules/mediastream/RTCDTMFToneChangeEvent.cpp
 Modules/mediastream/RTCDataChannel.cpp
 Modules/mediastream/RTCDataChannelEvent.cpp
 Modules/mediastream/RTCIceCandidate.cpp
+Modules/mediastream/RTCIceTransport.cpp
 Modules/mediastream/RTCPeerConnection.cpp
 Modules/mediastream/RTCPeerConnectionIceEvent.cpp
 Modules/mediastream/RTCRtpReceiver.cpp
@@ -781,6 +782,11 @@ css/parser/SizesAttributeParser.cpp
 css/parser/SizesCalcParser.cpp
 
 css/typedom/StylePropertyMapReadOnly.cpp
+css/typedom/TypedOMCSSImageValue.cpp
+css/typedom/TypedOMCSSNumericValue.cpp
+css/typedom/TypedOMCSSStyleValue.cpp
+css/typedom/TypedOMCSSUnitValue.cpp
+css/typedom/TypedOMCSSUnparsedValue.cpp
 
 cssjit/SelectorCompiler.cpp
 
@@ -789,6 +795,7 @@ dom/AbortSignal.cpp
 dom/ActiveDOMCallback.cpp
 dom/ActiveDOMCallbackMicrotask.cpp
 dom/ActiveDOMObject.cpp
+dom/AllDescendantsCollection.cpp
 dom/AnimationEvent.cpp
 dom/Attr.cpp
 dom/BeforeTextInsertedEvent.cpp
@@ -815,6 +822,7 @@ dom/DOMImplementation.cpp
 dom/DOMPointReadOnly.cpp
 dom/DOMQuad.cpp
 dom/DOMRectList.cpp
+dom/DOMRectReadOnly.cpp
 dom/DOMStringList.cpp
 dom/DataTransfer.cpp
 dom/DataTransferItem.cpp
@@ -879,6 +887,7 @@ dom/NativeNodeFilter.cpp
 dom/Node.cpp
 dom/NodeFilterCondition.cpp
 dom/NodeIterator.cpp
+dom/NodeList.cpp
 dom/NodeRareData.cpp
 dom/NodeTraversal.cpp
 dom/OverflowEvent.cpp
index dea32f8..e8e452d 100644 (file)
                E307DED31D81E4ED00141CAF /* LoadableModuleScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadableModuleScript.h; sourceTree = "<group>"; };
                E3150EA51DA7218D00194012 /* DOMJITHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITHelpers.h; sourceTree = "<group>"; };
                E323CFF91E5AF6A500F0B4A0 /* JSDOMConvertPromise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMConvertPromise.h; sourceTree = "<group>"; };
+               E329275E22543F5700308A9A /* TypedOMCSSStyleValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TypedOMCSSStyleValue.cpp; sourceTree = "<group>"; };
+               E329276022543F5800308A9A /* TypedOMCSSImageValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TypedOMCSSImageValue.cpp; sourceTree = "<group>"; };
+               E329276122543F5800308A9A /* TypedOMCSSUnparsedValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TypedOMCSSUnparsedValue.cpp; sourceTree = "<group>"; };
+               E329276222543F5800308A9A /* TypedOMCSSNumericValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TypedOMCSSNumericValue.cpp; sourceTree = "<group>"; };
+               E329276322543F5900308A9A /* TypedOMCSSUnitValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TypedOMCSSUnitValue.cpp; sourceTree = "<group>"; };
+               E329276622543FDE00308A9A /* DOMRectReadOnly.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DOMRectReadOnly.cpp; sourceTree = "<group>"; };
                E334825E1DC93AA0009C9544 /* DOMJITAbstractHeapRepository.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DOMJITAbstractHeapRepository.h; path = DerivedSources/WebCore/DOMJITAbstractHeapRepository.h; sourceTree = BUILT_PRODUCTS_DIR; };
                E34EE49F1DC2D57500EAA9D3 /* JSEventCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEventCustom.h; sourceTree = "<group>"; };
                E35802B51DC8435800A9773C /* DOMJITIDLTypeFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITIDLTypeFilter.h; sourceTree = "<group>"; };
                E398FC231DC32A1B003C4684 /* DOMJITHelpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMJITHelpers.cpp; sourceTree = "<group>"; };
                E3A776651DC85D2200B690D8 /* DOMJITIDLConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITIDLConvert.h; sourceTree = "<group>"; };
                E3A776661DC85D2200B690D8 /* DOMJITIDLType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITIDLType.h; sourceTree = "<group>"; };
+               E3AE6CD12252F27000C70B50 /* AllDescendantsCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AllDescendantsCollection.cpp; sourceTree = "<group>"; };
                E3AFA9641DA6E908002861BD /* JSNodeDOMJIT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeDOMJIT.cpp; sourceTree = "<group>"; };
                E3B2F0E31D7F35EC00B0C9D1 /* LoadableClassicScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadableClassicScript.cpp; sourceTree = "<group>"; };
                E3B2F0E41D7F35EC00B0C9D1 /* LoadableClassicScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadableClassicScript.h; sourceTree = "<group>"; };
                E3B2F0E81D7F35EC00B0C9D1 /* LoadableScriptClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadableScriptClient.h; sourceTree = "<group>"; };
                E3B2F0E91D7F3D3C00B0C9D1 /* LoadableScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadableScript.cpp; sourceTree = "<group>"; };
                E3B7C0621DC3415A001FB0B8 /* JSDocumentDOMJIT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDocumentDOMJIT.cpp; sourceTree = "<group>"; };
+               E3BC827322530221005276DE /* NodeList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NodeList.cpp; sourceTree = "<group>"; };
                E3C99A081DC3D41700794AD3 /* DOMJITCheckDOM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMJITCheckDOM.h; sourceTree = "<group>"; };
                E3C9AEC92113147400419B92 /* JSMicrotaskCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMicrotaskCallback.h; sourceTree = "<group>"; };
                E3D049931DADC04500718F3C /* NodeConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeConstants.h; sourceTree = "<group>"; };
                                4BD781C521C1D67700D9703E /* StylePropertyMapReadOnly.cpp */,
                                4BAFD0CE2190F9B400C0AB64 /* StylePropertyMapReadOnly.h */,
                                4BAFD0D02190F9C200C0AB64 /* StylePropertyMapReadOnly.idl */,
+                               E329276022543F5800308A9A /* TypedOMCSSImageValue.cpp */,
                                4B43864F219CD56100F8D3C5 /* TypedOMCSSImageValue.h */,
                                4B43864D219CD52D00F8D3C5 /* TypedOMCSSImageValue.idl */,
+                               E329276222543F5800308A9A /* TypedOMCSSNumericValue.cpp */,
                                4BAFD0DF219220AB00C0AB64 /* TypedOMCSSNumericValue.h */,
                                4BAFD0DB2192202200C0AB64 /* TypedOMCSSNumericValue.idl */,
+                               E329275E22543F5700308A9A /* TypedOMCSSStyleValue.cpp */,
                                4BAFD0D52192146B00C0AB64 /* TypedOMCSSStyleValue.h */,
                                4BAFD0D32192145600C0AB64 /* TypedOMCSSStyleValue.idl */,
+                               E329276322543F5900308A9A /* TypedOMCSSUnitValue.cpp */,
                                4BAFD0DD2192209200C0AB64 /* TypedOMCSSUnitValue.h */,
                                4BAFD0DC2192204A00C0AB64 /* TypedOMCSSUnitValue.idl */,
+                               E329276122543F5800308A9A /* TypedOMCSSUnparsedValue.cpp */,
                                4BAFD0D821921EA000C0AB64 /* TypedOMCSSUnparsedValue.h */,
                                4BAFD0D721921E7900C0AB64 /* TypedOMCSSUnparsedValue.idl */,
                        );
                                7CD0BA031B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h */,
                                E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
                                E1C4DE680EA75C1E0023CCD6 /* ActiveDOMObject.h */,
+                               E3AE6CD12252F27000C70B50 /* AllDescendantsCollection.cpp */,
                                83BB5C871D5D6F3A005A71F4 /* AllDescendantsCollection.h */,
                                319847FE1A1D816700A13318 /* AnimationEvent.cpp */,
                                319847FF1A1D816700A13318 /* AnimationEvent.h */,
                                468344DD1EDDFA5F00B7795B /* DOMRectList.cpp */,
                                468344DE1EDDFA5F00B7795B /* DOMRectList.h */,
                                468344DC1EDDFA5F00B7795B /* DOMRectList.idl */,
+                               E329276622543FDE00308A9A /* DOMRectReadOnly.cpp */,
                                0F4710AD1DB56AFC002DCEC3 /* DOMRectReadOnly.h */,
                                0F4710AE1DB56AFC002DCEC3 /* DOMRectReadOnly.idl */,
                                C55610F011A704EB00B82D27 /* DOMStringList.cpp */,
                                854FE72A0A2297BE0058D7AD /* NodeIterator.cpp */,
                                854FE72B0A2297BE0058D7AD /* NodeIterator.h */,
                                1A750D870A90E394000FF215 /* NodeIterator.idl */,
+                               E3BC827322530221005276DE /* NodeList.cpp */,
                                A81872100977D3C0005826D9 /* NodeList.h */,
                                85ACA9FA0A9B631000671E90 /* NodeList.idl */,
                                4FAB48661643A67E00F70C07 /* NodeRareData.cpp */,
index 86b36c6..2bd00d4 100644 (file)
 
 #include "Animation.h"
 #include "Element.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CSSAnimation);
+
 Ref<CSSAnimation> CSSAnimation::create(Element& owningElement, const Animation& backingAnimation, const RenderStyle* oldStyle, const RenderStyle& newStyle)
 {
     auto result = adoptRef(*new CSSAnimation(owningElement, backingAnimation, newStyle));
index 6360971..8a806aa 100644 (file)
@@ -35,6 +35,7 @@ class Element;
 class RenderStyle;
 
 class CSSAnimation final : public DeclarativeAnimation {
+    WTF_MAKE_ISO_ALLOCATED(CSSAnimation);
 public:
     static Ref<CSSAnimation> create(Element&, const Animation&, const RenderStyle* oldStyle, const RenderStyle& newStyle);
     ~CSSAnimation() = default;
index 865114c..7631681 100644 (file)
 #include "Animation.h"
 #include "Element.h"
 #include "KeyframeEffect.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CSSTransition);
+
 Ref<CSSTransition> CSSTransition::create(Element& owningElement, CSSPropertyID property, MonotonicTime generationTime, const Animation& backingAnimation, const RenderStyle* oldStyle, const RenderStyle& newStyle, Seconds delay, Seconds duration, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor)
 {
     auto result = adoptRef(*new CSSTransition(owningElement, property, generationTime, backingAnimation, newStyle, reversingAdjustedStartStyle, reversingShorteningFactor));
index dd78a7f..8ac917f 100644 (file)
@@ -36,6 +36,7 @@ class Element;
 class RenderStyle;
 
 class CSSTransition final : public DeclarativeAnimation {
+    WTF_MAKE_ISO_ALLOCATED(CSSTransition);
 public:
     static Ref<CSSTransition> create(Element&, CSSPropertyID, MonotonicTime generationTime, const Animation&, const RenderStyle* oldStyle, const RenderStyle& newStyle, Seconds delay, Seconds duration, const RenderStyle& reversingAdjustedStartStyle, double);
     ~CSSTransition() = default;
index f76191f..a44a0fa 100644 (file)
 #include "KeyframeEffect.h"
 #include "PseudoElement.h"
 #include "TransitionEvent.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DeclarativeAnimation);
+
 DeclarativeAnimation::DeclarativeAnimation(Element& owningElement, const Animation& backingAnimation)
     : WebAnimation(owningElement.document())
     , m_eventQueue(owningElement)
index 5d96d26..d95838f 100644 (file)
@@ -38,6 +38,7 @@ class Element;
 class RenderStyle;
 
 class DeclarativeAnimation : public WebAnimation {
+    WTF_MAKE_ISO_ALLOCATED(DeclarativeAnimation);
 public:
     ~DeclarativeAnimation();
 
index 796ca92..f6cbdcc 100644 (file)
 #include "KeyframeEffect.h"
 #include "Microtasks.h"
 #include "WebAnimationUtilities.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Optional.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(WebAnimation);
+
 Ref<WebAnimation> WebAnimation::create(Document& document, AnimationEffect* effect)
 {
     auto result = adoptRef(*new WebAnimation(document));
index ab490d8..e4b38b4 100644 (file)
@@ -46,6 +46,7 @@ class Element;
 class RenderStyle;
 
 class WebAnimation : public RefCounted<WebAnimation>, public CanMakeWeakPtr<WebAnimation>, public EventTargetWithInlineData, public ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(WebAnimation);
 public:
     static Ref<WebAnimation> create(Document&, AnimationEffect*);
     static Ref<WebAnimation> create(Document&, AnimationEffect*, AnimationTimeline*);
index 655ce14..f2c7e79 100644 (file)
@@ -32,6 +32,7 @@
 #pragma once
 
 #include <JavaScriptCore/Weak.h>
+#include <wtf/IsoMalloc.h>
 
 namespace JSC {
 class WeakHandleOwner;
index 3efc8c7..0f1224c 100644 (file)
@@ -76,6 +76,7 @@
 #include "TouchAction.h"
 #include "WebKitFontFamilyNames.h"
 #include "WillChangeData.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/text/StringBuilder.h>
 
@@ -89,6 +90,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CSSComputedStyleDeclaration);
+
 // List of all properties we know how to compute, omitting shorthands.
 static const CSSPropertyID computedProperties[] = {
     CSSPropertyAlt,
index 1cf7a02..06f2c45 100644 (file)
@@ -104,6 +104,7 @@ private:
 };
 
 class CSSComputedStyleDeclaration final : public CSSStyleDeclaration {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(CSSComputedStyleDeclaration, WEBCORE_EXPORT);
 public:
     static Ref<CSSComputedStyleDeclaration> create(Element& element, bool allowVisitedStyle = false, const String& pseudoElementName = String())
     {
index 118e6cb..a4f3481 100644 (file)
 #include "DeprecatedGlobalSettings.h"
 #include "HashTools.h"
 #include "RuntimeEnabledFeatures.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Optional.h>
 #include <wtf/Variant.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CSSStyleDeclaration);
+
 namespace {
 
 enum class PropertyNamePrefix {
index c2fdf21..358d7d6 100644 (file)
@@ -36,7 +36,8 @@ class StyleProperties;
 class StyledElement;
 
 class CSSStyleDeclaration : public ScriptWrappable {
-    WTF_MAKE_NONCOPYABLE(CSSStyleDeclaration); WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_NONCOPYABLE(CSSStyleDeclaration);
+    WTF_MAKE_ISO_ALLOCATED(CSSStyleDeclaration);
 public:
     virtual ~CSSStyleDeclaration() = default;
 
index 292bc17..06d02b1 100644 (file)
@@ -93,6 +93,7 @@ private:
     DOMMatrix(const TransformationMatrix&, Is2D);
     DOMMatrix(TransformationMatrix&&, Is2D);
 };
+static_assert(sizeof(DOMMatrix) == sizeof(DOMMatrixReadOnly), "");
 
 inline void DOMMatrix::setM13(double f)
 {
index 1de8462..656641b 100644 (file)
 #include <JavaScriptCore/GenericTypedArrayViewInlines.h>
 #include <JavaScriptCore/HeapInlines.h>
 #include <JavaScriptCore/JSGenericTypedArrayViewInlines.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMMatrixReadOnly);
+
 // https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-dommatrixreadonly
 ExceptionOr<Ref<DOMMatrixReadOnly>> DOMMatrixReadOnly::create(ScriptExecutionContext& scriptExecutionContext, Optional<Variant<String, Vector<double>>>&& init)
 {
index 8a2c779..638bd3a 100644 (file)
@@ -44,7 +44,7 @@ class ScriptExecutionContext;
 struct DOMPointInit;
 
 class DOMMatrixReadOnly : public ScriptWrappable, public RefCounted<DOMMatrixReadOnly> {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(DOMMatrixReadOnly);
 public:
     static ExceptionOr<Ref<DOMMatrixReadOnly>> create(ScriptExecutionContext&, Optional<Variant<String, Vector<double>>>&&);
 
index 8c3aff1..1aaffe5 100644 (file)
 #include "JSDOMBinding.h"
 #include "JSFontFace.h"
 #include "JSFontFaceSet.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FontFaceSet);
+
 Ref<FontFaceSet> FontFaceSet::create(Document& document, const Vector<RefPtr<FontFace>>& initialFaces)
 {
     Ref<FontFaceSet> result = adoptRef(*new FontFaceSet(document, initialFaces));
index 5f50163..2e3796c 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 class DOMException;
 
 class FontFaceSet final : public RefCounted<FontFaceSet>, private CSSFontFaceSetClient, public EventTargetWithInlineData, private  ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(FontFaceSet);
 public:
     static Ref<FontFaceSet> create(Document&, const Vector<RefPtr<FontFace>>& initialFaces);
     static Ref<FontFaceSet> create(Document&, CSSFontFaceSet& backing);
index c7e757b..65d5ebe 100644 (file)
 #include "StyleProperties.h"
 #include "StyleSheetContents.h"
 #include "StyledElement.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(PropertySetCSSStyleDeclaration);
+WTF_MAKE_ISO_ALLOCATED_IMPL(StyleRuleCSSStyleDeclaration);
+WTF_MAKE_ISO_ALLOCATED_IMPL(InlineCSSStyleDeclaration);
+
 class StyleAttributeMutationScope {
     WTF_MAKE_NONCOPYABLE(StyleAttributeMutationScope);
 public:
index 5983f21..59388ab 100644 (file)
@@ -43,6 +43,7 @@ class StyleSheetContents;
 class StyledElement;
 
 class PropertySetCSSStyleDeclaration : public CSSStyleDeclaration {
+    WTF_MAKE_ISO_ALLOCATED(PropertySetCSSStyleDeclaration);
 public:
     explicit PropertySetCSSStyleDeclaration(MutableStyleProperties& propertySet)
         : m_propertySet(&propertySet)
@@ -89,6 +90,7 @@ private:
 };
 
 class StyleRuleCSSStyleDeclaration final : public PropertySetCSSStyleDeclaration {
+    WTF_MAKE_ISO_ALLOCATED(StyleRuleCSSStyleDeclaration);
 public:
     static Ref<StyleRuleCSSStyleDeclaration> create(MutableStyleProperties& propertySet, CSSRule& parentRule)
     {
@@ -119,6 +121,7 @@ private:
 };
 
 class InlineCSSStyleDeclaration final : public PropertySetCSSStyleDeclaration {
+    WTF_MAKE_ISO_ALLOCATED(InlineCSSStyleDeclaration);
 public:
     InlineCSSStyleDeclaration(MutableStyleProperties& propertySet, StyledElement& parentElement)
         : PropertySetCSSStyleDeclaration(propertySet)
index a26f31a..2b301e9 100644 (file)
 #include "CSSValueKeywords.h"
 #include "StyleProperties.h"
 #include "TransformFunctions.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MathExtras.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitCSSMatrix);
+
 inline WebKitCSSMatrix::WebKitCSSMatrix(const TransformationMatrix& matrix)
     : m_matrix(matrix)
 {
index ad0de92..e390d73 100644 (file)
@@ -33,6 +33,7 @@ namespace WebCore {
 
 // FIXME: Remove this class once WebKitCSSMatrix becomes an alias to DOMMatrix.
 class WebKitCSSMatrix final : public ScriptWrappable, public RefCounted<WebKitCSSMatrix> {
+    WTF_MAKE_ISO_ALLOCATED(WebKitCSSMatrix);
 public:
     static Ref<WebKitCSSMatrix> create(const TransformationMatrix&);
     static ExceptionOr<Ref<WebKitCSSMatrix>> create(const String&);
diff --git a/Source/WebCore/css/typedom/TypedOMCSSImageValue.cpp b/Source/WebCore/css/typedom/TypedOMCSSImageValue.cpp
new file mode 100644 (file)
index 0000000..a6a149a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "TypedOMCSSImageValue.h"
+
+#if ENABLE(CSS_TYPED_OM)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TypedOMCSSImageValue);
+
+} // namespace WebCore
+
+#endif
index 28c2b1a..9e4f9df 100644 (file)
@@ -38,6 +38,7 @@
 namespace WebCore {
 
 class TypedOMCSSImageValue final : public TypedOMCSSStyleValue {
+    WTF_MAKE_ISO_ALLOCATED(TypedOMCSSImageValue);
 public:
     static Ref<TypedOMCSSImageValue> create(CSSImageValue& cssValue, Document& document)
     {
diff --git a/Source/WebCore/css/typedom/TypedOMCSSNumericValue.cpp b/Source/WebCore/css/typedom/TypedOMCSSNumericValue.cpp
new file mode 100644 (file)
index 0000000..e4a1a99
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "TypedOMCSSNumericValue.h"
+
+#if ENABLE(CSS_TYPED_OM)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TypedOMCSSNumericValue);
+
+} // namespace WebCore
+
+#endif
index cad5a39..def7164 100644 (file)
@@ -32,6 +32,7 @@
 namespace WebCore {
 
 class TypedOMCSSNumericValue : public TypedOMCSSStyleValue {
+    WTF_MAKE_ISO_ALLOCATED(TypedOMCSSNumericValue);
 protected:
     TypedOMCSSNumericValue() = default;
 };
diff --git a/Source/WebCore/css/typedom/TypedOMCSSStyleValue.cpp b/Source/WebCore/css/typedom/TypedOMCSSStyleValue.cpp
new file mode 100644 (file)
index 0000000..da4ddcf
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "TypedOMCSSStyleValue.h"
+
+#if ENABLE(CSS_TYPED_OM)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TypedOMCSSStyleValue);
+
+} // namespace WebCore
+
+#endif
index 8b8d7d9..71f9ae6 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class TypedOMCSSStyleValue : public RefCounted<TypedOMCSSStyleValue>, public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(TypedOMCSSStyleValue);
 public:
     virtual ~TypedOMCSSStyleValue() = default;
     virtual String toString() = 0;
diff --git a/Source/WebCore/css/typedom/TypedOMCSSUnitValue.cpp b/Source/WebCore/css/typedom/TypedOMCSSUnitValue.cpp
new file mode 100644 (file)
index 0000000..d9b9c32
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "TypedOMCSSUnitValue.h"
+
+#if ENABLE(CSS_TYPED_OM)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TypedOMCSSUnitValue);
+
+} // namespace WebCore
+
+#endif
index 7fb99dc..4016f04 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class TypedOMCSSUnitValue final : public TypedOMCSSNumericValue {
+    WTF_MAKE_ISO_ALLOCATED(TypedOMCSSUnitValue);
 public:
     static Ref<TypedOMCSSUnitValue> create(double value, const String& unit)
     {
diff --git a/Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.cpp b/Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.cpp
new file mode 100644 (file)
index 0000000..9647d3d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "TypedOMCSSUnparsedValue.h"
+
+#if ENABLE(CSS_TYPED_OM)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TypedOMCSSUnparsedValue);
+
+} // namespace WebCore
+
+#endif
index 8281229..743a55a 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class TypedOMCSSUnparsedValue final : public TypedOMCSSStyleValue {
+    WTF_MAKE_ISO_ALLOCATED(TypedOMCSSUnparsedValue);
 public:
     static Ref<TypedOMCSSUnparsedValue> create(const String& serializedValue)
     {
index 860bae5..5eeb7ee 100644 (file)
 #include "AbortController.h"
 
 #include "AbortSignal.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AbortController);
+
 Ref<AbortController> AbortController::create(ScriptExecutionContext& context)
 {
     return adoptRef(*new AbortController(context));
index 15dceb0..0ad2f42 100644 (file)
@@ -34,7 +34,8 @@ namespace WebCore {
 class AbortSignal;
 class ScriptExecutionContext;
 
-class AbortController : public ScriptWrappable, public RefCounted<AbortController> {
+class AbortController final : public ScriptWrappable, public RefCounted<AbortController> {
+    WTF_MAKE_ISO_ALLOCATED(AbortController);
 public:
     static Ref<AbortController> create(ScriptExecutionContext&);
     ~AbortController();
index cd351fb..4a7f7c6 100644 (file)
 #include "Event.h"
 #include "EventNames.h"
 #include "ScriptExecutionContext.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(AbortSignal);
+
 Ref<AbortSignal> AbortSignal::create(ScriptExecutionContext& context)
 {
     return adoptRef(*new AbortSignal(context));
index a89be55..cc05913 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 class ScriptExecutionContext;
 
 class AbortSignal final : public RefCounted<AbortSignal>, public EventTargetWithInlineData, public CanMakeWeakPtr<AbortSignal>, private ContextDestructionObserver {
+    WTF_MAKE_ISO_ALLOCATED(AbortSignal);
 public:
     static Ref<AbortSignal> create(ScriptExecutionContext&);
 
diff --git a/Source/WebCore/dom/AllDescendantsCollection.cpp b/Source/WebCore/dom/AllDescendantsCollection.cpp
new file mode 100644 (file)
index 0000000..3611a13
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "AllDescendantsCollection.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(AllDescendantsCollection);
+
+} // namespace WebCore
index 22ed9d8..8572af5 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class AllDescendantsCollection : public CachedHTMLCollection<AllDescendantsCollection, CollectionTypeTraits<AllDescendants>::traversalType> {
+    WTF_MAKE_ISO_ALLOCATED(AllDescendantsCollection);
 public:
     static Ref<AllDescendantsCollection> create(ContainerNode& rootNode, CollectionType type)
     {
index 95baa2f..cbf6f1e 100644 (file)
 
 #include "ElementIterator.h"
 #include "NodeRareData.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(EmptyNodeList);
+WTF_MAKE_ISO_ALLOCATED_IMPL(ChildNodeList);
+
 EmptyNodeList::~EmptyNodeList()
 {
     m_owner.get().nodeLists()->removeEmptyChildNodeList(this);
index 0ee4a48..113282e 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "CollectionIndexCache.h"
 #include "NodeList.h"
+#include <wtf/IsoMalloc.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
@@ -32,6 +33,7 @@ namespace WebCore {
 class ContainerNode;
 
 class EmptyNodeList final : public NodeList {
+    WTF_MAKE_ISO_ALLOCATED(EmptyNodeList);
 public:
     static Ref<EmptyNodeList> create(Node& owner)
     {
@@ -54,6 +56,7 @@ private:
 };
 
 class ChildNodeList final : public NodeList {
+    WTF_MAKE_ISO_ALLOCATED(ChildNodeList);
 public:
     static Ref<ChildNodeList> create(ContainerNode& parent)
     {
index 88af086..3817ecd 100644 (file)
 
 #include "NodeRareData.h"
 #include "StyledElement.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ClassCollection);
+
 Ref<ClassCollection> ClassCollection::create(ContainerNode& rootNode, CollectionType type, const AtomicString& classNames)
 {
     ASSERT(type == ByClass);
index 1af53cc..3d8803f 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class ClassCollection final : public CachedHTMLCollection<ClassCollection, CollectionTypeTraits<ByClass>::traversalType> {
+    WTF_MAKE_ISO_ALLOCATED(ClassCollection);
 public:
     static Ref<ClassCollection> create(ContainerNode&, CollectionType, const AtomicString& classNames);
 
index cf87ee6..ef2459b 100644 (file)
 #include "Text.h"
 #include "TextDocument.h"
 #include "XMLDocument.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
 using namespace HTMLNames;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMImplementation);
+
 DOMImplementation::DOMImplementation(Document& document)
     : m_document(document)
 {
index a40a2f6..4cdcacf 100644 (file)
@@ -28,8 +28,8 @@
 
 namespace WebCore {
 
-class DOMImplementation : public ScriptWrappable {
-    WTF_MAKE_FAST_ALLOCATED;
+class DOMImplementation final : public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(DOMImplementation);
 public:
     explicit DOMImplementation(Document&);
 
index caf43c3..77277d7 100644 (file)
@@ -35,7 +35,6 @@
 namespace WebCore {
 
 class DOMPoint final : public DOMPointReadOnly {
-    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<DOMPoint> create(double x, double y, double z = 0, double w = 1) { return adoptRef(*new DOMPoint(x, y, z, w)); }
     static Ref<DOMPoint> create(const DOMPointInit& init) { return create(init.x, init.y, init.z, init.w); }
@@ -52,5 +51,6 @@ private:
     {
     }
 };
+static_assert(sizeof(DOMPoint) == sizeof(DOMPointReadOnly), "");
 
 } // namespace WebCore
index 5564964..4677e55 100644 (file)
 
 #include "DOMMatrixReadOnly.h"
 #include "DOMPoint.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMPointReadOnly);
     
 ExceptionOr<Ref<DOMPoint>> DOMPointReadOnly::matrixTransform(DOMMatrixInit&& matrixInit) const
 {
index e8a80cb..0a68fdf 100644 (file)
@@ -41,7 +41,7 @@ struct DOMMatrixInit;
 class DOMPoint;
 
 class DOMPointReadOnly : public ScriptWrappable, public RefCounted<DOMPointReadOnly> {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(DOMPointReadOnly);
 public:
     static Ref<DOMPointReadOnly> create(double x, double y, double z, double w) { return adoptRef(*new DOMPointReadOnly(x, y, z, w)); }
     static Ref<DOMPointReadOnly> create(const DOMPointInit& init) { return create(init.x, init.y, init.z, init.w); }
index 86948d9..f2a83c5 100644 (file)
 
 #include "DOMPoint.h"
 #include "DOMRect.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MathExtras.h>
 
 
 namespace WebCore {
 using namespace WTF;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMQuad);
+
 DOMQuad::DOMQuad(const DOMPointInit& p1, const DOMPointInit& p2, const DOMPointInit& p3, const DOMPointInit& p4)
     : m_p1(DOMPoint::create(p1))
     , m_p2(DOMPoint::create(p2))
index 6e3696e..16a14a1 100644 (file)
@@ -38,6 +38,7 @@ struct DOMPointInit;
 struct DOMRectInit;
 
 class DOMQuad : public ScriptWrappable, public RefCounted<DOMQuad> {
+    WTF_MAKE_ISO_ALLOCATED(DOMQuad);
 public:
     static Ref<DOMQuad> create(const DOMPointInit& p1, const DOMPointInit& p2, const DOMPointInit& p3, const DOMPointInit& p4) { return adoptRef(*new DOMQuad(p1, p2, p3, p4)); }
     static Ref<DOMQuad> fromRect(const DOMRectInit& init) { return adoptRef(*new DOMQuad(init)); }
index ca439d1..fc914bd 100644 (file)
@@ -34,7 +34,6 @@ namespace WebCore {
 class FloatQuad;
 
 class DOMRect : public DOMRectReadOnly {
-    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<DOMRect> create() { return adoptRef(*new DOMRect()); }
     static Ref<DOMRect> create(double x, double y, double width, double height) { return adoptRef(*new DOMRect(x, y, width, height)); }
@@ -56,5 +55,6 @@ private:
 
     DOMRect() = default;
 };
+static_assert(sizeof(DOMRect) == sizeof(DOMRectReadOnly), "");
 
 }
diff --git a/Source/WebCore/dom/DOMRectReadOnly.cpp b/Source/WebCore/dom/DOMRectReadOnly.cpp
new file mode 100644 (file)
index 0000000..6e9b066
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DOMRectReadOnly.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(DOMRectReadOnly);
+
+} // namespace WebCore
+
index 2b2cc92..a64f673 100644 (file)
@@ -34,7 +34,7 @@
 namespace WebCore {
 
 class DOMRectReadOnly : public ScriptWrappable, public RefCounted<DOMRectReadOnly> {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(DOMRectReadOnly, WEBCORE_EXPORT);
 public:
     static Ref<DOMRectReadOnly> create(double x, double y, double width, double height) { return adoptRef(*new DOMRectReadOnly(x, y, width, height)); }
     static Ref<DOMRectReadOnly> fromRect(const DOMRectInit& init) { return create(init.x, init.y, init.width, init.height); }
index cea8bc2..904e0f5 100644 (file)
 #include "Pasteboard.h"
 #include "RuntimeEnabledFeatures.h"
 #include "Settings.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DataTransferItemList);
+
 DataTransferItemList::DataTransferItemList(DataTransfer& dataTransfer)
     : m_dataTransfer(dataTransfer)
 {
index b2413b8..a713d0d 100644 (file)
@@ -44,8 +44,9 @@ namespace WebCore {
 class DataTransferItem;
 class File;
 
-class DataTransferItemList : public ScriptWrappable, public CanMakeWeakPtr<DataTransferItemList> {
-    WTF_MAKE_NONCOPYABLE(DataTransferItemList); WTF_MAKE_FAST_ALLOCATED;
+class DataTransferItemList final : public ScriptWrappable, public CanMakeWeakPtr<DataTransferItemList> {
+    WTF_MAKE_NONCOPYABLE(DataTransferItemList);
+    WTF_MAKE_ISO_ALLOCATED(DataTransferItemList);
 public:
     DataTransferItemList(DataTransfer&);
     ~DataTransferItemList();
index ec6315c..a6aeedc 100644 (file)
 
 #include "Element.h"
 #include <wtf/ASCIICType.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/AtomicString.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DatasetDOMStringMap);
+
 static bool isValidAttributeName(const String& name)
 {
     if (!name.startsWith("data-"))
index 9100db8..3fdb547 100644 (file)
@@ -33,7 +33,7 @@ namespace WebCore {
 class Element;
 
 class DatasetDOMStringMap final : public ScriptWrappable {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(DatasetDOMStringMap);
 public:
     explicit DatasetDOMStringMap(Element& element)
         : m_element(element)
index ddeaf2f..960b4a8 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
+#include <wtf/WeakPtr.h>
 
 namespace WebCore {
 
index 105f121..6ddde4d 100644 (file)
@@ -44,6 +44,7 @@
 #include "Settings.h"
 #include "WebKitAnimationEvent.h"
 #include "WebKitTransitionEvent.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/MainThread.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/Ref.h>
@@ -53,6 +54,9 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(EventTarget);
+WTF_MAKE_ISO_ALLOCATED_IMPL(EventTargetWithInlineData);
+
 bool EventTarget::isNode() const
 {
     return false;
index 02a789f..102337b 100644 (file)
@@ -36,6 +36,7 @@
 #include "ScriptWrappable.h"
 #include <memory>
 #include <wtf/Forward.h>
+#include <wtf/IsoMalloc.h>
 #include <wtf/Variant.h>
 
 namespace WebCore {
@@ -51,6 +52,7 @@ public:
 };
 
 class EventTarget : public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(EventTarget);
 public:
     void ref() { refEventTarget(); }
     void deref() { derefEventTarget(); }
@@ -130,6 +132,7 @@ private:
 };
 
 class EventTargetWithInlineData : public EventTarget {
+    WTF_MAKE_ISO_ALLOCATED(EventTargetWithInlineData);
 protected:
     EventTargetData* eventTargetData() final { return &m_eventTargetData; }
     EventTargetData* eventTargetDataConcurrently() final { return &m_eventTargetData; }
index 854b875..dd0c999 100644 (file)
 #include "Element.h"
 #include "ElementTraversal.h"
 #include "HTMLCollection.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(LiveNodeList);
+
 LiveNodeList::LiveNodeList(ContainerNode& ownerNode, NodeListInvalidationType invalidationType)
     : m_ownerNode(ownerNode)
     , m_invalidationType(invalidationType)
index 37b9cfd..511df94 100644 (file)
@@ -38,6 +38,7 @@ class Element;
 static bool shouldInvalidateTypeOnAttributeChange(NodeListInvalidationType, const QualifiedName&);
 
 class LiveNodeList : public NodeList {
+    WTF_MAKE_ISO_ALLOCATED(LiveNodeList);
 public:
     LiveNodeList(ContainerNode& ownerNode, NodeListInvalidationType);
     virtual ~LiveNodeList();
@@ -74,6 +75,7 @@ private:
 
 template <class NodeListType>
 class CachedLiveNodeList : public LiveNodeList {
+    WTF_MAKE_ISO_NONALLOCATABLE(CachedLiveNodeList);
 public:
     virtual ~CachedLiveNodeList();
 
index 8dcfe1f..174f5a3 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "MessagePort.h"
 #include "MessagePortChannelProvider.h"
+#include "ScriptExecutionContext.h"
 
 namespace WebCore {
 
index 46b7cc5..a029b3d 100644 (file)
 #include "WorkerGlobalScope.h"
 #include "WorkerThread.h"
 #include <wtf/CompletionHandler.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(MessagePort);
+
 static Lock allMessagePortsLock;
 static HashMap<MessagePortIdentifier, MessagePort*>& allMessagePorts()
 {
index 18ad62e..ef272d3 100644 (file)
@@ -46,7 +46,7 @@ class Frame;
 
 class MessagePort final : public ActiveDOMObject, public EventTargetWithInlineData, public CanMakeWeakPtr<MessagePort> {
     WTF_MAKE_NONCOPYABLE(MessagePort);
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(MessagePort);
 public:
     static Ref<MessagePort> create(ScriptExecutionContext&, const MessagePortIdentifier& local, const MessagePortIdentifier& remote);
     virtual ~MessagePort();
index 8891889..0bb8238 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2007, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2007, 2014-2019 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "NameNodeList.h"
 
 #include "NodeRareData.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
 using namespace HTMLNames;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(NameNodeList);
+
 NameNodeList::NameNodeList(ContainerNode& rootNode, const AtomicString& name)
     : CachedLiveNodeList(rootNode, InvalidateOnNameAttrChange)
     , m_name(name)
index ef86c6d..85eece2 100644 (file)
@@ -31,6 +31,7 @@ namespace WebCore {
 
 // NodeList which lists all Nodes in a Element with a given "name" attribute
 class NameNodeList final : public CachedLiveNodeList<NameNodeList> {
+    WTF_MAKE_ISO_ALLOCATED(NameNodeList);
 public:
     static Ref<NameNodeList> create(ContainerNode& rootNode, const AtomicString& name)
     {
index 17bcee6..75ba66d 100644 (file)
 
 #include "Attr.h"
 #include "HTMLElement.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
 using namespace HTMLNames;
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(NamedNodeMap);
+
 void NamedNodeMap::ref()
 {
     m_element.ref();
index 2cb5964..d30d23a 100644 (file)
@@ -32,8 +32,8 @@ namespace WebCore {
 class Attr;
 class Element;
 
-class NamedNodeMap : public ScriptWrappable {
-    WTF_MAKE_FAST_ALLOCATED;
+class NamedNodeMap final : public ScriptWrappable {
+    WTF_MAKE_ISO_ALLOCATED(NamedNodeMap);
 public:
     explicit NamedNodeMap(Element& element)
         : m_element(element)
index 16698f7..6824869 100644 (file)
 
 #include "Document.h"
 #include "NodeTraversal.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(NodeIterator);
+
 inline NodeIterator::NodePointer::NodePointer(Node& node, bool isPointerBeforeNode)
     : node(&node)
     , isPointerBeforeNode(isPointerBeforeNode)
index e7b566a..68c4366 100644 (file)
@@ -31,7 +31,8 @@
 
 namespace WebCore {
 
-class NodeIterator : public ScriptWrappable, public RefCounted<NodeIterator>, public NodeIteratorBase {
+class NodeIterator final : public ScriptWrappable, public RefCounted<NodeIterator>, public NodeIteratorBase {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(NodeIterator, WEBCORE_EXPORT);
 public:
     static Ref<NodeIterator> create(Node&, unsigned whatToShow, RefPtr<NodeFilter>&&);
     WEBCORE_EXPORT ~NodeIterator();
diff --git a/Source/WebCore/dom/NodeList.cpp b/Source/WebCore/dom/NodeList.cpp
new file mode 100644 (file)
index 0000000..97fc342
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NodeList.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(NodeList);
+
+} // namespace WebCore
index c66f249..a2fa9f6 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "ScriptWrappable.h"
 #include <wtf/Forward.h>
+#include <wtf/IsoMalloc.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -32,6 +33,7 @@ namespace WebCore {
 class Node;
 
 class NodeList : public ScriptWrappable, public RefCounted<NodeList> {
+    WTF_MAKE_ISO_ALLOCATED(NodeList);
 public:
     virtual ~NodeList() = default;
 
index f6a19a3..a723eaf 100644 (file)
@@ -31,6 +31,8 @@
 #include "config.h"
 #include "NodeRareData.h"
 
+#include "Page.h"
+
 namespace WebCore {
 
 struct SameSizeAsNodeRareData {
index d7ff3e7..261bad8 100644 (file)
@@ -46,6 +46,7 @@
 #include "SWClientConnection.h"
 #include "SWContextManager.h"
 #include "SchemeRegistry.h"
+#include "ScriptController.h"
 #include "ScriptDisallowedScope.h"
 #include "ScriptState.h"
 #include "ServiceWorker.h"
index 3a4f245..24199c0 100644 (file)
 #include "Element.h"
 #include "EventNames.h"
 #include "MouseEvent.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
 class SimulatedMouseEvent final : public MouseEvent {
+    WTF_MAKE_ISO_ALLOCATED_INLINE(SimulatedMouseEvent);
 public:
     static Ref<SimulatedMouseEvent> create(const AtomicString& eventType, RefPtr<WindowProxy>&& view, RefPtr<Event>&& underlyingEvent, Element& target, SimulatedClickSource source)
     {
index 4aff2ce..f7f523d 100644 (file)
 #include "config.h"
 #include "StaticNodeList.h"
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(StaticNodeList);
+WTF_MAKE_ISO_ALLOCATED_IMPL(StaticElementList);
+
 unsigned StaticNodeList::length() const
 {
     return m_nodes.size();
index e5e0244..d983ae5 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class WEBCORE_EXPORT StaticNodeList final : public NodeList {
+    WTF_MAKE_ISO_ALLOCATED(StaticNodeList);
 public:
     static Ref<StaticNodeList> create(Vector<Ref<Node>>&& nodes = { })
     {
@@ -53,6 +54,7 @@ private:
 };
 
 class StaticElementList final : public NodeList {
+    WTF_MAKE_ISO_ALLOCATED(StaticElementList);
 public:
     static Ref<StaticElementList> create(Vector<Ref<Element>>&& elements = { })
     {
index b05b9d1..4291fcd 100644 (file)
 #include "TagCollection.h"
 
 #include "NodeRareData.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(TagCollection);
+WTF_MAKE_ISO_ALLOCATED_IMPL(TagCollectionNS);
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTagCollection);
+
 TagCollectionNS::TagCollectionNS(ContainerNode& rootNode, const AtomicString& namespaceURI, const AtomicString& localName)
     : CachedHTMLCollection<TagCollectionNS, CollectionTypeTraits<ByTag>::traversalType>(rootNode, ByTag)
     , m_namespaceURI(namespaceURI)
index 777e8ad..482e0db 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 
 // HTMLCollection that limits to a particular tag.
 class TagCollection final : public CachedHTMLCollection<TagCollection, CollectionTypeTraits<ByTag>::traversalType> {
+    WTF_MAKE_ISO_ALLOCATED(TagCollection);
 public:
     static Ref<TagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& qualifiedName)
     {
@@ -47,6 +48,7 @@ private:
 };
 
 class TagCollectionNS final : public CachedHTMLCollection<TagCollectionNS, CollectionTypeTraits<ByTag>::traversalType> {
+    WTF_MAKE_ISO_ALLOCATED(TagCollectionNS);
 public:
     static Ref<TagCollectionNS> create(ContainerNode& rootNode, const AtomicString& namespaceURI, const AtomicString& localName)
     {
@@ -64,6 +66,7 @@ private:
 };
 
 class HTMLTagCollection final : public CachedHTMLCollection<HTMLTagCollection, CollectionTypeTraits<ByHTMLTag>::traversalType> {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTagCollection);
 public:
     static Ref<HTMLTagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& qualifiedName)
     {
index 4bdd85f..f4ed412 100644 (file)
 
 #include "ContainerNode.h"
 #include "NodeTraversal.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(TreeWalker);
+
 TreeWalker::TreeWalker(Node& rootNode, unsigned long whatToShow, RefPtr<NodeFilter>&& filter)
     : NodeIteratorBase(rootNode, whatToShow, WTFMove(filter))
     , m_current(root())
index e1eec74..3ebbd89 100644 (file)
@@ -32,7 +32,8 @@
 
 namespace WebCore {
 
-class TreeWalker : public ScriptWrappable, public RefCounted<TreeWalker>, public NodeIteratorBase {
+class TreeWalker final : public ScriptWrappable, public RefCounted<TreeWalker>, public NodeIteratorBase {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(TreeWalker, WEBCORE_EXPORT);
 public:
     static Ref<TreeWalker> create(Node& rootNode, unsigned long whatToShow, RefPtr<NodeFilter>&& filter)
     {
index a7cd4e4..14c5172 100644 (file)
 #include "ScriptExecutionContext.h"
 #include "SharedBuffer.h"
 #include "ThreadableBlobRegistry.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Blob);
+
 class BlobURLRegistry final : public URLRegistry {
 public:
     void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
index 90d4656..ed607fe 100644 (file)
@@ -50,6 +50,7 @@ class SharedBuffer;
 using BlobPartVariant = Variant<RefPtr<JSC::ArrayBufferView>, RefPtr<JSC::ArrayBuffer>, RefPtr<Blob>, String>;
 
 class Blob : public ScriptWrappable, public URLRegistrable, public RefCounted<Blob> {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(Blob, WEBCORE_EXPORT);
 public:
     static Ref<Blob> create()
     {
index adb30c9..183da7a 100644 (file)
 #include <wtf/DateMath.h>
 #include <wtf/FileMetadata.h>
 #include <wtf/FileSystem.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(File);
+
 Ref<File> File::createWithRelativePath(const String& path, const String& relativePath)
 {
     auto file = File::create(path);
index 8e56cea..46ebfe7 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class File final : public Blob {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(File, WEBCORE_EXPORT);
 public:
     struct PropertyBag : BlobPropertyBag {
         Optional<int64_t> lastModified;
index 7ca7f1b..c19f802 100644 (file)
 #include "config.h"
 #include "FileList.h"
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FileList);
+
 File* FileList::item(unsigned index) const
 {
     if (index >= m_files.size())
index c1c5ef1..7308ef9 100644 (file)
@@ -33,7 +33,8 @@
 
 namespace WebCore {
 
-class FileList : public ScriptWrappable, public RefCounted<FileList> {
+class FileList final : public ScriptWrappable, public RefCounted<FileList> {
+    WTF_MAKE_ISO_ALLOCATED_EXPORT(FileList, WEBCORE_EXPORT);
 public:
     static Ref<FileList> create()
     {
index 1c39972..8885247 100644 (file)
 #include "ProgressEvent.h"
 #include "ScriptExecutionContext.h"
 #include <JavaScriptCore/ArrayBuffer.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FileReader);
+
 // Fire the progress event at least every 50ms.
 static const auto progressNotificationInterval = 50_ms;
 
index e851268..90f1ead 100644 (file)
@@ -46,6 +46,7 @@ namespace WebCore {
 class Blob;
 
 class FileReader final : public RefCounted<FileReader>, public ActiveDOMObject, public EventTargetWithInlineData, private FileReaderLoaderClient {
+    WTF_MAKE_ISO_ALLOCATED(FileReader);
 public:
     static Ref<FileReader> create(ScriptExecutionContext&);
 
index 3590bee..744d6c2 100644 (file)
@@ -33,6 +33,7 @@ namespace WebCore {
 
 template <typename HTMLCollectionClass, CollectionTraversalType traversalType>
 class CachedHTMLCollection : public HTMLCollection {
+    WTF_MAKE_ISO_NONALLOCATABLE(CachedHTMLCollection);
 public:
     CachedHTMLCollection(ContainerNode& base, CollectionType);
 
index 0e4528d..3838f1b 100644 (file)
 #include "HTMLNames.h"
 #include "HTMLObjectElement.h"
 #include "HTMLOptionElement.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
 using namespace HTMLNames;
 
+using GenericDescendantsCachedHTMLCollection = GenericCachedHTMLCollection<CollectionTraversalType::Descendants>;
+using GenericChildrenOnlyCachedHTMLCollection = GenericCachedHTMLCollection<CollectionTraversalType::ChildrenOnly>;
+
+WTF_MAKE_ISO_ALLOCATED_IMPL_TEMPLATE(GenericDescendantsCachedHTMLCollection);
+WTF_MAKE_ISO_ALLOCATED_IMPL_TEMPLATE(GenericChildrenOnlyCachedHTMLCollection);
+
 template <CollectionTraversalType traversalType>
 bool GenericCachedHTMLCollection<traversalType>::elementMatches(Element& element) const
 {