diff options
author | Nayeem Rahman <muhammed.9939@gmail.com> | 2019-09-11 17:53:01 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-09-11 12:53:01 -0400 |
commit | a1976236d97c12ee2ba305d5a1cf435d16dd0c2e (patch) | |
tree | 3fd63d6c7ae6908f8f2b8c6d10e545517912004b /js/event_target_test.ts | |
parent | 85c51404aed21813df34c518a00c52a564d6fc69 (diff) |
Default 'this' to window in EventTarget (#2918)
Diffstat (limited to 'js/event_target_test.ts')
-rw-r--r-- | js/event_target_test.ts | 31 |
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); +}); |