Commit Graph

630 Commits

Author SHA1 Message Date
Evan You
88e5e96a3e refactor: useWith -> prefixIdentifiers 2019-09-23 13:29:52 -04:00
Evan You
e57cb51066 feat(compiler): expression prefixing + v-for scope analysis 2019-09-23 13:29:52 -04:00
Evan You
b04be6a561 wip: fix transform order 2019-09-23 13:29:52 -04:00
Evan You
bb8524e199 wip: expression rewrite 2019-09-23 13:29:52 -04:00
Evan You
70656690e2 chore: fix todo 2019-09-23 13:29:52 -04:00
Evan You
8076ce1f28 feat(compiler): handle runtime helper injection 2019-09-22 23:07:36 -04:00
Evan You
914087edea feat(compiler): basic v-bind & v-on transforms 2019-09-22 22:19:42 -04:00
Evan You
3ab016e44f wip: improve v-if & v-for codegen output formatting 2019-09-22 21:10:22 -04:00
Evan You
e8463f1198 chore: rename test dir 2019-09-22 20:56:24 -04:00
Evan You
0af0febfc2 fix: make sure v-if and v-for work together 2019-09-22 20:55:18 -04:00
Evan You
3415bbd823 wip: improve v-if codegen output formatting 2019-09-22 17:06:46 -04:00
Evan You
9c01e0bf0d fix(transform): transform should still apply even when node is removed 2019-09-22 17:02:32 -04:00
Evan You
3a177a18d2 feat(compiler): element codegen 2019-09-22 16:50:57 -04:00
Evan You
40307d9642 chore: fix parserOptions usage of props 2019-09-22 13:05:19 -04:00
Evan You
3f05315d17 test: fix tests 2019-09-21 17:48:17 -04:00
Evan You
baa8954884 feat(compiler): element transform 2019-09-21 17:42:12 -04:00
Evan You
93440bba97 wip: element transforms 2019-09-21 15:47:26 -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
c78d47b788 feat(compiler): set sourcesContent for source map 2019-09-20 12:19:52 -04:00
Evan You
8a923f6a52 refactor: move compile into compiler-core 2019-09-20 12:16:19 -04:00
Evan You
3e1973f065 test: test on-the-fly compilation 2019-09-20 00:56:02 -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
3b5ef483a9 build: move named char references to json file to speed up build 2019-09-19 23:19:48 -04:00
Evan You
9b1a548c6b feat(compiler): basic codegen with source map support 2019-09-19 23:05:51 -04:00
Evan You
98571ab496 perf(compiler): further improve advanceBy perf 2019-09-19 21:18:18 -04:00
Evan You
2b4f06b24c test(compiler): transformIf 2019-09-19 15:41:17 -04:00
Evan You
81fd694dd7 perf: avoid cloning in parser advanceBy 2019-09-19 13:59:24 -04:00
Evan You
4c3e7e331a refactor: cleanup unused variables in vFor 2019-09-19 13:48:32 -04:00
Evan You
06c890c336 test: update snapshots 2019-09-19 13:40:08 -04:00
Evan You
1f96d2348f chore: nest v-for tests 2019-09-19 13:36:27 -04:00
Evan You
5f49018601 test(compiler): tests for ast transform 2019-09-19 13:24:02 -04:00
Rahul Kadyan
10c1a2b332 feat(compiler-core): add parser transform for v-for directive (#65)
* feat(compiler-core): add parser transform for v-for directive

* fix: Include source location for expressions

* chore: remove comment

* refactor(compiler-core): extract hepler functions to utils
2019-09-19 13:23:49 -04:00
Evan You
bbb57c26a2 feat(compiler): basic transform implementation 2019-09-17 19:08:47 -04:00
Evan You
a5c1b3283d chore: avoid object.freeze in prod 2019-09-17 16:23:29 -04:00
Evan You
f595b006c2 chore: regex caching makes no difference 2019-09-17 12:26:09 -04:00
Evan You
132cef9063 refactor: further tweak compiler layers 2019-09-17 11:57:37 -04:00
Evan You
6c14b409ca refactor: move dom-specific options to compiler-dom 2019-09-17 11:57:37 -04:00
Evan You
54b200fe54 wip: layout compiler files 2019-09-16 16:31:54 -04:00
Evan You
ca387afeea chore: more restructuring 2019-09-16 15:27:40 -04:00
Evan You
16fa44bd57 chore: organize file structure 2019-09-16 15:11:45 -04:00
Evan You
1c8f5b612a feat(compiler): scaffold compiler-dom 2019-09-16 15:06:45 -04:00
Evan You
86ae92303d feat(compiler): port parser implementation based on work by @znck and @mysticatea 2019-09-16 14:43:29 -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
a83ee65e30 fix: fix reactivity cjs entry 2019-09-14 11:26:53 -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
6c7cbb0dc9 types: avoid plain objects with value being mistaken as refs 2019-09-05 18:32:19 -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
c833db9c97 feat: production tip 2019-09-03 20:51:42 -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
1e4535dc78 test: improve warning assertions 2019-09-03 16:17:26 -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
Evan You
0cb42fbcf3 wip: make runtime-test nodes non-observable 2019-08-29 16:38:57 -04:00
Evan You
b40b7356ef test: tests for lifecycle api 2019-08-28 12:13:36 -04:00
Evan You
2b6ca9a7b6 test: fix deep watch for Map/Set 2019-08-27 15:01:01 -04:00
Evan You
62e07a1b7e test: coverage 2019-08-27 14:42:05 -04:00
Evan You
7ecdc79d5e test: finish tests for watch api 2019-08-27 11:35:22 -04:00
Evan You
d04a4f9cb0 test: (wip) test for watch api 2019-08-26 22:47:38 -04:00
Evan You
a20eeac7fe test: refactor fragment tests to reduce scope 2019-08-26 21:49:12 -04:00
Evan You
cb3866890f test: effect.onStop 2019-08-26 21:24:44 -04:00
Evan You
a0bc525fee test: test for isRef & toRefs 2019-08-26 18:17:02 -04:00
Evan You
5a754aac81 test: test for setup() 2019-08-26 18:08:56 -04:00
Evan You
0ede301cf2 test: test for provide/inject 2019-08-26 16:14:23 -04:00
Evan You
3efe0ba3cd test: jest warning assert utils 2019-08-26 16:08:23 -04:00
Evan You
a39aa842f3 chore: remove no longer needed package 2019-08-23 17:22:13 -04:00
Evan You
b70f8d267e test: fix temp tests 2019-08-23 15:32:19 -04:00
Evan You
fd1fef5502 test: update fragment tests 2019-08-23 15:27:17 -04:00
Evan You
589d3c2feb refactor: immutable -> readonly 2019-08-23 09:38:32 -04:00
Evan You
e1bbfbba94 test: more test todos 2019-08-23 09:21:29 -04:00
Evan You
ce51ca30d8 test: layout test references 2019-08-22 22:15:39 -04:00
Evan You
daf67397ae wip: pass attrs fallthrough tests 2019-08-22 22:07:51 -04:00
Evan You
7fae3ebaf3 wip: adjust index exports 2019-08-22 21:38:00 -04:00
Evan You
5b38e631e7 chore: test todos 2019-08-22 17:13:25 -04:00
Evan You
7bb822c160 wip: cloneVNode + mergeProps 2019-08-22 17:12:39 -04:00
Evan You
f3e9848bb2 refactor: use const enums for flags 2019-08-22 11:12:37 -04:00
Evan You
f26cd5dfe4 test: layout more runtime-core tests 2019-08-21 22:00:48 -04:00
Evan You
8a01c8e549 types: fix createComponent spec 2019-08-21 17:10:37 -04:00
Evan You
b5384006d2 wip: update runtime-test 2019-08-21 17:05:14 -04:00
Evan You
13f5067656 chore: comments 2019-08-21 16:17:02 -04:00
Evan You
2777cd37b4 test: test immutable + ref 2019-08-21 12:03:35 -04:00
Evan You
0aff144f93 wip: improve computed typing + test for setters 2019-08-21 12:01:05 -04:00
Evan You
8d99ab1ff8 chore: allow custom assignment to this 2019-08-21 09:50:20 -04:00
Evan You
7691c06520 wip: warn when injection not found 2019-08-20 15:51:55 -04:00
Evan You
c5558b7ed1 wip: remove immutability conversion in inject 2019-08-20 14:28:44 -04:00
Evan You
bb2ff037b9 build: bump rollup version 2019-08-20 10:34:25 -04:00
Evan You
aacad85058 test: fix reactivity tests 2019-08-20 09:58:10 -04:00
Evan You
0519e10518 wip: make computed implementation consistent 2019-08-20 09:45:28 -04:00
Evan You
b218678c66 feat: toRefs 2019-08-20 09:38:00 -04:00
Evan You
8f9afdff64 feat: template ref handling + ref unmount 2019-08-19 18:06:20 -04:00
Evan You
10a2cf47ea wip: make injected values immutable 2019-08-19 15:06:03 -04:00
Evan You
e53874f7e7 fix: reactive and immutable should warn for undefined 2019-08-19 15:01:50 -04:00
Evan You
685348f818 wip: adjust inject API 2019-08-19 14:45:11 -04:00
Evan You
145bf98840 wip: fix watch simple effect usage 2019-08-19 14:44:52 -04:00
Evan You
36ab2ab980 wip: update writable computed API to match latest spec 2019-08-19 12:05:07 -04:00
Evan You
42559dc5fe types: watch API type overload 2019-08-18 22:49:08 -04:00
Evan You
6a22ad2fb2 types: simplify ref type 2019-08-18 22:48:46 -04:00
Evan You
3facfa5a55 wip: adjust computed ref type 2019-08-16 10:52:45 -04:00
Evan You
e1e4a3854c wip: update runtime core to updated reactivity api names 2019-08-16 10:02:53 -04:00
Evan You
96d65e1ab5 wip: improve ref typing 2019-08-16 09:54:57 -04:00
Evan You
caba6d5c9e wip: state -> reactive, value -> ref 2019-08-16 09:42:46 -04:00
Evan You
09141b56fd wip: proper handling of value assignment in reactive object 2019-08-13 11:30:28 -04:00
Evan You
2fc0d599db revert: "wip: handle value -> value assignment in reactive object"
This reverts commit 61ab483af1.
2019-08-13 11:27:48 -04:00
Evan You
5aa42f137f types: use unknown 2019-08-13 11:18:23 -04:00
Evan You
1cfa2da78a types: allow string keys in provide/inject 2019-08-13 11:17:55 -04:00
Evan You
61ab483af1 wip: handle value -> value assignment in reactive object 2019-08-13 11:13:26 -04:00
Evan You
645c1eceea wip: update test runtime 2019-06-20 21:28:37 +08:00
Evan You
9c0f820a8e wip: expose getCurrentInstance() 2019-06-20 15:25:10 +08:00
Evan You
8eb20eede9 chore: todo 2019-06-19 22:50:14 +08:00
Evan You
117630fb92 perf: improve inject performance 2019-06-19 22:48:22 +08:00
Evan You
0952d4cf51 wip: provide/inject 2019-06-19 17:31:49 +08:00
Evan You
976844790e wip: $state -> $data 2019-06-19 17:08:42 +08:00
Evan You
5228f0343b wip: setup context + emit 2019-06-19 16:43:34 +08:00
Evan You
08806073a1 chore: comments 2019-06-13 10:25:24 +08:00
Evan You
2230917ab4 wip: types 2019-06-12 16:22:52 +08:00
Evan You
fce6a8fa51 wip: support returning render fn from setup() + improve createComponent type inference 2019-06-12 15:43:19 +08:00
Evan You
bfe6987323 refactor: adjust reactivity structure 2019-06-12 00:03:50 +08:00
Evan You
471899af8b refactor: rename reactivity package name and APIs 2019-06-11 23:50:28 +08:00
Evan You
07403c9aba wip: restructure api + support watch multiple sources 2019-06-07 14:55:38 +08:00
Evan You
d3fe492d7e wip: adjust watcher cleanup api 2019-06-06 15:19:04 +08:00
Evan You
1d41771e56 wip: watcher cleanup improvement 2019-06-06 13:25:05 +08:00
Evan You
e5e56bb358 wip: watcher cleanup 2019-06-06 13:04:49 +08:00
Evan You
693938d956 fix: vnode key ref should default to null 2019-06-06 13:04:31 +08:00
Evan You
39e1fffb9c wip: writable computed 2019-06-06 12:35:49 +08:00
Evan You
e9a3fa60d6 wip: delete keys from props proxy when needed 2019-06-05 21:38:32 +08:00
Evan You
d75d21c1a1 chore: comments 2019-06-03 19:59:15 +08:00