Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 321dfd04a9a7243777844e3946a07b759e411539
      
https://github.com/WebKit/WebKit/commit/321dfd04a9a7243777844e3946a07b759e411539
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2025-03-03 (Mon, 03 Mar 2025)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.h
    M Source/JavaScriptCore/runtime/JSMicrotask.cpp
    M Source/JavaScriptCore/runtime/JSMicrotask.h
    M Source/JavaScriptCore/runtime/Microtask.h
    M Source/JavaScriptCore/runtime/VM.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/bindings/js/JSDOMMicrotask.cpp
    M Source/WebCore/bindings/js/JSDOMMicrotask.h
    M Source/WebCore/bindings/js/JSDOMWindowBase.cpp
    M Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
    M Source/WebCore/bindings/js/JSExecState.h
    R Source/WebCore/bindings/js/JSMicrotaskCallback.h
    M Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp
    M Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp
    M Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp
    M Source/WebCore/dom/EventLoop.cpp
    M Source/WebCore/dom/EventLoop.h
    M Source/WebCore/dom/Microtasks.cpp
    M Source/WebCore/dom/Microtasks.h
    M Source/WebCore/workers/service/ExtendableEvent.cpp

  Log Message:
  -----------
  Slightly optimize WebCore microtask execution
https://bugs.webkit.org/show_bug.cgi?id=289030
rdar://146070011

Reviewed by Ryosuke Niwa.

WebCore microtask execution is wrapping it with so many unnecessary
abstractions. And it is causing massive slowdown compared to simple
execution in JSC's default implementation.

1. We increase inline capacity of EventLoop Tasks to avoid repeated
   small allocations and deallocations.
2. We remove JSMicrotaskCallback and use JSC::Microtask directly.

* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSGlobalObject::queueMicrotask):
* Source/JavaScriptCore/runtime/JSGlobalObject.h:
* Source/JavaScriptCore/runtime/JSMicrotask.cpp:
(JSC::createJSMicrotask):
(JSC::runJSMicrotask):
(JSC::JSMicrotask::run):
* Source/JavaScriptCore/runtime/JSMicrotask.h:
* Source/JavaScriptCore/runtime/Microtask.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSDOMMicrotask.cpp:
(WebCore::createJSDOMMicrotask):
(WebCore::JSDOMMicrotask::run):
* Source/WebCore/bindings/js/JSDOMMicrotask.h:
* Source/WebCore/bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop):
* Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::queueMicrotask):
* Source/WebCore/bindings/js/JSExecState.h:
(WebCore::JSExecState::runTask):
* Source/WebCore/bindings/js/JSMicrotaskCallback.h: Removed.
* Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:
* Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop):
* Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::queueMicrotask):
* Source/WebCore/dom/EventLoop.cpp:
(WebCore::EventLoop::run):
* Source/WebCore/dom/EventLoop.h:
* Source/WebCore/dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
* Source/WebCore/dom/Microtasks.h:

Canonical link: https://commits.webkit.org/291550@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to