1
1
import { TrackOpTypes , TriggerOpTypes } from './operations'
2
- import { extend , isArray , isIntegerKey , isMap } from '@vue/shared'
2
+ import { extend , isArray , isIntegerKey , isMap , isSet } from '@vue/shared'
3
3
import { EffectScope , recordEffectScope } from './effectScope'
4
4
import {
5
5
createDep ,
@@ -367,26 +367,19 @@ export function trigger(
367
367
? { target, type, key, newValue, oldValue, oldTarget }
368
368
: undefined
369
369
370
- if ( deps . length === 1 ) {
371
- if ( deps [ 0 ] ) {
372
- if ( __DEV__ ) {
373
- triggerEffects ( deps [ 0 ] , eventInfo )
374
- } else {
375
- triggerEffects ( deps [ 0 ] )
376
- }
370
+ const effects : ReactiveEffect [ ] = [ ]
371
+ for ( const dep of deps ) {
372
+ if ( dep ) {
373
+ effects . push ( ...dep )
377
374
}
375
+ }
376
+ if ( __DEV__ ) {
377
+ triggerEffects (
378
+ effects . length === 1 ? effects : createDep ( effects ) ,
379
+ eventInfo
380
+ )
378
381
} else {
379
- const effects : ReactiveEffect [ ] = [ ]
380
- for ( const dep of deps ) {
381
- if ( dep ) {
382
- effects . push ( ...dep )
383
- }
384
- }
385
- if ( __DEV__ ) {
386
- triggerEffects ( createDep ( effects ) , eventInfo )
387
- } else {
388
- triggerEffects ( createDep ( effects ) )
389
- }
382
+ triggerEffects ( effects . length === 1 ? effects : createDep ( effects ) )
390
383
}
391
384
}
392
385
@@ -395,7 +388,7 @@ export function triggerEffects(
395
388
debuggerEventExtraInfo ?: DebuggerEventExtraInfo
396
389
) {
397
390
// spread into array for stabilization
398
- const effects = isArray ( dep ) ? dep : [ ...dep ]
391
+ const effects : ReactiveEffect [ ] = isSet ( dep ) ? [ ...dep ] : dep
399
392
for ( const effect of effects ) {
400
393
if ( effect . computed ) {
401
394
triggerEffect ( effect , debuggerEventExtraInfo )
0 commit comments