@@ -314,6 +314,22 @@ describe('deepcopy', function() {
314314 assert ( array [ 0 ] . b === copiedArray [ 0 ] . b ) ;
315315 assert ( array [ 1 ] . a === copiedArray [ 1 ] . a ) ;
316316 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 ) ;
317333 } ) ;
318334
319335 it ( 'can recursively copy from Array in Objct' , function ( ) {
@@ -335,6 +351,38 @@ describe('deepcopy', function() {
335351 assert ( object . b [ 0 ] === copiedObject . b [ 0 ] ) ;
336352 assert ( object . a [ 1 ] === copiedObject . a [ 1 ] ) ;
337353 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 ] ) ;
338386 } ) ;
339387
340388 it ( 'can copy Class from Array and Object by customizer' , function ( ) {
0 commit comments