Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: acb1c76129d479ba1b60f43ab9d4c446205dc957
https://github.com/WebKit/WebKit/commit/acb1c76129d479ba1b60f43ab9d4c446205dc957
Author: Antti Koivisto <[email protected]>
Date: 2025-11-03 (Mon, 03 Nov 2025)
Changed paths:
M Source/JavaScriptCore/b3/B3CheckSpecial.h
M Source/JavaScriptCore/b3/B3Kind.h
M Source/JavaScriptCore/b3/B3ValueKey.h
M Source/JavaScriptCore/b3/air/AirArg.h
M Source/JavaScriptCore/b3/air/AirCode.h
M Source/JavaScriptCore/b3/air/AirTmp.h
M Source/JavaScriptCore/bytecode/BytecodeIndex.h
M Source/JavaScriptCore/bytecode/CallVariant.h
M Source/JavaScriptCore/bytecode/CodeOrigin.h
M Source/JavaScriptCore/bytecode/DFGExitProfile.h
M Source/JavaScriptCore/bytecode/DirectEvalCodeCache.h
M Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h
M Source/JavaScriptCore/bytecode/ObjectPropertyCondition.h
M Source/JavaScriptCore/bytecode/PropertyCondition.h
M Source/JavaScriptCore/dfg/DFGAbstractHeap.h
M Source/JavaScriptCore/dfg/DFGDesiredGlobalProperty.h
M Source/JavaScriptCore/dfg/DFGHeapLocation.h
M Source/JavaScriptCore/dfg/DFGMinifiedID.h
M Source/JavaScriptCore/dfg/DFGNodeFlowProjection.h
M Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h
M Source/JavaScriptCore/dfg/DFGPropertyTypeKey.h
M Source/JavaScriptCore/dfg/DFGPureValue.h
M Source/JavaScriptCore/ftl/FTLLocation.h
M Source/JavaScriptCore/interpreter/CallFrame.h
M Source/JavaScriptCore/jit/ICStats.h
M Source/JavaScriptCore/jit/JITCompilationKey.h
M Source/JavaScriptCore/jit/Reg.h
M Source/JavaScriptCore/parser/SourceCodeKey.h
M Source/JavaScriptCore/profiler/ProfilerOrigin.h
M Source/JavaScriptCore/profiler/ProfilerOriginStack.h
M Source/JavaScriptCore/runtime/CodeCache.h
M Source/JavaScriptCore/runtime/ControlFlowProfiler.h
M Source/JavaScriptCore/runtime/PrototypeKey.h
M Source/JavaScriptCore/runtime/TypeProfiler.h
M Source/JavaScriptCore/runtime/VarOffset.h
M Source/WTF/wtf/GenericHashKey.h
M Source/WTF/wtf/HashFunctions.h
M Source/WebCore/platform/Cookie.h
M Source/WebCore/platform/Site.h
M Source/WebCore/platform/graphics/FontCache.cpp
M Source/WebCore/platform/graphics/FontPlatformData.h
M Source/WebCore/platform/graphics/WidthCache.h
M Source/WebCore/rendering/CSSValueKey.h
M Source/WebCore/rendering/TextAutoSizing.h
M Source/WebKit/Shared/WebFoundTextRange.h
M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h
Log Message:
-----------
Support setting safeToCompareToEmptyOrDeleted in MemberBasedHash
https://bugs.webkit.org/show_bug.cgi?id=301816
rdar://163877354
Reviewed by Darin Adler and Sam Weinig.
Allow Hash types with safeToCompareToEmptyOrDeleted = true to be replaced with
MemberBasedHash too.
To signal that the comparison is safe the type itself can have optional
static constexpr bool safeToCompareToHashTableEmptyOrDeletedValue = true;
field which is then picked up by MemberBasedHash.
Use this to remove lots of boilerplate.
Also clean up a few additional cases with safeToCompareToEmptyOrDeleted = false.
* Source/JavaScriptCore/b3/B3CheckSpecial.h:
(JSC::B3::CheckSpecialKeyHash::hash): Deleted.
(JSC::B3::CheckSpecialKeyHash::equal): Deleted.
* Source/JavaScriptCore/b3/B3Kind.h:
(JSC::B3::KindHash::hash): Deleted.
(JSC::B3::KindHash::equal): Deleted.
* Source/JavaScriptCore/b3/B3ValueKey.h:
(JSC::B3::ValueKeyHash::hash): Deleted.
(JSC::B3::ValueKeyHash::equal): Deleted.
* Source/JavaScriptCore/b3/air/AirArg.h:
(JSC::B3::Air::ArgHash::hash): Deleted.
(JSC::B3::Air::ArgHash::equal): Deleted.
* Source/JavaScriptCore/b3/air/AirCode.h:
* Source/JavaScriptCore/b3/air/AirTmp.h:
(JSC::B3::Air::TmpHash::hash): Deleted.
(JSC::B3::Air::TmpHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/BytecodeIndex.h:
(JSC::BytecodeIndexHash::hash): Deleted.
(JSC::BytecodeIndexHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/CallVariant.h:
(JSC::CallVariantHash::hash): Deleted.
(JSC::CallVariantHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/CodeOrigin.h:
(JSC::CodeOriginHash::hash): Deleted.
(JSC::CodeOriginHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/DFGExitProfile.h:
(JSC::DFG::FrequentExitSiteHash::hash): Deleted.
(JSC::DFG::FrequentExitSiteHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/DirectEvalCodeCache.h:
(JSC::DirectEvalCodeCache::CacheKey::Hash::hash): Deleted.
(JSC::DirectEvalCodeCache::CacheKey::Hash::equal): Deleted.
* Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h:
(JSC::LazyOperandValueProfileKeyHash::hash): Deleted.
(JSC::LazyOperandValueProfileKeyHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/ObjectPropertyCondition.h:
(JSC::ObjectPropertyConditionHash::hash): Deleted.
(JSC::ObjectPropertyConditionHash::equal): Deleted.
* Source/JavaScriptCore/bytecode/PropertyCondition.h:
(JSC::PropertyConditionHash::hash): Deleted.
(JSC::PropertyConditionHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGAbstractHeap.h:
(JSC::DFG::AbstractHeapHash::hash): Deleted.
(JSC::DFG::AbstractHeapHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGDesiredGlobalProperty.h:
(JSC::DFG::DesiredGlobalPropertyHash::hash): Deleted.
(JSC::DFG::DesiredGlobalPropertyHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGHeapLocation.h:
(JSC::DFG::HeapLocationHash::hash): Deleted.
(JSC::DFG::HeapLocationHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGMinifiedID.h:
(JSC::DFG::MinifiedIDHash::hash): Deleted.
(JSC::DFG::MinifiedIDHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGNodeFlowProjection.h:
(JSC::DFG::NodeFlowProjectionHash::hash): Deleted.
(JSC::DFG::NodeFlowProjectionHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:
(JSC::DFG::PromotedLocationDescriptorHash::hash): Deleted.
(JSC::DFG::PromotedLocationDescriptorHash::equal): Deleted.
(JSC::DFG::PromotedHeapLocationHash::hash): Deleted.
(JSC::DFG::PromotedHeapLocationHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGPropertyTypeKey.h:
(JSC::DFG::PropertyTypeKeyHash::hash): Deleted.
(JSC::DFG::PropertyTypeKeyHash::equal): Deleted.
* Source/JavaScriptCore/dfg/DFGPureValue.h:
(JSC::DFG::PureValueHash::hash): Deleted.
(JSC::DFG::PureValueHash::equal): Deleted.
* Source/JavaScriptCore/ftl/FTLLocation.h:
(JSC::FTL::LocationHash::hash): Deleted.
(JSC::FTL::LocationHash::equal): Deleted.
* Source/JavaScriptCore/interpreter/CallFrame.h:
(JSC::CallSiteIndexHash::hash): Deleted.
(JSC::CallSiteIndexHash::equal): Deleted.
* Source/JavaScriptCore/jit/ICStats.h:
(JSC::ICEventHash::hash): Deleted.
(JSC::ICEventHash::equal): Deleted.
* Source/JavaScriptCore/jit/JITCompilationKey.h:
(JSC::JITCompilationKeyHash::hash): Deleted.
(JSC::JITCompilationKeyHash::equal): Deleted.
* Source/JavaScriptCore/jit/Reg.h:
(JSC::RegHash::hash): Deleted.
(JSC::RegHash::equal): Deleted.
* Source/JavaScriptCore/parser/SourceCodeKey.h:
(JSC::SourceCodeKey::Hash::hash): Deleted.
(JSC::SourceCodeKey::Hash::equal): Deleted.
* Source/JavaScriptCore/profiler/ProfilerOrigin.h:
(JSC::Profiler::OriginHash::hash): Deleted.
(JSC::Profiler::OriginHash::equal): Deleted.
* Source/JavaScriptCore/profiler/ProfilerOriginStack.h:
(JSC::Profiler::OriginStackHash::hash): Deleted.
(JSC::Profiler::OriginStackHash::equal): Deleted.
* Source/JavaScriptCore/runtime/CodeCache.h:
* Source/JavaScriptCore/runtime/ControlFlowProfiler.h:
(JSC::BasicBlockKeyHash::hash): Deleted.
(JSC::BasicBlockKeyHash::equal): Deleted.
* Source/JavaScriptCore/runtime/PrototypeKey.h:
(JSC::PrototypeKeyHash::hash): Deleted.
(JSC::PrototypeKeyHash::equal): Deleted.
* Source/JavaScriptCore/runtime/TypeProfiler.h:
(JSC::QueryKeyHash::hash): Deleted.
(JSC::QueryKeyHash::equal): Deleted.
* Source/JavaScriptCore/runtime/VarOffset.h:
(JSC::VarOffsetHash::hash): Deleted.
(JSC::VarOffsetHash::equal): Deleted.
* Source/WTF/wtf/GenericHashKey.h:
* Source/WTF/wtf/HashFunctions.h:
* Source/WebCore/platform/Cookie.h:
(WebCore::CookieHash::hash): Deleted.
(WebCore::CookieHash::equal): Deleted.
* Source/WebCore/platform/Site.h:
(WebCore::Site::Hash::hash): Deleted.
(WebCore::Site::Hash::equal): Deleted.
* Source/WebCore/platform/graphics/FontCache.cpp:
(WebCore::FontDataCacheKeyHash::hash): Deleted.
(WebCore::FontDataCacheKeyHash::equal): Deleted.
* Source/WebCore/platform/graphics/FontPlatformData.h:
* Source/WebCore/platform/graphics/WidthCache.h:
(WebCore::WidthCache::SmallStringKeyHash::hash): Deleted.
(WebCore::WidthCache::SmallStringKeyHash::equal): Deleted.
* Source/WebCore/rendering/CSSValueKey.h:
(WTF::CSSValueKeyHash::hash): Deleted.
(WTF::CSSValueKeyHash::equal): Deleted.
* Source/WebCore/rendering/TextAutoSizing.h:
(WebCore::TextAutoSizingHash::hash): Deleted.
(WebCore::TextAutoSizingHash::equal): Deleted.
* Source/WebKit/Shared/WebFoundTextRange.h:
(WTF::WebFoundTextRangePDFDataHash::hash): Deleted.
(WTF::WebFoundTextRangePDFDataHash::equal): Deleted.
(WTF::WebFoundTextRangeHash::hash): Deleted.
(WTF::WebFoundTextRangeHash::equal): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h:
(WTF::WebExtensionMatchPatternHash::hash): Deleted.
(WTF::WebExtensionMatchPatternHash::equal): Deleted.
Canonical link: https://commits.webkit.org/302472@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications