'use strict';

var _arrayPush = require('./_arrayPush.js');
var _getPrototype = require('./_getPrototype.js');
var _getSymbols = require('./_getSymbols.js');
var stubArray = require('./stubArray.js');

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;

/**
 * Creates an array of the own and inherited enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */
var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
  var result = [];
  while (object) {
    _arrayPush(result, _getSymbols(object));
    object = _getPrototype(object);
  }
  return result;
};

module.exports = getSymbolsIn;
