summaryrefslogtreecommitdiff
path: root/tests/specs/run/explicit_resource_management
diff options
context:
space:
mode:
Diffstat (limited to 'tests/specs/run/explicit_resource_management')
-rw-r--r--tests/specs/run/explicit_resource_management/__test__.jsonc4
-rw-r--r--tests/specs/run/explicit_resource_management/explicit_resource_management/main.out5
-rw-r--r--tests/specs/run/explicit_resource_management/explicit_resource_management/main.ts21
3 files changed, 30 insertions, 0 deletions
diff --git a/tests/specs/run/explicit_resource_management/__test__.jsonc b/tests/specs/run/explicit_resource_management/__test__.jsonc
new file mode 100644
index 000000000..7062e6f36
--- /dev/null
+++ b/tests/specs/run/explicit_resource_management/__test__.jsonc
@@ -0,0 +1,4 @@
+{
+ "args": "run --quiet --check explicit_resource_management/main.ts",
+ "output": "explicit_resource_management/main.out"
+}
diff --git a/tests/specs/run/explicit_resource_management/explicit_resource_management/main.out b/tests/specs/run/explicit_resource_management/explicit_resource_management/main.out
new file mode 100644
index 000000000..ff5ac4b59
--- /dev/null
+++ b/tests/specs/run/explicit_resource_management/explicit_resource_management/main.out
@@ -0,0 +1,5 @@
+A
+Disposed
+B
+Async disposed
+C
diff --git a/tests/specs/run/explicit_resource_management/explicit_resource_management/main.ts b/tests/specs/run/explicit_resource_management/explicit_resource_management/main.ts
new file mode 100644
index 000000000..0201a51f9
--- /dev/null
+++ b/tests/specs/run/explicit_resource_management/explicit_resource_management/main.ts
@@ -0,0 +1,21 @@
+class Resource {
+ [Symbol.dispose]() {
+ console.log("Disposed");
+ }
+}
+class AsyncResource {
+ async [Symbol.asyncDispose]() {
+ await new Promise((resolve) => setTimeout(resolve, 10));
+ console.log("Async disposed");
+ }
+}
+
+{
+ using resource = new Resource();
+ console.log("A");
+}
+{
+ await using resource = new AsyncResource();
+ console.log("B");
+}
+console.log("C");