|
|
@ -1,5 +1,5 @@ |
|
|
|
/*! |
|
|
|
* Vue.js v2.6.10 |
|
|
|
* Vue.js v2.6.11 |
|
|
|
* (c) 2014-2019 Evan You |
|
|
|
* Released under the MIT License. |
|
|
|
*/ |
|
|
@ -1996,7 +1996,7 @@ if (typeof Promise !== 'undefined' && isNative(Promise)) { |
|
|
|
isUsingMicroTask = true; |
|
|
|
} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { |
|
|
|
// Fallback to setImmediate.
|
|
|
|
// Techinically it leverages the (macro) task queue,
|
|
|
|
// Technically it leverages the (macro) task queue,
|
|
|
|
// but it is still a better choice than setTimeout.
|
|
|
|
timerFunc = () => { |
|
|
|
setImmediate(flushCallbacks); |
|
|
@ -2085,7 +2085,7 @@ let initProxy; |
|
|
|
warn( |
|
|
|
`Property "${key}" must be accessed with "$data.${key}" because ` + |
|
|
|
'properties starting with "$" or "_" are not proxied in the Vue instance to ' + |
|
|
|
'prevent conflicts with Vue internals' + |
|
|
|
'prevent conflicts with Vue internals. ' + |
|
|
|
'See: https://vuejs.org/v2/api/#data', |
|
|
|
target |
|
|
|
); |
|
|
@ -2940,7 +2940,7 @@ function bindDynamicKeys (baseObj, values) { |
|
|
|
if (typeof key === 'string' && key) { |
|
|
|
baseObj[values[i]] = values[i + 1]; |
|
|
|
} else if (key !== '' && key !== null) { |
|
|
|
// null is a speical value for explicitly removing a binding
|
|
|
|
// null is a special value for explicitly removing a binding
|
|
|
|
warn( |
|
|
|
`Invalid value for dynamic directive argument (expected string or null): ${key}`, |
|
|
|
this |
|
|
@ -3432,6 +3432,12 @@ function _createElement ( |
|
|
|
ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); |
|
|
|
if (config.isReservedTag(tag)) { |
|
|
|
// platform built-in elements
|
|
|
|
if (isDef(data) && isDef(data.nativeOn)) { |
|
|
|
warn( |
|
|
|
`The .native modifier for v-on is only valid on components but it was used on <${tag}>.`, |
|
|
|
context |
|
|
|
); |
|
|
|
} |
|
|
|
vnode = new VNode( |
|
|
|
config.parsePlatformTagName(tag), data, children, |
|
|
|
undefined, undefined, context |
|
|
@ -3555,7 +3561,7 @@ function renderMixin (Vue) { |
|
|
|
// render self
|
|
|
|
let vnode; |
|
|
|
try { |
|
|
|
// There's no need to maintain a stack becaues all render fns are called
|
|
|
|
// There's no need to maintain a stack because all render fns are called
|
|
|
|
// separately from one another. Nested component's render fns are called
|
|
|
|
// when parent component is patched.
|
|
|
|
currentRenderingInstance = vm; |
|
|
@ -5464,7 +5470,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', { |
|
|
|
value: FunctionalRenderContext |
|
|
|
}); |
|
|
|
|
|
|
|
Vue.version = '2.6.10'; |
|
|
|
Vue.version = '2.6.11'; |
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
@ -6136,7 +6142,7 @@ function createPatchFunction (backend) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function removeVnodes (parentElm, vnodes, startIdx, endIdx) { |
|
|
|
function removeVnodes (vnodes, startIdx, endIdx) { |
|
|
|
for (; startIdx <= endIdx; ++startIdx) { |
|
|
|
const ch = vnodes[startIdx]; |
|
|
|
if (isDef(ch)) { |
|
|
@ -6247,7 +6253,7 @@ function createPatchFunction (backend) { |
|
|
|
refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm; |
|
|
|
addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); |
|
|
|
} else if (newStartIdx > newEndIdx) { |
|
|
|
removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); |
|
|
|
removeVnodes(oldCh, oldStartIdx, oldEndIdx); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -6339,7 +6345,7 @@ function createPatchFunction (backend) { |
|
|
|
if (isDef(oldVnode.text)) nodeOps.setTextContent(elm, ''); |
|
|
|
addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); |
|
|
|
} else if (isDef(oldCh)) { |
|
|
|
removeVnodes(elm, oldCh, 0, oldCh.length - 1); |
|
|
|
removeVnodes(oldCh, 0, oldCh.length - 1); |
|
|
|
} else if (isDef(oldVnode.text)) { |
|
|
|
nodeOps.setTextContent(elm, ''); |
|
|
|
} |
|
|
@ -6566,7 +6572,7 @@ function createPatchFunction (backend) { |
|
|
|
|
|
|
|
// destroy old node
|
|
|
|
if (isDef(parentElm)) { |
|
|
|
removeVnodes(parentElm, [oldVnode], 0, 0); |
|
|
|
removeVnodes([oldVnode], 0, 0); |
|
|
|
} else if (isDef(oldVnode.tag)) { |
|
|
|
invokeDestroyHook(oldVnode); |
|
|
|
} |
|
|
@ -9261,7 +9267,7 @@ const startTagOpen = new RegExp(`^<${qnameCapture}`); |
|
|
|
const startTagClose = /^\s*(\/?)>/; |
|
|
|
const endTag = new RegExp(`^<\\/${qnameCapture}[^>]*>`); |
|
|
|
const doctype = /^<!DOCTYPE [^>]+>/i; |
|
|
|
// #7298: escape - to avoid being pased as HTML comment when inlined in page
|
|
|
|
// #7298: escape - to avoid being passed as HTML comment when inlined in page
|
|
|
|
const comment = /^<!\--/; |
|
|
|
const conditionalComment = /^<!\[/; |
|
|
|
|
|
|
@ -9546,7 +9552,7 @@ function parseHTML (html, options) { |
|
|
|
/* */ |
|
|
|
|
|
|
|
const onRE = /^@|^v-on:/; |
|
|
|
const dirRE = /^v-|^@|^:/; |
|
|
|
const dirRE = /^v-|^@|^:|^#/; |
|
|
|
const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; |
|
|
|
const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; |
|
|
|
const stripParensRE = /^\(|\)$/g; |
|
|
@ -10170,7 +10176,7 @@ function processSlotContent (el) { |
|
|
|
if (el.parent && !maybeComponent(el.parent)) { |
|
|
|
warn$2( |
|
|
|
`<template v-slot> can only appear at the root level inside ` + |
|
|
|
`the receiving the component`, |
|
|
|
`the receiving component`, |
|
|
|
el |
|
|
|
); |
|
|
|
} |
|
|
@ -10729,7 +10735,7 @@ function isDirectChildOfTemplateFor (node) { |
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/; |
|
|
|
const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/; |
|
|
|
const fnInvokeRE = /\([^)]*?\);*$/; |
|
|
|
const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; |
|
|
|
|
|
|
@ -11554,6 +11560,8 @@ function checkNode (node, warn) { |
|
|
|
const range = node.rawAttrsMap[name]; |
|
|
|
if (name === 'v-for') { |
|
|
|
checkFor(node, `v-for="${value}"`, warn, range); |
|
|
|
} else if (name === 'v-slot' || name[0] === '#') { |
|
|
|
checkFunctionParameterExpression(value, `${name}="${value}"`, warn, range); |
|
|
|
} else if (onRE.test(name)) { |
|
|
|
checkEvent(value, `${name}="${value}"`, warn, range); |
|
|
|
} else { |
|
|
@ -11573,9 +11581,9 @@ function checkNode (node, warn) { |
|
|
|
} |
|
|
|
|
|
|
|
function checkEvent (exp, text, warn, range) { |
|
|
|
const stipped = exp.replace(stripStringRE, ''); |
|
|
|
const keywordMatch = stipped.match(unaryOperatorsRE); |
|
|
|
if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') { |
|
|
|
const stripped = exp.replace(stripStringRE, ''); |
|
|
|
const keywordMatch = stripped.match(unaryOperatorsRE); |
|
|
|
if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') { |
|
|
|
warn( |
|
|
|
`avoid using JavaScript unary operator as property name: ` + |
|
|
|
`"${keywordMatch[0]}" in expression ${text.trim()}`, |
|
|
@ -11630,6 +11638,19 @@ function checkExpression (exp, text, warn, range) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function checkFunctionParameterExpression (exp, text, warn, range) { |
|
|
|
try { |
|
|
|
new Function(exp, ''); |
|
|
|
} catch (e) { |
|
|
|
warn( |
|
|
|
`invalid function parameter expression: ${e.message} in\n\n` + |
|
|
|
` ${exp}\n\n` + |
|
|
|
` Raw expression: ${text.trim()}\n`, |
|
|
|
range |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
const range = 2; |
|
|
|