Commit Graph

457 Commits

Author SHA1 Message Date
Evan You 586e5bb800 fix(compiler-core): fix property shorthand detection
fix #845
2020-03-16 10:27:03 -04:00
Evan You 1f9c9c14ae chore: move hydration tests 2020-03-13 13:05:05 -04:00
Evan You a05d41c940 refactor(ssr): adjust ssr fragment anchor content 2020-03-13 13:05:05 -04:00
Evan You a3cc970030 feat(ssr/suspense): suspense hydration
In order to support hydration of async components, server-rendered
fragments must be explicitly marked with comment nodes.
2020-03-13 13:05:05 -04:00
Evan You c75388d538 release: v3.0.0-alpha.8 2020-03-06 15:58:40 -05:00
Evan You dd2d25fee1 test(ssr): test for hydration mismatch handling 2020-03-06 15:39:54 -05:00
Evan You f7a026109d test(ssr): ssr + hydration integration test 2020-03-06 15:14:12 -05:00
Evan You 08bba093af test(ssr): more hydration tests 2020-03-05 10:29:50 -06:00
Evan You fb4856b363 test(ssr): hydratioon tests (wip) 2020-03-04 17:06:50 -06:00
Evan You bcb2a9b4a6 build: make @vue/shared public
This avoids it being inlined multiple times in esm bundler builds
2020-02-29 22:04:42 -05:00
Evan You 8449a9727c feat(compiler-core): switch to @babel/parser for expression parsing
This enables default support for parsing bigInt, optional chaining
    and nullish coalescing, and also adds the `expressionPlugins`
    compiler option for enabling additional parsing plugins listed at
    https://babeljs.io/docs/en/next/babel-parser#plugins.
