@vue/compat 3.2.35 → 3.2.36

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/vue.cjs.js CHANGED
@@ -7281,7 +7281,7 @@ function createCompatVue(createApp, createSingletonApp) {
7281
7281
  return vm;
7282
7282
  }
7283
7283
  }
7284
- Vue.version = `2.6.14-compat:${"3.2.35"}`;
7284
+ Vue.version = `2.6.14-compat:${"3.2.36"}`;
7285
7285
  Vue.config = singletonApp.config;
7286
7286
  Vue.use = (p, ...options) => {
7287
7287
  if (p && isFunction(p.install)) {
@@ -7447,9 +7447,11 @@ function installLegacyAPIs(app) {
7447
7447
  });
7448
7448
  }
7449
7449
  function applySingletonAppMutations(app) {
7450
- ['mixins', 'components', 'directives', 'filters', 'deopt'].forEach(key => {
7450
+ // copy over asset registries and deopt flag
7451
+ app._context.mixins = [...singletonApp._context.mixins];
7452
+ ['components', 'directives', 'filters'].forEach(key => {
7451
7453
  // @ts-ignore
7452
- app._context[key] = singletonApp._context[key];
7454
+ app._context[key] = Object.create(singletonApp._context[key]);
7453
7455
  });
7454
7456
  // copy over global config mutations
7455
7457
  isCopyingConfig = true;
@@ -7462,7 +7464,7 @@ function applySingletonAppMutations(app) {
7462
7464
  }
7463
7465
  const val = singletonApp.config[key];
7464
7466
  // @ts-ignore
7465
- app.config[key] = val;
7467
+ app.config[key] = isObject(val) ? Object.create(val) : val;
7466
7468
  // compat for runtime ignoredElements -> isCustomElement
7467
7469
  if (key === 'ignoredElements' &&
7468
7470
  isCompatEnabled("CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */, null) &&
@@ -11274,7 +11276,7 @@ function isMemoSame(cached, memo) {
11274
11276
  }
11275
11277
 
11276
11278
  // Core API ------------------------------------------------------------------
11277
- const version = "3.2.35";
11279
+ const version = "3.2.36";
11278
11280
  const _ssrUtils = {
11279
11281
  createComponentInstance,
11280
11282
  setupComponent,
@@ -11638,7 +11640,7 @@ const [_getNow, skipTimestampCheck] = /*#__PURE__*/ (() => {
11638
11640
  // if the low-res timestamp which is bigger than the event timestamp
11639
11641
  // (which is evaluated AFTER) it means the event is using a hi-res timestamp,
11640
11642
  // and we need to use the hi-res version for event listeners as well.
11641
- _getNow = () => performance.now();
11643
+ _getNow = performance.now.bind(performance);
11642
11644
  }
11643
11645
  // #3485: Firefox <= 53 has incorrect Event.timeStamp implementation
11644
11646
  // and does not fire microtasks in between event propagation, so safe to exclude.
@@ -12138,9 +12140,8 @@ function resolveTransitionProps(rawProps) {
12138
12140
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12139
12141
  done && done();
12140
12142
  };
12141
- let isLeaving = false;
12142
12143
  const finishLeave = (el, done) => {
12143
- isLeaving = false;
12144
+ el._isLeaving = false;
12144
12145
  removeTransitionClass(el, leaveFromClass);
12145
12146
  removeTransitionClass(el, leaveToClass);
12146
12147
  removeTransitionClass(el, leaveActiveClass);
@@ -12183,7 +12184,7 @@ function resolveTransitionProps(rawProps) {
12183
12184
  onEnter: makeEnterHook(false),
12184
12185
  onAppear: makeEnterHook(true),
12185
12186
  onLeave(el, done) {
12186
- isLeaving = true;
12187
+ el._isLeaving = true;
12187
12188
  const resolve = () => finishLeave(el, done);
12188
12189
  addTransitionClass(el, leaveFromClass);
12189
12190
  if (legacyClassEnabled) {
@@ -12193,7 +12194,7 @@ function resolveTransitionProps(rawProps) {
12193
12194
  forceReflow();
12194
12195
  addTransitionClass(el, leaveActiveClass);
12195
12196
  nextFrame(() => {
12196
- if (!isLeaving) {
12197
+ if (!el._isLeaving) {
12197
12198
  // cancelled
12198
12199
  return;
12199
12200
  }
@@ -14903,6 +14904,14 @@ function getConstantType(node, context) {
14903
14904
  // static then they don't need to be blocks since there will be no
14904
14905
  // nested updates.
14905
14906
  if (codegenNode.isBlock) {
14907
+ // except set custom directives.
14908
+ for (let i = 0; i < node.props.length; i++) {
14909
+ const p = node.props[i];
14910
+ if (p.type === 7 /* DIRECTIVE */) {
14911
+ constantCache.set(node, 0 /* NOT_CONSTANT */);
14912
+ return 0 /* NOT_CONSTANT */;
14913
+ }
14914
+ }
14906
14915
  context.removeHelper(OPEN_BLOCK);
14907
14916
  context.removeHelper(getVNodeBlockHelper(context.inSSR, codegenNode.isComponent));
14908
14917
  codegenNode.isBlock = false;
@@ -5852,7 +5852,7 @@ function createCompatVue(createApp, createSingletonApp) {
5852
5852
  return vm;
5853
5853
  }
5854
5854
  }
5855
- Vue.version = `2.6.14-compat:${"3.2.35"}`;
5855
+ Vue.version = `2.6.14-compat:${"3.2.36"}`;
5856
5856
  Vue.config = singletonApp.config;
5857
5857
  Vue.use = (p, ...options) => {
5858
5858
  if (p && isFunction(p.install)) {
@@ -6013,9 +6013,11 @@ function installLegacyAPIs(app) {
6013
6013
  });
6014
6014
  }
6015
6015
  function applySingletonAppMutations(app) {
6016
- ['mixins', 'components', 'directives', 'filters', 'deopt'].forEach(key => {
6016
+ // copy over asset registries and deopt flag
6017
+ app._context.mixins = [...singletonApp._context.mixins];
6018
+ ['components', 'directives', 'filters'].forEach(key => {
6017
6019
  // @ts-ignore
6018
- app._context[key] = singletonApp._context[key];
6020
+ app._context[key] = Object.create(singletonApp._context[key]);
6019
6021
  });
6020
6022
  for (const key in singletonApp.config) {
6021
6023
  if (key === 'isNativeTag')
@@ -6026,7 +6028,7 @@ function applySingletonAppMutations(app) {
6026
6028
  }
6027
6029
  const val = singletonApp.config[key];
6028
6030
  // @ts-ignore
6029
- app.config[key] = val;
6031
+ app.config[key] = isObject(val) ? Object.create(val) : val;
6030
6032
  // compat for runtime ignoredElements -> isCustomElement
6031
6033
  if (key === 'ignoredElements' &&
6032
6034
  isCompatEnabled("CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */, null) &&
@@ -9147,7 +9149,7 @@ function isMemoSame(cached, memo) {
9147
9149
  }
9148
9150
 
9149
9151
  // Core API ------------------------------------------------------------------
9150
- const version = "3.2.35";
9152
+ const version = "3.2.36";
9151
9153
  const _ssrUtils = {
9152
9154
  createComponentInstance,
9153
9155
  setupComponent,
@@ -9506,7 +9508,7 @@ const [_getNow, skipTimestampCheck] = /*#__PURE__*/ (() => {
9506
9508
  // if the low-res timestamp which is bigger than the event timestamp
9507
9509
  // (which is evaluated AFTER) it means the event is using a hi-res timestamp,
9508
9510
  // and we need to use the hi-res version for event listeners as well.
9509
- _getNow = () => performance.now();
9511
+ _getNow = performance.now.bind(performance);
9510
9512
  }
9511
9513
  // #3485: Firefox <= 53 has incorrect Event.timeStamp implementation
9512
9514
  // and does not fire microtasks in between event propagation, so safe to exclude.
@@ -9977,9 +9979,8 @@ function resolveTransitionProps(rawProps) {
9977
9979
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
9978
9980
  done && done();
9979
9981
  };
9980
- let isLeaving = false;
9981
9982
  const finishLeave = (el, done) => {
9982
- isLeaving = false;
9983
+ el._isLeaving = false;
9983
9984
  removeTransitionClass(el, leaveFromClass);
9984
9985
  removeTransitionClass(el, leaveToClass);
9985
9986
  removeTransitionClass(el, leaveActiveClass);
@@ -10022,7 +10023,7 @@ function resolveTransitionProps(rawProps) {
10022
10023
  onEnter: makeEnterHook(false),
10023
10024
  onAppear: makeEnterHook(true),
10024
10025
  onLeave(el, done) {
10025
- isLeaving = true;
10026
+ el._isLeaving = true;
10026
10027
  const resolve = () => finishLeave(el, done);
10027
10028
  addTransitionClass(el, leaveFromClass);
10028
10029
  if (legacyClassEnabled) {
@@ -10032,7 +10033,7 @@ function resolveTransitionProps(rawProps) {
10032
10033
  forceReflow();
10033
10034
  addTransitionClass(el, leaveActiveClass);
10034
10035
  nextFrame(() => {
10035
- if (!isLeaving) {
10036
+ if (!el._isLeaving) {
10036
10037
  // cancelled
10037
10038
  return;
10038
10039
  }
@@ -12558,6 +12559,14 @@ function getConstantType(node, context) {
12558
12559
  // static then they don't need to be blocks since there will be no
12559
12560
  // nested updates.
12560
12561
  if (codegenNode.isBlock) {
12562
+ // except set custom directives.
12563
+ for (let i = 0; i < node.props.length; i++) {
12564
+ const p = node.props[i];
12565
+ if (p.type === 7 /* DIRECTIVE */) {
12566
+ constantCache.set(node, 0 /* NOT_CONSTANT */);
12567
+ return 0 /* NOT_CONSTANT */;
12568
+ }
12569
+ }
12561
12570
  context.removeHelper(OPEN_BLOCK);
12562
12571
  context.removeHelper(getVNodeBlockHelper(context.inSSR, codegenNode.isComponent));
12563
12572
  codegenNode.isBlock = false;
@@ -7108,7 +7108,7 @@ function createCompatVue(createApp, createSingletonApp) {
7108
7108
  return vm;
7109
7109
  }
7110
7110
  }
7111
- Vue.version = `2.6.14-compat:${"3.2.35"}`;
7111
+ Vue.version = `2.6.14-compat:${"3.2.36"}`;
7112
7112
  Vue.config = singletonApp.config;
7113
7113
  Vue.use = (p, ...options) => {
7114
7114
  if (p && isFunction(p.install)) {
@@ -7274,9 +7274,11 @@ function installLegacyAPIs(app) {
7274
7274
  });
7275
7275
  }
7276
7276
  function applySingletonAppMutations(app) {
7277
- ['mixins', 'components', 'directives', 'filters', 'deopt'].forEach(key => {
7277
+ // copy over asset registries and deopt flag
7278
+ app._context.mixins = [...singletonApp._context.mixins];
7279
+ ['components', 'directives', 'filters'].forEach(key => {
7278
7280
  // @ts-ignore
7279
- app._context[key] = singletonApp._context[key];
7281
+ app._context[key] = Object.create(singletonApp._context[key]);
7280
7282
  });
7281
7283
  // copy over global config mutations
7282
7284
  isCopyingConfig = true;
@@ -7289,7 +7291,7 @@ function applySingletonAppMutations(app) {
7289
7291
  }
7290
7292
  const val = singletonApp.config[key];
7291
7293
  // @ts-ignore
7292
- app.config[key] = val;
7294
+ app.config[key] = isObject(val) ? Object.create(val) : val;
7293
7295
  // compat for runtime ignoredElements -> isCustomElement
7294
7296
  if (key === 'ignoredElements' &&
7295
7297
  isCompatEnabled("CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */, null) &&
@@ -11097,7 +11099,7 @@ function isMemoSame(cached, memo) {
11097
11099
  }
11098
11100
 
11099
11101
  // Core API ------------------------------------------------------------------
11100
- const version = "3.2.35";
11102
+ const version = "3.2.36";
11101
11103
  /**
11102
11104
  * SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
11103
11105
  * @internal
@@ -11453,7 +11455,7 @@ const [_getNow, skipTimestampCheck] = /*#__PURE__*/ (() => {
11453
11455
  // if the low-res timestamp which is bigger than the event timestamp
11454
11456
  // (which is evaluated AFTER) it means the event is using a hi-res timestamp,
11455
11457
  // and we need to use the hi-res version for event listeners as well.
11456
- _getNow = () => performance.now();
11458
+ _getNow = performance.now.bind(performance);
11457
11459
  }
11458
11460
  // #3485: Firefox <= 53 has incorrect Event.timeStamp implementation
11459
11461
  // and does not fire microtasks in between event propagation, so safe to exclude.
@@ -12003,9 +12005,8 @@ function resolveTransitionProps(rawProps) {
12003
12005
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12004
12006
  done && done();
12005
12007
  };
12006
- let isLeaving = false;
12007
12008
  const finishLeave = (el, done) => {
12008
- isLeaving = false;
12009
+ el._isLeaving = false;
12009
12010
  removeTransitionClass(el, leaveFromClass);
12010
12011
  removeTransitionClass(el, leaveToClass);
12011
12012
  removeTransitionClass(el, leaveActiveClass);
@@ -12048,7 +12049,7 @@ function resolveTransitionProps(rawProps) {
12048
12049
  onEnter: makeEnterHook(false),
12049
12050
  onAppear: makeEnterHook(true),
12050
12051
  onLeave(el, done) {
12051
- isLeaving = true;
12052
+ el._isLeaving = true;
12052
12053
  const resolve = () => finishLeave(el, done);
12053
12054
  addTransitionClass(el, leaveFromClass);
12054
12055
  if (legacyClassEnabled) {
@@ -12058,7 +12059,7 @@ function resolveTransitionProps(rawProps) {
12058
12059
  forceReflow();
12059
12060
  addTransitionClass(el, leaveActiveClass);
12060
12061
  nextFrame(() => {
12061
- if (!isLeaving) {
12062
+ if (!el._isLeaving) {
12062
12063
  // cancelled
12063
12064
  return;
12064
12065
  }
@@ -14749,6 +14750,14 @@ function getConstantType(node, context) {
14749
14750
  // static then they don't need to be blocks since there will be no
14750
14751
  // nested updates.
14751
14752
  if (codegenNode.isBlock) {
14753
+ // except set custom directives.
14754
+ for (let i = 0; i < node.props.length; i++) {
14755
+ const p = node.props[i];
14756
+ if (p.type === 7 /* DIRECTIVE */) {
14757
+ constantCache.set(node, 0 /* NOT_CONSTANT */);
14758
+ return 0 /* NOT_CONSTANT */;
14759
+ }
14760
+ }
14752
14761
  context.removeHelper(OPEN_BLOCK);
14753
14762
  context.removeHelper(getVNodeBlockHelper(context.inSSR, codegenNode.isComponent));
14754
14763
  codegenNode.isBlock = false;