Commit Graph

4301 Commits

Author SHA1 Message Date
Evan You 41ff68ea57 feat(compiler): improve parsing tolerance for language-tools 2023-11-27 16:55:54 +08:00
Evan You 0721daf22d chore: Merge branch 'main' into minor 2023-11-27 15:59:07 +08:00
Evan You fb619cf9a4 fix(compiler-sfc): fix ast reuse for ssr 2023-11-27 15:38:30 +08:00
Evan You 678378afd5 fix(compiler-sfc): use correct compiler when re-parsing in ssr mode 2023-11-27 15:06:07 +08:00
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
Evan You f15d2f6cf6 perf: avoid sfc source map unnecessary serialization and parsing 2023-11-27 12:26:51 +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
Evan You ceec69c8cc fix: avoid confusing breakage in @vitejs/plugin-vue 2023-11-25 16:39:42 +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
Evan You 40f72d5e50 feat(compiler-core): support specifying root namespace when parsing 2023-11-25 16:18:29 +08:00
Evan You a1b10a21ac wip: pass more compiler-dom tests 2023-11-25 16:18:29 +08:00
Evan You 1912af04e3 wip: entities parsing in browser 2023-11-25 16:18:29 +08:00
Evan You caabba7590 wip: tune perf 2023-11-25 16:18:29 +08:00
Evan You 082b5a71c6 wip: pass all compiler-core tests 2023-11-25 16:18:29 +08:00
Evan You c4e50e46bb wip: more tests passing 2023-11-25 16:18:29 +08:00
Evan You e05ba29555 wip: pass all non-error parsing tests 2023-11-25 16:18:29 +08:00
Evan You a60ad9180d refactor: swap to new template parser
- get rid of SourceLocation.source for memory efficiency
- move source location generation logic transform phase into the parser
  itself so that SourceLocation.source is no longer needed
  - move v-for expression parsing into the parser itself
  - added nameLoc on AttributeNode for use in transformElement

