src/reflection.js
function getAllPropertyDescriptors(object) {
  if (object === Object.prototype) {
    return {};
  } else {
    let prototype = getPrototypeOf(object);
    return assign(getAllPropertyDescriptors(prototype), getOwnPropertyDescriptors(object));
  }
}
function getAllPropertyDescriptors(object) {
  if (object === Object.prototype) {
    return {};
  } else {
    let prototype = getPrototypeOf(object);
    return assign(getAllPropertyDescriptors(prototype), getOwnPropertyDescriptors(object));
  }
}
function getAllPropertyDescriptors ( object ) { if ( object === Object . prototype ) { return { } ; } else { let prototype = getPrototypeOf ( object ) ; return assign ( getAllPropertyDescriptors ( prototype ) , getOwnPropertyDescriptors ( object ) ) ; } }
As opposed to `getOwnPropertyDescriptors` which only gets the
descriptors on a single object, `getAllPropertydescriptors` walks
the entire prototype chain starting at `prototype` and gather all
descriptors that are accessible to this object.
As opposed to getOwnPropertyDescriptors which only gets the descriptors on a single object getAllPropertydescriptors walks the entire prototype chain starting at prototype and gather all descriptors that are accessible to this object .