Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cc5180250455cc0abf88c2620e5762f0e2c7b5e6
      
https://github.com/WebKit/WebKit/commit/cc5180250455cc0abf88c2620e5762f0e2c7b5e6
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/builtins/ProxyHelpers.js
    M Source/JavaScriptCore/bytecode/AccessCase.cpp
    M Source/JavaScriptCore/bytecode/AccessCase.h
    M Source/JavaScriptCore/bytecode/GetByStatus.cpp
    M Source/JavaScriptCore/bytecode/GetByStatus.h
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.h
    R Source/JavaScriptCore/bytecode/ProxyObjectAccessCase.cpp
    R Source/JavaScriptCore/bytecode/ProxyObjectAccessCase.h
    M Source/JavaScriptCore/bytecode/PutByStatus.cpp
    M Source/JavaScriptCore/bytecode/Repatch.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.h
    M Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h

  Log Message:
  -----------
  [JSC] Implement IndexedProxyObjectIn and IndexedProxyObjectStore
https://bugs.webkit.org/show_bug.cgi?id=276148
rdar://130996102

Reviewed by Yijia Huang.

This patch adds IndexedProxyObjectIn and IndexedProxyObjectStore IC as we see 
this patterns.

1. IndexedProxyObjectIn and IndexedProxyObjectStore are both stateless IC as 
the same to IndexedProxyObjectLoad.
2. IndexedProxyObjectIn and IndexedProxyObjectStore just implement Proxy object 
handler invocation as the same to ProxyObjectIn and ProxyObjectStore.

Also, we rename ProxyObjectHas to ProxyObjectIn to align these IC names to the 
rest of the IC names.

* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/builtins/ProxyHelpers.js:
(linkTimeConstant.performProxyObjectHasByVal):
(linkTimeConstant.performProxyObjectSetByValSloppy):
(linkTimeConstant.performProxyObjectSetByValStrict):
* Source/JavaScriptCore/bytecode/AccessCase.cpp:
(JSC::AccessCase::create):
(JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::runWithDowncast):
(JSC::AccessCase::canBeShared):
* Source/JavaScriptCore/bytecode/AccessCase.h:
* Source/JavaScriptCore/bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
* Source/JavaScriptCore/bytecode/GetByStatus.h:
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::needsScratchFPR):
(JSC::forInBy):
(JSC::isStateless):
(JSC::doesJSCalls):
(JSC::isMegamorphic):
(JSC::canBeViaGlobalProxy):
(JSC::InlineCacheCompiler::generateWithGuard):
(JSC::InlineCacheCompiler::generateAccessCase):
(JSC::InlineCacheCompiler::emitProxyObjectAccess):
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:
* Source/JavaScriptCore/bytecode/ProxyObjectAccessCase.cpp: Removed.
* Source/JavaScriptCore/bytecode/ProxyObjectAccessCase.h: Removed.
* Source/JavaScriptCore/bytecode/PutByStatus.cpp:
(JSC::PutByStatus::computeForStubInfo):
* Source/JavaScriptCore/bytecode/Repatch.cpp:
(JSC::tryCacheGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCachePutBy):
(JSC::tryCacheArrayPutByVal):
(JSC::tryCacheInBy):
(JSC::tryCacheArrayInByVal):
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):
* Source/JavaScriptCore/runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::offsetOfPerformProxyObjectHasByValFunction):
(JSC::JSGlobalObject::offsetOfPerformProxyObjectSetByValStrictFunction):
(JSC::JSGlobalObject::offsetOfPerformProxyObjectSetByValSloppyFunction):
* Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::performProxyObjectHasByValFunction const):
(JSC::JSGlobalObject::performProxyObjectHasByValFunctionConcurrently const):
(JSC::JSGlobalObject::performProxyObjectSetByValSloppyFunction const):
(JSC::JSGlobalObject::performProxyObjectSetByValSloppyFunctionConcurrently 
const):
(JSC::JSGlobalObject::performProxyObjectSetByValStrictFunction const):
(JSC::JSGlobalObject::performProxyObjectSetByValStrictFunctionConcurrently 
const):

Canonical link: https://commits.webkit.org/280608@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