Kernel-Classes.deploy.js 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  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: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:each},$ctx1)})}));
  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: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: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({},$ctx1)})}));
  121. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  122. return $1;
  123. }, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector: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: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:aStamp,prior: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: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:aString,anotherString: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: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: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({},$ctx1)})});
  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({},$ctx1)})});
  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: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: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: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:aString,aStamp: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:each},$ctx1)})}));
  357. return $1;
  358. }, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString: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({},$ctx1)})})))._add_(m);
  419. }, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
  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:category},$ctx1)})}));
  423. return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock: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: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:each},$ctx1)})}),(function(){
  571. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(" ");
  572. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  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:stream},$ctx1)})}));
  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: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: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:aString,anotherString: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:aString,aString2:aString2,aString3: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:aString,aString2:aString2,classVars:classVars,pools:pools,aString3: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:aString,aString2:aString2,aString3: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:each},$ctx1)})}),(function(){
  714. return smalltalk.withContext(function($ctx3) { return _st(stream)._nextPutAll_(" ");
  715. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  716. return _st(stream)._nextPutAll_("'");
  717. }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
  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: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_package_",
  791. smalltalk.method({
  792. selector: "addSubclassOf:named:instanceVariableNames:package:",
  793. fn: function (aClass,aString,aCollection,packageName){
  794. var self=this;
  795. return smalltalk.withContext(function($ctx1) { var $1,$2,$3;
  796. $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
  797. if(($receiver = $1) == nil || $receiver == undefined){
  798. $1;
  799. } else {
  800. $2=_st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(aString,aClass,aCollection,packageName);
  801. return $2;
  802. };
  803. $3=_st(self)._basicAddSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
  804. return $3;
  805. }, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})}
  806. }),
  807. smalltalk.ClassBuilder);
  808. smalltalk.addMethod(
  809. "_basicAddSubclassOf_named_instanceVariableNames_package_",
  810. smalltalk.method({
  811. selector: "basicAddSubclassOf:named:instanceVariableNames:package:",
  812. fn: function (aClass,aString,aCollection,packageName){
  813. var self=this;
  814. return smalltalk.withContext(function($ctx1) {
  815. smalltalk.addClass(aString, aClass, aCollection, packageName);
  816. return smalltalk[aString]
  817. ;
  818. return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})}
  819. }),
  820. smalltalk.ClassBuilder);
  821. smalltalk.addMethod(
  822. "_basicClass_instanceVariableNames_",
  823. smalltalk.method({
  824. selector: "basicClass:instanceVariableNames:",
  825. fn: function (aClass,aString){
  826. var self=this;
  827. return smalltalk.withContext(function($ctx1) { _st(self)._basicClass_instanceVariables_(aClass,_st(self)._instanceVariableNamesFor_(aString));
  828. return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
  829. }),
  830. smalltalk.ClassBuilder);
  831. smalltalk.addMethod(
  832. "_basicClass_instanceVariables_",
  833. smalltalk.method({
  834. selector: "basicClass:instanceVariables:",
  835. fn: function (aClass,aCollection){
  836. var self=this;
  837. return smalltalk.withContext(function($ctx1) { var $1;
  838. $1=_st(aClass)._isMetaclass();
  839. if(! smalltalk.assert($1)){
  840. _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
  841. };
  842. _st(aClass)._basicAt_put_("iVarNames",aCollection);
  843. return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection}, smalltalk.ClassBuilder)})}
  844. }),
  845. smalltalk.ClassBuilder);
  846. smalltalk.addMethod(
  847. "_basicRemoveClass_",
  848. smalltalk.method({
  849. selector: "basicRemoveClass:",
  850. fn: function (aClass){
  851. var self=this;
  852. return smalltalk.withContext(function($ctx1) { smalltalk.removeClass(aClass);
  853. return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass}, smalltalk.ClassBuilder)})}
  854. }),
  855. smalltalk.ClassBuilder);
  856. smalltalk.addMethod(
  857. "_basicRenameClass_to_",
  858. smalltalk.method({
  859. selector: "basicRenameClass:to:",
  860. fn: function (aClass,aString){
  861. var self=this;
  862. return smalltalk.withContext(function($ctx1) {
  863. smalltalk[aString] = aClass;
  864. delete smalltalk[aClass.className];
  865. aClass.className = aString;
  866. ;
  867. return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
  868. }),
  869. smalltalk.ClassBuilder);
  870. smalltalk.addMethod(
  871. "_class_instanceVariableNames_",
  872. smalltalk.method({
  873. selector: "class:instanceVariableNames:",
  874. fn: function (aClass,aString){
  875. var self=this;
  876. return smalltalk.withContext(function($ctx1) { var $1,$2;
  877. _st(self)._basicClass_instanceVariableNames_(aClass,aString);
  878. _st(self)._setupClass_(aClass);
  879. $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
  880. _st($1)._theClass_(aClass);
  881. $2=_st($1)._yourself();
  882. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  883. return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
  884. }),
  885. smalltalk.ClassBuilder);
  886. smalltalk.addMethod(
  887. "_copyClass_named_",
  888. smalltalk.method({
  889. selector: "copyClass:named:",
  890. fn: function (aClass,aString){
  891. var self=this;
  892. var newClass;
  893. return smalltalk.withContext(function($ctx1) { var $1;
  894. newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClass)._superclass(),aString,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
  895. _st(self)._copyClass_to_(aClass,newClass);
  896. $1=newClass;
  897. return $1;
  898. }, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass}, smalltalk.ClassBuilder)})}
  899. }),
  900. smalltalk.ClassBuilder);
  901. smalltalk.addMethod(
  902. "_copyClass_to_",
  903. smalltalk.method({
  904. selector: "copyClass:to:",
  905. fn: function (aClass,anotherClass){
  906. var self=this;
  907. return smalltalk.withContext(function($ctx1) { _st(anotherClass)._comment_(_st(aClass)._comment());
  908. _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
  909. return smalltalk.withContext(function($ctx2) { return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),anotherClass,_st(each)._category());
  910. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  911. _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
  912. _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
  913. return smalltalk.withContext(function($ctx2) { return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
  914. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  915. _st(self)._setupClass_(anotherClass);
  916. return self}, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})}
  917. }),
  918. smalltalk.ClassBuilder);
  919. smalltalk.addMethod(
  920. "_installMethod_forClass_category_",
  921. smalltalk.method({
  922. selector: "installMethod:forClass:category:",
  923. fn: function (aCompiledMethod,aBehavior,aString){
  924. var self=this;
  925. return smalltalk.withContext(function($ctx1) { var $1;
  926. _st(aCompiledMethod)._category_(aString);
  927. _st(aBehavior)._addCompiledMethod_(aCompiledMethod);
  928. _st(self)._setupClass_(aBehavior);
  929. $1=aCompiledMethod;
  930. return $1;
  931. }, function($ctx1) {$ctx1.fill(self,"installMethod:forClass:category:",{aCompiledMethod:aCompiledMethod,aBehavior:aBehavior,aString:aString}, smalltalk.ClassBuilder)})}
  932. }),
  933. smalltalk.ClassBuilder);
  934. smalltalk.addMethod(
  935. "_instanceVariableNamesFor_",
  936. smalltalk.method({
  937. selector: "instanceVariableNamesFor:",
  938. fn: function (aString){
  939. var self=this;
  940. return smalltalk.withContext(function($ctx1) { var $1;
  941. $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
  942. return smalltalk.withContext(function($ctx2) { return _st(each)._isEmpty();
  943. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  944. return $1;
  945. }, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString}, smalltalk.ClassBuilder)})}
  946. }),
  947. smalltalk.ClassBuilder);
  948. smalltalk.addMethod(
  949. "_migrateClass_superclass_",
  950. smalltalk.method({
  951. selector: "migrateClass:superclass:",
  952. fn: function (aClass,anotherClass){
  953. var self=this;
  954. return smalltalk.withContext(function($ctx1) { _st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(_st(aClass)._name(),anotherClass,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
  955. return self}, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})}
  956. }),
  957. smalltalk.ClassBuilder);
  958. smalltalk.addMethod(
  959. "_migrateClassNamed_superclass_instanceVariableNames_package_",
  960. smalltalk.method({
  961. selector: "migrateClassNamed:superclass:instanceVariableNames:package:",
  962. fn: function (aString,aClass,aCollection,packageName){
  963. var self=this;
  964. var oldClass,newClass;
  965. return smalltalk.withContext(function($ctx1) { var $1,$2,$3;
  966. oldClass=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
  967. _st(self)._basicRenameClass_to_(oldClass,_st("Old").__comma(aString));
  968. newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
  969. _st(_st(oldClass)._subclasses())._do_((function(each){
  970. return smalltalk.withContext(function($ctx2) { return _st(self)._migrateClass_superclass_(each,newClass);
  971. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  972. _st((function(){
  973. return smalltalk.withContext(function($ctx2) { return _st(self)._copyClass_to_(oldClass,newClass);
  974. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(exception){
  975. return smalltalk.withContext(function($ctx2) { $1=self;
  976. _st($1)._basicRemoveClass_(newClass);
  977. $2=_st($1)._basicRenameClass_to_(oldClass,aString);
  978. $2;
  979. return _st(exception)._signal();
  980. }, function($ctx2) {$ctx2.fillBlock({exception:exception},$ctx1)})}));
  981. _st(self)._basicRemoveClass_(oldClass);
  982. $3=newClass;
  983. return $3;
  984. }, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{aString:aString,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass}, smalltalk.ClassBuilder)})}
  985. }),
  986. smalltalk.ClassBuilder);
  987. smalltalk.addMethod(
  988. "_renameClass_to_",
  989. smalltalk.method({
  990. selector: "renameClass:to:",
  991. fn: function (aClass,aString){
  992. var self=this;
  993. return smalltalk.withContext(function($ctx1) { var $1,$2;
  994. _st(self)._basicRenameClass_to_(aClass,aString);
  995. $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
  996. _st($1)._theClass_(aClass);
  997. $2=_st($1)._yourself();
  998. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
  999. return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
  1000. }),
  1001. smalltalk.ClassBuilder);
  1002. smalltalk.addMethod(
  1003. "_setupClass_",
  1004. smalltalk.method({
  1005. selector: "setupClass:",
  1006. fn: function (aClass){
  1007. var self=this;
  1008. return smalltalk.withContext(function($ctx1) { smalltalk.init(aClass);;
  1009. return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.ClassBuilder)})}
  1010. }),
  1011. smalltalk.ClassBuilder);
  1012. smalltalk.addMethod(
  1013. "_superclass_subclass_",
  1014. smalltalk.method({
  1015. selector: "superclass:subclass:",
  1016. fn: function (aClass,aString){
  1017. var self=this;
  1018. return smalltalk.withContext(function($ctx1) { var $1;
  1019. $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
  1020. return $1;
  1021. }, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
  1022. }),
  1023. smalltalk.ClassBuilder);
  1024. smalltalk.addMethod(
  1025. "_superclass_subclass_instanceVariableNames_package_",
  1026. smalltalk.method({
  1027. selector: "superclass:subclass:instanceVariableNames:package:",
  1028. fn: function (aClass,aString,aString2,aString3){
  1029. var self=this;
  1030. var newClass;
  1031. return smalltalk.withContext(function($ctx1) { var $1,$2,$3,$4,$6,$5,$7,$8,$9;
  1032. $1=self;
  1033. $2=aClass;
  1034. $3=aString;
  1035. $4=_st(self)._instanceVariableNamesFor_(aString2);
  1036. $6=aString3;
  1037. if(($receiver = $6) == nil || $receiver == undefined){
  1038. $5="unclassified";
  1039. } else {
  1040. $5=$6;
  1041. };
  1042. newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
  1043. _st(self)._setupClass_(newClass);
  1044. $7=_st((smalltalk.ClassAdded || ClassAdded))._new();
  1045. _st($7)._theClass_(newClass);
  1046. $8=_st($7)._yourself();
  1047. _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
  1048. $9=newClass;
  1049. return $9;
  1050. }, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:",{aClass:aClass,aString:aString,aString2:aString2,aString3:aString3,newClass:newClass}, smalltalk.ClassBuilder)})}
  1051. }),
  1052. smalltalk.ClassBuilder);
  1053. smalltalk.addClass('ClassCategoryReader', smalltalk.Object, ['class', 'category'], 'Kernel-Classes');
  1054. smalltalk.addMethod(
  1055. "_class_category_",
  1056. smalltalk.method({
  1057. selector: "class:category:",
  1058. fn: function (aClass,aString){
  1059. var self=this;
  1060. return smalltalk.withContext(function($ctx1) { self["@class"]=aClass;
  1061. self["@category"]=aString;
  1062. return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString}, smalltalk.ClassCategoryReader)})}
  1063. }),
  1064. smalltalk.ClassCategoryReader);
  1065. smalltalk.addMethod(
  1066. "_compileMethod_",
  1067. smalltalk.method({
  1068. selector: "compileMethod:",
  1069. fn: function (aString){
  1070. var self=this;
  1071. return smalltalk.withContext(function($ctx1) { _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
  1072. return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString}, smalltalk.ClassCategoryReader)})}
  1073. }),
  1074. smalltalk.ClassCategoryReader);
  1075. smalltalk.addMethod(
  1076. "_initialize",
  1077. smalltalk.method({
  1078. selector: "initialize",
  1079. fn: function (){
  1080. var self=this;
  1081. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  1082. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})}
  1083. }),
  1084. smalltalk.ClassCategoryReader);
  1085. smalltalk.addMethod(
  1086. "_scanFrom_",
  1087. smalltalk.method({
  1088. selector: "scanFrom:",
  1089. fn: function (aChunkParser){
  1090. var self=this;
  1091. var chunk;
  1092. return smalltalk.withContext(function($ctx1) { _st((function(){
  1093. return smalltalk.withContext(function($ctx2) { chunk=_st(aChunkParser)._nextChunk();
  1094. chunk;
  1095. return _st(chunk)._isEmpty();
  1096. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
  1097. return smalltalk.withContext(function($ctx2) { return _st(self)._compileMethod_(chunk);
  1098. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1099. _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(self["@class"]);
  1100. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})}
  1101. }),
  1102. smalltalk.ClassCategoryReader);
  1103. smalltalk.addClass('ClassCommentReader', smalltalk.Object, ['class'], 'Kernel-Classes');
  1104. smalltalk.addMethod(
  1105. "_class_",
  1106. smalltalk.method({
  1107. selector: "class:",
  1108. fn: function (aClass){
  1109. var self=this;
  1110. return smalltalk.withContext(function($ctx1) { self["@class"]=aClass;
  1111. return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})}
  1112. }),
  1113. smalltalk.ClassCommentReader);
  1114. smalltalk.addMethod(
  1115. "_initialize",
  1116. smalltalk.method({
  1117. selector: "initialize",
  1118. fn: function (){
  1119. var self=this;
  1120. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  1121. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})}
  1122. }),
  1123. smalltalk.ClassCommentReader);
  1124. smalltalk.addMethod(
  1125. "_scanFrom_",
  1126. smalltalk.method({
  1127. selector: "scanFrom:",
  1128. fn: function (aChunkParser){
  1129. var self=this;
  1130. var chunk;
  1131. return smalltalk.withContext(function($ctx1) { var $1;
  1132. chunk=_st(aChunkParser)._nextChunk();
  1133. $1=_st(chunk)._isEmpty();
  1134. if(! smalltalk.assert($1)){
  1135. _st(self)._setComment_(chunk);
  1136. };
  1137. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})}
  1138. }),
  1139. smalltalk.ClassCommentReader);
  1140. smalltalk.addMethod(
  1141. "_setComment_",
  1142. smalltalk.method({
  1143. selector: "setComment:",
  1144. fn: function (aString){
  1145. var self=this;
  1146. return smalltalk.withContext(function($ctx1) { _st(self["@class"])._comment_(aString);
  1147. return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})}
  1148. }),
  1149. smalltalk.ClassCommentReader);
  1150. smalltalk.addClass('ClassSorterNode', smalltalk.Object, ['theClass', 'level', 'nodes'], 'Kernel-Classes');
  1151. smalltalk.addMethod(
  1152. "_getNodesFrom_",
  1153. smalltalk.method({
  1154. selector: "getNodesFrom:",
  1155. fn: function (aCollection){
  1156. var self=this;
  1157. var children,others;
  1158. return smalltalk.withContext(function($ctx1) { var $1,$3,$2;
  1159. children=[];
  1160. others=[];
  1161. $1=aCollection;
  1162. $2=(function(each){
  1163. return smalltalk.withContext(function($ctx2) { $3=_st(_st(each)._superclass()).__eq(_st(self)._theClass());
  1164. if(smalltalk.assert($3)){
  1165. return _st(children)._add_(each);
  1166. } else {
  1167. return _st(others)._add_(each);
  1168. };
  1169. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
  1170. _st($1)._do_($2);
  1171. self["@nodes"]=_st(children)._collect_((function(each){
  1172. return smalltalk.withContext(function($ctx2) { return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,_st(_st(self)._level()).__plus((1)));
  1173. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  1174. return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})}
  1175. }),
  1176. smalltalk.ClassSorterNode);
  1177. smalltalk.addMethod(
  1178. "_level",
  1179. smalltalk.method({
  1180. selector: "level",
  1181. fn: function (){
  1182. var self=this;
  1183. return smalltalk.withContext(function($ctx1) { var $1;
  1184. $1=self["@level"];
  1185. return $1;
  1186. }, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})}
  1187. }),
  1188. smalltalk.ClassSorterNode);
  1189. smalltalk.addMethod(
  1190. "_level_",
  1191. smalltalk.method({
  1192. selector: "level:",
  1193. fn: function (anInteger){
  1194. var self=this;
  1195. return smalltalk.withContext(function($ctx1) { self["@level"]=anInteger;
  1196. return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})}
  1197. }),
  1198. smalltalk.ClassSorterNode);
  1199. smalltalk.addMethod(
  1200. "_nodes",
  1201. smalltalk.method({
  1202. selector: "nodes",
  1203. fn: function (){
  1204. var self=this;
  1205. return smalltalk.withContext(function($ctx1) { var $1;
  1206. $1=self["@nodes"];
  1207. return $1;
  1208. }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})}
  1209. }),
  1210. smalltalk.ClassSorterNode);
  1211. smalltalk.addMethod(
  1212. "_theClass",
  1213. smalltalk.method({
  1214. selector: "theClass",
  1215. fn: function (){
  1216. var self=this;
  1217. return smalltalk.withContext(function($ctx1) { var $1;
  1218. $1=self["@theClass"];
  1219. return $1;
  1220. }, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})}
  1221. }),
  1222. smalltalk.ClassSorterNode);
  1223. smalltalk.addMethod(
  1224. "_theClass_",
  1225. smalltalk.method({
  1226. selector: "theClass:",
  1227. fn: function (aClass){
  1228. var self=this;
  1229. return smalltalk.withContext(function($ctx1) { self["@theClass"]=aClass;
  1230. return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})}
  1231. }),
  1232. smalltalk.ClassSorterNode);
  1233. smalltalk.addMethod(
  1234. "_traverseClassesWith_",
  1235. smalltalk.method({
  1236. selector: "traverseClassesWith:",
  1237. fn: function (aCollection){
  1238. var self=this;
  1239. return smalltalk.withContext(function($ctx1) { _st(aCollection)._add_(_st(self)._theClass());
  1240. _st(_st(_st(self)._nodes())._sorted_((function(a,b){
  1241. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
  1242. }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(aNode){
  1243. return smalltalk.withContext(function($ctx2) { return _st(aNode)._traverseClassesWith_(aCollection);
  1244. }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
  1245. return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})}
  1246. }),
  1247. smalltalk.ClassSorterNode);
  1248. smalltalk.addMethod(
  1249. "_on_classes_level_",
  1250. smalltalk.method({
  1251. selector: "on:classes:level:",
  1252. fn: function (aClass,aCollection,anInteger){
  1253. var self=this;
  1254. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  1255. $2=_st(self)._new();
  1256. _st($2)._theClass_(aClass);
  1257. _st($2)._level_(anInteger);
  1258. _st($2)._getNodesFrom_(aCollection);
  1259. $3=_st($2)._yourself();
  1260. $1=$3;
  1261. return $1;
  1262. }, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger}, smalltalk.ClassSorterNode.klass)})}
  1263. }),
  1264. smalltalk.ClassSorterNode.klass);