2020-02-27 16:53:51 -05:00
Evan You 312513d255 release: v3.0.0-alpha.7 2020-02-26 14:36:38 -05:00
Evan You 3eab143843 fix(template-ref): fix string template refs inside slots 2020-02-25 18:29:51 -05:00
djy0 c11905fe36
chore: fix typo (#764) [ci skip] 2020-02-24 18:01:26 +01:00
Evan You 9ab22c7ae6 release: v3.0.0-alpha.6 2020-02-22 08:25:32 +01:00
Evan You 1b9b235663 fix(compiler-dom): properly stringify class/style bindings when hoisting static strings 2020-02-21 13:10:13 +01:00
Luxiaosong c54aa43fa7
chore: use 'const' instead of 'let' (#755) [ci skip] 2020-02-21 11:21:24 +01:00
likui 7b987d9450
fix(compiler-core): should alias name in helperString (#743)
fix #740
2020-02-19 09:49:46 -05:00
Evan You 478b4cfb2c release: v3.0.0-alpha.5 2020-02-18 15:00:55 -05:00
Evan You 028f748c32 fix(v-on): transform click.right and click.middle modifiers
fix #735
2020-02-18 14:32:06 -05:00
Evan You 66b5f0b480 chore: fix hoistStatic exhaustive check 2020-02-14 16:41:55 -05:00
Evan You e0f3c6b352 fix(compiler-core): should apply text transform to if branches
fix #725
2020-02-14 15:57:14 -05:00
Evan You 5455e8e69a fix(compiler-core): should not hoist element with cached + merged event handlers 2020-02-13 18:34:08 -05:00
Evan You 9aaef60ad2 wip(ssr): adjust event hydration flag 2020-02-13 18:28:40 -05:00
Evan You 6b505dcd23 wip(ssr): basic element hydration 2020-02-13 17:47:00 -05:00
Evan You 8b7c162125 feat(compiler-dom): handle constant expressions when stringifying static content 2020-02-12 15:00:00 -05:00
Evan You 1389d7b88c refactor(compiler-core): use more concise marker for compiled slots 2020-02-12 13:45:35 -05:00
Evan You 175f8aae8d feat(compiler): mark hoisted trees with patchFlag 2020-02-12 13:31:29 -05:00
Evan You 27913e661a feat(compiler-dom/runtime-dom): stringify eligible static trees 2020-02-12 11:56:42 -05:00
Evan You e861c6da90 test: test updates for d40c642 2020-02-11 18:40:42 -05:00
Evan You e3988b40d8 refactor(compiler-core): use dedicated node type for element codegen
Previously codegen node for elements and components used raw expressions,
which leads to multiple permutations of AST shapes based on whether the
node is a block or has directives. The complexity is spread across the
entire compiler and occurs whenever a transform needs to deal with
element codegen nodes.

This refactor centralizes the handling of all possible permutations
into the codegen phase, so that all elements/components will have a
consistent node type throughout the transform phase.

The refactor is split into two commits (with test updates in a separate
one) so changes can be easier to inspect.
2020-02-11 18:40:42 -05:00
Evan You f4c54a888b refactor(compiler-core): hoist static text calls between elements 2020-02-10 18:32:11 -05:00
Evan You 12fcf9ab95 fix(compiler): fix v-for fragment openBlock argument 2020-02-10 18:19:49 -05:00
Evan You 47e984d31f refactor(compiler): provide _ctx and _cache via arguments 2020-02-10 17:29:12 -05:00
Evan You ade07c64a1 fix(compiler-core): fix keep-alive when used in templates
fix #715
2020-02-10 16:49:37 -05:00
Evan You 571ed4226b feat(compiler-core/v-on): support @vnode-xxx usage for vnode hooks 2020-02-10 11:00:37 -05:00
djy0 782db6d7f5
chore(compiler-core/codegen): avoid generate indent spaces of empty lines. (#701) 2020-02-10 09:33:04 -05:00
Evan You 8b2d6a35d0 test: update tests and snapshots for helper prefixing 2020-02-07 19:04:55 -05:00
Evan You 51317af6e8 refactor(compiler): prefix all imported helpers to avoid scope collision 2020-02-07 18:53:39 -05:00
Evan You c44d9fbe3d build: drop unnecessary codegen branch for global build 2020-02-07 18:00:30 -05:00
Evan You a51e710396 wip(ssr): proper scope analysis for ssr vnode slot fallback 2020-02-07 13:56:18 -05:00
Evan You b7a74d0439 wip(ssr): ssr slot vnode fallback 2020-02-07 01:06:51 -05:00
Evan You 797cc18967 wip(ssr): element scopeId 2020-02-06 17:45:46 -05:00
Evan You 4cc39e14a2 feat(compiler): warn invalid children for transition and keep-alive 2020-02-06 17:45:46 -05:00
Evan You 3c27bf6133 wip(compiler-ssr): built-in component fallthrough 2020-02-06 17:45:46 -05:00
Evan You bc8f91d181 refactor(ssr): prefix ssr helpers 2020-02-06 12:07:25 -05:00
Evan You ee5ed73361 wip(ssr): basic components 2020-02-05 23:07:23 -05:00
Evan You 9b3b6962df wip(srr): slot outlet 2020-02-05 21:04:40 -05:00
Evan You 7a63103a11 chore: fix snapshot 2020-02-05 17:29:41 -05:00
Evan You 201f18b58b wip(ssr): v-model w/ dynamic type & props 2020-02-05 17:01:00 -05:00
Evan You 1f2de9e232 fix(v-model): should use dynamic directive on input with dynamic v-bind 2020-02-05 15:21:47 -05:00
Evan You 8f9e85afb1 test: fix tests w/ nested CompoundExpressions 2020-02-05 14:30:34 -05:00
Evan You c952321fcf wip(compiler-ssr): v-model static types + textarea 2020-02-05 14:23:03 -05:00
Evan You c441e88469 chore: fix snapshots 2020-02-04 22:56:53 -05:00
Evan You 8da6df7235 wip(ssr): handle `<textarea>` with dynamic key v-bind 2020-02-04 22:49:47 -05:00
Evan You 1958314976 wip(compiler-ssr): v-show 2020-02-04 21:03:16 -05:00
Evan You ebf920e6af wip(compiler-ssr): dynamic v-bind + class/style merging 2020-02-04 18:37:32 -05:00
Evan You c059fc88b9 wip(compiler-ssr): v-bind with static keys 2020-02-04 16:47:12 -05:00
Evan You ba263c909c wip(ssr): remove cjs codegen mode 2020-02-04 15:58:54 -05:00
Evan You 6a5ed49ea9 wip(ssr): v-bind basic usage 2020-02-04 12:21:04 -05:00
Evan You eb9e089277 chore: fix test types 2020-02-03 22:21:45 -05:00
Evan You 8cf6b5731d test(compiler-ssr): v-for tests 2020-02-03 20:47:41 -05:00
Evan You 93c37b94f2 wip(ssr): v-for 2020-02-03 18:31:11 -05:00
Evan You 889a0276eb wip(ssr): do not generate commas between statements 2020-02-03 18:31:11 -05:00
Evan You b685805a26 wip(ssr): ssr helper codegen 2020-02-03 18:31:10 -05:00
Evan You e8c5de6cfd wip(compiler-ssr): v-if 2020-02-03 18:31:10 -05:00
Evan You 63e4486645 wip(compiler-ssr): text and interpolation 2020-02-02 22:28:54 -05:00
Evan You 8fd9e9ba97 test(compiler-core): test TempalteLiteral and IfStatement codegen 2020-02-02 21:35:44 -05:00
Evan You efbbd19b3d wip(ssr): initial scaffold for compiler-ssr 2020-02-02 00:05:27 -05:00
Evan You 34e61197c7 refactor(compiler-core): improve template type handling 2020-01-31 17:20:52 -05:00
Evan You 78c4f321cd fix(compiler-core): only check is prop on `<component>` 2020-01-31 16:15:05 -05:00
Evan You f503167fb7 test: fix snapshots 2020-01-31 11:06:37 -05:00
Evan You 04da2a82e8 feat(compiler-core): support mode: cjs in codegen 2020-01-31 10:01:33 -05:00
Gabriel Loiácono c088169170
style(compiler-core): while/expression instead of while/true (#680) 2020-01-31 09:43:34 -05:00
Evan You 730d329f79 fix(compiler-core): relax error on unknown entities
close #663
2020-01-29 12:16:58 -05:00
Evan You d293876c34 release: v3.0.0-alpha.4 2020-01-27 16:20:00 -05:00
Evan You cc47ae0118 test: update snapshots for toDisplayString 2020-01-27 16:00:18 -05:00
Evan You 066ba82c7f wip(ssr): escape helpers 2020-01-27 16:00:18 -05:00
Evan You b41677bf42 release: v3.0.0-alpha.3 2020-01-22 11:10:30 -05:00
Evan You 4f06eebc1c fix(dom): fix <svg> and <foreignObject> mount and updates 2020-01-21 11:32:33 -05:00
Evan You f2ac28b31e fix(compiler-core): force <svg> into blocks for correct runtime isSVG
state during patch
2020-01-20 14:48:26 -05:00
Ruijia Tang aca2c2a81e fix(compiler-core): avoid override user keys when injecting branch key (#630) 2020-01-20 10:15:53 -05:00
Evan You 9f65d811af release: v3.0.0-alpha.2 2020-01-13 17:44:30 -05:00
Evan You 2ac4b723e0 fix(compiler/v-slot): handle implicit default slot mixed with named slots 2020-01-06 15:31:21 -05:00
Evan You 137893a4fd fix(compiler/v-on): handle multiple statements in v-on handler (close #572) 2020-01-06 11:45:48 -05:00
Evan You 1bb1271b5e release: v3.0.0-alpha.1 2020-01-02 18:25:17 -05:00
susiwen8 dee5480317 chore: use Boolean to filter TemplateChildNode (#569) 2019-12-30 11:26:45 -05:00
djy0 ad2a0bde98 perf(compiler-core): simplify `advancePositionWithMutation` (#564) 2019-12-30 11:25:06 -05:00
Evan You 59c595c1e8 refactor: use named export for compiled render function 2019-12-24 11:04:44 -05:00
Evan You d6275a3c31 fix(sfc): treat custom block content as raw text 2019-12-22 21:09:39 -05:00
Evan You 90ddb7c260 refactor: expose parse in compiler-dom, improve sfc parse error handling 2019-12-22 19:44:21 -05:00
Evan You 94d692b0cf test: fix tests after missing end tag error location fix 2019-12-20 10:10:08 -05:00
Evan You 3a3a24d621 feat(sfc): accept inMap in compileTemplate() 2019-12-19 16:25:05 -05:00
Evan You 02c6d5c4e3 fix: codeframe marker should have min width of 1 2019-12-19 15:42:53 -05:00
Evan You bdbfead1e0 chore: adjust package.json 2019-12-19 14:19:58 -05:00
Evan You 9550302df4 build: esm-bunlder builds should be considered browser builds 2019-12-17 17:34:10 -05:00
Evan You b689ca6e85 test: test scopeId support 2019-12-17 12:31:38 -05:00
Evan You 51980afca2 feat(sfc): wip scopeId compiler support 2019-12-17 12:31:38 -05:00
Evan You 35858cec8c build: adjust global names + allow inline overrides of build flags 2019-12-15 15:37:43 -05:00
Evan You 75113c8d3e test: fix tests 2019-12-14 22:28:54 -05:00
Evan You 49a50d3c9c feat(compiler): accept line offset in codeframe 2019-12-13 18:01:04 -05:00
Evan You b15951e190 chore: remove line numbers from default errors 2019-12-13 17:28:12 -05:00
Evan You 9e757b5cc5 refactor(compiler-core): move compile into separate file 2019-12-13 13:22:15 -05:00
Evan You 8277d131c4 refactor(compiler): downgrade to source-map v6 for sync API 2019-12-13 12:56:31 -05:00
Cr 6797e35703 chore: fix typos (#541) 2019-12-13 11:49:01 +01:00
Evan You c36941c498 fix(compiler-core): should apply text transform to <template v-for> children 2019-12-12 21:09:47 -05:00
Evan You 8ffd79c754 fix(compiler-core): handle template root and template v-if as stable fragments 2019-12-12 21:09:47 -05:00
Evan You ef50c333ce fix(core): generate fragment root with patchFlag + optimize fragment w/ patchFlag 2019-12-12 21:09:47 -05:00
Evan You 5658f8b678 feat(compiler): expose generateCodeFrame 2019-12-12 21:09:47 -05:00
Evan You 136ab753b3 build: adjust esm formats 2019-12-10 22:14:02 -05:00
Evan You 8ed04ed503 build: release script 2019-12-10 21:29:52 -05:00
Evan You 95b2cb6fd2 fix(compiler-core): should only parse interpolations in DATA text mode 2019-12-10 15:30:17 -05:00
Evan You 5cd1495767 refactor(compiler-core): centralize compiler options 2019-12-10 12:53:26 -05:00
Evan You a984d3a531 test: skip optimizing single text root 2019-12-02 15:49:59 -05:00
Evan You 42f3f9e832 fix(compiler-core): should pre-convert text nodes in all non-element cases 2019-12-02 15:17:00 -05:00
likui 810b3a3e2a feat(compiler-sfc): transform asset url (#500) 2019-12-01 12:02:53 -05:00
Evan You 0e3e07079a feat(transition): properly handle transition & transition-group in compiler 2019-11-29 12:42:04 -05:00
Evan You 4e8d57bdfb feat(compiler-core): options.isBuiltInComponent 2019-11-29 12:13:49 -05:00
Evan You 52134a88d0 fix(compiler-core): handle base-transition 2019-11-29 12:02:31 -05:00
Gabriel Loiácono 812a0626ce style(compiler): changed object-assign to spread (#507) 2019-11-28 10:49:39 -05:00
Gabriel Loiácono 009dc80674 perf(compiler-core): set simple expression outside map (#485) 2019-11-26 09:02:22 -05:00
Evan You c6fb506fc0 feat(transition): compat with keep-alive 2019-11-25 17:35:15 -05:00
Evan You 08a3d95e52 fix: resolveDynamicComponent should use context instance 2019-11-25 11:41:28 -05:00
Evan You 1765985ec2 feat(transition): support in templates 2019-11-24 18:37:59 -05:00
Evan You 9e16ea3d30 test: update snapshots 2019-11-17 21:29:12 -05:00
Evan You e89d009937 fix(compiler): include createTextVNode helper for hoisted static content (fix #465) 2019-11-17 21:26:25 -05:00
Evan You 1de072567d perf(compiler): pre-compute maxCRNameLength for perf 2019-11-16 16:19:47 -05:00
Gabriel Loiácono 2780e0df4c perf(compiler-core): add perf optimization to parseText (#458) 2019-11-15 17:48:01 -05:00
Evan You 353b06df77 perf(compiler): should only perform assertions during tests
Compiler assertions are made to ensure implementation correctness,
but they have performance costs that should not affect users
during development.
2019-11-15 17:29:08 -05:00
Evan You 51d57b4566 perf(compiler): minor perf tweaks 2019-11-15 16:47:55 -05:00
Evan You 4fef8f342a perf(compiler): improve perf of parseTextData 2019-11-15 16:17:52 -05:00
QuincyChen d7d87622ce refactor: use isArray function from shared (#441) 2019-11-08 09:52:24 -05:00
Evan You f178874ace fix(v-model): generate separate modifiers for v-model with args 2019-11-07 09:40:34 -05:00
Evan You 4b739e3bc0 fix(compiler-core): should not condense whitespace in RAWTEXT mode 2019-11-06 20:52:19 -05:00
Evan You acbbe3298c refactor: move codeframe to @vue/shared 2019-11-06 15:13:15 -05:00
Evan You 98e9b769e6 feat(compiler): support keep-alive in templates 2019-11-05 10:26:56 -05:00
Dmitry Sharshakov 4b9483fd5e feat(compiler): compile suspense children as slots (#419) 2019-11-04 14:35:00 -05:00
Evan You 5eee1152ca types: (wip) improve dts output 2019-11-01 11:32:53 -04:00
likui ea2e2ce5bd chore: fix typo (#409) 2019-10-29 13:51:48 -04:00
Cédric Exbrayat 36b7e4e52e chore: fix comments referencing renamed file [ci skip] (#404) 2019-10-28 12:04:04 -04:00
Evan You 34989ef7fe chore: license 2019-10-28 11:15:17 -04:00
Evan You ed29af7bea fix: generate v-if fallback comment as block 2019-10-24 21:19:02 -04:00
Evan You 1c0a2c6d41 refactor(compiler): use shorter helpers for text and comment nodes 2019-10-24 17:55:00 -04:00
Evan You eb20730a67 feat(compiler): preserve whitespace in pre tag, add tests 2019-10-24 16:42:09 -04:00
Evan You 9298f46f92 feat(compiler-core): whitespace handling 2019-10-24 16:22:48 -04:00
Evan You 516501e20e chore: remove unused util function 2019-10-24 15:39:31 -04:00
Evan You f7a7e8d71d refactor(parser): remove ignoreSpaces option 2019-10-24 12:47:29 -04:00
Evan You af5a8e1154 feat(compiler-core): re-implement v-once to use cache mechanism 2019-10-23 17:57:40 -04:00
Evan You 113339c7b6 fix(compiler-dom): style transform of static styles should not add STYLE patchFlag 2019-10-23 10:49:16 -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