File tree 2 files changed +16
-1
lines changed
2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -66,7 +66,7 @@ exports.clone = function (obj, seen) {
66
66
seen . set ( obj , newObj ) ;
67
67
68
68
if ( cloneDeep ) {
69
- const keys = Object . getOwnPropertyNames ( obj ) ;
69
+ const keys = Reflect . ownKeys ( obj ) ;
70
70
for ( let i = 0 ; i < keys . length ; ++ i ) {
71
71
const key = keys [ i ] ;
72
72
Original file line number Diff line number Diff line change @@ -135,6 +135,21 @@ describe('clone()', () => {
135
135
expect ( a ) . to . equal ( b ) ;
136
136
} ) ;
137
137
138
+ it ( 'clones symbol properties' , ( ) => {
139
+
140
+ const sym1 = Symbol ( 1 ) ;
141
+ const sym2 = Symbol ( 2 ) ;
142
+ const a = { [ sym1 ] : 1 } ;
143
+ Object . defineProperty ( a , sym2 , { value : 2 } ) ;
144
+
145
+ const b = Hoek . clone ( a ) ;
146
+
147
+ expect ( a ) . to . equal ( b ) ;
148
+ expect ( Hoek . deepEqual ( a , b ) ) . to . be . true ( ) ;
149
+ expect ( b [ sym1 ] ) . to . be . equal ( 1 ) ;
150
+ expect ( b [ sym2 ] ) . to . be . equal ( 2 ) ;
151
+ } ) ;
152
+
138
153
it ( 'performs actual copy for shallow keys (no pass by reference)' , ( ) => {
139
154
140
155
const x = Hoek . clone ( nestedObj ) ;
You can’t perform that action at this time.
0 commit comments