@my-react/react-reconciler-compact 0.0.8 → 0.0.9

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.
@@ -311,6 +311,7 @@ function requireIndex_development_1 () {
311
311
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
312
312
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
313
313
  STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
314
+ STATE_TYPE[STATE_TYPE["__suspense__"] = 4096] = "__suspense__";
314
315
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
315
316
 
316
317
  exports.PATCH_TYPE = void 0;
@@ -1391,7 +1392,7 @@ function requireIndex_development_1 () {
1391
1392
  }
1392
1393
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__empty__);
1393
1394
  }
1394
- else if (element === null || element === undefined || typeof element === "boolean" || typeof element === "function") {
1395
+ else if (element === null || element === undefined || typeof element === "boolean" || typeof element === "function" || element === "") {
1395
1396
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__null__);
1396
1397
  }
1397
1398
  else {
@@ -1519,7 +1520,7 @@ function requireIndex_development_1 () {
1519
1520
  throw new Error("[@my-react/react] invalid symbol element type \"".concat(elementType === null || elementType === void 0 ? void 0 : elementType.toString(), "\""));
1520
1521
  }
1521
1522
  }
1522
- else if (typeof elementType === "string") {
1523
+ else if (typeof elementType === "string" && elementType !== "") {
1523
1524
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__plain__);
1524
1525
  }
1525
1526
  else {
@@ -1567,7 +1568,17 @@ function requireIndex_development_1 () {
1567
1568
  return new Set(Array.from(fibers || []).map(function (fiber) { return fiberToDispatchMap.get(fiber); }));
1568
1569
  };
1569
1570
  var getCurrentDispatchFromFiber = function (fiber) {
1570
- return fiberToDispatchMap.get(fiber);
1571
+ var dispatch = fiberToDispatchMap.get(fiber);
1572
+ if (dispatch)
1573
+ return dispatch;
1574
+ var parent = fiber.parent;
1575
+ while (parent) {
1576
+ var typedFiberRoot = parent;
1577
+ if (typedFiberRoot.renderDispatch) {
1578
+ return typedFiberRoot.renderDispatch;
1579
+ }
1580
+ parent = parent.parent;
1581
+ }
1571
1582
  };
1572
1583
  var getElementFromRefreshIfExist = function (element) {
1573
1584
  var _a, _b;
@@ -1636,10 +1647,10 @@ function requireIndex_development_1 () {
1636
1647
  var dispatchError = function (_params) {
1637
1648
  var fiber = _params.fiber || currentRunningFiber$3.current;
1638
1649
  if (!fiber) {
1639
- throw new Error("No fiber found for dispatching error.");
1650
+ // a normal error
1651
+ throw _params.error;
1640
1652
  }
1641
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
1642
- return;
1653
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1643
1654
  var dispatch = getCurrentDispatchFromFiber(fiber);
1644
1655
  if (!dispatch) {
1645
1656
  throw new Error("No dispatch found for the current running fiber.");
@@ -1651,14 +1662,25 @@ function requireIndex_development_1 () {
1651
1662
  if (!fiber) {
1652
1663
  throw new Error("No fiber found for dispatching promise.");
1653
1664
  }
1654
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
1655
- return;
1665
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1656
1666
  var dispatch = getCurrentDispatchFromFiber(fiber);
1657
1667
  if (!dispatch) {
1658
1668
  throw new Error("No dispatch found for the current running fiber.");
1659
1669
  }
1660
1670
  return dispatch.dispatchPromise(_params);
1661
1671
  };
1672
+ var dispatchSuspensePromise = function (_params) {
1673
+ var fiber = _params.fiber || currentRunningFiber$3.current;
1674
+ if (!fiber) {
1675
+ throw new Error("No fiber found for dispatching suspense promise.");
1676
+ }
1677
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1678
+ var dispatch = getCurrentDispatchFromFiber(fiber);
1679
+ if (!dispatch) {
1680
+ throw new Error("No dispatch found for the current running fiber.");
1681
+ }
1682
+ return dispatch.dispatchSuspensePromise(_params);
1683
+ };
1662
1684
  var readContext = function (_params) {
1663
1685
  var fiber = currentRunningFiber$3.current;
1664
1686
  if (!fiber) {
@@ -1703,6 +1725,7 @@ function requireIndex_development_1 () {
1703
1725
  scheduler.dispatchHook = dispatchHook;
1704
1726
  scheduler.dispatchError = dispatchError;
1705
1727
  scheduler.dispatchPromise = dispatchPromise;
1728
+ scheduler.dispatchSuspensePromise = dispatchSuspensePromise;
1706
1729
  };
1707
1730
 
1708
1731
  var enableHMRForDev = react.__my_react_shared__.enableHMRForDev;
@@ -1913,6 +1936,16 @@ function requireIndex_development_1 () {
1913
1936
  child = child.sibling;
1914
1937
  }
1915
1938
  };
1939
+ var effectCallbackList = new myreactSharedExports.ListTree();
1940
+ var addEffectCallback = function (cb) {
1941
+ effectCallbackList.push(cb);
1942
+ };
1943
+ var flushEffectCallback = function () {
1944
+ effectCallbackList.listToFoot(function (cb) {
1945
+ cb();
1946
+ });
1947
+ effectCallbackList.clear();
1948
+ };
1916
1949
  var effect = defaultInvokeEffect;
1917
1950
  var layoutEffect = defaultInvokeLayoutEffect;
1918
1951
  var insertionEffect = defaultInvokeInsertionEffect;
@@ -1982,7 +2015,10 @@ function requireIndex_development_1 () {
1982
2015
  }
1983
2016
  currentRunningFiber$2.current = null;
1984
2017
  }
1985
- if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
2018
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__suspense__)) {
2019
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
2020
+ }
2021
+ else if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
1986
2022
  fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
1987
2023
  }
1988
2024
  else {
@@ -2034,7 +2070,10 @@ function requireIndex_development_1 () {
2034
2070
  currentRunningFiber$2.current = null;
2035
2071
  triggerFiberUpdateListener(renderDispatch, fiber);
2036
2072
  }
2037
- if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
2073
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__suspense__)) {
2074
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
2075
+ }
2076
+ else if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
2038
2077
  fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
2039
2078
  }
