Commit Graph

5370 Commits

Author SHA1 Message Date
Evan You 2e65ea481f fix(compiler-core): fix line/column tracking when fast forwarding 2023-11-27 14:49:13 +08:00
Evan You 50cde7cfbc perf(compiler-sfc): use faster source map addMapping 2023-11-27 14:42:12 +08:00
Evan You d193666fdc chore: use MappingItem type 2023-11-27 14:16:16 +08:00
三咲智子 Kevin Deng c53af4d57d
refactor: extract dynamicChildren 2023-11-27 14:16:11 +08:00
三咲智子 Kevin Deng 339a658cef
fix: use parser from runtime-dom 2023-11-27 14:13:09 +08:00
Evan You f15d2f6cf6 perf: avoid sfc source map unnecessary serialization and parsing 2023-11-27 12:26:51 +08:00
三咲智子 Kevin Deng 0867ca0139
feat: add size report for compiler vapor 2023-11-27 07:16:24 +08:00
三咲智子 Kevin Deng f9c607dbe4
chore: add todo comment for prepend append 2023-11-27 06:34:37 +08:00
三咲智子 Kevin Deng 71cf732d6d
feat: append & prepend multiple elements 2023-11-27 06:22:10 +08:00
三咲智子 Kevin Deng 6ff8b1bf0d
feat: use Array for Fragment, instead of native DocumentFragment 2023-11-27 05:29:38 +08:00
三咲智子 Kevin Deng 07373d41fd
feat: append multiple node 2023-11-27 05:16:21 +08:00
三咲智子 Kevin Deng a3fb85fd00
chore: remove issue template 2023-11-27 00:24:19 +08:00
三咲智子 Kevin Deng df0f6275d4
test: fix template 2023-11-27 00:23:19 +08:00
三咲智子 Kevin Deng 12187fbc85
feat: dynamic root nodes 2023-11-26 03:53:47 +08:00
三咲智子 Kevin Deng f1e5bee7d5
fix: root 2023-11-26 03:24:12 +08:00
三咲智子 Kevin Deng 9602cd2011
feat: add api for document.createTextNode 2023-11-26 03:12:02 +08:00
三咲智子 Kevin Deng 45858c085d
fix: static + dynamic root nodes 2023-11-26 03:08:35 +08:00
三咲智子 Kevin Deng ac686033aa
feat: fragment 2023-11-26 02:13:59 +08:00
Evan You 157cfcb796 refactor: restore isSelfClosing as optional property 2023-11-25 22:55:39 +08:00
Evan You bab5bd375b chore: fix tests with rawExp 2023-11-25 22:50:40 +08:00
Evan You e48cbf02be refactor: restore SourceLocation.source
this is used extensively in @vue/language-tools and does not have
noticeable impact on performance
2023-11-25 19:22:39 +08:00
Evan You 08f0baa2ad refactor: preserve source location convention in sfc mode for base parser
For compatibility w/ usage like https://github.com/vue-macros/vue-macros/blob/main/packages/setup-block/src/core/index.ts
2023-11-25 18:07:29 +08:00
Evan You be6cae7dac chore: remove isSelfClosing property 2023-11-25 18:03:22 +08:00
Rizumu Ayaka 9b2a6ffe70
test: v-once as root node (#2) 2023-11-25 17:05:00 +08:00
三咲智子 Kevin Deng bdbd524d59
Merge remote-tracking branch 'upstream/main' 2023-11-25 17:04:03 +08:00
Evan You ceec69c8cc fix: avoid confusing breakage in @vitejs/plugin-vue 2023-11-25 16:39:42 +08:00
三咲智子 Kevin Deng f1a0b3828f
chore: enable format on save 2023-11-25 16:26:08 +08:00
三咲智子 Kevin Deng a2ba499186
chore: update todo 2023-11-25 16:25:43 +08:00
Evan You 6ec85ae872 chore: restructure parser files 2023-11-25 16:18:29 +08:00
Evan You c11002f16a perf(codegen): optimize source map generation 2023-11-25 16:18:29 +08:00
Evan You 3be53d9b97 perf(codegen): optimize line / column calculation during codegen
Previously, many CodegenContext.push() calls were unnecessarily
iterating through the entire pushed string to find newlines, when we
already know the newline positions for most of calls. Providing fast
paths for these calls significantly improves codegen performance when
source map is needed.

In benchmarks, this PR improves full SFC compilation performance by ~6%.
2023-11-25 16:18:29 +08:00
Evan You e8e3ec6ca7 perf(compiler-sfc): remove magic-string trim on script
magic-string's trim method uses a regex check for aborting which turns
out to be extremely expensive - it cna take up to 10% time in total SFC
compilation! The usage here is purely aesthetic so simply removing it
for a big perf gain is well worth it.
2023-11-25 16:18:29 +08:00
Evan You 20732366b9 perf: optimize position cloning 2023-11-25 16:18:29 +08:00
Evan You 79d3cc6cec wip: should not reuse AST when using custom compiler 2023-11-25 16:18:29 +08:00
Evan You 3ee343928a wip: parser v2 compat 2023-11-25 16:18:29 +08:00
Evan You 6022ac05c4 chore: document rationale for ignoring some parsing errors 2023-11-25 16:18:29 +08:00
Evan You e702b278d4 wip: shorten some method names 2023-11-25 16:18:29 +08:00
Evan You 59227d4124 wip: parse error tests 2023-11-25 16:18:29 +08:00
Evan You b6886a80b1 wip: force re-parse on reused sfc template ast 2023-11-25 16:18:29 +08:00
Evan You 1b4efc30c3 wip: should parse sfc template with lang=html 2023-11-25 16:18:29 +08:00
Evan You b59eabdc0d refactor: use more efficient walk for importUsageCheck 2023-11-25 16:18:29 +08:00
Evan You 37f9d3da8f wip: compiler-sfc should not attach ast on template with src import 2023-11-25 16:18:29 +08:00
Evan You e41cf8dc59 refactor: better naming for baseCompile argument 2023-11-25 16:18:29 +08:00
Evan You 94c86269d0 refactor: fix v-bind no-exp shorthand for new parser 2023-11-25 16:18:29 +08:00
Evan You e5afca6c1e wip: treat template with preprocessor as plain text 2023-11-25 16:18:29 +08:00
Evan You 5fc695be26 wip: support reusing template ast from sfc descriptor 2023-11-25 16:18:29 +08:00
Evan You fc4f801070 wip: decodeEntities test 2023-11-25 16:18:29 +08:00
Evan You 059caafc13 wip: pass all compiler-sfc tests 2023-11-25 16:18:29 +08:00
Evan You dda4fd526e wip: pass all compiler-ssr tests 2023-11-25 16:18:29 +08:00
Evan You 5a44b84cde wip: pass all compiler-dom tests 2023-11-25 16:18:29 +08:00