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