You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
-mm=rc: { s: p.child } takes no reference; overwriting p.child frees what the literal holds #460
Under -mm=rc, an object literal whose field is read out of another object's field takes no reference. Overwriting the source field frees the value the literal still holds.
Actual, tslang --emit=jit --no-default-lib, main 8b9d631:
gc and none: first1.
rc: k15. The node and its string were freed, and the keep loop reused the memory.
Under -mm=own the program is rejected (borrows a field and cannot be stored), which is correct. Found by the review of Shared<T> (own phase 8). A Shared<T> field read into an object literal crashes under rc the same way.
Activity
A const literal counts only fields that own a block (#460)
A const record whose field is made for it has storage, as a let does (#…