@@ -69,7 +69,7 @@ export default class OptimizelyUserContext {
6969 options : OptimizelyDecideOptions [ ] = [ ]
7070 ) : OptimizelyDecision {
7171
72- return this . optimizely . decide ( this , key , options ) ;
72+ return this . optimizely . decide ( this . cloneUserContext ( ) , key , options ) ;
7373 }
7474
7575 /**
@@ -85,7 +85,7 @@ export default class OptimizelyUserContext {
8585 options : OptimizelyDecideOptions [ ] = [ ] ,
8686 ) : { [ key : string ] : OptimizelyDecision } {
8787
88- return this . optimizely . decideForKeys ( this , keys , options ) ;
88+ return this . optimizely . decideForKeys ( this . cloneUserContext ( ) , keys , options ) ;
8989 }
9090
9191 /**
@@ -97,7 +97,7 @@ export default class OptimizelyUserContext {
9797 options : OptimizelyDecideOptions [ ] = [ ]
9898 ) : { [ key : string ] : OptimizelyDecision } {
9999
100- return this . optimizely . decideAll ( this , options ) ;
100+ return this . optimizely . decideAll ( this . cloneUserContext ( ) , options ) ;
101101 }
102102
103103 /**
@@ -108,4 +108,12 @@ export default class OptimizelyUserContext {
108108 trackEvent ( eventName : string , eventTags ?: EventTags ) : void {
109109 this . optimizely . track ( eventName , this . userId , this . attributes , eventTags ) ;
110110 }
111+
112+ private cloneUserContext ( ) : OptimizelyUserContext {
113+ return new OptimizelyUserContext ( {
114+ optimizely : this . getOptimizely ( ) ,
115+ userId : this . getUserId ( ) ,
116+ attributes : this . getAttributes ( ) ,
117+ } )
118+ }
111119}
0 commit comments