Commit Graph

514 Commits

Author SHA1 Message Date
Dmitry Sharshakov
3b613cbecd test(template-refs): add tests for function refs (#359) 2019-10-23 11:54:50 -04:00
Mayness
18a349ce8c fix(reactivity): account for NaN in value change checks (#361) 2019-10-23 11:53:43 -04:00
edison
9dcbf17f3a perf(runtime-core): use makeMap instead of RE (#350) 2019-10-23 10:34:58 -04:00
likui
e34d2bd853 types: improve slots type (#366) 2019-10-23 09:29:09 -04:00
Evan You
af57ad110f chore: revert prettier 2019-10-22 11:53:32 -04:00
Evan You
b5886189ba types: massive refactor 2019-10-22 11:53:32 -04:00
Cr
a23e03f01e feat(apiOptions): add warning for duplicated properties declared by options (#329) 2019-10-21 23:47:16 -04:00
Evan You
a25b1371ab types: improve types 2019-10-21 23:37:03 -04:00
Evan You
052febc127 feat(compiler): convert text mixed with elements into createVNode calls
This ensures they are tracked as dynamic children when inside blocks.
Also guaruntees compiled vnodes always have vnode children in arrays
so that they can skip normalizeVNode safely in optimized mode.
2019-10-21 15:52:29 -04:00
likui
f85ba092ce types: improve emit type (#345) 2019-10-21 14:04:42 -04:00
Jooger
67eb29f63b refactor(errorHandlling): handle array in callWithAsyncErrorHandling (#332) 2019-10-21 13:59:10 -04:00
Dmitry Sharshakov
74d8c5919d types: improve computed types (#343) 2019-10-21 13:57:20 -04:00
Dmitry Sharshakov
1f4937c2fd types: use RenderFunction type (#342) 2019-10-21 13:44:01 -04:00
Evan You
520af9787b perf: skip normalizeVNode in optimized mode 2019-10-21 12:24:19 -04:00
Evan You
8be578b6b6 perf: micro optimizations for vnode creation 2019-10-21 11:30:45 -04:00
Evan You
40ccbdeaac chore: remove refs from setupContext
explicit refs should be preferred
2019-10-21 10:36:38 -04:00
Dmitry Sharshakov
27f3c2d751 chore: fix typo (#339) 2019-10-21 10:04:34 -04:00
Evan You
f241c92917 chore: remove todo 2019-10-21 10:04:02 -04:00
HcySunYang
71f3826f99 chore: rename & property missing (#335) 2019-10-21 10:00:23 -04:00
Evan You
869ae19c41 fix(compiler): cache handlers should be per-instance, fix hoist w/ cached handlers 2019-10-20 17:00:11 -04:00
Evan You
e98a85f3cb refactor: applyDirectives -> withDirectives 2019-10-18 16:35:01 -04:00
Dmitry Sharshakov
068902abec types: fix createComponent type when using simple function (#334) 2019-10-18 14:58:15 -04:00
Evan You
b5194b16bf refactor: rename vnode hooks
So that they can be used as @vnodeMounted="..." in templates
2019-10-18 14:54:35 -04:00
Dmitry Sharshakov
2238925fbe feat(core): validate directives names (#326) 2019-10-18 12:34:45 -04:00
宋铄运
7f23eaf661 feat(core): support dynamic component via <component :is> (#320) 2019-10-18 12:09:04 -04:00
Evan You
d179918001 perf: further tweak accessCache 2019-10-17 22:29:51 -04:00
Dmitry Sharshakov
7305f693b1 refactor(runtime-core): extract promise check into shared (#325) 2019-10-17 15:47:26 -04:00
Evan You
4771319a15 perf(core): cache property access types on renderProxy 2019-10-17 15:02:15 -04:00
Evan You
1722dc05c5 fix(runtime-core): handle dynamicChildren when portal is used as a block 2019-10-16 17:43:41 -04:00
Carlos Rodrigues
48b79d02e8 perf(runtime-core): use faster diff map population (#319) 2019-10-16 15:34:51 -04:00
Evan You
b20b922d99 perf(v-for): use faster array population in renderList 2019-10-16 10:42:25 -04:00
Ruijia Tang
3e51200bae chore: Remove unnecessary console.log (#312) 2019-10-16 10:11:13 -04:00
Dmitry Sharshakov
0bac763f5a feat(directives): add support for function directives (#252) 2019-10-16 02:12:26 -04:00
Evan You
65a0207c7b test: test runtime compilation error warning 2019-10-15 22:19:19 -04:00
Jian Zhang
cf12d18b4b refactor(runtime-core): isBuiltInTag -> use makeMap instead of Set (#307) 2019-10-15 22:18:55 -04:00
月迷津渡
f71bf2f1d3 feat: add isCustomElement option (#299) 2019-10-15 17:30:47 -04:00
Adam Lewkowicz
555e3be69d types(watch): allow readonly arrays for watching multiple sources (#281) 2019-10-15 16:44:14 -04:00
Ayush Goyal
58fffcb987 refactor(core): use makeMap for faster string match checks (#282) 2019-10-15 12:11:08 -04:00
fisker Cheung
1fbb4d22fa chore: use const instead of let (#283) 2019-10-14 23:15:36 -04:00
fisker Cheung
e5d60a0f7a types: use hook type in options (#284) 2019-10-14 23:15:09 -04:00
月迷津渡
66023a8886 feat: runtime component name validation (#217) 2019-10-14 15:36:29 -04:00
Dmitry Sharshakov
fd209f5a66 feat(core): export version (#254) 2019-10-14 15:31:43 -04:00
Evan You
37cbd0098d chore: lint + include tsx files for lint 2019-10-14 15:07:43 -04:00
Evan You
6b3ad95fa4 fix(watch): type inference for computed refs 2019-10-14 12:15:09 -04:00
Cr
6bd26636c3 test: add test for resolveAsset (#273) 2019-10-14 11:56:02 -04:00
Cr
d2bcedb213 feat(apiOptions): warn invalid computed options (#225) 2019-10-14 02:15:31 -04:00
Evan You
82b5978e9c build: further shave off runtime compile only code 2019-10-14 01:08:00 -04:00
Jooger
312907c9d8 refactor(scheduler): replace try catch with callWithErrorHandling (#264) 2019-10-14 00:32:01 -04:00
fisker Cheung
70a142c203 refactor(runtime-core): programmatically create lifecycle APIs for DRYness (#246) 2019-10-13 23:18:34 -04:00
Dmitry Sharshakov
7fd1fdde28 refactor(scheduler): minor refactors (#240) 2019-10-13 22:41:23 -04:00
Dmitry Sharshakov
374a85b861 types: improve directive typing (#253) 2019-10-13 22:40:29 -04:00
Evan You
8e5ea98ccd
Revert "chore: remove useless else (#245)" (#257)
This reverts commit 971cebc61c.
2019-10-12 22:52:11 -04:00
fisker Cheung
971cebc61c chore: remove useless else (#245) 2019-10-12 20:12:09 -04:00
likui
46e64b257c feat(compiler-core/runtime-core): show codeframe in runtime compile errors (#220) 2019-10-12 19:49:23 -04:00
Dmitry Sharshakov
78d1821e24 refactor(componentProxy): simplify proxy handling (#214) 2019-10-12 19:44:30 -04:00
fisker Cheung
cdc143d348 refactor(runtime-core): use Array.from instead of loop over iterable (#250) 2019-10-12 19:34:22 -04:00
Sharvilak
ed5a42e588 refactor(runetime-core): removed unnecessary condition check (#237) 2019-10-12 11:00:29 -04:00
Cr
64c7be3763 chore: remove redundant type cast (#230) 2019-10-12 10:46:10 -04:00
Cr
f3760f7d34 types: add missing properties to ComponentPublicInstance interface (#218) 2019-10-12 10:30:21 -04:00
Evan You
1b06b3c424 perf: avoid parentNode call when dynamic child is not a Fragment 2019-10-11 18:06:24 -04:00
Evan You
a42ad6cc9d feat(runtime-dom): v-model directive runtime 2019-10-11 17:55:34 -04:00
Leonardo Piccioni de Almeida
a371b2ec0e chore: fix typo (#216) 2019-10-11 15:09:57 -04:00
Illya Klymov
e32da9169b fix(runtime-core): support object syntax for class (#215) 2019-10-11 15:09:37 -04:00
Evan You
5f28708cb9 test(vnode): tests for shapeFlag and cloneVNode 2019-10-11 11:48:20 -04:00
Evan You
e57d686b9a test(vnode): tests for normlaizeVNode 2019-10-11 11:41:28 -04:00
Evan You
95d7e1f471 feat: log on the fly template compilation error 2019-10-11 11:16:20 -04:00
Evan You
9ad7ae479e fix(compiler): export COMMENT instead EMPTY runtime helper 2019-10-11 10:47:59 -04:00
Cr
3cdefdbe2d test: add array of objects class test case for mergeProps (#201) 2019-10-11 10:13:04 -04:00
Evan You
d376439167 wip(compiler-dom): v-model runtime 2019-10-10 18:02:51 -04:00
月迷津渡
78f60347dc feat(compiler): add isNativeTag option for determining element type (#139) 2019-10-10 14:54:06 -04:00
Evan You
46d875f4e8 fix(runtime-core): use correct parentNode when patching dynamicChildren (close #98) 2019-10-10 14:49:35 -04:00
Dmitry Sharshakov
1139368dc2 types: improve writable computed types (#192) 2019-10-10 14:08:12 -04:00
terencez
d10b28ae0e refactor(runtime-core): make h() support single vnode child (#181) 2019-10-10 10:17:16 -04:00
Cr
211f5b7a45 test: add more complete test for componentProxy (#174) 2019-10-10 10:02:55 -04:00
Evan You
93c6aa4c90 feat: v-once
Note: only compiler transform is tested - integration with runtime
still needs to be tested.
2019-10-09 17:32:58 -04:00
Tim van den Eijnden
0177355242 fix: add warnings (#82)
* fix: add warnings

- invalid watch handler path
- attempting to mutate readonly computed value
- attempt of mutating public property
- attempt of mutating prop

* fix: more descriptive warnings + details

* fix: test apiOptions warnings

* fix: update warning in componentProxy

* fix: update warnings in componentProxy & apiOptions

* fix: update warning in componentProxy

* fix: implemented tests for componentProxy

* fix: remove comment + small refactor
2019-10-09 14:03:21 -04:00
扩散性百万甜面包
def27239bd type: improve typing (#177) 2019-10-09 14:01:53 -04:00
terencez
7963c01a67 types(runtime-core): simplify types in createComponentInstance() (#170) 2019-10-09 12:17:42 -04:00
Tim van den Eijnden
b107401e71 test(vnode): partial tests for vnode creation (#116) 2019-10-09 10:28:43 -04:00
扩散性百万甜面包
80e5b16f99 types: improve type 'ReactiveEffect' with generics (#99) 2019-10-08 13:48:13 -04:00
Evan You
8da5b007b1 types: improve typing 2019-10-08 12:43:13 -04:00
Evan You
1393ee52ca types: improve typing 2019-10-08 10:50:10 -04:00
扩散性百万甜面包
016231d09f types: improve type for WatchHandler (#160) 2019-10-08 10:48:24 -04:00
Kyle Hall
fd1d7833e2 test(runtime-core): createSlots method (#119) 2019-10-06 20:19:44 -04:00
扩散性百万甜面包
d2d32d3810 refactor: rename param on function watch (#134) 2019-10-06 11:27:09 -04:00
Jordan Pittman
a8c82909fa test: Add tests for some runtime helpers (#87)
* test for `renderList`
* test for `toHandlers`
2019-10-05 23:22:42 -04:00
Carlos Rodrigues
8133b3867a test: improve tests and typing for runtime-core (#100)
* test: add test case for declaring Array prop type with constructor casting in `createComponent`

* test: add test case for `setup(props)` with explicit props declaration
2019-10-05 15:37:55 -04:00
Vladimir
f48a2ffc76 chore: fix typos (#103) 2019-10-05 10:48:54 -04:00
扩散性百万甜面包
ec8f7c6375 chore: simplify code in apiWatch.ts (#101) 2019-10-05 10:44:02 -04:00
Carlos Rodrigues
fbabae0c0a chore: replace some type casts and fix variable and filename typos (#93) 2019-10-05 10:38:02 -04:00
月迷津渡
9d6783053c types: simplify types (#104) 2019-10-05 10:09:34 -04:00
Evan You
227ad034f0 feat(compiler/slot): bail out of optimization mode for non-compiled slots 2019-10-03 15:09:09 -04:00
Evan You
05db2a9c6c wip(compiler): adjust renderSlot() signature 2019-10-03 14:29:12 -04:00
Evan You
306c22efe1 feat(compiler): mark compiler-generated slots for runtime 2019-10-03 14:08:14 -04:00
Evan You
aa9245d55c feat(compiler): render <slot/> as block fragments 2019-10-03 12:03:14 -04:00
Evan You
fc47029ed3 feat(compiler): support v-for on named slots 2019-10-02 23:10:41 -04:00
Evan You
3d14265102 feat(compiler): handle conditional v-slot 2019-10-02 17:18:11 -04:00
Evan You
9c9dd73017 chore: fix outdated patchFlag 2019-10-02 10:59:47 -04:00
Evan You
191db785bd refactor: use global whitelist for render proxy has check 2019-10-02 10:37:06 -04:00
Evan You
d87255ce46 fix(options): data options should preserve original object if possible 2019-10-02 10:03:43 -04:00
Evan You
5ab1d75c39 fix(options): fix renderTriggered option translation 2019-10-02 09:46:29 -04:00
Evan You
a477594d65 feat(compiler): v-for codegen w/ correct blocks optimization + key flags 2019-10-01 23:19:48 -04:00
Evan You
4fc963bc5a feat(compiler): annotate patchFlags in generated code 2019-10-01 17:53:57 -04:00
Evan You
d67418002f feat(compiler): generate patchFlags for runtime 2019-09-30 21:17:12 -04:00
Evan You
46bd9dbab0 perf: avoid using WeakSet for isRef check 2019-09-30 14:52:10 -04:00
Evan You
7f06981f7c perf: using a _isVNode field is faster than a weakset 2019-09-30 14:52:10 -04:00
Evan You
ee66ce78b7 feat(compiler): transform slot outlets 2019-09-27 20:29:20 -04:00
Evan You
d900c13efb refactor(compiler): separate Interpolation, SimpleExpression & CompoundExpression types 2019-09-27 11:42:02 -04:00
Evan You
ff2313e43a wip(compiler): adjust statement positions 2019-09-25 15:09:58 -04:00
Evan You
597ada36ed test: tests for v-bind transform 2019-09-24 22:03:28 -04:00
Evan You
6ad84614f7 feat: renderList helper for v-for 2019-09-24 21:32:29 -04:00
Evan You
9b06e04e0f feat: v-on with no argument 2019-09-24 20:51:48 -04:00
Evan You
76a1196935 feat(runtime): support rendering comment nodes 2019-09-24 14:37:14 -04:00
Evan You
b3b67b8c7d feat(compiler): ensure interpolation expressions are wrapped with toString() 2019-09-23 15:36:30 -04:00
Evan You
8076ce1f28 feat(compiler): handle runtime helper injection 2019-09-22 23:07:36 -04:00
Evan You
3a177a18d2 feat(compiler): element codegen 2019-09-22 16:50:57 -04:00
Haoqun Jiang
b275f8697d test: add tests for rendererChildren (#52)
* test: [wip] add tests for rendererChildren

* chore: use serializeInner for clearer output

* fix: should remove the text node if content is empty

* test: also test for appended content

* test: inserting & removing

* test: moving children

* refactor: use a helper function

* test: finish tests

* test: duplicate keys tests belong to keyed children block

* fix(runtime-test): fix insert when moving node in the same parent

* fix: fix failing test cases for rendererChildren

* test: handle rendererChildren edge case
2019-09-20 18:17:35 -04:00
Evan You
8a923f6a52 refactor: move compile into compiler-core 2019-09-20 12:16:19 -04:00
Evan You
3ddd121b19 feat: on-the-fly template compilation 2019-09-20 00:24:16 -04:00
Evan You
d7aab859a3 feat: expose compiler APIs 2019-09-20 00:12:37 -04:00
Evan You
54a78f3856 chore: remove unnecessary enum initial value 2019-09-16 13:15:20 -04:00
Evan You
95e796fdb6 test: fix suspense tests in Node 12 2019-09-14 12:13:51 -04:00
Evan You
1c628d0b79 feat: re-suspense when encountering new async deps in resolved state 2019-09-12 12:16:01 -04:00
Evan You
4b3567035a test: further improve suspense combined test case 2019-09-12 10:40:17 -04:00
Evan You
dfcf494483 test: more comprehesive combined suspense test 2019-09-12 10:31:56 -04:00
Evan You
3b1d87efbe test: test suspense error handling 2019-09-12 01:52:14 -04:00
Evan You
b378b17076 chore: remove unnecessary code 2019-09-12 00:37:44 -04:00
Evan You
b30b17d22d test: test nested suspense & nested async deps 2019-09-11 23:44:37 -04:00
Evan You
bbc3442c52 refactor: move resolveSuspense out 2019-09-11 17:38:26 -04:00
Evan You
6dc91971d1 wip(suspense): discard side effects when content is unmounted before resolve 2019-09-11 13:22:18 -04:00
Evan You
ccfcdb8746 test: more tests for suspense 2019-09-11 11:10:14 -04:00
Evan You
dff4e7cd44 fix: patching a component with pending async setup should update its props and slots 2019-09-11 11:10:13 -04:00
Evan You
356a01780b wip: watcher callback handling inside suspense 2019-09-11 11:10:13 -04:00
Evan You
51914c76e8 wip: do not fire lifecycle hooks when already unmounted 2019-09-11 11:10:13 -04:00
Evan You
6bc368b2b6 wip: only buffer suspense effects when unresolved 2019-09-11 11:10:13 -04:00
Evan You
9ef987830d wip: suspense buffer effects 2019-09-11 11:10:13 -04:00
Evan You
42967f1f5a wip: pass proper args to patchDOMProp 2019-09-11 11:10:13 -04:00
Evan You
2677c91aba wip: pass suspense down as argument 2019-09-11 11:10:13 -04:00
Evan You
0fff3a6ef5 wip: handle suspense as component root el update 2019-09-11 11:10:13 -04:00
Evan You
3959a2a2e1 test: test suspense fallback 2019-09-11 11:10:13 -04:00
Evan You
a16c87be63 wip: suspense refactor 2019-09-11 11:10:13 -04:00
Evan You
c9e625864a wip: retry suspense async deps from resolved dep instead of root 2019-09-11 11:10:13 -04:00
Evan You
0d176ebf2a test: update test 2019-09-11 11:10:13 -04:00
Evan You
bd15138ef5 test: basic test for suspense 2019-09-11 11:10:13 -04:00
Evan You
e688e69b1f wip: handle move and unmount for suspense 2019-09-11 11:10:13 -04:00
Evan You
d5e9682040 wip: suspense feature flag 2019-09-11 11:10:13 -04:00
Evan You
7e70acf9c2 chore: todos 2019-09-11 11:10:13 -04:00
Evan You
02bb156314 wip: somewhat working suspense 2019-09-11 11:10:13 -04:00
Evan You
1dc9d81e3e wip: suspense 2019-09-11 11:10:13 -04:00
Evan You
cc748db33b chore: comments 2019-09-11 11:10:13 -04:00
Evan You
8b3aa60a18 wip: suspense ideas 2019-09-11 11:10:13 -04:00
Evan You
02e9fe3f7d types: fix typing 2019-09-07 11:45:32 -04:00
Evan You
7950980dc3 fix: handle prev children is null in patch element 2019-09-07 11:42:07 -04:00
Evan You
3904678306 types: use stricter HostNode typings 2019-09-06 16:58:32 -04:00
Evan You
360f3b4f37 types: improve type exports 2019-09-06 12:58:31 -04:00
Evan You
d87bed0138 refactor: split componentRenderUtils 2019-09-06 11:25:11 -04:00
Evan You
0f25c29119 refactor: reorganize component related code and types 2019-09-06 11:19:22 -04:00
Evan You
4c075803b5 test: test for app.mixin & warnHandler 2019-09-05 20:59:45 -04:00
Evan You
891f21b010 refactor: extract hasOwn helper 2019-09-05 20:48:14 -04:00
Evan You
7eed0df3c2 wip: $data should only expose properties from data() 2019-09-05 20:36:35 -04:00
Evan You
94a05561f8 feat: fix all cases for h and options type inference 2019-09-05 18:48:49 -04:00
Evan You
9b90e673e8 wip: improve options typing 2019-09-05 16:09:30 -04:00
Evan You
369b9eb583 types: props validation for h 2019-09-05 11:11:33 -04:00
Evan You
81a31f79dc feat: created/beforeCreate 2019-09-05 10:20:40 -04:00
Evan You
a6de6daa17 wip: disable tracking in all hooks 2019-09-04 18:20:47 -04:00
Evan You
13298bc4fa test: test for options API 2019-09-04 18:16:11 -04:00
Evan You
7cd33587ba types: errorCaptured can return void 2019-09-04 13:50:57 -04:00
Evan You
02de984f1f feat: mixins/extends/assets options 2019-09-04 11:37:00 -04:00
Evan You
b4c909c260 feat: $nextTick, $forceUpdate, $watch 2019-09-03 23:04:11 -04:00
Evan You
a6616e4210 feat: 2.x options support 2019-09-03 22:25:38 -04:00
Evan You
cbc8dddd15 chore: fix test 2019-09-03 20:31:53 -04:00
Evan You
40d33a3973 wip: remove config.silent 2019-09-03 20:17:25 -04:00
Evan You
406dcb0a7a test: test app asset retrieval 2019-09-03 18:30:52 -04:00
Evan You
acda3cf2d9 chore: fix type 2019-09-03 18:24:32 -04:00
Evan You
98d1406214 test: test for app-level APIs 2019-09-03 18:11:04 -04:00
Evan You
c5ec29ff9b wip: render() should receive no args, expose props on renderContext as readonly 2019-09-03 15:27:59 -04:00
Evan You
b2d269a651 build: use api-extractor for type rollup 2019-09-03 12:16:22 -04:00
Evan You
015d5dd0f1 feat: asset resolution 2019-09-02 16:43:26 -04:00
Evan You
67fd5b6091 chore: put warning in dev block 2019-09-02 16:16:08 -04:00
Evan You
32713f8fce feat: createApp / appContext 2019-09-02 16:09:34 -04:00
Evan You
aac807bc63 test: test for directives 2019-09-02 12:09:29 -04:00
Evan You
94e72481b8 test: todo 2019-08-31 22:18:21 -04:00
Evan You
9b428c6d83 feat: directives 2019-08-31 22:17:46 -04:00
Evan You
0f0ca4ae7c wip: vnodeXXX directive hooks 2019-08-31 17:06:39 -04:00
Evan You
1c6ecf4144 wip: avoid including full error type strings in prod 2019-08-31 16:43:02 -04:00
Evan You
a3b0f2bd1c feat: applyDirectives 2019-08-31 16:36:36 -04:00
Evan You
6801885f57 test: more coverage for error handling 2019-08-30 16:20:32 -04:00
Evan You
be28f976af test: tests for error handling 2019-08-30 16:08:10 -04:00
Evan You
d5684e1a9d wip: function slot tips 2019-08-30 15:34:57 -04:00
Evan You
0cd8e16366 wip: warn slots when invoked in setup() 2019-08-30 15:26:16 -04:00
Evan You
cb09289474 chore: test comments 2019-08-30 15:16:19 -04:00
Evan You
09593c94c3 feat: error handling in scheduler 2019-08-30 15:15:23 -04:00
Evan You
966d7b5487 feat: error handling for setup / render / watch / event handlers 2019-08-30 15:05:39 -04:00
Evan You
1d55b368e8 test: add test case for regsitering onBeforeUnmount inside onMounted 2019-08-30 13:48:27 -04:00
Evan You
7fe82398f7 refactor: call instead of wrap 2019-08-30 12:22:41 -04:00
Evan You
3d681f8bcd feat: error handling for lifecycle hooks 2019-08-30 12:16:09 -04:00
Evan You
fd018b83b5 feat: warning context 2019-08-30 10:36:30 -04:00
Evan You
010e64c224 test: restructure 2019-08-29 16:56:31 -04:00
Evan You
10bbf52c09 test: test for h 2019-08-29 16:47:00 -04:00
Evan You
ac625e03fe test: test for template ref usage in setup() 2019-08-29 16:39:23 -04:00