Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _.own = function(obj, options) {
- if (!obj || (typeof(obj)!='object')) return obj;
- options || (options = {});
- if (_.isArray(obj)) {
- if (options.share_collection) { _.each(obj, function(value) { _.own(value, {prefer_clone: options.prefer_clone}); }); return obj; }
- else { var a_clone = []; _.each(obj, function(value) { a_clone.push(_.own(value, {prefer_clone: options.prefer_clone})); }); return a_clone; }
- }
- else if (options.properties) {
- if (options.share_collection) { _.each(obj, function(value, key) { _.own(value, {prefer_clone: options.prefer_clone}); }); return obj; }
- else { var o_clone = {}; _.each(obj, function(value, key) { o_clone[key] = _.own(value, {prefer_clone: options.prefer_clone}); }); return o_clone; }
- }
- else if (obj.retain) {
- if (options.prefer_clone && obj.clone) return obj.clone();
- else obj.retain();
- }
- else if (obj.clone) return obj.clone();
- return obj;
- };
- _.disown = function(obj, options) {
- if (!obj || (typeof(obj)!='object')) return obj;
- options || (options = {});
- if (_.isArray(obj)) {
- if (options.clear_values) { _.each(obj, function(value, index) { _.disown(value); obj[index]=null; }); return obj; }
- else {
- _.each(obj, function(value) { _.disown(value); });
- obj.length=0; return obj;
- }
- }
- else if (options.properties) {
- if (options.clear_values) { _.each(obj, function(value, key) { _.disown(value); obj[key]=null; }); return obj; }
- else {
- _.each(obj, function(value) { _.disown(value); });
- for(key in obj) { delete obj[key]; }
- return obj;
- }
- }
- else if (obj.release) obj.release();
- else if (obj.destroy) obj.destroy();
- return obj;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement