docs: function copy(obj, deep) {
      // fast paths
      if ('object' !== typeof obj || obj === null) {
        return obj; // can't copy primitives
      }
  
      if (_emberRuntimeMixinsCopyable.default && _emberRuntimeMixinsCopyable.default.detect(obj)) {
        return obj.copy(deep);
      }
  
      return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
    }