proc.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. var RTL$ = {
  2. extend: function extend(methods){
  3. function Type(){
  4. for(var m in methods)
  5. this[m] = methods[m];
  6. }
  7. Type.prototype = this.prototype;
  8. var result = methods.init;
  9. result.prototype = new Type(); // inherit this.prototype
  10. result.prototype.constructor = result; // to see constructor name in diagnostic
  11. result.extend = extend;
  12. return result;
  13. }
  14. };
  15. var m = function (){
  16. var i = 0;
  17. var byte = 0;
  18. function p1(arg1/*INTEGER*/){
  19. var T1 = RTL$.extend({
  20. init: function T1(){
  21. this.field1 = 0;
  22. }
  23. });
  24. var T2 = T1.extend({
  25. init: function T2(){
  26. T1.prototype.init.call(this);
  27. this.field2 = false;
  28. }
  29. });
  30. var i = 0;var j = 0;
  31. var b = false;
  32. var t1 = new T1();
  33. var t2 = new T2();
  34. i = arg1 + 1 | 0;
  35. t1.field1 = i;
  36. t2.field1 = t1.field1;
  37. b = true;
  38. t2.field2 = b;
  39. }
  40. function p2(){
  41. p1(123);
  42. }
  43. function p3(i/*INTEGER*/){
  44. p1(123);
  45. p2();
  46. p2();
  47. return 123;
  48. }
  49. function p4(){
  50. return p3(123) + p3(p3(123)) | 0;
  51. }
  52. function p5(){
  53. return p5;
  54. }
  55. function emptyBegin(){
  56. }
  57. function emptyBeginWithReturn(){
  58. return 0;
  59. }
  60. function withByteArgument(b/*BYTE*/){
  61. }
  62. function withByteResult(){
  63. return 0;
  64. }
  65. function withByteResult2(b/*BYTE*/){
  66. return b;
  67. }
  68. function withByteResult3(b/*VAR BYTE*/){
  69. return b.get();
  70. }
  71. function withByteResult4(){
  72. var b = 0;
  73. b = 0 & 0xFF;
  74. return b;
  75. }
  76. byte = withByteResult();
  77. i = withByteResult();
  78. withByteArgument(byte);
  79. byte = withByteResult2(byte);
  80. byte = withByteResult2(i & 0xFF);
  81. byte = withByteResult3({set: function($v){byte = $v;}, get: function(){return byte;}});
  82. }();