Skip to content

Commit 1170fa3

Browse files
author
Meghana Gupta
committed
Since BigInt is represented as Object valuetype, pointer comparison fastpath doesnt work for definite object strict equality
1 parent 4243a35 commit 1170fa3

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lib/Backend/Lower.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23580,13 +23580,13 @@ bool Lowerer::GenerateFastBrOrCmEqDefinite(IR::Instr * instr, IR::JnHelperMethod
2358023580
instr->InsertBefore(branch);
2358123581
*pNeedHelper = false;
2358223582
}
23583-
else if (definiteSrc->GetValueType().IsObject())
23583+
else if (definiteSrc->GetValueType().IsObject() && !CONFIG_FLAG(ESBigInt))
2358423584
{
2358523585
InsertCompareBranch(src1, src2, Js::OpCode::BrEq_A, labelBranchSuccess, instr);
23586-
m_lowererMD.GenerateObjectTest(likelySrc->AsRegOpnd(), instr, labelBranchFailure);
2358723586

2358823587
if (!likelySrc->GetValueType().IsDefinite())
2358923588
{
23589+
m_lowererMD.GenerateObjectTest(likelySrc->AsRegOpnd(), instr, labelBranchFailure);
2359023590
IR::RegOpnd * likelyTypeReg = IR::RegOpnd::New(TyMachReg, this->m_func);
2359123591
IR::IndirOpnd * likelyType = IR::IndirOpnd::New(likelySrc->AsRegOpnd(), Js::RecyclableObject::GetOffsetOfType(), TyMachReg, this->m_func);
2359223592
Lowerer::InsertMove(likelyTypeReg, likelyType, instr);

0 commit comments

Comments
 (0)