ember_debug/adapters/web-extension.js
function deepClone(item) {
  let clone = item;
  if (isArray(item)) {
    clone = new Array(item.length);
    item.forEach((child, key) => {
      clone[key] = deepClone(child);
    });
  } else if (item && typeOf(item) === 'object') {
    clone = {};
    keys(item).forEach(key => {
      clone[key] = deepClone(item[key]);
    });
  }
  return clone;
}
function deepClone(item) {
  let clone = item;
  if (isArray(item)) {
    clone = new Array(item.length);
    item.forEach((child, key) => {
      clone[key] = deepClone(child);
    });
  } else if (item && typeOf(item) === 'object') {
    clone = {};
    keys(item).forEach(key => {
      clone[key] = deepClone(item[key]);
    });
  }
  return clone;
}
function deepClone ( item ) { let clone = item ; if ( isArray ( item ) ) { clone = new Array ( item . length ) ; item . forEach ( ( child , key ) => { clone [ key ] = deepClone ( child ) ; } ) ; } else if ( item && typeOf ( item ) === 'object' ) { clone = { } ; keys ( item ) . forEach ( key => { clone [ key ] = deepClone ( item [ key ] ) ; } ) ; } return clone ; }
Recursively clones all arrays. Needed because Chrome
refuses to clone Ember Arrays when extend prototypes is disabled.

If the item passed is an array, a clone of the array is returned.
If the item is an object or an array, or array properties/items are cloned.

@param {Mixed} item The item to clone
@return {Mixed}
Recursively clones all arrays . Needed because Chrome refuses to clone Ember Arrays when extend prototypes is disabled .