diff --git a/js/src/gc/RelocationOverlay.h b/js/src/gc/RelocationOverlay.h index 55440abc19..43e80f517f 100644 --- a/js/src/gc/RelocationOverlay.h +++ b/js/src/gc/RelocationOverlay.h @@ -43,6 +43,11 @@ class RelocationOverlay return reinterpret_cast(cell); } + // ADD THIS: Const-friendly version + static const RelocationOverlay* fromCell(const Cell* cell) { + return reinterpret_cast(cell); + } + bool isForwarded() const { return magic_ == Relocated; } diff --git a/js/src/jit/MacroAssembler-inl.h b/js/src/jit/MacroAssembler-inl.h index 9ffffff117..0385ad3b95 100644 --- a/js/src/jit/MacroAssembler-inl.h +++ b/js/src/jit/MacroAssembler-inl.h @@ -392,7 +392,7 @@ void MacroAssembler::branchIfRope(Register str, Label* label) { Address flags(str, JSString::offsetOfFlags()); - static_assert(JSString::ROPE_FLAGS == 0, "Rope type flags must be 0"); + static_assert(JSString::ROPE_FLAGS == JSString::NON_ATOM_BIT, "Rope type flags must be 0"); branchTest32(Assembler::Zero, flags, Imm32(JSString::TYPE_FLAGS_MASK), label); } @@ -403,7 +403,7 @@ MacroAssembler::branchIfRopeOrExternal(Register str, Register temp, Label* label move32(Imm32(JSString::TYPE_FLAGS_MASK), temp); and32(flags, temp); - static_assert(JSString::ROPE_FLAGS == 0, "Rope type flags must be 0"); + static_assert(JSString::ROPE_FLAGS == JSString::NON_ATOM_BIT, "Rope type flags must be 0"); branchTest32(Assembler::Zero, temp, temp, label); branch32(Assembler::Equal, temp, Imm32(JSString::EXTERNAL_FLAGS), label);