lwc 2.8.0 → 2.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.
Files changed (35) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +73 -34
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +73 -34
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +73 -34
  5. package/dist/engine-dom/iife/es5/engine-dom.js +144 -100
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +137 -94
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +73 -34
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +73 -34
  11. package/dist/engine-dom/umd/es5/engine-dom.js +144 -100
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +137 -94
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +41 -19
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +41 -19
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  28. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  29. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  31. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  35. package/package.json +7 -7
@@ -345,7 +345,7 @@ var LWC = (function (exports) {
345
345
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
346
346
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
347
347
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
348
- /** version: 2.8.0 */
348
+ /** version: 2.9.0 */
349
349
 
350
350
  /*
351
351
  * Copyright (c) 2018, salesforce.com, inc.
@@ -514,7 +514,7 @@ var LWC = (function (exports) {
514
514
 
515
515
  function setFeatureFlagForTest(name, value) {
516
516
  }
517
- /** version: 2.8.0 */
517
+ /** version: 2.9.0 */
518
518
 
519
519
  /* proxy-compat-disable */
520
520
 
@@ -557,6 +557,21 @@ var LWC = (function (exports) {
557
557
 
558
558
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
559
559
  } // Borrowed from Vue template compiler.
560
+
561
+
562
+ function cloneAndOmitKey(object, keyToOmit) {
563
+ var result = {};
564
+
565
+ for (var _i4 = 0, _Object$keys = Object.keys(object); _i4 < _Object$keys.length; _i4++) {
566
+ var key = _Object$keys[_i4];
567
+
568
+ if (key !== keyToOmit) {
569
+ result[key] = object[key];
570
+ }
571
+ }
572
+
573
+ return result;
574
+ } //
560
575
  // Primitives
561
576
  //
562
577
 
@@ -825,8 +840,8 @@ var LWC = (function (exports) {
825
840
  var reactiveObservers = reactiveRecord[key];
826
841
 
827
842
  if (!isUndefined$1(reactiveObservers)) {
828
- for (var _i4 = 0, _len2 = reactiveObservers.length; _i4 < _len2; _i4 += 1) {
829
- var ro = reactiveObservers[_i4];
843
+ for (var _i5 = 0, _len2 = reactiveObservers.length; _i5 < _len2; _i5 += 1) {
844
+ var ro = reactiveObservers[_i5];
830
845
  ro.notify();
831
846
  }
832
847
  }
@@ -895,9 +910,9 @@ var LWC = (function (exports) {
895
910
  var len = listeners.length;
896
911
 
897
912
  if (len > 0) {
898
- for (var _i5 = 0; _i5 < len; _i5 += 1) {
899
- var set = listeners[_i5];
900
- var pos = ArrayIndexOf.call(listeners[_i5], this);
913
+ for (var _i6 = 0; _i6 < len; _i6 += 1) {
914
+ var set = listeners[_i6];
915
+ var pos = ArrayIndexOf.call(listeners[_i6], this);
901
916
  ArraySplice.call(set, pos, 1);
902
917
  }
903
918
 
@@ -2117,7 +2132,7 @@ var LWC = (function (exports) {
2117
2132
 
2118
2133
 
2119
2134
  var _loop = function _loop() {
2120
- var childGetter = _childGetters[_i6];
2135
+ var childGetter = _childGetters[_i7];
2121
2136
  queryAndChildGetterDescriptors[childGetter] = {
2122
2137
  get: function get() {
2123
2138
  var vm = getAssociatedVM(this);
@@ -2130,7 +2145,7 @@ var LWC = (function (exports) {
2130
2145
  };
2131
2146
  };
2132
2147
 
2133
- for (var _i6 = 0, _childGetters = childGetters; _i6 < _childGetters.length; _i6++) {
2148
+ for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2134
2149
  _loop();
2135
2150
  }
2136
2151
 
@@ -2154,7 +2169,7 @@ var LWC = (function (exports) {
2154
2169
 
2155
2170
 
2156
2171
  var _loop2 = function _loop2() {
2157
- var queryMethod = _queryMethods[_i7];
2172
+ var queryMethod = _queryMethods[_i8];
2158
2173
  queryAndChildGetterDescriptors[queryMethod] = {
2159
2174
  value: function value(arg) {
2160
2175
  var vm = getAssociatedVM(this);
@@ -2168,7 +2183,7 @@ var LWC = (function (exports) {
2168
2183
  };
2169
2184
  };
2170
2185
 
2171
- for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
2186
+ for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2172
2187
  _loop2();
2173
2188
  }
2174
2189
 
@@ -2529,8 +2544,8 @@ var LWC = (function (exports) {
2529
2544
  }
2530
2545
 
2531
2546
  if (!isUndefined$1(fields)) {
2532
- for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
2533
- var _fieldName2 = fields[_i8];
2547
+ for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
2548
+ var _fieldName2 = fields[_i9];
2534
2549
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
2535
2550
  // tracked property. This is only here for backward compatibility purposes.
2536
2551
 
@@ -2747,8 +2762,8 @@ var LWC = (function (exports) {
2747
2762
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
2748
2763
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
2749
2764
 
2750
- for (var _i9 = 0, _len3 = props.length; _i9 < _len3; _i9 += 1) {
2751
- var _propName2 = props[_i9];
2765
+ for (var _i10 = 0, _len3 = props.length; _i10 < _len3; _i10 += 1) {
2766
+ var _propName2 = props[_i10];
2752
2767
  attributeToPropMap[htmlPropertyToAttribute(_propName2)] = _propName2;
2753
2768
  descriptors[_propName2] = {
2754
2769
  get: createGetter(_propName2),
@@ -2759,8 +2774,8 @@ var LWC = (function (exports) {
2759
2774
  } // expose public methods as props on the new Element Bridge
2760
2775
 
2761
2776
 
2762
- for (var _i10 = 0, _len4 = methods.length; _i10 < _len4; _i10 += 1) {
2763
- var methodName = methods[_i10];
2777
+ for (var _i11 = 0, _len4 = methods.length; _i11 < _len4; _i11 += 1) {
2778
+ var methodName = methods[_i11];
2764
2779
  descriptors[methodName] = {
2765
2780
  value: createMethodCaller(methodName),
2766
2781
  writable: true,
@@ -3388,8 +3403,8 @@ var LWC = (function (exports) {
3388
3403
  return;
3389
3404
  }
3390
3405
 
3391
- for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
3392
- var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
3406
+ for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
3407
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
3393
3408
  prop = _styleDecls$_i[0],
3394
3409
  value = _styleDecls$_i[1],
3395
3410
  important = _styleDecls$_i[2];
@@ -3627,11 +3642,13 @@ var LWC = (function (exports) {
3627
3642
  ) {
3628
3643
  // this element will now accept any manual content inserted into it
3629
3644
  observeElementChildNodes(elm);
3630
- } // when running in synthetic shadow mode, we need to set the shadowToken value
3631
- // into each element from the template, so they can be styled accordingly.
3632
-
3645
+ }
3633
3646
 
3634
- setElementShadowToken(elm, stylesheetToken);
3647
+ if (!isUndefined$1(stylesheetToken)) {
3648
+ // when running in synthetic shadow mode, we need to set the shadowToken value
3649
+ // into each element from the template, so they can be styled accordingly.
3650
+ setElementShadowToken(elm, stylesheetToken);
3651
+ }
3635
3652
  }
3636
3653
  }
3637
3654
 
@@ -3694,7 +3711,9 @@ var LWC = (function (exports) {
3694
3711
  var stylesheetToken = owner.context.stylesheetToken; // when running in synthetic shadow mode, we need to set the shadowToken value
3695
3712
  // into each element from the template, so they can be styled accordingly.
3696
3713
 
3697
- setElementShadowToken(elm, stylesheetToken);
3714
+ if (!isUndefined$1(stylesheetToken)) {
3715
+ setElementShadowToken(elm, stylesheetToken);
3716
+ }
3698
3717
  }
3699
3718
 
3700
3719
  vm = createVM(elm, ctor, {
@@ -3742,8 +3761,8 @@ var LWC = (function (exports) {
3742
3761
  var oldSlots = vm.cmpSlots;
3743
3762
  var cmpSlots = vm.cmpSlots = create(null);
3744
3763
 
3745
- for (var _i12 = 0, _len6 = children.length; _i12 < _len6; _i12 += 1) {
3746
- var vnode = children[_i12];
3764
+ for (var _i13 = 0, _len6 = children.length; _i13 < _len6; _i13 += 1) {
3765
+ var vnode = children[_i13];
3747
3766
 
3748
3767
  if (isNull(vnode)) {
3749
3768
  continue;
@@ -3777,8 +3796,8 @@ var LWC = (function (exports) {
3777
3796
  return;
3778
3797
  }
3779
3798
 
3780
- for (var _i13 = 0, _len7 = oldKeys.length; _i13 < _len7; _i13 += 1) {
3781
- var key = oldKeys[_i13];
3799
+ for (var _i14 = 0, _len7 = oldKeys.length; _i14 < _len7; _i14 += 1) {
3800
+ var key = oldKeys[_i14];
3782
3801
 
3783
3802
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
3784
3803
  markComponentAsDirty(vm);
@@ -3863,6 +3882,7 @@ var LWC = (function (exports) {
3863
3882
  var idxInOld;
3864
3883
  var elmToMove;
3865
3884
  var before;
3885
+ var clonedOldCh = false;
3866
3886
 
3867
3887
  while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
3868
3888
  if (!isVNode(oldStartVnode)) {
@@ -3914,7 +3934,18 @@ var LWC = (function (exports) {
3914
3934
  newStartVnode.hook.create(newStartVnode);
3915
3935
  newStartVnode.hook.insert(newStartVnode, parentElm, oldStartVnode.elm);
3916
3936
  } else {
3917
- patchVnode(elmToMove, newStartVnode);
3937
+ patchVnode(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
3938
+ // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
3939
+ // so we only care about the `oldCh` object inside this function.
3940
+ // To avoid cloning over and over again, we check `clonedOldCh`
3941
+ // and only clone once.
3942
+
3943
+ if (!clonedOldCh) {
3944
+ clonedOldCh = true;
3945
+ oldCh = _toConsumableArray(oldCh);
3946
+ } // We've already cloned at least once, so it's no longer read-only
3947
+
3948
+
3918
3949
  oldCh[idxInOld] = undefined;
3919
3950
  newStartVnode.hook.move(elmToMove, parentElm, oldStartVnode.elm);
3920
3951
  }
@@ -3929,12 +3960,12 @@ var LWC = (function (exports) {
3929
3960
  if (oldStartIdx > oldEndIdx) {
3930
3961
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
3931
3962
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
3932
- var _i14 = newEndIdx;
3963
+ var _i15 = newEndIdx;
3933
3964
  var n;
3934
3965
 
3935
3966
  do {
3936
- n = newCh[++_i14];
3937
- } while (!isVNode(n) && _i14 < newChEnd);
3967
+ n = newCh[++_i15];
3968
+ } while (!isVNode(n) && _i15 < newChEnd);
3938
3969
 
3939
3970
  before = isVNode(n) ? n.elm : null;
3940
3971
  addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);
@@ -3965,9 +3996,9 @@ var LWC = (function (exports) {
3965
3996
 
3966
3997
  var referenceElm = null;
3967
3998
 
3968
- for (var _i15 = newChLength - 1; _i15 >= 0; _i15 -= 1) {
3969
- var vnode = newCh[_i15];
3970
- var oldVNode = oldCh[_i15];
3999
+ for (var _i16 = newChLength - 1; _i16 >= 0; _i16 -= 1) {
4000
+ var vnode = newCh[_i16];
4001
+ var oldVNode = oldCh[_i16];
3971
4002
 
3972
4003
  if (vnode !== oldVNode) {
3973
4004
  if (isVNode(oldVNode)) {
@@ -4011,7 +4042,8 @@ var LWC = (function (exports) {
4011
4042
  } // [h]tml node
4012
4043
 
4013
4044
 
4014
- function h(sel, data, children) {
4045
+ function h(sel, data) {
4046
+ var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EmptyArray;
4015
4047
  var vmBeingRendered = getVMBeingRendered();
4016
4048
 
4017
4049
  var elm;
@@ -4285,7 +4317,8 @@ var LWC = (function (exports) {
4285
4317
  * create a dynamic component via `<x-foo lwc:dynamic={Ctor}>`
4286
4318
  */
4287
4319
 
4288
- function dc(sel, Ctor, data, children) {
4320
+ function dc(sel, Ctor, data) {
4321
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EmptyArray;
4289
4322
 
4290
4323
 
4291
4324
  if (Ctor == null) {
@@ -4304,10 +4337,14 @@ var LWC = (function (exports) {
4304
4337
  } // the new vnode key is a mix of idx and compiler key, this is required by the diffing algo
4305
4338
  // to identify different constructors as vnodes with different keys to avoid reusing the
4306
4339
  // element used for previous constructors.
4340
+ // Shallow clone is necessary here becuase VElementData may be shared across VNodes due to
4341
+ // hoisting optimization.
4307
4342
 
4308
4343
 
4309
- data.key = "dc:".concat(idx, ":").concat(data.key);
4310
- return c(sel, Ctor, data, children);
4344
+ var newData = Object.assign(Object.assign({}, data), {
4345
+ key: "dc:".concat(idx, ":").concat(data.key)
4346
+ });
4347
+ return c(sel, Ctor, newData, children);
4311
4348
  }
4312
4349
  /**
4313
4350
  * slow children collection marking mechanism. this API allows the compiler to signal
@@ -4416,12 +4453,14 @@ var LWC = (function (exports) {
4416
4453
  oldHasTokenInClass = context.hasTokenInClass,
4417
4454
  oldHasTokenInAttribute = context.hasTokenInAttribute;
4418
4455
 
4419
- if (oldHasTokenInClass) {
4420
- getClassList$1(elm).remove(makeHostToken(oldToken));
4421
- }
4456
+ if (!isUndefined$1(oldToken)) {
4457
+ if (oldHasTokenInClass) {
4458
+ getClassList$1(elm).remove(makeHostToken(oldToken));
4459
+ }
4422
4460
 
4423
- if (oldHasTokenInAttribute) {
4424
- removeAttribute$1(elm, makeHostToken(oldToken));
4461
+ if (oldHasTokenInAttribute) {
4462
+ removeAttribute$1(elm, makeHostToken(oldToken));
4463
+ }
4425
4464
  } // Apply the new template styling token to the host element, if the new template has any
4426
4465
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
4427
4466
 
@@ -4453,8 +4492,8 @@ var LWC = (function (exports) {
4453
4492
  var content = [];
4454
4493
  var root;
4455
4494
 
4456
- for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4457
- var stylesheet = stylesheets[_i16];
4495
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4496
+ var stylesheet = stylesheets[_i17];
4458
4497
 
4459
4498
  if (isArray$1(stylesheet)) {
4460
4499
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4558,8 +4597,8 @@ var LWC = (function (exports) {
4558
4597
  && shadowMode === 1
4559
4598
  /* Synthetic */
4560
4599
  ) {
4561
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4562
- insertGlobalStylesheet$1(stylesheets[_i17]);
4600
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4601
+ insertGlobalStylesheet$1(stylesheets[_i18]);
4563
4602
  }
4564
4603
  } else if (ssr$1 || isHydrating$1()) {
4565
4604
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
@@ -4573,12 +4612,12 @@ var LWC = (function (exports) {
4573
4612
  var root = getNearestNativeShadowComponent(vm);
4574
4613
  var isGlobal = isNull(root);
4575
4614
 
4576
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4615
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4577
4616
  if (isGlobal) {
4578
- insertGlobalStylesheet$1(stylesheets[_i18]);
4617
+ insertGlobalStylesheet$1(stylesheets[_i19]);
4579
4618
  } else {
4580
4619
  // local level
4581
- insertStylesheet$1(stylesheets[_i18], root.shadowRoot);
4620
+ insertStylesheet$1(stylesheets[_i19], root.shadowRoot);
4582
4621
  }
4583
4622
  }
4584
4623
  }
@@ -4763,8 +4802,8 @@ var LWC = (function (exports) {
4763
4802
  var stylesheets = template.stylesheets;
4764
4803
 
4765
4804
  if (!isUndefined$1(stylesheets)) {
4766
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4767
- if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4805
+ for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4806
+ if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4768
4807
  return true;
4769
4808
  }
4770
4809
  }
@@ -4947,8 +4986,8 @@ var LWC = (function (exports) {
4947
4986
 
4948
4987
  function register(service) {
4949
4988
 
4950
- for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4951
- var hookName = hooks[_i20];
4989
+ for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
4990
+ var hookName = hooks[_i21];
4952
4991
 
4953
4992
  if (hookName in service) {
4954
4993
  var l = Services[hookName];
@@ -4968,8 +5007,8 @@ var LWC = (function (exports) {
4968
5007
  def = vm.def,
4969
5008
  context = vm.context;
4970
5009
 
4971
- for (var _i21 = 0, _len8 = cbs.length; _i21 < _len8; ++_i21) {
4972
- cbs[_i21].call(undefined, component, {}, def, context);
5010
+ for (var _i22 = 0, _len8 = cbs.length; _i22 < _len8; ++_i22) {
5011
+ cbs[_i22].call(undefined, component, {}, def, context);
4973
5012
  }
4974
5013
  }
4975
5014
  /*
@@ -5040,7 +5079,10 @@ var LWC = (function (exports) {
5040
5079
 
5041
5080
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
5042
5081
  if (elm.innerHTML === props.innerHTML) {
5043
- delete props.innerHTML;
5082
+ // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
5083
+ vnode.data = Object.assign(Object.assign({}, vnode.data), {
5084
+ props: cloneAndOmitKey(props, 'innerHTML')
5085
+ });
5044
5086
  } else {
5045
5087
  logWarn("Mismatch hydrating element <".concat(elm.tagName.toLowerCase(), ">: innerHTML values do not match for element, will recover from the difference"), vnode.owner);
5046
5088
  }
@@ -5087,8 +5129,8 @@ var LWC = (function (exports) {
5087
5129
 
5088
5130
  var childNodeIndex = 0;
5089
5131
 
5090
- for (var _i22 = 0; _i22 < children.length; _i22++) {
5091
- var childVnode = children[_i22];
5132
+ for (var _i23 = 0; _i23 < children.length; _i23++) {
5133
+ var childVnode = children[_i23];
5092
5134
 
5093
5135
  if (!isNull(childVnode)) {
5094
5136
  var childNode = elmChildren[childNodeIndex];
@@ -5442,19 +5484,19 @@ var LWC = (function (exports) {
5442
5484
  });
5443
5485
  rehydrateQueue = []; // reset to a new queue
5444
5486
 
5445
- for (var _i25 = 0, _len9 = vms.length; _i25 < _len9; _i25 += 1) {
5446
- var vm = vms[_i25];
5487
+ for (var _i26 = 0, _len9 = vms.length; _i26 < _len9; _i26 += 1) {
5488
+ var vm = vms[_i26];
5447
5489
 
5448
5490
  try {
5449
5491
  rehydrate(vm);
5450
5492
  } catch (error) {
5451
- if (_i25 + 1 < _len9) {
5493
+ if (_i26 + 1 < _len9) {
5452
5494
  // pieces of the queue are still pending to be rehydrated, those should have priority
5453
5495
  if (rehydrateQueue.length === 0) {
5454
5496
  addCallbackToNextTick(flushRehydrationQueue);
5455
5497
  }
5456
5498
 
5457
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i25 + 1));
5499
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i26 + 1));
5458
5500
  } // we need to end the measure before throwing.
5459
5501
 
5460
5502
 
@@ -5553,8 +5595,8 @@ var LWC = (function (exports) {
5553
5595
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5554
5596
  // inserted in reserved order.
5555
5597
 
5556
- for (var _i26 = vCustomElementCollection.length - 1; _i26 >= 0; _i26 -= 1) {
5557
- var elm = vCustomElementCollection[_i26].elm; // There are two cases where the element could be undefined:
5598
+ for (var _i27 = vCustomElementCollection.length - 1; _i27 >= 0; _i27 -= 1) {
5599
+ var elm = vCustomElementCollection[_i27].elm; // There are two cases where the element could be undefined:
5558
5600
  // * when there is an error during the construction phase, and an error
5559
5601
  // boundary picks it, there is a possibility that the VCustomElement
5560
5602
  // is not properly initialized, and therefore is should be ignored.
@@ -5588,8 +5630,8 @@ var LWC = (function (exports) {
5588
5630
 
5589
5631
 
5590
5632
  function recursivelyDisconnectChildren(vnodes) {
5591
- for (var _i27 = 0, _len10 = vnodes.length; _i27 < _len10; _i27 += 1) {
5592
- var vnode = vnodes[_i27];
5633
+ for (var _i28 = 0, _len10 = vnodes.length; _i28 < _len10; _i28 += 1) {
5634
+ var vnode = vnodes[_i28];
5593
5635
 
5594
5636
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5595
5637
  switch (vnode.type) {
@@ -5620,8 +5662,8 @@ var LWC = (function (exports) {
5620
5662
  var children = vm.children,
5621
5663
  renderRoot = vm.renderRoot;
5622
5664
 
5623
- for (var _i28 = 0, _len11 = children.length; _i28 < _len11; _i28++) {
5624
- var child = children[_i28];
5665
+ for (var _i29 = 0, _len11 = children.length; _i29 < _len11; _i29++) {
5666
+ var child = children[_i29];
5625
5667
 
5626
5668
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5627
5669
  remove$1(child.elm, renderRoot);
@@ -5971,8 +6013,8 @@ var LWC = (function (exports) {
5971
6013
  function connectWireAdapters(vm) {
5972
6014
  var wiredConnecting = vm.context.wiredConnecting;
5973
6015
 
5974
- for (var _i29 = 0, _len12 = wiredConnecting.length; _i29 < _len12; _i29 += 1) {
5975
- wiredConnecting[_i29]();
6016
+ for (var _i30 = 0, _len12 = wiredConnecting.length; _i30 < _len12; _i30 += 1) {
6017
+ wiredConnecting[_i30]();
5976
6018
  }
5977
6019
  }
5978
6020
 
@@ -5980,8 +6022,8 @@ var LWC = (function (exports) {
5980
6022
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5981
6023
  runWithBoundaryProtection(vm, vm, noop, function () {
5982
6024
  // job
5983
- for (var _i30 = 0, _len13 = wiredDisconnecting.length; _i30 < _len13; _i30 += 1) {
5984
- wiredDisconnecting[_i30]();
6025
+ for (var _i31 = 0, _len13 = wiredDisconnecting.length; _i31 < _len13; _i31 += 1) {
6026
+ wiredDisconnecting[_i31]();
5985
6027
  }
5986
6028
  }, noop);
5987
6029
  }
@@ -6065,7 +6107,7 @@ var LWC = (function (exports) {
6065
6107
  hooksAreSet = true;
6066
6108
  setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);
6067
6109
  }
6068
- /* version: 2.8.0 */
6110
+ /* version: 2.9.0 */
6069
6111
 
6070
6112
  /*
6071
6113
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6558,8 +6600,8 @@ var LWC = (function (exports) {
6558
6600
  tagName: element.tagName.toLowerCase()
6559
6601
  });
6560
6602
 
6561
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6562
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6603
+ for (var _i33 = 0, _Object$entries2 = Object.entries(props); _i33 < _Object$entries2.length; _i33++) {
6604
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i33], 2),
6563
6605
  key = _Object$entries2$_i[0],
6564
6606
  value = _Object$entries2$_i[1];
6565
6607
 
@@ -6581,8 +6623,8 @@ var LWC = (function (exports) {
6581
6623
  mode: 'open'
6582
6624
  });
6583
6625
 
6584
- for (var _i33 = 0, _Object$entries3 = Object.entries(props); _i33 < _Object$entries3.length; _i33++) {
6585
- var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i33], 2),
6626
+ for (var _i34 = 0, _Object$entries3 = Object.entries(props); _i34 < _Object$entries3.length; _i34++) {
6627
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i34], 2),
6586
6628
  _key3 = _Object$entries3$_i[0],
6587
6629
  _value2 = _Object$entries3$_i[1];
6588
6630
 
@@ -6695,30 +6737,31 @@ var LWC = (function (exports) {
6695
6737
 
6696
6738
  var _Node = Node;
6697
6739
  /**
6698
- * EXPERIMENTAL: This function detects whether or not a Node is controlled by a LWC template. This
6699
- * API is subject to change or being removed.
6740
+ * EXPERIMENTAL: The purpose of this function is to detect shadowed nodes. THIS API WILL BE REMOVED
6741
+ * ONCE LOCKER V1 IS NO LONGER SUPPORTED.
6700
6742
  */
6701
6743
 
6702
- function isNodeFromTemplate(node) {
6744
+ function isNodeShadowed(node) {
6703
6745
  if (isFalse(node instanceof _Node)) {
6704
6746
  return false;
6705
- } // TODO [#1250]: skipping the shadowRoot instances itself makes no sense, we need to revisit
6706
- // this with locker
6747
+ } // It's debatable whether shadow root instances should be considered as shadowed, but we keep
6748
+ // this unchanged for legacy reasons (#1250).
6707
6749
 
6708
6750
 
6709
6751
  if (node instanceof ShadowRoot) {
6710
6752
  return false;
6711
6753
  }
6712
6754
 
6713
- if (isSyntheticShadowDefined) {
6714
- // TODO [#1252]: old behavior that is still used by some pieces of the platform,
6715
- // specifically, nodes inserted manually on places where `lwc:dom="manual"` directive is not
6716
- // used, will be considered global elements.
6717
- return !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
6718
- }
6755
+ var rootNode = node.getRootNode(); // Handle the native case. We can return early here because an invariant of LWC is that
6756
+ // synthetic roots cannot be descendants of native roots.
6757
+
6758
+ if (rootNode instanceof ShadowRoot && isFalse(hasOwnProperty$1.call(getPrototypeOf$1(rootNode), 'synthetic'))) {
6759
+ return true;
6760
+ } // TODO [#1252]: Old behavior that is still used by some pieces of the platform. Manually
6761
+ // inserted nodes without the `lwc:dom=manual` directive will be considered as global elements.
6762
+
6719
6763
 
6720
- var root = node.getRootNode();
6721
- return root instanceof ShadowRoot;
6764
+ return isSyntheticShadowDefined && !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
6722
6765
  }
6723
6766
  /*
6724
6767
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6762,7 +6805,7 @@ var LWC = (function (exports) {
6762
6805
  });
6763
6806
  freeze(LightningElement);
6764
6807
  seal(LightningElement.prototype);
6765
- /* version: 2.8.0 */
6808
+ /* version: 2.9.0 */
6766
6809
 
6767
6810
  exports.LightningElement = LightningElement;
6768
6811
  exports.__unstable__ProfilerControl = profilerControl;
@@ -6774,7 +6817,7 @@ var LWC = (function (exports) {
6774
6817
  exports.getComponentDef = getComponentDef;
6775
6818
  exports.hydrateComponent = hydrateComponent;
6776
6819
  exports.isComponentConstructor = isComponentConstructor;
6777
- exports.isNodeFromTemplate = isNodeFromTemplate;
6820
+ exports.isNodeFromTemplate = isNodeShadowed;
6778
6821
  exports.readonly = readonly;
6779
6822
  exports.register = register;
6780
6823
  exports.registerComponent = registerComponent;