gh-128627: Fix iPad detection in wasm-gc (#135388)
On some iPad versions, Safari reports as "macOS". Modifies the GC trampoline detection to add a feature-based check to detect this case.
This commit is contained in:
parent
71f5fafdfb
commit
d447129758
@ -71,7 +71,16 @@ EM_JS(CountArgsFunc, _PyEM_GetCountArgsPtr, (), {
|
||||
// )
|
||||
|
||||
function getPyEMCountArgsPtr() {
|
||||
let isIOS = globalThis.navigator && /iPad|iPhone|iPod/.test(navigator.platform);
|
||||
// Starting with iOS 18.3.1, WebKit on iOS has an issue with the garbage
|
||||
// collector that breaks the call trampoline. See #130418 and
|
||||
// https://bugs.webkit.org/show_bug.cgi?id=293113 for details.
|
||||
let isIOS = globalThis.navigator && (
|
||||
/iPad|iPhone|iPod/.test(navigator.userAgent) ||
|
||||
// Starting with iPadOS 13, iPads might send a platform string that looks like a desktop Mac.
|
||||
// To differentiate, we check if the platform is 'MacIntel' (common for Macs and newer iPads)
|
||||
// AND if the device has multi-touch capabilities (navigator.maxTouchPoints > 1)
|
||||
(navigator.platform === 'MacIntel' && typeof navigator.maxTouchPoints !== 'undefined' && navigator.maxTouchPoints > 1)
|
||||
)
|
||||
if (isIOS) {
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user