Sha256: af11a8600e6383ed6382f128f664d34f9bb1de001ddaa9c4ac6df3abdb7f6de5

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

"use strict";

const { setupForSimpleEventAccessors } = require("../helpers/create-event-accessor");
const { fireAnEvent } = require("../helpers/events");
const EventTargetImpl = require("../events/EventTarget-impl").implementation;
const AbortSignal = require("../generated/AbortSignal");

class AbortSignalImpl extends EventTargetImpl {
  constructor(globalObject, args, privateData) {
    super(globalObject, args, privateData);

    // make event firing possible
    this._ownerDocument = globalObject.document;

    this.aborted = false;
    this.abortAlgorithms = new Set();
  }

  static abort(globalObject) {
    const abortSignal = AbortSignal.createImpl(globalObject, []);
    abortSignal.aborted = true;
    return abortSignal;
  }

  _signalAbort() {
    if (this.aborted) {
      return;
    }
    this.aborted = true;

    for (const algorithm of this.abortAlgorithms) {
      algorithm();
    }
    this.abortAlgorithms.clear();

    fireAnEvent("abort", this);
  }

  _addAlgorithm(algorithm) {
    if (this.aborted) {
      return;
    }
    this.abortAlgorithms.add(algorithm);
  }

  _removeAlgorithm(algorithm) {
    this.abortAlgorithms.delete(algorithm);
  }
}

setupForSimpleEventAccessors(AbortSignalImpl.prototype, ["abort"]);

module.exports = {
  implementation: AbortSignalImpl
};

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
appmap-0.72.2 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.72.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.72.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.71.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.70.2 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.70.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.70.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.69.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.68.2 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.68.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.68.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.67.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.67.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.66.2 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.66.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.66.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.65.1 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.65.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.64.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
appmap-0.63.0 ./node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js