Test case details

Preparation Code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
var a = [{       test: 'bye'     }, 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i', 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i', 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i'];     var b = [];
    if (b.length !== a.length) {       throw {         message: "Test failed! b.length !== a.length"       };     }     b[0].test = 'hi';     if (a[0].test === 'hi') {       //  throw {message: "Not a deep clone"};     }     for (var i = 1, l = a.length; i < l; i++) {       if (b[i] !== a[i]) {         throw {           message: "Test failed! b array is " + b         };       }     }

Test cases

Test #1

b = a.slice();

Test #2

b = [].concat(a);

Test #3

b = []; for (var i = a.length; i--;) {   b.unshift(a[i]); }

Test #4

b = []; for (var i = 0, l = a.length; i < l; i++) {   b.push(a[i]); }

Test #5

b = []; for (var i = 0, l = a.length; i < l; i++) {   b[i] = a[i]; }

Test #6

var i = a.length; b = []; while (i--) {   b[i] = a[i]; }

Test #7

b = a.slice(0);

Test #8

b = a.concat()

Test #9

b = Array.apply(undefined, a);

Test #10

b = new Array(a.length); for (var i = 0, l = a.length; i < l; i++) {   b[i] = a[i]; }