From f3835c7b9499f8a6cea5d7163c3ec091624afce8 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Fri, 27 Apr 2018 16:31:28 +0200 Subject: [PATCH 1/2] Introduce "remove an event listener" primitive This is needed for document.open(): https://github.com/whatwg/html/issues/2302. --- dom.bs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dom.bs b/dom.bs index 789b5a800..f20aee279 100644 --- a/dom.bs +++ b/dom.bs @@ -1101,6 +1101,13 @@ method, when invoked, must run these steps: once. +

To remove an event listener, given an {{EventTarget}} object +eventTarget and an event listener listener, set listener's +removed to true and remove listener from +eventTarget's event listener list. + +

HTML needs this to define document.open(). [[HTML]] +

The removeEventListener(type, callback, options) method, when invoked, must run these steps: @@ -1117,9 +1124,8 @@ method, when invoked, must run these steps:

  • If the context object's event listener list contains an event listener whose type is type, callback is callback, and - capture is capture, then set that event listener's - removed to true and remove it from the - context object's event listener list. + capture is capture, then remove an event listener + with the context object and that event listener.

    The dispatchEvent(event) method, when From 4b7bb04ac721bb77cb52ff18242eebd1cdb2de72 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Fri, 27 Apr 2018 16:42:13 +0200 Subject: [PATCH 2/2] add remove all listeners: rationale: don't want other specs poking at "event listener list" --- dom.bs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dom.bs b/dom.bs index f20aee279..0aba1e66a 100644 --- a/dom.bs +++ b/dom.bs @@ -1101,10 +1101,16 @@ method, when invoked, must run these steps: once. -

    To remove an event listener, given an {{EventTarget}} object -eventTarget and an event listener listener, set listener's +

    To remove an event listener, given an {{EventTarget}} object eventTarget +and an event listener listener, set listener's removed to true and remove listener from eventTarget's event listener list. + + +

    To remove all event listeners, given an {{EventTarget}} object +eventTarget, for each listener of eventTarget's +event listener list, remove an event listener with +eventTarget and listener.

    HTML needs this to define document.open(). [[HTML]]