### Reference tracking Perhaps, one way to work around this Reference Discontinuity would be the given Realm API to provide a reference symbol for each evaluation. That's not much necessary for primitive values, but important for translating the correct references. ```javascript const realm = new Realm(); const refObj = realm.eval('globalThis.foo = { x: 1 }'); // refObj { // reference: Symbol // a Symbol reference to the // getValue(); // clones the existing value from the realm // setValue(value); // updates the value of the given reference // } // the reference should be mapped so it always returns the same value, even if the structured clone changes const otherRef = realm.eval('globalThis.foo'); console.assert(refObj === otherRef); const value = refObj.getValue(); // yields to { x: 1 } const other = otherRef.getValue(); // yields to { x: 1 } // That's still a challenge for values previously resolved, the clone is always new console.assert(value !== other); // But still tracks changes when capturing references and re-cloning values realm.eval('foo.y = 2'); // value and other remains like { x: 1 } // Still the same reference const yetAnotherRef = realm.eval('foo'); console.assert(refObj === yetAnotherRef); const yetAnotherValue = yetAnotherRef.getValue(); // yetAnotherValue is a new { x: 1, y: 2} ``` This adds a lot of complexity, but it's necessary way to deal with the reference discontinuity.