Kernel-Classes.deploy.js 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270
  1. smalltalk.addPackage('Kernel-Classes', {});
  2. smalltalk.addClass('Behavior', smalltalk.Object, [], 'Kernel-Classes');
  3. smalltalk.addMethod(
  4. "_addCompiledMethod_",
  5. smalltalk.method({
  6. selector: "addCompiledMethod:",
  7. fn: function (aMethod){
  8. var self=this;
  9. return smalltalk.withContext(function($ctx1) { var $1,$2;
  10. _st(self)._basicAddCompiledMethod_(aMethod);
  11. $1=_st((smalltalk.MethodAdded || MethodAdded))._new();
  12. _st($1)._theClass_(self);
  13. _st($1)._method_(aMethod);
  14. $2=_st($1)._yourself();
  15. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  16. return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
  17. }),
  18. smalltalk.Behavior);
  19. smalltalk.addMethod(
  20. "_allInstanceVariableNames",
  21. smalltalk.method({
  22. selector: "allInstanceVariableNames",
  23. fn: function (){
  24. var self=this;
  25. var result;
  26. return smalltalk.withContext(function($ctx1) { var $1,$2;
  27. result=_st(_st(self)._instanceVariableNames())._copy();
  28. $1=_st(self)._superclass();
  29. if(($receiver = $1) == nil || $receiver == undefined){
  30. $1;
  31. } else {
  32. _st(result)._addAll_(_st(_st(self)._superclass())._allInstanceVariableNames());
  33. };
  34. $2=result;
  35. return $2;
  36. }, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames", [], {result:result}, smalltalk.Behavior)})}
  37. }),
  38. smalltalk.Behavior);
  39. smalltalk.addMethod(
  40. "_allSubclasses",
  41. smalltalk.method({
  42. selector: "allSubclasses",
  43. fn: function (){
  44. var self=this;
  45. var result;
  46. return smalltalk.withContext(function($ctx1) { var $1;
  47. result=_st(self)._subclasses();
  48. _st(_st(self)._subclasses())._do_((function(each){
  49. return smalltalk.withContext(function($ctx2) { return _st(result)._addAll_(_st(each)._allSubclasses());
  50. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  51. $1=result;
  52. return $1;
  53. }, function($ctx1) {$ctx1.fill(self,"allSubclasses", [], {result:result}, smalltalk.Behavior)})}
  54. }),
  55. smalltalk.Behavior);
  56. smalltalk.addMethod(
  57. "_allSuperclasses",
  58. smalltalk.method({
  59. selector: "allSuperclasses",
  60. fn: function (){
  61. var self=this;
  62. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$2;
  63. $1=_st(self)._superclass();
  64. if(($receiver = $1) == nil || $receiver == undefined){
  65. return [];
  66. } else {
  67. $1;
  68. };
  69. $3=_st((smalltalk.OrderedCollection || OrderedCollection))._with_(_st(self)._superclass());
  70. _st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
  71. $4=_st($3)._yourself();
  72. $2=$4;
  73. return $2;
  74. }, function($ctx1) {$ctx1.fill(self,"allSuperclasses", [], {}, smalltalk.Behavior)})}
  75. }),
  76. smalltalk.Behavior);
  77. smalltalk.addMethod(
  78. "_basicAddCompiledMethod_",
  79. smalltalk.method({
  80. selector: "basicAddCompiledMethod:",
  81. fn: function (aMethod){
  82. var self=this;
  83. return smalltalk.withContext(function($ctx1) { smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
  84. return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
  85. }),
  86. smalltalk.Behavior);
  87. smalltalk.addMethod(
  88. "_basicNew",
  89. smalltalk.method({
  90. selector: "basicNew",
  91. fn: function (){
  92. var self=this;
  93. return smalltalk.withContext(function($ctx1) { return new self.fn();
  94. return self}, function($ctx1) {$ctx1.fill(self,"basicNew", [], {}, smalltalk.Behavior)})}
  95. }),
  96. smalltalk.Behavior);
  97. smalltalk.addMethod(
  98. "_basicRemoveCompiledMethod_",
  99. smalltalk.method({
  100. selector: "basicRemoveCompiledMethod:",
  101. fn: function (aMethod){
  102. var self=this;
  103. return smalltalk.withContext(function($ctx1) {
  104. smalltalk.removeMethod(aMethod)
  105. smalltalk.init(self);
  106. ;
  107. return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
  108. }),
  109. smalltalk.Behavior);
  110. smalltalk.addMethod(
  111. "_canUnderstand_",
  112. smalltalk.method({
  113. selector: "canUnderstand:",
  114. fn: function (aSelector){
  115. var self=this;
  116. return smalltalk.withContext(function($ctx1) { var $1;
  117. $1=_st(_st(_st(_st(self)._methodDictionary())._keys())._includes_(_st(aSelector)._asString()))._or_((function(){
  118. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(self)._superclass())._notNil())._and_((function(){
  119. return smalltalk.withContext(function($ctx3) { return _st(_st(self)._superclass())._canUnderstand_(aSelector);
  120. }, function($ctx3) {$ctx3.fillBlock([], {})})}));
  121. }, function($ctx2) {$ctx2.fillBlock([], {})})}));
  122. return $1;
  123. }, function($ctx1) {$ctx1.fill(self,"canUnderstand:", [aSelector], {}, smalltalk.Behavior)})}
  124. }),
  125. smalltalk.Behavior);
  126. smalltalk.addMethod(
  127. "_comment",
  128. smalltalk.method({
  129. selector: "comment",
  130. fn: function (){
  131. var self=this;
  132. return smalltalk.withContext(function($ctx1) { var $2,$1;
  133. $2=_st(self)._basicAt_("comment");
  134. if(($receiver = $2) == nil || $receiver == undefined){
  135. $1="";
  136. } else {
  137. $1=$2;
  138. };
  139. return $1;
  140. }, function($ctx1) {$ctx1.fill(self,"comment", [], {}, smalltalk.Behavior)})}
  141. }),
  142. smalltalk.Behavior);
  143. smalltalk.addMethod(
  144. "_comment_",
  145. smalltalk.method({
  146. selector: "comment:",
  147. fn: function (aString){
  148. var self=this;
  149. return smalltalk.withContext(function($ctx1) { var $1,$2;
  150. _st(self)._basicAt_put_("comment",aString);
  151. $1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
  152. _st($1)._theClass_(self);
  153. $2=_st($1)._yourself();
  154. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  155. return self}, function($ctx1) {$ctx1.fill(self,"comment:", [aString], {}, smalltalk.Behavior)})}
  156. }),
  157. smalltalk.Behavior);
  158. smalltalk.addMethod(
  159. "_commentStamp",
  160. smalltalk.method({
  161. selector: "commentStamp",
  162. fn: function (){
  163. var self=this;
  164. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  165. $2=_st((smalltalk.ClassCommentReader || ClassCommentReader))._new();
  166. _st($2)._class_(self);
  167. $3=_st($2)._yourself();
  168. $1=$3;
  169. return $1;
  170. }, function($ctx1) {$ctx1.fill(self,"commentStamp", [], {}, smalltalk.Behavior)})}
  171. }),
  172. smalltalk.Behavior);
  173. smalltalk.addMethod(
  174. "_commentStamp_prior_",
  175. smalltalk.method({
  176. selector: "commentStamp:prior:",
  177. fn: function (aStamp,prior){
  178. var self=this;
  179. return smalltalk.withContext(function($ctx1) { var $1;
  180. $1=_st(self)._commentStamp();
  181. return $1;
  182. }, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:", [aStamp,prior], {}, smalltalk.Behavior)})}
  183. }),
  184. smalltalk.Behavior);
  185. smalltalk.addMethod(
  186. "_compile_",
  187. smalltalk.method({
  188. selector: "compile:",
  189. fn: function (aString){
  190. var self=this;
  191. return smalltalk.withContext(function($ctx1) { _st(self)._compile_category_(aString,"");
  192. return self}, function($ctx1) {$ctx1.fill(self,"compile:", [aString], {}, smalltalk.Behavior)})}
  193. }),
  194. smalltalk.Behavior);
  195. smalltalk.addMethod(
  196. "_compile_category_",
  197. smalltalk.method({
  198. selector: "compile:category:",
  199. fn: function (aString,anotherString){
  200. var self=this;
  201. return smalltalk.withContext(function($ctx1) { _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
  202. return self}, function($ctx1) {$ctx1.fill(self,"compile:category:", [aString,anotherString], {}, smalltalk.Behavior)})}
  203. }),
  204. smalltalk.Behavior);
  205. smalltalk.addMethod(
  206. "_definition",
  207. smalltalk.method({
  208. selector: "definition",
  209. fn: function (){
  210. var self=this;
  211. return smalltalk.withContext(function($ctx1) { return "";
  212. }, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Behavior)})}
  213. }),
  214. smalltalk.Behavior);
  215. smalltalk.addMethod(
  216. "_includesSelector_",
  217. smalltalk.method({
  218. selector: "includesSelector:",
  219. fn: function (aSymbol){
  220. var self=this;
  221. return smalltalk.withContext(function($ctx1) { var $1;
  222. $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
  223. return $1;
  224. }, function($ctx1) {$ctx1.fill(self,"includesSelector:", [aSymbol], {}, smalltalk.Behavior)})}
  225. }),
  226. smalltalk.Behavior);
  227. smalltalk.addMethod(
  228. "_inheritsFrom_",
  229. smalltalk.method({
  230. selector: "inheritsFrom:",
  231. fn: function (aClass){
  232. var self=this;
  233. return smalltalk.withContext(function($ctx1) { var $1;
  234. $1=_st(_st(aClass)._allSubclasses())._includes_(self);
  235. return $1;
  236. }, function($ctx1) {$ctx1.fill(self,"inheritsFrom:", [aClass], {}, smalltalk.Behavior)})}
  237. }),
  238. smalltalk.Behavior);
  239. smalltalk.addMethod(
  240. "_instanceVariableNames",
  241. smalltalk.method({
  242. selector: "instanceVariableNames",
  243. fn: function (){
  244. var self=this;
  245. return smalltalk.withContext(function($ctx1) { return self.iVarNames;
  246. return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames", [], {}, smalltalk.Behavior)})}
  247. }),
  248. smalltalk.Behavior);
  249. smalltalk.addMethod(
  250. "_lookupSelector_",
  251. smalltalk.method({
  252. selector: "lookupSelector:",
  253. fn: function (selector){
  254. var self=this;
  255. var lookupClass;
  256. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$2;
  257. var $early={};
  258. try {
  259. lookupClass=self;
  260. $1=(function(){
  261. return smalltalk.withContext(function($ctx2) { return _st(lookupClass).__eq(nil);
  262. }, function($ctx2) {$ctx2.fillBlock([], {})})});
  263. $2=(function(){
  264. return smalltalk.withContext(function($ctx2) { $3=_st(lookupClass)._includesSelector_(selector);
  265. if(smalltalk.assert($3)){
  266. $4=_st(lookupClass)._methodAt_(selector);
  267. throw $early=[$4];
  268. };
  269. lookupClass=_st(lookupClass)._superclass();
  270. return lookupClass;
  271. }, function($ctx2) {$ctx2.fillBlock([], {})})});
  272. _st($1)._whileFalse_($2);
  273. return nil;
  274. }
  275. catch(e) {if(e===$early)return e[0]; throw e}
  276. }, function($ctx1) {$ctx1.fill(self,"lookupSelector:", [selector], {lookupClass:lookupClass}, smalltalk.Behavior)})}
  277. }),
  278. smalltalk.Behavior);
  279. smalltalk.addMethod(
  280. "_methodAt_",
  281. smalltalk.method({
  282. selector: "methodAt:",
  283. fn: function (aSymbol){
  284. var self=this;
  285. return smalltalk.withContext(function($ctx1) { var $1;
  286. $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
  287. return $1;
  288. }, function($ctx1) {$ctx1.fill(self,"methodAt:", [aSymbol], {}, smalltalk.Behavior)})}
  289. }),
  290. smalltalk.Behavior);
  291. smalltalk.addMethod(
  292. "_methodDictionary",
  293. smalltalk.method({
  294. selector: "methodDictionary",
  295. fn: function (){
  296. var self=this;
  297. return smalltalk.withContext(function($ctx1) { var dict = smalltalk.HashedCollection._new();
  298. var methods = self.methods;
  299. for(var i in methods) {
  300. if(methods[i].selector) {
  301. dict._at_put_(methods[i].selector, methods[i]);
  302. }
  303. };
  304. return dict;
  305. return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary", [], {}, smalltalk.Behavior)})}
  306. }),
  307. smalltalk.Behavior);
  308. smalltalk.addMethod(
  309. "_methods",
  310. smalltalk.method({
  311. selector: "methods",
  312. fn: function (){
  313. var self=this;
  314. return smalltalk.withContext(function($ctx1) { var $1;
  315. $1=_st(_st(self)._methodDictionary())._values();
  316. return $1;
  317. }, function($ctx1) {$ctx1.fill(self,"methods", [], {}, smalltalk.Behavior)})}
  318. }),
  319. smalltalk.Behavior);
  320. smalltalk.addMethod(
  321. "_methodsFor_",
  322. smalltalk.method({
  323. selector: "methodsFor:",
  324. fn: function (aString){
  325. var self=this;
  326. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  327. $2=_st((smalltalk.ClassCategoryReader || ClassCategoryReader))._new();
  328. _st($2)._class_category_(self,aString);
  329. $3=_st($2)._yourself();
  330. $1=$3;
  331. return $1;
  332. }, function($ctx1) {$ctx1.fill(self,"methodsFor:", [aString], {}, smalltalk.Behavior)})}
  333. }),
  334. smalltalk.Behavior);
  335. smalltalk.addMethod(
  336. "_methodsFor_stamp_",
  337. smalltalk.method({
  338. selector: "methodsFor:stamp:",
  339. fn: function (aString,aStamp){
  340. var self=this;
  341. return smalltalk.withContext(function($ctx1) { var $1;
  342. $1=_st(self)._methodsFor_(aString);
  343. return $1;
  344. }, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:", [aString,aStamp], {}, smalltalk.Behavior)})}
  345. }),
  346. smalltalk.Behavior);
  347. smalltalk.addMethod(
  348. "_methodsInProtocol_",
  349. smalltalk.method({
  350. selector: "methodsInProtocol:",
  351. fn: function (aString){
  352. var self=this;
  353. return smalltalk.withContext(function($ctx1) { var $1;
  354. $1=_st(_st(_st(self)._methodDictionary())._values())._select_((function(each){
  355. return smalltalk.withContext(function($ctx2) { return _st(_st(each)._protocol()).__eq(aString);
  356. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  357. return $1;
  358. }, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:", [aString], {}, smalltalk.Behavior)})}
  359. }),
  360. smalltalk.Behavior);
  361. smalltalk.addMethod(
  362. "_name",
  363. smalltalk.method({
  364. selector: "name",
  365. fn: function (){
  366. var self=this;
  367. return smalltalk.withContext(function($ctx1) { return self.className || nil;
  368. return self}, function($ctx1) {$ctx1.fill(self,"name", [], {}, smalltalk.Behavior)})}
  369. }),
  370. smalltalk.Behavior);
  371. smalltalk.addMethod(
  372. "_new",
  373. smalltalk.method({
  374. selector: "new",
  375. fn: function (){
  376. var self=this;
  377. return smalltalk.withContext(function($ctx1) { var $1;
  378. $1=_st(_st(self)._basicNew())._initialize();
  379. return $1;
  380. }, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.Behavior)})}
  381. }),
  382. smalltalk.Behavior);
  383. smalltalk.addMethod(
  384. "_organization",
  385. smalltalk.method({
  386. selector: "organization",
  387. fn: function (){
  388. var self=this;
  389. return smalltalk.withContext(function($ctx1) { var $1;
  390. $1=_st(self)._basicAt_("organization");
  391. return $1;
  392. }, function($ctx1) {$ctx1.fill(self,"organization", [], {}, smalltalk.Behavior)})}
  393. }),
  394. smalltalk.Behavior);
  395. smalltalk.addMethod(
  396. "_protocols",
  397. smalltalk.method({
  398. selector: "protocols",
  399. fn: function (){
  400. var self=this;
  401. return smalltalk.withContext(function($ctx1) { var $1;
  402. $1=_st(_st(_st(self)._organization())._elements())._sorted();
  403. return $1;
  404. }, function($ctx1) {$ctx1.fill(self,"protocols", [], {}, smalltalk.Behavior)})}
  405. }),
  406. smalltalk.Behavior);
  407. smalltalk.addMethod(
  408. "_protocolsDo_",
  409. smalltalk.method({
  410. selector: "protocolsDo:",
  411. fn: function (aBlock){
  412. var self=this;
  413. var methodsByCategory;
  414. return smalltalk.withContext(function($ctx1) { methodsByCategory=_st((smalltalk.HashedCollection || HashedCollection))._new();
  415. _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
  416. return smalltalk.withContext(function($ctx2) { return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
  417. return smalltalk.withContext(function($ctx3) { return _st((smalltalk.Array || Array))._new();
  418. }, function($ctx3) {$ctx3.fillBlock([], {})})})))._add_(m);
  419. }, function($ctx2) {$ctx2.fillBlock([m], {})})}));
  420. _st(_st(self)._protocols())._do_((function(category){
  421. return smalltalk.withContext(function($ctx2) { return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
  422. }, function($ctx2) {$ctx2.fillBlock([category], {})})}));
  423. return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:", [aBlock], {methodsByCategory:methodsByCategory}, smalltalk.Behavior)})}
  424. }),
  425. smalltalk.Behavior);
  426. smalltalk.addMethod(
  427. "_prototype",
  428. smalltalk.method({
  429. selector: "prototype",
  430. fn: function (){
  431. var self=this;
  432. return smalltalk.withContext(function($ctx1) { return self.fn.prototype;
  433. return self}, function($ctx1) {$ctx1.fill(self,"prototype", [], {}, smalltalk.Behavior)})}
  434. }),
  435. smalltalk.Behavior);
  436. smalltalk.addMethod(
  437. "_removeCompiledMethod_",
  438. smalltalk.method({
  439. selector: "removeCompiledMethod:",
  440. fn: function (aMethod){
  441. var self=this;
  442. return smalltalk.withContext(function($ctx1) { var $1,$2;
  443. _st(self)._basicRemoveCompiledMethod_(aMethod);
  444. $1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
  445. _st($1)._theClass_(self);
  446. _st($1)._method_(aMethod);
  447. $2=_st($1)._yourself();
  448. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  449. return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
  450. }),
  451. smalltalk.Behavior);
  452. smalltalk.addMethod(
  453. "_selectors",
  454. smalltalk.method({
  455. selector: "selectors",
  456. fn: function (){
  457. var self=this;
  458. return smalltalk.withContext(function($ctx1) { var $1;
  459. $1=_st(_st(self)._methodDictionary())._keys();
  460. return $1;
  461. }, function($ctx1) {$ctx1.fill(self,"selectors", [], {}, smalltalk.Behavior)})}
  462. }),
  463. smalltalk.Behavior);
  464. smalltalk.addMethod(
  465. "_subclasses",
  466. smalltalk.method({
  467. selector: "subclasses",
  468. fn: function (){
  469. var self=this;
  470. return smalltalk.withContext(function($ctx1) { return smalltalk.subclasses(self);
  471. return self}, function($ctx1) {$ctx1.fill(self,"subclasses", [], {}, smalltalk.Behavior)})}
  472. }),
  473. smalltalk.Behavior);
  474. smalltalk.addMethod(
  475. "_superclass",
  476. smalltalk.method({
  477. selector: "superclass",
  478. fn: function (){
  479. var self=this;
  480. return smalltalk.withContext(function($ctx1) { return self.superclass || nil;
  481. return self}, function($ctx1) {$ctx1.fill(self,"superclass", [], {}, smalltalk.Behavior)})}
  482. }),
  483. smalltalk.Behavior);
  484. smalltalk.addMethod(
  485. "_theMetaClass",
  486. smalltalk.method({
  487. selector: "theMetaClass",
  488. fn: function (){
  489. var self=this;
  490. return smalltalk.withContext(function($ctx1) { var $1;
  491. $1=_st(self)._class();
  492. return $1;
  493. }, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Behavior)})}
  494. }),
  495. smalltalk.Behavior);
  496. smalltalk.addMethod(
  497. "_theNonMetaClass",
  498. smalltalk.method({
  499. selector: "theNonMetaClass",
  500. fn: function (){
  501. var self=this;
  502. return smalltalk.withContext(function($ctx1) { var $1;
  503. $1=self;
  504. return $1;
  505. }, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Behavior)})}
  506. }),
  507. smalltalk.Behavior);
  508. smalltalk.addMethod(
  509. "_withAllSubclasses",
  510. smalltalk.method({
  511. selector: "withAllSubclasses",
  512. fn: function (){
  513. var self=this;
  514. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  515. $2=_st((smalltalk.Array || Array))._with_(self);
  516. _st($2)._addAll_(_st(self)._allSubclasses());
  517. $3=_st($2)._yourself();
  518. $1=$3;
  519. return $1;
  520. }, function($ctx1) {$ctx1.fill(self,"withAllSubclasses", [], {}, smalltalk.Behavior)})}
  521. }),
  522. smalltalk.Behavior);
  523. smalltalk.addClass('Class', smalltalk.Behavior, [], 'Kernel-Classes');
  524. smalltalk.addMethod(
  525. "_asJavascript",
  526. smalltalk.method({
  527. selector: "asJavascript",
  528. fn: function (){
  529. var self=this;
  530. return smalltalk.withContext(function($ctx1) { var $1;
  531. $1=_st("smalltalk.").__comma(_st(self)._name());
  532. return $1;
  533. }, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Class)})}
  534. }),
  535. smalltalk.Class);
  536. smalltalk.addMethod(
  537. "_category",
  538. smalltalk.method({
  539. selector: "category",
  540. fn: function (){
  541. var self=this;
  542. return smalltalk.withContext(function($ctx1) { var $2,$1;
  543. $2=_st(self)._package();
  544. if(($receiver = $2) == nil || $receiver == undefined){
  545. $1="Unclassified";
  546. } else {
  547. $1=_st(_st(self)._package())._name();
  548. };
  549. return $1;
  550. }, function($ctx1) {$ctx1.fill(self,"category", [], {}, smalltalk.Class)})}
  551. }),
  552. smalltalk.Class);
  553. smalltalk.addMethod(
  554. "_definition",
  555. smalltalk.method({
  556. selector: "definition",
  557. fn: function (){
  558. var self=this;
  559. return smalltalk.withContext(function($ctx1) { var $2,$3,$4,$5,$1;
  560. $1=_st((smalltalk.String || String))._streamContents_((function(stream){
  561. return smalltalk.withContext(function($ctx2) { $2=stream;
  562. _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
  563. _st($2)._nextPutAll_(" subclass: #");
  564. _st($2)._nextPutAll_(_st(self)._name());
  565. _st($2)._nextPutAll_(_st(_st((smalltalk.String || String))._lf()).__comma(_st((smalltalk.String || String))._tab()));
  566. $3=_st($2)._nextPutAll_("instanceVariableNames: '");
  567. $3;
  568. _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
  569. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(each);
  570. }, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
  571. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(" ");
  572. }, function($ctx3) {$ctx3.fillBlock([], {})})}));
  573. $4=stream;
  574. _st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
  575. _st($4)._nextPutAll_("package: '");
  576. _st($4)._nextPutAll_(_st(self)._category());
  577. $5=_st($4)._nextPutAll_("'");
  578. return $5;
  579. }, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
  580. return $1;
  581. }, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Class)})}
  582. }),
  583. smalltalk.Class);
  584. smalltalk.addMethod(
  585. "_isClass",
  586. smalltalk.method({
  587. selector: "isClass",
  588. fn: function (){
  589. var self=this;
  590. return smalltalk.withContext(function($ctx1) { return true;
  591. }, function($ctx1) {$ctx1.fill(self,"isClass", [], {}, smalltalk.Class)})}
  592. }),
  593. smalltalk.Class);
  594. smalltalk.addMethod(
  595. "_package",
  596. smalltalk.method({
  597. selector: "package",
  598. fn: function (){
  599. var self=this;
  600. return smalltalk.withContext(function($ctx1) { return self.pkg;
  601. return self}, function($ctx1) {$ctx1.fill(self,"package", [], {}, smalltalk.Class)})}
  602. }),
  603. smalltalk.Class);
  604. smalltalk.addMethod(
  605. "_package_",
  606. smalltalk.method({
  607. selector: "package:",
  608. fn: function (aPackage){
  609. var self=this;
  610. return smalltalk.withContext(function($ctx1) { self.pkg = aPackage;
  611. return self}, function($ctx1) {$ctx1.fill(self,"package:", [aPackage], {}, smalltalk.Class)})}
  612. }),
  613. smalltalk.Class);
  614. smalltalk.addMethod(
  615. "_printString",
  616. smalltalk.method({
  617. selector: "printString",
  618. fn: function (){
  619. var self=this;
  620. return smalltalk.withContext(function($ctx1) { var $1;
  621. $1=_st(self)._name();
  622. return $1;
  623. }, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Class)})}
  624. }),
  625. smalltalk.Class);
  626. smalltalk.addMethod(
  627. "_rename_",
  628. smalltalk.method({
  629. selector: "rename:",
  630. fn: function (aString){
  631. var self=this;
  632. return smalltalk.withContext(function($ctx1) { _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
  633. return self}, function($ctx1) {$ctx1.fill(self,"rename:", [aString], {}, smalltalk.Class)})}
  634. }),
  635. smalltalk.Class);
  636. smalltalk.addMethod(
  637. "_subclass_instanceVariableNames_",
  638. smalltalk.method({
  639. selector: "subclass:instanceVariableNames:",
  640. fn: function (aString,anotherString){
  641. var self=this;
  642. return smalltalk.withContext(function($ctx1) { var $1;
  643. $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  644. return $1;
  645. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:", [aString,anotherString], {}, smalltalk.Class)})}
  646. }),
  647. smalltalk.Class);
  648. smalltalk.addMethod(
  649. "_subclass_instanceVariableNames_category_",
  650. smalltalk.method({
  651. selector: "subclass:instanceVariableNames:category:",
  652. fn: function (aString,aString2,aString3){
  653. var self=this;
  654. return smalltalk.withContext(function($ctx1) { var $1;
  655. _st(self)._deprecatedAPI();
  656. $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  657. return $1;
  658. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:", [aString,aString2,aString3], {}, smalltalk.Class)})}
  659. }),
  660. smalltalk.Class);
  661. smalltalk.addMethod(
  662. "_subclass_instanceVariableNames_classVariableNames_poolDictionaries_category_",
  663. smalltalk.method({
  664. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  665. fn: function (aString,aString2,classVars,pools,aString3){
  666. var self=this;
  667. return smalltalk.withContext(function($ctx1) { var $1;
  668. $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  669. return $1;
  670. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:", [aString,aString2,classVars,pools,aString3], {}, smalltalk.Class)})}
  671. }),
  672. smalltalk.Class);
  673. smalltalk.addMethod(
  674. "_subclass_instanceVariableNames_package_",
  675. smalltalk.method({
  676. selector: "subclass:instanceVariableNames:package:",
  677. fn: function (aString,aString2,aString3){
  678. var self=this;
  679. return smalltalk.withContext(function($ctx1) { var $1;
  680. $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
  681. return $1;
  682. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:", [aString,aString2,aString3], {}, smalltalk.Class)})}
  683. }),
  684. smalltalk.Class);
  685. smalltalk.addClass('Metaclass', smalltalk.Behavior, [], 'Kernel-Classes');
  686. smalltalk.addMethod(
  687. "_asJavascript",
  688. smalltalk.method({
  689. selector: "asJavascript",
  690. fn: function (){
  691. var self=this;
  692. return smalltalk.withContext(function($ctx1) { var $1;
  693. $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
  694. return $1;
  695. }, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Metaclass)})}
  696. }),
  697. smalltalk.Metaclass);
  698. smalltalk.addMethod(
  699. "_definition",
  700. smalltalk.method({
  701. selector: "definition",
  702. fn: function (){
  703. var self=this;
  704. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  705. $1=_st((smalltalk.String || String))._streamContents_((function(stream){
  706. return smalltalk.withContext(function($ctx2) { $2=stream;
  707. _st($2)._nextPutAll_(_st(self)._asString());
  708. _st($2)._nextPutAll_(" class ");
  709. $3=_st($2)._nextPutAll_("instanceVariableNames: '");
  710. $3;
  711. _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
  712. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(each);
  713. }, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
  714. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(" ");
  715. }, function($ctx3) {$ctx3.fillBlock([], {})})}));
  716. return _st(stream)._nextPutAll_("'");
  717. }, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
  718. return $1;
  719. }, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Metaclass)})}
  720. }),
  721. smalltalk.Metaclass);
  722. smalltalk.addMethod(
  723. "_instanceClass",
  724. smalltalk.method({
  725. selector: "instanceClass",
  726. fn: function (){
  727. var self=this;
  728. return smalltalk.withContext(function($ctx1) { return self.instanceClass;
  729. return self}, function($ctx1) {$ctx1.fill(self,"instanceClass", [], {}, smalltalk.Metaclass)})}
  730. }),
  731. smalltalk.Metaclass);
  732. smalltalk.addMethod(
  733. "_instanceVariableNames_",
  734. smalltalk.method({
  735. selector: "instanceVariableNames:",
  736. fn: function (aCollection){
  737. var self=this;
  738. return smalltalk.withContext(function($ctx1) { _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
  739. return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:", [aCollection], {}, smalltalk.Metaclass)})}
  740. }),
  741. smalltalk.Metaclass);
  742. smalltalk.addMethod(
  743. "_isMetaclass",
  744. smalltalk.method({
  745. selector: "isMetaclass",
  746. fn: function (){
  747. var self=this;
  748. return smalltalk.withContext(function($ctx1) { return true;
  749. }, function($ctx1) {$ctx1.fill(self,"isMetaclass", [], {}, smalltalk.Metaclass)})}
  750. }),
  751. smalltalk.Metaclass);
  752. smalltalk.addMethod(
  753. "_printString",
  754. smalltalk.method({
  755. selector: "printString",
  756. fn: function (){
  757. var self=this;
  758. return smalltalk.withContext(function($ctx1) { var $1;
  759. $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
  760. return $1;
  761. }, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Metaclass)})}
  762. }),
  763. smalltalk.Metaclass);
  764. smalltalk.addMethod(
  765. "_theMetaClass",
  766. smalltalk.method({
  767. selector: "theMetaClass",
  768. fn: function (){
  769. var self=this;
  770. return smalltalk.withContext(function($ctx1) { var $1;
  771. $1=self;
  772. return $1;
  773. }, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Metaclass)})}
  774. }),
  775. smalltalk.Metaclass);
  776. smalltalk.addMethod(
  777. "_theNonMetaClass",
  778. smalltalk.method({
  779. selector: "theNonMetaClass",
  780. fn: function (){
  781. var self=this;
  782. return smalltalk.withContext(function($ctx1) { var $1;
  783. $1=_st(self)._instanceClass();
  784. return $1;
  785. }, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Metaclass)})}
  786. }),
  787. smalltalk.Metaclass);
  788. smalltalk.addClass('ClassBuilder', smalltalk.Object, [], 'Kernel-Classes');
  789. smalltalk.addMethod(
  790. "_addSubclassOf_named_instanceVariableNames_",
  791. smalltalk.method({
  792. selector: "addSubclassOf:named:instanceVariableNames:",
  793. fn: function (aClass,aString,aCollection){
  794. var self=this;
  795. return smalltalk.withContext(function($ctx1) { smalltalk.addClass(aString, aClass, aCollection);
  796. return smalltalk[aString];
  797. return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:", [aClass,aString,aCollection], {}, smalltalk.ClassBuilder)})}
  798. }),
  799. smalltalk.ClassBuilder);
  800. smalltalk.addMethod(
  801. "_addSubclassOf_named_instanceVariableNames_package_",
  802. smalltalk.method({
  803. selector: "addSubclassOf:named:instanceVariableNames:package:",
  804. fn: function (aClass,aString,aCollection,packageName){
  805. var self=this;
  806. return smalltalk.withContext(function($ctx1) { smalltalk.addClass(aString, aClass, aCollection, packageName);
  807. return smalltalk[aString];
  808. return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:", [aClass,aString,aCollection,packageName], {}, smalltalk.ClassBuilder)})}
  809. }),
  810. smalltalk.ClassBuilder);
  811. smalltalk.addMethod(
  812. "_basicClass_instanceVariableNames_",
  813. smalltalk.method({
  814. selector: "basicClass:instanceVariableNames:",
  815. fn: function (aClass,aString){
  816. var self=this;
  817. return smalltalk.withContext(function($ctx1) { var $1;
  818. $1=_st(aClass)._isMetaclass();
  819. if(! smalltalk.assert($1)){
  820. _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
  821. };
  822. _st(aClass)._basicAt_put_("iVarNames",_st(self)._instanceVariableNamesFor_(aString));
  823. _st(self)._setupClass_(aClass);
  824. return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
  825. }),
  826. smalltalk.ClassBuilder);
  827. smalltalk.addMethod(
  828. "_basicRenameClass_to_",
  829. smalltalk.method({
  830. selector: "basicRenameClass:to:",
  831. fn: function (aClass,aString){
  832. var self=this;
  833. return smalltalk.withContext(function($ctx1) {
  834. smalltalk[aString] = aClass;
  835. delete smalltalk[aClass.className];
  836. aClass.className = aString;
  837. ;
  838. return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
  839. }),
  840. smalltalk.ClassBuilder);
  841. smalltalk.addMethod(
  842. "_class_instanceVariableNames_",
  843. smalltalk.method({
  844. selector: "class:instanceVariableNames:",
  845. fn: function (aClass,aString){
  846. var self=this;
  847. return smalltalk.withContext(function($ctx1) { var $1,$2;
  848. _st(self)._basicClass_instanceVariableNames_(aClass,aString);
  849. $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
  850. _st($1)._theClass_(aClass);
  851. $2=_st($1)._yourself();
  852. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  853. return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
  854. }),
  855. smalltalk.ClassBuilder);
  856. smalltalk.addMethod(
  857. "_copyClass_named_",
  858. smalltalk.method({
  859. selector: "copyClass:named:",
  860. fn: function (aClass,aString){
  861. var self=this;
  862. var newClass;
  863. return smalltalk.withContext(function($ctx1) { var $1;
  864. newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClass)._superclass(),aString,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
  865. _st(self)._setupClass_(newClass);
  866. _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
  867. return smalltalk.withContext(function($ctx2) { return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),newClass,_st(each)._category());
  868. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  869. _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
  870. return smalltalk.withContext(function($ctx2) { return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(newClass)._class(),_st(each)._category());
  871. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  872. _st(self)._setupClass_(newClass);
  873. $1=newClass;
  874. return $1;
  875. }, function($ctx1) {$ctx1.fill(self,"copyClass:named:", [aClass,aString], {newClass:newClass}, smalltalk.ClassBuilder)})}
  876. }),
  877. smalltalk.ClassBuilder);
  878. smalltalk.addMethod(
  879. "_instanceVariableNamesFor_",
  880. smalltalk.method({
  881. selector: "instanceVariableNamesFor:",
  882. fn: function (aString){
  883. var self=this;
  884. return smalltalk.withContext(function($ctx1) { var $1;
  885. $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
  886. return smalltalk.withContext(function($ctx2) { return _st(each)._isEmpty();
  887. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  888. return $1;
  889. }, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:", [aString], {}, smalltalk.ClassBuilder)})}
  890. }),
  891. smalltalk.ClassBuilder);
  892. smalltalk.addMethod(
  893. "_renameClass_to_",
  894. smalltalk.method({
  895. selector: "renameClass:to:",
  896. fn: function (aClass,aString){
  897. var self=this;
  898. return smalltalk.withContext(function($ctx1) { var $1,$2;
  899. _st(self)._basicRenameClass_to_(aClass,aString);
  900. $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
  901. _st($1)._theClass_(aClass);
  902. $2=_st($1)._yourself();
  903. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  904. return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
  905. }),
  906. smalltalk.ClassBuilder);
  907. smalltalk.addMethod(
  908. "_setupClass_",
  909. smalltalk.method({
  910. selector: "setupClass:",
  911. fn: function (aClass){
  912. var self=this;
  913. return smalltalk.withContext(function($ctx1) { smalltalk.init(aClass);;
  914. return self}, function($ctx1) {$ctx1.fill(self,"setupClass:", [aClass], {}, smalltalk.ClassBuilder)})}
  915. }),
  916. smalltalk.ClassBuilder);
  917. smalltalk.addMethod(
  918. "_superclass_subclass_",
  919. smalltalk.method({
  920. selector: "superclass:subclass:",
  921. fn: function (aClass,aString){
  922. var self=this;
  923. return smalltalk.withContext(function($ctx1) { var $1;
  924. $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
  925. return $1;
  926. }, function($ctx1) {$ctx1.fill(self,"superclass:subclass:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
  927. }),
  928. smalltalk.ClassBuilder);
  929. smalltalk.addMethod(
  930. "_superclass_subclass_instanceVariableNames_package_",
  931. smalltalk.method({
  932. selector: "superclass:subclass:instanceVariableNames:package:",
  933. fn: function (aClass,aString,aString2,aString3){
  934. var self=this;
  935. var newClass;
  936. return smalltalk.withContext(function($ctx1) { var $1,$2,$3,$4,$6,$5,$7,$8,$9;
  937. $1=self;
  938. $2=aClass;
  939. $3=aString;
  940. $4=_st(self)._instanceVariableNamesFor_(aString2);
  941. $6=aString3;
  942. if(($receiver = $6) == nil || $receiver == undefined){
  943. $5="unclassified";
  944. } else {
  945. $5=$6;
  946. };
  947. newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
  948. _st(self)._setupClass_(newClass);
  949. $7=_st((smalltalk.ClassAdded || ClassAdded))._new();
  950. _st($7)._theClass_(newClass);
  951. $8=_st($7)._yourself();
  952. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
  953. $9=newClass;
  954. return $9;
  955. }, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:", [aClass,aString,aString2,aString3], {newClass:newClass}, smalltalk.ClassBuilder)})}
  956. }),
  957. smalltalk.ClassBuilder);
  958. smalltalk.addClass('ClassCategoryReader', smalltalk.Object, ['class', 'category', 'chunkParser'], 'Kernel-Classes');
  959. smalltalk.addMethod(
  960. "_class_category_",
  961. smalltalk.method({
  962. selector: "class:category:",
  963. fn: function (aClass,aString){
  964. var self=this;
  965. return smalltalk.withContext(function($ctx1) { self["@class"]=aClass;
  966. self["@category"]=aString;
  967. return self}, function($ctx1) {$ctx1.fill(self,"class:category:", [aClass,aString], {}, smalltalk.ClassCategoryReader)})}
  968. }),
  969. smalltalk.ClassCategoryReader);
  970. smalltalk.addMethod(
  971. "_compileMethod_",
  972. smalltalk.method({
  973. selector: "compileMethod:",
  974. fn: function (aString){
  975. var self=this;
  976. return smalltalk.withContext(function($ctx1) { _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
  977. return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:", [aString], {}, smalltalk.ClassCategoryReader)})}
  978. }),
  979. smalltalk.ClassCategoryReader);
  980. smalltalk.addMethod(
  981. "_initialize",
  982. smalltalk.method({
  983. selector: "initialize",
  984. fn: function (){
  985. var self=this;
  986. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  987. self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
  988. return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCategoryReader)})}
  989. }),
  990. smalltalk.ClassCategoryReader);
  991. smalltalk.addMethod(
  992. "_scanFrom_",
  993. smalltalk.method({
  994. selector: "scanFrom:",
  995. fn: function (aChunkParser){
  996. var self=this;
  997. var chunk;
  998. return smalltalk.withContext(function($ctx1) { _st((function(){
  999. return smalltalk.withContext(function($ctx2) { chunk=_st(aChunkParser)._nextChunk();
  1000. chunk;
  1001. return _st(chunk)._isEmpty();
  1002. }, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileFalse_((function(){
  1003. return smalltalk.withContext(function($ctx2) { return _st(self)._compileMethod_(chunk);
  1004. }, function($ctx2) {$ctx2.fillBlock([], {})})}));
  1005. _st(_st((smalltalk.Compiler || Compiler))._new())._setupClass_(self["@class"]);
  1006. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCategoryReader)})}
  1007. }),
  1008. smalltalk.ClassCategoryReader);
  1009. smalltalk.addClass('ClassCommentReader', smalltalk.Object, ['class', 'chunkParser'], 'Kernel-Classes');
  1010. smalltalk.addMethod(
  1011. "_class_",
  1012. smalltalk.method({
  1013. selector: "class:",
  1014. fn: function (aClass){
  1015. var self=this;
  1016. return smalltalk.withContext(function($ctx1) { self["@class"]=aClass;
  1017. return self}, function($ctx1) {$ctx1.fill(self,"class:", [aClass], {}, smalltalk.ClassCommentReader)})}
  1018. }),
  1019. smalltalk.ClassCommentReader);
  1020. smalltalk.addMethod(
  1021. "_initialize",
  1022. smalltalk.method({
  1023. selector: "initialize",
  1024. fn: function (){
  1025. var self=this;
  1026. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  1027. self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
  1028. return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCommentReader)})}
  1029. }),
  1030. smalltalk.ClassCommentReader);
  1031. smalltalk.addMethod(
  1032. "_scanFrom_",
  1033. smalltalk.method({
  1034. selector: "scanFrom:",
  1035. fn: function (aChunkParser){
  1036. var self=this;
  1037. var chunk;
  1038. return smalltalk.withContext(function($ctx1) { var $1;
  1039. chunk=_st(aChunkParser)._nextChunk();
  1040. $1=_st(chunk)._isEmpty();
  1041. if(! smalltalk.assert($1)){
  1042. _st(self)._setComment_(chunk);
  1043. };
  1044. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCommentReader)})}
  1045. }),
  1046. smalltalk.ClassCommentReader);
  1047. smalltalk.addMethod(
  1048. "_setComment_",
  1049. smalltalk.method({
  1050. selector: "setComment:",
  1051. fn: function (aString){
  1052. var self=this;
  1053. return smalltalk.withContext(function($ctx1) { _st(self["@class"])._comment_(aString);
  1054. return self}, function($ctx1) {$ctx1.fill(self,"setComment:", [aString], {}, smalltalk.ClassCommentReader)})}
  1055. }),
  1056. smalltalk.ClassCommentReader);
  1057. smalltalk.addClass('ClassSorterNode', smalltalk.Object, ['theClass', 'level', 'nodes'], 'Kernel-Classes');
  1058. smalltalk.addMethod(
  1059. "_getNodesFrom_",
  1060. smalltalk.method({
  1061. selector: "getNodesFrom:",
  1062. fn: function (aCollection){
  1063. var self=this;
  1064. var children,others;
  1065. return smalltalk.withContext(function($ctx1) { var $1,$3,$2;
  1066. children=[];
  1067. others=[];
  1068. $1=aCollection;
  1069. $2=(function(each){
  1070. return smalltalk.withContext(function($ctx2) { $3=_st(_st(each)._superclass()).__eq(_st(self)._theClass());
  1071. if(smalltalk.assert($3)){
  1072. return _st(children)._add_(each);
  1073. } else {
  1074. return _st(others)._add_(each);
  1075. };
  1076. }, function($ctx2) {$ctx2.fillBlock([each], {})})});
  1077. _st($1)._do_($2);
  1078. self["@nodes"]=_st(children)._collect_((function(each){
  1079. return smalltalk.withContext(function($ctx2) { return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,_st(_st(self)._level()).__plus((1)));
  1080. }, function($ctx2) {$ctx2.fillBlock([each], {})})}));
  1081. return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:", [aCollection], {children:children,others:others}, smalltalk.ClassSorterNode)})}
  1082. }),
  1083. smalltalk.ClassSorterNode);
  1084. smalltalk.addMethod(
  1085. "_level",
  1086. smalltalk.method({
  1087. selector: "level",
  1088. fn: function (){
  1089. var self=this;
  1090. return smalltalk.withContext(function($ctx1) { var $1;
  1091. $1=self["@level"];
  1092. return $1;
  1093. }, function($ctx1) {$ctx1.fill(self,"level", [], {}, smalltalk.ClassSorterNode)})}
  1094. }),
  1095. smalltalk.ClassSorterNode);
  1096. smalltalk.addMethod(
  1097. "_level_",
  1098. smalltalk.method({
  1099. selector: "level:",
  1100. fn: function (anInteger){
  1101. var self=this;
  1102. return smalltalk.withContext(function($ctx1) { self["@level"]=anInteger;
  1103. return self}, function($ctx1) {$ctx1.fill(self,"level:", [anInteger], {}, smalltalk.ClassSorterNode)})}
  1104. }),
  1105. smalltalk.ClassSorterNode);
  1106. smalltalk.addMethod(
  1107. "_nodes",
  1108. smalltalk.method({
  1109. selector: "nodes",
  1110. fn: function (){
  1111. var self=this;
  1112. return smalltalk.withContext(function($ctx1) { var $1;
  1113. $1=self["@nodes"];
  1114. return $1;
  1115. }, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.ClassSorterNode)})}
  1116. }),
  1117. smalltalk.ClassSorterNode);
  1118. smalltalk.addMethod(
  1119. "_theClass",
  1120. smalltalk.method({
  1121. selector: "theClass",
  1122. fn: function (){
  1123. var self=this;
  1124. return smalltalk.withContext(function($ctx1) { var $1;
  1125. $1=self["@theClass"];
  1126. return $1;
  1127. }, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.ClassSorterNode)})}
  1128. }),
  1129. smalltalk.ClassSorterNode);
  1130. smalltalk.addMethod(
  1131. "_theClass_",
  1132. smalltalk.method({
  1133. selector: "theClass:",
  1134. fn: function (aClass){
  1135. var self=this;
  1136. return smalltalk.withContext(function($ctx1) { self["@theClass"]=aClass;
  1137. return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.ClassSorterNode)})}
  1138. }),
  1139. smalltalk.ClassSorterNode);
  1140. smalltalk.addMethod(
  1141. "_traverseClassesWith_",
  1142. smalltalk.method({
  1143. selector: "traverseClassesWith:",
  1144. fn: function (aCollection){
  1145. var self=this;
  1146. return smalltalk.withContext(function($ctx1) { _st(aCollection)._add_(_st(self)._theClass());
  1147. _st(_st(_st(self)._nodes())._sorted_((function(a,b){
  1148. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
  1149. }, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(aNode){
  1150. return smalltalk.withContext(function($ctx2) { return _st(aNode)._traverseClassesWith_(aCollection);
  1151. }, function($ctx2) {$ctx2.fillBlock([aNode], {})})}));
  1152. return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:", [aCollection], {}, smalltalk.ClassSorterNode)})}
  1153. }),
  1154. smalltalk.ClassSorterNode);
  1155. smalltalk.addMethod(
  1156. "_on_classes_level_",
  1157. smalltalk.method({
  1158. selector: "on:classes:level:",
  1159. fn: function (aClass,aCollection,anInteger){
  1160. var self=this;
  1161. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  1162. $2=_st(self)._new();
  1163. _st($2)._theClass_(aClass);
  1164. _st($2)._level_(anInteger);
  1165. _st($2)._getNodesFrom_(aCollection);
  1166. $3=_st($2)._yourself();
  1167. $1=$3;
  1168. return $1;
  1169. }, function($ctx1) {$ctx1.fill(self,"on:classes:level:", [aClass,aCollection,anInteger], {}, smalltalk.ClassSorterNode.klass)})}
  1170. }),
  1171. smalltalk.ClassSorterNode.klass);