Commit Graph

64 Commits

Author SHA1 Message Date
Evan You 05eb4e0fef
Refactor reactivity system to use version counting and doubly-linked list tracking (#10397)
Bug fixes
close #10236
close #10069

PRs made stale by this one
close #10290
close #10354
close #10189
close #9480
2024-02-25 16:51:49 +08:00
renovate[bot] 237cb45319
chore(deps): update lint (#10112)
* chore(deps): update lint

* [autofix.ci] apply automated fixes

---------

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>
2024-01-15 18:15:47 +08:00
三咲智子 Kevin Deng bfe6b459d3
style: update format & lint config (#9162)
Co-authored-by: 丶远方 <yangpanteng@gmail.com>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
Co-authored-by: Guo Xingjun <99574369+Plumbiu@users.noreply.github.com>
2023-12-26 19:39:47 +08:00
ZHAO Jin-Xiang fff7b864f4
feat: use enum to replace const enum (#9261)
close #1228
2023-11-29 12:24:50 +08:00
Evan You 1ea775633d chore: Merge branch 'main' into minor 2023-11-21 09:48:26 +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
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
Carlos Rodrigues 7374e93f02
fix(types): fix ComponentCustomProps augmentation (#9468)
close #8376
2023-10-24 18:42:47 +08:00
Evan You a95e612b25 chore: rename globals allow list
close #8416
2023-05-26 11:07:13 -05:00
丶远方 3798c5480b
chore: remove unnecessary type assertions (#8311) 2023-05-19 07:49:28 +08:00
Evan You 1279b17300 fix(types): remove short syntax support in defineSlots()
ref: https://github.com/vuejs/language-tools/issues/2758
2023-05-08 11:53:49 +08:00
Evan You 94fa67a4f7 fix(hmr): force update cached slots during HMR
close #7155
close #7158
2023-04-20 10:06:06 +08:00
Evan You af563bf428 fix(types): more public type argument order fix 2023-04-06 11:12:49 +08:00
Evan You bdf557f6f2 fix(types): retain type parameters order for public types 2023-04-05 22:30:50 +08:00
三咲智子 Kevin Deng 5a2f5d59cf
feat(types/slots): support slot presence / props type checks via `defineSlots` macro and `slots` option (#7982) 2023-04-03 16:49:16 +08:00
Evan You 4c9bfd2b99 feat(dx): improve readability of displayed types for props 2023-03-24 15:06:43 +08:00
Evan You 58e5c51149 build: upgrade to TypeScript 5.x 2023-03-23 17:11:35 +08:00
Evan You f73925d76a fix(sfc): ensure `<script setup>` binding behavior consistency on `this` between prod and dev
close #6248
2022-11-10 16:02:45 +08:00
Evan You 4c3203b9b7 chore: run prettier 2022-11-08 14:25:48 +08:00
Rudy e4de623ea7
fix(types): support inferring injected properties in options api (#6804)
close #3031
close #5931
2022-11-08 01:09:53 -05:00
webfansplz 41d9c47300
fix(types): `$watch` callback parameters type (#6136)
fix #6135
2022-10-26 05:43:42 -04:00
Evan You 8071ef47b5 fix(types): restore DefineComponent argument order
This is necessary for compatibility w/ tsc-generated component types
using DefineComponent.

revert #5416
reopen #3796
fix #5967
2022-05-21 00:55:51 +08:00
edison 2a9e9a4096
refactor(runtime-core): extract function `isReservedPrefix` (#3265)
* chore(runtime-core): extract function isReservedKey

* chore: improve code

Co-authored-by: Evan You <yyx990803@gmail.com>
2022-05-13 04:52:19 -04:00
Evan You d52907f4eb fix(runtime-core): ensure consistent identity of $forceUpdate and $nextTick instance methods
fix #5556
2022-05-10 14:17:04 +08:00
Zclhlmgqzc 98b821d94a
fix(types): preserve and expose original options on defineComponent return type (#5416)
fix #3796
2022-05-06 05:44:05 -04:00
Evan You f641c4b228 fix(runtime-core): fix use of non-existent-in-prod internal property in defineProperty trap
fix #5710
2022-04-14 10:00:53 +08:00
Thorsten Lünborg 1612971471
fix(compat): copy additional properties for functions bound via globalProperties (#4873)
close #4403
2022-04-13 05:53:07 -04:00
宋铄运 (Alan Song) c6eb3cccce
build: improve treeshakeability (#5682) 2022-04-13 05:39:02 -04:00
lidlanca 1574edd490
fix(runtime-core): allow spying on proxy methods regression (#5417)
fix #5415 (regression by #4216)
2022-02-13 20:40:12 -05:00
Cédric Exbrayat 8457d8b980
fix(runtime-core): allow spying on proxy methods (#4216)
Since Jest v26.6.1, the mock method changed (see this commit 30e8020362)  to rely on `Object.defineProperty` in some cases.

This breaks spying on proxy's methods, because even if Jest is properly calling `Object.defineProperty`, the cached value in the `get` section of the proxy is never updated, and the spy is in fact never used.
This is easily reproducible as vue-next already uses a version of jest with these changes.

This is blocking projects (like vue-test-utils-next and vue-cli) to update to recent Jest versions.

This commit adds a `defineProperty` method to the proxy handler, that properly updates the defined value in the cache.
2022-02-12 03:35:05 -05:00
Evan You 6cfd72e760 refactor: move type utils to shared 2022-01-16 15:47:00 +08:00
Evan You aac0466cb8 fix(runtime-core): fix component public instance has check for accessed non-existent properties
close #4962
2021-11-25 18:15:06 +08:00
ygj6 14fcced281
fix(runtime-core): avoid script setup bindings overwriting reserved ctx properties (#4570) 2021-09-16 11:16:07 -04:00
edison 380608bd44
fix(types): fix forceUpdate type (#4302) 2021-08-11 10:46:18 -04:00
Evan You 8681c12c0c chore: rename method to make it more explicit it is dev only 2021-07-27 17:52:37 -04:00
Evan You dd1439e711 build: reduce runtime build size 2021-07-21 11:11:40 -04:00
Evan You 47f488350c chore: run updated prettier 2021-07-19 18:24:18 -04:00
Austin Keener 12cf9f4ea1
fix(runtime-core): fix instance accessed via $parent chain when using expose() (#4048) 2021-07-02 07:51:54 -04:00
Evan You b0203a3092 feat(expose): always expose $ instance properties on child refs 2021-06-24 21:28:09 -04:00
Evan You 0b8b576428 fix(sfc): allow variables that start with _ or $ in `<script setup>` 2021-06-23 10:13:23 -04:00
Evan You 056ef2a7d2 refactor: use markRaw instead of internal flag check 2021-06-11 18:46:31 -04:00
Evan You 1e35a860b9 refactor: adjust component options merge cache strategy
BREAKING CHANGE: optionMergeStrategies functions no longer receive
the component instance as the 3rd argument. The argument was technically
internal in Vue 2 and only used for generating warnings, and should not
be needed in userland code. This removal enables much more efficient
caching of option merging.
2021-06-02 10:42:52 -04:00
Evan You 6f8fe4eac9 wip: more compat tweaks 2021-04-22 17:30:54 -04:00
Evan You 62bfdae043 wip: Vue.util compat 2021-04-11 16:53:43 -04:00
Evan You 53b8127a9c wip: progress 2021-04-07 16:19:24 -04:00
Evan You 40e3dd28e1 wip: restructure compat code + global api alignment 2021-04-07 16:19:24 -04:00
Evan You e2d6ff845b wip: root mount api compat 2021-04-07 16:19:24 -04:00
HcySunYang 2b588cf1bc
fix(types): unwrap refs on public instance data (#3319)
fix #3315
2021-03-25 17:30:10 -04:00
HcySunYang 6e88156934
fix(runtime-core): should not cache property access during data() invocation (#3299)
fix #3297
2021-03-25 15:48:12 -04:00
Evan You aea88c3280 refactor: fix implementation of SFC :slotted id handling
fix #2892
2021-03-05 18:28:12 -05:00