mobx 6.9.1 → 6.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mobx.esm.js CHANGED
@@ -2252,10 +2252,15 @@ var Reaction = /*#__PURE__*/function () {
2252
2252
  }
2253
2253
  }
2254
2254
  };
2255
- _proto.getDisposer_ = function getDisposer_() {
2256
- var r = this.dispose.bind(this);
2257
- r[$mobx] = this;
2258
- return r;
2255
+ _proto.getDisposer_ = function getDisposer_(abortSignal) {
2256
+ var _this2 = this;
2257
+ var dispose = function dispose() {
2258
+ _this2.dispose();
2259
+ abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener("abort", dispose);
2260
+ };
2261
+ abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener("abort", dispose);
2262
+ dispose[$mobx] = this;
2263
+ return dispose;
2259
2264
  };
2260
2265
  _proto.toString = function toString() {
2261
2266
  return "Reaction[" + this.name_ + "]";
@@ -2441,7 +2446,7 @@ function isAction(thing) {
2441
2446
  * @returns disposer function, which can be used to stop the view from being updated in the future.
2442
2447
  */
2443
2448
  function autorun(view, opts) {
2444
- var _opts$name, _opts;
2449
+ var _opts$name, _opts, _opts2, _opts2$signal, _opts3;
2445
2450
  if (opts === void 0) {
2446
2451
  opts = EMPTY_OBJECT;
2447
2452
  }
@@ -2480,8 +2485,10 @@ function autorun(view, opts) {
2480
2485
  function reactionRunner() {
2481
2486
  view(reaction);
2482
2487
  }
2483
- reaction.schedule_();
2484
- return reaction.getDisposer_();
2488
+ if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {
2489
+ reaction.schedule_();
2490
+ }
2491
+ return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);
2485
2492
  }
2486
2493
  var run = function run(f) {
2487
2494
  return f();
@@ -2492,7 +2499,7 @@ function createSchedulerFromOptions(opts) {
2492
2499
  } : run;
2493
2500
  }
2494
2501
  function reaction(expression, effect, opts) {
2495
- var _opts$name2;
2502
+ var _opts$name2, _opts4, _opts4$signal, _opts5;
2496
2503
  if (opts === void 0) {
2497
2504
  opts = EMPTY_OBJECT;
2498
2505
  }
@@ -2542,8 +2549,10 @@ function reaction(expression, effect, opts) {
2542
2549
  }
2543
2550
  firstTime = false;
2544
2551
  }
2545
- r.schedule_();
2546
- return r.getDisposer_();
2552
+ if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {
2553
+ r.schedule_();
2554
+ }
2555
+ return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);
2547
2556
  }
2548
2557
  function wrapErrorHandler(errorHandler, baseFn) {
2549
2558
  return function () {