function wrapAEntityMethods (obj) {
  var newObj = {};
  var ANodeMethods = [
    'attachedCallback',
    'attributeChangedCallback',
    'createdCallback',
    'detachedCallback'
  ];
  var AEntityMethods = [
    'attachedCallback',
    'attributeChangedCallback',
    'createdCallback',
    'detachedCallback'
  ];

  wrapMethods(newObj, ANodeMethods, obj, ANode.prototype);
  wrapMethods(newObj, AEntityMethods, obj, AEntity.prototype);
  // Copies the remaining properties into the new object.
  copyProperties(obj, newObj);
  return newObj;
}
function wrapAEntityMethods (obj) {
  var newObj = {};
  var ANodeMethods = [
    'attachedCallback',
    'attributeChangedCallback',
    'createdCallback',
    'detachedCallback'
  ];
  var AEntityMethods = [
    'attachedCallback',
    'attributeChangedCallback',
    'createdCallback',
    'detachedCallback'
  ];

  wrapMethods(newObj, ANodeMethods, obj, ANode.prototype);
  wrapMethods(newObj, AEntityMethods, obj, AEntity.prototype);
  // Copies the remaining properties into the new object.
  copyProperties(obj, newObj);
  return newObj;
}
function wrapAEntityMethods ( obj ) { var newObj = { } ; var ANodeMethods = [ 'attachedCallback' , 'attributeChangedCallback' , 'createdCallback' , 'detachedCallback' ] ; var AEntityMethods = [ 'attachedCallback' , 'attributeChangedCallback' , 'createdCallback' , 'detachedCallback' ] ; wrapMethods ( newObj , ANodeMethods , obj , ANode . prototype ) ; wrapMethods ( newObj , AEntityMethods , obj , AEntity . prototype ) ; // Copies the remaining properties into the new object. copyProperties ( obj , newObj ) ; return newObj ; }
This wraps some of the obj methods to call those on `AEntity` base prototype.

@param {object} obj - The objects that contains the methods that will be wrapped.
@return {object} - An object with the same properties as the input parameter but
with some of methods wrapped.
This wraps some of the obj methods to call those on AEntity base prototype .
ANode and AEntity methods are wrapped in a new object.