lwc 2.5.10-alpha1 → 2.7.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 (54) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +168 -134
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +169 -135
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +2 -2
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +154 -133
  5. package/dist/engine-dom/iife/es5/engine-dom.js +185 -145
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +2 -2
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +172 -145
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +170 -136
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +2 -2
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +155 -134
  11. package/dist/engine-dom/umd/es5/engine-dom.js +186 -146
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +2 -2
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +173 -146
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +179 -142
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +2 -2
  16. package/dist/engine-server/esm/es2017/engine-server.js +179 -142
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +29 -130
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +30 -131
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +30 -131
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +37 -128
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +37 -128
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +31 -132
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +31 -132
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +38 -129
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +38 -129
  30. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  31. package/dist/wire-service/iife/es2017/wire-service.js +3 -3
  32. package/dist/wire-service/iife/es2017/wire-service_debug.js +3 -3
  33. package/dist/wire-service/iife/es5/wire-service.js +12 -12
  34. package/dist/wire-service/iife/es5/wire-service.min.js +1 -1
  35. package/dist/wire-service/iife/es5/wire-service_debug.js +12 -12
  36. package/dist/wire-service/umd/es2017/wire-service.js +4 -4
  37. package/dist/wire-service/umd/es2017/wire-service_debug.js +4 -4
  38. package/dist/wire-service/umd/es5/wire-service.js +13 -13
  39. package/dist/wire-service/umd/es5/wire-service.min.js +1 -1
  40. package/dist/wire-service/umd/es5/wire-service_debug.js +13 -13
  41. package/package.json +8 -8
  42. package/dist/engine/esm/es2017/engine.js +0 -7981
  43. package/dist/engine/iife/es2017/engine.js +0 -8013
  44. package/dist/engine/iife/es2017/engine.min.js +0 -9
  45. package/dist/engine/iife/es2017/engine_debug.js +0 -6541
  46. package/dist/engine/iife/es5/engine.js +0 -6060
  47. package/dist/engine/iife/es5/engine.min.js +0 -23
  48. package/dist/engine/iife/es5/engine_debug.js +0 -4856
  49. package/dist/engine/umd/es2017/engine.js +0 -8014
  50. package/dist/engine/umd/es2017/engine.min.js +0 -9
  51. package/dist/engine/umd/es2017/engine_debug.js +0 -6542
  52. package/dist/engine/umd/es5/engine.js +0 -6061
  53. package/dist/engine/umd/es5/engine.min.js +0 -23
  54. package/dist/engine/umd/es5/engine_debug.js +0 -4857
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
3
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LWC = {}));
5
- }(this, (function (exports) { 'use strict';
5
+ })(this, (function (exports) { 'use strict';
6
6
 
7
7
  function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf2(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
8
8
 
@@ -18,13 +18,13 @@
18
18
 
19
19
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
20
 
21
- function _get2(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get2 = Reflect.get; } else { _get2 = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get2(target, property, receiver || target); }
21
+ function _get2() { if (typeof Reflect !== "undefined" && Reflect.get) { _get2 = Reflect.get; } else { _get2 = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get2.apply(this, arguments); }
22
22
 
23
23
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf2(object); if (object === null) break; } return object; }
24
24
 
25
25
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
26
 
27
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
27
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } Object.defineProperty(subClass, "prototype", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
28
28
 
29
29
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
30
30
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
44
44
 
45
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
45
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
46
46
 
47
47
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
48
48
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
58
58
 
59
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
59
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
60
60
 
61
61
  /* proxy-compat-disable */
62
62
 
@@ -123,7 +123,7 @@
123
123
  var _Array$prototype = Array.prototype,
124
124
  ArrayIndexOf = _Array$prototype.indexOf,
125
125
  ArrayJoin = _Array$prototype.join,
126
- ArrayMap$1 = _Array$prototype.map,
126
+ ArrayMap = _Array$prototype.map,
127
127
  ArrayPush$1 = _Array$prototype.push,
128
128
  ArraySlice = _Array$prototype.slice,
129
129
  ArraySplice = _Array$prototype.splice,
@@ -180,7 +180,7 @@
180
180
  // Array.prototype.toString directly will cause an error Iterate through
181
181
  // all the items and handle individually.
182
182
  if (isArray$1(obj)) {
183
- return ArrayJoin.call(ArrayMap$1.call(obj, toString$1), ',');
183
+ return ArrayJoin.call(ArrayMap.call(obj, toString$1), ',');
184
184
  }
185
185
 
186
186
  return obj.toString();
@@ -344,7 +344,7 @@
344
344
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
345
345
  return attributeName;
346
346
  }
347
- /** version: 2.5.10-alpha1 */
347
+ /** version: 2.7.0 */
348
348
 
349
349
  /*
350
350
  * Copyright (c) 2018, salesforce.com, inc.
@@ -456,7 +456,6 @@
456
456
  ENABLE_NODE_LIST_PATCH: null,
457
457
  ENABLE_HTML_COLLECTIONS_PATCH: null,
458
458
  ENABLE_NODE_PATCH: null,
459
- ENABLE_NON_COMPOSED_EVENTS_LEAKAGE: null,
460
459
  ENABLE_MIXED_SHADOW_MODE: null,
461
460
  ENABLE_WIRE_SYNC_EMIT: null
462
461
  };
@@ -516,7 +515,7 @@
516
515
 
517
516
  function setFeatureFlagForTest(name, value) {
518
517
  }
519
- /** version: 2.5.10-alpha1 */
518
+ /** version: 2.7.0 */
520
519
 
521
520
  /* proxy-compat-disable */
522
521
 
@@ -1497,7 +1496,8 @@
1497
1496
  */
1498
1497
 
1499
1498
  var isArray = Array.isArray;
1500
- var _getPrototypeOf = Object.getPrototypeOf,
1499
+ var ObjectDotPrototype = Object.prototype,
1500
+ _getPrototypeOf = Object.getPrototypeOf,
1501
1501
  ObjectCreate = Object.create,
1502
1502
  ObjectDefineProperty = Object.defineProperty,
1503
1503
  _isExtensible = Object.isExtensible,
@@ -1564,7 +1564,10 @@
1564
1564
  // but it will always be compatible with the previous descriptor
1565
1565
  // to preserve the object invariants, which makes these lines safe.
1566
1566
 
1567
- var originalDescriptor = _getOwnPropertyDescriptor(originalTarget, key);
1567
+ var originalDescriptor = _getOwnPropertyDescriptor(originalTarget, key); // TODO: it should be impossible for the originalDescriptor to ever be undefined, this `if` can be removed
1568
+
1569
+ /* istanbul ignore else */
1570
+
1568
1571
 
1569
1572
  if (!isUndefined(originalDescriptor)) {
1570
1573
  var wrappedDesc = this.wrapDescriptor(originalDescriptor);
@@ -1589,12 +1592,18 @@
1589
1592
 
1590
1593
  _preventExtensions(shadowTarget);
1591
1594
  } // Shared Traps
1595
+ // TODO: apply() is never called
1596
+
1597
+ /* istanbul ignore next */
1592
1598
 
1593
1599
  }, {
1594
1600
  key: "apply",
1595
1601
  value: function apply(shadowTarget, thisArg, argArray) {
1596
1602
  /* No op */
1597
- }
1603
+ } // TODO: construct() is never called
1604
+
1605
+ /* istanbul ignore next */
1606
+
1598
1607
  }, {
1599
1608
  key: "construct",
1600
1609
  value: function construct(shadowTarget, argArray, newTarget) {
@@ -1699,8 +1708,8 @@
1699
1708
  return BaseProxyHandler;
1700
1709
  }();
1701
1710
 
1702
- var getterMap = new WeakMap();
1703
- var setterMap = new WeakMap();
1711
+ var getterMap$1 = new WeakMap();
1712
+ var setterMap$1 = new WeakMap();
1704
1713
  var reverseGetterMap = new WeakMap();
1705
1714
  var reverseSetterMap = new WeakMap();
1706
1715
 
@@ -1723,7 +1732,7 @@
1723
1732
  }, {
1724
1733
  key: "wrapGetter",
1725
1734
  value: function wrapGetter(originalGet) {
1726
- var wrappedGetter = getterMap.get(originalGet);
1735
+ var wrappedGetter = getterMap$1.get(originalGet);
1727
1736
 
1728
1737
  if (!isUndefined(wrappedGetter)) {
1729
1738
  return wrappedGetter;
@@ -1736,14 +1745,14 @@
1736
1745
  return handler.wrapValue(originalGet.call(unwrap$1(this)));
1737
1746
  };
1738
1747
 
1739
- getterMap.set(originalGet, get);
1748
+ getterMap$1.set(originalGet, get);
1740
1749
  reverseGetterMap.set(get, originalGet);
1741
1750
  return get;
1742
1751
  }
1743
1752
  }, {
1744
1753
  key: "wrapSetter",
1745
1754
  value: function wrapSetter(originalSet) {
1746
- var wrappedSetter = setterMap.get(originalSet);
1755
+ var wrappedSetter = setterMap$1.get(originalSet);
1747
1756
 
1748
1757
  if (!isUndefined(wrappedSetter)) {
1749
1758
  return wrappedSetter;
@@ -1754,7 +1763,7 @@
1754
1763
  originalSet.call(unwrap$1(this), unwrap$1(v));
1755
1764
  };
1756
1765
 
1757
- setterMap.set(originalSet, set);
1766
+ setterMap$1.set(originalSet, set);
1758
1767
  reverseSetterMap.set(set, originalSet);
1759
1768
  return set;
1760
1769
  }
@@ -1795,7 +1804,7 @@
1795
1804
  return unwrap$1(redGet.call(handler.wrapValue(this)));
1796
1805
  };
1797
1806
 
1798
- getterMap.set(get, redGet);
1807
+ getterMap$1.set(get, redGet);
1799
1808
  reverseGetterMap.set(redGet, get);
1800
1809
  return get;
1801
1810
  }
