first
This commit is contained in:
30
node_modules/core-js/internals/get-json-replacer-function.js
generated
vendored
Normal file
30
node_modules/core-js/internals/get-json-replacer-function.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
var uncurryThis = require('../internals/function-uncurry-this');
|
||||
var isArray = require('../internals/is-array');
|
||||
var isCallable = require('../internals/is-callable');
|
||||
var classof = require('../internals/classof-raw');
|
||||
var toString = require('../internals/to-string');
|
||||
|
||||
var push = uncurryThis([].push);
|
||||
|
||||
module.exports = function (replacer) {
|
||||
if (isCallable(replacer)) return replacer;
|
||||
if (!isArray(replacer)) return;
|
||||
var rawLength = replacer.length;
|
||||
var keys = [];
|
||||
for (var i = 0; i < rawLength; i++) {
|
||||
var element = replacer[i];
|
||||
if (typeof element == 'string') push(keys, element);
|
||||
else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String') push(keys, toString(element));
|
||||
}
|
||||
var keysLength = keys.length;
|
||||
var root = true;
|
||||
return function (key, value) {
|
||||
if (root) {
|
||||
root = false;
|
||||
return value;
|
||||
}
|
||||
if (isArray(this)) return value;
|
||||
for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
|
||||
};
|
||||
};
|
Reference in New Issue
Block a user