vue 2.6.7 → 2.6.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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vue.js v2.6.7
2
+ * Vue.js v2.6.8
3
3
  * (c) 2014-2019 Evan You
4
4
  * Released under the MIT License.
5
5
  */
@@ -475,7 +475,7 @@ var config = ({
475
475
  * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
476
476
  * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
477
477
  */
478
- const unicodeLetters = 'a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD';
478
+ const unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
479
479
 
480
480
  /**
481
481
  * Check if a string starts with $ or _
@@ -500,7 +500,7 @@ function def (obj, key, val, enumerable) {
500
500
  /**
501
501
  * Parse simple path.
502
502
  */
503
- const bailRE = new RegExp(`[^${unicodeLetters}.$_\\d]`);
503
+ const bailRE = new RegExp(`[^${unicodeRegExp.source}.$_\\d]`);
504
504
  function parsePath (path) {
505
505
  if (bailRE.test(path)) {
506
506
  return
@@ -1440,7 +1440,7 @@ function checkComponents (options) {
1440
1440
  }
1441
1441
 
1442
1442
  function validateComponentName (name) {
1443
- if (!new RegExp(`^[a-zA-Z][\\-\\.0-9_${unicodeLetters}]*$`).test(name)) {
1443
+ if (!new RegExp(`^[a-zA-Z][\\-\\.0-9_${unicodeRegExp.source}]*$`).test(name)) {
1444
1444
  warn(
1445
1445
  'Invalid component name: "' + name + '". Component names ' +
1446
1446
  'should conform to valid custom element name in html5 specification.'
@@ -3631,17 +3631,21 @@ function resolveAsyncComponent (
3631
3631
  return factory.resolved
3632
3632
  }
3633
3633
 
3634
+ const owner = currentRenderingInstance;
3635
+ if (isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
3636
+ // already pending
3637
+ factory.owners.push(owner);
3638
+ }
3639
+
3634
3640
  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
3635
3641
  return factory.loadingComp
3636
3642
  }
3637
3643
 
3638
- const owner = currentRenderingInstance;
3639
- if (isDef(factory.owners)) {
3640
- // already pending
3641
- factory.owners.push(owner);
3642
- } else {
3644
+ if (!isDef(factory.owners)) {
3643
3645
  const owners = factory.owners = [owner];
3644
- let sync = true;
3646
+ let sync = true
3647
+
3648
+ ;(owner).$on('hook:destroyed', () => remove(owners, owner));
3645
3649
 
3646
3650
  const forceRender = (renderCompleted) => {
3647
3651
  for (let i = 0, l = owners.length; i < l; i++) {
@@ -5431,7 +5435,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
5431
5435
  value: FunctionalRenderContext
5432
5436
  });
5433
5437
 
5434
- Vue.version = '2.6.7';
5438
+ Vue.version = '2.6.8';
5435
5439
 
5436
5440
  /* */
5437
5441
 
@@ -9219,7 +9223,7 @@ const isNonPhrasingTag = makeMap(
9219
9223
  // Regular Expressions for parsing tags and attributes
9220
9224
  const attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9221
9225
  const dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9222
- const ncname = `[a-zA-Z_][\\-\\.0-9_a-zA-Z${unicodeLetters}]*`;
9226
+ const ncname = `[a-zA-Z_][\\-\\.0-9_a-zA-Z${unicodeRegExp.source}]*`;
9223
9227
  const qnameCapture = `((?:${ncname}\\:)?${ncname})`;
9224
9228
  const startTagOpen = new RegExp(`^<${qnameCapture}`);
9225
9229
  const startTagClose = /^\s*(\/?)>/;
@@ -9481,7 +9485,7 @@ function parseHTML (html, options) {
9481
9485
  ) {
9482
9486
  options.warn(
9483
9487
  `tag <${stack[i].tag}> has no matching end tag.`,
9484
- { start: stack[i].start }
9488
+ { start: stack[i].start, end: stack[i].end }
9485
9489
  );
9486
9490
  }
9487
9491
  if (options.end) {
@@ -9518,7 +9522,7 @@ const dynamicArgRE = /^\[.*\]$/;
9518
9522
 
9519
9523
  const argRE = /:(.*)$/;
9520
9524
  const bindRE = /^:|^\.|^v-bind:/;
9521
- const modifierRE = /\.[^.]+/g;
9525
+ const modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;
9522
9526
 
9523
9527
  const slotRE = /^v-slot(:|$)|^#/;
9524
9528
 
@@ -9695,7 +9699,7 @@ function parse (
9695
9699
  shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
9696
9700
  shouldKeepComment: options.comments,
9697
9701
  outputSourceRange: options.outputSourceRange,
9698
- start (tag, attrs, unary, start) {
9702
+ start (tag, attrs, unary, start, end) {
9699
9703
  // check namespace.
9700
9704
  // inherit parent ns if there is one
9701
9705
  const ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
@@ -9714,6 +9718,7 @@ function parse (
9714
9718
  {
9715
9719
  if (options.outputSourceRange) {
9716
9720
  element.start = start;
9721
+ element.end = end;
9717
9722
  element.rawAttrsMap = element.attrsList.reduce((cumulated, attr) => {
9718
9723
  cumulated[attr.name] = attr;
9719
9724
  return cumulated
@@ -11240,7 +11245,7 @@ function genScopedSlots (
11240
11245
  // components with only scoped slots to skip forced updates from parent.
11241
11246
  // but in some cases we have to bail-out of this optimization
11242
11247
  // for example if the slot contains dynamic names, has v-if or v-for on them...
11243
- let needsForceUpdate = Object.keys(slots).some(key => {
11248
+ let needsForceUpdate = el.for || Object.keys(slots).some(key => {
11244
11249
  const slot = slots[key];
11245
11250
  return (
11246
11251
  slot.slotTargetDynamic ||