File tree 2 files changed +19
-2
lines changed
2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,9 @@ describe('reactivity/collections', () => {
74
74
expect ( dummy ) . toBe ( 3 )
75
75
map . set ( 'key2' , 2 )
76
76
expect ( dummy ) . toBe ( 5 )
77
+ // iteration should track mutation of existing entries (#709)
78
+ map . set ( 'key1' , 4 )
79
+ expect ( dummy ) . toBe ( 6 )
77
80
map . delete ( 'key1' )
78
81
expect ( dummy ) . toBe ( 2 )
79
82
map . clear ( )
@@ -93,6 +96,9 @@ describe('reactivity/collections', () => {
93
96
expect ( dummy ) . toBe ( 3 )
94
97
map . set ( 'key2' , 2 )
95
98
expect ( dummy ) . toBe ( 5 )
99
+ // iteration should track mutation of existing entries (#709)
100
+ map . set ( 'key1' , 4 )
101
+ expect ( dummy ) . toBe ( 6 )
96
102
map . delete ( 'key1' )
97
103
expect ( dummy ) . toBe ( 2 )
98
104
map . clear ( )
@@ -135,6 +141,9 @@ describe('reactivity/collections', () => {
135
141
expect ( dummy ) . toBe ( 3 )
136
142
map . set ( 'key2' , 2 )
137
143
expect ( dummy ) . toBe ( 5 )
144
+ // iteration should track mutation of existing entries (#709)
145
+ map . set ( 'key1' , 4 )
146
+ expect ( dummy ) . toBe ( 6 )
138
147
map . delete ( 'key1' )
139
148
expect ( dummy ) . toBe ( 2 )
140
149
map . clear ( )
@@ -163,6 +172,10 @@ describe('reactivity/collections', () => {
163
172
map . set ( 'key2' , 2 )
164
173
expect ( dummy ) . toBe ( 'key1key2' )
165
174
expect ( dummy2 ) . toBe ( 5 )
175
+ // iteration should track mutation of existing entries (#709)
176
+ map . set ( 'key1' , 4 )
177
+ expect ( dummy ) . toBe ( 'key1key2' )
178
+ expect ( dummy2 ) . toBe ( 6 )
166
179
map . delete ( 'key1' )
167
180
expect ( dummy ) . toBe ( 'key2' )
168
181
expect ( dummy2 ) . toBe ( 2 )
Original file line number Diff line number Diff line change @@ -184,8 +184,12 @@ export function trigger(
184
184
if ( key !== void 0 ) {
185
185
addRunners ( effects , computedRunners , depsMap . get ( key ) )
186
186
}
187
- // also run for iteration key on ADD | DELETE
188
- if ( type === TriggerOpTypes . ADD || type === TriggerOpTypes . DELETE ) {
187
+ // also run for iteration key on ADD | DELETE | Map.SET
188
+ if (
189
+ type === TriggerOpTypes . ADD ||
190
+ type === TriggerOpTypes . DELETE ||
191
+ ( type === TriggerOpTypes . SET && target instanceof Map )
192
+ ) {
189
193
const iterationKey = isArray ( target ) ? 'length' : ITERATE_KEY
190
194
addRunners ( effects , computedRunners , depsMap . get ( iterationKey ) )
191
195
}
You can’t perform that action at this time.
0 commit comments