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
@@ -348,7 +348,7 @@
348
348
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
349
349
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
350
350
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
351
- /** version: 2.8.0 */
351
+ /** version: 2.9.0 */
352
352
 
353
353
  /*
354
354
  * Copyright (c) 2018, salesforce.com, inc.
@@ -517,7 +517,7 @@
517
517
 
518
518
  function setFeatureFlagForTest(name, value) {
519
519
  }
520
- /** version: 2.8.0 */
520
+ /** version: 2.9.0 */
521
521
 
522
522
  /* proxy-compat-disable */
523
523
 
@@ -560,6 +560,21 @@
560
560
 
561
561
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
562
562
  } // Borrowed from Vue template compiler.
563
+
564
+
565
+ function cloneAndOmitKey(object, keyToOmit) {
566
+ var result = {};
567
+
568
+ for (var _i4 = 0, _Object$keys = Object.keys(object); _i4 < _Object$keys.length; _i4++) {
569
+ var key = _Object$keys[_i4];
570
+
571
+ if (key !== keyToOmit) {
572
+ result[key] = object[key];
573
+ }
574
+ }
575
+
576
+ return result;
577
+ } //
563
578
  // Primitives
564
579
  //
565
580
 
@@ -828,8 +843,8 @@
828
843
  var reactiveObservers = reactiveRecord[key];
829
844
 