Tests are not passing yet.
2023-11-25 16:18:29 +08:00
Evan You 65b44045ef wip: parse mode 2023-11-25 16:18:29 +08:00
Evan You 66c0ed0a3c perf: optimize away isBuiltInType 2023-11-25 16:18:29 +08:00
Evan You bc170c49fc chore: disable parser tests for now 2023-11-25 16:18:29 +08:00
Evan You 59e38f18d8 wip: parseMode 2023-11-25 16:18:29 +08:00
Evan You ae6fba9495 perf: optimize makeMap 2023-11-25 16:18:29 +08:00
Evan You 81e941da5b wip: getting ready for textmode handling 2023-11-25 16:18:29 +08:00
Evan You 5a855c57d7 wip: comments 2023-11-25 16:18:29 +08:00
Evan You a12abe72bc wip: refine element type 2023-11-25 16:18:29 +08:00
Evan You c342433cb5 wip: v-pre handling 2023-11-25 16:18:29 +08:00
Evan You 1a1f680536 wip: pre tag handling 2023-11-25 16:18:29 +08:00
Evan You 5762288bdf wip: parse interpolation 2023-11-25 16:18:29 +08:00
Evan You 70edd1c61e wip: check duplicated attributes 2023-11-25 16:18:29 +08:00
Evan You ec33e61e87 wip: remove htmlMode 2023-11-25 16:18:29 +08:00
Evan You db085b4a79 wip: remove foreignContext check 2023-11-25 16:18:29 +08:00
Evan You 65c0b31148 wip: modifiers 2023-11-25 16:18:29 +08:00
Evan You b81415ceac wip: source location for props 2023-11-25 16:18:29 +08:00
Evan You 08038a938c wip: parse directive in tokenizer 2023-11-25 16:18:29 +08:00
Evan You 622d34efe1 wip: optimize condenseWhitespace 2023-11-25 16:18:29 +08:00
Evan You 9aa8effec3 wip: parse directives 2023-11-25 16:18:29 +08:00
Evan You f131a4723b wip: loc for elements 2023-11-25 16:18:29 +08:00
Evan You f7db16b9cf wip: refactor line / column generation 2023-11-25 16:18:29 +08:00
Evan You 6311ebbf32 wip: save 2023-11-25 16:18:29 +08:00
Evan You 19bd714239 wip: port parser 2023-11-25 16:18:29 +08:00
Evan You 2a6292e37f wip: remove unused options 2023-11-25 16:18:29 +08:00
Evan You bc37eae8b0 wip: strip xmlMode / htmlMode 2023-11-25 16:18:29 +08:00
Evan You 5b9141cc30 wip: setup 2023-11-25 16:18:29 +08:00
Evan You 069f838691 release: v3.3.9 2023-11-25 16:11:31 +08:00
Carlos Rodrigues 1c525f75a3
types: support app.component to be `defineComponent` (#9662) 2023-11-22 22:18:02 +08:00
三咲智子 Kevin Deng 79b8a0905b
feat!: remove reactivity transform (#9321)
BREAKING CHANGE: Reactivity Transform was marked deprecated in 3.3 and is now removed in 3.4. This change does not require a major due to the feature being experimental. Users who wish to continue using the feature can do so via the external plugin at https://vue-macros.dev/features/reactivity-transform.html
2023-11-21 18:06:42 +08:00
Evan You afb21f7813 test: fix keepalive transition out-in test case 2023-11-21 17:57:44 +08:00
Evan You 1ea775633d chore: Merge branch 'main' into minor 2023-11-21 09:48:26 +08:00
Evan You fc772dbf73 chore: exclude private packages from version updates 2023-11-21 09:37:37 +08:00
Evan You 8fddb19c3a workflow: use workspace deps 2023-11-21 09:22:12 +08:00
renovate[bot] 32fb79df41
chore(deps): update all non-major dependencies (#9636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 17:38:13 +08:00
renovate[bot] 07bd2cd27e
chore(deps): update dependency vite to v5 (#9630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-11-18 10:36:56 +08:00
renovate[bot] 16a6438236
chore(deps): update lint (#9627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-18 10:33:24 +08:00
三咲智子 Kevin Deng 83e618f316
docs: replace rollup-plugin-vue with vite version 2023-11-15 21:43:18 +08:00
Evan You 2859b653c9 fix(v-model): unnecessary value binding error should apply to dynamic instead of static binding
close #3596
2023-11-15 08:51:50 +08:00
Bogdan Kolesnyk f18a174979
fix(compiler-sfc): malformed filename on windows using path.posix.join() (#9478)
Closes: #8671, #9583

Not fixed with: #9446

Related: #9473
2023-11-13 15:48:25 +08:00
renovate[bot] e422023686
chore(deps): update compiler to ^7.23.3 (#9590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 15:45:51 +08:00
renovate[bot] 2b00fd9ad2
chore(deps): update all non-major dependencies (#9589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 15:45:29 +08:00
Evan You 5d077c8754 fix(types): revert class type restrictions
reverts #8012 due to breakage in downstream types
2023-11-13 15:23:16 +08:00
Evan You fc7902982a workflow(playground): prod/dev toggle should apply to runtime behavior as well
Previously, the prod/dev toggle in the SFC playground only affects the
SFC compiation behavior, but not the actual runtime. This can make it
confusing when users are trying to reproduce prod/dev behavior
inconsistency in the runtime code instead of the compiler.
2023-11-12 16:32:08 +08:00
丶远方 176d476712
fix(types): fix `unref` and `toValue` when input union type contains ComputedRef (#8748)
close #8747
close #8857
2023-11-10 16:56:29 +08:00
花果山大圣 73fd810eeb
fix(reactivity): onCleanup also needs to be cleaned (#8655)
close #5151
close #7695
2023-11-10 16:47:08 +08:00
Cong 3227e50b32 fix(compiler-sfc): support `:is` and `:where` selector in scoped css rewrite (#8929) 2023-11-10 16:44:53 +08:00
Cong c6083dcad3
fix(compiler-sfc): support `:is` and `:where` selector in scoped css rewrite (#8929) 2023-11-10 16:44:08 +08:00
auvred 3e08d246df
fix(compiler-sfc): consistently escape type-only prop names (#8654)
close #8635
close #8910
close vitejs/vite-plugin-vue#184
2023-11-10 16:23:47 +08:00
edison 9e1b74bcd5
fix(compiler-sfc): support resolve extends interface for defineEmits (#8470)
close #8465
2023-11-10 16:00:04 +08:00
Evan You 2424013059 fix(types): widen ClassValue type 2023-11-10 15:36:30 +08:00
Anthony Fu 5156ac5b38
fix(ssr): hydration `__vnode` missing for devtools (#9328) 2023-11-10 15:27:16 +08:00
Evan You e15dc05655 chore: remove typeof NULL_DYNAMIC_COMPONENT for type compat with test-utils 2023-11-10 15:26:19 +08:00
zqran f15debc01a
fix(types): return type of withDefaults should be readonly (#8601) 2023-11-10 15:20:02 +08:00
Basil Gor 46e33744c8
fix(types): more precise types for class bindings (#8012) 2023-11-10 15:15:54 +08:00
丶远方 fa65cb6af1
test(shared): add test case for escapeHtmlComment (#8065) 2023-11-10 15:07:24 +08:00
skirtle f01afda159
dx(runtime-core): warn if `this` is used in a `<script setup>` template (#7866) 2023-11-10 15:05:39 +08:00
Evan You 5a41231352 chore: fix formatting + remove duplicated property in jsx type 2023-11-10 15:01:05 +08:00
被雨水过滤的空气-Rain b71a889f52
refactor(compiler-dom): use String's built-in repeat method (#6700) 2023-11-10 14:39:19 +08:00
Yuchao 3445356085
test(apiWatch): better indicate array pre & new values are the same object (#7251) 2023-11-10 14:37:46 +08:00
skirtle a5491e1cdd
dx(runtime-core): warn when the prop type is `[]` (#7608) 2023-11-10 14:32:10 +08:00
bqy_fe 58e2a94871
fix(types): update jsx type definitions (#8607) 2023-11-10 14:30:45 +08:00
Yuchao 17aa92b79b
fix(types): allow falsy value types in `StyleValue` (#7954)
close #7955
2023-11-10 14:23:54 +08:00
Tycho d5fd343555
refactor(compiler-sfc): reuse `forAliasRE` regex from compiler-core (#9568) 2023-11-10 14:22:00 +08:00
Rudy 5d932a8e6d
fix(types): defineCustomElement using defineComponent return type with emits (#7937)
close #7782
2023-11-10 13:52:54 +08:00
Ha Pam 341b5416b2
chore: typo and grammar (#8568) [ci skip]
Co-authored-by: Han <phamvanhan@gmail.com>
2023-11-10 13:42:26 +08:00
Simon Lévesque 7c448000b0
fix(types): fix shallowRef return type with union value type (#7853)
close #7852
2023-11-10 13:40:47 +08:00
Evan You 364f319d21 fix(hydration): force hydration for v-bind with .prop modifier
ref #7490
2023-11-10 13:13:07 +08:00
Evan You 34b5a5da4a fix(hydration): properly hydrate indeterminate prop
close #7476
2023-11-10 12:19:27 +08:00
Rudy 0e1e8f919e
fix(types): fix instance type when props type is incompatible with setup returned type (#7338)
close #5885
2023-11-09 17:40:36 +08:00
657476dcdb
fix(reactivity): clear method on readonly collections should return undefined (#7316) 2023-11-09 17:32:21 +08:00
Nebula 6e0b068e92
chore: add name option for Teleport (#7315) 2023-11-09 17:21:38 +08:00
edison a2d810eb40
fix(compiler-core): avoid rewriting scope variables in inline for loops (#7245)
close #7238
2023-11-09 17:20:54 +08:00
被雨水过滤的空气-Rain d11e978fc9
fix(hmr/transition): fix kept-alive component inside transition disappearing after hmr (#7126)
fix #7121
2023-11-09 17:15:56 +08:00
白雾三语 40f4b77bb5
fix(v-model): avoid overwriting number input with same value (#7004)
close #7003
2023-11-09 15:14:38 +08:00
Carlos Rodrigues 94c049d930
fix(types): remove optional properties from defineProps return type (#6421)
close #6420
2023-11-09 14:52:28 +08:00
丶远方 9d0eba916f
fix(compiler-core): fix `resolveParserPlugins` decorators check (#9566)
close #9560
2023-11-09 14:32:08 +08:00
Evan You bc5846939c release: v3.3.8 2023-11-06 18:54:26 +08:00
Evan You 2f8c769b6b chore: delete unrelated test case 2023-11-06 18:46:40 +08:00
Evan You dd8a0cf5dc fix(hydration): fix tagName access eeror on comment/text node hydration mismatch
fix #9531
2023-11-06 18:45:42 +08:00
Eduardo San Martin Morote 405f34587a
fix(warn): avoid warning on empty children with Suspense (#3962) 2023-11-06 17:48:40 +08:00
edison b39fa1f815
fix(compiler-sfc): fix dynamic directive arguments usage check for slots (#9495)
close #9493
2023-11-06 17:46:48 +08:00
Evan You 462aeb3b60 fix(types): avoid exposing lru-cache types in generated dts
close #9521
2023-11-06 17:36:02 +08:00
renovate[bot] 176d59058c
fix(deps): update dependency @vue/repl to ^2.6.3 (#9540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-03 17:48:58 +08:00
renovate[bot] 5cef325f41
fix(deps): update dependency @vue/repl to ^2.6.2 (#9536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 20:57:38 +08:00
zhiyuanzmj 26399aa6fa
feat(compiler-core): support v-bind shorthand for key and value with the same name (#9451) 2023-11-02 17:48:11 +08:00
Johnson Chu 48b47a1ab6
feat(reactivity): expose last result for computed getter (#9497) 2023-10-31 22:19:40 +08:00
renovate[bot] d261ad73ae
chore(deps): update all non-major dependencies (#9501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 22:07:38 +08:00
木杉 a9893458ec
fix(compile-sfc): support `Error` type in `defineProps` (#5955) 2023-10-30 15:45:58 +08:00
Kaine 72fdafa0cf
types(runtime-dom): update aria-relevant type (#9043) 2023-10-30 15:15:17 +08:00
丶远方 a75d1c5c62
fix(compiler-core): known global should be shadowed by local variables in expression rewrite (#9492)
fix #9482
2023-10-28 15:22:03 +08:00
Evan You 3c828f3cfb release: v3.4.0-alpha.1 2023-10-28 11:33:46 +09:00
Johnson Chu 16e06ca08f
feat(reactivity): more efficient reactivity system (#5912)
fix #311, fix #1811, fix #6018, fix #7160, fix #8714, fix #9149, fix #9419, fix #9464
2023-10-27 23:28:40 +09:00
三咲智子 Kevin Deng feb2f2edce
feat: export runtime error strings (#9301)
These strings are used for automatically generating error references in the documentation and should be considered internal. The code-to-string mapping is **not** part of the public API and can change between non-major versions.

They are also exposed only in dev or the esm-bundler builds.
2023-10-27 23:28:40 +09:00
花果山大圣 f7e80ee4a0
feat(compiler-core): export error message (#8729) 2023-10-27 23:28:40 +09:00
三咲智子 Kevin Deng 9e77580c0c
feat(compiler-sfc): expose resolve type-based props and emits (#8874) 2023-10-27 23:28:40 +09:00
丶远方 a645e7aa51
feat(runtime-core): add `once` option to watch (#9034) 2023-10-27 23:28:40 +09:00
丶远方 f32ec17131
chore: remove unnecessary imports from vitest (#8562) 2023-10-26 16:34:14 +08:00
Evan You 1789c1caac release: v3.3.7 2023-10-25 07:35:08 +08:00
edison e09c26bc9b
fix(compiler-ssr): proper scope analysis for ssr vnode slot fallback (#7184)
close #7095
2023-10-25 01:01:29 +08:00
Carlos Rodrigues 7374e93f02
fix(types): fix ComponentCustomProps augmentation (#9468)
close #8376
2023-10-24 18:42:47 +08:00
edison 5ea8a8a4fa
fix(transition/ssr): make transition appear work with SSR (#8859)
close #6951
2023-10-24 09:36:10 +08:00
Carlos Rodrigues 16ecb44c89
fix(types): improve `h` overload to support union of string and component (#5432)
fix #5431
2023-10-23 23:40:06 +08:00
Evan You 28a6f05bf5 chore: remove internal flag on hmr option 2023-10-22 09:10:43 +08:00
Carlos Rodrigues 00de3e61ed
fix(Suspense): calling hooks before the transition finishes (#9388)
close #5844
close #5952
2023-10-21 21:24:30 +08:00
Evan You 733437691f fix(hmr): fix hmr error for hoisted children array in v-for
fix #6978
close #7114
2023-10-21 21:08:49 +08:00
edison c568778ea3
fix(compiler-sfc): avoid gen useCssVars when targeting SSR (#6979)
close #6926
2023-10-21 12:11:41 +08:00