2040
2079
  else {
@@ -2243,15 +2282,12 @@ function requireIndex_development_1 () {
2243
2282
  throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2244
2283
  }
2245
2284
  }
2246
- // TODO update flow
2247
2285
  if (enableSuspenseRoot$3.current) {
2248
2286
  var suspenseField_2 = getInstanceFieldByInstance(renderDispatch);
2249
2287
  var list = suspenseField_2.asyncLoadList.getAll();
2250
2288
  if (list.length === 0)
2251
2289
  return;
2252
2290
  if (renderDispatch.enableAsyncLoad) {
2253
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2254
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2255
2291
  var allPendingLoadArray = list.filter(function (item) {
2256
2292
  if (myreactSharedExports.isPromise(item)) {
2257
2293
  return typeof item.status !== "string";
@@ -2298,13 +2334,6 @@ function requireIndex_development_1 () {
2298
2334
  });
2299
2335
  }); }));
2300
2336
  }
2301
- // suspenseField.isHidden = true;
2302
- // const root = renderDispatch.rootFiber;
2303
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2304
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2305
- // // TODO use hide tree to improve
2306
- // mountLoopAll(renderDispatch, root);
2307
- // suspenseField.isHidden = false;
2308
2337
  }
2309
2338
  else {
2310
2339
  throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
@@ -2431,66 +2460,12 @@ function requireIndex_development_1 () {
2431
2460
  }
2432
2461
  // TODO update flow
2433
2462
  if (enableSuspenseRoot$2.current) {
2434
- var suspenseField_1 = getInstanceFieldByInstance(renderDispatch);
2435
- var list = suspenseField_1.asyncLoadList.getAll();
2463
+ var suspenseField = getInstanceFieldByInstance(renderDispatch);
2464
+ var list = suspenseField.asyncLoadList.getAll();
2436
2465
  if (list.length === 0)
2437
2466
  return;
2438
2467
  if (renderDispatch.enableAsyncLoad) {
2439
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2440
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2441
- var allPendingLoadArray = list.filter(function (item) {
2442
- if (myreactSharedExports.isPromise(item)) {
2443
- return typeof item.status !== "string";
2444
- }
2445
- else {
2446
- return !item._loading && !item._loaded && !item._error;
2447
- }
2448
- });
2449
- if (allPendingLoadArray.length) {
2450
- allPendingLoadArray.forEach(function (item) { var _a; return (_a = item._list) === null || _a === void 0 ? void 0 : _a.forEach(function (node) { return defaultDeleteCurrentEffect(renderDispatch, node); }); });
2451
- Promise.all(allPendingLoadArray.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
2452
- var allFiber;
2453
- var _a;
2454
- return __generator(this, function (_b) {
2455
- switch (_b.label) {
2456
- case 0:
2457
- if (!myreactSharedExports.isPromise(item)) return [3 /*break*/, 2];
2458
- return [4 /*yield*/, renderDispatch.processPromise(item)];
2459
- case 1:
2460
- _b.sent();
2461
- return [3 /*break*/, 4];
2462
- case 2: return [4 /*yield*/, renderDispatch.processLazy(item)];
2463
- case 3:
2464
- _b.sent();
2465
- _b.label = 4;
2466
- case 4:
2467
- allFiber = new Set(item._list);
2468
- (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2469
- allFiber.forEach(function (node) {
2470
- node.state = myreactSharedExports.STATE_TYPE.__recreate__;
2471
- var renderScheduler = currentScheduler$d.current;
2472
- var updater = {
2473
- type: myreactSharedExports.UpdateQueueType.suspense,
2474
- trigger: node,
2475
- isSync: true,
2476
- isForce: true,
2477
- payLoad: [item],
2478
- };
2479
- renderScheduler.dispatchState(updater);
2480
- });
2481
- suspenseField_1.asyncLoadList.uniDelete(item);
2482
- return [2 /*return*/];
2483
- }
2484
- });
2485
- }); }));
2486
- }
2487
- // suspenseField.isHidden = true;
2488
- // const root = renderDispatch.rootFiber;
2489
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2490
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2491
- // // TODO use hide tree to improve
2492
- // mountLoopAll(renderDispatch, root);
2493
- // suspenseField.isHidden = false;
2468
+ throw new Error("[@my-react/reconciler] not implemented yet");
2494
2469
  }
