Kernel-Classes.deploy.js 24 KB

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