2
0

Kernel-Classes.deploy.js 28 KB

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