2495
2470
  else {
2496
2471
  throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
@@ -3105,7 +3080,7 @@ function requireIndex_development_1 () {
3105
3080
  var typedFiber = fiber;
3106
3081
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3107
3082
  var needUpdate = true;
3108
- var isSync = false;
3083
+ var isSync = true;
3109
3084
  var isForce = false;
3110
3085
  var isImmediate = false;
3111
3086
  var isRetrigger = false;
@@ -3412,7 +3387,7 @@ function requireIndex_development_1 () {
3412
3387
  var typedFiber = fiber;
3413
3388
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3414
3389
  var needUpdate = false;
3415
- var isSync = false;
3390
+ var isSync = true;
3416
3391
  var isForce = false;
3417
3392
  var isImmediate = false;
3418
3393
  var isRetrigger = false;
@@ -3569,7 +3544,7 @@ function requireIndex_development_1 () {
3569
3544
  var renderScheduler = currentScheduler$c.current;
3570
3545
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3571
3546
  var needUpdate = true;
3572
- var isSync = false;
3547
+ var isSync = true;
3573
3548
  var isForce = false;
3574
3549
  var isImmediate = false;
3575
3550
  var isRetrigger = false;
@@ -3981,6 +3956,7 @@ function requireIndex_development_1 () {
3981
3956
  var globalLoop$2 = react.__my_react_internal__.globalLoop, currentScheduler$a = react.__my_react_internal__.currentScheduler;
3982
3957
  var scheduleUpdateFromRoot = function (renderDispatch) {
3983
3958
  var _a, _b, _c, _d;
3959
+ flushEffectCallback();
3984
3960
  var allLive = renderDispatch.pendingUpdateFiberArray.getAll().filter(function (f) { return myreactSharedExports.exclude(f.state, myreactSharedExports.STATE_TYPE.__unmount__); });
3985
3961
  renderDispatch.pendingUpdateFiberArray.clear();
3986
3962
  if (allLive.length) {
@@ -4104,7 +4080,7 @@ function requireIndex_development_1 () {
4104
4080
  return myreactSharedExports.include(renderDispatch.runtimeFiber.nextWorkingFiber.state, myreactSharedExports.STATE_TYPE.__triggerSync__ | myreactSharedExports.STATE_TYPE.__triggerSyncForce__);
4105
4081
  // include(renderDispatch.runtimeFiber.nextWorkingFiber.state, STATE_TYPE.__retrigger__)
4106
4082
  }
4107
- function updateConCurrentNextFrame(renderDispatch) {
4083
+ function updateConcurrentNextFrame(renderDispatch) {
4108
4084
  var renderScheduler = currentScheduler$9.current;
4109
4085
  enableScopeTreeLog$3.current && setLogScope();
4110
4086
  var hasSync = updateLoopConcurrentFromRoot(renderDispatch);
@@ -4119,7 +4095,7 @@ function requireIndex_development_1 () {
4119
4095
  updateSyncFromRoot(renderDispatch);
4120
4096
  }
4121
4097
  else {
4122
- updateConCurrentNextFrame(renderDispatch);
4098
+ updateConcurrentNextFrame(renderDispatch);
4123
4099
  }
4124
4100
  });
4125
4101
  }
@@ -4127,8 +4103,7 @@ function requireIndex_development_1 () {
4127
4103
  else {
4128
4104
  processAsyncLoadListOnUpdate(renderDispatch);
4129
4105
  finishUpdateConcurrentFromRoot(renderDispatch);
4130
- renderScheduler.microTask(function callScheduleNext() {
4131
- // TODO! flash all effect
4106
+ renderScheduler.macroTask(function callScheduleNext() {
4132
4107
  globalLoop$1.current = false;
4133
4108
  scheduleNext(renderDispatch);
4134
4109
  });
@@ -4150,7 +4125,7 @@ function requireIndex_development_1 () {
4150
4125
  updateSyncFromRoot(renderDispatch);
4151
4126
  }
4152
4127
  else {
4153
- updateConCurrentNextFrame(renderDispatch);
4128
+ updateConcurrentNextFrame(renderDispatch);
4154
4129
  }
4155
4130
  });
4156
4131
  }
@@ -4158,8 +4133,7 @@ function requireIndex_development_1 () {
4158
4133
  else {
4159
4134
  processAsyncLoadListOnUpdate(renderDispatch);
4160
4135
  finishUpdateConcurrentFromRoot(renderDispatch);
4161
- renderScheduler.microTask(function callScheduleNext() {
4162
- // TODO! flash all effect
4136
+ renderScheduler.macroTask(function callScheduleNext() {
4163
4137
  globalLoop$1.current = false;
4164
4138
  scheduleNext(renderDispatch);
4165
4139
  });
@@ -4228,7 +4202,9 @@ function requireIndex_development_1 () {
4228
4202
  if (!field)
4229
4203
  throw new Error("[@my-react/react] hook instance not found, look like a bug for @my-react");
4230
4204
  var typedField = field;
4231
- typedField.dispatch = function (action) { return hookNode._update({ payLoad: action, isForce: false, isSync: enableSyncFlush.current }); };
4205
+ typedField.dispatch = function dispatchAction(action) {
4206
+ hookNode._update({ payLoad: action, isForce: false, isSync: enableSyncFlush.current });
4207
+ };
4232
4208
  };
4233
4209
 
4234
4210
  var currentComponentFiber$3 = react.__my_react_internal__.currentComponentFiber;
@@ -4264,12 +4240,22 @@ function requireIndex_development_1 () {
4264
4240
  };
4265
4241
  var defaultOptimisticReducer = function (state) { return state; };
4266
4242
  var createHookNode = function (renderDispatch, _a, fiber) {
4267
- var _b;
4243
+ var _b, _c;
4268
4244
  var type = _a.type, value = _a.value, reducer = _a.reducer, deps = _a.deps;
4269
4245
  var currentHook = (_b = currentHookTreeNode$2.current) === null || _b === void 0 ? void 0 : _b.value;
4270
4246
  var currentHookIndex = currentHookNodeIndex$2.current;
4247
+ var currentIsReCreate = myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__recreate__);
4271
4248
  if (currentHook) {
4272
- throw new Error("[@my-react/react] should not have a hookList for current node, this is a bug for @my-react");
4249
+ if (currentIsReCreate) {
4250
+ if (currentHookIndex === 0) {
4251
+ defaultDeleteChildEffect(renderDispatch, fiber);
4252
+ defaultDeleteCurrentEffect(renderDispatch, fiber);
4253
+ fiber.hookList.clear();
4254
+ }
4255
+ }
4256
+ else {
4257
+ throw new Error("[@my-react/react] should not have a hookList for current node, this is a bug for @my-react");
4258
+ }
4273
4259
  }
4274
4260
  var hookNode = new MyReactHookNode(type, value, reducer || defaultReducer, deps);
4275
4261
  initInstance(hookNode);
@@ -4294,6 +4280,10 @@ function requireIndex_development_1 () {
4294
4280
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useRef || hookNode.type === myreactSharedExports.HOOK_TYPE.useCallback || hookNode.type === myreactSharedExports.HOOK_TYPE.useDeferredValue) {
4295
4281
  hookNode.result = hookNode.value;
4296
4282
  }
4283
+ // cache ref state from recreate
4284
+ if (hookNode.type === myreactSharedExports.HOOK_TYPE.useRef && currentHook && currentHook.type === myreactSharedExports.HOOK_TYPE.useRef) {
4285
+ hookNode.result = currentHook.result;
4286
+ }
4297
4287
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useId) {
4298
4288
  hookNode.result = "\u00AB-".concat(currentHookIndex, "-").concat(renderDispatch.uniqueIdCount++, "-\u00BB");
4299
4289
  hookNode.cancel = function () { return renderDispatch.uniqueIdCount--; };
@@ -4316,12 +4306,13 @@ function requireIndex_development_1 () {
4316
4306
  return safeCallWithCurrentFiber({
4317
4307
  fiber: fiber,
4318
4308
  action: function safeCallGetSnapshot() {
4319
- var _a;
4320
4309
  return renderDispatch.isAppMounted
4321
4310
  ? storeApi_1.getSnapshot.call(null)
4322
- : storeApi_1.getServerSnapshot
4323
- ? (_a = storeApi_1.getServerSnapshot) === null || _a === void 0 ? void 0 : _a.call(null)
4324
- : storeApi_1.getSnapshot.call(null);
4311
+ : // SEE https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L33
4312
+ // : storeApi.getServerSnapshot
4313
+ // ? storeApi.getServerSnapshot?.call(null)
4314
+ // : storeApi.getSnapshot.call(null);
4315
+ storeApi_1.getSnapshot.call(null);
4325
4316
  },
4326
4317
  });
4327
4318
  };
@@ -4423,6 +4414,7 @@ function requireIndex_development_1 () {
4423
4414
  typedHook._debugType = myreactSharedExports.HOOK_TYPE[hookNode.type];
4424
4415
  typedHook._debugIndex = currentHookIndex;
4425
4416
  }
4417
+ currentHookTreeNode$2.current = (_c = currentHookTreeNode$2.current) === null || _c === void 0 ? void 0 : _c.next;
4426
4418
  return hookNode;
4427
4419
  };
4428
4420
 
@@ -5022,7 +5014,8 @@ function requireIndex_development_1 () {
5022
5014
  renderDispatch.pendingUpdate(fiber);
5023
5015
  }
5024
5016
  }
5025
- if (nextRef && prevRef !== nextRef) {
5017
+ if (prevRef !== nextRef) {
5018
+ fiber.refPrevious = prevRef;
5026
5019
  renderDispatch.pendingRef(fiber);
5027
5020
  }
5028
5021
  if (fiber !== prevFiber) {
@@ -5181,8 +5174,8 @@ function requireIndex_development_1 () {
5181
5174
  return updateFiberNode(renderDispatch, { fiber: draftFiber_1, parent: parentFiber, prevFiber: prevFiberChild }, newElement);
5182
5175
  }
5183
5176
  else {
5184
- renderDispatch.generateChangedList(parentFiber);
5185
- renderDispatch.pendingUnmount(parentFiber, draftFiber_1);
5177
+ draftFiber_1 && renderDispatch.generateChangedList(parentFiber);
5178
+ draftFiber_1 && renderDispatch.pendingUnmount(parentFiber, draftFiber_1);
5186
5179
  return createFragmentWithUpdate(renderDispatch, newChild, parentFiber);
5187
5180
  }
5188
5181
  }
@@ -5199,7 +5192,7 @@ function requireIndex_development_1 () {
5199
5192
  }
5200
5193
  else {
5201
5194
  draftFiber && renderDispatch.pendingUnmount(parentFiber, draftFiber);
5202
- renderDispatch.generateChangedList(parentFiber);
5195
+ draftFiber && renderDispatch.generateChangedList(parentFiber);
5203
5196
  return createFiberNode(renderDispatch, { parent: parentFiber, type: "position" }, newChild);
5204
5197
  }
5205
5198
  };
@@ -5214,9 +5207,13 @@ function requireIndex_development_1 () {
5214
5207
  var isUpdate = myreactSharedExports.exclude(parentFiber.state, myreactSharedExports.STATE_TYPE.__create__);
5215
5208
  var isHMR = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__hmr__);
5216
5209
  var isRetrigger = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
5210
+ var isSuspense = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__suspense__);
5217
5211
  // is current is retrigger update, skip update children
5218
5212
  if (isRetrigger)
5219
5213
  return;
5214
+ // if is suspense, skip update children
5215
+ if (isSuspense)
5216
+ return;
5220
5217
  if (isUpdate || isHMR) {
5221
5218
  var _a = getExistingChildren(parentFiber), existingChildrenMap = _a.existingChildrenMap, existingChildrenArray = _a.existingChildrenArray;
5222
5219
  parentFiber.child = null;
@@ -5320,6 +5317,11 @@ function requireIndex_development_1 () {
5320
5317
  };
5321
5318
 
5322
5319
  var currentHookTreeNode = react.__my_react_internal__.currentHookTreeNode, currentHookNodeIndex$1 = react.__my_react_internal__.currentHookNodeIndex, currentScheduler$4 = react.__my_react_internal__.currentScheduler;
5320
+ var triggerState = myreactSharedExports.STATE_TYPE.__triggerSync__ |
5321
+ myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
5322
+ myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
5323
+ myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
5324
+ myreactSharedExports.STATE_TYPE.__retrigger__;
5323
5325
  var processFunction = function (fiber) {
5324
5326
  var _a;
5325
5327
  currentHookTreeNode.current = (_a = fiber.hookList) === null || _a === void 0 ? void 0 : _a.head;
@@ -5331,14 +5333,20 @@ function requireIndex_development_1 () {
5331
5333
  children = safeCallWithCurrentFiber({
5332
5334
  fiber: fiber,
5333
5335
  action: function safeCallForwardRefFunctionalComponent() {
5334
- var _a, _b;
5336
+ var _a, _b, _c, _d;
5335
5337
  var re = undefined;
5336
5338
  try {
5337
5339
  re = typedElementTypeWithRef_1(fiber.pendingProps, fiber.ref);
5338
5340
  }
5339
5341
  catch (e) {
5340
5342
  if (myreactSharedExports.isPromise(e)) {
5341
- re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchPromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
5343
+ var currentIsTrigger = myreactSharedExports.include(fiber.state, triggerState);
5344
+ if (currentIsTrigger) {
5345
+ re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchSuspensePromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
5346
+ }
5347
+ else {
5348
+ re = (_d = (_c = currentScheduler$4.current) === null || _c === void 0 ? void 0 : _c.dispatchPromise) === null || _d === void 0 ? void 0 : _d.call(_c, { fiber: fiber, promise: e });
5349
+ }
5342
5350
  }
5343
5351
  else {
5344
5352
  throw e;
@@ -5352,14 +5360,20 @@ function requireIndex_development_1 () {
5352
5360
  children = safeCallWithCurrentFiber({
5353
5361
  fiber: fiber,
5354
5362
  action: function safeCallFunctionalComponent() {
5355
- var _a, _b;
5363
+ var _a, _b, _c, _d;
5356
5364
  var re = undefined;
5357
5365
  try {
5358
5366
  re = typedElementType(fiber.pendingProps);
5359
5367
  }
5360
5368
  catch (e) {
5361
5369
  if (myreactSharedExports.isPromise(e)) {
5362
- re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchPromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
5370
+ var currentIsTrigger = myreactSharedExports.include(fiber.state, triggerState);
5371
+ if (currentIsTrigger) {
5372
+ re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchSuspensePromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
5373
+ }
5374
+ else {
5375
+ re = (_d = (_c = currentScheduler$4.current) === null || _c === void 0 ? void 0 : _c.dispatchPromise) === null || _d === void 0 ? void 0 : _d.call(_c, { fiber: fiber, promise: e });
5376
+ }
5363
5377
  }
5364
5378
  else {
5365
5379
  throw e;
@@ -5448,7 +5462,7 @@ function requireIndex_development_1 () {
5448
5462
  return null;
5449
5463
  }
5450
5464
  else {
5451
- // TODO update flow
5465
+ // TODO update flow
5452
5466
  if (enableSuspenseRoot$1.current && !renderDispatch.isAppMounted) {
5453
5467
  var suspenseField = getInstanceFieldByInstance(renderDispatch);
5454
5468
  suspenseField.asyncLoadList.uniPush(typedElementType);
@@ -5857,6 +5871,9 @@ function requireIndex_development_1 () {
5857
5871
  RenderDispatchEvent.prototype.dispatchPromise = function (_params) {
5858
5872
  throw new Error("Method not implemented.");
5859
5873
  };
5874
+ RenderDispatchEvent.prototype.dispatchSuspensePromise = function (_params) {
5875
+ throw new Error("Method not implemented.");
5876
+ };
5860
5877
  RenderDispatchEvent.prototype.trigger = function (_fiber, _state, cb) {
5861
5878
  return triggerUpdateOnFiber(_fiber, _state, cb);
5862
5879
  };
@@ -6387,14 +6404,25 @@ function requireIndex_development_1 () {
6387
6404
  layoutEffect(_dispatch, _fiber);
6388
6405
  });
6389
6406
  afterSyncUpdate();
6390
- var renderScheduler = currentScheduler$2.current;
6391
- renderScheduler.microTask(function invokeEffectListTask() {
6407
+ function invokeEffectListTask() {
6392
6408
  enableScopeTreeLog$2.current && setLogScope();
6393
6409
  _list.listToFoot(function invokeEffectList(_fiber) {
6394
6410
  effect(_dispatch, _fiber);
6395
6411
  });
6396
6412
  enableScopeTreeLog$2.current && resetLogScope();
6397
- });
6413
+ }
6414
+ addEffectCallback(invokeEffectListTask);
6415
+ var renderScheduler = currentScheduler$2.current;
6416
+ if (_dispatch.enableConcurrentMode) {
6417
+ renderScheduler.macroTask(function flushEffect() {
6418
+ flushEffectCallback();
6419
+ });
6420
+ }
6421
+ else {
6422
+ renderScheduler.microTask(function flushEffect() {
6423
+ flushEffectCallback();
6424
+ });
6425
+ }
6398
6426
  };
6399
6427
  var defaultDispatchMount = defaultDispatchMountLatest;
6400
6428
 
@@ -6495,9 +6523,7 @@ function requireIndex_development_1 () {
6495
6523
  }
6496
6524
  });
6497
6525
  afterSyncUpdate();
6498
- var renderScheduler = currentScheduler$1.current;
6499
- // TODO before next update flow, make sure all the effect has done
6500
- renderScheduler.microTask(function invokeEffectListTask() {
6526
+ function invokeEffectListTask() {
6501
6527
  enableScopeTreeLog$1.current && setLogScope();
6502
6528
  _list.listToFoot(function invokeEffectList(_fiber) {
6503
6529
  if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
@@ -6505,7 +6531,19 @@ function requireIndex_development_1 () {
6505
6531
  }
6506
6532
  });
6507
6533
  enableScopeTreeLog$1.current && resetLogScope();
6508
- });
6534
+ }
6535
+ addEffectCallback(invokeEffectListTask);
6536
+ var renderScheduler = currentScheduler$1.current;
6537
+ if (_dispatch.enableConcurrentMode) {
6538
+ renderScheduler.macroTask(function flushEffect() {
6539
+ flushEffectCallback();
6540
+ });
6541
+ }
6542
+ else {
6543
+ renderScheduler.microTask(function flushEffect() {
6544
+ flushEffectCallback();
6545
+ });
6546
+ }
6509
6547
  };
6510
6548
 
6511
6549
  var enableSuspenseRoot = react.__my_react_shared__.enableSuspenseRoot;
@@ -6570,7 +6608,9 @@ function requireIndex_development_1 () {
6570
6608
  promise._loading = true;
6571
6609
  promise.status = "pending";
6572
6610
  var renderScheduler_1 = currentScheduler.current;
6573
- renderDispatch.processPromise(promise).then(function () {
6611
+ renderDispatch
6612
+ .processPromise(promise)
6613
+ .then(function () {
6574
6614
  fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
6575
6615
  promise._list.delete(fiber);
6576
6616
  promise._loading = false;
@@ -6582,10 +6622,49 @@ function requireIndex_development_1 () {
6582
6622
  payLoad: promise,
6583
6623
  };
6584
6624
  renderScheduler_1.dispatchState(updater);
6585
- });
6625
+ })
6626
+ .catch(function (e) { return renderScheduler_1.dispatchError({ fiber: fiber, error: e }); });
6586
6627
  return null;
6587
6628
  }
6588
6629
  };
6630
+ var processSuspensePromise = function (renderDispatch, fiber, promise) {
6631
+ var _a, _b;
6632
+ defaultDeleteCurrentEffect(renderDispatch, fiber);
6633
+ fiber.state = myreactSharedExports.STATE_TYPE.__suspense__;
6634
+ if (promise.status === "rejected") {
6635
+ (_b = (_a = currentScheduler.current).dispatchError) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, error: promise._reason });
6636
+ return null;
6637
+ }
6638
+ if (promise.status === "fulfilled") {
6639
+ {
6640
+ console.warn("[@my-react/react] throw a promise what has already fulfilled, this is not a valid usage");
6641
+ }
6642
+ }
6643
+ promise._list = promise._list || new Set();
6644
+ promise._list.add(fiber);
6645
+ if (promise._loading)
6646
+ return null;
6647
+ promise._loading = true;
6648
+ promise.status = "pending";
6649
+ var renderScheduler = currentScheduler.current;
6650
+ renderDispatch
6651
+ .processPromise(promise)
6652
+ .then(function () {
6653
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
6654
+ promise._list.delete(fiber);
6655
+ promise._loading = false;
6656
+ var updater = {
6657
+ type: myreactSharedExports.UpdateQueueType.promise,
6658
+ trigger: fiber,
6659
+ isSync: true,
6660
+ isForce: true,
6661
+ payLoad: promise,
6662
+ };
6663
+ renderScheduler.dispatchState(updater);
6664
+ })
6665
+ .catch(function (e) { return renderScheduler.dispatchError({ fiber: fiber, error: e }); });
6666
+ return null;
6667
+ };
6589
6668
 
6590
6669
  var CustomRenderDispatch = /** @class */ (function (_super) {
6591
6670
  __extends(CustomRenderDispatch, _super);
@@ -6596,7 +6675,7 @@ function requireIndex_development_1 () {
6596
6675
  _this.isAppMounted = false;
6597
6676
  _this.isAppCrashed = false;
6598
6677
  _this.isAppUnmounted = false;
6599
- _this.version = "0.3.17";
6678
+ _this.version = "0.3.18";
6600
6679
  _this.mode = "development" ;
6601
6680
  _this.renderMode = "render";
6602
6681
  _this.pendingCommitFiberList = null;
@@ -7035,7 +7114,7 @@ function requireIndex_development_1 () {
7035
7114
  });
7036
7115
  }); };
7037
7116
 
7038
- var version = "0.3.17";
7117
+ var version = "0.3.18";
7039
7118
 
7040
7119
  exports.CustomRenderDispatch = CustomRenderDispatch;
7041
7120
  exports.MyReactFiberNode = MyReactFiberNode;
@@ -7044,6 +7123,7 @@ function requireIndex_development_1 () {
7044
7123
  exports.RenderDispatchEvent = RenderDispatchEvent;
7045
7124
  exports.WrapperByLazyScope = WrapperByLazyScope;
7046
7125
  exports.WrapperBySuspenseScope = WrapperBySuspenseScope;
7126
+ exports.addEffectCallback = addEffectCallback;
7047
7127
  exports.afterSyncFlush = afterSyncFlush;
7048
7128
  exports.afterSyncUpdate = afterSyncUpdate;
7049
7129
  exports.applyTriggerFiberCb = applyTriggerFiberCb;
@@ -7093,6 +7173,7 @@ function requireIndex_development_1 () {
7093
7173
  exports.enableLogForCurrentFlowIsRunning = enableLogForCurrentFlowIsRunning;
7094
7174
  exports.enableValidMyReactElement = enableValidMyReactElement;
7095
7175
  exports.fiberToDispatchMap = fiberToDispatchMap;
7176
+ exports.flushEffectCallback = flushEffectCallback;
7096
7177
  exports.generateFiberToListWithAction = generateFiberToListWithAction;
7097
7178
  exports.generateFiberToMountList = generateFiberToMountList;
7098
7179
  exports.generateFiberToUnmountList = generateFiberToUnmountList;
@@ -7182,6 +7263,7 @@ function requireIndex_development_1 () {
7182
7263
  exports.processProvider = processProvider;
7183
7264
  exports.processState = processState;
7184
7265
  exports.processSuspense = processSuspense;
7266
+ exports.processSuspensePromise = processSuspensePromise;
7185
7267
  exports.resetLogScope = resetLogScope;
7186
7268
  exports.runtimeNextWork = runtimeNextWork;
7187
7269
  exports.runtimeNextWorkDev = runtimeNextWorkDev;
@@ -7458,6 +7540,7 @@ function requireIndex_development () {
7458
7540
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
7459
7541
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
7460
7542
  STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
7543
+ STATE_TYPE[STATE_TYPE["__suspense__"] = 4096] = "__suspense__";
7461
7544
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
7462
7545
 
7463
7546
  exports.PATCH_TYPE = void 0;
@@ -7943,27 +8026,51 @@ var delGlobalDispatch = function (dispatch) {
7943
8026
  * @internal
7944
8027
  */
7945
8028
  var setRef = function (_fiber, config) {
7946
- var _a, _b;
7947
8029
  if (myreactSharedExports.include(_fiber.patch, myreactSharedExports.PATCH_TYPE.__ref__)) {
8030
+ var cleanUp = function () {
8031
+ var refPrevious = _fiber.refPrevious;
8032
+ myreactReconcilerExports.safeCallWithCurrentFiber({
8033
+ fiber: _fiber,
8034
+ action: function safeCallRefPrevious() {
8035
+ if (typeof refPrevious === "object" && refPrevious !== null) {
8036
+ refPrevious.current = null;
8037
+ }
8038
+ else if (typeof refPrevious === "function") {
8039
+ refPrevious === null || refPrevious === void 0 ? void 0 : refPrevious(null);
8040
+ }
8041
+ },
8042
+ });
8043
+ _fiber.refPrevious = undefined;
8044
+ var refCleanup = _fiber.refCleanup;
8045
+ myreactReconcilerExports.safeCallWithCurrentFiber({
8046
+ fiber: _fiber,
8047
+ action: function safeCallRefCleanup() {
8048
+ if (typeof refCleanup === "function") {
8049
+ refCleanup();
8050
+ }
8051
+ },
8052
+ });
8053
+ _fiber.refCleanup = undefined;
8054
+ };
7948
8055
  if (myreactSharedExports.include(_fiber.type, myreactReconcilerExports.NODE_TYPE.__plain__)) {
7949
8056
  if (_fiber.nativeNode) {
8057
+ cleanUp();
7950
8058
  var ref_1 = _fiber.ref;
7951
- if (typeof ref_1 === "object" && ref_1 !== null) {
7952
- ref_1.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.nativeNode);
7953
- }
7954
- else if (typeof ref_1 === "function") {
7955
- myreactReconcilerExports.safeCallWithCurrentFiber({
7956
- fiber: _fiber,
7957
- action: function safeCallSetRef() {
7958
- var _a, _b;
7959
- (_a = _fiber.refCleanup) === null || _a === void 0 ? void 0 : _a.call(_fiber);
8059
+ myreactReconcilerExports.safeCallWithCurrentFiber({
8060
+ fiber: _fiber,
8061
+ action: function safeCallSetRef() {
8062
+ var _a, _b;
8063
+ if (typeof ref_1 === "object" && ref_1 !== null) {
8064
+ ref_1.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.nativeNode);
8065
+ }
8066
+ else if (typeof ref_1 === "function") {
7960
8067
  var refCleanUp = ref_1((_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.nativeNode));
7961
8068
  if (typeof refCleanUp === "function") {
7962
8069
  _fiber.refCleanup = refCleanUp;
7963
8070
  }
7964
- },
7965
- });
7966
- }
8071
+ }
8072
+ },
8073
+ });
7967
8074
  }
7968
8075
  else {
7969
8076
  throw new Error("[@my-react/react] plain element do not have a native node");
@@ -7971,23 +8078,23 @@ var setRef = function (_fiber, config) {
7971
8078
  }
7972
8079
  else if (myreactSharedExports.include(_fiber.type, myreactReconcilerExports.NODE_TYPE.__class__)) {
7973
8080
  if (_fiber.instance) {
8081
+ cleanUp();
7974
8082
  var ref_2 = _fiber.ref;
7975
- if (typeof ref_2 === "object" && ref_2 !== null) {
7976
- ref_2.current = (_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.instance);
7977
- }
7978
- else if (typeof ref_2 === "function") {
7979
- myreactReconcilerExports.safeCallWithCurrentFiber({
7980
- fiber: _fiber,
7981
- action: function safeCallSetRef() {
7982
- var _a, _b;
7983
- (_a = _fiber.refCleanup) === null || _a === void 0 ? void 0 : _a.call(_fiber);
8083
+ myreactReconcilerExports.safeCallWithCurrentFiber({
8084
+ fiber: _fiber,
8085
+ action: function safeCallSetRef() {
8086
+ var _a, _b;
8087
+ if (typeof ref_2 === "object" && ref_2 !== null) {
8088
+ ref_2.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.instance);
8089
+ }
8090
+ else if (typeof ref_2 === "function") {
7984
8091
  var refCleanUp = ref_2((_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.instance));
7985
8092
  if (typeof refCleanUp === "function") {
7986
8093
  _fiber.refCleanup = refCleanUp;
7987
8094
  }
7988
- },
7989
- });
7990
- }
8095
+ }
8096
+ },
8097
+ });
7991
8098
  }
7992
8099
  else {
7993
8100
  throw new Error("[@my-react/react-dom] class component do not have a instance");
@@ -8457,13 +8564,17 @@ var ReconcilerDispatchMount = function (_dispatch, _fiber, config) {
8457
8564
  myreactReconcilerExports.layoutEffect(_dispatch, _fiber);
8458
8565
  });
8459
8566
  myreactReconcilerExports.afterSyncUpdate();
8460
- var renderScheduler = currentScheduler$2.current;
8461
- renderScheduler.microTask(function invokeEffectListTask() {
8567
+ function invokeEffectListTask() {
8462
8568
  enableScopeTreeLog$3.current && myreactReconcilerExports.setLogScope();
8463
8569
  _list.listToFoot(function invokeEffectList(_fiber) {
8464
8570
  myreactReconcilerExports.effect(_dispatch, _fiber);
8465
8571
  });
8466
8572
  enableScopeTreeLog$3.current && myreactReconcilerExports.resetLogScope();
8573
+ }
8574
+ myreactReconcilerExports.addEffectCallback(invokeEffectListTask);
8575
+ var renderScheduler = currentScheduler$2.current;
8576
+ renderScheduler.macroTask(function flushEffect() {
8577
+ myreactReconcilerExports.flushEffectCallback();
8467
8578
  });
8468
8579
  };
8469
8580
 
@@ -8560,9 +8671,7 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
8560
8671
  }
8561
8672
  });
8562
8673
  myreactReconcilerExports.afterSyncUpdate();
8563
- var renderScheduler = currentScheduler$1.current;
8564
- // TODO before next update flow, make sure all the effect has done
8565
- renderScheduler.microTask(function invokeEffectListTask() {
8674
+ function invokeEffectListTask() {
8566
8675
  enableScopeTreeLog$2.current && myreactReconcilerExports.setLogScope();
8567
8676
  _list.listToFoot(function invokeEffectList(_fiber) {
8568
8677
  if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
@@ -8570,7 +8679,19 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
8570
8679
  }
8571
8680
  });
8572
8681
  enableScopeTreeLog$2.current && myreactReconcilerExports.resetLogScope();
8573
- });
8682
+ }
8683
+ myreactReconcilerExports.addEffectCallback(invokeEffectListTask);
8684
+ var renderScheduler = currentScheduler$1.current;
8685
+ if (_dispatch.enableConcurrentMode) {
8686
+ renderScheduler.macroTask(function flushEffect() {
8687
+ myreactReconcilerExports.flushEffectCallback();
8688
+ });
8689
+ }
8690
+ else {
8691
+ renderScheduler.microTask(function flushEffect() {
8692
+ myreactReconcilerExports.flushEffectCallback();
8693
+ });
8694
+ }
8574
8695
  };
8575
8696
 
8576
8697
  var currentComponentFiber = require$$0.__my_react_internal__.currentComponentFiber;
@@ -8676,6 +8797,9 @@ var createDispatch = function (rootNode, rootFiber, rootElement, config, flag) {
8676
8797
  ReconcilerDispatch.prototype.dispatchPromise = function (_params) {
8677
8798
  return myreactReconcilerExports.processPromise(this, _params.fiber, _params.promise);
8678
8799
  };
8800
+ ReconcilerDispatch.prototype.dispatchSuspensePromise = function (_params) {
8801
+ return myreactReconcilerExports.processSuspensePromise(this, _params.fiber, _params.promise);
8802
+ };
8679
8803
  ReconcilerDispatch.prototype.dispatchError = function (_params) {
8680
8804
  {
8681
8805
  myreactReconcilerExports.devErrorWithFiber(_params.fiber, _params.error);
@@ -8813,7 +8937,7 @@ var Reconciler = function (_config) {
8813
8937
  }
8814
8938
  enableDebugFiled.current = true;
8815
8939
  enableScopeTreeLog.current = false;
8816
- // enableFiberForLog.current = false;
8940
+ myreactReconcilerExports.enableFiberForLog.current = false;
8817
8941
  return _container;
8818
8942
  };
8819
8943
  var updateContainer = function (_element, _container, _ignore, _cb) {
@@ -8907,7 +9031,7 @@ var Reconciler = function (_config) {
8907
9031
  };
8908
9032
  };
8909
9033
 
8910
- var version = "0.0.8";
9034
+ var version = "0.0.9";
8911
9035
  var createReconciler = Reconciler;
8912
9036
 
8913
9037
  exports.createReconciler = createReconciler;