@dxos/async 0.8.4-staging.ac66bdf99f → 0.9.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/LICENSE +102 -5
- package/dist/lib/browser/index.mjs +28 -85
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +28 -85
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/callback.d.ts.map +1 -1
- package/dist/types/src/chain.d.ts.map +1 -1
- package/dist/types/src/cleanup.d.ts.map +1 -1
- package/dist/types/src/debounce.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/event-emitter.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/mutex.d.ts.map +1 -1
- package/dist/types/src/observable-value.d.ts.map +1 -1
- package/dist/types/src/observable.d.ts.map +1 -1
- package/dist/types/src/persistent-lifecycle.d.ts +1 -0
- package/dist/types/src/persistent-lifecycle.d.ts.map +1 -1
- package/dist/types/src/stream-to-array.d.ts.map +1 -1
- package/dist/types/src/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/test-stream.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/timeout.d.ts.map +1 -1
- package/dist/types/src/timer.d.ts.map +1 -1
- package/dist/types/src/track-leaks.d.ts.map +1 -1
- package/dist/types/src/trigger.d.ts.map +1 -1
- package/dist/types/src/update-scheduler.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -11
- package/src/persistent-lifecycle.test.ts +36 -0
- package/src/persistent-lifecycle.ts +31 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/callback.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/callback.ts":{"bytes":1516,"imports":[],"format":"esm"},"src/chain.ts":{"bytes":1547,"imports":[],"format":"esm"},"src/cleanup.ts":{"bytes":6733,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/debounce.ts":{"bytes":9093,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2838,"imports":[],"format":"esm"},"src/timeout.ts":{"bytes":7524,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/event-emitter.ts":{"bytes":4075,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/events.ts":{"bytes":39225,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"src/mutex.ts":{"bytes":12575,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/trigger.ts":{"bytes":13827,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/observable.ts":{"bytes":17747,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/observable-value.ts":{"bytes":6361,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/track-leaks.ts":{"bytes":7844,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/task-scheduling.ts":{"bytes":23346,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/persistent-lifecycle.ts":{"bytes":15479,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/push-iterable.ts":{"bytes":5570,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/stream-to-array.ts":{"bytes":4853,"imports":[],"format":"esm"},"src/test-stream.ts":{"bytes":4960,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/testing.ts":{"bytes":8314,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/timer.ts":{"bytes":5803,"imports":[{"path":"src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"src/update-scheduler.ts":{"bytes":9619,"imports":[{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"src/index.ts":{"bytes":2259,"imports":[{"path":"src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":105548},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true}],"exports":["AsyncTask","CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addEventListener","addListener","asyncReturn","asyncTimeout","chain","combine","debounce","debounceAndThrottle","delay","dumpLeaks","interval","latch","makePushIterable","observableError","onEvent","promiseFromCallback","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sleep","sleepWithContext","streamToArray","synchronized","throttle","timeout","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"src/index.ts","inputs":{"src/callback.ts":{"bytesInOutput":185},"src/index.ts":{"bytesInOutput":0},"src/chain.ts":{"bytesInOutput":216},"src/cleanup.ts":{"bytesInOutput":1090},"src/debounce.ts":{"bytesInOutput":1032},"src/errors.ts":{"bytesInOutput":476},"src/timeout.ts":{"bytesInOutput":1479},"src/event-emitter.ts":{"bytesInOutput":697},"src/events.ts":{"bytesInOutput":8516},"src/mutex.ts":{"bytesInOutput":2429},"src/observable.ts":{"bytesInOutput":3691},"src/trigger.ts":{"bytesInOutput":2831},"src/observable-value.ts":{"bytesInOutput":951},"src/persistent-lifecycle.ts":{"bytesInOutput":3433},"src/task-scheduling.ts":{"bytesInOutput":4964},"src/track-leaks.ts":{"bytesInOutput":1691},"src/push-iterable.ts":{"bytesInOutput":1145},"src/stream-to-array.ts":{"bytesInOutput":967},"src/test-stream.ts":{"bytesInOutput":915},"src/testing.ts":{"bytesInOutput":1419},"src/timer.ts":{"bytesInOutput":1065},"src/update-scheduler.ts":{"bytesInOutput":1952}},"bytes":42653}}}
|
|
@@ -217,7 +217,6 @@ var waitForEvent = (eventEmitter, eventName, test, timeout2, error) => {
|
|
|
217
217
|
|
|
218
218
|
// src/events.ts
|
|
219
219
|
import { Context } from "@dxos/context";
|
|
220
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/common/async/src/events.ts";
|
|
221
220
|
var DO_NOT_ERROR_ON_ASYNC_CALLBACK = true;
|
|
222
221
|
var Event = class _Event {
|
|
223
222
|
/**
|
|
@@ -272,10 +271,7 @@ var Event = class _Event {
|
|
|
272
271
|
_ctx,
|
|
273
272
|
_callback
|
|
274
273
|
] : [
|
|
275
|
-
new Context(
|
|
276
|
-
F: __dxlog_file,
|
|
277
|
-
L: 132
|
|
278
|
-
}),
|
|
274
|
+
new Context(),
|
|
279
275
|
_ctx
|
|
280
276
|
];
|
|
281
277
|
const weak = !!options?.weak;
|
|
@@ -305,10 +301,7 @@ var Event = class _Event {
|
|
|
305
301
|
_ctx,
|
|
306
302
|
_callback
|
|
307
303
|
] : [
|
|
308
|
-
new Context(
|
|
309
|
-
F: __dxlog_file,
|
|
310
|
-
L: 169
|
|
311
|
-
}),
|
|
304
|
+
new Context(),
|
|
312
305
|
_ctx
|
|
313
306
|
];
|
|
314
307
|
const listener = new EventListener(this, callback, ctx, true, false);
|
|
@@ -642,7 +635,6 @@ import PushStream from "zen-push";
|
|
|
642
635
|
|
|
643
636
|
// src/trigger.ts
|
|
644
637
|
import { invariant } from "@dxos/invariant";
|
|
645
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/trigger.ts";
|
|
646
638
|
var trigger = (timeout2) => {
|
|
647
639
|
let callback;
|
|
648
640
|
const promise = new Promise((resolve, reject) => {
|
|
@@ -734,15 +726,7 @@ var Trigger = class {
|
|
|
734
726
|
}
|
|
735
727
|
};
|
|
736
728
|
var latch = ({ count = 1, timeout: timeout2 } = {}) => {
|
|
737
|
-
invariant(count >= 0
|
|
738
|
-
F: __dxlog_file2,
|
|
739
|
-
L: 139,
|
|
740
|
-
S: void 0,
|
|
741
|
-
A: [
|
|
742
|
-
"count >= 0",
|
|
743
|
-
""
|
|
744
|
-
]
|
|
745
|
-
});
|
|
729
|
+
invariant(count >= 0);
|
|
746
730
|
let t;
|
|
747
731
|
let doResolve;
|
|
748
732
|
let doReject;
|
|
@@ -945,7 +929,6 @@ import { StackTrace as StackTrace2 } from "@dxos/debug";
|
|
|
945
929
|
// src/track-leaks.ts
|
|
946
930
|
import { StackTrace } from "@dxos/debug";
|
|
947
931
|
import { log } from "@dxos/log";
|
|
948
|
-
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/async/src/track-leaks.ts";
|
|
949
932
|
var enabled = typeof process !== "undefined" && !!process.env.DX_TRACK_LEAKS;
|
|
950
933
|
var openResources = /* @__PURE__ */ new Set();
|
|
951
934
|
var handleSymbol = /* @__PURE__ */ Symbol("checkLeaksHandle");
|
|
@@ -995,31 +978,11 @@ var dumpLeaks = () => {
|
|
|
995
978
|
if (!enabled) {
|
|
996
979
|
return;
|
|
997
980
|
}
|
|
998
|
-
log.info(`Leaked resources ${openResources.size}
|
|
999
|
-
F: __dxlog_file3,
|
|
1000
|
-
L: 82,
|
|
1001
|
-
S: void 0,
|
|
1002
|
-
C: (f, a) => f(...a)
|
|
1003
|
-
});
|
|
981
|
+
log.info(`Leaked resources ${openResources.size}:`);
|
|
1004
982
|
for (const resource of openResources) {
|
|
1005
|
-
log.info(`- ${resource.name} at
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
S: void 0,
|
|
1009
|
-
C: (f, a) => f(...a)
|
|
1010
|
-
});
|
|
1011
|
-
log.info(resource.openStack.getStack(1), void 0, {
|
|
1012
|
-
F: __dxlog_file3,
|
|
1013
|
-
L: 85,
|
|
1014
|
-
S: void 0,
|
|
1015
|
-
C: (f, a) => f(...a)
|
|
1016
|
-
});
|
|
1017
|
-
log.info("\n", void 0, {
|
|
1018
|
-
F: __dxlog_file3,
|
|
1019
|
-
L: 86,
|
|
1020
|
-
S: void 0,
|
|
1021
|
-
C: (f, a) => f(...a)
|
|
1022
|
-
});
|
|
983
|
+
log.info(`- ${resource.name} at`);
|
|
984
|
+
log.info(resource.openStack.getStack(1));
|
|
985
|
+
log.info("\n");
|
|
1023
986
|
}
|
|
1024
987
|
};
|
|
1025
988
|
if (enabled) {
|
|
@@ -1027,7 +990,6 @@ if (enabled) {
|
|
|
1027
990
|
}
|
|
1028
991
|
|
|
1029
992
|
// src/task-scheduling.ts
|
|
1030
|
-
var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/task-scheduling.ts";
|
|
1031
993
|
var DeferredTask = class {
|
|
1032
994
|
_ctx;
|
|
1033
995
|
_callback;
|
|
@@ -1094,10 +1056,7 @@ var AsyncTask = class {
|
|
|
1094
1056
|
* When the context is disposed, the task is cancelled and cannot be scheduled again.
|
|
1095
1057
|
*/
|
|
1096
1058
|
open() {
|
|
1097
|
-
this.#ctx = new Context2(
|
|
1098
|
-
F: __dxlog_file4,
|
|
1099
|
-
L: 102
|
|
1100
|
-
});
|
|
1059
|
+
this.#ctx = new Context2();
|
|
1101
1060
|
}
|
|
1102
1061
|
/**
|
|
1103
1062
|
* Closes the task and waits for it to finish if it is running.
|
|
@@ -1238,9 +1197,9 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
1238
1197
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1239
1198
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1240
1199
|
}
|
|
1241
|
-
var __dxlog_file5 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecycle.ts";
|
|
1242
1200
|
var INIT_RESTART_DELAY = 100;
|
|
1243
1201
|
var DEFAULT_MAX_RESTART_DELAY = 5e3;
|
|
1202
|
+
var STABLE_CONNECTION_THRESHOLD = 5e3;
|
|
1244
1203
|
var PersistentLifecycle = class extends Resource {
|
|
1245
1204
|
_start;
|
|
1246
1205
|
_stop;
|
|
@@ -1249,6 +1208,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1249
1208
|
_currentState = void 0;
|
|
1250
1209
|
_restartTask = void 0;
|
|
1251
1210
|
_restartAfter = 0;
|
|
1211
|
+
_connectedAt = void 0;
|
|
1252
1212
|
constructor({ start, stop, onRestart, maxRestartDelay = DEFAULT_MAX_RESTART_DELAY }) {
|
|
1253
1213
|
super();
|
|
1254
1214
|
this._start = start;
|
|
@@ -1264,29 +1224,27 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1264
1224
|
try {
|
|
1265
1225
|
await this._restart();
|
|
1266
1226
|
} catch (err) {
|
|
1227
|
+
if (this._ctx?.disposed) {
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1267
1230
|
log2.warn("Restart failed", {
|
|
1268
1231
|
err
|
|
1269
|
-
}, {
|
|
1270
|
-
F: __dxlog_file5,
|
|
1271
|
-
L: 72,
|
|
1272
|
-
S: this,
|
|
1273
|
-
C: (f, a) => f(...a)
|
|
1274
1232
|
});
|
|
1275
1233
|
this._restartTask?.schedule();
|
|
1276
1234
|
}
|
|
1277
1235
|
});
|
|
1278
|
-
|
|
1236
|
+
try {
|
|
1237
|
+
this._currentState = await this._start();
|
|
1238
|
+
this._connectedAt = Date.now();
|
|
1239
|
+
} catch (err) {
|
|
1240
|
+
if (this._ctx?.disposed) {
|
|
1241
|
+
return;
|
|
1242
|
+
}
|
|
1279
1243
|
log2.warn("Start failed", {
|
|
1280
1244
|
err
|
|
1281
|
-
}, {
|
|
1282
|
-
F: __dxlog_file5,
|
|
1283
|
-
L: 78,
|
|
1284
|
-
S: this,
|
|
1285
|
-
C: (f, a) => f(...a)
|
|
1286
1245
|
});
|
|
1287
1246
|
this._restartTask?.schedule();
|
|
1288
|
-
|
|
1289
|
-
});
|
|
1247
|
+
}
|
|
1290
1248
|
}
|
|
1291
1249
|
async _close() {
|
|
1292
1250
|
await this._restartTask?.join();
|
|
@@ -1296,12 +1254,11 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1296
1254
|
async _restart() {
|
|
1297
1255
|
log2(`restarting in ${this._restartAfter}ms`, {
|
|
1298
1256
|
state: this._lifecycleState
|
|
1299
|
-
}, {
|
|
1300
|
-
F: __dxlog_file5,
|
|
1301
|
-
L: 91,
|
|
1302
|
-
S: this,
|
|
1303
|
-
C: (f, a) => f(...a)
|
|
1304
1257
|
});
|
|
1258
|
+
if (this._connectedAt !== void 0 && Date.now() - this._connectedAt >= STABLE_CONNECTION_THRESHOLD) {
|
|
1259
|
+
this._restartAfter = 0;
|
|
1260
|
+
}
|
|
1261
|
+
this._connectedAt = void 0;
|
|
1305
1262
|
await this._stopCurrentState();
|
|
1306
1263
|
if (this._lifecycleState !== LifecycleState.OPEN) {
|
|
1307
1264
|
return;
|
|
@@ -1311,7 +1268,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1311
1268
|
await warnAfterTimeout2(5e3, "Connection establishment takes too long", async () => {
|
|
1312
1269
|
this._currentState = await this._start();
|
|
1313
1270
|
});
|
|
1314
|
-
this.
|
|
1271
|
+
this._connectedAt = Date.now();
|
|
1315
1272
|
await this._onRestart?.();
|
|
1316
1273
|
}
|
|
1317
1274
|
async _stopCurrentState() {
|
|
@@ -1319,12 +1276,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1319
1276
|
try {
|
|
1320
1277
|
await this._stop(this._currentState);
|
|
1321
1278
|
} catch (err) {
|
|
1322
|
-
log2.catch(err
|
|
1323
|
-
F: __dxlog_file5,
|
|
1324
|
-
L: 113,
|
|
1325
|
-
S: this,
|
|
1326
|
-
C: (f, a) => f(...a)
|
|
1327
|
-
});
|
|
1279
|
+
log2.catch(err);
|
|
1328
1280
|
}
|
|
1329
1281
|
this._currentState = void 0;
|
|
1330
1282
|
}
|
|
@@ -1348,7 +1300,6 @@ _ts_decorate([
|
|
|
1348
1300
|
|
|
1349
1301
|
// src/push-iterable.ts
|
|
1350
1302
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
1351
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/common/async/src/push-iterable.ts";
|
|
1352
1303
|
var makePushIterable = () => {
|
|
1353
1304
|
const buf = [];
|
|
1354
1305
|
const trigger2 = new Trigger({
|
|
@@ -1362,15 +1313,7 @@ var makePushIterable = () => {
|
|
|
1362
1313
|
await trigger2.wait();
|
|
1363
1314
|
}
|
|
1364
1315
|
const item = buf.shift();
|
|
1365
|
-
invariant2(item
|
|
1366
|
-
F: __dxlog_file6,
|
|
1367
|
-
L: 42,
|
|
1368
|
-
S: this,
|
|
1369
|
-
A: [
|
|
1370
|
-
"item",
|
|
1371
|
-
""
|
|
1372
|
-
]
|
|
1373
|
-
});
|
|
1316
|
+
invariant2(item);
|
|
1374
1317
|
switch (item.kind) {
|
|
1375
1318
|
case "next":
|
|
1376
1319
|
return {
|