This repository was archived by the owner on Sep 18, 2020. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +34
-2
lines changed Expand file tree Collapse file tree 2 files changed +34
-2
lines changed Original file line number Diff line number Diff line change @@ -230,8 +230,13 @@ export default class Es5Map extends MuBase {
230
230
// apply changes only after no error was thrown.
231
231
// otherwise we can get an inconsistent map
232
232
if ( changed ) {
233
- this . __value__ . clear ( ) ;
234
- this . __value__ . merge ( newValue ) ;
233
+ if ( config . observable ) {
234
+ this . __value__ . clear ( ) ;
235
+ this . __value__ . merge ( newValue ) ;
236
+ } else {
237
+ this . __value__ = newValue
238
+ }
239
+
235
240
}
236
241
}
237
242
return changed ;
Original file line number Diff line number Diff line change @@ -31,6 +31,33 @@ describe('Es5 Map', function() {
31
31
expect ( ( ) => map . $setManager ( { } ) ) . to . report ( { level : / e r r o r / } ) ;
32
32
} ) ;
33
33
} ) ;
34
+ describe . only ( 'regression with observable=false' , function ( ) {
35
+ before ( function ( ) {
36
+ mu . config . observable = false
37
+ } )
38
+ after ( function ( ) {
39
+ mu . config . observable = true
40
+ } )
41
+
42
+ it ( 'handles set value deep' , function ( ) {
43
+ let map = new ( mu . Es5Map . of ( UserType ) ) ( { } ) ;
44
+ map . set ( '1' , new UserType ( { name :'Amir' } ) )
45
+ map . set ( '2' , new UserType ( { name :'Doron' } ) )
46
+
47
+ map . setValue ( {
48
+ '2' :{
49
+ 'age' :33
50
+ }
51
+ } )
52
+ expect ( map . toJSON ( ) ) . to . eql ( {
53
+ '2' : {
54
+ 'name' : new UserType ( ) . name ,
55
+ 'age' : 33
56
+ }
57
+ } )
58
+
59
+ } )
60
+ } )
34
61
} ) ;
35
62
36
63
require ( './mutable/instance.spec' ) ;
You can’t perform that action at this time.
0 commit comments