diff options
Diffstat (limited to 'tests/specs/run/finalization_registry')
3 files changed, 25 insertions, 0 deletions
diff --git a/tests/specs/run/finalization_registry/__test__.jsonc b/tests/specs/run/finalization_registry/__test__.jsonc new file mode 100644 index 000000000..f7526506c --- /dev/null +++ b/tests/specs/run/finalization_registry/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --quiet --v8-flags=--expose-gc finalization_registry.js", + "output": "finalization_registry.js.out" +} diff --git a/tests/specs/run/finalization_registry/finalization_registry.js b/tests/specs/run/finalization_registry/finalization_registry.js new file mode 100644 index 000000000..ee9dc384f --- /dev/null +++ b/tests/specs/run/finalization_registry/finalization_registry.js @@ -0,0 +1,20 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +"use strict"; + +function assertEquals(a, b) { + if (a === b) return; + throw a + " does not equal " + b; +} + +const registry = new FinalizationRegistry((value) => { + assertEquals(value, "called!"); + Deno[Deno.internal].core.print("FinalizationRegistry called!\n"); +}); + +(function () { + let x = {}; + registry.register(x, "called!"); + x = null; +})(); + +gc(); diff --git a/tests/specs/run/finalization_registry/finalization_registry.js.out b/tests/specs/run/finalization_registry/finalization_registry.js.out new file mode 100644 index 000000000..fee61413a --- /dev/null +++ b/tests/specs/run/finalization_registry/finalization_registry.js.out @@ -0,0 +1 @@ +FinalizationRegistry called! |