Commit Graph

769 Commits

Author SHA1 Message Date
Evan You
eadcaead37 feat(compiler-dom): transform for v-html 2019-10-08 15:35:57 -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
b68eb229c7 types: move scopeIds into PrefixMeta 2019-10-08 12:09:22 -04:00
Evan You
f15528350e test: test expression transform for reserved literals 2019-10-08 11:27:48 -04:00
Evan You
b4d375b0b8 fix(compiler): should not prefix reserved literals (close #142) 2019-10-08 11:25:38 -04:00
夜宴
8d10096d24 test(reactivity): check for key in entries iteration (#152) 2019-10-08 11:00:20 -04:00
Evan You
16da9ae89f fix(compiler): handle block nodes with custom directives + improve ast types 2019-10-08 10:50:10 -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
Evan You
57a5c61320 test: tests for hoistStatic 2019-10-07 17:12:22 -04:00
Evan You
802ecccc49 refactor: give runtimeHelper symbols more readable names during dev 2019-10-07 13:32:29 -04:00
Evan You
3146e6b942 fix(compiler/v-if): avoid incorrect transform application on v-else/else-if branch children 2019-10-07 12:48:43 -04:00
Evan You
caaeaff2fd refactor(runtime-dom/events): use more explicit variable name to avoid shadowing 2019-10-07 10:57:35 -04:00
Stanislav Lashmanov
6d5c12b63a fix(runtime-dom/events): fix wrong scope for event value (#117) 2019-10-07 10:56:24 -04:00
Kyle Hall
fd1d7833e2 test(runtime-core): createSlots method (#119) 2019-10-06 20:19:44 -04:00
Alexander Zibert
4605f43b95 test(reactivity): fixed small copy & paste error (#140) 2019-10-06 20:18:47 -04:00
Andrew / Kana
c6b7afcc23 types: use recursion for unwrapping refs (#137) 2019-10-06 20:11:52 -04:00
月迷津渡
4fc2174dce workflow(template-explorer): improve types (#128) 2019-10-06 11:55:23 -04:00
Carlos Rodrigues
8d70093802 refactor(reactivity): change _isRef to use refSymbol as key (#124) 2019-10-06 11:46:08 -04:00
Evan You
12b7557e8f chore: remove no longer necessary global Vue 2019-10-06 11:39:20 -04:00
Stanislav Lashmanov
b7a9c25f14 fix: expose Vue to compiled template (#120)
This removes the reliance on `Vue` being exposed as a global.
2019-10-06 11:38:05 -04:00
扩散性百万甜面包
d2d32d3810 refactor: rename param on function watch (#134) 2019-10-06 11:27:09 -04:00
月迷津渡
5eacfaf210 fix(reactivity): explicitly do type conversions in warning strings (#129) 2019-10-06 11:26:33 -04:00
Carlos Rodrigues
3d975247cd types: cleanup some unnecessary typing in reactivity (#126) 2019-10-06 11:22:32 -04:00
Evan You
31345b5af9 workflow(template-explorer): persist compilerOptions 2019-10-05 23:29:14 -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
Evan You
c4f9b6d592 test: fix import 2019-10-05 23:20:02 -04:00
Evan You
82bd9eb1db refactor(compiler): refine codegen node types 2019-10-05 22:48:13 -04:00
Evan You
bfecf2cdce refactor(compiler): use symbols for runtime helpers 2019-10-05 22:48:13 -04:00
Rahul Kadyan
f58e5e96f2 types: Use unique symbol type for _isRef property of ref object (#118) 2019-10-05 22:32:50 -04:00
扩散性百万甜面包
caa9297da6 refactor: move writable check out of computed setter (#112) 2019-10-05 15:48:05 -04:00
扩散性百万甜面包
0bdee72e17 feat(reactivity): use Symbol for Ref._isRef (#114) 2019-10-05 15:46:36 -04:00
Andrey Sukhonosov
de9507b6ff fix(compiler/codegen): add simple expression node opening bracket for ConditionalExpression (#110) 2019-10-05 15:42:49 -04:00
扩散性百万甜面包
842f235ede chore: fix typo (#108) 2019-10-05 15:39:47 -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
600ec5de42 chore: improve typings in reactivity tests (#96) 2019-10-05 10:39:40 -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
Carlos Rodrigues
23ff681418 chore: fix comment typos (#94) 2019-10-05 10:35:19 -04:00
zrh122
12abcba2c5 chore: fix typo in codegen (#92) 2019-10-05 10:29:50 -04:00
taiyop
a84a2b252d chore: fix typo in vBind.ts (#91) 2019-10-05 10:26:32 -04:00
夜宴
eaf4f67c62 chore: spelling mistake in ast.ts (#88) 2019-10-05 10:23:25 -04:00
扩散性百万甜面包
5c1e42f754 types: improve type 'Ref' (#105) 2019-10-05 10:10:37 -04:00
月迷津渡
9d6783053c types: simplify types (#104) 2019-10-05 10:09:34 -04:00
Reed Jones
ca70aff860 chore: fix docs typo in vOn.ts (#86) 2019-10-04 23:12:49 -04:00
Evan You
21666243e9 fix(compiler): props hoist should also work on elements w/ TEXT flag 2019-10-04 22:51:51 -04:00
Evan You
9c9ef609d8 fix: import patchFlags from @vue/shared in compiler instead
Otherwise this imports unnecessary stuff from the runtime.
2019-10-04 22:47:09 -04:00
Evan You
a0f442f1d4 workflow: include commit link in template explorer 2019-10-04 22:40:54 -04:00
Martin Rojo
ea4a352ee6 fix(typo): transformSlotOutlet name correction (#83) 2019-10-04 22:12:51 -04:00
Evan You
6dfb62e1ac workflow: use CDN deps for template explorer so it can be easily deployed 2019-10-04 17:55:55 -04:00
Evan You
0873254c6c workflow: improve template explorer 2019-10-04 17:43:20 -04:00
Evan You
277651ce89 fix(compiler): avoid hoisting components and directive calls 2019-10-04 14:34:26 -04:00
Evan You
5047bc8dbe workflow: basic template explorer 2019-10-04 13:08:17 -04:00
Evan You
b61d9652dd chore: shorten option name 2019-10-04 09:03:00 -04:00
Evan You
caccf92721 test: fix vbind tests 2019-10-04 08:38:53 -04:00
Evan You
6059fe69e8 fix(compiler): patchFlag analysis should factor in props returned by directive transforms 2019-10-04 08:37:10 -04:00
Evan You
095f5edf8d feat(compiler): hoist static trees 2019-10-03 23:30:25 -04:00
Evan You
2e2b6924da feat(compiler): v-on inline statement handling 2019-10-03 17:47:00 -04:00
Evan You
3354837ce1 refactor: move transformStyle to compiler-dom 2019-10-03 16:55:14 -04:00
Evan You
c2fc7e3347 feat(compiler): force dynamicSlots flag when inside v-for or v-slot 2019-10-03 16:27:46 -04:00
Evan You
4dea23f79e fix(compiler): exclude BAIL flag in annotations 2019-10-03 15:17:45 -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
f401ac6b88 refactor: improve vSlot.ts readability 2019-10-02 18:03:42 -04:00
Evan You
3d14265102 feat(compiler): handle conditional v-slot 2019-10-02 17:18:11 -04:00
Evan You
e90b83600a test(compiler): tests for RootNode codegen transform 2019-10-02 14:03:28 -04:00
Evan You
24bd6c27e0 feat(compiler): block optimization codegen for RootNode 2019-10-02 13:11:07 -04:00
Evan You
b33f0ceff1 refactor(compiler): switch to acorn 2019-10-02 11:05:56 -04:00
Evan You
9c9dd73017 chore: fix outdated patchFlag 2019-10-02 10:59:47 -04:00
Evan You
bec01c93bd fix(compiler): v-for fragments should be blocks 2019-10-02 10:47:01 -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
fe36555d9e feat(compiler): generate TEXT patchFlag 2019-10-02 00:19:23 -04:00
Evan You
3a95a2f148 fix(compiler): generate correct fragment children when it contains single text node or slot outlet 2019-10-01 23:53:52 -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
07955e6c96 test(compiler): tests for v-for codegen w/ block optimization 2019-10-01 21:00:55 -04:00
Evan You
65661b5ec0 test: restructure v-if & v-for tests 2019-10-01 17:58:09 -04:00
Evan You
4fc963bc5a feat(compiler): annotate patchFlags in generated code 2019-10-01 17:53:57 -04:00
Evan You
e5bc17967d wip(compiler): codegen node w/ block optimization for v-for 2019-10-01 16:48:20 -04:00
Evan You
aa134e7a4f test(compiler): codegen tests for Sequence & Conditional expressions 2019-10-01 15:43:59 -04:00
Evan You
ed111cd37b test(compiler): tests for vIf codegen w/ blocks optimization 2019-10-01 15:05:08 -04:00
Evan You
5de744d4e1 wip(compiler): generate blocks for v-if 2019-10-01 12:25:29 -04:00
Evan You
e31fb3c172 wip: Sequence & Conditional expressions for AST 2019-10-01 12:25:29 -04:00
Evan You
d67418002f feat(compiler): generate patchFlags for runtime 2019-09-30 21:17:12 -04:00
Evan You
da0d785d84 test: record snapshots for text optimization 2019-09-30 14:58:20 -04:00
Evan You
e5e40e1e38 feat(compiler): optimize text by merging adjacent nodes 2019-09-30 14:52:10 -04:00
Evan You
7ee07447c5 wip: drop class opt for now + move lazy requires to utils 2019-09-30 14:52:10 -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
389a07835c feat(compiler): handle complex destructure expressions in v-for 2019-09-28 16:02:08 -04:00
Evan You
798a9cbe9b test: improve coverage 2019-09-28 14:15:10 -04:00
Evan You
1c410205de test(compiler): test v-slot transform 2019-09-28 14:05:10 -04:00
Evan You
96749e0178 test: test slotFunction codegen 2019-09-28 13:12:41 -04:00
Evan You
a792d697a3 refactor: simplify slot extraneous child check 2019-09-28 01:35:49 -04:00
Evan You
6461b3853e refactor(compiler): split slot / slot outlet / slot scope handling into separate transforms 2019-09-28 00:19:24 -04:00
Evan You
6377af483b fix(compiler): improve auto prefixing cases 2019-09-27 23:20:26 -04:00
Evan You
262be6733c wip(compiler): tweak codegen, avoid duplicated asset resolution, improve formatting 2019-09-27 22:49:20 -04:00
Evan You
32666c7708 feat(compiler): transform component slots 2019-09-27 22:25:32 -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
d491a022a7 refactor(compiler): provide context.resetMapping() 2019-09-27 09:25:52 -04:00
Rahul Kadyan
a407b16b2b fix(compiler): generate correct mappings for v-for and object properties (#69) 2019-09-27 09:19:03 -04:00
Evan You
63b6902bdb feat(compiler): correct source map generation 2019-09-26 14:55:53 -04:00
Evan You
2e3a1ff3c3 fix: do not use lookbehind regex yet 2019-09-26 12:22:31 -04:00
Evan You
7c030ee899 build: adjust compiler-core export to avoid collision 2019-09-26 11:51:04 -04:00
Evan You
3bba461128 feat(compiler): include names in source map 2019-09-26 10:14:02 -04:00
Evan You
ac7587fdb5 test: compiler integration tests 2019-09-25 22:29:37 -04:00
Evan You
b5d21aeff7 test: test for transformStyle 2019-09-25 21:02:46 -04:00
Evan You
6c8f226a79 fix: fix source map by fixing advancePositionWithMutation 2019-09-25 19:17:45 -04:00
Evan You
ff2313e43a wip(compiler): adjust statement positions 2019-09-25 15:09:58 -04:00
Evan You
b43f3b61b7 feat(compiler): transformStyle + context.hoist 2019-09-25 14:13:33 -04:00
Evan You
3e8cd3f25f wip(compiler): property deduping 2019-09-25 12:39:46 -04:00
Evan You
f79433cbb3 feat(compiler): include ast in compile result 2019-09-25 09:23:34 -04:00
Evan You
d6852c5669 chore: fix comment 2019-09-25 07:30:14 -04:00
Evan You
61be769ce6 test: move source map test to compile.spec.ts 2019-09-24 23:01:57 -04:00
Evan You
af585081b1 test: test the right branches of code 2019-09-24 22:56:57 -04:00
Evan You
642a44f8f0 chore: fix browser build treeshaking for transformExpression 2019-09-24 22:50:00 -04:00
Evan You
84909648e7 test: tests for v-on transform 2019-09-24 22:39:20 -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
0707fa5d21 test: more coverage 2019-09-24 16:40:32 -04:00
Evan You
cae03f616d test: improve coverage 2019-09-24 16:35:01 -04:00
Evan You
e67084e5a1 chore: test todos 2019-09-24 15:51:52 -04:00
Evan You
7a46e51815 test: tests for codegen 2019-09-24 15:49:02 -04:00
Evan You
76a1196935 feat(runtime): support rendering comment nodes 2019-09-24 14:37:14 -04:00
Evan You
f5b3f580f1 test: finish tests for transformExpression 2019-09-24 12:13:08 -04:00
Evan You
4a82e7cdbc wip: test for transformExpression 2019-09-24 12:13:08 -04:00
Evan You
dcf4764360 test: test transformElements 2019-09-23 20:45:40 -04:00
Evan You
c20975ec68 test: refactor vIf tests 2019-09-23 17:31:11 -04:00
Evan You
f0d4eec946 test: refactor vFor tests 2019-09-23 17:16:07 -04:00
Evan You
b3b67b8c7d feat(compiler): ensure interpolation expressions are wrapped with toString() 2019-09-23 15:36:30 -04:00
Evan You
e09e887219 fix: handle nested scope identifiers 2019-09-23 13:56:56 -04:00
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