aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/modules/$.redefine.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/modules/$.redefine.js')
-rw-r--r--node_modules/core-js/modules/$.redefine.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/$.redefine.js b/node_modules/core-js/modules/$.redefine.js
new file mode 100644
index 000000000..1783e3a5f
--- /dev/null
+++ b/node_modules/core-js/modules/$.redefine.js
@@ -0,0 +1,27 @@
+// add fake Function#toString
+// for correct work wrapped methods / constructors with methods like LoDash isNative
+var global = require('./$.global')
+ , hide = require('./$.hide')
+ , SRC = require('./$.uid')('src')
+ , TO_STRING = 'toString'
+ , $toString = Function[TO_STRING]
+ , TPL = ('' + $toString).split(TO_STRING);
+
+require('./$.core').inspectSource = function(it){
+ return $toString.call(it);
+};
+
+(module.exports = function(O, key, val, safe){
+ if(typeof val == 'function'){
+ val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ val.hasOwnProperty('name') || hide(val, 'name', key);
+ }
+ if(O === global){
+ O[key] = val;
+ } else {
+ if(!safe)delete O[key];
+ hide(O, key, val);
+ }
+})(Function.prototype, TO_STRING, function toString(){
+ return typeof this == 'function' && this[SRC] || $toString.call(this);
+}); \ No newline at end of file