Commit Graph

1202 Commits

Author SHA1 Message Date
Mohammad Albakri
69401311f4
fix(warn): better message with no constructors props (#9241)
Co-authored-by: Siddhesh Mhadnak <siddhesh.mhadnak@outlook.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com>
2021-03-30 11:38:13 +02:00
Des Preston
55a30cf9db
fix(compiler): avoid converting &nbps; to spaces (#11065) 2021-03-30 11:03:03 +02:00
Andrzej Swaton
3d46692ee4
feat(warns): avoid warning native modifiers on dynamic components (#11052)
Co-authored-by: Andrzej Swaton <andrzej@diligen.com>
2021-03-30 11:02:46 +02:00
Alex Addams
0664cb0143
fix(v-pre): do not alter attributes (#10088)
* fix(v-pre): do not alter attributes

close #10087

* fix(v-pre): do not alter attributes

remove component and replace option from unit test

* refactor: use or

* perf: check boolean before index

Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com>
2020-09-21 17:42:08 +02:00
Des Preston
862070662d
fix(compiler): event handlers with modifiers swallowing arguments (fix #10867) (#10958)
Pass full parent argument list to the event handler when there are event
modifiers present.
2020-09-21 16:16:45 +02:00
Daniel Jun Suguimoto
b8bd149d8a
fix(ssr): textarea keeps undefined/null values (#11121)
* fix(ssr): textarea keeps undefined/null values

* refactor(ssr): Code review changes for null values in textareas
2020-09-21 16:04:58 +02:00
DSha
67825c24bc
fix(parser): allow multiple slots with new syntax (#9785)
* fix(#9781): non greedy `dynamicArgAttribute` RegExp 

* test(parser): add test case for multiple dynamic slot names

* test: add test with value

Co-authored-by: Eduardo San Martin Morote <posva13@gmail.com>
2020-09-21 16:01:46 +02:00
Eduardo San Martin Morote
abb5ef35dd
fix(props): correctly warn when a provided prop is Symbol (#10529)
* fix(props): correctly warn when a provided prop is Symbol

Fixes #10519

* style: space before parens
2020-09-21 12:24:17 +02:00
warmsocks
8ead9d2a0d
chore: spelling and grammar (#11481)
Co-authored-by: Shaun Case <shaunc@aja.com>
2020-07-01 11:11:46 +02:00
hareku
841bb084ca
chore: fix typo in element test (#11085) 2020-02-06 17:22:26 +01:00
GU Yiling
569b728ab1 fix: fix function expression regex (#9922)
fix #9920
2019-04-25 21:04:36 +08:00
X.L
085d188379 fix(compiler): Remove the warning for valid v-slot value (#9917) 2019-04-25 11:17:39 +08:00
Natalia Tepluhina
861aea1661 polish: add warning when .native modifier is used on native HTML elements (#9884) 2019-04-25 10:39:19 +08:00
zrh122
bd6cea0973 test: fix running e2e test on windows (#9909) 2019-04-25 10:35:16 +08:00
Alexander Schwartz
02d21c265c fix(core): cleanup timeouts for async components (#9649)
close #9648
2019-03-20 13:55:37 +08:00
Evan You
ebc1893fac fix(slots): fix slots not updating when passing down normal slots as $scopedSlots
fix #9699
2019-03-18 17:43:01 +08:00
GU Yiling
3433ba5bee fix(codegen): support named function expression in v-on (#9709)
fix #9707
2019-03-18 16:19:41 +08:00
GU Yiling
f1bdd7ff9d fix(compiler): whitespace: 'condense' should honor pre tag as well (#9660) 2019-03-14 15:47:51 +08:00
DSha
4de4649d96 fix(transition): fix appear check for transition wrapper components (#9668) 2019-03-14 15:45:42 +08:00
Evan You
7186940143 fix: should not swallow user catch on rejected promise in methods
fix #9694
2019-03-14 15:25:01 +08:00
krystal
8082d2f910 fix(ssr): fix nested async functional componet rendering (#9673)
fix #9643
2019-03-13 17:20:28 +08:00
Decade
2747a65765 test: remove unused code (#9684) 2019-03-13 10:19:19 +08:00
Evan You
781c70514e fix: should use fallback for scoped slots with single falsy v-if
fix #9658
2019-03-09 02:44:08 +08:00
Evan You
9313cf9174 fix: should consider presence of normal slots when caching normalized scoped slots
fix #9644
2019-03-09 02:03:47 +08:00
GU Yiling
0b57380f10 fix: v-bind object should be overridable by single bindings (#9653)
fix #9641
2019-03-09 01:00:47 +08:00
Jason
cbad54aa52 fix(compiler): set end location for incomplete elements (#9598) 2019-03-01 09:56:13 -05:00
Luxiaosong
1574ade607 test: Add a unit test for "$off event and this event added by $once" (#9550) 2019-02-28 17:54:51 -05:00
Evan You
38825ff675 test: add a test case for ssr max stack size limit 2019-02-28 17:52:20 -05:00
Evan You
03c13de38e refactor: remove unncessary condition 2019-02-28 17:39:10 -05:00
DSha
060c3b98ef fix: fix modifier parsing for dynamic argument with deep path (#9585)
fix #9577
2019-02-28 09:36:47 -05:00
Evan You
173042bb8e refactor: improve test case 2019-02-21 14:14:35 -05:00
DSha
2f3020e9cc fix(#9511): avoid promise catch multiple times (#9526)
* fix(#9511): avoid promise catch multiple times

* fix(#9511): add a test case for util/error/invokeWithErrorHandling

* fix(#9511): update test case for util/error/invokeWithErrorHandling
2019-02-21 14:01:53 -05:00
Evan You
8a80a23ecb fix: avoid errors thrown during dom props update
breaking the entire app

fix #9459
2019-02-21 14:00:28 -05:00
Evan You
7ec4627902 fix: ensure generated scoped slot code is compatible with 2.5
fix #9545
2019-02-21 08:52:15 -05:00
Evan You
d9b27a92bd fix: ensure scoped slots update in conditional branches
close #9534
2019-02-20 21:48:33 -05:00
Evan You
8f004ea44e fix: scoped slots should update when inside v-for
fix #9506
2019-02-18 17:17:47 -05:00
katashin
ee29e41ef4 fix: avoid possible infinite loop by accessing observables in error handler (#9489) 2019-02-18 19:56:17 +01:00
Evan You
29c348f3cf fix: fix keyCode check for Chrome autofill fake key events
close #9441
2019-02-11 22:54:35 -05:00
Evan You
21fca2fffc fix: ensure scoped slot containing passed down slot content updates properly 2019-02-11 11:30:14 -05:00
Evan You
e7d49cdcf2 fix: allow passing multiple arguments to scoped slot
fix #9468

Note: the usage is NOT recommended
2019-02-10 22:24:18 -05:00
Evan You
060686d6ea fix: do not cache scoped slots when mixed with normal slots 2019-02-10 22:23:22 -05:00
Evan You
8a800867fe fix: new syntax slots without scope should also be exposed on functional slots() 2019-02-08 14:45:45 -05:00
Evan You
0e8560d0fc fix: expose v-slot slots without scope on this.$slots
fix #9421, fix #9458
2019-02-08 13:47:17 -05:00
Evan You
57bc80a546 fix: empty scoped slot should return undefined
fix #9452
2019-02-07 10:03:13 -05:00
Evan You
d5ade28652 revert: feat: expose all scoped slots on this.$slots
This reverts commit 0129b0eb12.
2019-02-06 15:22:21 -05:00
Evan You
96a09aad99 fix(compiler): fix v-bind dynamic arguments on slot outlets
fix #9444
2019-02-06 13:58:09 -05:00
Evan You
4d4d22a3f6 fix: bail out scoped slot optimization when there are nested scopes
fix #9438
2019-02-06 12:29:00 -05:00
Evan You
24b4640c1f fix: avoid exposing internal flags on $scopedSlots
ref #9443
2019-02-06 11:35:26 -05:00
Evan You
b9de23b100 fix: async component should use render owner as force update context
Previously, an async component uses its lexical owner as the force
update context. This works when the async component is rendered in a
scoped slot because in the past parent components always force update
child components with any type of slots. After the optimization in
f219bed though, child components with only scoped slots are no longer
force-updated, and this cause async components inside scoped slots to
not trigger the proper update. Turns out they should have used the
actual render owner (the component that invokes the scoped slot) as the
force update context all along.

fix #9432
2019-02-05 22:18:05 -05:00
Evan You
44a4ca33b9 fix: restore slot-scope + v-if behavior
fix #9422
2019-02-04 22:39:35 -05:00
Evan You
0129b0eb12 feat: expose all scoped slots on this.$slots
close #9421
2019-02-04 22:25:19 -05:00
Bogdan Luca
66fd3c8dd1 fix(v-model): add value to $attrs if not defined in props (#9331)
fix #9330
2019-02-04 17:43:48 -05:00
nciont
0fb03b7831 fix: avoid blocking first input event in IE when it shouldn't (#9297)
- the original bug in #7138 only happens for `<textarea>`
- the bug doesn't happen if placeholder has empty value

fix #9042, fix #9383
2019-02-04 17:39:41 -05:00
Filipe Amaral
55bfb94a33 fix(compiler): fix inline-template crashing (#9365)
fix #9361
2019-02-04 16:49:27 -05:00
Barthélémy Ledoux
1922e7d4d9 fix(template-compiler): allow comments on the root node in templates (#9408)
In SFC templates, we are allowed to add comments to the root node. If parsing with comments flag
true, we are not anymore. This ignores the root comments in case they cannot be added.

fix #9407
2019-02-04 16:34:32 -05:00
Evan You
64f863bbb9 feat: move v-bind.prop shorthand behind flag 2019-02-02 10:49:01 -05:00
Evan You
44a17ba2cd fix: fix child forceUpdate regression
close #9396
2019-01-31 10:24:41 -05:00
Filipe Amaral
539e481f38 fix: fix v-bind:style for camelCase properties with !important (#9386) 2019-01-31 10:08:35 -05:00
Evan You
e632e9a075 fix: allow more enumerated values for contenteditable
close #9397
2019-01-31 09:56:18 -05:00
Evan You
3edb999200 polish: warn against incorrect nested v-slot usage 2019-01-30 21:33:59 -05:00
Evan You
2807fd24b0 fix: template v-slot should work with v-else conditions 2019-01-30 21:30:29 -05:00
Evan You
5851961ca3 refactor: adjust codegen for v-if on scoped slot 2019-01-30 18:12:18 -05:00
Evan You
c9e3a5d1d9 feat: detect and warn invalid dynamic argument expressions 2019-01-28 18:08:37 -05:00
Evan You
dbc0582587 feat: dynamic directive arguments for v-on, v-bind and custom directives (#9373) 2019-01-25 23:22:44 -05:00
Evan You
f219bedae8
perf: improve scoped slots change detection accuracy (#9371)
Ensure that state mutations that only affect parent scope only trigger parent update and does not affect child components with only scoped slots.
2019-01-25 22:34:06 -05:00
Evan You
1868561442 fix: fix checkbox event edge case in Firefox 2019-01-24 15:43:06 -05:00
Evan You
8cb2069aa4 test: fix tests in IE/Edge 2019-01-24 10:05:39 -05:00
Evan You
8d8457246d feat: warning for ambiguous v-slot usage 2019-01-23 10:20:01 -05:00
Evan You
67e85deae2 feat: adjust v-slot per RFC + enable flag 2019-01-22 22:21:40 -05:00
Evan You
42fdf3f837 refactor: ssrPrefetch -> serverPrefetch for more consistent naming 2019-01-18 16:43:17 -05:00
Evan You
df064cedd1 test: tests for ssr template function (#9324) 2019-01-18 11:25:37 -05:00
Evan You
4fca0454bd feat: update new slot syntax per RFC revision 2019-01-16 13:44:58 -05:00
Evan You
7fb6fdd168 build: introduce feature flags, hide new slot syntax behind flag 2019-01-15 16:22:06 -05:00
Evan You
c5c354d593 feat: new scoped slot syntax implementation update per rfc 2019-01-14 22:56:37 -05:00
Evan You
aef5b4e478 fix(ssr): should render 0 as valid value for style property with unit 2019-01-12 02:07:17 -05:00
Evan You
584e89da4a feat: support slot-props and its shorthand
See https://github.com/vuejs/vue/issues/9306 for more details.
2019-01-12 01:23:51 -05:00
Evan You
794ad0dae3 refactor: additional tweaks after revert 2019-01-11 23:09:31 -05:00
Evan You
6a2994e8f0 revert: feat: support scoped-slot usage with $slot
This reverts commit 7988a5541c.
2019-01-11 23:04:04 -05:00
Evan You
6fe07ebf5a chore: merge branch '2.6' into dev 2019-01-11 18:26:32 -05:00
Evan You
0d2e9c46f1 fix(core): dedupe lifecycle hooks during options merge
The fix landed in #9199 causes further extended constructors used as
mixins to drop options from its inheritance chain, so a different fix
is needed.
2019-01-11 17:53:33 -05:00
Evan You
edf7df0c83 fix(core): dedupe lifecycle hooks during options merge
The fix landed in #9199 causes further extended constructors used as
mixins to drop options from its inheritance chain, so a different fix
is needed.
2019-01-11 17:51:45 -05:00
hikerpig
743edacdb6 fix(core): fix merged twice bug when passing extended constructor to mixins (#9199)
fix #9198
2019-01-11 15:47:13 -05:00
Adrien Baron
d21e931396 fix(async component): memory leak after synchronous async loading (#9275)
fix #9229
2019-01-11 15:46:25 -05:00
Evan You
17d8bcb60e fix(ssr): should not render invalid numeric style values
Reverts part of 7d9cfebe - browsers only auto append units to
numbers when in quirksmode, so in standard mode, numbers set to
style properties that require units are invalid and should not
be rendered.
2019-01-11 14:54:10 -05:00
Evan You
7d9cfebe39 fix(ssr): properly handle invalid and numeric style properties
Ignores values that are not string or numbers, and append px as default
unit to appropriate properties.

There will still be certain cases where the user simply provides an
invalid string value to a property which will be too costly to detect
(it's possible by using the `cssstyle` package, but very heavy). But
in such cases the user would already notice the style is not working
on the client, so it's not really worth it for the perf implications.

fix #9231
2019-01-11 11:07:40 -05:00
hikerpig
537161779e fix(core): fix merged twice bug when passing extended constructor to mixins (#9199)
fix #9198
2019-01-10 16:10:54 -05:00
Evan You
c50bbde41c feat: add Vue.observable() for explicitly creating observable objects 2019-01-10 16:03:03 -05:00
Evan You
3504d7f6d6 refactor: better solution for async edge case.
Revert event delegation related changes.
2019-01-10 14:21:31 -05:00
Evan You
d855027741 test: more test cases for $slot usage detection 2019-01-10 11:18:06 -05:00
Evan You
1e5174d213 test: add more test case for watch option 2019-01-10 10:33:02 -05:00
Evan You
3be1c5d67e feat(config): expose config.useEventDelegation and default to false 2019-01-09 20:09:50 -05:00
Evan You
d2902ca8ec feat: support .property shorthand syntax for v-bind.prop modifier
close #7582
2019-01-09 17:31:04 -05:00
Evan You
23a145952c refactor: adjust #7941 for slots unification 2019-01-09 16:35:39 -05:00
Eduardo San Martin Morote
fb6aa06090 feat(functional): add scopedSlots to context in functional components (#7941) 2019-01-09 16:18:14 -05:00
Evan You
5d52262f1c feat(core): expose all slots on $scopedSlots as functions
After this change, users using render functions can always make use
of slots via `this.$scopedSlots` without worrying about whether the
slot is being passed in as scoped or not.

This should also make it easier to migrate to 3.0 where all slots are
exposed as functions that return Array of VNodes on `this.$slots`.
2019-01-09 15:35:57 -05:00
Evan You
7988a5541c feat: support scoped-slot usage with $slot 2019-01-07 22:26:44 -05:00
Evan You
d278da20a0 test: fix LRU upgrade 2019-01-07 12:15:15 -05:00
Evan You
c7c13c2a15 fix(scoped-slots): ensure $scopedSlots calls always return Arrays
Also allow render functions to return an Array of a single element.
Close #8056
2018-12-26 17:17:42 -05:00
Evan You
d747469e1a test: test case for v-for native collection support 2018-12-26 16:02:50 -05:00
Evan You
7a9290421d build: fix chrome headless on CI 2018-12-26 15:48:19 -05:00
Evan You
85d8ad64aa build: use headless chrome by default for unit tests 2018-12-26 15:38:52 -05:00
Jeremy Dubois
d40eb9c288 feat(v-for): support iterables in v-for (#8179) 2018-12-26 15:38:19 -05:00
Evan You
e1abedb9e6 feat(compiler): add whitespace option, deprecate preserveWhitespace option
close #9208
2018-12-26 14:12:34 -05:00
Pak Youngrok
9c718522ba feat(compiler/watch): allow unicode characters in component names and watch paths (#8666)
close #8564
2018-12-26 10:02:54 -05:00
Evan You
325fc7693c feat(compiler): output codeframe in browser compiler 2018-12-21 23:55:48 -05:00
Jason
b31a1aa887 feat(compiler): output source range for compiler errors (#7127)
ref #6338
2018-12-21 21:58:32 -05:00
Evan You
1c105fb16c test: fix test case for #8297 2018-12-21 14:29:57 -05:00
Divya
3fca52792e feat: v-bind.sync also listens for kebab-case update event (#8297)
fix #6428
2018-12-21 13:34:17 -05:00
Mathieu TUDISCO
0e4e45ec74 feat: support custom toString() in text interpolation and v-html (#8217)
close #8093
2018-12-21 13:13:48 -05:00
Hiroki Osame
1933ee80ff fix(provide/inject): Merges symbol provides (#7926) 2018-12-21 12:49:21 -05:00
Zhenfei You
bf0efb02b1 feat(compiler): support deindent: false in vue-template-compiler (#7215)
close #7054
2018-12-21 11:59:33 -05:00
Evan You
44940121ee feat(ssr): add custom state serializer option
close #6614
2018-12-20 16:08:58 -05:00
Evan You
7ebabe2392 test: test for #8790 2018-12-20 15:54:35 -05:00
Guillaume Chau
d7a533d6f8 feat(ssr): ssrPrefetch option + context.rendered hook (#9017) 2018-12-20 15:26:12 -05:00
Hyunje Jun
f036cce163 feat(ssr): Add 'nonce' option to context for ssr outlet script (#8047)
close #7479
2018-12-20 15:15:04 -05:00
Evan You
9432737cf8 fix: cover more cases in v-on inline return value 2018-12-20 12:20:09 -05:00
Evan You
0ebb0f39df fix: return inline invocation return value in v-on handlers
close #7628
2018-12-20 11:32:06 -05:00
Evan You
b00868c5cb refactor: extract async error handling logic 2018-12-20 10:26:56 -05:00
Enkot
6e9fcfc81d feat(errors): sync/async error handling for lifecycle hooks and v-on handlers (#8395)
close #6953, close #7653
2018-12-20 10:02:28 -05:00
Evan You
b7f7f27569 feat: use event delegation when possible
This also fixes async edge case #6566 where events propagate too slow
and incorrectly trigger handlers post-patch.
2018-12-19 19:26:58 -05:00
Haoqun Jiang
850555d1fa fix: always use microtasks for nextTick (#8450)
fix #7109, #7546, #7707, #7834, #8109
reopen #6566
2018-12-19 13:29:00 -05:00
Xin Du (Clark)
b06c784b81 fix(ssr): support rendering comment (#9128) 2018-12-12 11:41:08 -05:00
Evan You
847e493768 fix: fix single v-for child optimization 2018-12-11 17:47:59 -05:00
Evan You
4074104fac perf: skip normalization on single child element v-for 2018-12-11 16:51:40 -05:00
Evan You
47487607fb fix: fix v-for component with undefined value
fix #9181
2018-12-11 16:51:03 -05:00
krystal
984393fed9 test: change model text's priority case (#9170) 2018-12-11 11:37:39 -05:00
Matteo Fogli
87bad80f0c fix(lifecycle): beforeUpdated should not be called if component is destroyed (#9171)
fix #8076
2018-12-11 11:31:27 -05:00
NaotoSuzuki
8fccd82569 chore: fix tag name in compiler/parser/index.js (#9165) 2018-12-11 11:28:40 -05:00
Andrew Hyndman
3d449376d5 fix(v-model): properly handle multiline v-model expressions (#9184)
fix #9183
2018-12-11 10:27:43 -05:00
Evan You
5d721a42b1 revert: fix(sfc): avoid deindent when pad option is specified (#7647)
This reverts commit 9d2f9a034f.
2018-12-09 15:52:17 -05:00
Evan You
780dac561b fix(ssr): should not warn for custom directives that do not have ssr implementation
fix #9167
2018-12-09 15:47:43 -05:00
sqal
a89384c8d9 test(ssr): add basic directives test (#9166) 2018-12-09 15:42:20 -05:00
GU Yiling
0ed0aad772 fix: fix keyName checking for space and delete in IE11 (#9150)
fix #9112
2018-12-05 15:26:58 -05:00
Evan You
1b4a8a0c1e fix(compiler): fix codegen for v-for component inside template
fix #9142
2018-12-04 10:51:49 -05:00
laoxiong
19c33a7e40 fix(v-on): correctly remove once listener (#8036)
fix #8032
2018-12-02 11:33:39 -05:00
Evan You
530ca1b2db fix(core): properly handle reused vnodes
This also removes the restrictions on rendering the same slot multiple
times.

close #7913
2018-12-01 21:07:18 -05:00
Evan You
097f6229df fix(core): avoid mutating original children when cloning vnode
The on-demand clone strategy introduced in 956756b mutates the owner
array of the cloned vnode. This causes the newly cloned vnode to be
destroyed when the parent node is destroyed. This is fixed by cloning
the children array when cloning a vnode.

fix #7975
2018-12-01 17:05:36 -05:00
Subhash
ef8524ab7d fix(compiler): wrap scoped slots v-if conditions in parens (#9119)
fix #9114
2018-12-01 00:33:59 -05:00
ysj16
0d62bb84ff fix: actually disable dep collection when invoking lifecycle hooks (#9095)
fix #9046
2018-12-01 00:24:30 -05:00
sqal
33e669b22f fix(ssr): computed properties should pass vm as first argument in ssr (#9090)
fix #8977
2018-12-01 00:05:13 -05:00
狼族小狈
c711ec189a fix(types): support chain call for Vue.use and Vue.mixin (#8595) 2018-11-30 23:27:24 -05:00
Alexey Tirman
613cb52bf3 polish: improve invalid method warning with type info (#8974)
close #8017
2018-11-30 18:06:24 -05:00
Jovino Xu
05001e695e fix(compiler): should keep newline after unary tags in <pre> (#8965)
fix #8950
2018-11-30 18:02:54 -05:00
Daniel Santana Rocha
2bb3199da7 polish: warn duplicate keys when patching children into empty node (#8881)
close #8832
2018-11-30 18:01:45 -05:00
GU Yiling
758524134e fix: v-bind object should be overridable with kebab-cased props (#8845)
In addition .sync should generate camelCased event name
2018-11-30 17:56:41 -05:00
Kael
80f17fa498 fix(core): skip mixins and extends if child is already merged (#8870)
fix #8865
2018-11-30 17:54:16 -05:00
Matt Lavallee
2e472c5e5e fix(component): clean up memory leak after loading async component completes (fix #8740) (#8755)
* fix(component): clean up memory leak after loading async component completes

* fix(async component): accounting for async components with loading property

* refactor(component): simplifying memory cleanup logic
2018-11-30 17:36:08 -05:00
HcySunYang
5f6ef15fb2 polish: warn sequential index on <transition-group> (#8748) 2018-11-30 17:35:10 -05:00
Adrià Fontcuberta
2686818beb fix(error handling): handle errors on immediate watcher execution (#8581)
The handle callback call should be wrapped in a try/catch that explicitly calls handleError

fix #8567
2018-11-29 18:14:28 -05:00
Evan You
7b7164c11c fix(v-model): avoid duplicate model transforms
This happens when a component directly passes down its own data object
to a child component. Fix #8436.
2018-11-29 18:11:20 -05:00