import UBI webkit2gtk3-2.52.3-0.el9_7.1
This commit is contained in:
parent
11e6c1dcaa
commit
251b5c8c10
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
||||
SOURCES/webkitgtk-2.50.4.tar.xz
|
||||
SOURCES/webkitgtk-2.52.3.tar.xz
|
||||
SOURCES/webkitgtk-keys.gpg
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
719c304539cecca945846700cefebc7339eb5924 SOURCES/webkitgtk-2.50.4.tar.xz
|
||||
17f9b127618040a5f3fcbb70e37ea16ab6d69b0b SOURCES/webkitgtk-2.52.3.tar.xz
|
||||
04b10b8a486542c4551269c20b18b5c1c6cb4f94 SOURCES/webkitgtk-keys.gpg
|
||||
|
||||
329
SOURCES/aarch64-build.patch
Normal file
329
SOURCES/aarch64-build.patch
Normal file
@ -0,0 +1,329 @@
|
||||
From d610a155a3ce63809265b1045d4516778af2ba6a Mon Sep 17 00:00:00 2001
|
||||
From: Shu-yu Guo <syg@apple.com>
|
||||
Date: Fri, 17 Apr 2026 16:10:11 -0500
|
||||
Subject: [PATCH] Cherry-pick 7cda001308f2.
|
||||
https://bugs.webkit.org/show_bug.cgi?id=306638
|
||||
|
||||
[JSC] Fix !ENABLE(JIT) build
|
||||
https://bugs.webkit.org/show_bug.cgi?id=306638
|
||||
rdar://169822205
|
||||
|
||||
Reviewed by NOBODY (OOPS!).
|
||||
|
||||
* Source/JavaScriptCore/jit/ExecutableAllocator.h:
|
||||
(JSC::performJITMemcpy):
|
||||
* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:
|
||||
* Source/JavaScriptCore/llint/LLIntData.cpp:
|
||||
(JSC::LLInt::initialize):
|
||||
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
|
||||
* Source/WTF/wtf/PlatformEnable.h:
|
||||
---
|
||||
.../JavaScriptCore/jit/ExecutableAllocator.h | 8 ++
|
||||
.../llint/InPlaceInterpreter.asm | 8 +-
|
||||
Source/JavaScriptCore/llint/LLIntData.cpp | 81 +++++++++++++++----
|
||||
Source/JavaScriptCore/wasm/WasmCallee.cpp | 18 ++++-
|
||||
Source/WTF/wtf/PlatformEnable.h | 2 +-
|
||||
5 files changed, 93 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/jit/ExecutableAllocator.h b/Source/JavaScriptCore/jit/ExecutableAllocator.h
|
||||
index 3e8efce28cfe..cb81579c8703 100644
|
||||
--- a/Source/JavaScriptCore/jit/ExecutableAllocator.h
|
||||
+++ b/Source/JavaScriptCore/jit/ExecutableAllocator.h
|
||||
@@ -390,6 +390,14 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN
|
||||
WTF_ALLOW_UNSAFE_BUFFER_USAGE_END
|
||||
}
|
||||
|
||||
+template<RepatchingInfo>
|
||||
+inline void* performJITMemcpy(void *dst, const void *src, size_t n)
|
||||
+{
|
||||
+WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN
|
||||
+ return memcpy(dst, src, n);
|
||||
+WTF_ALLOW_UNSAFE_BUFFER_USAGE_END
|
||||
+}
|
||||
+
|
||||
inline bool isJITPC(void*) { return false; }
|
||||
#endif // ENABLE(JIT)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm
|
||||
index 64db9cdb21df..dac1faa5260a 100644
|
||||
--- a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm
|
||||
+++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm
|
||||
@@ -420,7 +420,7 @@ end
|
||||
|
||||
# OSR
|
||||
macro ipintPrologueOSR(increment)
|
||||
-if JIT
|
||||
+if WEBASSEMBLY_BBQJIT
|
||||
loadp UnboxedWasmCalleeStackSlot[cfr], ws0
|
||||
baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue
|
||||
|
||||
@@ -457,11 +457,11 @@ end
|
||||
if ARMv7
|
||||
break # FIXME: ipint support.
|
||||
end # ARMv7
|
||||
-end # JIT
|
||||
+end # WEBASSEMBLY_BBQJIT
|
||||
end
|
||||
|
||||
macro ipintLoopOSR(increment)
|
||||
-if JIT and not ARMv7
|
||||
+if WEBASSEMBLY_BBQJIT and not ARMv7
|
||||
validateOpcodeConfig(ws0)
|
||||
loadp UnboxedWasmCalleeStackSlot[cfr], ws0
|
||||
baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue
|
||||
@@ -492,7 +492,7 @@ end
|
||||
end
|
||||
|
||||
macro ipintEpilogueOSR(increment)
|
||||
-if JIT and not ARMv7
|
||||
+if WEBASSEMBLY_BBQJIT and not ARMv7
|
||||
loadp UnboxedWasmCalleeStackSlot[cfr], ws0
|
||||
baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue
|
||||
|
||||
diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp
|
||||
index 5d7c88f72571..2509dc4132f3 100644
|
||||
--- a/Source/JavaScriptCore/llint/LLIntData.cpp
|
||||
+++ b/Source/JavaScriptCore/llint/LLIntData.cpp
|
||||
@@ -199,8 +199,28 @@ void initialize()
|
||||
#if CPU(ARM64E)
|
||||
|
||||
#if ENABLE(JIT_CAGE)
|
||||
- if (Options::useJITCage())
|
||||
+ if (Options::useJITCage()) {
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr();
|
||||
+#if ENABLE(WEBASSEMBLY)
|
||||
+ // JSPI JITCage gates
|
||||
+ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr();
|
||||
+ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExecuteSliceEntry)] = jspiExecuteSliceEntryThunk().code().taggedPtr();
|
||||
+ // jspiExitImplantedSlice is stored untagged because it's used as a return address
|
||||
+ // (not as a jump target) and will be signed by JITCage with the stack pointer diversifier.
|
||||
+ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExitImplantedSlice)] = jspiExitImplantedSliceThunk().code().untaggedPtr();
|
||||
+#endif // ENABLE(WEBASSEMBLY)
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+#if ENABLE(JIT)
|
||||
+#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) \
|
||||
+ if (Options::useJIT()) { \
|
||||
+ codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
|
||||
+ codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
|
||||
+ codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
|
||||
+ } else
|
||||
+#else
|
||||
+#define INITIALIZE_JS_GATE_JIT_PATH(name, tag)
|
||||
#endif
|
||||
|
||||
#define INITIALIZE_JS_GATE(name, tag) \
|
||||
@@ -208,11 +228,7 @@ void initialize()
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \
|
||||
- if (Options::useJIT()) { \
|
||||
- codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
|
||||
- codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
|
||||
- codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
|
||||
- } else { \
|
||||
+ INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \
|
||||
codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \
|
||||
codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \
|
||||
codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \
|
||||
@@ -226,16 +242,23 @@ void initialize()
|
||||
|
||||
#if ENABLE(WEBASSEMBLY)
|
||||
|
||||
+#if ENABLE(JIT)
|
||||
+#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) \
|
||||
+ if (Options::useJIT()) { \
|
||||
+ codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
|
||||
+ codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
|
||||
+ codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
|
||||
+ } else
|
||||
+#else
|
||||
+#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag)
|
||||
+#endif
|
||||
+
|
||||
#define INITIALIZE_WASM_GATE(name, tag) \
|
||||
do { \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \
|
||||
- if (Options::useJIT()) { \
|
||||
- codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
|
||||
- codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
|
||||
- codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
|
||||
- } else { \
|
||||
+ INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \
|
||||
codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
|
||||
codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
|
||||
codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
|
||||
@@ -253,10 +276,12 @@ void initialize()
|
||||
// This is key to entering the interpreter.
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT()) {
|
||||
auto gateCodeRef = createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, "vmEntryToJavaScript");
|
||||
codeRef.construct(gateCodeRef.retagged<VMEntryToJITGatePtrTag>());
|
||||
} else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<VMEntryToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, VMEntryToJITGatePtrTag>(&vmEntryToJavaScriptTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr();
|
||||
}
|
||||
@@ -268,79 +293,103 @@ void initialize()
|
||||
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(createTailCallGate(JSEntryPtrTag, true));
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntryTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(createTailCallGate(JSEntryPtrTag, true));
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntrySlowPathTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(createTailCallGate(JSEntryPtrTag, false));
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallWithoutUntagJSEntryTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(exceptionHandlerGateThunk());
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&exceptionHandlerTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr();
|
||||
}
|
||||
{
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT())
|
||||
codeRef.construct(returnFromLLIntGateThunk());
|
||||
else
|
||||
+#endif
|
||||
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&returnFromLLIntTrampoline))));
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr();
|
||||
}
|
||||
|
||||
+#if ENABLE(JIT)
|
||||
if (Options::useJIT()) {
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr();
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr();
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr();
|
||||
- } else {
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = LLInt::getCodeRef<NativeToJITGatePtrTag>(loop_osr_entry_gate).code().taggedPtr();
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = nullptr;
|
||||
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = nullptr;
|
||||
}
|
||||
|
||||
+#if ENABLE(JIT)
|
||||
+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \
|
||||
+ if (Options::useJIT()) { \
|
||||
+ tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \
|
||||
+ untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \
|
||||
+ } else
|
||||
+#else
|
||||
+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name)
|
||||
+#endif
|
||||
+
|
||||
#define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \
|
||||
do { \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> tagCodeRef; \
|
||||
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> untagCodeRef; \
|
||||
- if (Options::useJIT()) { \
|
||||
- tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \
|
||||
- untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \
|
||||
- } else { \
|
||||
+ INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \
|
||||
tagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_tag)); \
|
||||
untagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_untag)); \
|
||||
} \
|
||||
diff --git a/Source/JavaScriptCore/wasm/WasmCallee.cpp b/Source/JavaScriptCore/wasm/WasmCallee.cpp
|
||||
index 94a845ab47e4..b689f00143ab 100644
|
||||
--- a/Source/JavaScriptCore/wasm/WasmCallee.cpp
|
||||
+++ b/Source/JavaScriptCore/wasm/WasmCallee.cpp
|
||||
@@ -55,13 +55,25 @@ WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(Callee);
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JITCallee);
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmCallee);
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmToJSCallee);
|
||||
+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee);
|
||||
+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee);
|
||||
+
|
||||
+#if ENABLE(JIT)
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmICCallee);
|
||||
+#endif
|
||||
+
|
||||
+#if ENABLE(WEBASSEMBLY_BBQJIT) || ENABLE(WEBASSEMBLY_OMGJIT)
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OptimizingJITCallee);
|
||||
+#endif
|
||||
+
|
||||
+#if ENABLE(WEBASSEMBLY_BBQJIT)
|
||||
+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee);
|
||||
+#endif
|
||||
+
|
||||
+#if ENABLE(WEBASSEMBLY_OMGJIT)
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGCallee);
|
||||
WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGOSREntryCallee);
|
||||
-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee);
|
||||
-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee);
|
||||
-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee);
|
||||
+#endif
|
||||
|
||||
Callee::Callee(Wasm::CompilationMode compilationMode)
|
||||
: NativeCallee(NativeCallee::Category::Wasm, ImplementationVisibility::Private)
|
||||
diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h
|
||||
index 9c20eb45de48..1561e5ecc85a 100644
|
||||
--- a/Source/WTF/wtf/PlatformEnable.h
|
||||
+++ b/Source/WTF/wtf/PlatformEnable.h
|
||||
@@ -1006,7 +1006,7 @@
|
||||
#define ENABLE_JIT_OPERATION_DISASSEMBLY 1
|
||||
#endif
|
||||
|
||||
-#if CPU(ARM64E)
|
||||
+#if CPU(ARM64E) && ENABLE(JIT)
|
||||
#define ENABLE_JIT_SIGN_ASSEMBLER_BUFFER 1
|
||||
#endif
|
||||
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -1,8 +1,17 @@
|
||||
From 699439119b1bd70de9e4180f2e8e6e32dd794669 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@gnome.org>
|
||||
Date: Mon, 6 Apr 2026 13:32:19 -0500
|
||||
Subject: [PATCH] Suppress WEBKIT_FORCE_SANDBOX warning when using Evolution
|
||||
|
||||
---
|
||||
Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
||||
index a2f3b582dcc5..1faf219c2adb 100644
|
||||
index 329dbe6a0281..80b9609a47be 100644
|
||||
--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
||||
+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
||||
@@ -91,7 +91,8 @@ void WebProcessPool::platformInitialize(NeedsGlobalStaticInitialization)
|
||||
@@ -154,7 +154,8 @@ void WebProcessPool::platformInitialize(NeedsGlobalStaticInitialization)
|
||||
else {
|
||||
static bool once = false;
|
||||
if (!once) {
|
||||
@ -12,3 +21,6 @@ index a2f3b582dcc5..1faf219c2adb 100644
|
||||
once = true;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
||||
28
SOURCES/g-ir-scanner-nonfatal.patch
Normal file
28
SOURCES/g-ir-scanner-nonfatal.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 1d1143a6f00fae1d1812da3dcdd489c71154d529 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@gnome.org>
|
||||
Date: Mon, 6 Apr 2026 18:05:37 -0500
|
||||
Subject: [PATCH] Make g-ir-scanner warnings nonfatal
|
||||
|
||||
Otherwise, the build fails whenever it sees an unrecognized annotation,
|
||||
which is not great whenever WebKit starts using new annotations that do
|
||||
not exist in old RHELs.
|
||||
---
|
||||
Source/cmake/FindGI.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
|
||||
index 8cf372f3b172..cb724a418020 100644
|
||||
--- a/Source/cmake/FindGI.cmake
|
||||
+++ b/Source/cmake/FindGI.cmake
|
||||
@@ -342,7 +342,7 @@ function(GI_INTROSPECT namespace nsversion header)
|
||||
VERBATIM
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS}"
|
||||
- "${GI_SCANNER_EXE}" --quiet --warn-all --warn-error --no-libtool
|
||||
+ "${GI_SCANNER_EXE}" --quiet --warn-all --no-libtool
|
||||
"--output=${gir_path}"
|
||||
"--library=$<TARGET_FILE_BASE_NAME:${opt_TARGET}>"
|
||||
"--library-path=$<TARGET_FILE_DIR:${opt_TARGET}>"
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -1,12 +1,22 @@
|
||||
From d7b007e4c066c098216ebe900902994c99ab9f9a Mon Sep 17 00:00:00 2001
|
||||
From e9eb6e9b59fbb92ff30ec88b9a3ff2bd7857c23a Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Fri, 8 Aug 2025 10:55:54 -0500
|
||||
Subject: [PATCH] Revert "[GLib] Remove all GLIB_CHECK_VERSION conditionals"
|
||||
|
||||
This partially reverts commit 85b637b69f1c3a6242420b198d1c173477ce0f22.
|
||||
---
|
||||
Source/WTF/wtf/URL.h | 4 ++--
|
||||
Source/WTF/wtf/glib/GRefPtr.h | 2 ++
|
||||
Source/WTF/wtf/glib/URLGLib.cpp | 2 ++
|
||||
Source/WebCore/platform/LowPowerModeNotifier.h | 2 ++
|
||||
Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp | 8 ++++++++
|
||||
.../WebCore/platform/network/soup/CertificateInfoSoup.cpp | 8 ++++++++
|
||||
Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp | 6 ++++++
|
||||
Source/cmake/OptionsGTK.cmake | 8 ++++++--
|
||||
8 files changed, 36 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Source/WTF/wtf/URL.h b/Source/WTF/wtf/URL.h
|
||||
index daa9f726eb0c..a24c68e1934b 100644
|
||||
index 677314b5c781..f739e6df4892 100644
|
||||
--- a/Source/WTF/wtf/URL.h
|
||||
+++ b/Source/WTF/wtf/URL.h
|
||||
@@ -27,7 +27,7 @@
|
||||
@ -28,10 +38,10 @@ index daa9f726eb0c..a24c68e1934b 100644
|
||||
WTF_EXPORT_PRIVATE GRefPtr<GUri> createGUri() const;
|
||||
#endif
|
||||
diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h
|
||||
index e4cf3bd45104..9729d6709376 100644
|
||||
index 46d25f00cc69..d3a764808a6f 100644
|
||||
--- a/Source/WTF/wtf/glib/GRefPtr.h
|
||||
+++ b/Source/WTF/wtf/glib/GRefPtr.h
|
||||
@@ -328,7 +328,9 @@ WTF_DEFINE_GREF_TRAITS_INLINE(GMainLoop, g_main_loop_ref, g_main_loop_unref)
|
||||
@@ -329,7 +329,9 @@ WTF_DEFINE_GREF_TRAITS_INLINE(GMainLoop, g_main_loop_ref, g_main_loop_unref)
|
||||
WTF_DEFINE_GREF_TRAITS_INLINE(GMappedFile, g_mapped_file_ref, g_mapped_file_unref)
|
||||
WTF_DEFINE_GREF_TRAITS_INLINE(GPtrArray, g_ptr_array_ref, g_ptr_array_unref)
|
||||
WTF_DEFINE_GREF_TRAITS_INLINE(GSource, g_source_ref, g_source_unref)
|
||||
@ -77,7 +87,7 @@ index c8f2051d77f6..e2ea0dae3292 100644
|
||||
#endif
|
||||
};
|
||||
diff --git a/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp b/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
|
||||
index e083cc66934e..7c0f55d089e6 100644
|
||||
index c9bf6a774f49..546a974075c6 100644
|
||||
--- a/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
|
||||
+++ b/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
|
||||
@@ -28,10 +28,13 @@ namespace WebCore {
|
||||
@ -85,7 +95,7 @@ index e083cc66934e..7c0f55d089e6 100644
|
||||
|
||||
LowPowerModeNotifier::LowPowerModeNotifier(LowPowerModeChangeCallback&& callback)
|
||||
+#if GLIB_CHECK_VERSION(2, 69, 1)
|
||||
: m_callback(WTFMove(callback))
|
||||
: m_callback(WTF::move(callback))
|
||||
, m_powerProfileMonitor(adoptGRef(g_power_profile_monitor_dup_default()))
|
||||
, m_lowPowerModeEnabled(g_power_profile_monitor_get_power_saver_enabled(m_powerProfileMonitor.get()))
|
||||
+#endif
|
||||
@ -112,7 +122,7 @@ index e083cc66934e..7c0f55d089e6 100644
|
||||
|
||||
bool LowPowerModeNotifier::isLowPowerModeEnabled() const
|
||||
diff --git a/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp b/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
|
||||
index f32ecca7a300..e81a5433709d 100644
|
||||
index fb5773d56767..bc10fda05f78 100644
|
||||
--- a/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
|
||||
+++ b/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
|
||||
@@ -73,9 +73,11 @@ CertificateInfo CertificateInfo::isolatedCopy() const
|
||||
@ -157,7 +167,7 @@ index f32ecca7a300..e81a5433709d 100644
|
||||
|
||||
} // namespace WebCore
|
||||
diff --git a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
|
||||
index a9ee8507c28a..eae6ab798c8f 100644
|
||||
index 6112a107f99a..b569c48de5ba 100644
|
||||
--- a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
|
||||
+++ b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
|
||||
@@ -121,11 +121,13 @@ void ArgumentCoder<GRefPtr<GTlsCertificate>>::encode(Encoder& encoder, const GRe
|
||||
@ -202,33 +212,20 @@ index a9ee8507c28a..eae6ab798c8f 100644
|
||||
issuer = certificate.get();
|
||||
i++;
|
||||
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
|
||||
index 5222f5ea81ab..da3d1e19a602 100644
|
||||
index a5ebd3e3d879..11227320f60b 100644
|
||||
--- a/Source/cmake/OptionsGTK.cmake
|
||||
+++ b/Source/cmake/OptionsGTK.cmake
|
||||
@@ -7,8 +7,6 @@ SET_PROJECT_VERSION(2 50 0)
|
||||
@@ -7,8 +7,7 @@ SET_PROJECT_VERSION(2 52 3)
|
||||
|
||||
set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
|
||||
|
||||
-# Update Source/WTF/wtf/Platform.h to match required GLib versions.
|
||||
-find_package(GLIB 2.70.0 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
|
||||
-find_package(GLib 2.70.0 REQUIRED COMPONENTS GioUnix Thread Module)
|
||||
+find_package(GLib 2.56.4 REQUIRED COMPONENTS GioUnix Thread Module)
|
||||
find_package(Cairo 1.16.0 REQUIRED)
|
||||
find_package(LibGcrypt 1.7.0 REQUIRED)
|
||||
find_package(Libtasn1 REQUIRED)
|
||||
@@ -207,6 +205,13 @@ else ()
|
||||
SET_AND_EXPOSE_TO_BUILD(ENABLE_2022_GLIB_API OFF)
|
||||
endif ()
|
||||
|
||||
+if (ENABLE_2022_GLIB_API)
|
||||
+ set(GLIB_MINIMUM_VERSION 2.70.0)
|
||||
+else ()
|
||||
+ set(GLIB_MINIMUM_VERSION 2.56.4)
|
||||
+endif ()
|
||||
+find_package(GLIB ${GLIB_MINIMUM_VERSION} REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
|
||||
+
|
||||
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_INFIX)
|
||||
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION)
|
||||
|
||||
@@ -277,6 +282,11 @@ if (ENABLED_COMPILER_SANITIZERS)
|
||||
find_package(Soup3 3.0.0 REQUIRED)
|
||||
@@ -258,6 +257,11 @@ if (ENABLED_COMPILER_SANITIZERS)
|
||||
set(ENABLE_DOCUMENTATION OFF)
|
||||
endif ()
|
||||
|
||||
@ -241,5 +238,5 @@ index 5222f5ea81ab..da3d1e19a602 100644
|
||||
find_package(Manette 0.2.4)
|
||||
if (NOT Manette_FOUND)
|
||||
--
|
||||
2.51.0
|
||||
2.53.0
|
||||
|
||||
|
||||
@ -1,24 +1,22 @@
|
||||
From a70af9258c7608afd5d05a475e65dd9c2b8a34dc Mon Sep 17 00:00:00 2001
|
||||
From 5d71fb5d4d39f1cbd8d5393ccaaf4a81b0048331 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Thu, 27 Mar 2025 15:56:41 -0500
|
||||
Subject: [PATCH 1/4] Revert "[CMake] Update minimum ICU version to 70.1"
|
||||
|
||||
This reverts commit 95d71be25d5b838b1171e6b9b2cd526190118fba.
|
||||
---
|
||||
Source/cmake/OptionsGTK.cmake | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
Source/cmake/OptionsGTK.cmake | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
|
||||
index da3d1e19a602..7dc96b5bd53b 100644
|
||||
index 6d92a94ec9f0..60d14235789a 100644
|
||||
--- a/Source/cmake/OptionsGTK.cmake
|
||||
+++ b/Source/cmake/OptionsGTK.cmake
|
||||
@@ -10,11 +10,11 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
|
||||
find_package(Cairo 1.16.0 REQUIRED)
|
||||
@@ -12,10 +12,10 @@ find_package(Cairo 1.16.0 REQUIRED)
|
||||
find_package(LibGcrypt 1.7.0 REQUIRED)
|
||||
find_package(Libtasn1 REQUIRED)
|
||||
-find_package(HarfBuzz 2.7.4 REQUIRED COMPONENTS ICU)
|
||||
find_package(Tasn1 REQUIRED)
|
||||
find_package(HarfBuzz 2.7.4 REQUIRED COMPONENTS ICU)
|
||||
-find_package(ICU 70.1 REQUIRED COMPONENTS data i18n uc)
|
||||
+find_package(HarfBuzz 1.4.2 REQUIRED COMPONENTS ICU)
|
||||
+find_package(ICU 61.2 REQUIRED COMPONENTS data i18n uc)
|
||||
find_package(JPEG REQUIRED)
|
||||
find_package(Epoxy 1.5.4 REQUIRED)
|
||||
@ -28,10 +26,10 @@ index da3d1e19a602..7dc96b5bd53b 100644
|
||||
find_package(SQLite3 REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
--
|
||||
2.51.0
|
||||
2.53.0
|
||||
|
||||
|
||||
From 27948d5683ad0cfa88b6858455f0c8c719d6b9e9 Mon Sep 17 00:00:00 2001
|
||||
From 1633835edcaaade6d8e76582bce3d84f4fb3743a Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Fri, 28 Mar 2025 14:45:03 -0500
|
||||
Subject: [PATCH 2/4] Revert "[JSC] Remove unnecessary ICU version checks"
|
||||
@ -44,7 +42,7 @@ This reverts commit af62f09a1fad0b72293a7f0d082704d92116cb9a.
|
||||
3 files changed, 47 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
index 9bf431425007..17c5b1b848d7 100644
|
||||
index 7be0a6a2b047..d87992a36119 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
@@ -457,7 +457,7 @@ static Vector<Element> collectElements(JSGlobalObject* globalObject, const IntlD
|
||||
@ -57,10 +55,10 @@ index 9bf431425007..17c5b1b848d7 100644
|
||||
skeletonBuilder.append("00"_s);
|
||||
else
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
index b05c7813294c..c16e6bcee859 100644
|
||||
index a1b08f5470ed..f34684cf7fcf 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
@@ -496,10 +496,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
@@ -503,10 +503,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
skeletonBuilder.append(" sign-except-zero"_s);
|
||||
break;
|
||||
case SignDisplay::Negative:
|
||||
@ -80,10 +78,10 @@ index b05c7813294c..c16e6bcee859 100644
|
||||
}
|
||||
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
|
||||
index c640b73cc891..e678978e453d 100644
|
||||
index 8f8444163fc4..81b7c3322fcb 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
|
||||
@@ -200,12 +200,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
@@ -201,12 +201,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
case RoundingMode::Trunc:
|
||||
skeletonBuilder.append(" rounding-mode-down"_s);
|
||||
break;
|
||||
@ -112,7 +110,7 @@ index c640b73cc891..e678978e453d 100644
|
||||
case RoundingMode::HalfExpand:
|
||||
skeletonBuilder.append(" rounding-mode-half-up"_s);
|
||||
break;
|
||||
@@ -218,7 +230,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
@@ -219,7 +231,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
}
|
||||
|
||||
// https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#integer-width
|
||||
@ -121,7 +119,7 @@ index c640b73cc891..e678978e453d 100644
|
||||
for (unsigned i = 0; i < intlInstance->m_minimumIntegerDigits; ++i)
|
||||
skeletonBuilder.append('0');
|
||||
|
||||
@@ -256,19 +268,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
@@ -257,19 +269,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
}
|
||||
case IntlRoundingType::MorePrecision:
|
||||
case IntlRoundingType::LessPrecision:
|
||||
@ -158,7 +156,7 @@ index c640b73cc891..e678978e453d 100644
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -279,7 +295,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
@@ -280,7 +296,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
|
||||
case IntlTrailingZeroDisplay::Auto:
|
||||
break;
|
||||
case IntlTrailingZeroDisplay::StripIfInteger:
|
||||
@ -171,21 +169,21 @@ index c640b73cc891..e678978e453d 100644
|
||||
}
|
||||
}
|
||||
--
|
||||
2.51.0
|
||||
2.53.0
|
||||
|
||||
|
||||
From b6447cd0b4ff59c8d2095ad0d6079e4d19dcf052 Mon Sep 17 00:00:00 2001
|
||||
From 99366b4de20bd0046558e2eacda6dbb69442de01 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Fri, 28 Mar 2025 15:01:00 -0500
|
||||
Subject: [PATCH 3/4] Revert "[JSC] TimeZone Cache should be per-process level"
|
||||
|
||||
This reverts commit c779aa30eced87609c7c808d672a8f23c5c4821d.
|
||||
---
|
||||
Source/JavaScriptCore/runtime/JSDateMath.cpp | 61 +++++++-------------
|
||||
1 file changed, 21 insertions(+), 40 deletions(-)
|
||||
Source/JavaScriptCore/runtime/JSDateMath.cpp | 59 +++++++-------------
|
||||
1 file changed, 20 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
index 96993af52d33..a269eb1d3736 100644
|
||||
index 1bcd8fab40ea..3f28081543f8 100644
|
||||
--- a/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
@@ -453,12 +453,9 @@ String DateCache::timeZoneDisplayName(bool isDST)
|
||||
@ -234,7 +232,7 @@ index 96993af52d33..a269eb1d3736 100644
|
||||
- if (canonical.isNull() || isUTCEquivalent(canonical))
|
||||
- canonical = "UTC"_s;
|
||||
-
|
||||
- globalCache.get() = std::tuple { canonical.isolatedCopy(), WTFMove(timeZoneID), currentID };
|
||||
- globalCache.get() = std::tuple { canonical.isolatedCopy(), WTF::move(timeZoneID), currentID };
|
||||
- }
|
||||
- return std::tuple { std::get<0>(globalCache.get()).isolatedCopy(), std::get<1>(globalCache.get()) };
|
||||
-}
|
||||
@ -242,7 +240,7 @@ index 96993af52d33..a269eb1d3736 100644
|
||||
DateCache::~DateCache() = default;
|
||||
|
||||
Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromEpoch)
|
||||
@@ -519,11 +482,29 @@ Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromE
|
||||
@@ -519,10 +482,28 @@ Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromE
|
||||
void DateCache::timeZoneCacheSlow()
|
||||
{
|
||||
ASSERT(!m_timeZoneCache);
|
||||
@ -251,35 +249,33 @@ index 96993af52d33..a269eb1d3736 100644
|
||||
+ Vector<UChar, 32> timeZoneID;
|
||||
+ getTimeZoneOverride(timeZoneID);
|
||||
auto* cache = new OpaqueICUTimeZone;
|
||||
- cache->m_canonicalTimeZoneID = WTFMove(canonical);
|
||||
- cache->m_canonicalTimeZoneID = WTF::move(canonical);
|
||||
+
|
||||
+ String canonical;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
- cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.span().data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
|
||||
+ if (timeZoneID.isEmpty()) {
|
||||
+ status = callBufferProducingFunction(ucal_getHostTimeZone, timeZoneID);
|
||||
+ ASSERT_UNUSED(status, U_SUCCESS(status));
|
||||
+ }
|
||||
+ if (U_SUCCESS(status)) {
|
||||
+ Vector<UChar, 32> canonicalBuffer;
|
||||
+ auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.data(), timeZoneID.size(), canonicalBuffer, nullptr);
|
||||
+ auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.span().data(), timeZoneID.size(), canonicalBuffer, nullptr);
|
||||
+ if (U_SUCCESS(status))
|
||||
+ canonical = String(canonicalBuffer);
|
||||
+ }
|
||||
+ if (canonical.isNull() || isUTCEquivalent(canonical))
|
||||
+ canonical = "UTC"_s;
|
||||
+ cache->m_canonicalTimeZoneID = WTFMove(canonical);
|
||||
+ cache->m_canonicalTimeZoneID = WTF::move(canonical);
|
||||
+
|
||||
+ status = U_ZERO_ERROR;
|
||||
+ cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
|
||||
cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.span().data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
|
||||
ASSERT_UNUSED(status, U_SUCCESS(status));
|
||||
ucal_setGregorianChange(cache->m_calendar.get(), minECMAScriptTime, &status); // Ignore "unsupported" error.
|
||||
m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(cache);
|
||||
--
|
||||
2.51.0
|
||||
2.53.0
|
||||
|
||||
|
||||
From dda58836d1af2918a32d80d2ef44e8a13d70edb2 Mon Sep 17 00:00:00 2001
|
||||
From 8cb673fafaf841ad97b366d183f86954a056c45e Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Fri, 19 Sep 2025 16:25:13 -0500
|
||||
Subject: [PATCH 4/4] Revert "[JSC] Rebaseline Intl implementation based on
|
||||
@ -306,7 +302,7 @@ This reverts commit 31a358087be7e5e70c7a03bdfcf89de35628a2a2.
|
||||
16 files changed, 478 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
|
||||
index 202e266c55da..9a413dc037a7 100644
|
||||
index 4eb85711f506..6cdc4507acd3 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
|
||||
@@ -42,12 +42,16 @@
|
||||
@ -326,7 +322,7 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
|
||||
WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN
|
||||
|
||||
@@ -1430,6 +1434,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG
|
||||
@@ -1453,6 +1457,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG
|
||||
return m_dateIntervalFormat.get();
|
||||
}
|
||||
|
||||
@ -335,7 +331,7 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
static std::unique_ptr<UFormattedDateInterval, ICUDeleter<udtitvfmt_closeResult>> formattedValueFromDateRange(UDateIntervalFormat& dateIntervalFormat, UDateFormat& dateFormat, double startDate, double endDate, UErrorCode& status)
|
||||
{
|
||||
auto result = std::unique_ptr<UFormattedDateInterval, ICUDeleter<udtitvfmt_closeResult>>(udtitvfmt_openResult(&status));
|
||||
@@ -1508,6 +1514,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE
|
||||
@@ -1531,6 +1537,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE
|
||||
return !hasSpan;
|
||||
}
|
||||
|
||||
@ -344,7 +340,7 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double startDate, double endDate)
|
||||
{
|
||||
ASSERT(m_dateFormat);
|
||||
@@ -1526,6 +1534,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
|
||||
@@ -1549,6 +1557,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
|
||||
auto* dateIntervalFormat = createDateIntervalFormatIfNecessary(globalObject);
|
||||
RETURN_IF_EXCEPTION(scope, { });
|
||||
|
||||
@ -352,10 +348,10 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
auto result = formattedValueFromDateRange(*dateIntervalFormat, *m_dateFormat, startDate, endDate, status);
|
||||
if (U_FAILURE(status)) {
|
||||
@@ -1563,6 +1572,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
|
||||
@@ -1586,6 +1595,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
|
||||
replaceNarrowNoBreakSpaceOrThinSpaceWithNormalSpace(buffer);
|
||||
|
||||
return jsString(vm, String(WTFMove(buffer)));
|
||||
return jsString(vm, String(WTF::move(buffer)));
|
||||
+#else
|
||||
+ Vector<UChar, 32> buffer;
|
||||
+ auto status = callBufferProducingFunction(udtitvfmt_format, dateIntervalFormat, startDate, endDate, buffer, nullptr);
|
||||
@ -365,12 +361,12 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
+ }
|
||||
+ replaceNarrowNoBreakSpaceOrThinSpaceWithNormalSpace(buffer);
|
||||
+
|
||||
+ return jsString(vm, String(WTFMove(buffer)));
|
||||
+ return jsString(vm, String(wtf::move(buffer)));
|
||||
+#endif
|
||||
}
|
||||
|
||||
JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, double startDate, double endDate)
|
||||
@@ -1572,6 +1592,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
|
||||
@@ -1595,6 +1615,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
|
||||
VM& vm = globalObject->vm();
|
||||
auto scope = DECLARE_THROW_SCOPE(vm);
|
||||
|
||||
@ -378,7 +374,7 @@ index 202e266c55da..9a413dc037a7 100644
|
||||
// http://tc39.es/proposal-intl-DateTimeFormat-formatRange/#sec-partitiondatetimerangepattern
|
||||
startDate = timeClip(startDate);
|
||||
endDate = timeClip(endDate);
|
||||
@@ -1775,6 +1796,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
|
||||
@@ -1798,6 +1819,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
|
||||
}
|
||||
|
||||
return parts;
|
||||
@ -434,7 +430,7 @@ index 7a739f61e2c1..da457ad03212 100644
|
||||
}
|
||||
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
index 17c5b1b848d7..c066e80ab130 100644
|
||||
index d87992a36119..ba46191c620f 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
|
||||
@@ -36,14 +36,21 @@
|
||||
@ -496,13 +492,13 @@ index 17c5b1b848d7..c066e80ab130 100644
|
||||
auto scope = DECLARE_THROW_SCOPE(vm);
|
||||
|
||||
+#if HAVE(ICU_U_LIST_FORMATTER)
|
||||
auto elements = collectElements(globalObject, this, WTFMove(duration));
|
||||
auto elements = collectElements(globalObject, this, WTF::move(duration));
|
||||
RETURN_IF_EXCEPTION(scope, { });
|
||||
|
||||
@@ -676,6 +694,10 @@ JSValue IntlDurationFormat::format(JSGlobalObject* globalObject, ISO8601::Durati
|
||||
return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
|
||||
|
||||
return jsString(vm, String(WTFMove(result)));
|
||||
return jsString(vm, String(WTF::move(result)));
|
||||
+#else
|
||||
+ UNUSED_PARAM(duration);
|
||||
+ return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
|
||||
@ -515,7 +511,7 @@ index 17c5b1b848d7..c066e80ab130 100644
|
||||
auto scope = DECLARE_THROW_SCOPE(vm);
|
||||
|
||||
+#if HAVE(ICU_U_LIST_FORMATTER)
|
||||
auto elements = collectElements(globalObject, this, WTFMove(duration));
|
||||
auto elements = collectElements(globalObject, this, WTF::move(duration));
|
||||
RETURN_IF_EXCEPTION(scope, { });
|
||||
|
||||
@@ -836,6 +859,10 @@ JSValue IntlDurationFormat::formatToParts(JSGlobalObject* globalObject, ISO8601:
|
||||
@ -544,7 +540,7 @@ index 69e64f9c8332..b3f781a54ad4 100644
|
||||
String m_numberingSystem;
|
||||
CString m_dataLocaleWithExtensions;
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlListFormat.cpp b/Source/JavaScriptCore/runtime/IntlListFormat.cpp
|
||||
index 8bc64220a7c7..c24073ce3171 100644
|
||||
index bcaa44af1fbd..b565a532cb0e 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlListFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlListFormat.cpp
|
||||
@@ -33,12 +33,19 @@
|
||||
@ -608,7 +604,7 @@ index 8bc64220a7c7..c24073ce3171 100644
|
||||
@@ -176,6 +191,10 @@ JSValue IntlListFormat::format(JSGlobalObject* globalObject, JSValue list) const
|
||||
return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
|
||||
|
||||
return jsString(vm, String(WTFMove(result)));
|
||||
return jsString(vm, String(WTF::move(result)));
|
||||
+#else
|
||||
+ UNUSED_PARAM(list);
|
||||
+ return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
|
||||
@ -653,7 +649,7 @@ index 2d071949e06f..af6f2c2e7b0a 100644
|
||||
|
||||
namespace JSC {
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
index c16e6bcee859..1fc664fab1e5 100644
|
||||
index f34684cf7fcf..e5c9f5850e46 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
|
||||
@@ -43,8 +43,12 @@
|
||||
@ -720,7 +716,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
// These should not show up because there is no way to specify them in NumberFormat options.
|
||||
// If they do, they don't fit well into any of known part types, so consider it an "unknown".
|
||||
case UNUM_PERMILL_FIELD:
|
||||
@@ -399,6 +411,7 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
@@ -406,6 +418,7 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
|
||||
// Options are obtained. Configure formatter here.
|
||||
|
||||
@ -728,7 +724,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
// Constructing ICU Number Skeletons to configure UNumberFormatter.
|
||||
// https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md
|
||||
|
||||
@@ -536,11 +549,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
@@ -543,11 +556,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
|
||||
return;
|
||||
}
|
||||
|
||||
@ -849,7 +845,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
}
|
||||
|
||||
// https://tc39.es/ecma402/#sec-formatnumber
|
||||
@@ -552,6 +674,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
|
||||
@@ -559,6 +681,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
|
||||
value = purifyNaN(value);
|
||||
|
||||
Vector<char16_t, 32> buffer;
|
||||
@ -857,7 +853,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
ASSERT(m_numberFormatter);
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
|
||||
@@ -563,6 +686,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
|
||||
@@ -570,6 +693,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
|
||||
status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer);
|
||||
if (U_FAILURE(status))
|
||||
return throwTypeError(globalObject, scope, "Failed to format a number."_s);
|
||||
@ -867,10 +863,10 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
+ if (U_FAILURE(status))
|
||||
+ return throwTypeError(globalObject, scope, "Failed to format a number."_s);
|
||||
+#endif
|
||||
return jsString(vm, String(WTFMove(buffer)));
|
||||
return jsString(vm, String(WTF::move(buffer)));
|
||||
}
|
||||
|
||||
@@ -576,6 +705,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
|
||||
@@ -583,6 +712,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
|
||||
const auto& string = value.getString();
|
||||
|
||||
Vector<char16_t, 32> buffer;
|
||||
@ -878,7 +874,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
ASSERT(m_numberFormatter);
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
|
||||
@@ -587,9 +717,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
|
||||
@@ -594,9 +724,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
|
||||
status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer);
|
||||
if (U_FAILURE(status))
|
||||
return throwTypeError(globalObject, scope, "Failed to format a BigInt."_s);
|
||||
@ -888,14 +884,14 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
+ if (U_FAILURE(status))
|
||||
+ return throwTypeError(globalObject, scope, "Failed to format a BigInt."_s);
|
||||
+#endif
|
||||
return jsString(vm, String(WTFMove(buffer)));
|
||||
return jsString(vm, String(WTF::move(buffer)));
|
||||
}
|
||||
|
||||
+#if HAVE(ICU_U_NUMBER_RANGE_FORMATTER)
|
||||
JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, double start, double end) const
|
||||
{
|
||||
VM& vm = globalObject->vm();
|
||||
@@ -657,6 +794,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat
|
||||
@@ -664,6 +801,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat
|
||||
|
||||
return jsString(vm, String({ string, static_cast<size_t>(length) }));
|
||||
}
|
||||
@ -903,7 +899,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
|
||||
static constexpr int32_t literalField = -1;
|
||||
struct IntlNumberFormatField {
|
||||
@@ -769,6 +907,7 @@ static Vector<IntlNumberFormatField> flattenFields(Vector<IntlNumberFormatField>
|
||||
@@ -776,6 +914,7 @@ static Vector<IntlNumberFormatField> flattenFields(Vector<IntlNumberFormatField>
|
||||
return flatten;
|
||||
}
|
||||
|
||||
@ -911,7 +907,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
static bool numberFieldsPracticallyEqual(const UFormattedValue* formattedValue, UErrorCode& status)
|
||||
{
|
||||
auto iterator = std::unique_ptr<UConstrainedFieldPosition, ICUDeleter<ucfpos_close>>(ucfpos_open(&status));
|
||||
@@ -1010,6 +1149,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM
|
||||
@@ -1017,6 +1156,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM
|
||||
|
||||
return parts;
|
||||
}
|
||||
@ -919,7 +915,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
|
||||
ASCIILiteral IntlNumberFormat::styleString(Style style)
|
||||
{
|
||||
@@ -1307,6 +1447,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
@@ -1314,6 +1454,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
return throwTypeError(globalObject, scope, "failed to open field position iterator"_s);
|
||||
|
||||
Vector<char16_t, 32> result;
|
||||
@ -927,7 +923,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
ASSERT(m_numberFormatter);
|
||||
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
|
||||
if (U_FAILURE(status))
|
||||
@@ -1321,6 +1462,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
@@ -1328,6 +1469,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
if (U_FAILURE(status))
|
||||
return throwTypeError(globalObject, scope, "Failed to format a number."_s);
|
||||
IntlFieldIterator iterator(*fieldItr.get());
|
||||
@ -939,9 +935,9 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
+ IntlFieldIterator iterator(*fieldItr.get());
|
||||
+#endif
|
||||
|
||||
auto resultString = String(WTFMove(result));
|
||||
auto resultString = String(WTF::move(result));
|
||||
|
||||
@@ -1334,6 +1482,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
@@ -1341,6 +1489,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
|
||||
return parts;
|
||||
}
|
||||
|
||||
@ -949,7 +945,7 @@ index c16e6bcee859..1fc664fab1e5 100644
|
||||
JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathematicalValue&& value, JSString* sourceType) const
|
||||
{
|
||||
VM& vm = globalObject->vm();
|
||||
@@ -1378,6 +1527,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem
|
||||
@@ -1385,6 +1534,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem
|
||||
|
||||
return parts;
|
||||
}
|
||||
@ -1042,7 +1038,7 @@ index 65a6795b013f..29d197e462fb 100644
|
||||
String m_locale;
|
||||
String m_numberingSystem;
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
|
||||
index d951aa27c715..4e3615ba7242 100644
|
||||
index 23ea9bf1ce04..92e9dcad1127 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
|
||||
@@ -35,12 +35,18 @@
|
||||
@ -1104,7 +1100,7 @@ index d951aa27c715..4e3615ba7242 100644
|
||||
VM& vm = globalObject->vm();
|
||||
@@ -163,6 +174,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatRange, (JSGlobalObje
|
||||
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRange(globalObject, WTFMove(start), WTFMove(end))));
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRange(globalObject, WTF::move(start), WTF::move(end))));
|
||||
}
|
||||
+#endif
|
||||
|
||||
@ -1121,7 +1117,7 @@ index d951aa27c715..4e3615ba7242 100644
|
||||
@@ -184,8 +197,15 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts, (JSGlobalOb
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, number.value())));
|
||||
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, WTFMove(value))));
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, WTF::move(value))));
|
||||
+#else
|
||||
+ double value = callFrame->argument(0).toNumber(globalObject);
|
||||
+ RETURN_IF_EXCEPTION(scope, { });
|
||||
@ -1136,14 +1132,14 @@ index d951aa27c715..4e3615ba7242 100644
|
||||
VM& vm = globalObject->vm();
|
||||
@@ -215,6 +235,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatRangeToParts, (JSGlo
|
||||
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRangeToParts(globalObject, WTFMove(start), WTFMove(end))));
|
||||
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRangeToParts(globalObject, WTF::move(start), WTF::move(end))));
|
||||
}
|
||||
+#endif
|
||||
|
||||
JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncResolvedOptions, (JSGlobalObject* globalObject, CallFrame* callFrame))
|
||||
{
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlObject.cpp b/Source/JavaScriptCore/runtime/IntlObject.cpp
|
||||
index 8ef1ee678063..f8413f12dec7 100644
|
||||
index a79aba3e7717..899ea323a08a 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlObject.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlObject.cpp
|
||||
@@ -169,8 +169,6 @@ namespace JSC {
|
||||
@ -1170,7 +1166,7 @@ index 8ef1ee678063..f8413f12dec7 100644
|
||||
|
||||
Structure* IntlObject::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
|
||||
diff --git a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
|
||||
index b3e58fc6453f..c451478086f7 100644
|
||||
index 54feb0061675..884bd1c96e4e 100644
|
||||
--- a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
|
||||
@@ -36,8 +36,12 @@
|
||||
@ -1242,7 +1238,7 @@ index b3e58fc6453f..c451478086f7 100644
|
||||
@@ -245,8 +276,17 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons
|
||||
if (U_FAILURE(status))
|
||||
return throwTypeError(globalObject, scope, "failed to select plural value"_s);
|
||||
return jsString(vm, String(WTFMove(buffer)));
|
||||
return jsString(vm, String(WTF::move(buffer)));
|
||||
+#else
|
||||
+ Vector<UChar, 8> result(8);
|
||||
+ auto length = uplrules_selectWithFormat(m_pluralRules.get(), value, m_numberFormat.get(), result.data(), result.size(), &status);
|
||||
@ -1259,7 +1255,7 @@ index b3e58fc6453f..c451478086f7 100644
|
||||
ASSERT(m_numberRangeFormatter);
|
||||
@@ -272,5 +312,6 @@ JSValue IntlPluralRules::selectRange(JSGlobalObject* globalObject, double start,
|
||||
return throwTypeError(globalObject, scope, "failed to select plural value"_s);
|
||||
return jsString(vm, String(WTFMove(buffer)));
|
||||
return jsString(vm, String(WTF::move(buffer)));
|
||||
}
|
||||
+#endif
|
||||
|
||||
@ -1379,7 +1375,7 @@ index c6c1fa0cd228..85d7e85469a7 100644
|
||||
|
||||
} // namespace JSC
|
||||
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
index a269eb1d3736..a58abd12197a 100644
|
||||
index 3f28081543f8..ff26051bf502 100644
|
||||
--- a/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp
|
||||
@@ -81,11 +81,24 @@
|
||||
@ -1509,7 +1505,7 @@ index a269eb1d3736..a58abd12197a 100644
|
||||
{
|
||||
@@ -447,6 +513,21 @@ String DateCache::timeZoneDisplayName(bool isDST)
|
||||
if (U_SUCCESS(status))
|
||||
m_timeZoneDSTDisplayNameCache = String::adopt(WTFMove(dstDisplayNameBuffer));
|
||||
m_timeZoneDSTDisplayNameCache = String::adopt(WTF::move(dstDisplayNameBuffer));
|
||||
}
|
||||
+#else
|
||||
+ auto& timeZoneCache = *toICUTimeZone(this->timeZoneCache());
|
||||
@ -1553,5 +1549,5 @@ index a269eb1d3736..a58abd12197a 100644
|
||||
|
||||
void DateCache::resetIfNecessarySlow()
|
||||
--
|
||||
2.51.0
|
||||
2.53.0
|
||||
|
||||
|
||||
3178
SOURCES/libsoup2.patch
Normal file
3178
SOURCES/libsoup2.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmlBXggACgkQbBAJtpOX
|
||||
U5NxbQ//dZodv6dQ3WRUTgorM7pHee7jHLZXyezL7qRuUvHKSKKKtZd6AnA/jhV9
|
||||
J7qRh+5oCdVmZeXNoEgpw4H7eiatHAV8nlM5BYLU8Q0aubxr5IyGQjWarGEbcBSV
|
||||
DD5r3tR0yywqoUR+uWNDMLOC0jFwvMKusmHZ36rWN28hW192lo8EvhFVza1Jwgnt
|
||||
PTOvaV32ZVXsLr//WNpBhcxEOWPYIgQW4btAAdFsyWigi8USqwMan0Anc0ok6CdP
|
||||
r8BNsyYFHl3y/Kx74lsvdLC3nFF21BORjODaHp98FPSwjqnfK5fbhMSLhhuR172J
|
||||
AXCEdYgzt9i/jIJK8yegJsPMdTFIlEM/d5h3utp1s3Ne0i5wf4NQ4jdhZJ/Lfxqw
|
||||
KYUg4CCO7p2VMoW3+AOFu+atwi5JpERDvYLfHqxQUcbTLFOv4fURbCicvC94Cr2J
|
||||
g2QAhipt0ETbYahbkF4GwFTZY3ncJ9fBZ5YrADZjBbU2p6N/BJTqXggtVtq0iWNh
|
||||
phcooz2JUJx6hZQBzXi2I61XwfeH6uzV9fwY5gV1tSXP6CxXiJo7FvpYuheKxa/W
|
||||
ZR59aYg6bURJy0yC/PNENH5AkyllxSEwLs9wMPMpTVe+DR/VZs176eJZkchq4Q/L
|
||||
/HeGL6Wcap8YMJi8cC5Dy60vv0IXp33n8/tu1EdtOdQTqo65hl0=
|
||||
=Bi4F
|
||||
-----END PGP SIGNATURE-----
|
||||
6
SOURCES/webkitgtk-2.52.3.tar.xz.asc
Normal file
6
SOURCES/webkitgtk-2.52.3.tar.xz.asc
Normal file
@ -0,0 +1,6 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iF0EABEIAB0WIQRao7wzT9fjNp58d7KRxVnb5MkSOwUCaeFIpQAKCRCRxVnb5MkS
|
||||
O8UZAJ9EPfX10mIMYGlbhCCd+qxbeyuYTACfYOdgIlth6/ymZ8mJqPdABc8bQQk=
|
||||
=zK1i
|
||||
-----END PGP SIGNATURE-----
|
||||
@ -19,8 +19,8 @@
|
||||
%endif
|
||||
|
||||
Name: webkit2gtk3
|
||||
Version: 2.50.4
|
||||
Release: 1%{?dist}
|
||||
Version: 2.52.3
|
||||
Release: 0%{?dist}.1
|
||||
Summary: GTK Web content engine library
|
||||
|
||||
License: LGPLv2
|
||||
@ -36,7 +36,9 @@ Source2: webkitgtk-keys.gpg
|
||||
## Patches to support older or missing build dependencies
|
||||
##
|
||||
Patch: glib-2-68.patch
|
||||
Patch: libsoup2.patch
|
||||
Patch: icu-67.patch
|
||||
Patch: g-ir-scanner-nonfatal.patch
|
||||
|
||||
##
|
||||
## Patches to support older Evolution
|
||||
@ -46,14 +48,16 @@ Patch: evolution-sandbox-warning.patch
|
||||
##
|
||||
## Upstream patches to remove, hopefully after next update
|
||||
##
|
||||
|
||||
# No patches currently! :)
|
||||
|
||||
# https://github.com/WebKit/WebKit/pull/58096
|
||||
Patch: aarch64-build.patch
|
||||
|
||||
BuildRequires: bison
|
||||
BuildRequires: bubblewrap
|
||||
BuildRequires: clang
|
||||
BuildRequires: cmake
|
||||
BuildRequires: flex
|
||||
BuildRequires: gcc-toolset-14-libatomic-devel
|
||||
BuildRequires: gettext
|
||||
BuildRequires: git
|
||||
BuildRequires: gnupg2
|
||||
@ -325,16 +329,40 @@ export NINJA_STATUS="[%f/%t][%e] "
|
||||
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
|
||||
|
||||
%changelog
|
||||
* Thu Dec 18 2025 Tomas Popela <tpopela@redhat.com> - 2.50.4-1
|
||||
* Mon Apr 20 2026 Michael Catanzaro <mcatanzaro@redhat.com> - 2.52.3-0.1
|
||||
- Update to 2.52.1
|
||||
|
||||
* Fri Dec 19 2025 Ravina Jain <rajain@redhat.com> - 2.50.4-1
|
||||
- Update to 2.50.4
|
||||
- Fix CVE-2025-43529 with Rebase
|
||||
- Fix CVE-2025-43531 with Rebase
|
||||
- Fix CVE-2025-43501 with Rebase
|
||||
- Fix CVE-2025-43536 with Rebase
|
||||
- Fix CVE-2025-43535 with Rebase
|
||||
- Fix CVE-2025-43541 with Rebase
|
||||
|
||||
* Thu Dec 04 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.3-1
|
||||
* Fri Dec 05 2025 Kashyap <kekbote@redhat.com> - 2.50.3-1
|
||||
- Update to 2.50.3
|
||||
- Fix CVE-2025-43443 with Rebase
|
||||
- Fix CVE-2025-43440 with Rebase
|
||||
- Fix CVE-2025-43434 with Rebase
|
||||
- Fix CVE-2025-43432 with Rebase
|
||||
- Fix CVE-2025-43431 with Rebase
|
||||
- Fix CVE-2025-43430 with Rebase
|
||||
- Fix CVE-2025-43429 with Rebase
|
||||
- Fix CVE-2025-43427 with Rebase
|
||||
- Fix CVE-2025-43425 with Rebase
|
||||
- Fix CVE-2025-43421 with Rebase
|
||||
- Fix CVE-2025-43392 with Rebase
|
||||
- Fix CVE-2025-66287 with Rebase
|
||||
- Fix CVE-2025-43458 with Rebase
|
||||
- Fix CVE-2025-13947 with Rebase
|
||||
- Fix CVE-2025-13502 with Rebase
|
||||
|
||||
* Mon Oct 13 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.1-1
|
||||
* Tue Oct 14 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.1-1
|
||||
- Update to 2.50.1
|
||||
|
||||
* Mon Sep 22 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.0-1
|
||||
* Wed Oct 01 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.0-1
|
||||
- Update to 2.50.0
|
||||
|
||||
* Fri Aug 08 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.5-1
|
||||
@ -350,9 +378,12 @@ export NINJA_STATUS="[%f/%t][%e] "
|
||||
* Wed Apr 02 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.1-1
|
||||
- Update to 2.48.1
|
||||
|
||||
* Mon Mar 24 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.0-1
|
||||
* Mon Mar 31 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.0-1
|
||||
- Update to 2.48.0
|
||||
|
||||
* Thu Mar 13 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.46.6-2
|
||||
- Add patch for CVE-2025-24201
|
||||
|
||||
* Tue Feb 25 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.46.6-1
|
||||
- Update to 2.46.6
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user