1
0

Kernel-Classes.deploy.js 26 KB

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