| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Use a different flag to prevent recursive dispatching.
| // API completeness. | ||
|
|
||
| composedPath() { return this[kTarget] ? [this[kTarget]] : []; } | ||
| composedPath() { return this[kIsBeingDispatched] ? [this[kTarget]] : []; } |
There was a problem hiding this comment.
Unrelated to this PR: Chromium and Safari both return an empty array when dispatching an event. Firefox has the same behavior as Node.js. I couldn't find which behavior is spec compliant.
{
// Same event dispatched multiple times.
const event = new Event('foo');
const eventTarget1 = new EventTarget();
const eventTarget2 = new EventTarget();
eventTarget1.addEventListener('foo', ((event) => {
console.log(event.target===eventTarget1, event.eventPhase===Event.AT_TARGET); // true true
const path = event.composedPath();
console.log(path.length === 1, path[0]===eventTarget1); // depends on the browser:
// On Firefox + Node.js: true true
// On Safari + Chromium : false false
}));
eventTarget2.addEventListener('foo', ((event) => {
console.log(event.target===eventTarget2, event.eventPhase===Event.AT_TARGET); // true true
const path = event.composedPath();
console.log(path.length === 1, path[0]===eventTarget2); // depends on the browser
}));
eventTarget1.dispatchEvent(event);
console.log(event.target===eventTarget1, event.eventPhase===Event.NONE); // true true
console.log(event.composedPath().length === 0); // true
eventTarget2.dispatchEvent(event);
console.log(event.target===eventTarget2, event.eventPhase===Event.NONE); // true true
console.log(event.composedPath().length === 0); // true
}
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
Use a different flag to prevent recursive dispatching. PR-URL: #39395 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Use a different flag to prevent recursive dispatching. PR-URL: #39395 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Use a different flag to prevent recursive dispatching. PR-URL: #39395 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Fast path for EventTarget dispatch with no listeners didn't reset kIsBeingDispatched flag, meaning same event couldn't be dispatched multiple times. Refs: nodejs#39395
Fast path for EventTarget dispatch with no listeners didn't reset kIsBeingDispatched flag, meaning same event couldn't be dispatched multiple times. PR-URL: #39772 Refs: #39395 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Fast path for EventTarget dispatch with no listeners didn't reset kIsBeingDispatched flag, meaning same event couldn't be dispatched multiple times. PR-URL: #39772 Refs: #39395 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
| Back | FazBrowse Home | New Git URL |
Use a different flag to prevent recursive dispatching.