2
0

pointer.js 643 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <rtl code>
  2. var m = function (){
  3. function T(){
  4. this.p = null;
  5. this.i = 0;
  6. }
  7. function T2(){
  8. this.p = null;
  9. }
  10. function Forward(){
  11. }
  12. var p = null;
  13. var r = new T();
  14. var r2 = null;
  15. var pf = null;
  16. function anonymous$1(){
  17. }
  18. var pAnonymous = null;
  19. function passByRef(p/*VAR PT*/){
  20. p.get().i = 0;
  21. passByRef(p);
  22. passByRef(RTL$.makeRef(p.get(), "p"));
  23. }
  24. function derefAndAssign(){
  25. p = new T();
  26. RTL$.copy(r, p, {record: {p: null, i: null}});
  27. }
  28. r.p = new T();
  29. r.p.p = new T();
  30. r.p.i = 123;
  31. r2 = new T2();
  32. r2.p = new T();
  33. pf = new Forward();
  34. pAnonymous = new anonymous$1();
  35. passByRef({set: function($v){p = $v;}, get: function(){return p;}});
  36. }();