@@ -314,6 +314,22 @@ describe('deepcopy', function() {
314
314
assert ( array [ 0 ] . b === copiedArray [ 0 ] . b ) ;
315
315
assert ( array [ 1 ] . a === copiedArray [ 1 ] . a ) ;
316
316
assert ( array [ 1 ] . b === copiedArray [ 1 ] . b ) ;
317
+
318
+ const fn = function ( ) { } ;
319
+
320
+ const functionInObject = [
321
+ { a : fn , b : 'b' } ,
322
+ { c : fn , d : 'd' } ,
323
+ ] ;
324
+
325
+ const copiedFunctionInObject = deepcopy ( functionInObject ) ;
326
+
327
+ assert ( functionInObject !== copiedFunctionInObject ) ;
328
+
329
+ assert ( functionInObject [ 0 ] . a !== copiedFunctionInObject [ 0 ] . a ) ;
330
+ assert ( functionInObject [ 0 ] . b === copiedFunctionInObject [ 0 ] . b ) ;
331
+ assert ( functionInObject [ 1 ] . c !== copiedFunctionInObject [ 1 ] . c ) ;
332
+ assert ( functionInObject [ 1 ] . d === copiedFunctionInObject [ 1 ] . d ) ;
317
333
} ) ;
318
334
319
335
it ( 'can recursively copy from Array in Objct' , function ( ) {
@@ -335,6 +351,38 @@ describe('deepcopy', function() {
335
351
assert ( object . b [ 0 ] === copiedObject . b [ 0 ] ) ;
336
352
assert ( object . a [ 1 ] === copiedObject . a [ 1 ] ) ;
337
353
assert ( object . b [ 1 ] === copiedObject . b [ 1 ] ) ;
354
+
355
+ const fn = function ( ) { } ;
356
+
357
+ const functionInArray = {
358
+ a : [ fn , 1 ] ,
359
+ b : [ fn , 1 ] ,
360
+ } ;
361
+
362
+ const copiedFunctionInArray = deepcopy ( functionInArray ) ;
363
+
364
+ assert ( functionInArray !== copiedFunctionInArray ) ;
365
+
366
+ assert ( functionInArray . a [ 0 ] !== copiedFunctionInArray . a [ 0 ] ) ;
367
+ assert ( functionInArray . a [ 1 ] === copiedFunctionInArray . a [ 1 ] ) ;
368
+ assert ( functionInArray . b [ 0 ] !== copiedFunctionInArray . b [ 0 ] ) ;
369
+ assert ( functionInArray . b [ 1 ] === copiedFunctionInArray . b [ 1 ] ) ;
370
+
371
+ const functionInArrayInArray = {
372
+ a : [
373
+ [ fn , 1 ] ,
374
+ [ fn , 2 ] ,
375
+ ]
376
+ } ;
377
+
378
+ const copiedFunctionInArrayInArray = deepcopy ( functionInArrayInArray ) ;
379
+
380
+ assert ( functionInArrayInArray !== copiedFunctionInArrayInArray ) ;
381
+
382
+ assert ( functionInArrayInArray . a [ 0 ] [ 0 ] !== copiedFunctionInArrayInArray . a [ 0 ] [ 0 ] ) ;
383
+ assert ( functionInArrayInArray . a [ 0 ] [ 1 ] === copiedFunctionInArrayInArray . a [ 0 ] [ 1 ] ) ;
384
+ assert ( functionInArrayInArray . a [ 1 ] [ 0 ] !== copiedFunctionInArrayInArray . a [ 1 ] [ 0 ] ) ;
385
+ assert ( functionInArrayInArray . a [ 1 ] [ 1 ] === copiedFunctionInArrayInArray . a [ 1 ] [ 1 ] ) ;
338
386
} ) ;
339
387
340
388
it ( 'can copy Class from Array and Object by customizer' , function ( ) {
0 commit comments