@@ -488,6 +488,18 @@ void JIT::privateCompileLinkPass()
488488
489489void JIT::privateCompileSlowCases ()
490490{
491+ m_getByIdIndex = 0 ;
492+ m_getByValIndex = 0 ;
493+ m_getByIdWithThisIndex = 0 ;
494+ m_getByValWithThisIndex = 0 ;
495+ m_putByIdIndex = 0 ;
496+ m_putByValIndex = 0 ;
497+ m_inByIdIndex = 0 ;
498+ m_inByValIndex = 0 ;
499+ m_delByIdIndex = 0 ;
500+ m_delByValIndex = 0 ;
501+ m_instanceOfIndex = 0 ;
502+ m_privateBrandAccessIndex = 0 ;
491503 m_callLinkInfoIndex = 0 ;
492504
493505 unsigned bytecodeCountHavingSlowCase = 0 ;
@@ -534,6 +546,22 @@ void JIT::privateCompileSlowCases()
534546 DEFINE_SLOWCASE_OP (op_construct_varargs)
535547 DEFINE_SLOWCASE_OP (op_construct)
536548 DEFINE_SLOWCASE_OP (op_eq)
549+ DEFINE_SLOWCASE_OP (op_try_get_by_id)
550+ DEFINE_SLOWCASE_OP (op_in_by_id)
551+ DEFINE_SLOWCASE_OP (op_in_by_val)
552+ DEFINE_SLOWCASE_OP (op_has_private_name)
553+ DEFINE_SLOWCASE_OP (op_has_private_brand)
554+ DEFINE_SLOWCASE_OP (op_get_by_id)
555+ DEFINE_SLOWCASE_OP (op_get_by_id_with_this)
556+ DEFINE_SLOWCASE_OP (op_get_by_id_direct)
557+ DEFINE_SLOWCASE_OP (op_get_by_val)
558+ DEFINE_SLOWCASE_OP (op_get_by_val_with_this)
559+ DEFINE_SLOWCASE_OP (op_enumerator_get_by_val)
560+ DEFINE_SLOWCASE_OP (op_enumerator_put_by_val)
561+ DEFINE_SLOWCASE_OP (op_get_private_name)
562+ DEFINE_SLOWCASE_OP (op_set_private_brand)
563+ DEFINE_SLOWCASE_OP (op_check_private_brand)
564+ DEFINE_SLOWCASE_OP (op_instanceof)
537565 DEFINE_SLOWCASE_OP (op_less)
538566 DEFINE_SLOWCASE_OP (op_lesseq)
539567 DEFINE_SLOWCASE_OP (op_greater)
@@ -559,6 +587,12 @@ void JIT::privateCompileSlowCases()
559587 DEFINE_SLOWCASE_OP (op_negate)
560588 DEFINE_SLOWCASE_OP (op_neq)
561589 DEFINE_SLOWCASE_OP (op_new_object)
590+ DEFINE_SLOWCASE_OP (op_put_by_id)
591+ DEFINE_SLOWCASE_OP (op_put_by_val_direct)
592+ DEFINE_SLOWCASE_OP (op_put_by_val)
593+ DEFINE_SLOWCASE_OP (op_put_private_name)
594+ DEFINE_SLOWCASE_OP (op_del_by_val)
595+ DEFINE_SLOWCASE_OP (op_del_by_id)
562596 DEFINE_SLOWCASE_OP (op_sub)
563597 DEFINE_SLOWCASE_OP (op_put_to_scope)
564598
@@ -612,6 +646,14 @@ void JIT::privateCompileSlowCases()
612646 }
613647
614648 RELEASE_ASSERT (bytecodeCountHavingSlowCase == m_bytecodeCountHavingSlowCase);
649+ RELEASE_ASSERT (m_getByIdIndex == m_getByIds.size ());
650+ RELEASE_ASSERT (m_getByIdWithThisIndex == m_getByIdsWithThis.size ());
651+ RELEASE_ASSERT (m_getByValWithThisIndex == m_getByValsWithThis.size ());
652+ RELEASE_ASSERT (m_putByIdIndex == m_putByIds.size ());
653+ RELEASE_ASSERT (m_putByValIndex == m_putByVals.size ());
654+ RELEASE_ASSERT (m_inByIdIndex == m_inByIds.size ());
655+ RELEASE_ASSERT (m_instanceOfIndex == m_instanceOfs.size ());
656+ RELEASE_ASSERT (m_privateBrandAccessIndex == m_privateBrandAccesses.size ());
615657 RELEASE_ASSERT (m_callLinkInfoIndex == m_callCompilationInfo.size ());
616658
617659#ifndef NDEBUG
@@ -916,8 +958,10 @@ RefPtr<BaselineJITCode> JIT::link(LinkBuffer& patchBuffer)
916958#endif
917959
918960 auto finalizeICs = [&] (auto & generators) {
919- for (auto & gen : generators)
961+ for (auto & gen : generators) {
920962 gen.m_unlinkedStubInfo ->doneLocation = patchBuffer.locationOf <JSInternalPtrTag>(gen.m_done );
963+ gen.m_unlinkedStubInfo ->slowPathStartLocation = patchBuffer.locationOf <JITStubRoutinePtrTag>(gen.m_slowPathBegin );
964+ }
921965 };
922966
923967 finalizeICs (m_getByIds);
0 commit comments