summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2021-07-02 10:46:37 +0200
committerGitHub <noreply@github.com>2021-07-02 10:46:37 +0200
commit513f921219d32fe5deea264f6604b54b24d81d8f (patch)
tree17344527b40bdfcaaed0e55569faa0b4abffab61 /cli/tests
parent5648b22fe102c212a653580d2e190283c057cc20 (diff)
feat(core): pump V8 message loop on event loop tick (#11221)
This commit adds support for Atomics and FinalizationRegistry by integrating V8's message loop into "JsRuntime::poll_event_loop".
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/finalization_registry.js20
-rw-r--r--cli/tests/finalization_registry.js.out1
-rw-r--r--cli/tests/integration/run_tests.rs6
3 files changed, 27 insertions, 0 deletions
diff --git a/cli/tests/finalization_registry.js b/cli/tests/finalization_registry.js
new file mode 100644
index 000000000..f75979358
--- /dev/null
+++ b/cli/tests/finalization_registry.js
@@ -0,0 +1,20 @@
+// Copyright 2018-2021 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.core.print("FinalizationRegistry called!\n");
+});
+
+(function () {
+ let x = {};
+ registry.register(x, "called!");
+ x = null;
+})();
+
+gc();
diff --git a/cli/tests/finalization_registry.js.out b/cli/tests/finalization_registry.js.out
new file mode 100644
index 000000000..fee61413a
--- /dev/null
+++ b/cli/tests/finalization_registry.js.out
@@ -0,0 +1 @@
+FinalizationRegistry called!
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index 964d2dd7c..025ee07e1 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -660,6 +660,12 @@ itest!(heapstats {
output: "heapstats.js.out",
});
+itest!(finalization_registry {
+ args:
+ "run --quiet --unstable --v8-flags=--expose-gc finalization_registry.js",
+ output: "finalization_registry.js.out",
+});
+
itest!(https_import {
args: "run --quiet --reload --cert tls/RootCA.pem https_import.ts",
output: "https_import.ts.out",