summaryrefslogtreecommitdiff
path: root/cli/js2/02_abort_signal.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js2/02_abort_signal.js')
-rw-r--r--cli/js2/02_abort_signal.js75
1 files changed, 0 insertions, 75 deletions
diff --git a/cli/js2/02_abort_signal.js b/cli/js2/02_abort_signal.js
deleted file mode 100644
index cd38fff64..000000000
--- a/cli/js2/02_abort_signal.js
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-
-((window) => {
- const add = Symbol("add");
- const signalAbort = Symbol("signalAbort");
- const remove = Symbol("remove");
-
- class AbortSignal extends EventTarget {
- #aborted = false;
- #abortAlgorithms = new Set();
-
- [add](algorithm) {
- this.#abortAlgorithms.add(algorithm);
- }
-
- [signalAbort]() {
- if (this.#aborted) {
- return;
- }
- this.#aborted = true;
- for (const algorithm of this.#abortAlgorithms) {
- algorithm();
- }
- this.#abortAlgorithms.clear();
- this.dispatchEvent(new Event("abort"));
- }
-
- [remove](algorithm) {
- this.#abortAlgorithms.delete(algorithm);
- }
-
- constructor() {
- super();
- this.onabort = null;
- this.addEventListener("abort", (evt) => {
- const { onabort } = this;
- if (typeof onabort === "function") {
- onabort.call(this, evt);
- }
- });
- }
-
- get aborted() {
- return Boolean(this.#aborted);
- }
-
- get [Symbol.toStringTag]() {
- return "AbortSignal";
- }
- }
-
- class AbortController {
- #signal = new AbortSignal();
-
- get signal() {
- return this.#signal;
- }
-
- abort() {
- this.#signal[signalAbort]();
- }
-
- get [Symbol.toStringTag]() {
- return "AbortController";
- }
- }
-
- window.__bootstrap.abortSignal = {
- AbortSignal,
- add,
- signalAbort,
- remove,
- AbortController,
- };
-})(this);