00001 var LazyWrapper = require('./_LazyWrapper'),
00002 LodashWrapper = require('./_LodashWrapper'),
00003 baseLodash = require('./_baseLodash'),
00004 isArray = require('./isArray'),
00005 isObjectLike = require('./isObjectLike'),
00006 wrapperClone = require('./_wrapperClone');
00007
00009 var objectProto = Object.prototype;
00010
00012 var hasOwnProperty = objectProto.hasOwnProperty;
00013
00131 function lodash(value) {
00132 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
00133 if (value instanceof LodashWrapper) {
00134 return value;
00135 }
00136 if (hasOwnProperty.call(value, '__wrapped__')) {
00137 return wrapperClone(value);
00138 }
00139 }
00140 return new LodashWrapper(value);
00141 }
00142
00143
00144 lodash.prototype = baseLodash.prototype;
00145 lodash.prototype.constructor = lodash;
00146
00147 module.exports = lodash;