@@ -38,13 +38,18 @@ function deepFreezeAndThrowOnMutationInDev(object: Object) {
38
38
return ;
39
39
}
40
40
41
- var keys = Object . keys ( object ) ;
41
+ const keys = Object . keys ( object ) ;
42
+ const hasOwnProperty = Object . prototype . hasOwnProperty ;
42
43
43
44
for ( var i = 0 ; i < keys . length ; i ++ ) {
44
45
var key = keys [ i ] ;
45
- if ( object . hasOwnProperty ( key ) ) {
46
- object . __defineGetter__ ( key , identity . bind ( null , object [ key ] ) ) ;
47
- object . __defineSetter__ ( key , throwOnImmutableMutation . bind ( null , key ) ) ;
46
+ if ( hasOwnProperty . call ( object , key ) ) {
47
+ Object . defineProperty ( object , key , {
48
+ get : identity . bind ( null , object [ key ] ) ,
49
+ } ) ;
50
+ Object . defineProperty ( object , key , {
51
+ set : throwOnImmutableMutation . bind ( null , key ) ,
52
+ } ) ;
48
53
}
49
54
}
50
55
@@ -53,7 +58,7 @@ function deepFreezeAndThrowOnMutationInDev(object: Object) {
53
58
54
59
for ( var i = 0 ; i < keys . length ; i ++ ) {
55
60
var key = keys [ i ] ;
56
- if ( object . hasOwnProperty ( key ) ) {
61
+ if ( hasOwnProperty . call ( object , key ) ) {
57
62
deepFreezeAndThrowOnMutationInDev ( object [ key ] ) ;
58
63
}
59
64
}
0 commit comments