vso_os_1091425_1.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. (function addAccessorPropertiesToGlobal() {
  6. var getter = function () { throw new Error("This getter should not get called"); };
  7. var setter = function () { throw new Error("This setter should not get called"); };
  8. Object.defineProperty(this, "foo", {
  9. get: getter,
  10. set: setter,
  11. configurable: true
  12. });
  13. Object.defineProperty(this, "bar", {
  14. get: getter,
  15. set: setter,
  16. configurable: true
  17. });
  18. Object.defineProperty(this, "nonConfigurableFoo", {
  19. get: getter,
  20. set: setter,
  21. configurable: false
  22. });
  23. Object.defineProperty(this, "nonConfigurableBar", {
  24. get: getter,
  25. set: setter,
  26. configurable: false
  27. });
  28. // double check that the property is added as expected according to spec
  29. var d = Object.getOwnPropertyDescriptor(this, "foo");
  30. assertPropertyExists(d, 'get', getter);
  31. assertPropertyExists(d, 'set', setter);
  32. assertPropertyExists(d, 'configurable', true);
  33. assertPropertyExists(d, 'enumerable', false);
  34. assertPropertyDoesNotExist(d, 'writable');
  35. assertPropertyDoesNotExist(d, 'value');
  36. d = Object.getOwnPropertyDescriptor(this, "bar");
  37. assertPropertyExists(d, 'get', getter);
  38. assertPropertyExists(d, 'set', setter);
  39. assertPropertyExists(d, 'configurable', true);
  40. assertPropertyExists(d, 'enumerable', false);
  41. assertPropertyDoesNotExist(d, 'writable');
  42. assertPropertyDoesNotExist(d, 'value');
  43. var d = Object.getOwnPropertyDescriptor(this, "nonConfigurableFoo");
  44. assertPropertyExists(d, 'get', getter);
  45. assertPropertyExists(d, 'set', setter);
  46. assertPropertyExists(d, 'configurable', false);
  47. assertPropertyExists(d, 'enumerable', false);
  48. assertPropertyDoesNotExist(d, 'writable');
  49. assertPropertyDoesNotExist(d, 'value');
  50. var d = Object.getOwnPropertyDescriptor(this, "nonConfigurableBar");
  51. assertPropertyExists(d, 'get', getter);
  52. assertPropertyExists(d, 'set', setter);
  53. assertPropertyExists(d, 'configurable', false);
  54. assertPropertyExists(d, 'enumerable', false);
  55. assertPropertyDoesNotExist(d, 'writable');
  56. assertPropertyDoesNotExist(d, 'value');
  57. }).call(this);