| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 2105f09 commit 9ed9aa8
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1022,12 +1022,12 @@ function makeEventHandler(handler) { | |||
| 1022 | 1022 | return eventHandler; | |
| 1023 | 1023 | } | |
| 1024 | 1024 | ||
| 1025 | - function defineEventHandler(emitter, name) { | ||
| 1025 | + function defineEventHandler(emitter, name, event = name) { | ||
| 1026 | 1026 | // 8.1.5.1 Event handlers - basically `on[eventName]` attributes | |
| 1027 | 1027 | const propName = `on${name}`; | |
| 1028 | 1028 | function get() { | |
| 1029 | 1029 | validateInternalField(this, kHandlers, 'EventTarget'); | |
| 1030 | - return this[kHandlers]?.get(name)?.handler ?? null; | ||
| 1030 | + return this[kHandlers]?.get(event)?.handler ?? null; | ||
| 1031 | 1031 | } | |
| 1032 | 1032 | ObjectDefineProperty(get, 'name', { | |
| 1033 | 1033 | __proto__: null, | |
@@ -1036,24 +1036,24 @@ function defineEventHandler(emitter, name) { | |||
| 1036 | 1036 | ||
| 1037 | 1037 | function set(value) { | |
| 1038 | 1038 | validateInternalField(this, kHandlers, 'EventTarget'); | |
| 1039 | - let wrappedHandler = this[kHandlers]?.get(name); | ||
| 1039 | + let wrappedHandler = this[kHandlers]?.get(event); | ||
| 1040 | 1040 | if (wrappedHandler) { | |
| 1041 | 1041 | if (typeof wrappedHandler.handler === 'function') { | |
| 1042 | - this[kEvents].get(name).size--; | ||
| 1043 | - const size = this[kEvents].get(name).size; | ||
| 1044 | - this[kRemoveListener](size, name, wrappedHandler.handler, false); | ||
| 1042 | + this[kEvents].get(event).size--; | ||
| 1043 | + const size = this[kEvents].get(event).size; | ||
| 1044 | + this[kRemoveListener](size, event, wrappedHandler.handler, false); | ||
| 1045 | 1045 | } | |
| 1046 | 1046 | wrappedHandler.handler = value; | |
| 1047 | 1047 | if (typeof wrappedHandler.handler === 'function') { | |
| 1048 | - this[kEvents].get(name).size++; | ||
| 1049 | - const size = this[kEvents].get(name).size; | ||
| 1050 | - this[kNewListener](size, name, value, false, false, false, false); | ||
| 1048 | + this[kEvents].get(event).size++; | ||
| 1049 | + const size = this[kEvents].get(event).size; | ||
| 1050 | + this[kNewListener](size, event, value, false, false, false, false); | ||
| 1051 | 1051 | } | |
| 1052 | 1052 | } else { | |
| 1053 | 1053 | wrappedHandler = makeEventHandler(value); | |
| 1054 | - this.addEventListener(name, wrappedHandler); | ||
| 1054 | + this.addEventListener(event, wrappedHandler); | ||
| 1055 | 1055 | } | |
| 1056 | - this[kHandlers].set(name, wrappedHandler); | ||
| 1056 | + this[kHandlers].set(event, wrappedHandler); | ||
| 1057 | 1057 | } | |
| 1058 | 1058 | ObjectDefineProperty(set, 'name', { | |
| 1059 | 1059 | __proto__: null, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -614,6 +614,15 @@ let asyncTest = Promise.resolve(); | |||
| 614 | 614 | target.dispatchEvent(new Event('foo')); | |
| 615 | 615 | deepStrictEqual(output, [1, 2, 3, 4]); | |
| 616 | 616 | } | |
| 617 | + { | ||
| 618 | + const target = new EventTarget(); | ||
| 619 | + defineEventHandler(target, 'foo', 'bar'); | ||
| 620 | + const output = []; | ||
| 621 | + target.addEventListener('bar', () => output.push(1)); | ||
| 622 | + target.onfoo = () => output.push(2); | ||
| 623 | + target.dispatchEvent(new Event('bar')); | ||
| 624 | + deepStrictEqual(output, [1, 2]); | ||
| 625 | + } | ||
| 617 | 626 | { | |
| 618 | 627 | const et = new EventTarget(); | |
| 619 | 628 | const listener = common.mustNotCall(); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments