1
0

Kernel-Classes.deploy.js 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268
  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_",
  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:aClass,aString:aString,aCollection: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:aClass,aString:aString,aCollection:aCollection,packageName: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:aClass,aString: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:aClass,aString: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:aClass,aString: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:each},$ctx1)})}));
  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:each},$ctx1)})}));
  872. _st(self)._setupClass_(newClass);
  873. $1=newClass;
  874. return $1;
  875. }, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString: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:each},$ctx1)})}));
  888. return $1;
  889. }, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString: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:aClass,aString: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: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:aClass,aString: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:aClass,aString:aString,aString2:aString2,aString3:aString3,newClass:newClass}, smalltalk.ClassBuilder)})}
  956. }),
  957. smalltalk.ClassBuilder);
  958. smalltalk.addClass('ClassCategoryReader', smalltalk.Object, ['class', 'category'], '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:aClass,aString: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: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. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})}
  988. }),
  989. smalltalk.ClassCategoryReader);
  990. smalltalk.addMethod(
  991. "_scanFrom_",
  992. smalltalk.method({
  993. selector: "scanFrom:",
  994. fn: function (aChunkParser){
  995. var self=this;
  996. var chunk;
  997. return smalltalk.withContext(function($ctx1) { _st((function(){
  998. return smalltalk.withContext(function($ctx2) { chunk=_st(aChunkParser)._nextChunk();
  999. chunk;
  1000. return _st(chunk)._isEmpty();
  1001. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
  1002. return smalltalk.withContext(function($ctx2) { return _st(self)._compileMethod_(chunk);
  1003. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1004. _st(_st((smalltalk.Compiler || Compiler))._new())._setupClass_(self["@class"]);
  1005. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})}
  1006. }),
  1007. smalltalk.ClassCategoryReader);
  1008. smalltalk.addClass('ClassCommentReader', smalltalk.Object, ['class'], 'Kernel-Classes');
  1009. smalltalk.addMethod(
  1010. "_class_",
  1011. smalltalk.method({
  1012. selector: "class:",
  1013. fn: function (aClass){
  1014. var self=this;
  1015. return smalltalk.withContext(function($ctx1) { self["@class"]=aClass;
  1016. return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})}
  1017. }),
  1018. smalltalk.ClassCommentReader);
  1019. smalltalk.addMethod(
  1020. "_initialize",
  1021. smalltalk.method({
  1022. selector: "initialize",
  1023. fn: function (){
  1024. var self=this;
  1025. return smalltalk.withContext(function($ctx1) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  1026. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})}
  1027. }),
  1028. smalltalk.ClassCommentReader);
  1029. smalltalk.addMethod(
  1030. "_scanFrom_",
  1031. smalltalk.method({
  1032. selector: "scanFrom:",
  1033. fn: function (aChunkParser){
  1034. var self=this;
  1035. var chunk;
  1036. return smalltalk.withContext(function($ctx1) { var $1;
  1037. chunk=_st(aChunkParser)._nextChunk();
  1038. $1=_st(chunk)._isEmpty();
  1039. if(! smalltalk.assert($1)){
  1040. _st(self)._setComment_(chunk);
  1041. };
  1042. return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})}
  1043. }),
  1044. smalltalk.ClassCommentReader);
  1045. smalltalk.addMethod(
  1046. "_setComment_",
  1047. smalltalk.method({
  1048. selector: "setComment:",
  1049. fn: function (aString){
  1050. var self=this;
  1051. return smalltalk.withContext(function($ctx1) { _st(self["@class"])._comment_(aString);
  1052. return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})}
  1053. }),
  1054. smalltalk.ClassCommentReader);
  1055. smalltalk.addClass('ClassSorterNode', smalltalk.Object, ['theClass', 'level', 'nodes'], 'Kernel-Classes');
  1056. smalltalk.addMethod(
  1057. "_getNodesFrom_",
  1058. smalltalk.method({
  1059. selector: "getNodesFrom:",
  1060. fn: function (aCollection){
  1061. var self=this;
  1062. var children,others;
  1063. return smalltalk.withContext(function($ctx1) { var $1,$3,$2;
  1064. children=[];
  1065. others=[];
  1066. $1=aCollection;
  1067. $2=(function(each){
  1068. return smalltalk.withContext(function($ctx2) { $3=_st(_st(each)._superclass()).__eq(_st(self)._theClass());
  1069. if(smalltalk.assert($3)){
  1070. return _st(children)._add_(each);
  1071. } else {
  1072. return _st(others)._add_(each);
  1073. };
  1074. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
  1075. _st($1)._do_($2);
  1076. self["@nodes"]=_st(children)._collect_((function(each){
  1077. return smalltalk.withContext(function($ctx2) { return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,_st(_st(self)._level()).__plus((1)));
  1078. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  1079. return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})}
  1080. }),
  1081. smalltalk.ClassSorterNode);
  1082. smalltalk.addMethod(
  1083. "_level",
  1084. smalltalk.method({
  1085. selector: "level",
  1086. fn: function (){
  1087. var self=this;
  1088. return smalltalk.withContext(function($ctx1) { var $1;
  1089. $1=self["@level"];
  1090. return $1;
  1091. }, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})}
  1092. }),
  1093. smalltalk.ClassSorterNode);
  1094. smalltalk.addMethod(
  1095. "_level_",
  1096. smalltalk.method({
  1097. selector: "level:",
  1098. fn: function (anInteger){
  1099. var self=this;
  1100. return smalltalk.withContext(function($ctx1) { self["@level"]=anInteger;
  1101. return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})}
  1102. }),
  1103. smalltalk.ClassSorterNode);
  1104. smalltalk.addMethod(
  1105. "_nodes",
  1106. smalltalk.method({
  1107. selector: "nodes",
  1108. fn: function (){
  1109. var self=this;
  1110. return smalltalk.withContext(function($ctx1) { var $1;
  1111. $1=self["@nodes"];
  1112. return $1;
  1113. }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})}
  1114. }),
  1115. smalltalk.ClassSorterNode);
  1116. smalltalk.addMethod(
  1117. "_theClass",
  1118. smalltalk.method({
  1119. selector: "theClass",
  1120. fn: function (){
  1121. var self=this;
  1122. return smalltalk.withContext(function($ctx1) { var $1;
  1123. $1=self["@theClass"];
  1124. return $1;
  1125. }, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})}
  1126. }),
  1127. smalltalk.ClassSorterNode);
  1128. smalltalk.addMethod(
  1129. "_theClass_",
  1130. smalltalk.method({
  1131. selector: "theClass:",
  1132. fn: function (aClass){
  1133. var self=this;
  1134. return smalltalk.withContext(function($ctx1) { self["@theClass"]=aClass;
  1135. return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})}
  1136. }),
  1137. smalltalk.ClassSorterNode);
  1138. smalltalk.addMethod(
  1139. "_traverseClassesWith_",
  1140. smalltalk.method({
  1141. selector: "traverseClassesWith:",
  1142. fn: function (aCollection){
  1143. var self=this;
  1144. return smalltalk.withContext(function($ctx1) { _st(aCollection)._add_(_st(self)._theClass());
  1145. _st(_st(_st(self)._nodes())._sorted_((function(a,b){
  1146. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
  1147. }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(aNode){
  1148. return smalltalk.withContext(function($ctx2) { return _st(aNode)._traverseClassesWith_(aCollection);
  1149. }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
  1150. return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})}
  1151. }),
  1152. smalltalk.ClassSorterNode);
  1153. smalltalk.addMethod(
  1154. "_on_classes_level_",
  1155. smalltalk.method({
  1156. selector: "on:classes:level:",
  1157. fn: function (aClass,aCollection,anInteger){
  1158. var self=this;
  1159. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  1160. $2=_st(self)._new();
  1161. _st($2)._theClass_(aClass);
  1162. _st($2)._level_(anInteger);
  1163. _st($2)._getNodesFrom_(aCollection);
  1164. $3=_st($2)._yourself();
  1165. $1=$3;
  1166. return $1;
  1167. }, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger}, smalltalk.ClassSorterNode.klass)})}
  1168. }),
  1169. smalltalk.ClassSorterNode.klass);