|
|
@@ -1,5 +1,5 @@
|
|
|
/*!
|
|
|
- * Vue.js v2.6.0-beta.2
|
|
|
+ * Vue.js v2.6.0-beta.3
|
|
|
* (c) 2014-2019 Evan You
|
|
|
* Released under the MIT License.
|
|
|
*/
|
|
|
@@ -5339,7 +5339,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
|
|
value: FunctionalRenderContext
|
|
|
});
|
|
|
|
|
|
-Vue.version = '2.6.0-beta.2';
|
|
|
+Vue.version = '2.6.0-beta.3';
|
|
|
|
|
|
/* */
|
|
|
|
|
|
@@ -9117,6 +9117,7 @@ var isNonPhrasingTag = makeMap(
|
|
|
|
|
|
// Regular Expressions for parsing tags and attributes
|
|
|
var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
|
|
|
+var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
|
|
|
var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + unicodeLetters + "]*";
|
|
|
var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
|
|
|
var startTagOpen = new RegExp(("^<" + qnameCapture));
|
|
|
@@ -9294,7 +9295,7 @@ function parseHTML (html, options) {
|
|
|
};
|
|
|
advance(start[0].length);
|
|
|
var end, attr;
|
|
|
- while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
|
|
|
+ while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
|
|
|
attr.start = index;
|
|
|
advance(attr[0].length);
|
|
|
attr.end = index;
|
|
|
@@ -9424,6 +9425,8 @@ var slotRE = /^v-slot(:|$)|^#/;
|
|
|
var lineBreakRE = /[\r\n]/;
|
|
|
var whitespaceRE$1 = /\s+/g;
|
|
|
|
|
|
+var invalidAttributeRE = /[\s"'<>\/=]/;
|
|
|
+
|
|
|
var decodeHTMLCached = cached(he.decode);
|
|
|
|
|
|
// configurable state
|
|
|
@@ -9580,12 +9583,26 @@ function parse (
|
|
|
element.ns = ns;
|
|
|
}
|
|
|
|
|
|
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
|
|
|
- element.start = start$1;
|
|
|
- element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
|
|
|
- cumulated[attr.name] = attr;
|
|
|
- return cumulated
|
|
|
- }, {});
|
|
|
+ if (process.env.NODE_ENV !== 'production') {
|
|
|
+ if (options.outputSourceRange) {
|
|
|
+ element.start = start$1;
|
|
|
+ element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
|
|
|
+ cumulated[attr.name] = attr;
|
|
|
+ return cumulated
|
|
|
+ }, {});
|
|
|
+ }
|
|
|
+ attrs.forEach(function (attr) {
|
|
|
+ if (invalidAttributeRE.test(attr.name)) {
|
|
|
+ warn$2(
|
|
|
+ "Invalid dynamic argument expression: attribute names cannot contain " +
|
|
|
+ "spaces, quotes, <, >, / or =.",
|
|
|
+ {
|
|
|
+ start: attr.start + attr.name.indexOf("["),
|
|
|
+ end: attr.start + attr.name.length
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
if (isForbiddenTag(element) && !isServerRendering()) {
|
|
|
@@ -9976,7 +9993,7 @@ function processSlotContent (el) {
|
|
|
}
|
|
|
|
|
|
// 2.6 v-slot syntax
|
|
|
- if (process.env.NEW_SLOT_SYNTAX) {
|
|
|
+ {
|
|
|
if (el.tag === 'template') {
|
|
|
// v-slot on <template>
|
|
|
var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
|