Compiler-Interpreter.deploy.js 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189
  1. smalltalk.addPackage('Compiler-Interpreter', {});
  2. smalltalk.addClass('AIContext', smalltalk.NodeVisitor, ['outerContext', 'pc', 'locals', 'method'], 'Compiler-Interpreter');
  3. smalltalk.addMethod(
  4. "_initializeFromMethodContext_",
  5. smalltalk.method({
  6. selector: "initializeFromMethodContext:",
  7. fn: function (aMethodContext){
  8. var self=this;
  9. return smalltalk.withContext(function($ctx1) { var $1;
  10. _st(self)._pc_(_st(aMethodContext)._pc());
  11. _st(self)._receiver_(_st(aMethodContext)._receiver());
  12. _st(self)._method_(_st(aMethodContext)._method());
  13. $1=_st(aMethodContext)._outerContext();
  14. if(($receiver = $1) == nil || $receiver == undefined){
  15. $1;
  16. } else {
  17. _st(self)._outerContext_(_st(_st(self)._class())._fromMethodContext_(_st(aMethodContext)._outerContext()));
  18. };
  19. _st(_st(aMethodContext)._locals())._keysAndValuesDo_((function(key,value){
  20. return smalltalk.withContext(function($ctx2) { return _st(_st(self)._locals())._at_put_(key,value);
  21. }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
  22. return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext)})}
  23. }),
  24. smalltalk.AIContext);
  25. smalltalk.addMethod(
  26. "_localAt_",
  27. smalltalk.method({
  28. selector: "localAt:",
  29. fn: function (aString){
  30. var self=this;
  31. return smalltalk.withContext(function($ctx1) { var $1;
  32. $1=_st(_st(self)._locals())._at_ifAbsent_(aString,(function(){
  33. return smalltalk.withContext(function($ctx2) { return nil;
  34. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  35. return $1;
  36. }, function($ctx1) {$ctx1.fill(self,"localAt:",{aString:aString}, smalltalk.AIContext)})}
  37. }),
  38. smalltalk.AIContext);
  39. smalltalk.addMethod(
  40. "_localAt_put_",
  41. smalltalk.method({
  42. selector: "localAt:put:",
  43. fn: function (aString,anObject){
  44. var self=this;
  45. return smalltalk.withContext(function($ctx1) { _st(_st(self)._locals())._at_put_(aString,anObject);
  46. return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:",{aString:aString,anObject:anObject}, smalltalk.AIContext)})}
  47. }),
  48. smalltalk.AIContext);
  49. smalltalk.addMethod(
  50. "_locals",
  51. smalltalk.method({
  52. selector: "locals",
  53. fn: function (){
  54. var self=this;
  55. return smalltalk.withContext(function($ctx1) { var $2,$1;
  56. $2=self["@locals"];
  57. if(($receiver = $2) == nil || $receiver == undefined){
  58. self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
  59. $1=self["@locals"];
  60. } else {
  61. $1=$2;
  62. };
  63. return $1;
  64. }, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.AIContext)})}
  65. }),
  66. smalltalk.AIContext);
  67. smalltalk.addMethod(
  68. "_method",
  69. smalltalk.method({
  70. selector: "method",
  71. fn: function (){
  72. var self=this;
  73. return smalltalk.withContext(function($ctx1) { var $1;
  74. $1=self["@method"];
  75. return $1;
  76. }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.AIContext)})}
  77. }),
  78. smalltalk.AIContext);
  79. smalltalk.addMethod(
  80. "_method_",
  81. smalltalk.method({
  82. selector: "method:",
  83. fn: function (aCompiledMethod){
  84. var self=this;
  85. return smalltalk.withContext(function($ctx1) { self["@method"]=aCompiledMethod;
  86. return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.AIContext)})}
  87. }),
  88. smalltalk.AIContext);
  89. smalltalk.addMethod(
  90. "_outerContext",
  91. smalltalk.method({
  92. selector: "outerContext",
  93. fn: function (){
  94. var self=this;
  95. return smalltalk.withContext(function($ctx1) { var $1;
  96. $1=self["@outerContext"];
  97. return $1;
  98. }, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.AIContext)})}
  99. }),
  100. smalltalk.AIContext);
  101. smalltalk.addMethod(
  102. "_outerContext_",
  103. smalltalk.method({
  104. selector: "outerContext:",
  105. fn: function (anAIContext){
  106. var self=this;
  107. return smalltalk.withContext(function($ctx1) { self["@outerContext"]=anAIContext;
  108. return self}, function($ctx1) {$ctx1.fill(self,"outerContext:",{anAIContext:anAIContext}, smalltalk.AIContext)})}
  109. }),
  110. smalltalk.AIContext);
  111. smalltalk.addMethod(
  112. "_pc",
  113. smalltalk.method({
  114. selector: "pc",
  115. fn: function (){
  116. var self=this;
  117. return smalltalk.withContext(function($ctx1) { var $2,$1;
  118. $2=self["@pc"];
  119. if(($receiver = $2) == nil || $receiver == undefined){
  120. self["@pc"]=(0);
  121. $1=self["@pc"];
  122. } else {
  123. $1=$2;
  124. };
  125. return $1;
  126. }, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.AIContext)})}
  127. }),
  128. smalltalk.AIContext);
  129. smalltalk.addMethod(
  130. "_pc_",
  131. smalltalk.method({
  132. selector: "pc:",
  133. fn: function (anInteger){
  134. var self=this;
  135. return smalltalk.withContext(function($ctx1) { self["@pc"]=anInteger;
  136. return self}, function($ctx1) {$ctx1.fill(self,"pc:",{anInteger:anInteger}, smalltalk.AIContext)})}
  137. }),
  138. smalltalk.AIContext);
  139. smalltalk.addMethod(
  140. "_receiver",
  141. smalltalk.method({
  142. selector: "receiver",
  143. fn: function (){
  144. var self=this;
  145. return smalltalk.withContext(function($ctx1) { var $1;
  146. $1=_st(self)._localAt_("self");
  147. return $1;
  148. }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.AIContext)})}
  149. }),
  150. smalltalk.AIContext);
  151. smalltalk.addMethod(
  152. "_receiver_",
  153. smalltalk.method({
  154. selector: "receiver:",
  155. fn: function (anObject){
  156. var self=this;
  157. return smalltalk.withContext(function($ctx1) { _st(self)._localAt_put_("self",anObject);
  158. return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.AIContext)})}
  159. }),
  160. smalltalk.AIContext);
  161. smalltalk.addMethod(
  162. "_selector",
  163. smalltalk.method({
  164. selector: "selector",
  165. fn: function (){
  166. var self=this;
  167. return smalltalk.withContext(function($ctx1) { var $2,$1;
  168. $2=_st(self)._metod();
  169. if(($receiver = $2) == nil || $receiver == undefined){
  170. $1=$2;
  171. } else {
  172. $1=_st(_st(self)._method())._selector();
  173. };
  174. return $1;
  175. }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.AIContext)})}
  176. }),
  177. smalltalk.AIContext);
  178. smalltalk.addMethod(
  179. "_fromMethodContext_",
  180. smalltalk.method({
  181. selector: "fromMethodContext:",
  182. fn: function (aMethodContext){
  183. var self=this;
  184. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  185. $2=_st(self)._new();
  186. _st($2)._initializeFromMethodContext_(aMethodContext);
  187. $3=_st($2)._yourself();
  188. $1=$3;
  189. return $1;
  190. }, function($ctx1) {$ctx1.fill(self,"fromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext.klass)})}
  191. }),
  192. smalltalk.AIContext.klass);
  193. smalltalk.addClass('ASTDebugger', smalltalk.Object, ['interpreter', 'context'], 'Compiler-Interpreter');
  194. smalltalk.addMethod(
  195. "_buildAST",
  196. smalltalk.method({
  197. selector: "buildAST",
  198. fn: function (){
  199. var self=this;
  200. var ast;
  201. return smalltalk.withContext(function($ctx1) { var $1;
  202. ast=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(_st(_st(self)._method())._source());
  203. _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
  204. $1=ast;
  205. return $1;
  206. }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast}, smalltalk.ASTDebugger)})}
  207. }),
  208. smalltalk.ASTDebugger);
  209. smalltalk.addMethod(
  210. "_context_",
  211. smalltalk.method({
  212. selector: "context:",
  213. fn: function (aContext){
  214. var self=this;
  215. return smalltalk.withContext(function($ctx1) { self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
  216. return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext}, smalltalk.ASTDebugger)})}
  217. }),
  218. smalltalk.ASTDebugger);
  219. smalltalk.addMethod(
  220. "_defaultInterpreterClass",
  221. smalltalk.method({
  222. selector: "defaultInterpreterClass",
  223. fn: function (){
  224. var self=this;
  225. return smalltalk.withContext(function($ctx1) { var $1;
  226. $1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
  227. return $1;
  228. }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{}, smalltalk.ASTDebugger)})}
  229. }),
  230. smalltalk.ASTDebugger);
  231. smalltalk.addMethod(
  232. "_initializeInterpreter",
  233. smalltalk.method({
  234. selector: "initializeInterpreter",
  235. fn: function (){
  236. var self=this;
  237. return smalltalk.withContext(function($ctx1) { _st(_st(self)._interpreter())._interpret_(_st(_st(_st(self)._buildAST())._nodes())._first());
  238. return self}, function($ctx1) {$ctx1.fill(self,"initializeInterpreter",{}, smalltalk.ASTDebugger)})}
  239. }),
  240. smalltalk.ASTDebugger);
  241. smalltalk.addMethod(
  242. "_initializeWithContext_",
  243. smalltalk.method({
  244. selector: "initializeWithContext:",
  245. fn: function (aMethodContext){
  246. var self=this;
  247. return smalltalk.withContext(function($ctx1) { _st(self)._context_fromMethodContext_((smalltalk.IAContext || IAContext),aMethodContext);
  248. _st(self)._initializeInterpreter();
  249. return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext}, smalltalk.ASTDebugger)})}
  250. }),
  251. smalltalk.ASTDebugger);
  252. smalltalk.addMethod(
  253. "_interpreter",
  254. smalltalk.method({
  255. selector: "interpreter",
  256. fn: function (){
  257. var self=this;
  258. return smalltalk.withContext(function($ctx1) { var $2,$1;
  259. $2=self["@interpreter"];
  260. if(($receiver = $2) == nil || $receiver == undefined){
  261. self["@interpreter"]=_st(_st(self)._defaultInterpreterClass())._new();
  262. $1=self["@interpreter"];
  263. } else {
  264. $1=$2;
  265. };
  266. return $1;
  267. }, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTDebugger)})}
  268. }),
  269. smalltalk.ASTDebugger);
  270. smalltalk.addMethod(
  271. "_interpreter_",
  272. smalltalk.method({
  273. selector: "interpreter:",
  274. fn: function (anInterpreter){
  275. var self=this;
  276. return smalltalk.withContext(function($ctx1) { self["@interpreter"]=anInterpreter;
  277. return self}, function($ctx1) {$ctx1.fill(self,"interpreter:",{anInterpreter:anInterpreter}, smalltalk.ASTDebugger)})}
  278. }),
  279. smalltalk.ASTDebugger);
  280. smalltalk.addMethod(
  281. "_method",
  282. smalltalk.method({
  283. selector: "method",
  284. fn: function (){
  285. var self=this;
  286. return smalltalk.withContext(function($ctx1) { var $1;
  287. $1=_st(_st(self)._context())._method();
  288. return $1;
  289. }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.ASTDebugger)})}
  290. }),
  291. smalltalk.ASTDebugger);
  292. smalltalk.addMethod(
  293. "_restart",
  294. smalltalk.method({
  295. selector: "restart",
  296. fn: function (){
  297. var self=this;
  298. return smalltalk.withContext(function($ctx1) { _st(self)._shouldBeImplemented();
  299. return self}, function($ctx1) {$ctx1.fill(self,"restart",{}, smalltalk.ASTDebugger)})}
  300. }),
  301. smalltalk.ASTDebugger);
  302. smalltalk.addMethod(
  303. "_resume",
  304. smalltalk.method({
  305. selector: "resume",
  306. fn: function (){
  307. var self=this;
  308. return smalltalk.withContext(function($ctx1) { _st(self)._shouldBeImplemented();
  309. return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.ASTDebugger)})}
  310. }),
  311. smalltalk.ASTDebugger);
  312. smalltalk.addMethod(
  313. "_step",
  314. smalltalk.method({
  315. selector: "step",
  316. fn: function (){
  317. var self=this;
  318. return smalltalk.withContext(function($ctx1) { _st((function(){
  319. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(_st(_st(self)._interpreter())._nextNode())._notNil())._and_((function(){
  320. return smalltalk.withContext(function($ctx3) { return _st(_st(_st(self)._interpreter())._nextNode())._stopOnStepping();
  321. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._or_((function(){
  322. return smalltalk.withContext(function($ctx3) { return _st(_st(_st(self)._interpreter())._atEnd())._not();
  323. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  324. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
  325. return smalltalk.withContext(function($ctx2) { _st(_st(self)._interpreter())._step();
  326. return _st(self)._step();
  327. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  328. return self}, function($ctx1) {$ctx1.fill(self,"step",{}, smalltalk.ASTDebugger)})}
  329. }),
  330. smalltalk.ASTDebugger);
  331. smalltalk.addMethod(
  332. "_stepInto",
  333. smalltalk.method({
  334. selector: "stepInto",
  335. fn: function (){
  336. var self=this;
  337. return smalltalk.withContext(function($ctx1) { _st(self)._shouldBeImplemented();
  338. return self}, function($ctx1) {$ctx1.fill(self,"stepInto",{}, smalltalk.ASTDebugger)})}
  339. }),
  340. smalltalk.ASTDebugger);
  341. smalltalk.addMethod(
  342. "_stepOver",
  343. smalltalk.method({
  344. selector: "stepOver",
  345. fn: function (){
  346. var self=this;
  347. return smalltalk.withContext(function($ctx1) { _st(self)._step();
  348. return self}, function($ctx1) {$ctx1.fill(self,"stepOver",{}, smalltalk.ASTDebugger)})}
  349. }),
  350. smalltalk.ASTDebugger);
  351. smalltalk.addMethod(
  352. "_context_",
  353. smalltalk.method({
  354. selector: "context:",
  355. fn: function (aMethodContext){
  356. var self=this;
  357. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  358. $2=_st(self)._new();
  359. _st($2)._initializeWithContext_(aMethodContext);
  360. $3=_st($2)._yourself();
  361. $1=$3;
  362. return $1;
  363. }, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext}, smalltalk.ASTDebugger.klass)})}
  364. }),
  365. smalltalk.ASTDebugger.klass);
  366. smalltalk.addClass('ASTInterpreter', smalltalk.Object, ['currentNode', 'context', 'shouldReturn', 'result'], 'Compiler-Interpreter');
  367. smalltalk.addMethod(
  368. "_assign_to_",
  369. smalltalk.method({
  370. selector: "assign:to:",
  371. fn: function (aNode,anObject){
  372. var self=this;
  373. return smalltalk.withContext(function($ctx1) { var $2,$1;
  374. $2=_st(_st(aNode)._binding())._isInstanceVar();
  375. if(smalltalk.assert($2)){
  376. $1=_st(_st(_st(self)._context())._receiver())._instVarAt_put_(_st(aNode)._value(),anObject);
  377. } else {
  378. $1=_st(_st(self)._context())._localAt_put_(_st(aNode)._value(),anObject);
  379. };
  380. return $1;
  381. }, function($ctx1) {$ctx1.fill(self,"assign:to:",{aNode:aNode,anObject:anObject}, smalltalk.ASTInterpreter)})}
  382. }),
  383. smalltalk.ASTInterpreter);
  384. smalltalk.addMethod(
  385. "_context",
  386. smalltalk.method({
  387. selector: "context",
  388. fn: function (){
  389. var self=this;
  390. return smalltalk.withContext(function($ctx1) { var $2,$1;
  391. $2=self["@context"];
  392. if(($receiver = $2) == nil || $receiver == undefined){
  393. self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
  394. $1=self["@context"];
  395. } else {
  396. $1=$2;
  397. };
  398. return $1;
  399. }, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.ASTInterpreter)})}
  400. }),
  401. smalltalk.ASTInterpreter);
  402. smalltalk.addMethod(
  403. "_context_",
  404. smalltalk.method({
  405. selector: "context:",
  406. fn: function (anAIContext){
  407. var self=this;
  408. return smalltalk.withContext(function($ctx1) { self["@context"]=anAIContext;
  409. return self}, function($ctx1) {$ctx1.fill(self,"context:",{anAIContext:anAIContext}, smalltalk.ASTInterpreter)})}
  410. }),
  411. smalltalk.ASTInterpreter);
  412. smalltalk.addMethod(
  413. "_continue_value_",
  414. smalltalk.method({
  415. selector: "continue:value:",
  416. fn: function (aBlock,anObject){
  417. var self=this;
  418. return smalltalk.withContext(function($ctx1) { self["@result"]=anObject;
  419. _st(aBlock)._value_(anObject);
  420. return self}, function($ctx1) {$ctx1.fill(self,"continue:value:",{aBlock:aBlock,anObject:anObject}, smalltalk.ASTInterpreter)})}
  421. }),
  422. smalltalk.ASTInterpreter);
  423. smalltalk.addMethod(
  424. "_currentNode",
  425. smalltalk.method({
  426. selector: "currentNode",
  427. fn: function (){
  428. var self=this;
  429. return smalltalk.withContext(function($ctx1) { var $1;
  430. $1=self["@currentNode"];
  431. return $1;
  432. }, function($ctx1) {$ctx1.fill(self,"currentNode",{}, smalltalk.ASTInterpreter)})}
  433. }),
  434. smalltalk.ASTInterpreter);
  435. smalltalk.addMethod(
  436. "_eval_",
  437. smalltalk.method({
  438. selector: "eval:",
  439. fn: function (aString){
  440. var self=this;
  441. var source,function_;
  442. return smalltalk.withContext(function($ctx1) { var $1,$2,$3;
  443. source=_st((smalltalk.String || String))._streamContents_((function(str){
  444. return smalltalk.withContext(function($ctx2) { _st(str)._nextPutAll_("(function(");
  445. _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
  446. return smalltalk.withContext(function($ctx3) { return _st(str)._nextPutAll_(each);
  447. }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
  448. return smalltalk.withContext(function($ctx3) { return _st(str)._nextPutAll_(",");
  449. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  450. $1=str;
  451. _st($1)._nextPutAll_("){ return (function() {");
  452. _st($1)._nextPutAll_(aString);
  453. $2=_st($1)._nextPutAll_("})() })");
  454. return $2;
  455. }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
  456. function_=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(source);
  457. $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
  458. return $3;
  459. }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_}, smalltalk.ASTInterpreter)})}
  460. }),
  461. smalltalk.ASTInterpreter);
  462. smalltalk.addMethod(
  463. "_initialize",
  464. smalltalk.method({
  465. selector: "initialize",
  466. fn: function (){
  467. var self=this;
  468. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  469. self["@shouldReturn"]=false;
  470. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTInterpreter)})}
  471. }),
  472. smalltalk.ASTInterpreter);
  473. smalltalk.addMethod(
  474. "_interpret_",
  475. smalltalk.method({
  476. selector: "interpret:",
  477. fn: function (aNode){
  478. var self=this;
  479. return smalltalk.withContext(function($ctx1) { self["@shouldReturn"]=false;
  480. _st(self)._interpret_continue_(aNode,(function(value){
  481. return smalltalk.withContext(function($ctx2) { self["@result"]=value;
  482. return self["@result"];
  483. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  484. return self}, function($ctx1) {$ctx1.fill(self,"interpret:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
  485. }),
  486. smalltalk.ASTInterpreter);
  487. smalltalk.addMethod(
  488. "_interpret_continue_",
  489. smalltalk.method({
  490. selector: "interpret:continue:",
  491. fn: function (aNode,aBlock){
  492. var self=this;
  493. return smalltalk.withContext(function($ctx1) { var $1,$2,$3;
  494. $1=self["@shouldReturn"];
  495. if(smalltalk.assert($1)){
  496. $2=self;
  497. return $2;
  498. };
  499. $3=_st(aNode)._isNode();
  500. if(smalltalk.assert($3)){
  501. self["@currentNode"]=aNode;
  502. self["@currentNode"];
  503. _st(self)._interpretNode_continue_(aNode,(function(value){
  504. return smalltalk.withContext(function($ctx2) { return _st(self)._continue_value_(aBlock,value);
  505. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  506. } else {
  507. _st(self)._continue_value_(aBlock,aNode);
  508. };
  509. return self}, function($ctx1) {$ctx1.fill(self,"interpret:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  510. }),
  511. smalltalk.ASTInterpreter);
  512. smalltalk.addMethod(
  513. "_interpretAll_continue_",
  514. smalltalk.method({
  515. selector: "interpretAll:continue:",
  516. fn: function (aCollection,aBlock){
  517. var self=this;
  518. return smalltalk.withContext(function($ctx1) { _st(self)._interpretAll_continue_result_(aCollection,aBlock,_st((smalltalk.OrderedCollection || OrderedCollection))._new());
  519. return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  520. }),
  521. smalltalk.ASTInterpreter);
  522. smalltalk.addMethod(
  523. "_interpretAll_continue_result_",
  524. smalltalk.method({
  525. selector: "interpretAll:continue:result:",
  526. fn: function (nodes,aBlock,aCollection){
  527. var self=this;
  528. return smalltalk.withContext(function($ctx1) { var $1;
  529. $1=_st(nodes)._isEmpty();
  530. if(smalltalk.assert($1)){
  531. _st(self)._continue_value_(aBlock,aCollection);
  532. } else {
  533. _st(self)._interpret_continue_(_st(nodes)._first(),(function(value){
  534. return smalltalk.withContext(function($ctx2) { return _st(self)._interpretAll_continue_result_(_st(nodes)._allButFirst(),aBlock,_st(aCollection).__comma([value]));
  535. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  536. };
  537. return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:result:",{nodes:nodes,aBlock:aBlock,aCollection:aCollection}, smalltalk.ASTInterpreter)})}
  538. }),
  539. smalltalk.ASTInterpreter);
  540. smalltalk.addMethod(
  541. "_interpretAssignmentNode_continue_",
  542. smalltalk.method({
  543. selector: "interpretAssignmentNode:continue:",
  544. fn: function (aNode,aBlock){
  545. var self=this;
  546. return smalltalk.withContext(function($ctx1) { _st(self)._interpret_continue_(_st(aNode)._right(),(function(value){
  547. return smalltalk.withContext(function($ctx2) { return _st(self)._continue_value_(aBlock,_st(self)._assign_to_(_st(aNode)._left(),value));
  548. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  549. return self}, function($ctx1) {$ctx1.fill(self,"interpretAssignmentNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  550. }),
  551. smalltalk.ASTInterpreter);
  552. smalltalk.addMethod(
  553. "_interpretBlockNode_continue_",
  554. smalltalk.method({
  555. selector: "interpretBlockNode:continue:",
  556. fn: function (aNode,aBlock){
  557. var self=this;
  558. return smalltalk.withContext(function($ctx1) { var $1,$2;
  559. _st(self)._continue_value_(aBlock,(function(){
  560. return smalltalk.withContext(function($ctx2) { $1=self;
  561. _st($1)._interpret_(_st(_st(aNode)._nodes())._first());
  562. $2=_st($1)._result();
  563. return $2;
  564. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  565. return self}, function($ctx1) {$ctx1.fill(self,"interpretBlockNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  566. }),
  567. smalltalk.ASTInterpreter);
  568. smalltalk.addMethod(
  569. "_interpretBlockSequenceNode_continue_",
  570. smalltalk.method({
  571. selector: "interpretBlockSequenceNode:continue:",
  572. fn: function (aNode,aBlock){
  573. var self=this;
  574. return smalltalk.withContext(function($ctx1) { _st(self)._interpretSequenceNode_continue_(aNode,aBlock);
  575. return self}, function($ctx1) {$ctx1.fill(self,"interpretBlockSequenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  576. }),
  577. smalltalk.ASTInterpreter);
  578. smalltalk.addMethod(
  579. "_interpretCascadeNode_continue_",
  580. smalltalk.method({
  581. selector: "interpretCascadeNode:continue:",
  582. fn: function (aNode,aBlock){
  583. var self=this;
  584. return smalltalk.withContext(function($ctx1) { _st(self)._interpret_continue_(_st(aNode)._receiver(),(function(receiver){
  585. return smalltalk.withContext(function($ctx2) { _st(_st(aNode)._nodes())._do_((function(each){
  586. return smalltalk.withContext(function($ctx3) { return _st(each)._receiver_(receiver);
  587. }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
  588. return _st(self)._interpretAll_continue_(_st(_st(aNode)._nodes())._allButLast(),(function(){
  589. return smalltalk.withContext(function($ctx3) { return _st(self)._interpret_continue_(_st(_st(aNode)._nodes())._last(),(function(val){
  590. return smalltalk.withContext(function($ctx4) { return _st(self)._continue_value_(aBlock,val);
  591. }, function($ctx4) {$ctx4.fillBlock({val:val},$ctx1)})}));
  592. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  593. }, function($ctx2) {$ctx2.fillBlock({receiver:receiver},$ctx1)})}));
  594. return self}, function($ctx1) {$ctx1.fill(self,"interpretCascadeNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  595. }),
  596. smalltalk.ASTInterpreter);
  597. smalltalk.addMethod(
  598. "_interpretClassReferenceNode_continue_",
  599. smalltalk.method({
  600. selector: "interpretClassReferenceNode:continue:",
  601. fn: function (aNode,aBlock){
  602. var self=this;
  603. return smalltalk.withContext(function($ctx1) { _st(self)._continue_value_(aBlock,_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(_st(aNode)._value()));
  604. return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  605. }),
  606. smalltalk.ASTInterpreter);
  607. smalltalk.addMethod(
  608. "_interpretDynamicArrayNode_continue_",
  609. smalltalk.method({
  610. selector: "interpretDynamicArrayNode:continue:",
  611. fn: function (aNode,aBlock){
  612. var self=this;
  613. return smalltalk.withContext(function($ctx1) { _st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
  614. return smalltalk.withContext(function($ctx2) { return _st(self)._continue_value_(aBlock,array);
  615. }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
  616. return self}, function($ctx1) {$ctx1.fill(self,"interpretDynamicArrayNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  617. }),
  618. smalltalk.ASTInterpreter);
  619. smalltalk.addMethod(
  620. "_interpretDynamicDictionaryNode_continue_",
  621. smalltalk.method({
  622. selector: "interpretDynamicDictionaryNode:continue:",
  623. fn: function (aNode,aBlock){
  624. var self=this;
  625. return smalltalk.withContext(function($ctx1) { _st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
  626. var hashedCollection;
  627. return smalltalk.withContext(function($ctx2) { hashedCollection=_st((smalltalk.HashedCollection || HashedCollection))._new();
  628. hashedCollection;
  629. _st(array)._do_((function(each){
  630. return smalltalk.withContext(function($ctx3) { return _st(hashedCollection)._add_(each);
  631. }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
  632. return _st(self)._continue_value_(aBlock,hashedCollection);
  633. }, function($ctx2) {$ctx2.fillBlock({array:array,hashedCollection:hashedCollection},$ctx1)})}));
  634. return self}, function($ctx1) {$ctx1.fill(self,"interpretDynamicDictionaryNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  635. }),
  636. smalltalk.ASTInterpreter);
  637. smalltalk.addMethod(
  638. "_interpretJSStatementNode_continue_",
  639. smalltalk.method({
  640. selector: "interpretJSStatementNode:continue:",
  641. fn: function (aNode,aBlock){
  642. var self=this;
  643. return smalltalk.withContext(function($ctx1) { self["@shouldReturn"]=true;
  644. _st(self)._continue_value_(aBlock,_st(self)._eval_(_st(aNode)._source()));
  645. return self}, function($ctx1) {$ctx1.fill(self,"interpretJSStatementNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  646. }),
  647. smalltalk.ASTInterpreter);
  648. smalltalk.addMethod(
  649. "_interpretMethodNode_continue_",
  650. smalltalk.method({
  651. selector: "interpretMethodNode:continue:",
  652. fn: function (aNode,aBlock){
  653. var self=this;
  654. return smalltalk.withContext(function($ctx1) { _st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
  655. return smalltalk.withContext(function($ctx2) { return _st(self)._continue_value_(aBlock,_st(array)._first());
  656. }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
  657. return self}, function($ctx1) {$ctx1.fill(self,"interpretMethodNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  658. }),
  659. smalltalk.ASTInterpreter);
  660. smalltalk.addMethod(
  661. "_interpretNode_continue_",
  662. smalltalk.method({
  663. selector: "interpretNode:continue:",
  664. fn: function (aNode,aBlock){
  665. var self=this;
  666. return smalltalk.withContext(function($ctx1) { _st(aNode)._interpreter_continue_(self,aBlock);
  667. return self}, function($ctx1) {$ctx1.fill(self,"interpretNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  668. }),
  669. smalltalk.ASTInterpreter);
  670. smalltalk.addMethod(
  671. "_interpretReturnNode_continue_",
  672. smalltalk.method({
  673. selector: "interpretReturnNode:continue:",
  674. fn: function (aNode,aBlock){
  675. var self=this;
  676. return smalltalk.withContext(function($ctx1) { _st(self)._interpret_continue_(_st(_st(aNode)._nodes())._first(),(function(value){
  677. return smalltalk.withContext(function($ctx2) { self["@shouldReturn"]=true;
  678. self["@shouldReturn"];
  679. return _st(self)._continue_value_(aBlock,value);
  680. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  681. return self}, function($ctx1) {$ctx1.fill(self,"interpretReturnNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  682. }),
  683. smalltalk.ASTInterpreter);
  684. smalltalk.addMethod(
  685. "_interpretSendNode_continue_",
  686. smalltalk.method({
  687. selector: "interpretSendNode:continue:",
  688. fn: function (aNode,aBlock){
  689. var self=this;
  690. return smalltalk.withContext(function($ctx1) { _st(self)._interpret_continue_(_st(aNode)._receiver(),(function(receiver){
  691. return smalltalk.withContext(function($ctx2) { return _st(self)._interpretAll_continue_(_st(aNode)._arguments(),(function(args){
  692. return smalltalk.withContext(function($ctx3) { return _st(self)._messageFromSendNode_arguments_do_(aNode,args,(function(message){
  693. return smalltalk.withContext(function($ctx4) { _st(_st(self)._context())._pc_(_st(_st(_st(self)._context())._pc()).__plus((1)));
  694. return _st(self)._continue_value_(aBlock,_st(message)._sendTo_(receiver));
  695. }, function($ctx4) {$ctx4.fillBlock({message:message},$ctx1)})}));
  696. }, function($ctx3) {$ctx3.fillBlock({args:args},$ctx1)})}));
  697. }, function($ctx2) {$ctx2.fillBlock({receiver:receiver},$ctx1)})}));
  698. return self}, function($ctx1) {$ctx1.fill(self,"interpretSendNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  699. }),
  700. smalltalk.ASTInterpreter);
  701. smalltalk.addMethod(
  702. "_interpretSequenceNode_continue_",
  703. smalltalk.method({
  704. selector: "interpretSequenceNode:continue:",
  705. fn: function (aNode,aBlock){
  706. var self=this;
  707. return smalltalk.withContext(function($ctx1) { _st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
  708. return smalltalk.withContext(function($ctx2) { return _st(self)._continue_value_(aBlock,_st(array)._last());
  709. }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
  710. return self}, function($ctx1) {$ctx1.fill(self,"interpretSequenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  711. }),
  712. smalltalk.ASTInterpreter);
  713. smalltalk.addMethod(
  714. "_interpretValueNode_continue_",
  715. smalltalk.method({
  716. selector: "interpretValueNode:continue:",
  717. fn: function (aNode,aBlock){
  718. var self=this;
  719. return smalltalk.withContext(function($ctx1) { _st(self)._continue_value_(aBlock,_st(aNode)._value());
  720. return self}, function($ctx1) {$ctx1.fill(self,"interpretValueNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  721. }),
  722. smalltalk.ASTInterpreter);
  723. smalltalk.addMethod(
  724. "_interpretVariableNode_continue_",
  725. smalltalk.method({
  726. selector: "interpretVariableNode:continue:",
  727. fn: function (aNode,aBlock){
  728. var self=this;
  729. return smalltalk.withContext(function($ctx1) { var $1,$2,$4,$3;
  730. $1=self;
  731. $2=aBlock;
  732. $4=_st(_st(aNode)._binding())._isInstanceVar();
  733. if(smalltalk.assert($4)){
  734. $3=_st(_st(_st(self)._context())._receiver())._instVarAt_(_st(aNode)._value());
  735. } else {
  736. $3=_st(_st(self)._context())._localAt_(_st(aNode)._value());
  737. };
  738. _st($1)._continue_value_($2,$3);
  739. return self}, function($ctx1) {$ctx1.fill(self,"interpretVariableNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  740. }),
  741. smalltalk.ASTInterpreter);
  742. smalltalk.addMethod(
  743. "_messageFromSendNode_arguments_do_",
  744. smalltalk.method({
  745. selector: "messageFromSendNode:arguments:do:",
  746. fn: function (aSendNode,aCollection,aBlock){
  747. var self=this;
  748. return smalltalk.withContext(function($ctx1) { var $1,$2;
  749. $1=_st((smalltalk.Message || Message))._new();
  750. _st($1)._selector_(_st(aSendNode)._selector());
  751. _st($1)._arguments_(aCollection);
  752. $2=_st($1)._yourself();
  753. _st(self)._continue_value_(aBlock,$2);
  754. return self}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:arguments:do:",{aSendNode:aSendNode,aCollection:aCollection,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
  755. }),
  756. smalltalk.ASTInterpreter);
  757. smalltalk.addMethod(
  758. "_result",
  759. smalltalk.method({
  760. selector: "result",
  761. fn: function (){
  762. var self=this;
  763. return smalltalk.withContext(function($ctx1) { var $1;
  764. $1=self["@result"];
  765. return $1;
  766. }, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ASTInterpreter)})}
  767. }),
  768. smalltalk.ASTInterpreter);
  769. smalltalk.addMethod(
  770. "_shouldReturn",
  771. smalltalk.method({
  772. selector: "shouldReturn",
  773. fn: function (){
  774. var self=this;
  775. return smalltalk.withContext(function($ctx1) { var $2,$1;
  776. $2=self["@shouldReturn"];
  777. if(($receiver = $2) == nil || $receiver == undefined){
  778. $1=false;
  779. } else {
  780. $1=$2;
  781. };
  782. return $1;
  783. }, function($ctx1) {$ctx1.fill(self,"shouldReturn",{}, smalltalk.ASTInterpreter)})}
  784. }),
  785. smalltalk.ASTInterpreter);
  786. smalltalk.addClass('ASTSteppingInterpreter', smalltalk.ASTInterpreter, ['continuation', 'nextNode'], 'Compiler-Interpreter');
  787. smalltalk.addMethod(
  788. "_atEnd",
  789. smalltalk.method({
  790. selector: "atEnd",
  791. fn: function (){
  792. var self=this;
  793. return smalltalk.withContext(function($ctx1) { var $1;
  794. $1=_st(_st(self)._shouldReturn())._or_((function(){
  795. return smalltalk.withContext(function($ctx2) { return _st(_st(self)._nextNode()).__eq_eq(_st(self)._currentNode());
  796. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  797. return $1;
  798. }, function($ctx1) {$ctx1.fill(self,"atEnd",{}, smalltalk.ASTSteppingInterpreter)})}
  799. }),
  800. smalltalk.ASTSteppingInterpreter);
  801. smalltalk.addMethod(
  802. "_initialize",
  803. smalltalk.method({
  804. selector: "initialize",
  805. fn: function (){
  806. var self=this;
  807. return smalltalk.withContext(function($ctx1) { smalltalk.ASTInterpreter.fn.prototype._initialize.apply(_st(self), []);
  808. self["@continuation"]=(function(){
  809. return smalltalk.withContext(function($ctx2) { }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
  810. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTSteppingInterpreter)})}
  811. }),
  812. smalltalk.ASTSteppingInterpreter);
  813. smalltalk.addMethod(
  814. "_interpret_continue_",
  815. smalltalk.method({
  816. selector: "interpret:continue:",
  817. fn: function (aNode,aBlock){
  818. var self=this;
  819. return smalltalk.withContext(function($ctx1) { self["@nextNode"]=aNode;
  820. self["@continuation"]=(function(){
  821. return smalltalk.withContext(function($ctx2) { return smalltalk.ASTInterpreter.fn.prototype._interpret_continue_.apply(_st(self), [aNode,aBlock]);
  822. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
  823. return self}, function($ctx1) {$ctx1.fill(self,"interpret:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTSteppingInterpreter)})}
  824. }),
  825. smalltalk.ASTSteppingInterpreter);
  826. smalltalk.addMethod(
  827. "_nextNode",
  828. smalltalk.method({
  829. selector: "nextNode",
  830. fn: function (){
  831. var self=this;
  832. return smalltalk.withContext(function($ctx1) { var $1;
  833. $1=self["@nextNode"];
  834. return $1;
  835. }, function($ctx1) {$ctx1.fill(self,"nextNode",{}, smalltalk.ASTSteppingInterpreter)})}
  836. }),
  837. smalltalk.ASTSteppingInterpreter);
  838. smalltalk.addMethod(
  839. "_step",
  840. smalltalk.method({
  841. selector: "step",
  842. fn: function (){
  843. var self=this;
  844. return smalltalk.withContext(function($ctx1) { _st(self["@continuation"])._value();
  845. return self}, function($ctx1) {$ctx1.fill(self,"step",{}, smalltalk.ASTSteppingInterpreter)})}
  846. }),
  847. smalltalk.ASTSteppingInterpreter);
  848. smalltalk.addMethod(
  849. "_interpreter_continue_",
  850. smalltalk.method({
  851. selector: "interpreter:continue:",
  852. fn: function (anInterpreter,aBlock){
  853. var self=this;
  854. return smalltalk.withContext(function($ctx1) { var $1;
  855. $1=_st(anInterpreter)._interpretNode_continue_(self,aBlock);
  856. return $1;
  857. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.Node)})}
  858. }),
  859. smalltalk.Node);
  860. smalltalk.addMethod(
  861. "_isSteppingNode",
  862. smalltalk.method({
  863. selector: "isSteppingNode",
  864. fn: function (){
  865. var self=this;
  866. return smalltalk.withContext(function($ctx1) { return false;
  867. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.Node)})}
  868. }),
  869. smalltalk.Node);
  870. smalltalk.addMethod(
  871. "_interpreter_continue_",
  872. smalltalk.method({
  873. selector: "interpreter:continue:",
  874. fn: function (anInterpreter,aBlock){
  875. var self=this;
  876. return smalltalk.withContext(function($ctx1) { var $1;
  877. $1=_st(anInterpreter)._interpretAssignmentNode_continue_(self,aBlock);
  878. return $1;
  879. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.AssignmentNode)})}
  880. }),
  881. smalltalk.AssignmentNode);
  882. smalltalk.addMethod(
  883. "_isSteppingNode",
  884. smalltalk.method({
  885. selector: "isSteppingNode",
  886. fn: function (){
  887. var self=this;
  888. return smalltalk.withContext(function($ctx1) { return true;
  889. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.AssignmentNode)})}
  890. }),
  891. smalltalk.AssignmentNode);
  892. smalltalk.addMethod(
  893. "_interpreter_continue_",
  894. smalltalk.method({
  895. selector: "interpreter:continue:",
  896. fn: function (anInterpreter,aBlock){
  897. var self=this;
  898. return smalltalk.withContext(function($ctx1) { var $1;
  899. $1=_st(anInterpreter)._interpretBlockNode_continue_(self,aBlock);
  900. return $1;
  901. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.BlockNode)})}
  902. }),
  903. smalltalk.BlockNode);
  904. smalltalk.addMethod(
  905. "_isSteppingNode",
  906. smalltalk.method({
  907. selector: "isSteppingNode",
  908. fn: function (){
  909. var self=this;
  910. return smalltalk.withContext(function($ctx1) { return true;
  911. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.BlockNode)})}
  912. }),
  913. smalltalk.BlockNode);
  914. smalltalk.addMethod(
  915. "_interpreter_continue_",
  916. smalltalk.method({
  917. selector: "interpreter:continue:",
  918. fn: function (anInterpreter,aBlock){
  919. var self=this;
  920. return smalltalk.withContext(function($ctx1) { var $1;
  921. $1=_st(anInterpreter)._interpretCascadeNode_continue_(self,aBlock);
  922. return $1;
  923. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.CascadeNode)})}
  924. }),
  925. smalltalk.CascadeNode);
  926. smalltalk.addMethod(
  927. "_interpreter_continue_",
  928. smalltalk.method({
  929. selector: "interpreter:continue:",
  930. fn: function (anInterpreter,aBlock){
  931. var self=this;
  932. return smalltalk.withContext(function($ctx1) { var $1;
  933. $1=_st(anInterpreter)._interpretDynamicArrayNode_continue_(self,aBlock);
  934. return $1;
  935. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.DynamicArrayNode)})}
  936. }),
  937. smalltalk.DynamicArrayNode);
  938. smalltalk.addMethod(
  939. "_isSteppingNode",
  940. smalltalk.method({
  941. selector: "isSteppingNode",
  942. fn: function (){
  943. var self=this;
  944. return smalltalk.withContext(function($ctx1) { return true;
  945. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.DynamicArrayNode)})}
  946. }),
  947. smalltalk.DynamicArrayNode);
  948. smalltalk.addMethod(
  949. "_interpreter_continue_",
  950. smalltalk.method({
  951. selector: "interpreter:continue:",
  952. fn: function (anInterpreter,aBlock){
  953. var self=this;
  954. return smalltalk.withContext(function($ctx1) { var $1;
  955. $1=_st(anInterpreter)._interpretDynamicDictionaryNode_continue_(self,aBlock);
  956. return $1;
  957. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.DynamicDictionaryNode)})}
  958. }),
  959. smalltalk.DynamicDictionaryNode);
  960. smalltalk.addMethod(
  961. "_isSteppingNode",
  962. smalltalk.method({
  963. selector: "isSteppingNode",
  964. fn: function (){
  965. var self=this;
  966. return smalltalk.withContext(function($ctx1) { return true;
  967. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.DynamicDictionaryNode)})}
  968. }),
  969. smalltalk.DynamicDictionaryNode);
  970. smalltalk.addMethod(
  971. "_interpreter_continue_",
  972. smalltalk.method({
  973. selector: "interpreter:continue:",
  974. fn: function (anInterpreter,aBlock){
  975. var self=this;
  976. return smalltalk.withContext(function($ctx1) { var $1;
  977. $1=_st(anInterpreter)._interpretJSStatementNode_continue_(self,aBlock);
  978. return $1;
  979. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.JSStatementNode)})}
  980. }),
  981. smalltalk.JSStatementNode);
  982. smalltalk.addMethod(
  983. "_isSteppingNode",
  984. smalltalk.method({
  985. selector: "isSteppingNode",
  986. fn: function (){
  987. var self=this;
  988. return smalltalk.withContext(function($ctx1) { return true;
  989. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.JSStatementNode)})}
  990. }),
  991. smalltalk.JSStatementNode);
  992. smalltalk.addMethod(
  993. "_interpreter_continue_",
  994. smalltalk.method({
  995. selector: "interpreter:continue:",
  996. fn: function (anInterpreter,aBlock){
  997. var self=this;
  998. return smalltalk.withContext(function($ctx1) { var $1;
  999. $1=_st(anInterpreter)._interpretMethodNode_continue_(self,aBlock);
  1000. return $1;
  1001. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.MethodNode)})}
  1002. }),
  1003. smalltalk.MethodNode);
  1004. smalltalk.addMethod(
  1005. "_interpreter_continue_",
  1006. smalltalk.method({
  1007. selector: "interpreter:continue:",
  1008. fn: function (anInterpreter,aBlock){
  1009. var self=this;
  1010. return smalltalk.withContext(function($ctx1) { var $1;
  1011. $1=_st(anInterpreter)._interpretReturnNode_continue_(self,aBlock);
  1012. return $1;
  1013. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ReturnNode)})}
  1014. }),
  1015. smalltalk.ReturnNode);
  1016. smalltalk.addMethod(
  1017. "_interpreter_continue_",
  1018. smalltalk.method({
  1019. selector: "interpreter:continue:",
  1020. fn: function (anInterpreter,aBlock){
  1021. var self=this;
  1022. return smalltalk.withContext(function($ctx1) { var $1;
  1023. $1=_st(anInterpreter)._interpretSendNode_continue_(self,aBlock);
  1024. return $1;
  1025. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.SendNode)})}
  1026. }),
  1027. smalltalk.SendNode);
  1028. smalltalk.addMethod(
  1029. "_isSteppingNode",
  1030. smalltalk.method({
  1031. selector: "isSteppingNode",
  1032. fn: function (){
  1033. var self=this;
  1034. return smalltalk.withContext(function($ctx1) { return true;
  1035. }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.SendNode)})}
  1036. }),
  1037. smalltalk.SendNode);
  1038. smalltalk.addMethod(
  1039. "_interpreter_continue_",
  1040. smalltalk.method({
  1041. selector: "interpreter:continue:",
  1042. fn: function (anInterpreter,aBlock){
  1043. var self=this;
  1044. return smalltalk.withContext(function($ctx1) { var $1;
  1045. $1=_st(anInterpreter)._interpretSequenceNode_continue_(self,aBlock);
  1046. return $1;
  1047. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.SequenceNode)})}
  1048. }),
  1049. smalltalk.SequenceNode);
  1050. smalltalk.addMethod(
  1051. "_interpreter_continue_",
  1052. smalltalk.method({
  1053. selector: "interpreter:continue:",
  1054. fn: function (anInterpreter,aBlock){
  1055. var self=this;
  1056. return smalltalk.withContext(function($ctx1) { var $1;
  1057. $1=_st(anInterpreter)._interpretBlockSequenceNode_continue_(self,aBlock);
  1058. return $1;
  1059. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.BlockSequenceNode)})}
  1060. }),
  1061. smalltalk.BlockSequenceNode);
  1062. smalltalk.addMethod(
  1063. "_interpreter_continue_",
  1064. smalltalk.method({
  1065. selector: "interpreter:continue:",
  1066. fn: function (anInterpreter,aBlock){
  1067. var self=this;
  1068. return smalltalk.withContext(function($ctx1) { var $1;
  1069. $1=_st(anInterpreter)._interpretValueNode_continue_(self,aBlock);
  1070. return $1;
  1071. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ValueNode)})}
  1072. }),
  1073. smalltalk.ValueNode);
  1074. smalltalk.addMethod(
  1075. "_interpreter_continue_",
  1076. smalltalk.method({
  1077. selector: "interpreter:continue:",
  1078. fn: function (anInterpreter,aBlock){
  1079. var self=this;
  1080. return smalltalk.withContext(function($ctx1) { var $1;
  1081. $1=_st(anInterpreter)._interpretVariableNode_continue_(self,aBlock);
  1082. return $1;
  1083. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.VariableNode)})}
  1084. }),
  1085. smalltalk.VariableNode);
  1086. smalltalk.addMethod(
  1087. "_interpreter_continue_",
  1088. smalltalk.method({
  1089. selector: "interpreter:continue:",
  1090. fn: function (anInterpreter,aBlock){
  1091. var self=this;
  1092. return smalltalk.withContext(function($ctx1) { var $1;
  1093. $1=_st(anInterpreter)._interpretClassReferenceNode_continue_(self,aBlock);
  1094. return $1;
  1095. }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ClassReferenceNode)})}
  1096. }),
  1097. smalltalk.ClassReferenceNode);