src/core/a-register-element.js
function copyProperties (source, destination) {
  var props = Object.getOwnPropertyNames(source);
  props.forEach(function (prop) {
    var desc;
    if (!destination[prop]) {
      desc = Object.getOwnPropertyDescriptor(source, prop);
      destination[prop] = {value: source[prop], writable: desc.writable};
    }
  });
}
function copyProperties (source, destination) {
  var props = Object.getOwnPropertyNames(source);
  props.forEach(function (prop) {
    var desc;
    if (!destination[prop]) {
      desc = Object.getOwnPropertyDescriptor(source, prop);
      destination[prop] = {value: source[prop], writable: desc.writable};
    }
  });
}
function copyProperties ( source , destination ) { var props = Object . getOwnPropertyNames ( source ) ; props . forEach ( function ( prop ) { var desc ; if ( ! destination [ prop ] ) { desc = Object . getOwnPropertyDescriptor ( source , prop ) ; destination [ prop ] = { value : source [ prop ] , writable : desc . writable } ; } } ) ; }
It copies the properties from source to destination object if they don't
exist already.

@param {object} source - The object where properties are copied from.
@param {type} destination - The object where properties are copied to.
It copies the properties from source to destination object if they don t exist already .