Blame view

node_modules/es5-ext/object/to-array.js 573 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  "use strict";
  
  var callable  = require("./valid-callable")
    , isValue   = require("./is-value")
    , 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 = isValue(cb) ? callable(cb) : defaultCb;
  
  	forEach(
  		obj,
  		function (value, key, targetObj, index) {
  			a.push(call.call(cb, thisArg, value, key, this, index));
  		},
  		obj,
  		arguments[3]
  	);
  	return a;
  };