<div dir="ltr"><div>I'm horrid with proposals, but this seems like a missing hole and I couldn't find a previous mention of it.</div><div><br></div>Looking at the Object support methods it seems that the only thing that doesn't exist is a (simple) way to clone an object and all of its members.<div><br></div><div>Ideally would allow creation of immutable and/or deep/shallow clones of existing Object/Array/RegExp/Date/...</div><div><br></div><div>Basic shim (most likely not perfect):</div><div><br></div><div><div>Object.clone = function(src){</div><div>  if(!src || typeof(src) !== 'object'){</div><div>    return src;</div><div>  }</div><div>  if(src instanceof Date){</div><div>    return new Date(src);</div><div>  }</div><div>  if(src instanceof Array){</div><div>    return src.map((item)=>clone(item));</div><div>  }</div><div>  if(src instanceof RegExp){</div><div>    return new RegExp(src);</div><div>  }</div><div>  var temp = (src.prototype)?Object.create(src.prototype):new src.constructor();</div><div>  Object.keys(src).forEach((key)=>{temp[key] = Object.clone(src[key]);});</div><div>  return temp;</div><div>};</div></div><div><br></div><div>Thoughts?</div><div> - Jeremy</div></div>