tc39-weakrefs-shim
Version:
Shim for TC39 Weakrefs proposal
28 lines (27 loc) • 804 B
TypeScript
import { TaskQueue } from "../utils/tasks/taskQueue";
interface HoldObject {
(object: object): void;
}
interface ReleaseObject {
(object: object): void;
}
export interface ClearKeptObjects {
(): void;
}
export interface KeepDuringJob {
(object: object): void;
}
export interface WeakRefJobs {
readonly keepDuringJob: KeepDuringJob;
readonly clearKeptObjects: ClearKeptObjects;
readonly isKeepingObjects: boolean;
}
export declare function createWeakRefJobs(scheduleClearKeptObjects: () => number, hooks?: {
holdObject?: HoldObject;
releaseObject?: ReleaseObject;
}): WeakRefJobs;
export declare function createWeakRefJobsForTaskQueue(setTask: TaskQueue.Set<number>, hooks?: {
holdObject?: HoldObject;
releaseObject?: ReleaseObject;
}): WeakRefJobs;
export {};