@@ -1815,7 +1824,7 @@
1815
1824
  redSet.call(handler.wrapValue(this), handler.wrapValue(v));
1816
1825
  };
1817
1826
 
1818
- setterMap.set(set, redSet);
1827
+ setterMap$1.set(set, redSet);
1819
1828
  reverseSetterMap.set(redSet, set);
1820
1829
  return set;
1821
1830
  }
@@ -1861,6 +1870,11 @@
1861
1870
  _preventExtensions(originalTarget); // if the originalTarget is a proxy itself, it might reject
1862
1871
  // the preventExtension call, in which case we should not attempt to lock down
1863
1872
  // the shadow target.
1873
+ // TODO: It should not actually be possible to reach this `if` statement.
1874
+ // If a proxy rejects extensions, then calling preventExtensions will throw an error:
1875
+ // https://codepen.io/nolanlawson-the-selector/pen/QWMOjbY
1876
+
1877
+ /* istanbul ignore if */
1864
1878
 
1865
1879
 
1866
1880
  if (_isExtensible(originalTarget)) {
@@ -1903,8 +1917,8 @@
1903
1917
  return ReactiveProxyHandler;
1904
1918
  }(BaseProxyHandler);
1905
1919
 
1906
- var getterMap$1 = new WeakMap();
1907
- var setterMap$1 = new WeakMap();
1920
+ var getterMap = new WeakMap();
1921
+ var setterMap = new WeakMap();
1908
1922
 
