]> gerrit.simantics Code Review - simantics/district.git/blob - to-array.js
a954abb26fdffd6bf2bdd7492a7e8e1a9647de22
[simantics/district.git] / to-array.js
1 'use strict';
2
3 var callable = require('./valid-callable')
4   , forEach  = require('./for-each')
5
6   , call = Function.prototype.call
7
8   , defaultCb = function (value, key) { return [key, value]; };
9
10 module.exports = function (obj/*, cb, thisArg, compareFn*/) {
11         var a = [], cb = arguments[1], thisArg = arguments[2];
12         cb = (cb == null) ? defaultCb : callable(cb);
13
14         forEach(obj, function (value, key, obj, index) {
15                 a.push(call.call(cb, thisArg, value, key, this, index));
16         }, obj, arguments[3]);
17         return a;
18 };