Skip to content
Foxipa
Code Completion 8 Challenges

JavaScript Weak References & FinalizationRegistry — Code Completion

Practice WeakRef, FinalizationRegistry, unregister tokens, and safe weak-lifetime handling.

Challenge 1

Create a weak reference to an object.

javascript Your answer
const target = {id: 1};
const ref = new WeakRef(target);
console.log(ref.deref()?.id);

Press Ctrl⌘Enter to check your answer

Challenge 2

Handle a WeakRef miss without throwing.

javascript Your answer
const ref = new WeakRef({value: 9});
const value = ref.();
console.log(value?.value ?? "recompute");

Press Ctrl⌘Enter to check your answer

Challenge 3

Create a finalization registry with a cleanup callback.

javascript Your answer
const registry = new (held) => console.log(held));
console.log(registry instanceof FinalizationRegistry);

Press Ctrl⌘Enter to check your answer

Challenge 4

Register a target with a held value.

javascript Your answer
const registry = new FinalizationRegistry(() => {});
const target = {};
registry.(target, "metadata");
console.log("registered");

Press Ctrl⌘Enter to check your answer

Challenge 5

Supply an unregister token during registration.

javascript Your answer
const registry = new FinalizationRegistry(() => {});
const target = {};
const token = {};
registry.register(target, "metadata", );
console.log("registered");

Press Ctrl⌘Enter to check your answer

Challenge 6

Remove a registration explicitly.

javascript Your answer
const registry = new FinalizationRegistry(() => {});
const target = {};
const token = {};
registry.register(target, "metadata", token);
console.log(registry.(token));

Press Ctrl⌘Enter to check your answer

Challenge 7

Create a weak reference to a non-registered Symbol.

javascript Your answer
const symbol = Symbol("local");
const ref = new WeakRef(symbol);
console.log(ref.() === symbol);

Press Ctrl⌘Enter to check your answer

Challenge 8

Use a fallback when a weak value is unavailable.

javascript Your answer
function read(ref) {
  const value = ref.deref();
  return value ?? ();
}
const ref = new WeakRef({value: 1});
console.log(read(ref));

Press Ctrl⌘Enter to check your answer