lwc 2.31.6 → 2.31.8
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.
- package/dist/engine-dom/esm/es2017/engine-dom.js +163 -121
- package/dist/engine-dom/iife/es2017/engine-dom.js +163 -121
- package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
- package/dist/engine-dom/iife/es2017/engine-dom_debug.js +117 -12
- package/dist/engine-dom/iife/es5/engine-dom.js +290 -182
- package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
- package/dist/engine-dom/iife/es5/engine-dom_debug.js +219 -84
- package/dist/engine-dom/umd/es2017/engine-dom.js +163 -121
- package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
- package/dist/engine-dom/umd/es2017/engine-dom_debug.js +117 -12
- package/dist/engine-dom/umd/es5/engine-dom.js +290 -182
- package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
- package/dist/engine-dom/umd/es5/engine-dom_debug.js +219 -84
- package/dist/engine-server/commonjs/es2017/engine-server.js +124 -73
- package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
- package/dist/engine-server/esm/es2017/engine-server.js +124 -73
- package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
- package/dist/wire-service/esm/es2017/wire-service.js +2 -2
- package/dist/wire-service/iife/es2017/wire-service.js +2 -2
- package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
- package/dist/wire-service/iife/es5/wire-service.js +2 -2
- package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
- package/dist/wire-service/umd/es2017/wire-service.js +2 -2
- package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
- package/dist/wire-service/umd/es5/wire-service.js +2 -2
- package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
- package/package.json +7 -7
|
@@ -347,9 +347,9 @@
|
|
|
347
347
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
348
348
|
*/
|
|
349
349
|
// Increment whenever the LWC template compiler changes
|
|
350
|
-
const LWC_VERSION = "2.31.
|
|
350
|
+
const LWC_VERSION = "2.31.8";
|
|
351
351
|
const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
|
|
352
|
-
/** version: 2.31.
|
|
352
|
+
/** version: 2.31.8 */
|
|
353
353
|
|
|
354
354
|
/**
|
|
355
355
|
* Copyright (C) 2018 salesforce.com, inc.
|
|
@@ -431,7 +431,7 @@
|
|
|
431
431
|
patch$1(propName);
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
-
/** version: 2.31.
|
|
434
|
+
/** version: 2.31.8 */
|
|
435
435
|
|
|
436
436
|
/**
|
|
437
437
|
* Copyright (C) 2018 salesforce.com, inc.
|
|
@@ -511,7 +511,7 @@
|
|
|
511
511
|
setFeatureFlag(name, value);
|
|
512
512
|
}
|
|
513
513
|
}
|
|
514
|
-
/** version: 2.31.
|
|
514
|
+
/** version: 2.31.8 */
|
|
515
515
|
|
|
516
516
|
/*
|
|
517
517
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -3002,6 +3002,93 @@
|
|
|
3002
3002
|
freeze(BaseBridgeElement);
|
|
3003
3003
|
seal(BaseBridgeElement.prototype);
|
|
3004
3004
|
|
|
3005
|
+
/*
|
|
3006
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
3007
|
+
* All rights reserved.
|
|
3008
|
+
* SPDX-License-Identifier: MIT
|
|
3009
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
3010
|
+
*/
|
|
3011
|
+
const supportsWeakRefs = typeof WeakRef === 'function' && typeof FinalizationRegistry === 'function';
|
|
3012
|
+
// In browsers that doesn't support WeakRefs, the values will still leak, but at least the keys won't
|
|
3013
|
+
class LegacyWeakMultiMap {
|
|
3014
|
+
constructor() {
|
|
3015
|
+
this._map = new WeakMap();
|
|
3016
|
+
}
|
|
3017
|
+
_getValues(key) {
|
|
3018
|
+
let values = this._map.get(key);
|
|
3019
|
+
if (isUndefined$1(values)) {
|
|
3020
|
+
values = new Set();
|
|
3021
|
+
this._map.set(key, values);
|
|
3022
|
+
}
|
|
3023
|
+
return values;
|
|
3024
|
+
}
|
|
3025
|
+
get(key) {
|
|
3026
|
+
return this._getValues(key);
|
|
3027
|
+
}
|
|
3028
|
+
add(key, vm) {
|
|
3029
|
+
const set = this._getValues(key);
|
|
3030
|
+
set.add(vm);
|
|
3031
|
+
}
|
|
3032
|
+
delete(key) {
|
|
3033
|
+
this._map.delete(key);
|
|
3034
|
+
}
|
|
3035
|
+
}
|
|
3036
|
+
// This implementation relies on the WeakRef/FinalizationRegistry proposal.
|
|
3037
|
+
// For some background, see: https://github.com/tc39/proposal-weakrefs
|
|
3038
|
+
class ModernWeakMultiMap {
|
|
3039
|
+
constructor() {
|
|
3040
|
+
this._map = new WeakMap();
|
|
3041
|
+
this._registry = new FinalizationRegistry((weakRefs) => {
|
|
3042
|
+
// This should be considered an optional cleanup method to remove GC'ed values from their respective arrays.
|
|
3043
|
+
// JS VMs are not obligated to call FinalizationRegistry callbacks.
|
|
3044
|
+
// Work backwards, removing stale VMs
|
|
3045
|
+
for (let i = weakRefs.length - 1; i >= 0; i--) {
|
|
3046
|
+
const vm = weakRefs[i].deref();
|
|
3047
|
+
if (isUndefined$1(vm)) {
|
|
3048
|
+
ArraySplice.call(weakRefs, i, 1); // remove
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
});
|
|
3052
|
+
}
|
|
3053
|
+
_getWeakRefs(key) {
|
|
3054
|
+
let weakRefs = this._map.get(key);
|
|
3055
|
+
if (isUndefined$1(weakRefs)) {
|
|
3056
|
+
weakRefs = [];
|
|
3057
|
+
this._map.set(key, weakRefs);
|
|
3058
|
+
}
|
|
3059
|
+
return weakRefs;
|
|
3060
|
+
}
|
|
3061
|
+
get(key) {
|
|
3062
|
+
const weakRefs = this._getWeakRefs(key);
|
|
3063
|
+
const result = new Set();
|
|
3064
|
+
for (const weakRef of weakRefs) {
|
|
3065
|
+
const vm = weakRef.deref();
|
|
3066
|
+
if (!isUndefined$1(vm)) {
|
|
3067
|
+
result.add(vm);
|
|
3068
|
+
}
|
|
3069
|
+
}
|
|
3070
|
+
return result;
|
|
3071
|
+
}
|
|
3072
|
+
add(key, value) {
|
|
3073
|
+
const weakRefs = this._getWeakRefs(key);
|
|
3074
|
+
// We could check for duplicate values here, but it doesn't seem worth it.
|
|
3075
|
+
// We transform the output into a Set anyway
|
|
3076
|
+
ArrayPush$1.call(weakRefs, new WeakRef(value));
|
|
3077
|
+
// It's important here not to leak the second argument, which is the "held value." The FinalizationRegistry
|
|
3078
|
+
// effectively creates a strong reference between the first argument (the "target") and the held value. When
|
|
3079
|
+
// the target is GC'ed, the callback is called, and then the held value is GC'ed.
|
|
3080
|
+
// Putting the key here would mean the key is not GC'ed until the value is GC'ed, which defeats the purpose
|
|
3081
|
+
// of the WeakMap. Whereas putting the weakRefs array here is fine, because it doesn't have a strong reference
|
|
3082
|
+
// to anything. See also this example:
|
|
3083
|
+
// https://gist.github.com/nolanlawson/79a3d36e8e6cc25c5048bb17c1795aea
|
|
3084
|
+
this._registry.register(value, weakRefs);
|
|
3085
|
+
}
|
|
3086
|
+
delete(key) {
|
|
3087
|
+
this._map.delete(key);
|
|
3088
|
+
}
|
|
3089
|
+
}
|
|
3090
|
+
const WeakMultiMap = supportsWeakRefs ? ModernWeakMultiMap : LegacyWeakMultiMap;
|
|
3091
|
+
|
|
3005
3092
|
/*
|
|
3006
3093
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
3007
3094
|
* All rights reserved.
|
|
@@ -3011,67 +3098,62 @@
|
|
|
3011
3098
|
const swappedTemplateMap = new WeakMap();
|
|
3012
3099
|
const swappedComponentMap = new WeakMap();
|
|
3013
3100
|
const swappedStyleMap = new WeakMap();
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3101
|
+
// The important thing here is the weak values – VMs are transient (one per component instance) and should be GC'ed,
|
|
3102
|
+
// so we don't want to create strong references to them.
|
|
3103
|
+
// The weak keys are kind of useless, because Templates, LightningElementConstructors, and StylesheetFactories are
|
|
3104
|
+
// never GC'ed. But maybe they will be someday, so we may as well use weak keys too.
|
|
3105
|
+
const activeTemplates = new WeakMultiMap();
|
|
3106
|
+
const activeComponents = new WeakMultiMap();
|
|
3107
|
+
const activeStyles = new WeakMultiMap();
|
|
3017
3108
|
function rehydrateHotTemplate(tpl) {
|
|
3018
3109
|
const list = activeTemplates.get(tpl);
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
}
|
|
3026
|
-
});
|
|
3027
|
-
// resetting the Set to release the memory of those vm references
|
|
3028
|
-
// since they are not longer related to this template, instead
|
|
3029
|
-
// they will get re-associated once these instances are rehydrated.
|
|
3030
|
-
list.clear();
|
|
3110
|
+
for (const vm of list) {
|
|
3111
|
+
if (isFalse(vm.isDirty)) {
|
|
3112
|
+
// forcing the vm to rehydrate in the micro-task:
|
|
3113
|
+
markComponentAsDirty(vm);
|
|
3114
|
+
scheduleRehydration(vm);
|
|
3115
|
+
}
|
|
3031
3116
|
}
|
|
3117
|
+
// Resetting the Set since these VMs are no longer related to this template, instead
|
|
3118
|
+
// they will get re-associated once these instances are rehydrated.
|
|
3119
|
+
activeTemplates.delete(tpl);
|
|
3032
3120
|
return true;
|
|
3033
3121
|
}
|
|
3034
3122
|
function rehydrateHotStyle(style) {
|
|
3035
3123
|
const list = activeStyles.get(style);
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
// they will get re-associated once these instances are rehydrated.
|
|
3045
|
-
list.clear();
|
|
3046
|
-
}
|
|
3124
|
+
for (const vm of list) {
|
|
3125
|
+
// if a style definition is swapped, we must reset
|
|
3126
|
+
// vm's template content in the next micro-task:
|
|
3127
|
+
forceRehydration(vm);
|
|
3128
|
+
}
|
|
3129
|
+
// Resetting the Set since these VMs are no longer related to this style, instead
|
|
3130
|
+
// they will get re-associated once these instances are rehydrated.
|
|
3131
|
+
activeStyles.delete(style);
|
|
3047
3132
|
return true;
|
|
3048
3133
|
}
|
|
3049
3134
|
function rehydrateHotComponent(Ctor) {
|
|
3050
3135
|
const list = activeComponents.get(Ctor);
|
|
3051
3136
|
let canRefreshAllInstances = true;
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
if
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
// they will get re-associated once these instances are rehydrated.
|
|
3073
|
-
list.clear();
|
|
3074
|
-
}
|
|
3137
|
+
for (const vm of list) {
|
|
3138
|
+
const { owner } = vm;
|
|
3139
|
+
if (!isNull(owner)) {
|
|
3140
|
+
// if a component class definition is swapped, we must reset
|
|
3141
|
+
// owner's template content in the next micro-task:
|
|
3142
|
+
forceRehydration(owner);
|
|
3143
|
+
}
|
|
3144
|
+
else {
|
|
3145
|
+
// the hot swapping for components only work for instances of components
|
|
3146
|
+
// created from a template, root elements can't be swapped because we
|
|
3147
|
+
// don't have a way to force the creation of the element with the same state
|
|
3148
|
+
// of the current element.
|
|
3149
|
+
// Instead, we can report the problem to the caller so it can take action,
|
|
3150
|
+
// for example: reload the entire page.
|
|
3151
|
+
canRefreshAllInstances = false;
|
|
3152
|
+
}
|
|
3153
|
+
}
|
|
3154
|
+
// resetting the Set since these VMs are no longer related to this constructor, instead
|
|
3155
|
+
// they will get re-associated once these instances are rehydrated.
|
|
3156
|
+
activeComponents.delete(Ctor);
|
|
3075
3157
|
return canRefreshAllInstances;
|
|
3076
3158
|
}
|
|
3077
3159
|
function getTemplateOrSwappedTemplate(tpl) {
|
|
@@ -3117,75 +3199,27 @@
|
|
|
3117
3199
|
}
|
|
3118
3200
|
// tracking active component
|
|
3119
3201
|
const Ctor = vm.def.ctor;
|
|
3120
|
-
let componentVMs = activeComponents.get(Ctor);
|
|
3121
|
-
if (isUndefined$1(componentVMs)) {
|
|
3122
|
-
componentVMs = new Set();
|
|
3123
|
-
activeComponents.set(Ctor, componentVMs);
|
|
3124
|
-
}
|
|
3125
3202
|
// this will allow us to keep track of the hot components
|
|
3126
|
-
|
|
3203
|
+
activeComponents.add(Ctor, vm);
|
|
3127
3204
|
// tracking active template
|
|
3128
3205
|
const tpl = vm.cmpTemplate;
|
|
3129
3206
|
if (tpl) {
|
|
3130
|
-
let templateVMs = activeTemplates.get(tpl);
|
|
3131
|
-
if (isUndefined$1(templateVMs)) {
|
|
3132
|
-
templateVMs = new Set();
|
|
3133
|
-
activeTemplates.set(tpl, templateVMs);
|
|
3134
|
-
}
|
|
3135
3207
|
// this will allow us to keep track of the templates that are
|
|
3136
3208
|
// being used by a hot component
|
|
3137
|
-
|
|
3209
|
+
activeTemplates.add(tpl, vm);
|
|
3138
3210
|
// tracking active styles associated to template
|
|
3139
3211
|
const stylesheets = tpl.stylesheets;
|
|
3140
3212
|
if (!isUndefined$1(stylesheets)) {
|
|
3141
|
-
flattenStylesheets(stylesheets)
|
|
3213
|
+
for (const stylesheet of flattenStylesheets(stylesheets)) {
|
|
3142
3214
|
// this is necessary because we don't hold the list of styles
|
|
3143
3215
|
// in the vm, we only hold the selected (already swapped template)
|
|
3144
3216
|
// but the styles attached to the template might not be the actual
|
|
3145
3217
|
// active ones, but the swapped versions of those.
|
|
3146
|
-
|
|
3147
|
-
let stylesheetVMs = activeStyles.get(stylesheet);
|
|
3148
|
-
if (isUndefined$1(stylesheetVMs)) {
|
|
3149
|
-
stylesheetVMs = new Set();
|
|
3150
|
-
activeStyles.set(stylesheet, stylesheetVMs);
|
|
3151
|
-
}
|
|
3218
|
+
const swappedStylesheet = getStyleOrSwappedStyle(stylesheet);
|
|
3152
3219
|
// this will allow us to keep track of the stylesheet that are
|
|
3153
3220
|
// being used by a hot component
|
|
3154
|
-
|
|
3155
|
-
}
|
|
3156
|
-
}
|
|
3157
|
-
}
|
|
3158
|
-
}
|
|
3159
|
-
function removeActiveVM(vm) {
|
|
3160
|
-
if (process.env.NODE_ENV === 'production') {
|
|
3161
|
-
// this method should never leak to prod
|
|
3162
|
-
throw new ReferenceError();
|
|
3163
|
-
}
|
|
3164
|
-
// tracking inactive component
|
|
3165
|
-
const Ctor = vm.def.ctor;
|
|
3166
|
-
let list = activeComponents.get(Ctor);
|
|
3167
|
-
if (!isUndefined$1(list)) {
|
|
3168
|
-
// deleting the vm from the set to avoid leaking memory
|
|
3169
|
-
list.delete(vm);
|
|
3170
|
-
}
|
|
3171
|
-
// removing inactive template
|
|
3172
|
-
const tpl = vm.cmpTemplate;
|
|
3173
|
-
if (tpl) {
|
|
3174
|
-
list = activeTemplates.get(tpl);
|
|
3175
|
-
if (!isUndefined$1(list)) {
|
|
3176
|
-
// deleting the vm from the set to avoid leaking memory
|
|
3177
|
-
list.delete(vm);
|
|
3178
|
-
}
|
|
3179
|
-
// removing active styles associated to template
|
|
3180
|
-
const styles = tpl.stylesheets;
|
|
3181
|
-
if (!isUndefined$1(styles)) {
|
|
3182
|
-
flattenStylesheets(styles).forEach((style) => {
|
|
3183
|
-
list = activeStyles.get(style);
|
|
3184
|
-
if (!isUndefined$1(list)) {
|
|
3185
|
-
// deleting the vm from the set to avoid leaking memory
|
|
3186
|
-
list.delete(vm);
|
|
3187
|
-
}
|
|
3188
|
-
});
|
|
3221
|
+
activeStyles.add(swappedStylesheet, vm);
|
|
3222
|
+
}
|
|
3189
3223
|
}
|
|
3190
3224
|
}
|
|
3191
3225
|
}
|
|
@@ -5690,9 +5724,6 @@
|
|
|
5690
5724
|
runChildNodesDisconnectedCallback(vm);
|
|
5691
5725
|
runLightChildNodesDisconnectedCallback(vm);
|
|
5692
5726
|
}
|
|
5693
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
5694
|
-
removeActiveVM(vm);
|
|
5695
|
-
}
|
|
5696
5727
|
}
|
|
5697
5728
|
// this method is triggered by the diffing algo only when a vnode from the
|
|
5698
5729
|
// old vnode.children is removed from the DOM.
|
|
@@ -6067,22 +6098,33 @@
|
|
|
6067
6098
|
// into snabbdom. Especially useful when the reset is a consequence of an error, in which case the
|
|
6068
6099
|
// children VNodes might not be representing the current state of the DOM.
|
|
6069
6100
|
function resetComponentRoot(vm) {
|
|
6101
|
+
recursivelyRemoveChildren(vm.children, vm);
|
|
6102
|
+
vm.children = EmptyArray;
|
|
6103
|
+
runChildNodesDisconnectedCallback(vm);
|
|
6104
|
+
vm.velements = EmptyArray;
|
|
6105
|
+
}
|
|
6106
|
+
// Helper function to remove all children of the root node.
|
|
6107
|
+
// If the set of children includes VFragment nodes, we need to remove the children of those nodes too.
|
|
6108
|
+
// Since VFragments can contain other VFragments, we need to traverse the entire of tree of VFragments.
|
|
6109
|
+
// If the set contains no VFragment nodes, no traversal is needed.
|
|
6110
|
+
function recursivelyRemoveChildren(vnodes, vm) {
|
|
6070
6111
|
const {
|
|
6071
|
-
children,
|
|
6072
6112
|
renderRoot,
|
|
6073
6113
|
renderer: {
|
|
6074
6114
|
remove
|
|
6075
6115
|
}
|
|
6076
6116
|
} = vm;
|
|
6077
|
-
for (let i = 0, len =
|
|
6078
|
-
const
|
|
6079
|
-
if (!isNull(
|
|
6080
|
-
|
|
6117
|
+
for (let i = 0, len = vnodes.length; i < len; i += 1) {
|
|
6118
|
+
const vnode = vnodes[i];
|
|
6119
|
+
if (!isNull(vnode)) {
|
|
6120
|
+
// VFragments are special; their .elm property does not point to the root element since they have no single root.
|
|
6121
|
+
if (isVFragment(vnode)) {
|
|
6122
|
+
recursivelyRemoveChildren(vnode.children, vm);
|
|
6123
|
+
} else if (!isUndefined$1(vnode.elm)) {
|
|
6124
|
+
remove(vnode.elm, renderRoot);
|
|
6125
|
+
}
|
|
6081
6126
|
}
|
|
6082
6127
|
}
|
|
6083
|
-
vm.children = EmptyArray;
|
|
6084
|
-
runChildNodesDisconnectedCallback(vm);
|
|
6085
|
-
vm.velements = EmptyArray;
|
|
6086
6128
|
}
|
|
6087
6129
|
function scheduleRehydration(vm) {
|
|
6088
6130
|
if (isTrue(vm.isScheduled)) {
|
|
@@ -7030,7 +7072,7 @@
|
|
|
7030
7072
|
}
|
|
7031
7073
|
return ctor;
|
|
7032
7074
|
}
|
|
7033
|
-
/* version: 2.31.
|
|
7075
|
+
/* version: 2.31.8 */
|
|
7034
7076
|
|
|
7035
7077
|
/*
|
|
7036
7078
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -8003,7 +8045,7 @@
|
|
|
8003
8045
|
function isNull(obj) {
|
|
8004
8046
|
return obj === null;
|
|
8005
8047
|
}
|
|
8006
|
-
/** version: 2.31.
|
|
8048
|
+
/** version: 2.31.8 */
|
|
8007
8049
|
|
|
8008
8050
|
/*
|
|
8009
8051
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -8564,7 +8606,7 @@
|
|
|
8564
8606
|
});
|
|
8565
8607
|
freeze(LightningElement);
|
|
8566
8608
|
seal(LightningElement.prototype);
|
|
8567
|
-
/* version: 2.31.
|
|
8609
|
+
/* version: 2.31.8 */
|
|
8568
8610
|
|
|
8569
8611
|
exports.LightningElement = LightningElement;
|
|
8570
8612
|
exports.__unstable__ProfilerControl = profilerControl;
|