From a55fc2d19a52bd8ed9c10e5f8293ea67dfc42a6f Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Sun, 18 Jul 2021 13:10:28 +0200 Subject: [PATCH] webkit2gtk: update to 2.32.2 --- .../webkit2gtk/patches/be-typedarray.patch | 213 ------------------ srcpkgs/webkit2gtk/patches/be32-jsc-fix.patch | 13 -- srcpkgs/webkit2gtk/template | 6 +- 3 files changed, 3 insertions(+), 229 deletions(-) delete mode 100644 srcpkgs/webkit2gtk/patches/be-typedarray.patch delete mode 100644 srcpkgs/webkit2gtk/patches/be32-jsc-fix.patch diff --git a/srcpkgs/webkit2gtk/patches/be-typedarray.patch b/srcpkgs/webkit2gtk/patches/be-typedarray.patch deleted file mode 100644 index 12011525f3ed..000000000000 --- a/srcpkgs/webkit2gtk/patches/be-typedarray.patch +++ /dev/null @@ -1,213 +0,0 @@ -Source: Jacek Piszczek - -https://tenfourfox.tenderapp.com/discussions/problems/7505-problems-uploading-to-facebook - -Updated by @q66. - -diff --git Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h -index dbe211d..4da5fbd 100644 ---- a/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h -+++ b/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h -@@ -28,6 +28,7 @@ - #include "JSArrayBufferView.h" - #include "ThrowScope.h" - #include "ToNativeFromValue.h" -+#include - - namespace JSC { - -@@ -146,7 +147,18 @@ public: - - JSValue getIndexQuickly(unsigned i) const - { -+#if CPU(BIG_ENDIAN) -+ switch (Adaptor::typeValue) { -+ case TypeFloat32: -+ case TypeFloat64: -+ return Adaptor::toJSValue(nullptr, getIndexQuicklyAsNativeValue(i)); -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ return Adaptor::toJSValue(nullptr, flipBytes(getIndexQuicklyAsNativeValue(i))); -+ } -+#else - return Adaptor::toJSValue(nullptr, getIndexQuicklyAsNativeValue(i)); -+#endif - } - - void setIndexQuicklyToNativeValue(unsigned i, typename Adaptor::Type value) -@@ -158,7 +170,20 @@ public: - void setIndexQuickly(unsigned i, JSValue value) - { - ASSERT(!value.isObject()); -+#if CPU(BIG_ENDIAN) -+ switch (Adaptor::typeValue) { -+ case TypeFloat32: -+ case TypeFloat64: -+ setIndexQuicklyToNativeValue(i, toNativeFromValue(value)); -+ break; -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ setIndexQuicklyToNativeValue(i, flipBytes(toNativeFromValue(value))); -+ break; -+ } -+#else - setIndexQuicklyToNativeValue(i, toNativeFromValue(value)); -+#endif - } - - bool setIndex(JSGlobalObject* globalObject, unsigned i, JSValue jsValue) -@@ -172,13 +197,54 @@ public: - if (isDetached() || i >= m_length) - return false; - -+#if CPU(BIG_ENDIAN) -+ switch (Adaptor::typeValue) { -+ case TypeFloat32: -+ case TypeFloat64: -+ setIndexQuicklyToNativeValue(i, value); -+ break; -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ setIndexQuicklyToNativeValue(i, flipBytes(value)); -+ break; -+ } -+#else - setIndexQuicklyToNativeValue(i, value); -+#endif - return true; - } - -- static ElementType toAdaptorNativeFromValue(JSGlobalObject* globalObject, JSValue jsValue) { return toNativeFromValue(globalObject, jsValue); } -+ static ElementType toAdaptorNativeFromValue(JSGlobalObject* globalObject, JSValue jsValue) -+ { -+#if CPU(BIG_ENDIAN) -+ switch (Adaptor::typeValue) { -+ case TypeFloat32: -+ case TypeFloat64: -+ return toNativeFromValue(globalObject, jsValue); -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ return flipBytes(toNativeFromValue(globalObject, jsValue)); -+ } -+#else -+ return toNativeFromValue(globalObject, jsValue); -+#endif -+ } - -- static Optional toAdaptorNativeFromValueWithoutCoercion(JSValue jsValue) { return toNativeFromValueWithoutCoercion(jsValue); } -+ static Optional toAdaptorNativeFromValueWithoutCoercion(JSValue jsValue) -+ { -+#if CPU(BIG_ENDIAN) -+ switch (Adaptor::typeValue) { -+ case TypeFloat32: -+ case TypeFloat64: -+ return toNativeFromValueWithoutCoercion(jsValue); -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ return flipBytes(toNativeFromValueWithoutCoercion(jsValue)); -+ } -+#else -+ return toNativeFromValueWithoutCoercion(jsValue); -+#endif -+ } - - void sort() - { -diff --git Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h -index 126f33c..0913af5 100644 ---- a/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h -+++ b/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h -@@ -208,9 +208,36 @@ ALWAYS_INLINE EncodedJSValue genericTypedArrayViewProtoFuncIncludes(VM& vm, JSGl - scope.assertNoException(); - RELEASE_ASSERT(!thisObject->isDetached()); - -- if (std::isnan(static_cast(*targetOption))) { -+ double targetOptionLittleEndianAsDouble; -+#if CPU(BIG_ENDIAN) -+ switch (ViewClass::TypedArrayStorageType) { -+ case TypeFloat32: -+ case TypeFloat64: -+ targetOptionLittleEndianAsDouble = static_cast(*targetOption); -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ targetOptionLittleEndianAsDouble = static_cast(flipBytes(*targetOption)); -+ } -+#else -+ targetOptionLittleEndianAsDouble = static_cast(*targetOption); -+#endif -+ -+ if (std::isnan(targetOptionLittleEndianAsDouble)) { - for (; index < length; ++index) { -- if (std::isnan(static_cast(array[index]))) -+ double arrayElementLittleEndianAsDouble; -+#if CPU(BIG_ENDIAN) -+ switch (ViewClass::TypedArrayStorageType) { -+ case TypeFloat32: -+ case TypeFloat64: -+ arrayElementLittleEndianAsDouble = static_cast(array[index]); -+ default: -+ // typed array views are commonly expected to be little endian views of the underlying data -+ arrayElementLittleEndianAsDouble = static_cast(flipBytes(array[index])); -+ } -+#else -+ arrayElementLittleEndianAsDouble = static_cast(array[index]); -+#endif -+ if (std::isnan(arrayElementLittleEndianAsDouble)) - return JSValue::encode(jsBoolean(true)); - } - } else { -diff --git Source/WTF/wtf/FlipBytes.h Source/WTF/wtf/FlipBytes.h -index 6cd7126..24708f7 100644 ---- a/Source/WTF/wtf/FlipBytes.h -+++ b/Source/WTF/wtf/FlipBytes.h -@@ -24,6 +24,7 @@ - */ - - #pragma once -+#include "Optional.h" - - namespace WTF { - -@@ -98,6 +99,42 @@ inline T flipBytes(T value) - return T(); - } - -+template -+inline T flipBytes(WTF::Optional value) -+{ -+ if (sizeof(*value) == 1) -+ return *value; -+ if (sizeof(*value) == 2) { -+ union { -+ T original; -+ uint16_t word; -+ } u; -+ u.original = *value; -+ u.word = flipBytes(u.word); -+ return u.original; -+ } -+ if (sizeof(*value) == 4) { -+ union { -+ T original; -+ uint32_t word; -+ } u; -+ u.original = *value; -+ u.word = flipBytes(u.word); -+ return u.original; -+ } -+ if (sizeof(*value) == 8) { -+ union { -+ T original; -+ uint64_t word; -+ } u; -+ u.original = *value; -+ u.word = flipBytes(u.word); -+ return u.original; -+ } -+ RELEASE_ASSERT_NOT_REACHED(); -+ return T(); -+} -+ - template - inline T flipBytesIfLittleEndian(T value, bool littleEndian) - { diff --git a/srcpkgs/webkit2gtk/patches/be32-jsc-fix.patch b/srcpkgs/webkit2gtk/patches/be32-jsc-fix.patch deleted file mode 100644 index e35ed38c3287..000000000000 --- a/srcpkgs/webkit2gtk/patches/be32-jsc-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -This should fix a recent regression in JSC CLoop on BE/32bit. - ---- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm -+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm -@@ -425,7 +425,7 @@ end) - op(llint_get_host_call_return_value, macro () - functionPrologue() - pushCalleeSaves() -- loadp Callee[cfr], t0 -+ loadp Callee + PayloadOffset[cfr], t0 - convertCalleeToVM(t0) - loadi VM::encodedHostCallReturnValue + TagOffset[t0], t1 - loadi VM::encodedHostCallReturnValue + PayloadOffset[t0], t0 diff --git a/srcpkgs/webkit2gtk/template b/srcpkgs/webkit2gtk/template index ae7e80744d0b..97d9e843b5d2 100644 --- a/srcpkgs/webkit2gtk/template +++ b/srcpkgs/webkit2gtk/template @@ -1,8 +1,8 @@ # Template file for 'webkit2gtk' # ping q66 before touching this pkgname=webkit2gtk -version=2.32.1 -revision=2 +version=2.32.2 +revision=1 wrksrc="webkitgtk-${version}" build_style=cmake build_helper="gir" @@ -36,7 +36,7 @@ maintainer="q66 " license="LGPL-2.1-or-later, BSD-2-Clause" homepage="https://webkitgtk.org/" distfiles="${homepage}/releases/webkitgtk-${version}.tar.xz" -checksum=136117317f70f66486f71b8edf5e46f8776403c5d8a296e914b11a36ef836917 +checksum=1790f86975bdef957ba9a12fc09202de8f55c885ee38467afc50d2bdb7a6c5cd make_check=no build_options="gir wayland x11 bubblewrap jit sampling_profiler minibrowser