830
845
  if (!isUndefined$1(reactiveObservers)) {
831
- for (var _i4 = 0, _len2 = reactiveObservers.length; _i4 < _len2; _i4 += 1) {
832
- var ro = reactiveObservers[_i4];
846
+ for (var _i5 = 0, _len2 = reactiveObservers.length; _i5 < _len2; _i5 += 1) {
847
+ var ro = reactiveObservers[_i5];
833
848
  ro.notify();
834
849
  }
835
850
  }
@@ -898,9 +913,9 @@
898
913
  var len = listeners.length;
899
914
 
900
915
  if (len > 0) {
901
- for (var _i5 = 0; _i5 < len; _i5 += 1) {
902
- var set = listeners[_i5];
903
- var pos = ArrayIndexOf.call(listeners[_i5], this);
916
+ for (var _i6 = 0; _i6 < len; _i6 += 1) {
917
+ var set = listeners[_i6];
918
+ var pos = ArrayIndexOf.call(listeners[_i6], this);
904
919
  ArraySplice.call(set, pos, 1);
905
920
  }
906
921
 
@@ -2120,7 +2135,7 @@
2120
2135
 
2121
2136
 
2122
2137
  var _loop = function _loop() {
2123
- var childGetter = _childGetters[_i6];
2138
+ var childGetter = _childGetters[_i7];
2124
2139
  queryAndChildGetterDescriptors[childGetter] = {
2125
2140
  get: function get() {
2126
2141
  var vm = getAssociatedVM(this);
@@ -2133,7 +2148,7 @@
2133
2148
  };
2134
2149
  };
2135
2150
 
2136
- for (var _i6 = 0, _childGetters = childGetters; _i6 < _childGetters.length; _i6++) {
2151
+ for (var _i7 = 0, _childGetters = childGetters; _i7 < _childGetters.length; _i7++) {
2137
2152
  _loop();
2138
2153
  }
2139
2154
 
@@ -2157,7 +2172,7 @@
2157
2172
 
2158
2173
 
2159
2174
  var _loop2 = function _loop2() {
2160
- var queryMethod = _queryMethods[_i7];
2175
+ var queryMethod = _queryMethods[_i8];
2161
2176
  queryAndChildGetterDescriptors[queryMethod] = {
2162
2177
  value: function value(arg) {
2163
2178
  var vm = getAssociatedVM(this);
@@ -2171,7 +2186,7 @@
2171
2186
  };
2172
2187
  };
2173
2188
 
2174
- for (var _i7 = 0, _queryMethods = queryMethods; _i7 < _queryMethods.length; _i7++) {
2189
+ for (var _i8 = 0, _queryMethods = queryMethods; _i8 < _queryMethods.length; _i8++) {
2175
2190
  _loop2();
2176
2191
  }
2177
2192
 
@@ -2532,8 +2547,8 @@
2532
2547
  }
2533
2548
 
2534
2549
  if (!isUndefined$1(fields)) {
2535
- for (var _i8 = 0, n = fields.length; _i8 < n; _i8++) {
2536
- var _fieldName2 = fields[_i8];
2550
+ for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
2551
+ var _fieldName2 = fields[_i9];
2537
2552
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
2538
2553
  // tracked property. This is only here for backward compatibility purposes.
2539
2554
 
@@ -2750,8 +2765,8 @@
2750
2765
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
2751
2766
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
2752
2767
 
2753
- for (var _i9 = 0, _len3 = props.length; _i9 < _len3; _i9 += 1) {
2754
- var _propName2 = props[_i9];
2768
+ for (var _i10 = 0, _len3 = props.length; _i10 < _len3; _i10 += 1) {
2769
+ var _propName2 = props[_i10];
2755
2770
  attributeToPropMap[htmlPropertyToAttribute(_propName2)] = _propName2;
2756
2771
  descriptors[_propName2] = {
2757
2772
  get: createGetter(_propName2),
@@ -2762,8 +2777,8 @@
2762
2777
  } // expose public methods as props on the new Element Bridge
2763
2778
 
2764
2779
 
2765
- for (var _i10 = 0, _len4 = methods.length; _i10 < _len4; _i10 += 1) {
2766
- var methodName = methods[_i10];
2780
+ for (var _i11 = 0, _len4 = methods.length; _i11 < _len4; _i11 += 1) {
2781
+ var methodName = methods[_i11];
2767
2782
  descriptors[methodName] = {
2768
2783
  value: createMethodCaller(methodName),
2769
2784
  writable: true,
@@ -3391,8 +3406,8 @@
3391
3406
  return;
3392
3407
  }
3393
3408
 
3394
- for (var _i11 = 0; _i11 < styleDecls.length; _i11++) {
3395
- var _styleDecls$_i = _slicedToArray(styleDecls[_i11], 3),
3409
+ for (var _i12 = 0; _i12 < styleDecls.length; _i12++) {
3410
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i12], 3),
3396
3411
  prop = _styleDecls$_i[0],
3397
3412
  value = _styleDecls$_i[1],
3398
3413
  important = _styleDecls$_i[2];
@@ -3630,11 +3645,13 @@
3630
3645
  ) {
3631
3646
  // this element will now accept any manual content inserted into it
3632
3647
  observeElementChildNodes(elm);
3633
- } // when running in synthetic shadow mode, we need to set the shadowToken value
3634
- // into each element from the template, so they can be styled accordingly.
3635
-
3648
+ }
3636
3649
 
3637
- setElementShadowToken(elm, stylesheetToken);
3650
+ if (!isUndefined$1(stylesheetToken)) {
3651
+ // when running in synthetic shadow mode, we need to set the shadowToken value
3652
+ // into each element from the template, so they can be styled accordingly.
3653
+ setElementShadowToken(elm, stylesheetToken);
3654
+ }
3638
3655
  }
3639
3656
  }
3640
3657
 
@@ -3697,7 +3714,9 @@
3697
3714
  var stylesheetToken = owner.context.stylesheetToken; // when running in synthetic shadow mode, we need to set the shadowToken value
3698
3715
  // into each element from the template, so they can be styled accordingly.
3699
3716
 
3700
- setElementShadowToken(elm, stylesheetToken);
3717
+ if (!isUndefined$1(stylesheetToken)) {
3718
+ setElementShadowToken(elm, stylesheetToken);
3719
+ }
3701
3720
  }
3702
3721
 
3703
3722
  vm = createVM(elm, ctor, {
@@ -3745,8 +3764,8 @@
3745
3764
  var oldSlots = vm.cmpSlots;
3746
3765
  var cmpSlots = vm.cmpSlots = create(null);
3747
3766
 
3748
- for (var _i12 = 0, _len6 = children.length; _i12 < _len6; _i12 += 1) {
3749
- var vnode = children[_i12];
3767
+ for (var _i13 = 0, _len6 = children.length; _i13 < _len6; _i13 += 1) {
3768
+ var vnode = children[_i13];
3750
3769
 
3751
3770
  if (isNull(vnode)) {
3752
3771
  continue;
@@ -3780,8 +3799,8 @@
3780
3799
  return;
3781
3800
  }
3782
3801
 
3783
- for (var _i13 = 0, _len7 = oldKeys.length; _i13 < _len7; _i13 += 1) {
3784
- var key = oldKeys[_i13];
3802
+ for (var _i14 = 0, _len7 = oldKeys.length; _i14 < _len7; _i14 += 1) {
3803
+ var key = oldKeys[_i14];
3785
3804
 
3786
3805
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
3787
3806
  markComponentAsDirty(vm);
@@ -3866,6 +3885,7 @@
3866
3885
  var idxInOld;
3867
3886
  var elmToMove;
3868
3887
  var before;
3888
+ var clonedOldCh = false;
3869
3889
 
3870
3890
  while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
3871
3891
  if (!isVNode(oldStartVnode)) {
@@ -3917,7 +3937,18 @@
3917
3937
  newStartVnode.hook.create(newStartVnode);
3918
3938
  newStartVnode.hook.insert(newStartVnode, parentElm, oldStartVnode.elm);
3919
3939
  } else {
3920
- patchVnode(elmToMove, newStartVnode);
3940
+ patchVnode(elmToMove, newStartVnode); // Delete the old child, but copy the array since it is read-only.
3941
+ // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
3942
+ // so we only care about the `oldCh` object inside this function.
3943
+ // To avoid cloning over and over again, we check `clonedOldCh`
3944
+ // and only clone once.
3945
+
3946
+ if (!clonedOldCh) {
3947
+ clonedOldCh = true;
3948
+ oldCh = _toConsumableArray(oldCh);
3949
+ } // We've already cloned at least once, so it's no longer read-only
3950
+
3951
+
3921
3952
  oldCh[idxInOld] = undefined;
3922
3953
  newStartVnode.hook.move(elmToMove, parentElm, oldStartVnode.elm);
3923
3954
  }
@@ -3932,12 +3963,12 @@
3932
3963
  if (oldStartIdx > oldEndIdx) {
3933
3964
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
3934
3965
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
3935
- var _i14 = newEndIdx;
3966
+ var _i15 = newEndIdx;
3936
3967
  var n;
3937
3968
 
3938
3969
  do {
3939
- n = newCh[++_i14];
3940
- } while (!isVNode(n) && _i14 < newChEnd);
3970
+ n = newCh[++_i15];
3971
+ } while (!isVNode(n) && _i15 < newChEnd);
3941
3972
 
3942
3973
  before = isVNode(n) ? n.elm : null;
3943
3974
  addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);
@@ -3968,9 +3999,9 @@
3968
3999
 
3969
4000
  var referenceElm = null;
3970
4001
 
3971
- for (var _i15 = newChLength - 1; _i15 >= 0; _i15 -= 1) {
3972
- var vnode = newCh[_i15];
3973
- var oldVNode = oldCh[_i15];
4002
+ for (var _i16 = newChLength - 1; _i16 >= 0; _i16 -= 1) {
4003
+ var vnode = newCh[_i16];
4004
+ var oldVNode = oldCh[_i16];
3974
4005
 
3975
4006
  if (vnode !== oldVNode) {
3976
4007
  if (isVNode(oldVNode)) {
@@ -4014,7 +4045,8 @@
4014
4045
  } // [h]tml node
4015
4046
 
4016
4047
 
4017
- function h(sel, data, children) {
4048
+ function h(sel, data) {
4049
+ var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EmptyArray;
4018
4050
  var vmBeingRendered = getVMBeingRendered();
4019
4051
 
4020
4052
  var elm;
@@ -4288,7 +4320,8 @@
4288
4320
  * create a dynamic component via `<x-foo lwc:dynamic={Ctor}>`
4289
4321
  */
4290
4322
 
4291
- function dc(sel, Ctor, data, children) {
4323
+ function dc(sel, Ctor, data) {
4324
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EmptyArray;
4292
4325
 
4293
4326
 
4294
4327
  if (Ctor == null) {
@@ -4307,10 +4340,14 @@
4307
4340
  } // the new vnode key is a mix of idx and compiler key, this is required by the diffing algo
4308
4341
  // to identify different constructors as vnodes with different keys to avoid reusing the
4309
4342
  // element used for previous constructors.
4343
+ // Shallow clone is necessary here becuase VElementData may be shared across VNodes due to
4344
+ // hoisting optimization.
4310
4345
 
4311
4346
 
4312
- data.key = "dc:".concat(idx, ":").concat(data.key);
4313
- return c(sel, Ctor, data, children);
4347
+ var newData = Object.assign(Object.assign({}, data), {
4348
+ key: "dc:".concat(idx, ":").concat(data.key)
4349
+ });
4350
+ return c(sel, Ctor, newData, children);
4314
4351
  }
4315
4352
  /**
4316
4353
  * slow children collection marking mechanism. this API allows the compiler to signal
@@ -4419,12 +4456,14 @@
4419
4456
  oldHasTokenInClass = context.hasTokenInClass,
4420
4457
  oldHasTokenInAttribute = context.hasTokenInAttribute;
4421
4458
 
4422
- if (oldHasTokenInClass) {
4423
- getClassList$1(elm).remove(makeHostToken(oldToken));
4424
- }
4459
+ if (!isUndefined$1(oldToken)) {
4460
+ if (oldHasTokenInClass) {
4461
+ getClassList$1(elm).remove(makeHostToken(oldToken));
4462
+ }
4425
4463
 
4426
- if (oldHasTokenInAttribute) {
4427
- removeAttribute$1(elm, makeHostToken(oldToken));
4464
+ if (oldHasTokenInAttribute) {
4465
+ removeAttribute$1(elm, makeHostToken(oldToken));
4466
+ }
4428
4467
  } // Apply the new template styling token to the host element, if the new template has any
4429
4468
  // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.
4430
4469
 
@@ -4456,8 +4495,8 @@
4456
4495
  var content = [];
4457
4496
  var root;
4458
4497
 
4459
- for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4460
- var stylesheet = stylesheets[_i16];
4498
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4499
+ var stylesheet = stylesheets[_i17];
4461
4500
 
4462
4501
  if (isArray$1(stylesheet)) {
4463
4502
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4561,8 +4600,8 @@
4561
4600
  && shadowMode === 1
4562
4601
  /* Synthetic */
4563
4602
  ) {
4564
- for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4565
- insertGlobalStylesheet$1(stylesheets[_i17]);
4603
+ for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4604
+ insertGlobalStylesheet$1(stylesheets[_i18]);
4566
4605
  }
4567
4606
  } else if (ssr$1 || isHydrating$1()) {
4568
4607
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
@@ -4576,12 +4615,12 @@
4576
4615
  var root = getNearestNativeShadowComponent(vm);
4577
4616
  var isGlobal = isNull(root);
4578
4617
 
4579
- for (var _i18 = 0; _i18 < stylesheets.length; _i18++) {
4618
+ for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4580
4619
  if (isGlobal) {
4581
- insertGlobalStylesheet$1(stylesheets[_i18]);
4620
+ insertGlobalStylesheet$1(stylesheets[_i19]);
4582
4621
  } else {
4583
4622
  // local level
4584
- insertStylesheet$1(stylesheets[_i18], root.shadowRoot);
4623
+ insertStylesheet$1(stylesheets[_i19], root.shadowRoot);
4585
4624
  }
4586
4625
  }
4587
4626
  }
@@ -4766,8 +4805,8 @@
4766
4805
  var stylesheets = template.stylesheets;
4767
4806
 
4768
4807
  if (!isUndefined$1(stylesheets)) {
4769
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4770
- if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4808
+ for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4809
+ if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4771
4810
  return true;
4772
4811
  }
4773
4812
  }
@@ -4950,8 +4989,8 @@
4950
4989
 
4951
4990
  function register(service) {
4952
4991
 
4953
- for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4954
- var hookName = hooks[_i20];
4992
+ for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
4993
+ var hookName = hooks[_i21];
4955
4994
 
4956
4995
  if (hookName in service) {
4957
4996
  var l = Services[hookName];
@@ -4971,8 +5010,8 @@
4971
5010
  def = vm.def,
4972
5011
  context = vm.context;
4973
5012
 
4974
- for (var _i21 = 0, _len8 = cbs.length; _i21 < _len8; ++_i21) {
4975
- cbs[_i21].call(undefined, component, {}, def, context);
5013
+ for (var _i22 = 0, _len8 = cbs.length; _i22 < _len8; ++_i22) {
5014
+ cbs[_i22].call(undefined, component, {}, def, context);
4976
5015
  }
4977
5016
  }
4978
5017
  /*
@@ -5043,7 +5082,10 @@
5043
5082
 
5044
5083
  if (!isUndefined$1(props) && !isUndefined$1(props.innerHTML)) {
5045
5084
  if (elm.innerHTML === props.innerHTML) {
5046
- delete props.innerHTML;
5085
+ // Do a shallow clone since VNodeData may be shared across VNodes due to hoist optimization
5086
+ vnode.data = Object.assign(Object.assign({}, vnode.data), {
5087
+ props: cloneAndOmitKey(props, 'innerHTML')
5088
+ });
5047
5089
  } else {
5048
5090
  logWarn("Mismatch hydrating element <".concat(elm.tagName.toLowerCase(), ">: innerHTML values do not match for element, will recover from the difference"), vnode.owner);
5049
5091
  }
@@ -5090,8 +5132,8 @@
5090
5132
 
5091
5133
  var childNodeIndex = 0;
5092
5134
 
5093
- for (var _i22 = 0; _i22 < children.length; _i22++) {
5094
- var childVnode = children[_i22];
5135
+ for (var _i23 = 0; _i23 < children.length; _i23++) {
5136
+ var childVnode = children[_i23];
5095
5137
 
5096
5138
  if (!isNull(childVnode)) {
5097
5139
  var childNode = elmChildren[childNodeIndex];
@@ -5445,19 +5487,19 @@
5445
5487
  });
5446
5488
  rehydrateQueue = []; // reset to a new queue
5447
5489
 
5448
- for (var _i25 = 0, _len9 = vms.length; _i25 < _len9; _i25 += 1) {
5449
- var vm = vms[_i25];
5490
+ for (var _i26 = 0, _len9 = vms.length; _i26 < _len9; _i26 += 1) {
5491
+ var vm = vms[_i26];
5450
5492
 
5451
5493
  try {
5452
5494
  rehydrate(vm);
5453
5495
  } catch (error) {
5454
- if (_i25 + 1 < _len9) {
5496
+ if (_i26 + 1 < _len9) {
5455
5497
  // pieces of the queue are still pending to be rehydrated, those should have priority
5456
5498
  if (rehydrateQueue.length === 0) {
5457
5499
  addCallbackToNextTick(flushRehydrationQueue);
5458
5500
  }
5459
5501
 
5460
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i25 + 1));
5502
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i26 + 1));
5461
5503
  } // we need to end the measure before throwing.
5462
5504
 
5463
5505
 
@@ -5556,8 +5598,8 @@
5556
5598
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5557
5599
  // inserted in reserved order.
5558
5600
 
5559
- for (var _i26 = vCustomElementCollection.length - 1; _i26 >= 0; _i26 -= 1) {
5560
- var elm = vCustomElementCollection[_i26].elm; // There are two cases where the element could be undefined:
5601
+ for (var _i27 = vCustomElementCollection.length - 1; _i27 >= 0; _i27 -= 1) {
5602
+ var elm = vCustomElementCollection[_i27].elm; // There are two cases where the element could be undefined:
5561
5603
  // * when there is an error during the construction phase, and an error
5562
5604
  // boundary picks it, there is a possibility that the VCustomElement
5563
5605
  // is not properly initialized, and therefore is should be ignored.
@@ -5591,8 +5633,8 @@
5591
5633
 
5592
5634
 
5593
5635
  function recursivelyDisconnectChildren(vnodes) {
5594
- for (var _i27 = 0, _len10 = vnodes.length; _i27 < _len10; _i27 += 1) {
5595
- var vnode = vnodes[_i27];
5636
+ for (var _i28 = 0, _len10 = vnodes.length; _i28 < _len10; _i28 += 1) {
5637
+ var vnode = vnodes[_i28];
5596
5638
 
5597
5639
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5598
5640
  switch (vnode.type) {
@@ -5623,8 +5665,8 @@
5623
5665
  var children = vm.children,
5624
5666
  renderRoot = vm.renderRoot;
5625
5667
 
5626
- for (var _i28 = 0, _len11 = children.length; _i28 < _len11; _i28++) {
5627
- var child = children[_i28];
5668
+ for (var _i29 = 0, _len11 = children.length; _i29 < _len11; _i29++) {
5669
+ var child = children[_i29];
5628
5670
 
5629
5671
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5630
5672
  remove$1(child.elm, renderRoot);
@@ -5974,8 +6016,8 @@
5974
6016
  function connectWireAdapters(vm) {
5975
6017
  var wiredConnecting = vm.context.wiredConnecting;
5976
6018
 
5977
- for (var _i29 = 0, _len12 = wiredConnecting.length; _i29 < _len12; _i29 += 1) {
5978
- wiredConnecting[_i29]();
6019
+ for (var _i30 = 0, _len12 = wiredConnecting.length; _i30 < _len12; _i30 += 1) {
6020
+ wiredConnecting[_i30]();
5979
6021
  }
5980
6022
  }
5981
6023
 
@@ -5983,8 +6025,8 @@
5983
6025
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5984
6026
  runWithBoundaryProtection(vm, vm, noop, function () {
5985
6027
  // job
5986
- for (var _i30 = 0, _len13 = wiredDisconnecting.length; _i30 < _len13; _i30 += 1) {
5987
- wiredDisconnecting[_i30]();
6028
+ for (var _i31 = 0, _len13 = wiredDisconnecting.length; _i31 < _len13; _i31 += 1) {
6029
+ wiredDisconnecting[_i31]();
5988
6030
  }
5989
6031
  }, noop);
5990
6032
  }
@@ -6068,7 +6110,7 @@
6068
6110
  hooksAreSet = true;
6069
6111
  setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);
6070
6112
  }
6071
- /* version: 2.8.0 */
6113
+ /* version: 2.9.0 */
6072
6114
 
6073
6115
  /*
6074
6116
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6561,8 +6603,8 @@
6561
6603
  tagName: element.tagName.toLowerCase()
6562
6604
  });
6563
6605
 
6564
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6565
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6606
+ for (var _i33 = 0, _Object$entries2 = Object.entries(props); _i33 < _Object$entries2.length; _i33++) {
6607
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i33], 2),
6566
6608
  key = _Object$entries2$_i[0],
6567
6609
  value = _Object$entries2$_i[1];
6568
6610
 
@@ -6584,8 +6626,8 @@
6584
6626
  mode: 'open'
6585
6627
  });
6586
6628
 
6587
- for (var _i33 = 0, _Object$entries3 = Object.entries(props); _i33 < _Object$entries3.length; _i33++) {
6588
- var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i33], 2),
6629
+ for (var _i34 = 0, _Object$entries3 = Object.entries(props); _i34 < _Object$entries3.length; _i34++) {
6630
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i34], 2),
6589
6631
  _key3 = _Object$entries3$_i[0],
6590
6632
  _value2 = _Object$entries3$_i[1];
6591
6633
 
@@ -6698,30 +6740,31 @@
6698
6740
 
6699
6741
  var _Node = Node;
6700
6742
  /**
6701
- * EXPERIMENTAL: This function detects whether or not a Node is controlled by a LWC template. This
6702
- * API is subject to change or being removed.
6743
+ * EXPERIMENTAL: The purpose of this function is to detect shadowed nodes. THIS API WILL BE REMOVED
6744
+ * ONCE LOCKER V1 IS NO LONGER SUPPORTED.
6703
6745
  */
6704
6746
 
6705
- function isNodeFromTemplate(node) {
6747
+ function isNodeShadowed(node) {
6706
6748
  if (isFalse(node instanceof _Node)) {
6707
6749
  return false;
6708
- } // TODO [#1250]: skipping the shadowRoot instances itself makes no sense, we need to revisit
6709
- // this with locker
6750
+ } // It's debatable whether shadow root instances should be considered as shadowed, but we keep
6751
+ // this unchanged for legacy reasons (#1250).
6710
6752
 
6711
6753
 
6712
6754
  if (node instanceof ShadowRoot) {
6713
6755
  return false;
6714
6756
  }
6715
6757
 
6716
- if (isSyntheticShadowDefined) {
6717
- // TODO [#1252]: old behavior that is still used by some pieces of the platform,
6718
- // specifically, nodes inserted manually on places where `lwc:dom="manual"` directive is not
6719
- // used, will be considered global elements.
6720
- return !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
6721
- }
6758
+ var rootNode = node.getRootNode(); // Handle the native case. We can return early here because an invariant of LWC is that
6759
+ // synthetic roots cannot be descendants of native roots.
6760
+
6761
+ if (rootNode instanceof ShadowRoot && isFalse(hasOwnProperty$1.call(getPrototypeOf$1(rootNode), 'synthetic'))) {
6762
+ return true;
6763
+ } // TODO [#1252]: Old behavior that is still used by some pieces of the platform. Manually
6764
+ // inserted nodes without the `lwc:dom=manual` directive will be considered as global elements.
6765
+
6722
6766
 
6723
- var root = node.getRootNode();
6724
- return root instanceof ShadowRoot;
6767
+ return isSyntheticShadowDefined && !isUndefined$1(node[KEY__SHADOW_RESOLVER]);
6725
6768
  }
6726
6769
  /*
6727
6770
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6765,7 +6808,7 @@
6765
6808
  });
6766
6809
  freeze(LightningElement);
6767
6810
  seal(LightningElement.prototype);
6768
- /* version: 2.8.0 */
6811
+ /* version: 2.9.0 */
6769
6812
 
6770
6813
  exports.LightningElement = LightningElement;
6771
6814
  exports.__unstable__ProfilerControl = profilerControl;
@@ -6777,7 +6820,7 @@
6777
6820
  exports.getComponentDef = getComponentDef;
6778
6821
  exports.hydrateComponent = hydrateComponent;
6779
6822
  exports.isComponentConstructor = isComponentConstructor;
6780
- exports.isNodeFromTemplate = isNodeFromTemplate;
6823
+ exports.isNodeFromTemplate = isNodeShadowed;
6781
6824
  exports.readonly = readonly;
6782
6825
  exports.register = register;
6783
6826
  exports.registerComponent = registerComponent;