summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/to-array.js
blob: a954abb26fdffd6bf2bdd7492a7e8e1a9647de22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'use strict';

var callable = require('./valid-callable')
  , forEach  = require('./for-each')

  , call = Function.prototype.call

  , defaultCb = function (value, key) { return [key, value]; };

module.exports = function (obj/*, cb, thisArg, compareFn*/) {
	var a = [], cb = arguments[1], thisArg = arguments[2];
	cb = (cb == null) ? defaultCb : callable(cb);

	forEach(obj, function (value, key, obj, index) {
		a.push(call.call(cb, thisArg, value, key, this, index));
	}, obj, arguments[3]);
	return a;
};