Skip to content

Commit

Permalink
lib: improve transferable abort controller exec
Browse files Browse the repository at this point in the history
PR-URL: nodejs#45525
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
  • Loading branch information
anonrig committed Jan 3, 2023
1 parent 29fa2da commit 12bf9b8
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions lib/internal/abort_controller.js
Expand Up @@ -318,27 +318,21 @@ function validateAbortController(obj) {
}

class AbortController {
#signal;

constructor() {
this[kSignal] = createAbortSignal();
}

/**
* @type {AbortSignal}
*/
get signal() {
validateAbortController(this);
this.#signal ??= createAbortSignal();
return this.#signal;
this[kSignal] ??= createAbortSignal();
return this[kSignal];
}

/**
* @param {any} reason
*/
abort(reason = new DOMException('This operation was aborted', 'AbortError')) {
validateAbortController(this);
abortSignal(this.#signal ??= createAbortSignal(), reason);
abortSignal(this[kSignal] ??= createAbortSignal(), reason);
}

[customInspectSymbol](depth, options) {
Expand All @@ -349,7 +343,7 @@ class AbortController {

static [kMakeTransferable]() {
const controller = new AbortController();
controller[kSignal] = transferableAbortSignal(controller[kSignal]);
controller[kSignal] = createAbortSignal({ transferable: true });
return controller;
}
}
Expand Down

0 comments on commit 12bf9b8

Please sign in to comment.