Spaces:
Runtime error
Runtime error
File size: 1,042 Bytes
b5ea024 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// Workaround for http://code.google.com/p/v8/issues/detail?id=2804
"use strict";
var create = Object.create, shim;
if (!require("./set-prototype-of/is-implemented")()) {
shim = require("./set-prototype-of/shim");
}
module.exports = (function () {
var nullObject, polyProps, desc;
if (!shim) return create;
if (shim.level !== 1) return create;
nullObject = {};
polyProps = {};
desc = { configurable: false, enumerable: false, writable: true, value: undefined };
Object.getOwnPropertyNames(Object.prototype).forEach(function (name) {
if (name === "__proto__") {
polyProps[name] = {
configurable: true,
enumerable: false,
writable: true,
value: undefined
};
return;
}
polyProps[name] = desc;
});
Object.defineProperties(nullObject, polyProps);
Object.defineProperty(shim, "nullPolyfill", {
configurable: false,
enumerable: false,
writable: false,
value: nullObject
});
return function (prototype, props) {
return create(prototype === null ? nullObject : prototype, props);
};
})();
|