object-getter-setter-shorthand.js 809 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. load("test-common.js")
  2. try {
  3. let o = {
  4. get() { return 5; },
  5. set() { return 10; },
  6. };
  7. assert(o.get() === 5);
  8. assert(o.set() === 10);
  9. o = {
  10. get x() { return 5; },
  11. set x(_) { },
  12. };
  13. assert(o.x === 5);
  14. o.x = 10;
  15. assert(o.x === 5);
  16. o = {
  17. get x() {
  18. return this._x + 1;
  19. },
  20. set x(value) {
  21. this._x = value + 1;
  22. },
  23. };
  24. assert(isNaN(o.x));
  25. o.x = 10;
  26. assert(o.x === 12);
  27. o.x = 20;
  28. assert(o.x === 22);
  29. o = {
  30. get x() { return 5; },
  31. get x() { return 10; },
  32. };
  33. assert(o.x === 10);
  34. o = {
  35. set x(value) { return 10; },
  36. };
  37. assert((o.x = 20) === 20);
  38. console.log("PASS");
  39. } catch (e) {
  40. console.log("FAIL: " + e);
  41. }