_isFlattenable.js
 1  var Symbol = require('./_Symbol'),
 2      isArguments = require('./isArguments'),
 3      isArray = require('./isArray');
 4  
 5  /** Built-in value references. */
 6  var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
 7  
 8  /**
 9   * Checks if `value` is a flattenable `arguments` object or array.
10   *
11   * @private
12   * @param {*} value The value to check.
13   * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
14   */
15  function isFlattenable(value) {
16    return isArray(value) || isArguments(value) ||
17      !!(spreadableSymbol && value && value[spreadableSymbol]);
18  }
19  
20  module.exports = isFlattenable;