@lwc/engine-core 7.0.2 → 7.0.3-alpha.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.
package/dist/index.js CHANGED
@@ -445,6 +445,14 @@ function guid() {
445
445
  }
446
446
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
447
447
  }
448
+ function shouldUseNativeCustomElementLifecycle(ctor) {
449
+ if (lwcRuntimeFlags.DISABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
450
+ // temporary "kill switch"
451
+ return false;
452
+ }
453
+ const apiVersion = getComponentAPIVersion(ctor);
454
+ return isAPIFeatureEnabled(7 /* APIFeature.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE */, apiVersion);
455
+ }
448
456
  // Borrowed from Vue template compiler.
449
457
  // https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16
450
458
  const DECLARATION_DELIMITER = /;(?![^(]*\))/g;
@@ -495,7 +503,7 @@ function assertNotProd() {
495
503
  function shouldBeFormAssociated(Ctor) {
496
504
  const ctorFormAssociated = Boolean(Ctor.formAssociated);
497
505
  const apiVersion = getComponentAPIVersion(Ctor);
498
- const apiFeatureEnabled = isAPIFeatureEnabled(7 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */, apiVersion);
506
+ const apiFeatureEnabled = isAPIFeatureEnabled(8 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */, apiVersion);
499
507
  if (process.env.NODE_ENV !== 'production' && ctorFormAssociated && !apiFeatureEnabled) {
500
508
  const tagName = getComponentRegisteredName(Ctor);
501
509
  logWarnOnce(`Component <${tagName}> set static formAssociated to true, but form ` +
@@ -1738,7 +1746,7 @@ LightningElement.prototype = {
1738
1746
  attachInternals() {
1739
1747
  const vm = getAssociatedVM(this);
1740
1748
  const { elm, apiVersion, renderer: { attachInternals }, } = vm;
1741
- if (!isAPIFeatureEnabled(7 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */, apiVersion)) {
1749
+ if (!isAPIFeatureEnabled(8 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */, apiVersion)) {
1742
1750
  throw new Error(`The attachInternals API is only supported in API version 61 and above. ` +
1743
1751
  `The current version is ${apiVersion}. ` +
1744
1752
  `To use this API, update the LWC component API version. https://lwc.dev/guide/versioning`);
@@ -1778,7 +1786,7 @@ LightningElement.prototype = {
1778
1786
  assert.fail('this.hostElement is not supported in this environment');
1779
1787
  }
1780
1788
  const apiVersion = getComponentAPIVersion(vm.def.ctor);
1781
- if (!isAPIFeatureEnabled(8 /* APIFeature.ENABLE_THIS_DOT_HOST_ELEMENT */, apiVersion)) {
1789
+ if (!isAPIFeatureEnabled(9 /* APIFeature.ENABLE_THIS_DOT_HOST_ELEMENT */, apiVersion)) {
1782
1790
  if (process.env.NODE_ENV !== 'production') {
1783
1791
  logWarnOnce('The `this.hostElement` API within LightningElement is ' +
1784
1792
  'only supported in API version 62 and above. Increase the API version to use it.');
@@ -1920,7 +1928,7 @@ LightningElement.prototype = {
1920
1928
  get style() {
1921
1929
  const { elm, renderer, def } = getAssociatedVM(this);
1922
1930
  const apiVersion = getComponentAPIVersion(def.ctor);
1923
- if (!isAPIFeatureEnabled(9 /* APIFeature.ENABLE_THIS_DOT_STYLE */, apiVersion)) {
1931
+ if (!isAPIFeatureEnabled(10 /* APIFeature.ENABLE_THIS_DOT_STYLE */, apiVersion)) {
1924
1932
  if (process.env.NODE_ENV !== 'production') {
1925
1933
  logWarnOnce('The `this.style` API within LightningElement returning the CSSStyleDeclaration is ' +
1926
1934
  'only supported in API version 62 and above. Increase the API version to use it.');
@@ -4492,7 +4500,7 @@ function mountCustomElement(vnode, parent, anchor, renderer) {
4492
4500
  // compiler may generate tagnames with uppercase letters so - for backwards
4493
4501
  // compatibility, we lower case the tagname here.
4494
4502
  const normalizedTagname = sel.toLowerCase();
4495
- const useNativeLifecycle = !lwcRuntimeFlags.DISABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE;
4503
+ const useNativeLifecycle = shouldUseNativeCustomElementLifecycle(ctor);
4496
4504
  const isFormAssociated = shouldBeFormAssociated(ctor);
4497
4505
  const elm = createCustomElement(normalizedTagname, upgradeCallback, useNativeLifecycle, isFormAssociated);
4498
4506
  vnode.elm = elm;
@@ -5639,11 +5647,8 @@ function ncls(value) {
5639
5647
  }
5640
5648
  }
5641
5649
  }
5642
- else if (isObject(value) && !isNull(value)) {
5643
- // Iterate own enumerable keys of the object
5644
- const keys$1 = keys(value);
5645
- for (let i = 0; i < keys$1.length; i += 1) {
5646
- const key = keys$1[i];
5650
+ else if (isObject(value)) {
5651
+ for (const key in value) {
5647
5652
  if (value[key]) {
5648
5653
  res += key + ' ';
5649
5654
  }
@@ -6372,7 +6377,7 @@ function resetComponentStateWhenRemoved(vm) {
6372
6377
  // old vnode.children is removed from the DOM.
6373
6378
  function removeVM(vm) {
6374
6379
  if (process.env.NODE_ENV !== 'production') {
6375
- if (lwcRuntimeFlags.DISABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6380
+ if (!shouldUseNativeCustomElementLifecycle(vm.component.constructor)) {
6376
6381
  // With native lifecycle, we cannot be certain that connectedCallback was called before a component
6377
6382
  // was removed from the VDOM. If the component is disconnected, then connectedCallback will not fire
6378
6383
  // in native mode, although it will fire in synthetic mode due to appendChild triggering it.
@@ -6696,7 +6701,7 @@ function runConnectedCallback(vm) {
6696
6701
  // This test only makes sense in the browser, with synthetic lifecycle, and when reporting is enabled or
6697
6702
  // we're in dev mode. This is to detect a particular issue with synthetic lifecycle.
6698
6703
  if (process.env.IS_BROWSER &&
6699
- lwcRuntimeFlags.DISABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE &&
6704
+ !shouldUseNativeCustomElementLifecycle(vm.component.constructor) &&
6700
6705
  (process.env.NODE_ENV !== 'production' || isReportingEnabled())) {
6701
6706
  if (!vm.renderer.isConnected(vm.elm)) {
6702
6707
  if (process.env.NODE_ENV !== 'production') {
@@ -8024,5 +8029,5 @@ function readonly(obj) {
8024
8029
  }
8025
8030
 
8026
8031
  export { LightningElement, profilerControl as __unstable__ProfilerControl, reportingControl as __unstable__ReportingControl, api$1 as api, computeShadowAndRenderMode, connectRootElement, createContextProviderWithRegister, createVM, disconnectRootElement, freezeTemplate, getAssociatedVMIfPresent, getComponentAPIVersion, getComponentConstructor, getComponentDef, getComponentHtmlPrototype, hydrateRoot, isComponentConstructor, parseFragment, parseSVGFragment, readonly, registerComponent, registerDecorators, registerTemplate, runFormAssociatedCallback, runFormDisabledCallback, runFormResetCallback, runFormStateRestoreCallback, sanitizeAttribute, setHooks, shouldBeFormAssociated, swapComponent, swapStyle, swapTemplate, track, unwrap, wire };
8027
- /** version: 7.0.2 */
8032
+ /** version: 7.0.0 */
8028
8033
  //# sourceMappingURL=index.js.map