vue 2.6.10 → 2.6.11
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/README.md +73 -48
- package/dist/vue.common.dev.js +38 -17
- package/dist/vue.common.prod.js +2 -2
- package/dist/vue.esm.browser.js +38 -17
- package/dist/vue.esm.browser.min.js +2 -2
- package/dist/vue.esm.js +38 -17
- package/dist/vue.js +38 -17
- package/dist/vue.min.js +2 -2
- package/dist/vue.runtime.common.dev.js +16 -10
- package/dist/vue.runtime.common.prod.js +2 -2
- package/dist/vue.runtime.esm.js +16 -10
- package/dist/vue.runtime.js +16 -10
- package/dist/vue.runtime.min.js +2 -2
- package/package.json +4 -4
- package/src/compiler/codegen/events.js +1 -1
- package/src/compiler/error-detector.js +18 -3
- package/src/compiler/parser/html-parser.js +2 -2
- package/src/compiler/parser/index.js +3 -3
- package/src/core/instance/proxy.js +1 -1
- package/src/core/instance/render-helpers/bind-dynamic-keys.js +1 -1
- package/src/core/instance/render.js +1 -1
- package/src/core/util/env.js +1 -2
- package/src/core/util/next-tick.js +1 -1
- package/src/core/vdom/create-element.js +6 -0
- package/src/core/vdom/patch.js +4 -4
- package/src/platforms/web/compiler/modules/model.js +1 -1
- package/types/index.d.ts +1 -2
- package/types/options.d.ts +1 -1
- package/types/umd.d.ts +48 -0
package/README.md
CHANGED
|
@@ -40,28 +40,11 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
40
40
|
<table>
|
|
41
41
|
<tbody>
|
|
42
42
|
<tr>
|
|
43
|
-
<td align="center" valign="middle">
|
|
44
|
-
<a href="https://moduscreate.com/?utm_source=Vue&utm_medium=Partnership&utm_campaign=VueShip" target="_blank">
|
|
45
|
-
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/modus.png">
|
|
46
|
-
</a>
|
|
47
|
-
</td>
|
|
48
|
-
<td align="center" valign="middle">
|
|
49
|
-
<a href="https://www.bitsrc.io/?utm_source=vue&utm_medium=vue&utm_campaign=vue&utm_term=vue&utm_content=vue" target="_blank">
|
|
50
|
-
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/bit.png">
|
|
51
|
-
</a>
|
|
52
|
-
</td>
|
|
53
|
-
<td align="center" valign="middle">
|
|
54
|
-
<a href="http://tooltwist.com/" target="_blank">
|
|
55
|
-
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/tooltwist.png">
|
|
56
|
-
</a>
|
|
57
|
-
</td>
|
|
58
43
|
<td align="center" valign="middle">
|
|
59
44
|
<a href="https://vueschool.io/?utm_source=Vuejs.org&utm_medium=Banner&utm_campaign=Sponsored%20Banner&utm_content=V1" target="_blank">
|
|
60
45
|
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/vueschool.png">
|
|
61
46
|
</a>
|
|
62
47
|
</td>
|
|
63
|
-
</tr><tr></tr>
|
|
64
|
-
<tr>
|
|
65
48
|
<td align="center" valign="middle">
|
|
66
49
|
<a href="https://vehikl.com/" target="_blank">
|
|
67
50
|
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/vehikl.png">
|
|
@@ -72,6 +55,11 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
72
55
|
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/nativescript.png">
|
|
73
56
|
</a>
|
|
74
57
|
</td>
|
|
58
|
+
<td align="center" valign="middle">
|
|
59
|
+
<a href="https://retool.com/?utm_source=sponsor&utm_campaign=vue" target="_blank">
|
|
60
|
+
<img width="222px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/retool.png">
|
|
61
|
+
</a>
|
|
62
|
+
</td>
|
|
75
63
|
</tr><tr></tr>
|
|
76
64
|
</tbody>
|
|
77
65
|
</table>
|
|
@@ -92,7 +80,7 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
92
80
|
</table>
|
|
93
81
|
<!--special-china end-->
|
|
94
82
|
|
|
95
|
-
<h3 align="center">Gold Sponsors</
|
|
83
|
+
<h3 align="center">Gold Sponsors</h3>
|
|
96
84
|
|
|
97
85
|
<!--gold start-->
|
|
98
86
|
<table>
|
|
@@ -120,7 +108,7 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
120
108
|
</td>
|
|
121
109
|
<td align="center" valign="middle">
|
|
122
110
|
<a href="https://www.frontenddeveloperlove.com/" target="_blank">
|
|
123
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
111
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/frontendlove.png">
|
|
124
112
|
</a>
|
|
125
113
|
</td>
|
|
126
114
|
<td align="center" valign="middle">
|
|
@@ -130,11 +118,6 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
130
118
|
</td>
|
|
131
119
|
</tr><tr></tr>
|
|
132
120
|
<tr>
|
|
133
|
-
<td align="center" valign="middle">
|
|
134
|
-
<a href="https://vuetifyjs.com" target="_blank">
|
|
135
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/vuetify.png">
|
|
136
|
-
</a>
|
|
137
|
-
</td>
|
|
138
121
|
<td align="center" valign="middle">
|
|
139
122
|
<a href="https://neds.com.au/" target="_blank">
|
|
140
123
|
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/neds.png">
|
|
@@ -156,67 +139,109 @@ Funds donated via Patreon go directly to support Evan You's full-time work on Vu
|
|
|
156
139
|
</a>
|
|
157
140
|
</td>
|
|
158
141
|
<td align="center" valign="middle">
|
|
159
|
-
<a href="
|
|
160
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
142
|
+
<a href="https://opteo.com/vue" target="_blank">
|
|
143
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/opteo.png">
|
|
144
|
+
</a>
|
|
145
|
+
</td>
|
|
146
|
+
<td align="center" valign="middle">
|
|
147
|
+
<a href="https://devsquad.com/" target="_blank">
|
|
148
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/devsquad.png">
|
|
161
149
|
</a>
|
|
162
150
|
</td>
|
|
163
151
|
</tr><tr></tr>
|
|
164
152
|
<tr>
|
|
165
153
|
<td align="center" valign="middle">
|
|
166
|
-
<a href="https://
|
|
167
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
154
|
+
<a href="https://www.firesticktricks.com/" target="_blank">
|
|
155
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/firestick_tricks.png">
|
|
168
156
|
</a>
|
|
169
157
|
</td>
|
|
170
158
|
<td align="center" valign="middle">
|
|
171
|
-
<a href="https://
|
|
172
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
159
|
+
<a href="https://intygrate.com/" target="_blank">
|
|
160
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/intygrate.png">
|
|
173
161
|
</a>
|
|
174
162
|
</td>
|
|
175
163
|
<td align="center" valign="middle">
|
|
176
|
-
<a href="https://
|
|
177
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
164
|
+
<a href="https://passionatepeople.io/" target="_blank">
|
|
165
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/passionate_people.png">
|
|
178
166
|
</a>
|
|
179
167
|
</td>
|
|
180
168
|
<td align="center" valign="middle">
|
|
181
|
-
<a href="
|
|
182
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
169
|
+
<a href="http://en.shopware.com/" target="_blank">
|
|
170
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/shopware_ag.png">
|
|
183
171
|
</a>
|
|
184
172
|
</td>
|
|
185
173
|
<td align="center" valign="middle">
|
|
186
|
-
<a href="https://
|
|
187
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
174
|
+
<a href="https://www.vpnranks.com/" target="_blank">
|
|
175
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/vpnranks.png">
|
|
188
176
|
</a>
|
|
189
177
|
</td>
|
|
190
178
|
<td align="center" valign="middle">
|
|
191
|
-
<a href="https://
|
|
192
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
179
|
+
<a href="https://www.simplyswitch.com/" target="_blank">
|
|
180
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/energy_comparison.png">
|
|
193
181
|
</a>
|
|
194
182
|
</td>
|
|
195
183
|
</tr><tr></tr>
|
|
196
184
|
<tr>
|
|
197
185
|
<td align="center" valign="middle">
|
|
198
|
-
<a href="https://
|
|
199
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
186
|
+
<a href="https://www.bacancytechnology.com" target="_blank">
|
|
187
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/bacancy_technology.png">
|
|
200
188
|
</a>
|
|
201
189
|
</td>
|
|
202
190
|
<td align="center" valign="middle">
|
|
203
|
-
<a href="https://
|
|
204
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
191
|
+
<a href="https://www.bestvpn.co/" target="_blank">
|
|
192
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/bestvpn_co.png">
|
|
205
193
|
</a>
|
|
206
194
|
</td>
|
|
207
195
|
<td align="center" valign="middle">
|
|
208
|
-
<a href="https://
|
|
209
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
196
|
+
<a href="https://www.y8.com/" target="_blank">
|
|
197
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/y8.png">
|
|
210
198
|
</a>
|
|
211
199
|
</td>
|
|
212
200
|
<td align="center" valign="middle">
|
|
213
|
-
<a href="https://
|
|
214
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
201
|
+
<a href="https://js.devexpress.com/" target="_blank">
|
|
202
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/devexpress.png">
|
|
215
203
|
</a>
|
|
216
204
|
</td>
|
|
217
205
|
<td align="center" valign="middle">
|
|
218
|
-
<a href="
|
|
219
|
-
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/
|
|
206
|
+
<a href="https://fastcoding.jp/javascript/ " target="_blank">
|
|
207
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/fastcoding_inc.svg">
|
|
208
|
+
</a>
|
|
209
|
+
</td>
|
|
210
|
+
<td align="center" valign="middle">
|
|
211
|
+
<a href="https://usave.co.uk/utilities/broadband" target="_blank">
|
|
212
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/usave.png">
|
|
213
|
+
</a>
|
|
214
|
+
</td>
|
|
215
|
+
</tr><tr></tr>
|
|
216
|
+
<tr>
|
|
217
|
+
<td align="center" valign="middle">
|
|
218
|
+
<a href="https://www.dailynow.co/" target="_blank">
|
|
219
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/daily.png">
|
|
220
|
+
</a>
|
|
221
|
+
</td>
|
|
222
|
+
<td align="center" valign="middle">
|
|
223
|
+
<a href="https://storekit.com" target="_blank">
|
|
224
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/storekit.png">
|
|
225
|
+
</a>
|
|
226
|
+
</td>
|
|
227
|
+
<td align="center" valign="middle">
|
|
228
|
+
<a href="http://www.pullrequest.com" target="_blank">
|
|
229
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/pullrequest.svg">
|
|
230
|
+
</a>
|
|
231
|
+
</td>
|
|
232
|
+
<td align="center" valign="middle">
|
|
233
|
+
<a href="https://unicorn.io/" target="_blank">
|
|
234
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/unicorn_io.svg">
|
|
235
|
+
</a>
|
|
236
|
+
</td>
|
|
237
|
+
<td align="center" valign="middle">
|
|
238
|
+
<a href="https://thepiratebayproxylist.se" target="_blank">
|
|
239
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/piratebayproxy.png">
|
|
240
|
+
</a>
|
|
241
|
+
</td>
|
|
242
|
+
<td align="center" valign="middle">
|
|
243
|
+
<a href="https://www.programmers.io" target="_blank">
|
|
244
|
+
<img width="148px" src="https://raw.githubusercontent.com/vuejs/vuejs.org/master/themes/vue/source/images/programmers_io.png">
|
|
220
245
|
</a>
|
|
221
246
|
</td>
|
|
222
247
|
</tr><tr></tr>
|
package/dist/vue.common.dev.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vue.js v2.6.
|
|
2
|
+
* Vue.js v2.6.11
|
|
3
3
|
* (c) 2014-2019 Evan You
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1965,7 +1965,7 @@ if (typeof Promise !== 'undefined' && isNative(Promise)) {
|
|
|
1965
1965
|
isUsingMicroTask = true;
|
|
1966
1966
|
} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
|
|
1967
1967
|
// Fallback to setImmediate.
|
|
1968
|
-
//
|
|
1968
|
+
// Technically it leverages the (macro) task queue,
|
|
1969
1969
|
// but it is still a better choice than setTimeout.
|
|
1970
1970
|
timerFunc = function () {
|
|
1971
1971
|
setImmediate(flushCallbacks);
|
|
@@ -2054,7 +2054,7 @@ var initProxy;
|
|
|
2054
2054
|
warn(
|
|
2055
2055
|
"Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
|
|
2056
2056
|
'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
|
|
2057
|
-
'prevent conflicts with Vue internals' +
|
|
2057
|
+
'prevent conflicts with Vue internals. ' +
|
|
2058
2058
|
'See: https://vuejs.org/v2/api/#data',
|
|
2059
2059
|
target
|
|
2060
2060
|
);
|
|
@@ -2914,7 +2914,7 @@ function bindDynamicKeys (baseObj, values) {
|
|
|
2914
2914
|
if (typeof key === 'string' && key) {
|
|
2915
2915
|
baseObj[values[i]] = values[i + 1];
|
|
2916
2916
|
} else if (key !== '' && key !== null) {
|
|
2917
|
-
// null is a
|
|
2917
|
+
// null is a special value for explicitly removing a binding
|
|
2918
2918
|
warn(
|
|
2919
2919
|
("Invalid value for dynamic directive argument (expected string or null): " + key),
|
|
2920
2920
|
this
|
|
@@ -3409,6 +3409,12 @@ function _createElement (
|
|
|
3409
3409
|
ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
|
|
3410
3410
|
if (config.isReservedTag(tag)) {
|
|
3411
3411
|
// platform built-in elements
|
|
3412
|
+
if (isDef(data) && isDef(data.nativeOn)) {
|
|
3413
|
+
warn(
|
|
3414
|
+
("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."),
|
|
3415
|
+
context
|
|
3416
|
+
);
|
|
3417
|
+
}
|
|
3412
3418
|
vnode = new VNode(
|
|
3413
3419
|
config.parsePlatformTagName(tag), data, children,
|
|
3414
3420
|
undefined, undefined, context
|
|
@@ -3534,7 +3540,7 @@ function renderMixin (Vue) {
|
|
|
3534
3540
|
// render self
|
|
3535
3541
|
var vnode;
|
|
3536
3542
|
try {
|
|
3537
|
-
// There's no need to maintain a stack
|
|
3543
|
+
// There's no need to maintain a stack because all render fns are called
|
|
3538
3544
|
// separately from one another. Nested component's render fns are called
|
|
3539
3545
|
// when parent component is patched.
|
|
3540
3546
|
currentRenderingInstance = vm;
|
|
@@ -5433,7 +5439,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
|
|
5433
5439
|
value: FunctionalRenderContext
|
|
5434
5440
|
});
|
|
5435
5441
|
|
|
5436
|
-
Vue.version = '2.6.
|
|
5442
|
+
Vue.version = '2.6.11';
|
|
5437
5443
|
|
|
5438
5444
|
/* */
|
|
5439
5445
|
|
|
@@ -6106,7 +6112,7 @@ function createPatchFunction (backend) {
|
|
|
6106
6112
|
}
|
|
6107
6113
|
}
|
|
6108
6114
|
|
|
6109
|
-
function removeVnodes (
|
|
6115
|
+
function removeVnodes (vnodes, startIdx, endIdx) {
|
|
6110
6116
|
for (; startIdx <= endIdx; ++startIdx) {
|
|
6111
6117
|
var ch = vnodes[startIdx];
|
|
6112
6118
|
if (isDef(ch)) {
|
|
@@ -6217,7 +6223,7 @@ function createPatchFunction (backend) {
|
|
|
6217
6223
|
refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
|
|
6218
6224
|
addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
|
|
6219
6225
|
} else if (newStartIdx > newEndIdx) {
|
|
6220
|
-
removeVnodes(
|
|
6226
|
+
removeVnodes(oldCh, oldStartIdx, oldEndIdx);
|
|
6221
6227
|
}
|
|
6222
6228
|
}
|
|
6223
6229
|
|
|
@@ -6309,7 +6315,7 @@ function createPatchFunction (backend) {
|
|
|
6309
6315
|
if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
|
|
6310
6316
|
addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
|
|
6311
6317
|
} else if (isDef(oldCh)) {
|
|
6312
|
-
removeVnodes(
|
|
6318
|
+
removeVnodes(oldCh, 0, oldCh.length - 1);
|
|
6313
6319
|
} else if (isDef(oldVnode.text)) {
|
|
6314
6320
|
nodeOps.setTextContent(elm, '');
|
|
6315
6321
|
}
|
|
@@ -6538,7 +6544,7 @@ function createPatchFunction (backend) {
|
|
|
6538
6544
|
|
|
6539
6545
|
// destroy old node
|
|
6540
6546
|
if (isDef(parentElm)) {
|
|
6541
|
-
removeVnodes(
|
|
6547
|
+
removeVnodes([oldVnode], 0, 0);
|
|
6542
6548
|
} else if (isDef(oldVnode.tag)) {
|
|
6543
6549
|
invokeDestroyHook(oldVnode);
|
|
6544
6550
|
}
|
|
@@ -9244,7 +9250,7 @@ var startTagOpen = new RegExp(("^<" + qnameCapture));
|
|
|
9244
9250
|
var startTagClose = /^\s*(\/?)>/;
|
|
9245
9251
|
var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
|
|
9246
9252
|
var doctype = /^<!DOCTYPE [^>]+>/i;
|
|
9247
|
-
// #7298: escape - to avoid being
|
|
9253
|
+
// #7298: escape - to avoid being passed as HTML comment when inlined in page
|
|
9248
9254
|
var comment = /^<!\--/;
|
|
9249
9255
|
var conditionalComment = /^<!\[/;
|
|
9250
9256
|
|
|
@@ -9529,7 +9535,7 @@ function parseHTML (html, options) {
|
|
|
9529
9535
|
/* */
|
|
9530
9536
|
|
|
9531
9537
|
var onRE = /^@|^v-on:/;
|
|
9532
|
-
var dirRE = /^v
|
|
9538
|
+
var dirRE = /^v-|^@|^:|^#/;
|
|
9533
9539
|
var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
|
|
9534
9540
|
var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
|
|
9535
9541
|
var stripParensRE = /^\(|\)$/g;
|
|
@@ -10153,7 +10159,7 @@ function processSlotContent (el) {
|
|
|
10153
10159
|
if (el.parent && !maybeComponent(el.parent)) {
|
|
10154
10160
|
warn$2(
|
|
10155
10161
|
"<template v-slot> can only appear at the root level inside " +
|
|
10156
|
-
"the receiving
|
|
10162
|
+
"the receiving component",
|
|
10157
10163
|
el
|
|
10158
10164
|
);
|
|
10159
10165
|
}
|
|
@@ -10716,7 +10722,7 @@ function isDirectChildOfTemplateFor (node) {
|
|
|
10716
10722
|
|
|
10717
10723
|
/* */
|
|
10718
10724
|
|
|
10719
|
-
var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function
|
|
10725
|
+
var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/;
|
|
10720
10726
|
var fnInvokeRE = /\([^)]*?\);*$/;
|
|
10721
10727
|
var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
|
|
10722
10728
|
|
|
@@ -11485,6 +11491,8 @@ function checkNode (node, warn) {
|
|
|
11485
11491
|
var range = node.rawAttrsMap[name];
|
|
11486
11492
|
if (name === 'v-for') {
|
|
11487
11493
|
checkFor(node, ("v-for=\"" + value + "\""), warn, range);
|
|
11494
|
+
} else if (name === 'v-slot' || name[0] === '#') {
|
|
11495
|
+
checkFunctionParameterExpression(value, (name + "=\"" + value + "\""), warn, range);
|
|
11488
11496
|
} else if (onRE.test(name)) {
|
|
11489
11497
|
checkEvent(value, (name + "=\"" + value + "\""), warn, range);
|
|
11490
11498
|
} else {
|
|
@@ -11504,9 +11512,9 @@ function checkNode (node, warn) {
|
|
|
11504
11512
|
}
|
|
11505
11513
|
|
|
11506
11514
|
function checkEvent (exp, text, warn, range) {
|
|
11507
|
-
var
|
|
11508
|
-
var keywordMatch =
|
|
11509
|
-
if (keywordMatch &&
|
|
11515
|
+
var stripped = exp.replace(stripStringRE, '');
|
|
11516
|
+
var keywordMatch = stripped.match(unaryOperatorsRE);
|
|
11517
|
+
if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {
|
|
11510
11518
|
warn(
|
|
11511
11519
|
"avoid using JavaScript unary operator as property name: " +
|
|
11512
11520
|
"\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()),
|
|
@@ -11561,6 +11569,19 @@ function checkExpression (exp, text, warn, range) {
|
|
|
11561
11569
|
}
|
|
11562
11570
|
}
|
|
11563
11571
|
|
|
11572
|
+
function checkFunctionParameterExpression (exp, text, warn, range) {
|
|
11573
|
+
try {
|
|
11574
|
+
new Function(exp, '');
|
|
11575
|
+
} catch (e) {
|
|
11576
|
+
warn(
|
|
11577
|
+
"invalid function parameter expression: " + (e.message) + " in\n\n" +
|
|
11578
|
+
" " + exp + "\n\n" +
|
|
11579
|
+
" Raw expression: " + (text.trim()) + "\n",
|
|
11580
|
+
range
|
|
11581
|
+
);
|
|
11582
|
+
}
|
|
11583
|
+
}
|
|
11584
|
+
|
|
11564
11585
|
/* */
|
|
11565
11586
|
|
|
11566
11587
|
var range = 2;
|