code: function clone(value) {
      if (!isObject(value)) {
        return value;
      }
      return isArray(value) ? copyArray(value) : copyObject(value, keys(value));
    }
docs: /*------------------------------------------------------------------------ 
  Creates a shallow clone of `value`.
  
  **Note:** This method is loosely based on the
  [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
  and supports cloning arrays, array buffers, booleans, date objects, maps,
  numbers, `Object` objects, regexes, sets, strings, symbols, and typed
  arrays. The own enumerable properties of `arguments` objects are cloned
  as plain objects. An empty object is returned for uncloneable values such
  as error objects, functions, DOM nodes, and WeakMaps.
  
  @static
  @memberOf _
  @since 0.1.0
  @category Lang
  @param {*} value The value to clone.
  @returns {*} Returns the cloned value.
  @see _.cloneDeep
  @example
  
  var objects = [{ 'a': 1 }, { 'b': 2 }];
  
  var shallow = _.clone(objects);
  console.log(shallow[0] === objects[0]);
  // => true