Commit Graph

1226 Commits

Author SHA1 Message Date
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
X.L
d483a49c86 fix(compiler): normalize potential functional component children in v-for (#8558)
fix #8468
2018-10-24 14:02:45 -04:00
Haoqun Jiang
0b16927c9d fix(transition): check existence of el.parentNode (#8422)
fix #8199

* fix(transition): check existence of `el.parentNode`

If the new parentNode gets a `textContent` or `innerHTML` property during
patching, the `transition` node would have been detached early, which means
`el.parentNode` no longer exists.

* fix(vdom): should not reuse nodes with `textContent` / `innerHTML` props
2018-10-24 13:26:20 -04:00
Haoqun Jiang
8f04135dba fix(parser): allow CRLFs in string interpolations (#8408)
fix #8103
2018-10-24 13:24:55 -04:00
Haoqun Jiang
a64ff1957c fix(lifecycle): updated should not be called after component being destroyed (#8381)
fix #8076
2018-10-24 13:24:31 -04:00
Haoqun Jiang
a71853bfc5 fix(v-pre): skip compiling custom component tags in v-pre blocks (fix #8286) (#8376) 2018-10-24 13:24:07 -04:00
Sam Lichlyter
5489339a30 refactor(core): Replace "var" (#8299)
Replaces instances of "var" with "let" and "const" where applicable using the eslint 'no-var' and
'prefer-const' rules
2018-10-24 13:07:40 -04:00
Eduardo San Martin Morote
952ae33290 polish: warn when an existing property starting with $ is not pro… (#8214) 2018-10-24 13:04:56 -04:00
Herrington Darkholme
46b8d2c59d fix(server): use path.posix.join to generate public path (#8177)
fix #8167
2018-10-24 13:02:11 -04:00
Kevin Ball
ecac831691 fix(compiler): templates inside v-pre should be rendered to HTML (#8146)
close #8041
2018-10-24 13:01:29 -04:00
Evan You
e9fc04ba50 test: fix assertion 2018-10-24 12:58:21 -04:00
Jovino Xu
aef2a5f3db fix(compiler): maybeComponent should return true when "is" attribute exists (#8114)
close #8101
2018-10-24 12:50:42 -04:00
Yuhang Liu
1b69cbde74 refactor: add empty v-bind warning(re #7973) (#7988)
* refactor: add empty v-bind warnings

re #7973

* Update index.js
2018-10-24 12:46:38 -04:00
Eduardo San Martin Morote
db7287c23b fix(shared): check dates in looseEqual (#7940)
Fix #7928
thanks to @w3cj for the initial version. This one is using getTime instead of toUTCString because it
is much faster to compare
2018-10-24 12:45:06 -04:00
Evan You
7597bb06e0 test: fix ssr tests 2018-10-24 12:42:53 -04:00
katashin
9d2f9a034f fix(sfc): avoid deindent when pad option is specified (#7647) 2018-10-24 12:10:58 -04:00
Evan You
76fd45c9fd build: upgrade eslint and use only non-stylistic rules 2018-10-24 12:08:32 -04:00
Evan You
52f9d3f492 build: upgrade webpack & karma 2018-10-24 10:41:38 -04:00
Vikram Rangaraj
12e8efc2e7 workflow: upgraded to babel 7 (#8948) 2018-10-23 18:40:55 -04:00
Evan You
6b1d431a89 Revert "perf: avoid unnecessary re-renders when computed property value did not change (#7824)"
This reverts commit 653aac2c57.
2018-09-18 10:21:55 -04:00
Tim
d280937045 test(e2e): trigger click on .new-todo instead of footer (#7938) 2018-08-20 17:52:06 -04:00
Haoqun Jiang
c21b89ebed fix(ssr): fix double escaping of staticClass values (#7859) (#8037) 2018-08-20 17:49:18 -04:00
Yuriy Alekseyev
59860b0a75 refactor: make the warning messages more explicit (close #7764) (#7881) 2018-08-17 10:40:46 -04:00
Edd Yerburgh
c94482743c feat: add async option (#8240)
This is an option intended only for testing purposes, and should not be used in
application code.
2018-08-16 16:26:02 -04:00
Evan You
3d36a443c7 fix: fix potential xss vulnerability in ssr when using v-bind 2018-08-01 12:33:47 -07:00
Zhenfei You
62265035c0 feat(weex): support object syntax of class (#7930) 2018-04-07 00:24:23 -04:00
Evan You
f148077437 chore: format 2018-03-23 19:21:34 -04:00
Evan You
653aac2c57
perf: avoid unnecessary re-renders when computed property value did not change (#7824)
close #7767
2018-03-23 19:03:27 -04:00
Evan You
b7445a2b94
fix: beforeUpdate should be called before render and allow state mutation (#7822)
fix #7481
2018-03-23 19:03:00 -04:00
Evan You
de42278d34 fix: ensure init/prepatch hooks are still repsected
this address a regression introduced in 984927a which
causes vue-router#1338 to resurface.
2018-03-23 19:01:24 -04:00
dherman
7b387390aa fix: correct the has implementation in the _renderProxy (#7878)
It's feasible that someone might ask if something other than a string is
in the proxy such as a `Symbol` that lacks a `charAt` method.  This aligns
the implementation with the `getHandler`.
2018-03-22 09:53:28 -04:00
Evan You
62a922e865 fix: fix wrongly matched named slots in functional components
This is a subtle edge case caused when a stateful component triggers
a self re-render, which reuses cached slot nodes. The cached slot
nodes, if returned from a functional render fn, gets the fnContext
property which causes subsequent slot resolving to not function
properly. To fix this, nodes returned from functional components
need to be cloned before getting assigned fnContext.

fix #7817
2018-03-13 17:48:52 -04:00
Piotr Kaminski
9084747e30 fix(core): Make set/delete warning condition for undefined, null and (#7818)
primitive values more precise.  Corrects #7452
2018-03-13 11:40:31 -04:00
leon
1a979c44d6 fix(ssr): fix v-show inline style rendering when style binding is array (#7814)
fix #7813
2018-03-13 11:40:22 -04:00
Hiroki Osame
a6169d1eb7 fix(model): fix static input type being overwritten by v-bind object (#7819)
fix #7811
2018-03-13 11:40:15 -04:00
Evan You
6dd73e9ee4 fix: named slots for nested functional components
Named slots should be respecred when passing raw children down multiple
layers of functional components.

fix #7710
2018-03-13 11:40:04 -04:00
Evan You
215f877d1b fix(keep-alive): run prune after render for correct active component check
fix #7566
2018-03-13 11:39:59 -04:00
Evan You
984927a1a9 fix: fix regression on duplicate component init when using shared data objects
fix #7805
2018-03-13 11:39:52 -04:00
Evan You
882e7199fd fix(ssr): fix SSR for async functional components
fix #7784
2018-03-13 11:39:29 -04:00
JK
666cdbd71e test(vdom): add test case for #7786 (#7793) 2018-03-11 14:04:31 -04:00
Evan You
71b4b25375 fix: allow multiline expression in v-for
fix #7792
2018-03-11 11:51:51 -04:00
Evan You
81e1e47cab fix: respect type order when boolean casting multi-typed props
fix #7485
2018-03-09 14:46:00 -05:00
AchillesJ
318f29fcdf fix(core): disable dependency collection in lifecycle hooks and data getter (#7596)
This fixes the parent being updated more than necessary due to collecting child props
as dependencies during its own update computation.

fix #7573
2018-03-09 13:13:16 -05:00
Alex
6bc75cacb7 fix(v-on): return handler value when using modifiers (#7704) 2018-03-08 17:09:53 -05:00
Eduardo San Martin Morote
db584931e2 fix(v-model): handle trailing whitespaces in expression (#7737) 2018-03-08 17:01:38 -05:00
Sergei Chipiga
9e04f6af27 test: add unit tests for core/observer/dep (#7738) 2018-03-08 12:06:46 -05:00
Eduardo San Martin Morote
dc97a39c2f fix(codegen): support filters with () in older browsers (#7545)
Fix #7544
Make sure no extra , is added at the end of the call so it also work with older browsers
2018-03-08 11:24:09 -05:00
Hiroki Osame
733c1be7f5 fix(inject): use hasOwn instead of 'in' for provideKey check (#7460)
fix #7284

* fix(Injection with Symbol polyfill): hasOwn instead of 'in'

Symbol polyfill adds a setter on the Object prototype so the 'in' check evaluated to true on every
object

* test(Injected properties): Ensures prototype properties aren't injected

Prototype properties were being injected, so injecting 'constructor' would have hit the first
provide-layer and not yield expected results.
2018-03-08 11:15:35 -05:00
İsmail Arılık
e9ea565d91 polish: raise warning when Vue.set/delete is called on invalid values (#7452)
close #7381
2018-03-08 10:31:40 -05:00
Evan You
80e650cfdf chore: fix formatting 2018-03-08 09:52:27 -05:00
Evan You
9b22d86ab3 fix: install ssr helpers for functional context during SSR
close #7443, ref nuxt/nuxt.js#2565
2018-03-08 09:51:03 -05:00
GU Yiling
1c0b4af5fd fix: skip v-model & value binding collision check with dynamic type binding (#7406)
* fix #7404
2018-03-07 17:44:55 -05:00
Evan You
f7ca21eab1 fix: always install composition event listeners
Previously the installation was skipped on Android because
it was not needed for Chinese IME - however some IMEs such
as Japanese exhibits the same behavior as on other browers.

So it is safer to always enable the check. Closes #7367
2018-03-07 16:50:38 -05:00
Evan You
aeebf0de90 test: add test for observer lazy getter invocation 2018-03-07 15:00:40 -05:00
Evan You
f7311c90b3 refactor: move keyName alias map to compiler 2018-03-07 14:50:35 -05:00
JK
1c8e2e88ed fix: support KeyboardEvent.key in built-in keyboard event modifiers (#7121)
fix #6900
2018-03-07 14:38:41 -05:00
Evan You
50b711af43 fix: do not special case attributes for custom elements
close #6864, close #6885
2018-03-07 12:03:31 -05:00
Hanks
d6200d7026 feat(weex): update weex recycle-list compiler (#7610)
+ Support v-once
+ Generate @templateId on the root element of each component
+ Add binding-expression attribute on recycle-list
+ Fix the compile result of v-else-if and v-else
2018-03-04 22:59:21 -05:00
Hanks
990374bacb feat(weex): support sending style sheets and class list to native (#7530)
No longer manage style sheets and class list in vue and weex-js-runtime.

Refer to https://github.com/Hanks10100/weex-native-directive/issues/14
2018-03-04 22:58:24 -05:00
Evan You
cd334070f3 fix: address potential regex backtrack 2018-02-21 13:11:11 -05:00
TB
e396eb3445 fix(ref): allow ref key to be zero (#7676)
prevents missing elements when :ref value is "0"

fix #7669
2018-02-21 10:21:51 -05:00
Guillaume Chau
5191f13472 fix(transition): should not add transition class when cancelled (#7391)
fix #7390
2018-01-05 17:45:59 -05:00
AchillesJ
05299610ea fix(vdom): svg inside foreignObject should be rendered with correct namespace (fix #7330) (#7350)
* add failed test case

* fix failed test case

* fix(vdom): svg inside foreignObject should be rendered with correct namespace

* adjust comments
2018-01-05 17:44:44 -05:00
Hanks
ff8fcd2e2b feat(weex): support parse object literal in binding attrs and styles (#7291) 2017-12-26 21:33:37 -05:00
Evan You
f8cb3a2393 chore: fix lint 2017-12-25 11:05:54 -05:00
Huo Chunyang
44420b7bbc chore: correct the eslint script statement in package.json and correct the format. (#7308) 2017-12-24 12:28:28 -05:00
Evan You
144a4dd860 build: rename build/ to scripts/ 2017-12-21 20:17:47 -05:00
Evan You
41838c8e86 feat: support v-model dynamic type binding for v-bind="object"
close #7296
2017-12-21 11:06:43 -05:00
Evan You
d8b08387a2 fix: clean up custom events when patched component no longer have events
fix #7294
2017-12-21 10:36:03 -05:00
Evan You
956756b1be refactor: use more efficient on-demand clone to handle reused node edge cases
removes unnecessary slot/static node clones, fix #7292
2017-12-20 19:44:24 -05:00
Evan You
8335217cb4 fix(core): handle edge cases for functional component returning arrays
fix #7282
2017-12-20 11:02:56 -05:00
cinwell.li
e055df82fe fix(weex): default value for editor, fix #7165 (#7286)
* fix(weex): default value for editor, fix #7165

/cc Hanks10100

* fix(weex): recycle-list test
2017-12-20 09:05:21 -05:00
Evan You
7cc0b559e9 feat(weex): update new syntax for <recycle-list> 2017-12-19 16:19:07 -05:00
Hanks
472a2896bd feat(weex): adjust framework entry APIs and add flow annotations (#7272)
1. Remove the "init", "reset", "getRoot" and "receiveTasks" APIs, which
are already implemented in the new version of "weex-js-runtime".
2. Use "createInstanceContext" instead of "createInstance". Vue only
needs to prepare the instance context and no longer execute the js
code. The js code will be executed by native.
3. Add flow type declarations and annotations.
2017-12-19 15:47:53 -05:00
Evan You
aac76349e7 Revert "feat: auto cache inline prop literals to avoid child re-render"
This reverts commit 996eb00a0a.
2017-12-19 14:03:39 -05:00
Herrington Darkholme
bacb911f7d fix(warning): allow symbol as vdom key (#7271) 2017-12-19 09:35:50 -05:00
Evan You
01c07503bf revert: revert prop object validation
close #7279
2017-12-19 09:29:48 -05:00
Evan You
1dd6b6f046 refactor: adjust weex branch coverage and build for merging into dev 2017-12-18 21:51:38 -05:00
Hanks
661bfe552e feat(weex): partially support lifecycles of virtual component (#7242)
Update the `_init` and `_update` logic to partially support lifecycles.
Add test cases for testing the lifecycle hooks and data update.
2017-12-18 20:58:53 -05:00
Hanks
d544d052a9 fix(weex): append as tree by default for recycle-list and cell-slot (#7216) 2017-12-18 20:57:43 -05:00
Hanks
b8d33ecd9a feat(weex): WIP implement virtual component (#7165) 2017-12-18 20:57:43 -05:00
Evan You
70b97ac2f4 feat(weex): recycle-list support stateful child component 2017-12-18 20:57:19 -05:00
Evan You
452a65c98a feat(weex): pass stateless component test case 2017-12-18 20:57:19 -05:00
Evan You
c1743a9dd7 test(weex): use done.fail for reporting errors 2017-12-18 20:57:18 -05:00
Hanks
46c8016562 test(weex): add more test cases for recycle-list (#7104) 2017-12-18 20:56:41 -05:00
Hanks
0bf0cbef76 revert(weex): remove the "receiveTasks" api and support component hook (#7053) 2017-12-18 20:56:41 -05:00
Hanks
0c11aa8add feat(weex): generate "@render" function for weex recycle-list (#6987)
* feat($compiler): support to generate @render function for weex recycle-list

Compile the template twice with different options for weex platform if
the “recyclable” flag is passed. Generate both normal render function
and “@render” function for recycle-list.

Adjust function names and arguments in recycle-list compiler.

* test(weex): add test cases for <recycle-list>
2017-12-18 20:55:58 -05:00
Evan You
996eb00a0a feat: auto cache inline prop literals to avoid child re-render 2017-12-18 12:55:02 -05:00
Alexander Sokolov
d02bb37efb feat: warn misspelled keys on prop validation object (#7198) 2017-12-14 11:39:32 -05:00
Evan You
14f7015578 test: fix ssr test due to webpack asset emit order change 2017-12-12 19:16:17 -05:00
Evan You
4e00688e4a build: update dev dependencies 2017-12-12 18:42:44 -05:00
Evan You
8936b8d9c1 fix(ssr): properly handle errors in async component
fix #6778
2017-12-12 18:12:02 -05:00
Evan You
86e4d7566e test: add test case for #7223 2017-12-12 17:07:28 -05:00
laoxiong
023f171f58 fix(core): warn duplicate keys in all cases (#7200)
close #7199
2017-12-12 16:38:32 -05:00
Guillaume Chau
bd4819e6cf fix: data() should be called with vm as first argument in mixins
fix #7191
2017-12-06 09:11:49 -05:00
Evan You
904d9c9a81 test: fix weex test case 2017-12-05 11:20:33 -05:00
Evan You
5875c7c490 fix: revert shared static tree cache to avoid memory leak
revert f0a66c5
fix #7184
2017-12-05 11:17:36 -05:00
Evan You
f5ce6b50cf fix(v-for): support array and nested destructuring in v-for 2017-11-27 16:54:15 -05:00
Evan You
0f7c443dca fix: block unnecessary input event on textarea placeholder in IE
close #7138
2017-11-27 12:13:37 -05:00
Evan You
8b43c81ed4 ci: bump transition unit test duration 2017-11-24 10:16:07 -05:00
Evan You
aa8262540a fix: fix v-for iterator parsing destructuring + parens without index 2017-11-24 10:09:04 -05:00
Evan You
dd21eacc33 fix: fix async component resolving in sibling mounted hook
fix #7107
2017-11-22 17:12:34 -05:00
Evan You
604e081d04 fix: ensure functionalContext is cloned during slot clones
fix #7106
2017-11-22 16:37:24 -05:00
Evan You
3932a451a1 fix(keep-alive): should not destroy active instance when pruning cache
fix #7105
2017-11-22 15:26:39 -05:00
Evan You
ebcef58645 fix: fix v-for alias deconstruct regression
fix #7096
2017-11-21 09:06:19 -05:00
Evan You
a23b913796 fix: fix <keep-alive> include/exclude logic for anonymous components 2017-11-20 10:04:06 -05:00
Evan You
59dea37403 fix: fix v-model :value warning on custom component
fix #7084
2017-11-18 14:41:22 -05:00
Evan You
4d8226fb2c fix: keep-alive should not cache anonymous components
This only happens if the component is returned by a intermediate
functional or abstract component, e.g. <router-view>. Fix #6938.
2017-11-17 10:30:51 -05:00
Evan You
6d6b3739e1 fix: should warn unknown components inside <keep-alive> 2017-11-17 10:23:23 -05:00
Robert Pemberton
1e146037fa feat: warn if both v-model and v-bind:value used on same element (#7056)
* test($compile): warn if v-model and :value used on same text input

#7048

* test($compile): make v-model and v-bind:value warning apply to all but exceptions

#7048

* test($compile): move v-model/:value conflict warner to model.js

#7048

* style: split long warning messages onto new lines
2017-11-16 14:54:11 -05:00
Evan You
5db86b4e94 fix(ssr): ensure hydrated class & style bindings are reactive
fix #7063
2017-11-16 11:19:52 -05:00
Evan You
6b799190a5 test: add test case for #6687 + fix lingering comment node 2017-11-16 10:09:15 -05:00
Evan You
13196b25b8 fix: clone slot nodes for render fn usage as well
fix #7041
2017-11-13 21:43:20 -05:00
Evan You
df82aeb0bf fix: should warn unknown components during hydration
fix #6998
2017-11-13 15:52:01 -05:00
Evan You
daed1e7355 fix: normlaize @click.right and @click.middle
fix #7020
2017-11-13 12:55:56 -05:00
Evan You
9463ac8746 test: fix weex tests 2017-11-07 17:25:55 -05:00
Evan You
f0a66c5817 refactor: cache v-once and purely static trees separately 2017-11-07 17:10:54 -05:00
Evan You
5a9da95b8a fix(slots): properly handle nested named slot passing
fix #6996
2017-11-03 16:45:54 -04:00
Evan You
e1657fd7ce fix(ssr): properly render <select v-model> initial state
fix #6986
2017-11-03 15:30:47 -04:00
Evan You
79c0d7bcfb fix(ssr): properly render textarea value
partial fix for #6986
2017-11-02 23:04:31 -04:00
laoxiong
58a39dfa0e fix(model): correctly set select v-model initial value on patch (#6910) 2017-11-02 22:03:19 -04:00
Soo Jae Hwang
0c703e34d1 fix(v-model): v-if / v-else not working with :type + v-model (#6955)
fix #6918
2017-11-02 17:09:46 -04:00
Mads K
c24f3e4208 fix(events): properly $off array of events (#6949) 2017-11-02 16:58:21 -04:00
Evan You
f2e00f756f fix: special case for static muted attribute in firefox
fix #6887
2017-11-02 16:55:05 -04:00
Hanks
232dd85f85 test(weex): support testing the virtual dom generated form *.vue files (#6944)
Compile the *.vue file into js code, then run it in Weex context, and
compare the generate virtual dom.
It’s a black-box testing for `weex-template-compiler`,
`weex-styler`,`weex-vue-framework` and `weex-js-runtime`.
2017-10-30 20:29:16 -04:00
Hanks
8a784d8d23 fix(weex): stop trim css units in richtext component (#6927)
+ Remove the `trimCSSUnit` method.
+ Modify the test cases to support css units.
+ Add flow type annotations.
2017-10-30 20:28:54 -04:00
Evan You
4ad9a56b22 fix(ssr): should not optimize root if conditions
fix #6907
2017-10-26 18:43:57 +02:00
Evan You
1cf02efda2 fix: also clone component slot children during deepClone
fix #6891, fix #6915
2017-10-26 18:00:19 +02:00
Evan You
83ed92608d fix: $set should respect properties on prototype chain
fix #6845
2017-10-26 13:53:46 +02:00
JK
b6c384dd78 fix(core): static trees should be cached on options (#6826) (#6837)
* test(once): failing test for #6826

* fix(core): static trees should be cached on options (#6826)
2017-10-18 06:26:55 +02:00
Evan You
4e0c48511d fix: further adjust nextTick strategy
fix #6813
2017-10-13 15:37:52 -04:00
Evan You
08a7fb539f fix: v-on="object" listeners should fire after high-priority ones
fix #6805
2017-10-13 09:59:23 -04:00
Evan You
5665eaf985 fix: backwards compat with checkbox code generated in < 2.5
fix #6803
2017-10-13 09:42:53 -04:00
Eduardo San Martin Morote
15031b8542 fix(v-model): allow arbitrary naems for type binding (#6802)
Fix #6800
2017-10-13 08:55:02 -04:00
Evan You
1f84dd1c24 fix: fix empty array edge case in normalizeChildren
fix #6790
2017-10-13 01:09:25 -04:00
Evan You
df8f179cfc test: make hydration spec more stable for Edge 2017-10-12 20:41:36 -04:00
Evan You
a85f95c422 test: use phantom for dev 2017-10-12 20:41:07 -04:00
Evan You
e38d006752 feat: improve template expression error message
close #6771
2017-10-12 11:15:23 -04:00
Evan You
b7105ae8c9 refactor: improve option type check warnings 2017-10-12 10:57:02 -04:00
Evan You
9f576aac7d test: add test for ignoredElements 2017-10-12 09:54:17 -04:00
Evan You
421658884f fix: fix scoped CSS for nested nodes in functional components 2017-10-11 11:17:46 -04:00
Evan You
050bb33f9b feat: scoped CSS support for functional components 2017-10-11 10:38:46 -04:00
Evan You
ea0d227d2d feat: functional component support for compiled templates 2017-10-10 22:33:16 -04:00
Evan You
68bdbf508b fix: perperly handle v-if on <template> scoped slot
fix #6725
2017-10-10 12:21:49 -04:00
Evan You
dff85b230a fix(ssr): handle inline template compilation error
fix #6766
2017-10-10 10:47:41 -04:00
wenlu.wang
3a5432a9e3 feat(core): call data method with this value (#6760)
#6739
2017-10-10 09:39:30 -04:00
Evan You
62405aa903 revert: fix(v-model): fix input listener with modifier blocking v-model update
This reverts commit 6f312d636c because the change
is no longer needed after switching nextTick to use MessageChannel.
2017-10-09 16:31:23 -04:00
Evan You
37533fd71e refactor: improve errorCaptured propagation behavior 2017-10-09 09:51:54 -04:00
Evan You
f3fe012d54 feat(v-model): support dynamic input type binding 2017-10-07 23:18:11 -04:00
Evan You
6893499744 feat: rename inject alias from "name" to "from" 2017-10-06 17:25:33 -04:00
Evan You
6dac3dbe44 feat: rename catchError -> errorCaptured 2017-10-06 17:25:33 -04:00
Dominik Rabij
514b90b647 fix: add slot v-bind warning (#6736)
close #6677
2017-10-06 15:48:00 -04:00
Evan You
7bc899ce0e feat(ssr): add shouldPrefetch option
close #5964
2017-10-05 23:08:09 -04:00
Evan You
f881dd175a feat(ssr): renderToString return Promise
close #6160
2017-10-05 22:42:56 -04:00
Evan You
2cba6d4cb1 feat: add max prop for <keep-alive> 2017-10-05 22:01:50 -04:00
Evan You
3c65239ad4 test: improve inject default test case 2017-10-05 15:56:36 -04:00
Popescu Dan
88423fc66a feat(inject): support providing default values for injections (#6322) 2017-10-05 15:44:32 -04:00
Evan You
b3cd9bc394 feat: add catchError option
also propagate error thrown in renderError() to global handler
2017-10-05 14:59:38 -04:00
Evan You
6e41679a96 fix: use MessageChannel for nextTick
fix #6566, #6690
2017-10-05 00:52:47 -04:00
Evan You
aa1356e83d test: e2e tests for basic renderer 2017-10-04 18:15:45 -04:00
Evan You
8295f71665 fix: warn slot-scope when used as a prop 2017-10-04 17:31:58 -04:00
Evan You
dae173d96d feat: support denoting normal elements as scoped slot
also deprecate "scope" in favor of "slot-scope"
2017-10-04 17:25:39 -04:00
Evan You
4987eeb3a7 feat: v-on automatic key inference 2017-10-04 14:59:59 -04:00
Nick Messing
9734e878ec feat: add .exact event modifier (#5977)
Allow limiting the event to the exact system modifiers specified.
close #5976
2017-10-04 12:37:00 -04:00
Evan You
e1da0d585c feat(v-model): craete non-existent properties as reactive
close #5932
2017-10-03 23:30:35 -04:00
Evan You
2b5c83af6d fix: handle errors in errorHandler
close #6714
2017-10-03 18:23:43 -04:00
AchillesJ
6ad44e13e9 fix(ref): preserve ref on components after removing root element (#6718)
fix #6632, #6641
2017-10-03 18:04:23 -04:00
Chris Casola
baabd6d140 fix(compiler): warn when inline-template component has no children (fix #6703) (#6715) 2017-10-03 18:00:52 -04:00
Evan You
cf1ff5b0dc fix: use correct ns inside <foreignObject> as root node
fix #6642
2017-10-02 17:35:47 -04:00
Hanks
2deda3d432 refactor(weex): Adjust the weex platform entry file to fit the new weex runtime (#6620)
* trim trailing whitespace

* revert(weex): remove the new Function hack for V8, as Weex uses JSC now

Remove the `callFunctionNative` method and `compileBundle`, which is provided by modified V8. In
order to maintain the consistency of the js engine, Weex also use JSC on Android. The legacy hack
for V8 engine should be removed.

* refactor(weex): move module and component apis to weex runtime

Modules and components should be registered in weex runtime, not the specific framework. The
`registerModules`, `registerComponents`, `weex.supports` and `weex.requireModule` api is moved to
weex runtime, which is in the "apache/incubator-weex" repo.

* test(weex): refactor the test cases to fit the new weex-js-runtime

* fix(weex): use document instead of renderer to create Element
2017-09-18 15:38:27 -04:00
Evan You
b080a14138 fix(ssr): fix hydration mismatch with adjacent text node from slots
fix vuejs/vue-loader#974
2017-09-14 12:25:22 -04:00
Evan You
0c9534ff00 fix(ssr): fix bundleRenderer Promise rejection regression 2017-09-14 09:50:33 -04:00
Elevista
3ee62fd59e fix(inject): exclude not enumerable keys of inject object (#6346)
close #6574
2017-09-13 01:05:11 -04:00
Evan You
09106f066a fix(ssr): handle v-text/v-html with non-string value
fix #6572
2017-09-12 23:23:24 -04:00
Evan You
684cd7d21a fix: preserve slot attribute if not resolved by Vue
close #6553
2017-09-12 21:45:44 -04:00
Evan You
6f312d636c fix(v-model): fix input listener with modifier blocking v-model update
fix #6552
2017-09-12 19:29:34 -04:00
Josh Soref
f477ecdbbb chore: spelling (#6535) 2017-09-07 07:33:09 -04:00