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
20732366b9
perf: optimize position cloning
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
1b4efc30c3
wip: should parse sfc template with lang=html
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
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
59e38f18d8
wip: parseMode
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
1ea775633d
chore: Merge branch 'main' into minor
2023-11-21 09:48:26 +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
Tycho
d5fd343555
refactor(compiler-sfc): reuse `forAliasRE` regex from compiler-core ( #9568 )
2023-11-10 14:22:00 +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
Evan You
364f319d21
fix(hydration): force hydration for v-bind with .prop modifier
...
ref #7490
2023-11-10 13:13:07 +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
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
丶远方
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
花果山大圣
f7e80ee4a0
feat(compiler-core): export error message ( #8729 )
2023-10-27 23:28:40 +09: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
Evan You
28a6f05bf5
chore: remove internal flag on hmr option
2023-10-22 09:10:43 +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
丶远方
712f96d6ac
perf: replace Map/Set with WeakMap/WeakSet ( #8549 )
2023-10-20 17:11:52 +08:00
Evan You
ae7453f0f1
chore: use moduleResolution: bundler + shim estree-walker
2023-06-23 08:54:25 +08:00
Evan You
a95e612b25
chore: rename globals allow list
...
close #8416
2023-05-26 11:07:13 -05:00
Evan You
8dc8cf852b
fix(compiler-core): treat floating point numbers as constants
...
close #8295
2023-05-12 10:53:40 +01:00
Evan You
b434d12bf6
fix(compiler-core): handle slot argument parsing edge case
...
ref https://github.com/vuejs/language-tools/issues/2710
2023-04-27 16:55:37 +08:00
Evan You
bbd8301a13
feat(deprecation): deprecate v-is directive
2023-04-21 15:30:26 +08:00
Evan You
5f0394a5ab
feat(deprecation): deprecate @vnode hooks in favor of vue: prefix
2023-04-21 15:20:12 +08:00
Evan You
0f77a2b1d1
fix(compiler): fix expression codegen for literal const bindings in non-inline mode
2023-04-18 11:39:53 +08:00
Evan You
8aa4ea81d6
feat(compiler-sfc): support relative imported types in macros
2023-04-15 22:08:39 +08:00
Evan You
d0ac57872c
refactor(compiler-sfc): extract more defineProps logic
2023-04-11 16:05:00 +08:00
Evan You
19e17a951c
perf(compiler): use source-map-js
2023-04-09 16:50:20 +08:00
Evan You
05f94cf7b0
fix(compiler-ssr): disable v-once transform in ssr vdom fallback branch
...
fix #7644
2023-04-05 11:10:21 +08:00
Evan You
6bda4b6688
fix(compiler-core): fix codegen for literal const in non-inline mode
2023-03-30 15:19:27 +08:00
Evan You
ba9c2ae247
feat(compiler-sfc): enable reactive props destructure by default and deprecate withDefaults() ( #7986 )
2023-03-30 11:58:16 +08:00
三咲智子 Kevin Deng
77686cf476
fix(compiler-core): check if expression is constant ( #7974 )
...
close #7973
2023-03-29 09:02:16 +08:00
三咲智子 Kevin Deng
0002567728
feat(compiler-sfc): support module string names syntax ( #7428 )
...
https://github.com/tc39/ecma262/pull/2154
2023-03-28 16:28:06 +08:00
三咲智子 Kevin Deng
1b69d5f2f4
fix(compiler-sfc): unwrap TS node for defineProps ( #7340 )
2023-03-28 15:22:01 +08:00
三咲智子 Kevin Deng
7def8b15b8
feat(complier-sfc): hoist literal constants for script ( #5752 )
...
- Support using literal constants in macros
- fix useCssVars insert position edge case
- fix non-literal-const enum hoisting
close #5750
2023-03-28 11:34:29 +08:00
Evan You
58e5c51149
build: upgrade to TypeScript 5.x
2023-03-23 17:11:35 +08:00
Evan You
aac163110f
refactor: remove circular dependencies in compiler
2023-03-23 16:30:42 +08:00
Evan You
e22b5c510d
chore: remove hanging slash from import
2023-02-03 04:31:17 +08:00
Evan You
124373db50
wip: isolatedModules + use rollup-plugin-esbuild
2023-02-03 04:30:19 +08:00
Anthony Fu
4a16b204be
chore: run format
2023-01-12 12:58:11 +01:00
三咲智子 Kevin Deng
87c72ae49a
fix(v-model): ensure v-model listener casing is consistent with manual v-on listener ( #7067 )
...
fix #7066
2022-11-14 02:21:29 -05:00
Cédric Exbrayat
b46ba6e2ad
chore(compiler-core): missing space in v-slot mixed usage error message ( #7076 )
2022-11-14 02:06:24 -05:00
Samuel Rigaud
378386694b
fix(compiler-core): typeof should be allowed in browser expression validation ( #7037 )
2022-11-14 01:50:35 -05:00
三咲智子 Kevin Deng
9060bf0353
refactor(compiler-core): make ast.helpers a Set ( #6774 )
2022-11-13 20:44:02 -05:00
Evan You
15e889afaf
fix(v-model): fix incorrect codegen for non-ref bindings
...
fix #6241
2022-11-10 15:32:58 +08:00
Evan You
001184e6bb
fix(compiler/v-model): catch incorrect v-model usage on prop bindings
...
close #5584
2022-11-10 10:42:27 +08:00
白雾三语
2c27556fe5
fix(compiler): avoid namespace collisions when transforming template refs in inline mode ( #6975 )
...
fix #6964
2022-11-08 22:22:29 -05:00
白雾三语
5bfe438ef3
fix(compiler-core/v-on): only apply case preservation on native elements ( #6902 )
...
fix #6900
2022-11-08 21:58:22 -05:00
Evan You
dd3354c4c7
fix(compiler-core): fix parsing error on comments between v-if in prod
...
close #6843
2022-11-08 23:35:35 +08:00
Rudy
48876182db
fix(compiler-core): keep whitespaces between interpolation and comment ( #6828 )
...
fix #6352
2022-11-08 09:50:43 -05:00
Travis
bcfe480d75
fix(compiler-core/v-on): support inline handler with return type annotation ( #6769 )
...
fix #6378
2022-11-07 22:09:15 -05:00
被雨水过滤的空气(Rairn)
640cfce4ff
fix(compiler-core): avoid duplicate keys in codegen with `v-if` ( #6689 )
...
fix #6641
2022-11-07 22:04:31 -05:00
Evan You
09bb3e996e
fix(compiler-ssr): fix invalid codegen when v-slot name is explicit empty attr ( #3326 )
...
squashed from fix by @tjk
2022-10-26 16:18:19 +08:00
世新
82e3f2dc30
chore: symbols as helperNameMap index type ( #6622 )
2022-10-06 05:26:16 +08:00
Anthony Fu
534593cfa8
chore: format
2022-10-03 15:30:43 +08:00
Evan You
f402d416b8
refactor(compiler-core): extract props merging helper
2022-09-28 10:59:13 +08:00
Dunqing
f9d43b99f8
fix(compilre-core): dynamic v-on and static v-on should be merged ( #6747 )
...
fix #6742
2022-09-27 22:46:55 -04:00
Evan You
03820193a8
fix(ssr): fix pre tag windows newline hydration mismatch
...
fix #6410
2022-09-28 08:45:32 +08:00
Evan You
fc5bdb36ed
fix(runtime-core): avoid hoisted vnodes retaining detached DOM nodes
...
fix #6591
2022-09-27 16:20:52 +08:00
Evan You
00036bb52c
fix(slots): ensure different branches of dynamic slots have different keys
...
fix #6202
2022-08-30 15:55:09 +08:00
Evan You
0739f8909a
fix(custom-element): fix event listeners with capital letter event names on custom elements
...
close https://github.com/vuejs/docs/issues/1708
close https://github.com/vuejs/docs/pull/1890
2022-08-30 14:07:35 +08:00
Travis
7fbc933f4d
fix(compiler-core): fix svg with directives being incorrectly hoisted ( #5919 )
...
fix #5289
2022-05-22 21:40:53 -04:00
Evan You
516bc548fc
fix(compiler-ssr): fix wrong attrs fallthrough on non-single-root v-if branches
...
fix #5140
2022-05-19 11:21:17 +08:00
Evan You
415091b0ee
fix(compiler-core): should generate HYDRATE_EVENTS flag on dynamic component that resolves to element
...
fix #5870
2022-05-17 16:39:48 +08:00
阿崔cxr
e85e0a7f3a
chore: use ast node creation helper ( #5255 )
2022-05-13 04:37:50 -04:00
edison
242914d938
fix(reactivity-transform): fix props access codegen for non-identifier prop names ( #5436 )
...
fix #5425
2022-05-12 22:38:46 -04:00
Evan You
6283b2ec41
fix(compiler-dom): properly stringify v-html/v-text with constant value
...
fix #5439
close #5445
2022-05-13 08:57:43 +08:00
Evan You
0f00cf43cf
fix(compiler-core): normalize v-bind:style with array literal value
...
fix #5106
2022-05-12 16:31:16 +08:00
edison
cd395559ce
chore(compiler-core): use aliasHelper ( #3592 )
2022-05-11 20:40:05 -04:00
Evan You
51f3d386de
fix(compiler-core): template v-if should never be treated as dev root fragment
...
close #5189
2022-05-11 17:43:20 +08:00
Evan You
410144149f
fix(compiler-sfc): defineProps return binding or rest binding should be considered reactive
2022-05-10 17:34:15 +08:00
Evan You
ce34d9114e
chore: remove v3.vuejs.org references
2022-02-07 13:13:26 +08:00
Evan You
60cf175d88
feat(ssr): support custom directive getSSRProps in optimized compilation
...
close #5304
2022-02-04 08:58:31 +08:00
btea
63210fe41a
refactor: includes instead of indexOf ( #5117 )
2022-01-21 02:36:48 -05:00
edison
9f55e6fbb1
fix(compiler-core): handle v-memo in template v-for ( #5291 )
...
fix #5288
2022-01-21 01:54:46 -05:00
Yugang Cao
e603fd258c
chore: fix typo ( #5261 ) [ci skip]
2022-01-21 01:18:34 -05:00
Evan You
ae4b0783d7
chore: update repo references
2022-01-18 16:43:59 +08:00
Forzen FIsh
57a09331b2
chore: fix some typos ( #5050 ) [ci skip]
2021-12-11 20:58:46 -05:00
Evan You
41c18effea
feat: support ref in v-for, remove compat deprecation warnings
2021-12-10 23:49:01 +08:00
Evan You
4b0ca8709a
feat(compiler-core): support aliasing vue: prefixed events to inline vnode hooks
2021-12-10 16:09:23 +08:00
Evan You
1c9a4810fc
fix(compiler): force block for custom dirs and inline beforeUpdate hooks
...
to ensure they are called before children updates
2021-12-10 15:36:10 +08:00
Forzen FIsh
095fe269cb
chore: remove redundant variable declaration ( #5053 )
2021-12-05 23:10:58 -05:00
Evan You
29beda7c6f
fix(compiler-dom): avoid bailing stringification on setup const bindings
2021-12-06 11:53:02 +08:00
btea
e1ee3c4fe8
refactor(compiler-core): refactor isComponentTag method ( #4934 )
2021-11-14 21:39:13 -05:00
Che Guevara
e772108922
chore: break compat mode v-for/v-if precedence check loop early ( #4773 )
2021-10-09 17:12:34 -04:00
Che Guevara
6bcb7a5ea3
chore: remove deprecated usage of String.prototype.substr ( #4699 )
2021-10-08 12:31:34 -04:00
Evan You
646e694f0a
chore: remove babelParserDefaultPlugins
...
The version of @babel/parser we are using now has these plugins enabled by default.
2021-10-07 19:33:06 -04:00
Evan You
467e113b95
feat(compiler-sfc): `<script setup>` defineProps destructure transform ( #4690 )
2021-09-27 14:24:21 -04:00
Herrington Darkholme
7aa0ea06c8
fix(compiler-core): should treat attribute key as expression ( #4658 )
2021-09-25 14:21:09 -04:00
Evan You
7b7e28ad6a
test: fix utils test
2021-09-24 12:34:31 -04:00
Evan You
fc85ad28ae
fix(build): avoid importing @babel/parser in esm-bundler build
...
fix #4665
2021-09-23 23:20:53 -04:00
Evan You
8e05b7f9fc
fix(ssr): fix ssr runtime helper import in module mode
2021-09-23 10:08:28 -04:00
Evan You
d74f21a42c
fix(compiler-ssr): import ssr helpers from updated path
2021-09-22 23:28:20 -04:00
Evan You
6257adeaac
fix(compiler-core): more robust member expression check in Node
2021-09-22 17:16:21 -04:00
Evan You
686d0149b6
fix(compiler-core): generate TS-cast safe assignment code for v-model
...
fix #4655
2021-09-22 16:55:06 -04:00
Ziwen Mei
1873f0f48c
chore(compiler-core): fix typo in transformElement ( #4649 ) [ci skip]
2021-09-22 10:12:52 -04:00
Ziwen Mei
bf267b1ce3
chore(compiler-core): fix typo in errors.ts and options.ts ( #4650 ) [ci skip]
2021-09-22 10:12:33 -04:00
Ziwen Mei
56be30b5c7
chore(compiler-core): fix typo in hoistStatic ( #4625 ) [ci skip]
2021-09-21 13:06:39 -04:00
就是喜欢陈粒
5addef8ecd
fix(compiler-core): add check when v-else-if is behind v-else ( #4603 )
2021-09-21 12:59:38 -04:00
Herrington Darkholme
d8a36d0198
fix(compiler-core): only merge true handlers ( #4577 )
2021-09-21 12:37:51 -04:00
Herrington Darkholme
044812525f
fix(compiler-core): dedupe renderSlot's default props ( #4557 )
2021-09-21 12:31:27 -04:00
Evan You
d23fde3d3b
fix(compiler-core): more robust member expression check when running in node
...
fix #4640
2021-09-21 12:19:27 -04:00
Evan You
0dc521b9e1
fix(compiler-core): support ts syntax in expressions when isTS is true
2021-09-20 11:51:01 -04:00
Evan You
cb2d7c0e3c
fix(compiler-core): ensure hoisted scopeId code can be treeshaken
2021-09-19 17:14:26 -04:00
lidlanca
fc968d607b
fix(compiler-core): v-on inline async function expression handler ( #4569 )
...
fix #4568
2021-09-16 12:36:04 -04:00
ygj6
f29d061124
fix(compiler): fix template ref codegen for setup-maybe-ref binding types ( #4549 )
...
fix #4546
2021-09-16 11:33:16 -04:00
Roy Eden
b8653d390a
fix(compiler): condense whitespaces in static class attributes ( #4432 )
...
fix #4251
2021-09-07 12:01:17 -04:00
Herrington Darkholme
5d262e08d5
fix(compiler-core): pick last char when dynamic directive doesn't close ( #4507 )
2021-09-07 11:36:37 -04:00
Herrington Darkholme
1c4f0f0afd
chore: fix typo in jsdoc ( #4526 ) [ci skip]
2021-09-07 11:31:27 -04:00
Evan You
1045590d4b
fix(compiler-core): avoid runtime dependency on @babel/types
...
fix #4531
2021-09-07 09:54:49 -04:00