Kernel-Helpers.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. define(["amber/boot", "require"], function($boot,requirejs){"use strict";
  2. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. var $pkg = $core.addPackage("Kernel-Helpers");
  4. $pkg.innerEval = function (expr) { return eval(expr); };
  5. $pkg.transport = {"type":"amd","amdNamespace":"amber/core"};
  6. $core.addTrait("TPragmator", "Kernel-Helpers");
  7. $core.addMethod(
  8. $core.method({
  9. selector: "canProcessPragma:",
  10. protocol: "pragma processing",
  11. fn: function (aMessage){
  12. var self=this,$self=this;
  13. var selector;
  14. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  15. return $core.withContext(function($ctx1) {
  16. //>>excludeEnd("ctx");
  17. selector=$recv(aMessage)._selector();
  18. return $recv($self._respondsTo_(selector))._and_((function(){
  19. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  20. return $core.withContext(function($ctx2) {
  21. //>>excludeEnd("ctx");
  22. return $recv($recv($recv($self._class())._superclass())._canUnderstand_(selector))._not();
  23. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  24. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  25. //>>excludeEnd("ctx");
  26. }));
  27. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  28. }, function($ctx1) {$ctx1.fill(self,"canProcessPragma:",{aMessage:aMessage,selector:selector})});
  29. //>>excludeEnd("ctx");
  30. },
  31. //>>excludeStart("ide", pragmas.excludeIdeData);
  32. args: ["aMessage"],
  33. source: "canProcessPragma: aMessage\x0a\x09| selector |\x0a\x09selector := aMessage selector.\x0a\x09^ (self respondsTo: selector) and: [\x0a\x09\x09(self class superclass canUnderstand: selector) not]",
  34. referencedClasses: [],
  35. //>>excludeEnd("ide");
  36. pragmas: [],
  37. messageSends: ["selector", "and:", "respondsTo:", "not", "canUnderstand:", "superclass", "class"]
  38. }),
  39. $globals.TPragmator);
  40. $core.addMethod(
  41. $core.method({
  42. selector: "processPragma:",
  43. protocol: "pragma processing",
  44. fn: function (aMessage){
  45. var self=this,$self=this;
  46. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  47. return $core.withContext(function($ctx1) {
  48. //>>excludeEnd("ctx");
  49. var $1;
  50. $1=$self._canProcessPragma_(aMessage);
  51. if($core.assert($1)){
  52. return $recv(aMessage)._sendTo_(self);
  53. }
  54. return self;
  55. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  56. }, function($ctx1) {$ctx1.fill(self,"processPragma:",{aMessage:aMessage})});
  57. //>>excludeEnd("ctx");
  58. },
  59. //>>excludeStart("ide", pragmas.excludeIdeData);
  60. args: ["aMessage"],
  61. source: "processPragma: aMessage\x0a\x09(self canProcessPragma: aMessage) ifTrue: [\x0a\x09\x09^ aMessage sendTo: self ]",
  62. referencedClasses: [],
  63. //>>excludeEnd("ide");
  64. pragmas: [],
  65. messageSends: ["ifTrue:", "canProcessPragma:", "sendTo:"]
  66. }),
  67. $globals.TPragmator);
  68. $core.addMethod(
  69. $core.method({
  70. selector: "processPragmas:",
  71. protocol: "pragma processing",
  72. fn: function (aCollection){
  73. var self=this,$self=this;
  74. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  75. return $core.withContext(function($ctx1) {
  76. //>>excludeEnd("ctx");
  77. $recv(aCollection)._do_((function(each){
  78. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  79. return $core.withContext(function($ctx2) {
  80. //>>excludeEnd("ctx");
  81. return $self._processPragma_(each);
  82. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  83. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  84. //>>excludeEnd("ctx");
  85. }));
  86. return self;
  87. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  88. }, function($ctx1) {$ctx1.fill(self,"processPragmas:",{aCollection:aCollection})});
  89. //>>excludeEnd("ctx");
  90. },
  91. //>>excludeStart("ide", pragmas.excludeIdeData);
  92. args: ["aCollection"],
  93. source: "processPragmas: aCollection\x0a\x09aCollection do: [ :each | self processPragma: each ]",
  94. referencedClasses: [],
  95. //>>excludeEnd("ide");
  96. pragmas: [],
  97. messageSends: ["do:", "processPragma:"]
  98. }),
  99. $globals.TPragmator);
  100. $core.addTrait("TSubclassable", "Kernel-Helpers");
  101. $core.addMethod(
  102. $core.method({
  103. selector: "subclass:",
  104. protocol: "class creation",
  105. fn: function (aString){
  106. var self=this,$self=this;
  107. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  108. return $core.withContext(function($ctx1) {
  109. //>>excludeEnd("ctx");
  110. return $self._subclass_slots_package_(aString,[],nil);
  111. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  112. }, function($ctx1) {$ctx1.fill(self,"subclass:",{aString:aString})});
  113. //>>excludeEnd("ctx");
  114. },
  115. //>>excludeStart("ide", pragmas.excludeIdeData);
  116. args: ["aString"],
  117. source: "subclass: aString \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: #() package: nil",
  118. referencedClasses: [],
  119. //>>excludeEnd("ide");
  120. pragmas: [],
  121. messageSends: ["subclass:slots:package:"]
  122. }),
  123. $globals.TSubclassable);
  124. $core.addMethod(
  125. $core.method({
  126. selector: "subclass:instanceVariableNames:",
  127. protocol: "class creation",
  128. fn: function (aString,anotherString){
  129. var self=this,$self=this;
  130. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  131. return $core.withContext(function($ctx1) {
  132. //>>excludeEnd("ctx");
  133. return $self._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  134. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  135. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString})});
  136. //>>excludeEnd("ctx");
  137. },
  138. //>>excludeStart("ide", pragmas.excludeIdeData);
  139. args: ["aString", "anotherString"],
  140. source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: anotherString package: nil",
  141. referencedClasses: [],
  142. //>>excludeEnd("ide");
  143. pragmas: [],
  144. messageSends: ["subclass:instanceVariableNames:package:"]
  145. }),
  146. $globals.TSubclassable);
  147. $core.addMethod(
  148. $core.method({
  149. selector: "subclass:instanceVariableNames:category:",
  150. protocol: "class creation",
  151. fn: function (aString,aString2,aString3){
  152. var self=this,$self=this;
  153. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  154. return $core.withContext(function($ctx1) {
  155. //>>excludeEnd("ctx");
  156. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  157. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  158. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3})});
  159. //>>excludeEnd("ctx");
  160. },
  161. //>>excludeStart("ide", pragmas.excludeIdeData);
  162. args: ["aString", "aString2", "aString3"],
  163. source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  164. referencedClasses: [],
  165. //>>excludeEnd("ide");
  166. pragmas: [],
  167. messageSends: ["subclass:instanceVariableNames:package:"]
  168. }),
  169. $globals.TSubclassable);
  170. $core.addMethod(
  171. $core.method({
  172. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  173. protocol: "class creation",
  174. fn: function (aString,aString2,classVars,pools,aString3){
  175. var self=this,$self=this;
  176. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  177. return $core.withContext(function($ctx1) {
  178. //>>excludeEnd("ctx");
  179. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  180. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  181. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  182. //>>excludeEnd("ctx");
  183. },
  184. //>>excludeStart("ide", pragmas.excludeIdeData);
  185. args: ["aString", "aString2", "classVars", "pools", "aString3"],
  186. source: "subclass: aString instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3\x0a\x09\x22Kept for file-in compatibility. ignores class variables and pools.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  187. referencedClasses: [],
  188. //>>excludeEnd("ide");
  189. pragmas: [],
  190. messageSends: ["subclass:instanceVariableNames:package:"]
  191. }),
  192. $globals.TSubclassable);
  193. $core.addMethod(
  194. $core.method({
  195. selector: "subclass:instanceVariableNames:package:",
  196. protocol: "class creation",
  197. fn: function (aString,aString2,aString3){
  198. var self=this,$self=this;
  199. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  200. return $core.withContext(function($ctx1) {
  201. //>>excludeEnd("ctx");
  202. return $self._subclass_slots_package_(aString,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  203. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  204. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3})});
  205. //>>excludeEnd("ctx");
  206. },
  207. //>>excludeStart("ide", pragmas.excludeIdeData);
  208. args: ["aString", "aString2", "aString3"],
  209. source: "subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: aString2 instanceVariablesStringAsSlotList package: aString3",
  210. referencedClasses: [],
  211. //>>excludeEnd("ide");
  212. pragmas: [],
  213. messageSends: ["subclass:slots:package:", "instanceVariablesStringAsSlotList"]
  214. }),
  215. $globals.TSubclassable);
  216. $core.addMethod(
  217. $core.method({
  218. selector: "subclass:slots:",
  219. protocol: "class creation",
  220. fn: function (aString,aCollection){
  221. var self=this,$self=this;
  222. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  223. return $core.withContext(function($ctx1) {
  224. //>>excludeEnd("ctx");
  225. return $self._subclass_slots_package_(aString,aCollection,nil);
  226. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  227. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:",{aString:aString,aCollection:aCollection})});
  228. //>>excludeEnd("ctx");
  229. },
  230. //>>excludeStart("ide", pragmas.excludeIdeData);
  231. args: ["aString", "aCollection"],
  232. source: "subclass: aString slots: aCollection\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: aCollection package: nil",
  233. referencedClasses: [],
  234. //>>excludeEnd("ide");
  235. pragmas: [],
  236. messageSends: ["subclass:slots:package:"]
  237. }),
  238. $globals.TSubclassable);
  239. $core.addMethod(
  240. $core.method({
  241. selector: "subclass:slots:classVariables:package:",
  242. protocol: "class creation",
  243. fn: function (aString,aCollection,anObject,anotherString){
  244. var self=this,$self=this;
  245. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  246. return $core.withContext(function($ctx1) {
  247. //>>excludeEnd("ctx");
  248. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  249. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  250. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherString:anotherString})});
  251. //>>excludeEnd("ctx");
  252. },
  253. //>>excludeStart("ide", pragmas.excludeIdeData);
  254. args: ["aString", "aCollection", "anObject", "anotherString"],
  255. source: "subclass: aString slots: aCollection classVariables: anObject package: anotherString\x0a\x09\x22Kept for file-in compatibility. ignores class variables.\x22\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  256. referencedClasses: ["ClassBuilder"],
  257. //>>excludeEnd("ide");
  258. pragmas: [],
  259. messageSends: ["superclass:subclass:slots:package:", "new"]
  260. }),
  261. $globals.TSubclassable);
  262. $core.addMethod(
  263. $core.method({
  264. selector: "subclass:slots:classVariables:poolDictionaries:package:",
  265. protocol: "class creation",
  266. fn: function (aString,aCollection,anObject,anotherObject,anotherString){
  267. var self=this,$self=this;
  268. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  269. return $core.withContext(function($ctx1) {
  270. //>>excludeEnd("ctx");
  271. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  272. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  273. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:poolDictionaries:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherObject:anotherObject,anotherString:anotherString})});
  274. //>>excludeEnd("ctx");
  275. },
  276. //>>excludeStart("ide", pragmas.excludeIdeData);
  277. args: ["aString", "aCollection", "anObject", "anotherObject", "anotherString"],
  278. source: "subclass: aString slots: aCollection classVariables: anObject poolDictionaries: anotherObject package: anotherString\x0a\x09\x22Kept for file-in compatibility. ignores class variables and pools.\x22\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  279. referencedClasses: ["ClassBuilder"],
  280. //>>excludeEnd("ide");
  281. pragmas: [],
  282. messageSends: ["superclass:subclass:slots:package:", "new"]
  283. }),
  284. $globals.TSubclassable);
  285. $core.addMethod(
  286. $core.method({
  287. selector: "subclass:slots:package:",
  288. protocol: "class creation",
  289. fn: function (aString,aCollection,anotherString){
  290. var self=this,$self=this;
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. return $core.withContext(function($ctx1) {
  293. //>>excludeEnd("ctx");
  294. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  295. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  296. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:package:",{aString:aString,aCollection:aCollection,anotherString:anotherString})});
  297. //>>excludeEnd("ctx");
  298. },
  299. //>>excludeStart("ide", pragmas.excludeIdeData);
  300. args: ["aString", "aCollection", "anotherString"],
  301. source: "subclass: aString slots: aCollection package: anotherString\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  302. referencedClasses: ["ClassBuilder"],
  303. //>>excludeEnd("ide");
  304. pragmas: [],
  305. messageSends: ["superclass:subclass:slots:package:", "new"]
  306. }),
  307. $globals.TSubclassable);
  308. $core.addMethod(
  309. $core.method({
  310. selector: "subclass:uses:",
  311. protocol: "class creation",
  312. fn: function (aString,aTraitCompositionDescription){
  313. var self=this,$self=this;
  314. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  315. return $core.withContext(function($ctx1) {
  316. //>>excludeEnd("ctx");
  317. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,[],nil);
  318. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  319. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription})});
  320. //>>excludeEnd("ctx");
  321. },
  322. //>>excludeStart("ide", pragmas.excludeIdeData);
  323. args: ["aString", "aTraitCompositionDescription"],
  324. source: "subclass: aString uses: aTraitCompositionDescription \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil",
  325. referencedClasses: [],
  326. //>>excludeEnd("ide");
  327. pragmas: [],
  328. messageSends: ["subclass:uses:slots:package:"]
  329. }),
  330. $globals.TSubclassable);
  331. $core.addMethod(
  332. $core.method({
  333. selector: "subclass:uses:instanceVariableNames:",
  334. protocol: "class creation",
  335. fn: function (aString,aTraitCompositionDescription,anotherString){
  336. var self=this,$self=this;
  337. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  338. return $core.withContext(function($ctx1) {
  339. //>>excludeEnd("ctx");
  340. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,anotherString,nil);
  341. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  342. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,anotherString:anotherString})});
  343. //>>excludeEnd("ctx");
  344. },
  345. //>>excludeStart("ide", pragmas.excludeIdeData);
  346. args: ["aString", "aTraitCompositionDescription", "anotherString"],
  347. source: "subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString package: nil",
  348. referencedClasses: [],
  349. //>>excludeEnd("ide");
  350. pragmas: [],
  351. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  352. }),
  353. $globals.TSubclassable);
  354. $core.addMethod(
  355. $core.method({
  356. selector: "subclass:uses:instanceVariableNames:category:",
  357. protocol: "class creation",
  358. fn: function (aString,aTraitCompositionDescription,aString2,aString3){
  359. var self=this,$self=this;
  360. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  361. return $core.withContext(function($ctx1) {
  362. //>>excludeEnd("ctx");
  363. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  364. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  365. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  366. //>>excludeEnd("ctx");
  367. },
  368. //>>excludeStart("ide", pragmas.excludeIdeData);
  369. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  370. source: "subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3",
  371. referencedClasses: [],
  372. //>>excludeEnd("ide");
  373. pragmas: [],
  374. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  375. }),
  376. $globals.TSubclassable);
  377. $core.addMethod(
  378. $core.method({
  379. selector: "subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  380. protocol: "class creation",
  381. fn: function (aString,aTraitCompositionDescription,aString2,classVars,pools,aString3){
  382. var self=this,$self=this;
  383. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  384. return $core.withContext(function($ctx1) {
  385. //>>excludeEnd("ctx");
  386. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  387. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  388. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  389. //>>excludeEnd("ctx");
  390. },
  391. //>>excludeStart("ide", pragmas.excludeIdeData);
  392. args: ["aString", "aTraitCompositionDescription", "aString2", "classVars", "pools", "aString3"],
  393. source: "subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3\x0a\x09\x22Kept for file-in compatibility. ignores class variables and pools.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3",
  394. referencedClasses: [],
  395. //>>excludeEnd("ide");
  396. pragmas: [],
  397. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  398. }),
  399. $globals.TSubclassable);
  400. $core.addMethod(
  401. $core.method({
  402. selector: "subclass:uses:instanceVariableNames:package:",
  403. protocol: "class creation",
  404. fn: function (aString,aTraitCompositionDescription,aString2,aString3){
  405. var self=this,$self=this;
  406. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  407. return $core.withContext(function($ctx1) {
  408. //>>excludeEnd("ctx");
  409. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  410. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  411. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  412. //>>excludeEnd("ctx");
  413. },
  414. //>>excludeStart("ide", pragmas.excludeIdeData);
  415. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  416. source: "subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: aString2 instanceVariablesStringAsSlotList package: aString3",
  417. referencedClasses: [],
  418. //>>excludeEnd("ide");
  419. pragmas: [],
  420. messageSends: ["subclass:uses:slots:package:", "instanceVariablesStringAsSlotList"]
  421. }),
  422. $globals.TSubclassable);
  423. $core.addMethod(
  424. $core.method({
  425. selector: "subclass:uses:slots:",
  426. protocol: "class creation",
  427. fn: function (aString,aTraitCompositionDescription,aCollection){
  428. var self=this,$self=this;
  429. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  430. return $core.withContext(function($ctx1) {
  431. //>>excludeEnd("ctx");
  432. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,aCollection,nil);
  433. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  434. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection})});
  435. //>>excludeEnd("ctx");
  436. },
  437. //>>excludeStart("ide", pragmas.excludeIdeData);
  438. args: ["aString", "aTraitCompositionDescription", "aCollection"],
  439. source: "subclass: aString uses: aTraitCompositionDescription slots: aCollection\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: aCollection package: nil",
  440. referencedClasses: [],
  441. //>>excludeEnd("ide");
  442. pragmas: [],
  443. messageSends: ["subclass:uses:slots:package:"]
  444. }),
  445. $globals.TSubclassable);
  446. $core.addMethod(
  447. $core.method({
  448. selector: "subclass:uses:slots:package:",
  449. protocol: "class creation",
  450. fn: function (aString,aTraitCompositionDescription,aCollection,aString3){
  451. var self=this,$self=this;
  452. var cls;
  453. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  454. return $core.withContext(function($ctx1) {
  455. //>>excludeEnd("ctx");
  456. cls=$self._subclass_slots_package_(aString,aCollection,aString3);
  457. $recv(cls)._setTraitComposition_($recv(aTraitCompositionDescription)._asTraitComposition());
  458. return cls;
  459. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  460. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection,aString3:aString3,cls:cls})});
  461. //>>excludeEnd("ctx");
  462. },
  463. //>>excludeStart("ide", pragmas.excludeIdeData);
  464. args: ["aString", "aTraitCompositionDescription", "aCollection", "aString3"],
  465. source: "subclass: aString uses: aTraitCompositionDescription slots: aCollection package: aString3\x0a\x09| cls |\x0a\x09cls := self subclass: aString slots: aCollection package: aString3.\x0a\x09cls setTraitComposition: aTraitCompositionDescription asTraitComposition.\x0a\x09^ cls",
  466. referencedClasses: [],
  467. //>>excludeEnd("ide");
  468. pragmas: [],
  469. messageSends: ["subclass:slots:package:", "setTraitComposition:", "asTraitComposition"]
  470. }),
  471. $globals.TSubclassable);
  472. });