lwc 2.21.1 → 2.22.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 +145 -71
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +145 -71
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +143 -69
  5. package/dist/engine-dom/iife/es5/engine-dom.js +182 -79
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +167 -64
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +145 -71
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +143 -69
  11. package/dist/engine-dom/umd/es5/engine-dom.js +182 -79
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +167 -64
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +53 -262
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +53 -262
  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
@@ -419,9 +419,9 @@ function htmlEscape(str, attrMode = false) {
419
419
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
420
420
  */
421
421
  // Increment whenever the LWC template compiler changes
422
- const LWC_VERSION = "2.21.1";
422
+ const LWC_VERSION = "2.22.0";
423
423
  const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
424
- /** version: 2.21.1 */
424
+ /** version: 2.22.0 */
425
425
 
426
426
  /*
427
427
  * Copyright (c) 2020, salesforce.com, inc.
@@ -530,7 +530,7 @@ function setFeatureFlagForTest(name, value) {
530
530
  setFeatureFlag(name, value);
531
531
  }
532
532
  }
533
- /** version: 2.21.1 */
533
+ /** version: 2.22.0 */
534
534
 
535
535
  /* proxy-compat-disable */
536
536
 
@@ -558,40 +558,9 @@ if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
558
558
  }));
559
559
  });
560
560
  }
561
-
562
- /*
563
- * Copyright (c) 2018, salesforce.com, inc.
564
- * All rights reserved.
565
- * SPDX-License-Identifier: MIT
566
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
567
- */
568
- let nextTickCallbackQueue = [];
569
561
  const SPACE_CHAR = 32;
570
562
  const EmptyObject = seal(create(null));
571
563
  const EmptyArray = seal([]);