1909
1923
  var ReadOnlyHandler = /*#__PURE__*/function (_BaseProxyHandler2) {
1910
1924
  _inherits(ReadOnlyHandler, _BaseProxyHandler2);
@@ -1925,7 +1939,7 @@
1925
1939
  }, {
1926
1940
  key: "wrapGetter",
1927
1941
  value: function wrapGetter(originalGet) {
1928
- var wrappedGetter = getterMap$1.get(originalGet);
1942
+ var wrappedGetter = getterMap.get(originalGet);
1929
1943
 
1930
1944
  if (!isUndefined(wrappedGetter)) {
1931
1945
  return wrappedGetter;
@@ -1938,13 +1952,13 @@
1938
1952
  return handler.wrapValue(originalGet.call(unwrap$1(this)));
1939
1953
  };
1940
1954
 
1941
- getterMap$1.set(originalGet, get);
1955
+ getterMap.set(originalGet, get);
1942
1956
  return get;
1943
1957
  }
1944
1958
  }, {
1945
1959
  key: "wrapSetter",
1946
1960
  value: function wrapSetter(originalSet) {
1947
- var wrappedSetter = setterMap$1.get(originalSet);
1961
+ var wrappedSetter = setterMap.get(originalSet);
1948
1962
 
1949
1963
  if (!isUndefined(wrappedSetter)) {
1950
1964
  return wrappedSetter;
@@ -1953,18 +1967,22 @@
1953
1967
  var set = function set(v) {
1954
1968
  };
1955
1969
 
1956
- setterMap$1.set(originalSet, set);
1970
+ setterMap.set(originalSet, set);
1957
1971
  return set;
1958
1972
  }
1959
1973
  }, {
1960
1974
  key: "set",
1961
1975
  value: function set(shadowTarget, key, value) {
1976
+ /* istanbul ignore next */
1977
+
1962
1978
 
1963
1979
  return false;
1964
1980
  }
1965
1981
  }, {
1966
1982
  key: "deleteProperty",
1967
1983
  value: function deleteProperty(shadowTarget, key) {
1984
+ /* istanbul ignore next */
1985
+
1968
1986
 
1969
1987
  return false;
1970
1988
  }
@@ -1975,12 +1993,16 @@
1975
1993
  }, {
1976
1994
  key: "preventExtensions",
1977
1995
  value: function preventExtensions(shadowTarget) {
1996
+ /* istanbul ignore next */
1997
+
1978
1998
 
1979
1999
  return false;
1980
2000
  }
1981
2001
  }, {
1982
2002
  key: "defineProperty",
1983
2003
  value: function defineProperty(shadowTarget, key, descriptor) {
2004
+ /* istanbul ignore next */
2005
+
1984
2006
 
1985
2007
  return false;
1986
2008
  }
@@ -1989,8 +2011,6 @@
1989
2011
  return ReadOnlyHandler;
1990
2012
  }(BaseProxyHandler);
1991
2013
 
1992
- var ObjectDotPrototype = Object.prototype;
1993
-
1994
2014
  function defaultValueIsObservable(value) {
1995
2015
  // intentionally checking for null
1996
2016
  if (value === null) {
@@ -2019,64 +2039,54 @@
2019
2039
  /* do nothing */
2020
2040
  };
2021
2041
 
2022
- var defaultValueDistortion = function defaultValueDistortion(value) {
2023
- return value;
2024
- };
2025
-
2026
2042
  function createShadowTarget(value) {
2027
2043
  return isArray(value) ? [] : {};
2028
2044
  }
2029
2045
 
2030
- var ReactiveMembrane = /*#__PURE__*/function () {
2031
- function ReactiveMembrane(options) {
2032
- _classCallCheck(this, ReactiveMembrane);
2033
-
2034
- this.valueDistortion = defaultValueDistortion;
2035
- this.valueMutated = defaultValueMutated;
2036
- this.valueObserved = defaultValueObserved;
2037
- this.valueIsObservable = defaultValueIsObservable;
2038
- this.objectGraph = new WeakMap();
2039
-
2040
- if (!isUndefined(options)) {
2041
- var _valueDistortion = options.valueDistortion,
2042
- _valueMutated = options.valueMutated,
2043
- _valueObserved = options.valueObserved,
2044
- valueIsObservable = options.valueIsObservable,
2045
- tagPropertyKey = options.tagPropertyKey;
2046
- this.valueDistortion = isFunction(_valueDistortion) ? _valueDistortion : defaultValueDistortion;
2047
- this.valueMutated = isFunction(_valueMutated) ? _valueMutated : defaultValueMutated;
2048
- this.valueObserved = isFunction(_valueObserved) ? _valueObserved : defaultValueObserved;
2049
- this.valueIsObservable = isFunction(valueIsObservable) ? valueIsObservable : defaultValueIsObservable;
2050
- this.tagPropertyKey = tagPropertyKey;
2051
- }
2046
+ var ObservableMembrane = /*#__PURE__*/function () {
2047
+ function ObservableMembrane() {
2048
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2049
+
2050
+ _classCallCheck(this, ObservableMembrane);
2051
+
2052
+ this.readOnlyObjectGraph = new WeakMap();
2053
+ this.reactiveObjectGraph = new WeakMap();
2054
+ var valueMutated = options.valueMutated,
2055
+ valueObserved = options.valueObserved,
2056
+ valueIsObservable = options.valueIsObservable,
2057
+ tagPropertyKey = options.tagPropertyKey;
2058
+ this.valueMutated = isFunction(valueMutated) ? valueMutated : defaultValueMutated;
2059
+ this.valueObserved = isFunction(valueObserved) ? valueObserved : defaultValueObserved;
2060
+ this.valueIsObservable = isFunction(valueIsObservable) ? valueIsObservable : defaultValueIsObservable;
2061
+ this.tagPropertyKey = tagPropertyKey;
2052
2062
  }
2053
2063
 
2054
- _createClass(ReactiveMembrane, [{
2064
+ _createClass(ObservableMembrane, [{
2055
2065
  key: "getProxy",
2056
2066
  value: function getProxy(value) {
2057
2067
  var unwrappedValue = unwrap$1(value);
2058
- var distorted = this.valueDistortion(unwrappedValue);
2059
2068
 
2060
- if (this.valueIsObservable(distorted)) {
2061
- var o = this.getReactiveState(unwrappedValue, distorted); // when trying to extract the writable version of a readonly
2062
- // we return the readonly.
2069
+ if (this.valueIsObservable(unwrappedValue)) {
2070
+ // When trying to extract the writable version of a readonly we return the readonly.
2071
+ if (this.readOnlyObjectGraph.get(unwrappedValue) === value) {
2072
+ return value;
2073
+ }
2063
2074
 
2064
- return o.readOnly === value ? value : o.reactive;
2075
+ return this.getReactiveHandler(unwrappedValue);
2065
2076
  }
2066
2077
 
2067
- return distorted;
2078
+ return unwrappedValue;
2068
2079
  }
2069
2080
  }, {
2070
2081
  key: "getReadOnlyProxy",
2071
2082
  value: function getReadOnlyProxy(value) {
2072
2083
  value = unwrap$1(value);
2073
- var distorted = this.valueDistortion(value);
2074
2084
 
2075
- if (this.valueIsObservable(distorted)) {
2076
- return this.getReactiveState(value, distorted).readOnly;
2085
+ if (this.valueIsObservable(value)) {
2086
+ return this.getReadOnlyHandler(value);
2077
2087
  }
2078
2088
 
2079
- return distorted;
2089
+ return value;
2080
2090
  }
2081
2091
  }, {
2082
2092
  key: "unwrapProxy",
@@ -2084,48 +2094,40 @@
2084
2094
  return unwrap$1(p);
2085
2095
  }
2086
2096
  }, {
2087
- key: "getReactiveState",
2088
- value: function getReactiveState(value, distortedValue) {
2089
- var objectGraph = this.objectGraph;
2090
- var reactiveState = objectGraph.get(distortedValue);
2091
-
2092
- if (reactiveState) {
2093
- return reactiveState;
2097
+ key: "getReactiveHandler",
2098
+ value: function getReactiveHandler(value) {
2099
+ var proxy = this.reactiveObjectGraph.get(value);
2100
+
2101
+ if (isUndefined(proxy)) {
2102
+ // caching the proxy after the first time it is accessed
2103
+ var handler = new ReactiveProxyHandler(this, value);
2104
+ proxy = new Proxy(createShadowTarget(value), handler);
2105
+ registerProxy(proxy, value);
2106
+ this.reactiveObjectGraph.set(value, proxy);
2094
2107
  }
2095
2108
 
2096
- var membrane = this;
2097
- reactiveState = {
2098
- get reactive() {
2099
- var reactiveHandler = new ReactiveProxyHandler(membrane, distortedValue); // caching the reactive proxy after the first time it is accessed
2100
-
2101
- var proxy = new Proxy(createShadowTarget(distortedValue), reactiveHandler);
2102
- registerProxy(proxy, value);
2103
- ObjectDefineProperty(this, 'reactive', {
2104
- value: proxy
2105
- });
2106
- return proxy;
2107
- },
2108
-
2109
- get readOnly() {
2110
- var readOnlyHandler = new ReadOnlyHandler(membrane, distortedValue); // caching the readOnly proxy after the first time it is accessed
2111
-
2112
- var proxy = new Proxy(createShadowTarget(distortedValue), readOnlyHandler);
2113
- registerProxy(proxy, value);
2114
- ObjectDefineProperty(this, 'readOnly', {
2115
- value: proxy
2116
- });
2117
- return proxy;
2118
- }
2109
+ return proxy;
2110
+ }
2111
+ }, {
2112
+ key: "getReadOnlyHandler",
2113
+ value: function getReadOnlyHandler(value) {
2114
+ var proxy = this.readOnlyObjectGraph.get(value);
2115
+
2116
+ if (isUndefined(proxy)) {
2117
+ // caching the proxy after the first time it is accessed
2118
+ var handler = new ReadOnlyHandler(this, value);
2119
+ proxy = new Proxy(createShadowTarget(value), handler);
2120
+ registerProxy(proxy, value);
2121
+ this.readOnlyObjectGraph.set(value, proxy);
2122
+ }
2119
2123
 
2120
- };
2121
- objectGraph.set(distortedValue, reactiveState);
2122
- return reactiveState;
2124
+ return proxy;
2123
2125
  }
2124
2126
  }]);
2125
2127
 
2126
- return ReactiveMembrane;
2128
+ return ObservableMembrane;
2127
2129
  }();
2128
- /** version: 1.0.0 */
2130
+ /** version: 2.0.0 */
2129
2131
 
2130
2132
  /*
2131
2133
  * Copyright (c) 2018, salesforce.com, inc.
@@ -2136,15 +2138,9 @@
2136
2138
 
2137
2139
 
2138
2140
  var lockerLivePropertyKey = Symbol.for('@@lockerLiveValue');
2139
-
2140
- function valueDistortion(value) {
2141
- return value;
2142
- }
2143
-
2144
- var reactiveMembrane = new ReactiveMembrane({
2141
+ var reactiveMembrane = new ObservableMembrane({
2145
2142
  valueObserved: valueObserved,
2146
2143
  valueMutated: valueMutated,
2147
- valueDistortion: valueDistortion,
2148
2144
  tagPropertyKey: lockerLivePropertyKey
2149
2145
  });
2150
2146
  /**
@@ -2153,16 +2149,9 @@
2153
2149
  * change or being removed.
2154
2150
  */
2155
2151
 
2156
- var unwrap = function unwrap(value) {
2157
- var unwrapped = reactiveMembrane.unwrapProxy(value);
2158
-
2159
- if (unwrapped !== value) {
2160
- // if value is a proxy, unwrap to access original value and apply distortion
2161
- return valueDistortion(unwrapped);
2162
- }
2163
-
2164
- return value;
2165
- };
2152
+ function unwrap(value) {
2153
+ return reactiveMembrane.unwrapProxy(value);
2154
+ }
2166
2155
  /*
2167
2156
  * Copyright (c) 2018, salesforce.com, inc.
2168
2157
  * All rights reserved.
@@ -3014,7 +3003,7 @@
3014
3003
  return _super4.apply(this, arguments);
3015
3004
  }
3016
3005
 
3017
- return HTMLBridgeElement;
3006
+ return _createClass(HTMLBridgeElement);
3018
3007
  }(SuperClass);
3019
3008
  } else {
3020
3009
  HTMLBridgeElement = function HTMLBridgeElement() {
@@ -3467,12 +3456,14 @@
3467
3456
  }
3468
3457
 
3469
3458
  function updateChildrenHook(oldVnode, vnode) {
3470
- var children = vnode.children,
3471
- owner = vnode.owner;
3472
- var fn = hasDynamicChildren(children) ? updateDynamicChildren : updateStaticChildren;
3473
- runWithBoundaryProtection(owner, owner.owner, noop, function () {
3474
- fn(vnode.elm, oldVnode.children, children);
3475
- }, noop);
3459
+ var elm = vnode.elm,
3460
+ children = vnode.children;
3461
+
3462
+ if (hasDynamicChildren(children)) {
3463
+ updateDynamicChildren(elm, oldVnode.children, children);
3464
+ } else {
3465
+ updateStaticChildren(elm, oldVnode.children, children);
3466
+ }
3476
3467
  }
3477
3468
 
3478
3469
  function allocateChildrenHook(vnode, vm) {
@@ -3660,7 +3651,7 @@
3660
3651
  return _this4;
3661
3652
  }
3662
3653
 
3663
- return LWCUpgradableElement;
3654
+ return _createClass(LWCUpgradableElement);
3664
3655
  }(renderer.HTMLElement);
3665
3656
 
3666
3657
  renderer.defineCustomElement(tagName, CE);
@@ -4347,6 +4338,7 @@
4347
4338
 
4348
4339
  function evaluateStylesheetsContent(stylesheets, stylesheetToken, vm) {
4349
4340
  var content = [];
4341
+ var root;
4350
4342
 
4351
4343
  for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4352
4344
  var stylesheet = stylesheets[_i16];
@@ -4354,22 +4346,45 @@
4354
4346
  if (isArray$1(stylesheet)) {
4355
4347
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
4356
4348
  } else {
4357
- // native shadow DOM. Synthetic shadow DOM never uses `:host`.
4358
4349
 
4350
+ var isScopedCss = stylesheet[KEY__SCOPED_CSS]; // Apply the scope token only if the stylesheet itself is scoped, or if we're rendering synthetic shadow.
4351
+
4352
+ var scopeToken = isScopedCss || vm.shadowMode === 1
4353
+ /* Synthetic */
4354
+ && vm.renderMode === 1
4355
+ /* Shadow */
4356
+ ? stylesheetToken : undefined; // Use the actual `:host` selector if we're rendering global CSS for light DOM, or if we're rendering
4357
+ // native shadow DOM. Synthetic shadow DOM never uses `:host`.
4359
4358
 
4360
- var isScopedCss = stylesheet[KEY__SCOPED_CSS];
4361
4359
  var useActualHostSelector = vm.renderMode === 0
4362
4360
  /* Light */
4363
4361
  ? !isScopedCss : vm.shadowMode === 0
4364
4362
  /* Native */
4365
- ; // Apply the scope token only if the stylesheet itself is scoped, or if we're rendering synthetic shadow.
4363
+ ; // Use the native :dir() pseudoclass only in native shadow DOM. Otherwise, in synthetic shadow,
4364
+ // we use an attribute selector on the host to simulate :dir().
4366
4365
 
4367
- var scopeToken = isScopedCss || vm.shadowMode === 1
4368
- /* Synthetic */
4369
- && vm.renderMode === 1
4366
+ var useNativeDirPseudoclass = void 0;
4367
+
4368
+ if (vm.renderMode === 1
4370
4369
  /* Shadow */
4371
- ? stylesheetToken : undefined;
4372
- ArrayPush$1.call(content, stylesheet(useActualHostSelector, scopeToken));
4370
+ ) {
4371
+ useNativeDirPseudoclass = vm.shadowMode === 0
4372
+ /* Native */
4373
+ ;
4374
+ } else {
4375
+ // Light DOM components should only render `[dir]` if they're inside of a synthetic shadow root.
4376
+ // At the top level (root is null) or inside of a native shadow root, they should use `:dir()`.
4377
+ if (isUndefined$1(root)) {
4378
+ // Only calculate the root once as necessary
4379
+ root = getNearestShadowComponent(vm);
4380
+ }
4381
+
4382
+ useNativeDirPseudoclass = isNull(root) || root.shadowMode === 0
4383
+ /* Native */
4384
+ ;
4385
+ }
4386
+
4387
+ ArrayPush$1.call(content, stylesheet(scopeToken, useActualHostSelector, useNativeDirPseudoclass));
4373
4388
  }
4374
4389
  }
4375
4390
 
@@ -4391,14 +4406,12 @@
4391
4406
  // https://github.com/salesforce/lwc/pull/2460#discussion_r691208892
4392
4407
 
4393
4408
 
4394
- function getNearestNativeShadowComponent(vm) {
4409
+ function getNearestShadowComponent(vm) {
4395
4410
  var owner = vm;
4396
4411
 
4397
4412
  while (!isNull(owner)) {
4398
4413
  if (owner.renderMode === 1
4399
4414
  /* Shadow */
4400
- && owner.shadowMode === 0
4401
- /* Native */
4402
4415
  ) {
4403
4416
  return owner;
4404
4417
  }
@@ -4409,6 +4422,20 @@
4409
4422
  return owner;
4410
4423
  }
4411
4424
 
4425
+ function getNearestNativeShadowComponent(vm) {
4426
+ var owner = getNearestShadowComponent(vm);
4427
+
4428
+ if (!isNull(owner) && owner.shadowMode === 1
4429
+ /* Synthetic */
4430
+ ) {
4431
+ // Synthetic-within-native is impossible. So if the nearest shadow component is
4432
+ // synthetic, we know we won't find a native component if we go any further.
4433
+ return null;
4434
+ }
4435
+
4436
+ return owner;
4437
+ }
4438
+
4412
4439
  function createStylesheet(vm, stylesheets) {
4413
4440
  var renderer = vm.renderer,
4414
4441
  renderMode = vm.renderMode,
@@ -4476,7 +4503,7 @@
4476
4503
  if (isProfilerEnabled) {
4477
4504
  currentDispatcher(opId, 0
4478
4505
  /* Start */
4479
- , vm.tagName, vm.idx);
4506
+ , vm.tagName, vm.idx, vm.renderMode, vm.shadowMode);
4480
4507
  }
4481
4508
  }
4482
4509
 
@@ -4485,7 +4512,7 @@
4485
4512
  if (isProfilerEnabled) {
4486
4513
  currentDispatcher(opId, 1
4487
4514
  /* Stop */
4488
- , vm.tagName, vm.idx);
4515
+ , vm.tagName, vm.idx, vm.renderMode, vm.shadowMode);
4489
4516
  }
4490
4517
  }
4491
4518
 
@@ -4494,7 +4521,7 @@
4494
4521
  if (isProfilerEnabled) {
4495
4522
  currentDispatcher(opId, 0
4496
4523
  /* Start */
4497
- , vm === null || vm === void 0 ? void 0 : vm.tagName, vm === null || vm === void 0 ? void 0 : vm.idx);
4524
+ , vm === null || vm === void 0 ? void 0 : vm.tagName, vm === null || vm === void 0 ? void 0 : vm.idx, vm === null || vm === void 0 ? void 0 : vm.renderMode, vm === null || vm === void 0 ? void 0 : vm.shadowMode);
4498
4525
  }
4499
4526
  }
4500
4527
 
@@ -4503,7 +4530,7 @@
4503
4530
  if (isProfilerEnabled) {
4504
4531
  currentDispatcher(opId, 1
4505
4532
  /* Stop */
4506
- , vm === null || vm === void 0 ? void 0 : vm.tagName, vm === null || vm === void 0 ? void 0 : vm.idx);
4533
+ , vm === null || vm === void 0 ? void 0 : vm.tagName, vm === null || vm === void 0 ? void 0 : vm.idx, vm === null || vm === void 0 ? void 0 : vm.renderMode, vm === null || vm === void 0 ? void 0 : vm.shadowMode);
4507
4534
  }
4508
4535
  }
4509
4536
  /*
@@ -5542,7 +5569,7 @@
5542
5569
  return _this5;
5543
5570
  }
5544
5571
 
5545
- return WireContextRegistrationEvent;
5572
+ return _createClass(WireContextRegistrationEvent);
5546
5573
  }( /*#__PURE__*/_wrapNativeSuper(CustomEvent));
5547
5574
 
5548
5575
  function createFieldDataCallback(vm, name) {
@@ -5876,7 +5903,7 @@
5876
5903
  hooksAreSet = true;
5877
5904
  setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);
5878
5905
  }
5879
- /* version: 2.5.10-alpha1 */
5906
+ /* version: 2.7.0 */
5880
5907
 
5881
5908
  /*
5882
5909
  * Copyright (c) 2018, salesforce.com, inc.
@@ -5923,7 +5950,7 @@
5923
5950
  return _super7.apply(this, arguments);
5924
5951
  }
5925
5952
 
5926
- return clazz;
5953
+ return _createClass(clazz);
5927
5954
  }(HTMLElementAlias);
5928
5955
 
5929
5956
  customElements.define('lwc-test-' + Math.floor(Math.random() * 1000000), clazz);
@@ -6506,7 +6533,7 @@
6506
6533
  });
6507
6534
  freeze(LightningElement);
6508
6535
  seal(LightningElement.prototype);
6509
- /* version: 2.5.10-alpha1 */
6536
+ /* version: 2.7.0 */
6510
6537
 
6511
6538
  exports.LightningElement = LightningElement;
6512
6539
  exports.__unstable__ProfilerControl = profilerControl;
@@ -6537,4 +6564,4 @@
6537
6564
 
6538
6565
  Object.defineProperty(exports, '__esModule', { value: true });
6539
6566
 
6540
- })));
6567
+ }));