summaryrefslogtreecommitdiff
path: root/js/event_target_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/event_target_test.ts')
-rw-r--r--js/event_target_test.ts31
1 files changed, 30 insertions, 1 deletions
diff --git a/js/event_target_test.ts b/js/event_target_test.ts
index 34c486b9f..9d7e7974c 100644
--- a/js/event_target_test.ts
+++ b/js/event_target_test.ts
@@ -88,7 +88,7 @@ test(function constructedEventTargetUseObjectPrototype(): void {
assertEquals(callCount, 2);
});
-test(function toStringShouldBeWebCompatibility(): void {
+test(function toStringShouldBeWebCompatible(): void {
const target = new EventTarget();
assertEquals(target.toString(), "[object EventTarget]");
});
@@ -111,3 +111,32 @@ test(function dispatchEventShouldNotThrowError(): void {
assertEquals(hasThrown, false);
});
+
+test(function eventTargetThisShouldDefaultToWindow(): void {
+ const {
+ addEventListener,
+ dispatchEvent,
+ removeEventListener
+ } = EventTarget.prototype;
+ let n = 1;
+ const event = new Event("hello");
+ const listener = (): void => {
+ n = 2;
+ };
+
+ addEventListener("hello", listener);
+ window.dispatchEvent(event);
+ assertEquals(n, 2);
+ n = 1;
+ removeEventListener("hello", listener);
+ window.dispatchEvent(event);
+ assertEquals(n, 1);
+
+ window.addEventListener("hello", listener);
+ dispatchEvent(event);
+ assertEquals(n, 2);
+ n = 1;
+ window.removeEventListener("hello", listener);
+ dispatchEvent(event);
+ assertEquals(n, 1);
+});