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
@@ -352,7 +352,7 @@ var LWC = (function (exports) {
352
352
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
353
353
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
354
354
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
355
- /** version: 2.8.0 */
355
+ /** version: 2.9.0 */
356
356
 
357
357
  /*
358
358
  * Copyright (c) 2018, salesforce.com, inc.
@@ -529,7 +529,7 @@ var LWC = (function (exports) {
529
529
  setFeatureFlag(name, value);
530
530
  }
531
531
  }
532
- /** version: 2.8.0 */
532
+ /** version: 2.9.0 */
533
533
 
534
534
  /* proxy-compat-disable */
535
535
 
@@ -617,6 +617,21 @@ var LWC = (function (exports) {
617
617
  }
618
618
 
619
619
  return styleMap;
620
+ } // Make a shallow copy of an object but omit the given key
621
+
622
+
623
+ function cloneAndOmitKey(object, keyToOmit) {
624
+ var result = {};
625
+
626
+ for (var _i4 = 0, _Object$keys = Object.keys(object); _i4 < _Object$keys.length; _i4++) {
627
+ var key = _Object$keys[_i4];
628
+
629
+ if (key !== keyToOmit) {
630
+ result[key] = object[key];
631
+ }
632
+ }
633
+
634
+ return result;
620
635
  } //
621
636
  // Primitives
622
637
  //
@@ -892,8 +907,8 @@ var LWC = (function (exports) {
892
907
  var reactiveObservers = reactiveRecord[key];
893
908
 
894
909
  if (!isUndefined$1(reactiveObservers)) {
895
- for (var _i4 = 0, _len2 = reactiveObservers.length; _i4 < _len2; _i4 += 1) {
896
- var ro = reactiveObservers[_i4];
910
+ for (var _i5 = 0, _len2 = reactiveObservers.length; _i5 < _len2; _i5 += 1) {
911
+ var ro = reactiveObservers[_i5];
897
912
  ro.notify();
898
913
  }
899
914
  }
@@ -962,9 +977,9 @@ var LWC = (function (exports) {
962
977
  var len = listeners.length;
963
978
 
964
979
  if (len > 0) {
965
- for (var _i5 = 0; _i5 < len; _i5 += 1) {
966
- var set = listeners[_i5];
967
- var pos = ArrayIndexOf.call(listeners[_i5], this);
980
+ for (var _i6 = 0; _i6 < len; _i6 += 1) {
981
+ var set = listeners[_i6];
982
+ var pos = ArrayIndexOf.call(listeners[_i6], this);
968
983
  ArraySplice.call(set, pos, 1);
969
984
  }
970
985
 
@@ -2746,7 +2761,7 @@ var LWC = (function (exports) {
2746
2761
 
2747
2762
 
2748
2763
  var _loop = function _loop() {
2749
- var childGetter = _childGetters[_i6];
2764
+ var childGetter = _childGetters[_i7];
2750
2765
  queryAndChildGetterDescriptors[childGetter] = {
2751
2766
  get: function get() {
2752
2767
  var vm = getAssociatedVM(this);
@@ -2763,7 +2778,7 @@ var LWC = (function (exports) {
2763
2778
  };
2764
2779
  };
2765
2780
 
2766
- for (var _i6 = 0, _childGetters = childGetters; _i6 < _childGetters.length; _i6++) {
2781
+ for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2767
2782
  _loop();
2768
2783
  }
2769
2784
 
@@ -2787,7 +2802,7 @@ var LWC = (function (exports) {
2787
2802
 
2788
2803
 
2789
2804
  var _loop2 = function _loop2() {
2790
- var queryMethod = _queryMethods[_i7];
2805
+ var queryMethod = _queryMethods[_i8];
2791
2806
  queryAndChildGetterDescriptors[queryMethod] = {
2792
2807
  value: function value(arg) {
2793
2808
  var vm = getAssociatedVM(this);
@@ -2805,7 +2820,7 @@ var LWC = (function (exports) {
2805
2820
  };
2806
2821
  };
2807
2822
 
2808
- for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
2823
+ for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2809
2824
  _loop2();
2810
2825
  }
2811
2826
 
@@ -3328,8 +3343,8 @@ var LWC = (function (exports) {
3328
3343
  }
3329
3344
 
3330
3345
  if (!isUndefined$1(fields)) {
3331
- for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
3332
- var _fieldName2 = fields[_i8];
3346
+ for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
3347
+ var _fieldName2 = fields[_i9];
3333
3348
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
3334
3349
 
3335
3350
  if (process.env.NODE_ENV !== 'production') {
@@ -3550,8 +3565,8 @@ var LWC = (function (exports) {
3550
3565
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
3551
3566
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
3552
3567
 
3553
- for (var _i9 = 0, _len3 = props.length; _i9 < _len3; _i9 += 1) {
3554
- var _propName2 = props[_i9];
3568
+ for (var _i10 = 0, _len3 = props.length; _i10 < _len3; _i10 += 1) {
3569
+ var _propName2 = props[_i10];
3555
3570
  attributeToPropMap[htmlPropertyToAttribute(_propName2)] = _propName2;
3556
3571
  descriptors[_propName2] = {
3557
3572
  get: createGetter(_propName2),
@@ -3562,8 +3577,8 @@ var LWC = (function (exports) {
3562
3577
  } // expose public methods as props on the new Element Bridge
3563
3578
 
3564
3579
 
3565
- for (var _i10 = 0, _len4 = methods.length; _i10 < _len4; _i10 += 1) {
3566
- var methodName = methods[_i10];
3580
+ for (var _i11 = 0, _len4 = methods.length; _i11 < _len4; _i11 += 1) {
3581
+ var methodName = methods[_i11];
3567
3582
  descriptors[methodName] = {
3568
3583
  value: createMethodCaller(methodName),
3569
3584
  writable: true,
@@ -4507,8 +4522,8 @@ var LWC = (function (exports) {
4507
4522
  return;
4508
4523
  }
4509
4524
 
4510
- for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
4511
- var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
4525
+ for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
4526
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
4512
4527
  prop = _styleDecls$_i[0],
4513
4528
  value = _styleDecls$_i[1],
4514
4529
  important = _styleDecls$_i[2];
@@ -4775,11 +4790,13 @@ var LWC = (function (exports) {
4775
4790
  ) {
4776
4791
  // this element will now accept any manual content inserted into it
4777
4792
  observeElementChildNodes(elm);
4778
- } // when running in synthetic shadow mode, we need to set the shadowToken value
4779
- // into each element from the template, so they can be styled accordingly.
4780
-
4793
+ }
4781
4794
 
4782
- setElementShadowToken(elm, stylesheetToken);
4795
+ if (!isUndefined$1(stylesheetToken)) {
4796
+ // when running in synthetic shadow mode, we need to set the shadowToken value
4797
+ // into each element from the template, so they can be styled accordingly.
4798
+ setElementShadowToken(elm, stylesheetToken);
4799
+ }
4783
4800
  }
4784
4801
 
4785
4802
  if (process.env.NODE_ENV !== 'production') {
@@ -4856,7 +4873,9 @@ var LWC = (function (exports) {
4856
4873
  var stylesheetToken = owner.context.stylesheetToken; // when running in synthetic shadow mode, we need to set the shadowToken value
4857
4874
  // into each element from the template, so they can be styled accordingly.
4858
4875
 
4859
- setElementShadowToken(elm, stylesheetToken);
4876
+ if (!isUndefined$1(stylesheetToken)) {
4877
+ setElementShadowToken(elm, stylesheetToken);
4878
+ }
4860
4879
  }
4861
4880
 
4862
4881
  vm = createVM(elm, ctor, {
@@ -4908,8 +4927,8 @@ var LWC = (function (exports) {
4908
4927
  var oldSlots = vm.cmpSlots;
4909
4928
  var cmpSlots = vm.cmpSlots = create(null);
4910
4929
 
4911
- for (var _i12 = 0, _len6 = children.length; _i12 < _len6; _i12 += 1) {
4912
- var vnode = children[_i12];
4930
+ for (var _i13 = 0, _len6 = children.length; _i13 < _len6; _i13 += 1) {
4931
+ var vnode = children[_i13];
4913
4932
 
4914
4933
  if (isNull(vnode)) {
4915
4934
  continue;
@@ -4943,8 +4962,8 @@ var LWC = (function (exports) {
4943
4962
  return;
4944
4963
  }
4945
4964
 
4946
- for (var _i13 = 0, _len7 = oldKeys.length; _i13 < _len7; _i13 += 1) {
4947
- var key = oldKeys[_i13];
4965
+ for (var _i14 = 0, _len7 = oldKeys.length; _i14 < _len7; _i14 += 1) {
4966
+ var key = oldKeys[_i14];
4948
4967
 
4949
4968
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
4950
4969
  markComponentAsDirty(vm);
@@ -5029,6 +5048,7 @@ var LWC = (function (exports) {
5029
5048
  var idxInOld;
5030
5049
  var elmToMove;
5031
5050
  var before;
5051
+ var clonedOldCh = false;
5032
5052
 
5033
5053
  while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
5034
5054
  if (!isVNode(oldStartVnode)) {
@@ -5080,7 +5100,18 @@ var LWC = (function (exports) {
5080
5100
  newStartVnode.hook.create(newStartVnode);
5081
5101
  newStartVnode.hook.insert(newStartVnode, parentElm, oldStartVnode.elm);
5082
5102
  } else {
5083
- patchVnode(elmToMove, newStartVnode);
5103
+ patchVnode(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
5104
+ // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
5105
+ // so we only care about the `oldCh` object inside this function.
5106
+ // To avoid cloning over and over again, we check `clonedOldCh`
5107
+ // and only clone once.
5108
+
5109
+ if (!clonedOldCh) {
5110
+ clonedOldCh = true;
5111
+ oldCh = _toConsumableArray(oldCh);
5112
+ } // We've already cloned at least once, so it's no longer read-only
5113
+
5114
+
5084
5115
  oldCh[idxInOld] = undefined;
5085
5116
  newStartVnode.hook.move(elmToMove, parentElm, oldStartVnode.elm);
5086
5117
  }
@@ -5095,12 +5126,12 @@ var LWC = (function (exports) {
5095
5126
  if (oldStartIdx > oldEndIdx) {
5096
5127
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
5097
5128
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
5098
- var _i14 = newEndIdx;
5129
+ var _i15 = newEndIdx;
5099
5130
  var n;
5100
5131
 
5101
5132
  do {
5102
- n = newCh[++_i14];
5103
- } while (!isVNode(n) && _i14 < newChEnd);
5133
+ n = newCh[++_i15];
5134
+ } while (!isVNode(n) && _i15 < newChEnd);
5104
5135
 
5105
5136
  before = isVNode(n) ? n.elm : null;
5106
5137
  addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);
@@ -5131,9 +5162,9 @@ var LWC = (function (exports) {
5131
5162
 
5132
5163
  var referenceElm = null;
5133
5164
 
5134
- for (var _i15 = newChLength - 1; _i15 >= 0; _i15 -= 1) {
5135
- var vnode = newCh[_i15];
5136
- var oldVNode = oldCh[_i15];
5165
+ for (var _i16 = newChLength - 1; _i16 >= 0; _i16 -= 1) {
5166
+ var vnode = newCh[_i16];
5167
+ var oldVNode = oldCh[_i16];
5137
5168
 
5138
5169
  if (vnode !== oldVNode) {
5139
5170
  if (isVNode(oldVNode)) {
@@ -5177,7 +5208,8 @@ var LWC = (function (exports) {
5177
5208
  } // [h]tml node
5178
5209
 
5179
5210
 
5180
- function h(sel, data, children) {
5211
+ function h(sel, data) {
5212
+ var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EmptyArray;
5181
5213
  var vmBeingRendered = getVMBeingRendered();
5182
5214
 
5183
5215
  if (process.env.NODE_ENV !== 'production') {
@@ -5565,7 +5597,9 @@ var LWC = (function (exports) {
5565
5597
  * create a dynamic component via `<x-foo lwc:dynamic={Ctor}>`
5566
5598
  */
5567
5599
 
5568
- function dc(sel, Ctor, data, children) {
5600
+ function dc(sel, Ctor, data) {
5601
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EmptyArray;
5602
+
5569
5603
  if (process.env.NODE_ENV !== 'production') {
5570
5604
  assert.isTrue(isString(sel), "dc() 1st argument sel must be a string.");
5571
5605
  assert.isTrue(isObject(data), "dc() 3nd argument data must be an object.");
@@ -5589,10 +5623,14 @@ var LWC = (function (exports) {
5589
5623
  } // the new vnode key is a mix of idx and compiler key, this is required by the diffing algo
5590
5624
  // to identify different constructors as vnodes with different keys to avoid reusing the
5591
5625
  // element used for previous constructors.
5626
+ // Shallow clone is necessary here becuase VElementData may be shared across VNodes due to
5627
+ // hoisting optimization.
5592
5628
 
5593
5629
 
5594
- data.key = "dc:".concat(idx, ":").concat(data.key);
5595
- return c(sel, Ctor, data, children);
5630
+ var newData = Object.assign(Object.assign({}, data), {
5631
+ key: "dc:".concat(idx, ":").concat(data.key)
5632
+ });
5633
+ return c(sel, Ctor, newData, children);
5596
5634
  }
5597
5635
  /**
5598
5636
  * slow children collection marking mechanism. this API allows the compiler to signal
@@ -5704,12 +5742,14 @@ var LWC = (function (exports) {
5704
5742
  oldHasTokenInClass = context.hasTokenInClass,
5705
5743
  oldHasTokenInAttribute = context.hasTokenInAttribute;
5706
5744
 
5707
- if (oldHasTokenInClass) {
5708
- getClassList$1(elm).remove(makeHostToken(oldToken));
5709
- }
5745
+ if (!isUndefined$1(oldToken)) {
5746
+ if (oldHasTokenInClass) {
5747
+ getClassList$1(elm).remove(makeHostToken(oldToken));
5748
+ }
5710
5749
 
5711
- if (oldHasTokenInAttribute) {
5712
- removeAttribute$1(elm, makeHostToken(oldToken));
5750
+ if (oldHasTokenInAttribute) {
5751
+ removeAttribute$1(elm, makeHostToken(oldToken));
5752
+ }
5713
5753
  } // Apply the new template styling token to the host element, if the new template has any
5714
5754
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
5715
5755
 
@@ -5741,8 +5781,8 @@ var LWC = (function (exports) {
5741
5781
  var content = [];
5742
5782
  var root;
5743
5783
 
5744
- for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
5745
- var stylesheet = stylesheets[_i16];
5784
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5785
+ var stylesheet = stylesheets[_i17];
5746
5786
 
5747
5787
  if (isArray$1(stylesheet)) {
5748
5788
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -5852,8 +5892,8 @@ var LWC = (function (exports) {
5852
5892
  && shadowMode === 1
5853
5893
  /* Synthetic */
5854
5894
  ) {
5855
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5856
- insertGlobalStylesheet$1(stylesheets[_i17]);
5895
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
5896
+ insertGlobalStylesheet$1(stylesheets[_i18]);
5857
5897
  }
5858
5898
  } else if (ssr$1 || isHydrating$1()) {
5859
5899
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
@@ -5867,12 +5907,12 @@ var LWC = (function (exports) {
5867
5907
  var root = getNearestNativeShadowComponent(vm);
5868
5908
  var isGlobal = isNull(root);
5869
5909
 
5870
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
5910
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
5871
5911
  if (isGlobal) {
5872
- insertGlobalStylesheet$1(stylesheets[_i18]);
5912
+ insertGlobalStylesheet$1(stylesheets[_i19]);
5873
5913
  } else {
5874
5914
  // local level
5875
- insertStylesheet$1(stylesheets[_i18], root.shadowRoot);
5915
+ insertStylesheet$1(stylesheets[_i19], root.shadowRoot);
5876
5916
  }
5877
5917
  }
5878
5918
  }
@@ -6149,8 +6189,8 @@ var LWC = (function (exports) {
6149
6189
  var stylesheets = template.stylesheets;
6150
6190
 
6151
6191
  if (!isUndefined$1(stylesheets)) {
6152
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6153
- if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
6192
+ for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
6193
+ if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
6154
6194
  return true;
6155
6195
  }
6156
6196
  }
@@ -6362,8 +6402,8 @@ var LWC = (function (exports) {
6362
6402
  assert.isTrue(isObject(service), "Invalid service declaration, ".concat(service, ": service must be an object"));
6363
6403
  }
6364
6404
 
6365
- for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
6366
- var hookName = hooks[_i20];
6405
+ for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
6406
+ var hookName = hooks[_i21];
6367
6407
 
6368
6408
  if (hookName in service) {
6369
6409
  var l = Services[hookName];
@@ -6386,8 +6426,8 @@ var LWC = (function (exports) {
6386
6426
  def = vm.def,
6387
6427
  context = vm.context;
6388
6428
 
6389
- for (var _i21 = 0, _len8 = cbs.length; _i21 < _len8; ++_i21) {
6390
- cbs[_i21].call(undefined, component, {}, def, context);
6429
+ for (var _i22 = 0, _len8 = cbs.length; _i22 < _len8; ++_i22) {
6430
+ cbs[_i22].call(undefined, component, {}, def, context);
6391
6431
  }
6392
6432
  }
6393
6433
  /*
@@ -6481,7 +6521,10 @@ var LWC = (function (exports) {
6481
6521
 
6482
6522
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
6483
6523
  if (elm.innerHTML === props.innerHTML) {
6484
- delete props.innerHTML;
6524
+ // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
6525
+ vnode.data = Object.assign(Object.assign({}, vnode.data), {
6526
+ props: cloneAndOmitKey(props, 'innerHTML')
6527
+ });
6485
6528
  } else {
6486
6529
  logWarn("Mismatch hydrating element <".concat(elm.tagName.toLowerCase(), ">: innerHTML values do not match for element, will recover from the difference"), vnode.owner);
6487
6530
  }
@@ -6549,8 +6592,8 @@ var LWC = (function (exports) {
6549
6592
 
6550
6593
  var childNodeIndex = 0;
6551
6594
 
6552
- for (var _i22 = 0; _i22 < children.length; _i22++) {
6553
- var childVnode = children[_i22];
6595
+ for (var _i23 = 0; _i23 < children.length; _i23++) {
6596
+ var childVnode = children[_i23];
6554
6597
 
6555
6598
  if (!isNull(childVnode)) {
6556
6599
  var childNode = elmChildren[childNodeIndex];
@@ -6598,8 +6641,8 @@ var LWC = (function (exports) {
6598
6641
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
6599
6642
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6600
6643
 
6601
- for (var _i23 = 0, _Object$entries = Object.entries(attrs); _i23 < _Object$entries.length; _i23++) {
6602
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i23], 2),
6644
+ for (var _i24 = 0, _Object$entries = Object.entries(attrs); _i24 < _Object$entries.length; _i24++) {
6645
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i24], 2),
6603
6646
  attrName = _Object$entries$_i[0],
6604
6647
  attrValue = _Object$entries$_i[1];
6605
6648
 
@@ -6667,8 +6710,8 @@ var LWC = (function (exports) {
6667
6710
  var parsedVnodeStyle = parseStyleText(elmStyle);
6668
6711
  var expectedStyle = []; // styleMap is used when style is set to static value.
6669
6712
 
6670
- for (var _i24 = 0, n = styleDecls.length; _i24 < n; _i24++) {
6671
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i24], 3),
6713
+ for (var _i25 = 0, n = styleDecls.length; _i25 < n; _i25++) {
6714
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i25], 3),
6672
6715
  prop = _styleDecls$_i2[0],
6673
6716
  value = _styleDecls$_i2[1],
6674
6717
  important = _styleDecls$_i2[2];
@@ -7082,19 +7125,19 @@ var LWC = (function (exports) {
7082
7125
  });
7083
7126
  rehydrateQueue = []; // reset to a new queue
7084
7127
 
7085
- for (var _i25 = 0, _len9 = vms.length; _i25 < _len9; _i25 += 1) {
7086
- var vm = vms[_i25];
7128
+ for (var _i26 = 0, _len9 = vms.length; _i26 < _len9; _i26 += 1) {
7129
+ var vm = vms[_i26];
7087
7130
 
7088
7131
  try {
7089
7132
  rehydrate(vm);
7090
7133
  } catch (error) {
7091
- if (_i25 + 1 < _len9) {
7134
+ if (_i26 + 1 < _len9) {
7092
7135
  // pieces of the queue are still pending to be rehydrated, those should have priority
7093
7136
  if (rehydrateQueue.length === 0) {
7094
7137
  addCallbackToNextTick(flushRehydrationQueue);
7095
7138
  }
7096
7139
 
7097
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i25 + 1));
7140
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i26 + 1));
7098
7141
  } // we need to end the measure before throwing.
7099
7142
 
7100
7143
 
@@ -7198,8 +7241,8 @@ var LWC = (function (exports) {
7198
7241
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
7199
7242
  // inserted in reserved order.
7200
7243
 
7201
- for (var _i26 = vCustomElementCollection.length - 1; _i26 >= 0; _i26 -= 1) {
7202
- var elm = vCustomElementCollection[_i26].elm; // There are two cases where the element could be undefined:
7244
+ for (var _i27 = vCustomElementCollection.length - 1; _i27 >= 0; _i27 -= 1) {
7245
+ var elm = vCustomElementCollection[_i27].elm; // There are two cases where the element could be undefined:
7203
7246
  // * when there is an error during the construction phase, and an error
7204
7247
  // boundary picks it, there is a possibility that the VCustomElement
7205
7248
  // is not properly initialized, and therefore is should be ignored.
@@ -7233,8 +7276,8 @@ var LWC = (function (exports) {
7233
7276
 
7234
7277
 
7235
7278
  function recursivelyDisconnectChildren(vnodes) {
7236
- for (var _i27 = 0, _len10 = vnodes.length; _i27 < _len10; _i27 += 1) {
7237
- var vnode = vnodes[_i27];
7279
+ for (var _i28 = 0, _len10 = vnodes.length; _i28 < _len10; _i28 += 1) {
7280
+ var vnode = vnodes[_i28];
7238
7281
 
7239
7282
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
7240
7283
  switch (vnode.type) {
@@ -7265,8 +7308,8 @@ var LWC = (function (exports) {
7265
7308
  var children = vm.children,
7266
7309
  renderRoot = vm.renderRoot;
7267
7310
 
7268
- for (var _i28 = 0, _len11 = children.length; _i28 < _len11; _i28++) {
7269
- var child = children[_i28];
7311
+ for (var _i29 = 0, _len11 = children.length; _i29 < _len11; _i29++) {
7312
+ var child = children[_i29];
7270
7313
 
7271
7314
  if (!isNull(child) && !isUndefined$1(child.elm)) {
7272
7315
  remove$1(child.elm, renderRoot);
@@ -7640,8 +7683,8 @@ var LWC = (function (exports) {
7640
7683
  function connectWireAdapters(vm) {
7641
7684
  var wiredConnecting = vm.context.wiredConnecting;
7642
7685
 
7643
- for (var _i29 = 0, _len12 = wiredConnecting.length; _i29 < _len12; _i29 += 1) {
7644
- wiredConnecting[_i29]();
7686
+ for (var _i30 = 0, _len12 = wiredConnecting.length; _i30 < _len12; _i30 += 1) {
7687
+ wiredConnecting[_i30]();
7645
7688
  }
7646
7689
  }
7647
7690
 
@@ -7649,8 +7692,8 @@ var LWC = (function (exports) {
7649
7692
  var wiredDisconnecting = vm.context.wiredDisconnecting;
7650
7693
  runWithBoundaryProtection(vm, vm, noop, function () {
7651
7694
  // job
7652
- for (var _i30 = 0, _len13 = wiredDisconnecting.length; _i30 < _len13; _i30 += 1) {
7653
- wiredDisconnecting[_i30]();
7695
+ for (var _i31 = 0, _len13 = wiredDisconnecting.length; _i31 < _len13; _i31 += 1) {
7696
+ wiredDisconnecting[_i31]();
7654
7697
  }
7655
7698
  }, noop);
7656
7699
  }
@@ -7740,7 +7783,7 @@ var LWC = (function (exports) {
7740
7783
  hooksAreSet = true;
7741
7784
  setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);
7742
7785
  }
7743
- /* version: 2.8.0 */
7786
+ /* version: 2.9.0 */
7744
7787
 
7745
7788
  /*
7746
7789
  * Copyright (c) 2018, salesforce.com, inc.
@@ -7755,8 +7798,8 @@ var LWC = (function (exports) {
7755
7798
  if (process.env.NODE_ENV === 'development') {
7756
7799
  // @ts-ignore
7757
7800
  window.__lwcResetGlobalStylesheets = function () {
7758
- for (var _i31 = 0, _Object$keys = Object.keys(globalStylesheets); _i31 < _Object$keys.length; _i31++) {
7759
- var key = _Object$keys[_i31];
7801
+ for (var _i32 = 0, _Object$keys2 = Object.keys(globalStylesheets); _i32 < _Object$keys2.length; _i32++) {
7802
+ var key = _Object$keys2[_i32];
7760
7803
  delete globalStylesheets[key];
7761
7804
  }
7762
7805
  };
@@ -8264,8 +8307,8 @@ var LWC = (function (exports) {
8264
8307
  tagName: element.tagName.toLowerCase()
8265
8308
  });
8266
8309
 
8267
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
8268
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
8310
+ for (var _i33 = 0, _Object$entries2 = Object.entries(props); _i33 < _Object$entries2.length; _i33++) {
8311
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i33], 2),
8269
8312
  key = _Object$entries2$_i[0],
8270
8313
  value = _Object$entries2$_i[1];
8271
8314
 
@@ -8287,8 +8330,8 @@ var LWC = (function (exports) {
8287
8330
  mode: 'open'
8288
8331
  });
8289
8332
 
8290
- for (var _i33 = 0, _Object$entries3 = Object.entries(props); _i33 < _Object$entries3.length; _i33++) {
8291
- var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i33], 2),
8333
+ for (var _i34 = 0, _Object$entries3 = Object.entries(props); _i34 < _Object$entries3.length; _i34++) {
8334
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i34], 2),
8292
8335
  _key3 = _Object$entries3$_i[0],
8293
8336
  _value2 = _Object$entries3$_i[1];
8294
8337
 
@@ -8405,30 +8448,31 @@ var LWC = (function (exports) {
8405
8448
 
8406
8449
  var _Node = Node;
8407
8450
  /**
8408
- * EXPERIMENTAL: This function detects whether or not a Node is controlled by a LWC template. This
8409
- * API is subject to change or being removed.
8451
+ * EXPERIMENTAL: The purpose of this function is to detect shadowed nodes. THIS API WILL BE REMOVED
8452
+ * ONCE LOCKER V1 IS NO LONGER SUPPORTED.
8410
8453
  */
8411
8454
 
8412
- function isNodeFromTemplate(node) {
8455
+ function isNodeShadowed(node) {
8413
8456
  if (isFalse(node instanceof _Node)) {
8414
8457
  return false;
8415
- } // TODO [#1250]: skipping the shadowRoot instances itself makes no sense, we need to revisit
8416
- // this with locker
8458
+ } // It's debatable whether shadow root instances should be considered as shadowed, but we keep
8459
+ // this unchanged for legacy reasons (#1250).
8417
8460
 
8418
8461
 
8419
8462
  if (node instanceof ShadowRoot) {
8420
8463
  return false;
8421
8464
  }
8422
8465
 
8423
- if (isSyntheticShadowDefined) {
8424
- // TODO [#1252]: old behavior that is still used by some pieces of the platform,
8425
- // specifically, nodes inserted manually on places where `lwc:dom="manual"` directive is not
8426
- // used, will be considered global elements.
8427
- return !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
8428
- }
8466
+ var rootNode = node.getRootNode(); // Handle the native case. We can return early here because an invariant of LWC is that
8467
+ // synthetic roots cannot be descendants of native roots.
8468
+
8469
+ if (rootNode instanceof ShadowRoot && isFalse(hasOwnProperty$1.call(getPrototypeOf$1(rootNode), 'synthetic'))) {
8470
+ return true;
8471
+ } // TODO [#1252]: Old behavior that is still used by some pieces of the platform. Manually
8472
+ // inserted nodes without the `lwc:dom=manual` directive will be considered as global elements.
8473
+
8429
8474
 
8430
- var root = node.getRootNode();
8431
- return root instanceof ShadowRoot;
8475
+ return isSyntheticShadowDefined && !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
8432
8476
  }
8433
8477
  /*
8434
8478
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8472,7 +8516,7 @@ var LWC = (function (exports) {
8472
8516
  });
8473
8517
  freeze(LightningElement);
8474
8518
  seal(LightningElement.prototype);
8475
- /* version: 2.8.0 */
8519
+ /* version: 2.9.0 */
8476
8520
 
8477
8521
  exports.LightningElement = LightningElement;
8478
8522
  exports.__unstable__ProfilerControl = profilerControl;
@@ -8484,7 +8528,7 @@ var LWC = (function (exports) {
8484
8528
  exports.getComponentDef = getComponentDef;
8485
8529
  exports.hydrateComponent = hydrateComponent;
8486
8530
  exports.isComponentConstructor = isComponentConstructor;
8487
- exports.isNodeFromTemplate = isNodeFromTemplate;
8531
+ exports.isNodeFromTemplate = isNodeShadowed;
8488
8532
  exports.readonly = readonly;
8489
8533
  exports.register = register;
8490
8534
  exports.registerComponent = registerComponent;