Test case details

Preparation Code

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"> </script> <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script>
var a = {       a: 1,       b: 2,       c: 3     };           var b = {       d: 4,       e: 5,       f: 6     };         function cloneMerge(/* object arguments */) {         var params = {}, i, numArgs, j, numKeys, obj, keys, key;             for (i = 0, numArgs = arguments.length; i < numArgs; i++) {             obj = arguments[i];             keys = Object.keys(obj);                 for (j = 0, numKeys = keys.length; j < numKeys; j++) {                 key = keys[j];                 params[key] = obj[key];             }         }             return params;     };         function cloneMerge2(/* object arguments */) {         var params = {}, i, numArgs, obj;             for (i = 0, numArgs = arguments.length; i < numArgs; i++) {             obj = arguments[i];                         Object.keys(obj).forEach(function (key) {                 params[key] = obj[key];             });         }             return params;     };         function cloneMerge3(/* object arguments */) {         var params = {};             for (i = 0, numArgs = arguments.length; i < numArgs; i++) {             var obj = arguments[i];             var keys = Object.keys(obj);                 for (j = 0, numKeys = keys.length; j < numKeys; j++) {                 var key = keys[j];                 params[key] = obj[key];             }         }             return params;     };

Test cases

Test #1

angular.extend(a, b);

Test #2

_.extend(a, b);

Test #3

cloneMerge(a, b);

Test #4

cloneMerge2(a, b);

Test #5

cloneMerge3(a, b);

Test #6

jQuery.extend(a,b)