@@ -3568,7 +3568,7 @@ ThreadContext::RegisterSharedPropertyGuard(Js::PropertyId propertyId)
35683568}
35693569
35703570void
3571- ThreadContext::RegisterLazyBailout (Js::PropertyId propertyId, Js::EntryPointInfo* entryPoint, bool hasLazyBailOut )
3571+ ThreadContext::RegisterLazyBailout (Js::PropertyId propertyId, Js::EntryPointInfo* entryPoint)
35723572{
35733573 Assert (entryPoint);
35743574
@@ -3584,11 +3584,6 @@ ThreadContext::RegisterLazyBailout(Js::PropertyId propertyId, Js::EntryPointInfo
35843584 // We use lazyBailOutEntryPoints' EntryPointDictionary functionality not as a value lookup but
35853585 // rather as a means to verify that an entryPoint for the given propertyGuardEntry exists.
35863586 propertyGuardEntry->lazyBailOutEntryPoints ->UncheckedAdd (entryPoint, NULL );
3587-
3588- if (hasLazyBailOut)
3589- {
3590- propertyGuardEntry->hasLazyBailOut = true ;
3591- }
35923587}
35933588
35943589void
@@ -3711,11 +3706,7 @@ ThreadContext::InvalidatePropertyGuardEntry(
37113706 this ->recyclableData ->constructorCacheInvalidationCount = 0 ;
37123707 }
37133708 }
3714-
3715- /*
3716- if (propertyGuardEntry->hasLazyBailOut)
3717- {
3718- */
3709+
37193710 if (propertyGuardEntry->lazyBailOutEntryPoints && propertyGuardEntry->lazyBailOutEntryPoints ->Count () > 0 )
37203711 {
37213712 Assert (propertyGuardEntry->lazyBailOutEntryPoints );
@@ -3759,45 +3750,33 @@ ThreadContext::InvalidatePropertyGuardEntry(
37593750
37603751 if (!didConvertRetAddrToThunk)
37613752 {
3762- functionEntryPoint->shouldNotDelete = true ;
3753+ functionEntryPoint->retAddrNotModified = true ;
37633754 }
37643755 }
37653756 }
37663757 }
37673758 }
37683759 }
3769- /*
3770- }
3771- */
37723760
37733761 if (propertyGuardEntry->lazyBailOutEntryPoints && propertyGuardEntry->lazyBailOutEntryPoints ->Count () > 0 )
37743762 {
3775- if (!propertyGuardEntry->hasLazyBailOut )
3776- {
3777- int a = 5 ;
3778- a++;
3779-
3780- }
3781-
37823763 propertyGuardEntry->lazyBailOutEntryPoints ->Map ([=](Js::EntryPointInfo* lazyBailOutEntryPoint, BYTE& dummy, const RecyclerWeakReference<Js::EntryPointInfo>* infoWeakRef)
37833764 {
37843765 if (lazyBailOutEntryPoint->IsCleanedUp ())
37853766 {
37863767 return ;
37873768 }
37883769 OUTPUT_TRACE2 (Js::LazyBailoutPhase, lazyBailOutEntryPoint->GetFunctionBody (), _u (" Lazy bailout - Invalidation due to property: %s \n " ), propertyRecord->GetBuffer ());
3789- if (!((Js::FunctionEntryPointInfo*)(lazyBailOutEntryPoint))->shouldNotDelete )
3770+
3771+ if (!((Js::FunctionEntryPointInfo*)lazyBailOutEntryPoint)->retAddrNotModified )
37903772 {
3791- /* Js::FunctionEntryPointInfo* newEntryPoint = */ ((Js::FunctionEntryPointInfo*)( lazyBailOutEntryPoint))-> InvalidateRet (true );
3792- ((Js::FunctionEntryPointInfo*)( lazyBailOutEntryPoint))-> shouldNotDelete = false ;
3773+ lazyBailOutEntryPoint-> Invalidate (true );
3774+ ((Js::FunctionEntryPointInfo*)lazyBailOutEntryPoint)-> retAddrNotModified = false ;
37933775 }
3794- // newEntryPoint->lboCodeSize = lazyBailOutEntryPoint->GetCodeSize();
3795- // newEntryPoint->lboNativeAddr = lazyBailOutEntryPoint->GetNativeAddress();
3776+
37963777 });
37973778
3798- // TODO: make function.
37993779 propertyGuardEntry->lazyBailOutEntryPoints ->Clear ();
3800- propertyGuardEntry->hasLazyBailOut = false ;
38013780 }
38023781}
38033782
0 commit comments