From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/core-js/modules/$.set-proto.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 node_modules/core-js/modules/$.set-proto.js (limited to 'node_modules/core-js/modules/$.set-proto.js') diff --git a/node_modules/core-js/modules/$.set-proto.js b/node_modules/core-js/modules/$.set-proto.js new file mode 100644 index 000000000..b1edd681d --- /dev/null +++ b/node_modules/core-js/modules/$.set-proto.js @@ -0,0 +1,26 @@ +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var getDesc = require('./$').getDesc + , isObject = require('./$.is-object') + , anObject = require('./$.an-object'); +var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; \ No newline at end of file -- cgit v1.2.3