Show More
Commit Description:
add model solution
Commit Description:
add model solution
References:
File last commit:
Show/Diff file:
Action:
node_modules/es5-ext/object/create.js
| 43 lines
| 1.0 KiB
| application/javascript
| JavascriptLexer
|
r789 | // 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); | ||||
}; | ||||
})(); | ||||