Yield recovery container encoding without changing durable cuts
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
// Private shape provenance: values may still be mutable and require capture.
|
||||
// Always copy; external Object.freeze is never accepted as ownership evidence.
|
||||
const owned = new WeakSet<object>();
|
||||
export function dataArray<T>(values: Iterable<T>): readonly T[] {
|
||||
const result = Object.freeze(Array.from(values)); owned.add(result); return result;
|
||||
}
|
||||
export function dataRecord<T extends object>(value: T): Readonly<T> {
|
||||
const result = Object.freeze({...value}); owned.add(result); return result;
|
||||
}
|
||||
export const isDataContainer = (value: object) => owned.has(value);
|
||||
Reference in New Issue
Block a user