From d7f01911b8a2cb056583bbfa50554df97bb35936 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Tue, 22 Apr 2025 15:26:41 +0200 Subject: [PATCH] Issue #2731 - Fix crashes on unknown BigInt types in JIT This only works around the unknown type crashes but doesn't actually fix attempts at using 64-bit BigInts in Ion. Resolves #2731 --- js/src/jit/MacroAssembler.cpp | 1 + js/src/jit/MacroAssembler.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/js/src/jit/MacroAssembler.cpp b/js/src/jit/MacroAssembler.cpp index 6721dd4419..9519e8f0eb 100644 --- a/js/src/jit/MacroAssembler.cpp +++ b/js/src/jit/MacroAssembler.cpp @@ -2124,6 +2124,7 @@ MacroAssembler::convertTypedOrValueToInt(TypedOrValueRegister src, FloatRegister case MIRType::String: case MIRType::Symbol: case MIRType::Object: + case MIRType::BigInt: jump(fail); break; default: diff --git a/js/src/jit/MacroAssembler.h b/js/src/jit/MacroAssembler.h index f681456396..e5efb475c6 100644 --- a/js/src/jit/MacroAssembler.h +++ b/js/src/jit/MacroAssembler.h @@ -1622,6 +1622,11 @@ class MacroAssembler : public MacroAssemblerSpecific case Scalar::Uint32: store32(value, dest); break; + case Scalar::BigInt64: + case Scalar::BigUint64: + //FIXME: storing 64-bit values doesn't actually work yet. + // store64(value, dest); + break; default: MOZ_CRASH("Invalid typed array type"); }