Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

es.reflect.set.js 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var $ = require('../internals/export');
  2. var anObject = require('../internals/an-object');
  3. var isObject = require('../internals/is-object');
  4. var has = require('../internals/has');
  5. var fails = require('../internals/fails');
  6. var definePropertyModule = require('../internals/object-define-property');
  7. var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
  8. var getPrototypeOf = require('../internals/object-get-prototype-of');
  9. var createPropertyDescriptor = require('../internals/create-property-descriptor');
  10. // `Reflect.set` method
  11. // https://tc39.es/ecma262/#sec-reflect.set
  12. function set(target, propertyKey, V /* , receiver */) {
  13. var receiver = arguments.length < 4 ? target : arguments[3];
  14. var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
  15. var existingDescriptor, prototype;
  16. if (!ownDescriptor) {
  17. if (isObject(prototype = getPrototypeOf(target))) {
  18. return set(prototype, propertyKey, V, receiver);
  19. }
  20. ownDescriptor = createPropertyDescriptor(0);
  21. }
  22. if (has(ownDescriptor, 'value')) {
  23. if (ownDescriptor.writable === false || !isObject(receiver)) return false;
  24. if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {
  25. if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
  26. existingDescriptor.value = V;
  27. definePropertyModule.f(receiver, propertyKey, existingDescriptor);
  28. } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));
  29. return true;
  30. }
  31. return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);
  32. }
  33. // MS Edge 17-18 Reflect.set allows setting the property to object
  34. // with non-writable property on the prototype
  35. var MS_EDGE_BUG = fails(function () {
  36. var Constructor = function () { /* empty */ };
  37. var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });
  38. // eslint-disable-next-line es/no-reflect -- required for testing
  39. return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;
  40. });
  41. $({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {
  42. set: set
  43. });