| 27952 | |
| 27953 | // An internal function for creating assigner functions. |
| 27954 | var createAssigner = function(keysFunc, undefinedOnly) { |
| 27955 | return function(obj) { |
| 27956 | var length = arguments.length; |
| 27957 | if (length < 2 || obj == null) return obj; |
| 27958 | for (var index = 1; index < length; index++) { |
| 27959 | var source = arguments[index], |
| 27960 | keys = keysFunc(source), |
| 27961 | l = keys.length; |
| 27962 | for (var i = 0; i < l; i++) { |
| 27963 | var key = keys[i]; |
| 27964 | if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; |
| 27965 | } |
| 27966 | } |
| 27967 | return obj; |
| 27968 | }; |
| 27969 | }; |
| 27970 | |
| 27971 | // An internal function for creating a new object that inherits from another. |
| 27972 | var baseCreate = function(prototype) { |