File tree Expand file tree Collapse file tree 4 files changed +21
-17
lines changed Expand file tree Collapse file tree 4 files changed +21
-17
lines changed Original file line number Diff line number Diff line change @@ -4233,15 +4233,18 @@ CHAKRA_API JsTTDNotifyLongLivedReferenceAdd(_In_ JsValueRef value)
4233
4233
return JsErrorNoCurrentContext;
4234
4234
}
4235
4235
4236
- Js::RecyclableObject* obj = Js::RecyclableObject::FromVar (value);
4237
- if (obj->GetScriptContext ()->IsTTDRecordModeEnabled ())
4236
+ if (Js::RecyclableObject::Is (value))
4238
4237
{
4239
- if (obj->GetScriptContext ()->ShouldPerformRecordAction ())
4238
+ Js::RecyclableObject* obj = Js::RecyclableObject::FromVar (value);
4239
+ if (obj->GetScriptContext ()->IsTTDRecordModeEnabled ())
4240
4240
{
4241
- threadContext->TTDLog ->RecordJsRTAddWeakRootRef (_actionEntryPopper, (Js::Var)value);
4242
- }
4241
+ if (obj->GetScriptContext ()->ShouldPerformRecordAction ())
4242
+ {
4243
+ threadContext->TTDLog ->RecordJsRTAddWeakRootRef (_actionEntryPopper, (Js::Var)value);
4244
+ }
4243
4245
4244
- threadContext->TTDContext ->AddRootRef_Record (TTD_CONVERT_OBJ_TO_LOG_PTR_ID (obj), obj);
4246
+ threadContext->TTDContext ->AddRootRef_Record (TTD_CONVERT_OBJ_TO_LOG_PTR_ID (obj), obj);
4247
+ }
4245
4248
}
4246
4249
4247
4250
return JsNoError;
Original file line number Diff line number Diff line change @@ -271,6 +271,8 @@ namespace TTD
271
271
//
272
272
void StdPropertyRestore (const SnapObject* snpObject, Js::DynamicObject* obj, InflateMap* inflator)
273
273
{
274
+ obj->GetDynamicType ()->GetTypeHandler ()->EnsureObjectReady (obj);
275
+
274
276
// Many protos are set at creation, don't mess with them if they are already correct
275
277
if (snpObject->SnapType ->PrototypeVar != nullptr )
276
278
{
Original file line number Diff line number Diff line change @@ -524,6 +524,11 @@ using namespace Js;
524
524
extractor->MarkVisitVar (this ->cachedScopeObj );
525
525
}
526
526
527
+ if (this ->GetComputedNameVar () != nullptr )
528
+ {
529
+ extractor->MarkVisitVar (this ->GetComputedNameVar ());
530
+ }
531
+
527
532
if (this ->GetHomeObj () != nullptr )
528
533
{
529
534
extractor->MarkVisitVar (this ->GetHomeObj ());
@@ -592,6 +597,11 @@ using namespace Js;
592
597
this ->GetScriptContext ()->TTDWellKnownInfo ->EnqueueNewPathVarAsNeeded (this , this ->cachedScopeObj , _u (" _cachedScopeObj" ));
593
598
}
594
599
600
+ if (this ->GetComputedNameVar () != nullptr )
601
+ {
602
+ this ->GetScriptContext ()->TTDWellKnownInfo ->EnqueueNewPathVarAsNeeded (this , this ->GetComputedNameVar (), _u (" _computedName" ));
603
+ }
604
+
595
605
if (this ->GetHomeObj () != nullptr )
596
606
{
597
607
this ->GetScriptContext ()->TTDWellKnownInfo ->EnqueueNewPathVarAsNeeded (this , this ->GetHomeObj (), _u (" _homeObj" ));
Original file line number Diff line number Diff line change @@ -43,17 +43,6 @@ namespace Js
43
43
}
44
44
virtual Var GetComputedNameVar () const override { return this ->computedNameVar ; }
45
45
virtual void SetComputedNameVar (Var computedNameVar) override { this ->computedNameVar = computedNameVar; }
46
-
47
- #if ENABLE_TTD
48
- virtual void MarkVisitKindSpecificPtrs (TTD::SnapshotExtractor* extractor)
49
- {
50
- __super::MarkVisitKindSpecificPtrs (extractor);
51
- if (this ->computedNameVar != nullptr )
52
- {
53
- extractor->MarkVisitVar (this ->computedNameVar );
54
- }
55
- }
56
- #endif
57
46
};
58
47
59
48
template <class BaseClass >
You can’t perform that action at this time.
0 commit comments