RandomIterator.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. Object.defineProperty(exports, "t", {
  3. value: true
  4. });
  5. exports.RandomIterator = void 0;
  6. var _ContainerBase = require("../../ContainerBase");
  7. class RandomIterator extends _ContainerBase.ContainerIterator {
  8. constructor(t, r, e, i, s) {
  9. super(s);
  10. this.I = t;
  11. this.D = r;
  12. this.g = e;
  13. this.m = i;
  14. if (this.iteratorType === 0) {
  15. this.pre = function() {
  16. if (this.I === 0) {
  17. throw new RangeError("Random iterator access denied!");
  18. }
  19. this.I -= 1;
  20. return this;
  21. };
  22. this.next = function() {
  23. if (this.I === this.D()) {
  24. throw new RangeError("Random Iterator access denied!");
  25. }
  26. this.I += 1;
  27. return this;
  28. };
  29. } else {
  30. this.pre = function() {
  31. if (this.I === this.D() - 1) {
  32. throw new RangeError("Random iterator access denied!");
  33. }
  34. this.I += 1;
  35. return this;
  36. };
  37. this.next = function() {
  38. if (this.I === -1) {
  39. throw new RangeError("Random iterator access denied!");
  40. }
  41. this.I -= 1;
  42. return this;
  43. };
  44. }
  45. }
  46. get pointer() {
  47. if (this.I < 0 || this.I > this.D() - 1) {
  48. throw new RangeError;
  49. }
  50. return this.g(this.I);
  51. }
  52. set pointer(t) {
  53. if (this.I < 0 || this.I > this.D() - 1) {
  54. throw new RangeError;
  55. }
  56. this.m(this.I, t);
  57. }
  58. equals(t) {
  59. return this.I === t.I;
  60. }
  61. }
  62. exports.RandomIterator = RandomIterator;