summaryrefslogtreecommitdiff
path: root/tests/specs/run/replace_self
diff options
context:
space:
mode:
Diffstat (limited to 'tests/specs/run/replace_self')
-rw-r--r--tests/specs/run/replace_self/__test__.jsonc4
-rw-r--r--tests/specs/run/replace_self/replace_self.js21
-rw-r--r--tests/specs/run/replace_self/replace_self.js.out4
3 files changed, 29 insertions, 0 deletions
diff --git a/tests/specs/run/replace_self/__test__.jsonc b/tests/specs/run/replace_self/__test__.jsonc
new file mode 100644
index 000000000..cfadbf791
--- /dev/null
+++ b/tests/specs/run/replace_self/__test__.jsonc
@@ -0,0 +1,4 @@
+{
+ "args": "run replace_self.js",
+ "output": "replace_self.js.out"
+}
diff --git a/tests/specs/run/replace_self/replace_self.js b/tests/specs/run/replace_self/replace_self.js
new file mode 100644
index 000000000..cfd473cd3
--- /dev/null
+++ b/tests/specs/run/replace_self/replace_self.js
@@ -0,0 +1,21 @@
+// Test that setting `self` in the main thread to some other value doesn't break
+// the world, in particular for events fired on the global scope.
+
+// deno-lint-ignore no-global-assign
+self = null;
+
+addEventListener("load", () => {
+ console.log("load event (event listener)");
+});
+
+addEventListener("unload", () => {
+ console.log("unload event (event listener)");
+});
+
+globalThis.onload = () => {
+ console.log("load event (event handler)");
+};
+
+globalThis.onunload = () => {
+ console.log("unload event (event handler)");
+};
diff --git a/tests/specs/run/replace_self/replace_self.js.out b/tests/specs/run/replace_self/replace_self.js.out
new file mode 100644
index 000000000..aaffb5a62
--- /dev/null
+++ b/tests/specs/run/replace_self/replace_self.js.out
@@ -0,0 +1,4 @@
+load event (event listener)
+load event (event handler)
+unload event (event listener)
+unload event (event handler)