| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | // 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);	};}());
 |