572
- function flushCallbackQueue() {
573
- if (process.env.NODE_ENV !== 'production') {
574
- if (nextTickCallbackQueue.length === 0) {
575
- throw new Error(`Internal Error: If callbackQueue is scheduled, it is because there must be at least one callback on this pending queue.`);
576
- }
577
- }
578
- const callbacks = nextTickCallbackQueue;
579
- nextTickCallbackQueue = []; // reset to a new queue
580
- for (let i = 0, len = callbacks.length; i < len; i += 1) {
581
- callbacks[i]();
582
- }
583
- }
584
- function addCallbackToNextTick(callback) {
585
- if (process.env.NODE_ENV !== 'production') {
586
- if (!isFunction$1(callback)) {
587
- throw new Error(`Internal Error: addCallbackToNextTick() can only accept a function callback`);
588
- }
589
- }
590
- if (nextTickCallbackQueue.length === 0) {
591
- Promise.resolve().then(flushCallbackQueue);
592
- }
593
- ArrayPush$1.call(nextTickCallbackQueue, callback);
594
- }
595
564
  function guid() {
596
565
  function s4() {
597
566
  return Math.floor((1 + Math.random()) * 0x10000)
@@ -620,16 +589,6 @@ function flattenStylesheets(stylesheets) {
620
589
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
621
590
  */
622
591
  const TargetToReactiveRecordMap = new WeakMap();
623
- function getReactiveRecord(target) {
624
- let reactiveRecord = TargetToReactiveRecordMap.get(target);
625
- if (isUndefined$1(reactiveRecord)) {
626
- const newRecord = create(null);
627
- reactiveRecord = newRecord;
628
- TargetToReactiveRecordMap.set(target, newRecord);
629
- }
630
- return reactiveRecord;
631
- }
632
- let currentReactiveObserver = null;
633
592
  function valueMutated(target, key) {
634
593
  const reactiveRecord = TargetToReactiveRecordMap.get(target);
635
594
  if (!isUndefined$1(reactiveRecord)) {
@@ -644,71 +603,9 @@ function valueMutated(target, key) {
644
603
  }
645
604
  function valueObserved(target, key) {
646
605
  // We should determine if an active Observing Record is present to track mutations.
647
- if (currentReactiveObserver === null) {
606
+ {
648
607
  return;
649
608
  }
650
- const ro = currentReactiveObserver;
651
- const reactiveRecord = getReactiveRecord(target);
652
- let reactiveObservers = reactiveRecord[key];
653
- if (isUndefined$1(reactiveObservers)) {
654
- reactiveObservers = [];
655
- reactiveRecord[key] = reactiveObservers;
656
- }
657
- else if (reactiveObservers[0] === ro) {
658
- return; // perf optimization considering that most subscriptions will come from the same record
659
- }
660
- if (ArrayIndexOf.call(reactiveObservers, ro) === -1) {
661
- ro.link(reactiveObservers);
662
- }
663
- }
664
- class ReactiveObserver {
665
- constructor(callback) {
666
- this.listeners = [];
667
- this.callback = callback;
668
- }
669
- observe(job) {
670
- const inceptionReactiveRecord = currentReactiveObserver;
671
- currentReactiveObserver = this;
672
- let error;
673
- try {
674
- job();
675
- }
676
- catch (e) {
677
- error = Object(e);
678
- }
679
- finally {
680
- currentReactiveObserver = inceptionReactiveRecord;
681
- if (error !== undefined) {
682
- throw error; // eslint-disable-line no-unsafe-finally
683
- }
684
- }
685
- }
686
- /**
687
- * This method is responsible for disconnecting the Reactive Observer
688
- * from any Reactive Record that has a reference to it, to prevent future
689
- * notifications about previously recorded access.
690
- */
691
- reset() {
692
- const { listeners } = this;
693
- const len = listeners.length;
694
- if (len > 0) {
695
- for (let i = 0; i < len; i += 1) {
696
- const set = listeners[i];
697
- const pos = ArrayIndexOf.call(listeners[i], this);
698
- ArraySplice.call(set, pos, 1);
699
- }
700
- listeners.length = 0;
701
- }
702
- }
703
- // friend methods
704
- notify() {
705
- this.callback.call(undefined, this);
706
- }
707
- link(reactiveObservers) {
708
- ArrayPush$1.call(reactiveObservers, this);
709
- // we keep track of observing records where the observing record was added to so we can do some clean up later on
710
- ArrayPush$1.call(this.listeners, reactiveObservers);
711
- }
712
609
  }
713
610
 
714
611
  /*
@@ -717,11 +614,16 @@ class ReactiveObserver {
717
614
  * SPDX-License-Identifier: MIT
718
615
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
719
616
  */
720
- function componentValueMutated(vm, key) {
721
- valueMutated(vm.component, key);
722
- }
723
- function componentValueObserved(vm, key) {
724
- valueObserved(vm.component, key);
617
+ const DUMMY_REACTIVE_OBSERVER = {
618
+ observe(job) {
619
+ job();
620
+ },
621
+ reset() { },
622
+ link() { },
623
+ };
624
+ function createReactiveObserver(callback) {
625
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
626
+ return DUMMY_REACTIVE_OBSERVER;
725
627
  }
726
628
 
727
629
  /*
@@ -1840,7 +1742,17 @@ const reactiveMembrane = new ObservableMembrane({
1840
1742
  * change or being removed.
1841
1743
  */
1842
1744
  function unwrap(value) {
1843
- return reactiveMembrane.unwrapProxy(value);
1745
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
1746
+ return value;
1747
+ }
1748
+ function getReadOnlyProxy(value) {
1749
+ // We must return a frozen wrapper around the value, so that child components cannot mutate properties passed to
1750
+ // them from their parents. This applies to both the client and server.
1751
+ return reactiveMembrane.getReadOnlyProxy(value);
1752
+ }
1753
+ function getReactiveProxy(value) {
1754
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
1755
+ return value;
1844
1756
  }
1845
1757
 
1846
1758
  /*
@@ -1880,7 +1792,6 @@ function createBridgeToElementDescriptor(propName, descriptor) {
1880
1792
  }
1881
1793
  return;
1882
1794
  }
1883
- componentValueObserved(vm, propName);
1884
1795
  return get.call(vm.elm);
1885
1796
  },
1886
1797
  set(newValue) {
@@ -1894,7 +1805,6 @@ function createBridgeToElementDescriptor(propName, descriptor) {
1894
1805
  }
1895
1806
  if (newValue !== vm.cmpProps[propName]) {
1896
1807
  vm.cmpProps[propName] = newValue;
1897
- componentValueMutated(vm, propName);
1898
1808
  }
1899
1809
  return set.call(vm.elm, newValue);
1900
1810
  },
@@ -1930,8 +1840,6 @@ const LightningElement = function () {
1930
1840
  vm.setHook = setHook;
1931
1841
  vm.getHook = getHook;
1932
1842
  }
1933
- // Making the component instance a live value when using Locker to support expandos.
1934
- this[lockerLivePropertyKey] = undefined;
1935
1843
  // Linking elm, shadow root and component with the VM.
1936
1844
  associateVM(component, vm);
1937
1845
  associateVM(elm, vm);
@@ -2186,14 +2094,12 @@ function createObservedFieldPropertyDescriptor(key) {
2186
2094
  return {
2187
2095
  get() {
2188
2096
  const vm = getAssociatedVM(this);
2189
- componentValueObserved(vm, key);
2190
2097
  return vm.cmpFields[key];
2191
2098
  },
2192
2099
  set(newValue) {
2193
2100
  const vm = getAssociatedVM(this);
2194
2101
  if (newValue !== vm.cmpFields[key]) {
2195
2102
  vm.cmpFields[key] = newValue;
2196
- componentValueMutated(vm, key);
2197
2103
  }
2198
2104
  },
2199
2105
  enumerable: true,
@@ -2201,6 +2107,24 @@ function createObservedFieldPropertyDescriptor(key) {
2201
2107
  };
2202
2108
  }
2203
2109
 
2110
+ /*
2111
+ * Copyright (c) 2018, salesforce.com, inc.
2112
+ * All rights reserved.
2113
+ * SPDX-License-Identifier: MIT
2114
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2115
+ */
2116
+ const DUMMY_ACCESSOR_REACTIVE_OBSERVER = {
2117
+ observe(job) {
2118
+ job();
2119
+ },
2120
+ reset() { },
2121
+ link() { },
2122
+ };
2123
+ function createAccessorReactiveObserver(vm, set) {
2124
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
2125
+ return DUMMY_ACCESSOR_REACTIVE_OBSERVER;
2126
+ }
2127
+
2204
2128
  /*
2205
2129
  * Copyright (c) 2018, salesforce.com, inc.
2206
2130
  * All rights reserved.
@@ -2226,8 +2150,6 @@ function createPublicPropertyDescriptor(key) {
2226
2150
 
2227
2151
  return;
2228
2152
  }
2229
-
2230
- componentValueObserved(vm, key);
2231
2153
  return vm.cmpProps[key];
2232
2154
  },
2233
2155
 
@@ -2241,57 +2163,12 @@ function createPublicPropertyDescriptor(key) {
2241
2163
  }
2242
2164
 
2243
2165
  vm.cmpProps[key] = newValue;
2244
- componentValueMutated(vm, key);
2245
2166
  },
2246
2167
 
2247
2168
  enumerable: true,
2248
2169
  configurable: true
2249
2170
  };
2250
2171
  }
2251
- class AccessorReactiveObserver extends ReactiveObserver {
2252
- constructor(vm, set) {
2253
- super(() => {
2254
- if (isFalse(this.debouncing)) {
2255
- this.debouncing = true;
2256
- addCallbackToNextTick(() => {
2257
- if (isTrue(this.debouncing)) {
2258
- const {
2259
- value
2260
- } = this;
2261
- const {
2262
- isDirty: dirtyStateBeforeSetterCall,
2263
- component,
2264
- idx
2265
- } = vm;
2266
- set.call(component, value); // de-bouncing after the call to the original setter to prevent
2267
- // infinity loop if the setter itself is mutating things that
2268
- // were accessed during the previous invocation.
2269
-
2270
- this.debouncing = false;
2271
-
2272
- if (isTrue(vm.isDirty) && isFalse(dirtyStateBeforeSetterCall) && idx > 0) {
2273
- // immediate rehydration due to a setter driven mutation, otherwise
2274
- // the component will get rendered on the second tick, which it is not
2275
- // desirable.
2276
- rerenderVM(vm);
2277
- }
2278
- }
2279
- });
2280
- }
2281
- });
2282
- this.debouncing = false;
2283
- }
2284
-
2285
- reset(value) {
2286
- super.reset();
2287
- this.debouncing = false;
2288
-
2289
- if (arguments.length > 0) {
2290
- this.value = value;
2291
- }
2292
- }
2293
-
2294
- }
2295
2172
  function createPublicAccessorDescriptor(key, descriptor) {
2296
2173
  const {
2297
2174
  get,
@@ -2332,7 +2209,7 @@ function createPublicAccessorDescriptor(key, descriptor) {
2332
2209
  let ro = vm.oar[key];
2333
2210
 
2334
2211
  if (isUndefined$1(ro)) {
2335
- ro = vm.oar[key] = new AccessorReactiveObserver(vm, set);
2212
+ ro = vm.oar[key] = createAccessorReactiveObserver();
2336
2213
  } // every time we invoke this setter from outside (through this wrapper setter)
2337
2214
  // we should reset the value and then debounce just in case there is a pending
2338
2215
  // invocation the next tick that is not longer relevant since the value is changing
@@ -2364,7 +2241,7 @@ function createPublicAccessorDescriptor(key, descriptor) {
2364
2241
  */
2365
2242
  function track(target) {
2366
2243
  if (arguments.length === 1) {
2367
- return reactiveMembrane.getProxy(target);
2244
+ return getReactiveProxy(target);
2368
2245
  }
2369
2246
  if (process.env.NODE_ENV !== 'production') {
2370
2247
  assert.fail(`@track decorator can only be used with one argument to return a trackable object, or as a decorator function.`);
@@ -2375,7 +2252,6 @@ function internalTrackDecorator(key) {
2375
2252
  return {
2376
2253
  get() {
2377
2254
  const vm = getAssociatedVM(this);
2378
- componentValueObserved(vm, key);
2379
2255
  return vm.cmpFields[key];
2380
2256
  },
2381
2257
  set(newValue) {
@@ -2385,10 +2261,9 @@ function internalTrackDecorator(key) {
2385
2261
  assert.invariant(!isInvokingRender, `${vmBeingRendered}.render() method has side effects on the state of ${vm}.${toString$1(key)}`);
2386
2262
  assert.invariant(!isUpdatingTemplate, `Updating the template of ${vmBeingRendered} has side effects on the state of ${vm}.${toString$1(key)}`);
2387
2263
  }
2388
- const reactiveOrAnyValue = reactiveMembrane.getProxy(newValue);
2264
+ const reactiveOrAnyValue = getReactiveProxy(newValue);
2389
2265
  if (reactiveOrAnyValue !== vm.cmpFields[key]) {
2390
2266
  vm.cmpFields[key] = reactiveOrAnyValue;
2391
- componentValueMutated(vm, key);
2392
2267
  }
2393
2268
  },
2394
2269
  enumerable: true,
@@ -2417,7 +2292,6 @@ function internalWireFieldDecorator(key) {
2417
2292
  return {
2418
2293
  get() {
2419
2294
  const vm = getAssociatedVM(this);
2420
- componentValueObserved(vm, key);
2421
2295
  return vm.cmpFields[key];
2422
2296
  },
2423
2297
  set(value) {
@@ -2430,7 +2304,6 @@ function internalWireFieldDecorator(key) {
2430
2304
  */
2431
2305
  if (value !== vm.cmpFields[key]) {
2432
2306
  vm.cmpFields[key] = value;
2433
- componentValueMutated(vm, key);
2434
2307
  }
2435
2308
  },
2436
2309
  enumerable: true,
@@ -2777,7 +2650,7 @@ function createSetter(key) {
2777
2650
  fn = cachedSetterByKey[key] = function (newValue) {
2778
2651
  const vm = getAssociatedVM(this);
2779
2652
  const { setHook } = vm;
2780
- newValue = reactiveMembrane.getReadOnlyProxy(newValue);
2653
+ newValue = getReadOnlyProxy(newValue);
2781
2654
  setHook(vm.component, key, newValue);
2782
2655
  };
2783
2656
  }
@@ -5053,13 +4926,7 @@ function getComponentRegisteredTemplate(Ctor) {
5053
4926
  return signedTemplateMap.get(Ctor);
5054
4927
  }
5055
4928
  function getTemplateReactiveObserver(vm) {
5056
- return new ReactiveObserver(() => {
5057
- const { isDirty } = vm;
5058
- if (isFalse(isDirty)) {
5059
- markComponentAsDirty(vm);
5060
- scheduleRehydration(vm);
5061
- }
5062
- });
4929
+ return createReactiveObserver();
5063
4930
  }
5064
4931
  function renderComponent$1(vm) {
5065
4932
  if (process.env.NODE_ENV !== 'production') {
@@ -5296,7 +5163,7 @@ function createVM(elm, ctor, renderer, options) {
5296
5163
  renderer
5297
5164
  };
5298
5165
  vm.shadowMode = computeShadowMode(vm, renderer);
5299
- vm.tro = getTemplateReactiveObserver(vm);
5166
+ vm.tro = getTemplateReactiveObserver();
5300
5167
 
5301
5168
  if (process.env.NODE_ENV !== 'production') {
5302
5169
  vm.toString = () => {
@@ -5499,49 +5366,6 @@ function runRenderedCallback(vm) {
5499
5366
  , vm);
5500
5367
  }
5501
5368
  }
5502
- let rehydrateQueue = [];
5503
-
5504
- function flushRehydrationQueue() {
5505
- logGlobalOperationStart(8
5506
- /* OperationId.GlobalRehydrate */
5507
- );
5508
-
5509
- if (process.env.NODE_ENV !== 'production') {
5510
- assert.invariant(rehydrateQueue.length, `If rehydrateQueue was scheduled, it is because there must be at least one VM on this pending queue instead of ${rehydrateQueue}.`);
5511
- }
5512
-
5513
- const vms = rehydrateQueue.sort((a, b) => a.idx - b.idx);
5514
- rehydrateQueue = []; // reset to a new queue
5515
-
5516
- for (let i = 0, len = vms.length; i < len; i += 1) {
5517
- const vm = vms[i];
5518
-
5519
- try {
5520
- rehydrate(vm);
5521
- } catch (error) {
5522
- if (i + 1 < len) {
5523
- // pieces of the queue are still pending to be rehydrated, those should have priority
5524
- if (rehydrateQueue.length === 0) {
5525
- addCallbackToNextTick(flushRehydrationQueue);
5526
- }
5527
-
5528
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, i + 1));
5529
- } // we need to end the measure before throwing.
5530
-
5531
-
5532
- logGlobalOperationEnd(8
5533
- /* OperationId.GlobalRehydrate */
5534
- ); // re-throwing the original error will break the current tick, but since the next tick is
5535
- // already scheduled, it should continue patching the rest.
5536
-
5537
- throw error; // eslint-disable-line no-unsafe-finally
5538
- }
5539
- }
5540
-
5541
- logGlobalOperationEnd(8
5542
- /* OperationId.GlobalRehydrate */
5543
- );
5544
- }
5545
5369
 
5546
5370
  function runConnectedCallback(vm) {
5547
5371
  const {
@@ -5729,25 +5553,6 @@ function resetComponentRoot(vm) {
5729
5553
  runChildNodesDisconnectedCallback(vm);
5730
5554
  vm.velements = EmptyArray;
5731
5555
  }
5732
- function scheduleRehydration(vm) {
5733
- const {
5734
- renderer: {
5735
- ssr
5736
- }
5737
- } = vm;
5738
-
5739
- if (isTrue(ssr) || isTrue(vm.isScheduled)) {
5740
- return;
5741
- }
5742
-
5743
- vm.isScheduled = true;
5744
-
5745
- if (rehydrateQueue.length === 0) {
5746
- addCallbackToNextTick(flushRehydrationQueue);
5747
- }
5748
-
5749
- ArrayPush$1.call(rehydrateQueue, vm);
5750
- }
5751
5556
 
5752
5557
  function getErrorBoundaryVM(vm) {
5753
5558
  let currentVm = vm;
@@ -5833,7 +5638,6 @@ function createFieldDataCallback(vm, name) {
5833
5638
  if (value !== vm.cmpFields[name]) {
5834
5639
  // storing the value in the underlying storage
5835
5640
  cmpFields[name] = value;
5836
- componentValueMutated(vm, name);
5837
5641
  }
5838
5642
  };
5839
5643
  }
@@ -5849,21 +5653,8 @@ function createMethodDataCallback(vm, method) {
5849
5653
  }
5850
5654
 
5851
5655
  function createConfigWatcher(component, configCallback, callbackWhenConfigIsReady) {
5852
- let hasPendingConfig = false; // creating the reactive observer for reactive params when needed
5853
-
5854
- const ro = new ReactiveObserver(() => {
5855
- if (hasPendingConfig === false) {
5856
- hasPendingConfig = true; // collect new config in the micro-task
5857
5656
 
5858
- Promise.resolve().then(() => {
5859
- hasPendingConfig = false; // resetting current reactive params
5860
-
5861
- ro.reset(); // dispatching a new config due to a change in the configuration
5862
-
5863
- computeConfigAndUpdate();
5864
- });
5865
- }
5866
- });
5657
+ const ro = createReactiveObserver();
5867
5658
 
5868
5659
  const computeConfigAndUpdate = () => {
5869
5660
  let config;
@@ -6147,7 +5938,7 @@ function readonly(obj) {
6147
5938
  assert.fail('@readonly cannot be used as a decorator just yet, use it as a function with one argument to produce a readonly version of the provided value.');
6148
5939
  }
6149
5940
  }
6150
- return reactiveMembrane.getReadOnlyProxy(obj);
5941
+ return getReadOnlyProxy(obj);
6151
5942
  }
6152
5943
 
6153
5944
  /*
@@ -6261,7 +6052,7 @@ function freezeTemplate(tmpl) {
6261
6052
  });
6262
6053
  }
6263
6054
  }
6264
- /* version: 2.21.1 */
6055
+ /* version: 2.22.0 */
6265
6056
 
6266
6057
  /*
6267
6058
  * Copyright (c) 2020, salesforce.com, inc.
@@ -6737,7 +6528,7 @@ function renderComponent(tagName, Ctor, props = {}) {
6737
6528
  */
6738
6529
  freeze(LightningElement);
6739
6530
  seal(LightningElement.prototype);
6740
- /* version: 2.21.1 */
6531
+ /* version: 2.22.0 */
6741
6532
 
6742
6533
  exports.LightningElement = LightningElement;
6743
6534
  exports.api = api$1;