From 36b34c2ece549c2e7477383fd6048018e2126e50 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Mon, 29 Nov 2021 08:08:40 -0800 Subject: [PATCH 1/2] events: propagate weak option for kNewListener Signed-off-by: James M Snell --- lib/internal/event_target.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index ddab605c8a3c6a..e962c8b02399f4 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -371,7 +371,7 @@ class EventTarget { initEventTarget(this); } - [kNewListener](size, type, listener, once, capture, passive) { + [kNewListener](size, type, listener, once, capture, passive, weak) { if (this[kMaxEventTargetListeners] > 0 && size > this[kMaxEventTargetListeners] && !this[kMaxEventTargetListenersWarned]) { @@ -440,7 +440,14 @@ class EventTarget { // This is the first handler in our linked list. new Listener(root, listener, once, capture, passive, isNodeStyleListener, weak); - this[kNewListener](root.size, type, listener, once, capture, passive); + this[kNewListener]( + root.size, + type, + listener, + once, + capture, + passive, + weak); this[kEvents].set(type, root); return; } @@ -461,7 +468,7 @@ class EventTarget { new Listener(previous, listener, once, capture, passive, isNodeStyleListener, weak); root.size++; - this[kNewListener](root.size, type, listener, once, capture, passive); + this[kNewListener](root.size, type, listener, once, capture, passive, weak); } removeEventListener(type, listener, options = {}) { @@ -811,7 +818,7 @@ function defineEventHandler(emitter, name) { if (typeof wrappedHandler.handler === 'function') { this[kEvents].get(name).size++; const size = this[kEvents].get(name).size; - this[kNewListener](size, name, value, false, false, false); + this[kNewListener](size, name, value, false, false, false, false); } } else { wrappedHandler = makeEventHandler(value); From a51b4b2c4ffa9b3e1d33bff35e3c8d2bfbeb0a70 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Sat, 20 Nov 2021 12:55:05 -0800 Subject: [PATCH 2/2] lib: add AbortSignal.timeout Refs: https://github.com/whatwg/dom/pull/1032 Signed-off-by: James M Snell --- doc/api/globals.md | 11 ++++ lib/internal/abort_controller.js | 85 ++++++++++++++++++++++++++- test/parallel/test-abortcontroller.js | 81 ++++++++++++++++++++++++- 3 files changed, 174 insertions(+), 3 deletions(-) diff --git a/doc/api/globals.md b/doc/api/globals.md index 88e9aad9df21f8..c41ec06b118fdc 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -104,6 +104,17 @@ changes: Returns a new already aborted `AbortSignal`. +#### Static method: `AbortSignal.timeout(delay)` + + + +* `delay` {number} The number of milliseconds to wait before triggering + the AbortSignal. + +Returns a new `AbortSignal` which will be aborted in `delay` milliseconds. + #### Event: `'abort'`