17 lines
750 B
JavaScript
17 lines
750 B
JavaScript
|
// JavaScript 1.6 / Strawman array statics shim
|
||
|
var $ = require('./$')
|
||
|
, $export = require('./$.export')
|
||
|
, $ctx = require('./$.ctx')
|
||
|
, $Array = require('./$.core').Array || Array
|
||
|
, statics = {};
|
||
|
var setStatics = function(keys, length){
|
||
|
$.each.call(keys.split(','), function(key){
|
||
|
if(length == undefined && key in $Array)statics[key] = $Array[key];
|
||
|
else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
|
||
|
});
|
||
|
};
|
||
|
setStatics('pop,reverse,shift,keys,values,entries', 1);
|
||
|
setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
|
||
|
setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
|
||
|
'reduce,reduceRight,copyWithin,fill');
|
||
|
$export($export.S, 'Array', statics);
|