| /** |
| * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/> |
| * Build: `lodash modularize exports="node" -o ./compat/` |
| * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> |
| * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE> |
| * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors |
| * Available under MIT license <http://lodash.com/license> |
| */ |
| var isNative = require('./isNative'), |
| isObject = require('../objects/isObject'), |
| noop = require('../utilities/noop'); |
| |
| /* Native method shortcuts for methods with the same name as other `lodash` methods */ |
| var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate; |
| |
| /** |
| * The base implementation of `_.create` without support for assigning |
| * properties to the created object. |
| * |
| * @private |
| * @param {Object} prototype The object to inherit from. |
| * @returns {Object} Returns the new object. |
| */ |
| function baseCreate(prototype, properties) { |
| return isObject(prototype) ? nativeCreate(prototype) : {}; |
| } |
| // fallback for browsers without `Object.create` |
| if (!nativeCreate) { |
| baseCreate = (function() { |
| function Object() {} |
| return function(prototype) { |
| if (isObject(prototype)) { |
| Object.prototype = prototype; |
| var result = new Object; |
| Object.prototype = null; |
| } |
| return result || global.Object(); |
| }; |
| }()); |
| } |
| |
| module.exports = baseCreate; |