Trapped-Common.deploy.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. smalltalk.addPackage('Trapped-Common', {});
  2. smalltalk.addClass('TrappedDispatcher', smalltalk.Object, [], 'Trapped-Common');
  3. smalltalk.addMethod(
  4. "_changed_",
  5. smalltalk.method({
  6. selector: "changed:",
  7. fn: function (path){
  8. var self=this;
  9. var $1;
  10. var needsToRun;
  11. needsToRun=false;
  12. smalltalk.send(self,"_do_",[(function(each){
  13. var aPath;
  14. var lesser;
  15. aPath=smalltalk.send(each,"_second",[]);
  16. aPath;
  17. lesser=smalltalk.send(smalltalk.send(aPath,"_size",[]),"_min_",[smalltalk.send(path,"_size",[])]);
  18. lesser;
  19. $1=smalltalk.send(smalltalk.send(path,"_copyFrom_to_",[(1),lesser]),"__eq",[smalltalk.send(aPath,"_copyFrom_to_",[(1),lesser])]);
  20. if(smalltalk.assert($1)){
  21. smalltalk.send(each,"_at_put_",[(1),true]);
  22. needsToRun=true;
  23. return needsToRun;
  24. };
  25. })]);
  26. smalltalk.send(self,"_dirty_",[needsToRun]);
  27. return self}
  28. }),
  29. smalltalk.TrappedDispatcher);
  30. smalltalk.addMethod(
  31. "_dirty_",
  32. smalltalk.method({
  33. selector: "dirty:",
  34. fn: function (aBoolean){
  35. var self=this;
  36. if(smalltalk.assert(aBoolean)){
  37. smalltalk.send((function(){
  38. return smalltalk.send(self,"_run",[]);
  39. }),"_fork",[]);
  40. };
  41. return self}
  42. }),
  43. smalltalk.TrappedDispatcher);
  44. smalltalk.addMethod(
  45. "_run",
  46. smalltalk.method({
  47. selector: "run",
  48. fn: function (){
  49. var self=this;
  50. var $1;
  51. smalltalk.send(self,"_do_",[(function(each){
  52. $1=smalltalk.send(each,"_first",[]);
  53. if(smalltalk.assert($1)){
  54. return smalltalk.send((function(){
  55. return smalltalk.send(smalltalk.send(each,"_third",[]),"_value",[]);
  56. }),"_ensure_",[(function(){
  57. return smalltalk.send(each,"_at_put_",[(1),false]);
  58. })]);
  59. };
  60. })]);
  61. return self}
  62. }),
  63. smalltalk.TrappedDispatcher);
  64. smalltalk.addClass('TrappedModelWrapper', smalltalk.Object, ['dispatcher', 'payload'], 'Trapped-Common');
  65. smalltalk.addMethod(
  66. "_dispatcher",
  67. smalltalk.method({
  68. selector: "dispatcher",
  69. fn: function (){
  70. var self=this;
  71. return self["@dispatcher"];
  72. }
  73. }),
  74. smalltalk.TrappedModelWrapper);
  75. smalltalk.addMethod(
  76. "_dispatcher_",
  77. smalltalk.method({
  78. selector: "dispatcher:",
  79. fn: function (aDispatcher){
  80. var self=this;
  81. self["@dispatcher"]=aDispatcher;
  82. return self}
  83. }),
  84. smalltalk.TrappedModelWrapper);
  85. smalltalk.addMethod(
  86. "_name",
  87. smalltalk.method({
  88. selector: "name",
  89. fn: function (){
  90. var self=this;
  91. var $1;
  92. $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
  93. return $1;
  94. }
  95. }),
  96. smalltalk.TrappedModelWrapper);
  97. smalltalk.addMethod(
  98. "_payload",
  99. smalltalk.method({
  100. selector: "payload",
  101. fn: function (){
  102. var self=this;
  103. return self["@payload"];
  104. }
  105. }),
  106. smalltalk.TrappedModelWrapper);
  107. smalltalk.addMethod(
  108. "_payload_",
  109. smalltalk.method({
  110. selector: "payload:",
  111. fn: function (anObject){
  112. var self=this;
  113. self["@payload"]=anObject;
  114. return self}
  115. }),
  116. smalltalk.TrappedModelWrapper);
  117. smalltalk.addMethod(
  118. "_start",
  119. smalltalk.method({
  120. selector: "start",
  121. fn: function (){
  122. var self=this;
  123. smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
  124. return self}
  125. }),
  126. smalltalk.TrappedModelWrapper);
  127. smalltalk.addMethod(
  128. "_watch_do_",
  129. smalltalk.method({
  130. selector: "watch:do:",
  131. fn: function (path,aBlock){
  132. var self=this;
  133. smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_add_",[[true,path,(function(){
  134. return smalltalk.send(self,"_read_do_",[path,aBlock]);
  135. })]]);
  136. smalltalk.send((function(){
  137. return smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_run",[]);
  138. }),"_fork",[]);
  139. return self}
  140. }),
  141. smalltalk.TrappedModelWrapper);
  142. smalltalk.addMethod(
  143. "_start",
  144. smalltalk.method({
  145. selector: "start",
  146. fn: function (){
  147. var self=this;
  148. smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
  149. return self}
  150. }),
  151. smalltalk.TrappedModelWrapper.klass);