1 define(['./kindOf', './isPlainObject', '../object/mixIn'], function (kindOf, isPlainObject, mixIn) {
9 return cloneObject(val);
11 return cloneArray(val);
13 return cloneRegExp(val);
15 return cloneDate(val);
21 function cloneObject(source) {
22 if (isPlainObject(source)) {
23 return mixIn({}, source);
29 function cloneRegExp(r) {
31 flags += r.multiline ? 'm' : '';
32 flags += r.global ? 'g' : '';
33 flags += r.ignoreCase ? 'i' : '';
34 return new RegExp(r.source, flags);
37 function cloneDate(date) {
38 return new Date(+date);
41 function cloneArray(arr) {