docs: function getPropertyDescriptor(target, name) {
          var pd = Object.getOwnPropertyDescriptor(target, name),
              proto = Object.getPrototypeOf(target);
          while (typeof pd === 'undefined' && proto !== null) {
              pd = Object.getOwnPropertyDescriptor(proto, name);
              proto = Object.getPrototypeOf(proto);
          }
          return pd;
      }