Kernel-Helpers.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649
  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("TIsInGroup", "Kernel-Helpers");
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.TIsInGroup.comment="I contain all `isXxx` checking methods that check\x0aif receiver is part of some group of objects (`isBehavior` etc.)\x0a\x0aI should NOT contain tests for\x0ahaving a certain property (`isImmutable` etc.).";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "isBehavior",
  13. protocol: "testing",
  14. //>>excludeStart("ide", pragmas.excludeIdeData);
  15. args: [],
  16. source: "isBehavior\x0a\x09^ false",
  17. referencedClasses: [],
  18. //>>excludeEnd("ide");
  19. pragmas: [],
  20. messageSends: []
  21. }, function ($methodClass){ return function (){
  22. var self=this,$self=this;
  23. return false;
  24. }; }),
  25. $globals.TIsInGroup);
  26. $core.addMethod(
  27. $core.method({
  28. selector: "isBoolean",
  29. protocol: "testing",
  30. //>>excludeStart("ide", pragmas.excludeIdeData);
  31. args: [],
  32. source: "isBoolean\x0a\x09^ false",
  33. referencedClasses: [],
  34. //>>excludeEnd("ide");
  35. pragmas: [],
  36. messageSends: []
  37. }, function ($methodClass){ return function (){
  38. var self=this,$self=this;
  39. return false;
  40. }; }),
  41. $globals.TIsInGroup);
  42. $core.addMethod(
  43. $core.method({
  44. selector: "isClass",
  45. protocol: "testing",
  46. //>>excludeStart("ide", pragmas.excludeIdeData);
  47. args: [],
  48. source: "isClass\x0a\x09^ false",
  49. referencedClasses: [],
  50. //>>excludeEnd("ide");
  51. pragmas: [],
  52. messageSends: []
  53. }, function ($methodClass){ return function (){
  54. var self=this,$self=this;
  55. return false;
  56. }; }),
  57. $globals.TIsInGroup);
  58. $core.addMethod(
  59. $core.method({
  60. selector: "isCompiledMethod",
  61. protocol: "testing",
  62. //>>excludeStart("ide", pragmas.excludeIdeData);
  63. args: [],
  64. source: "isCompiledMethod\x0a\x09^ false",
  65. referencedClasses: [],
  66. //>>excludeEnd("ide");
  67. pragmas: [],
  68. messageSends: []
  69. }, function ($methodClass){ return function (){
  70. var self=this,$self=this;
  71. return false;
  72. }; }),
  73. $globals.TIsInGroup);
  74. $core.addMethod(
  75. $core.method({
  76. selector: "isError",
  77. protocol: "testing",
  78. //>>excludeStart("ide", pragmas.excludeIdeData);
  79. args: [],
  80. source: "isError\x0a\x09^ false",
  81. referencedClasses: [],
  82. //>>excludeEnd("ide");
  83. pragmas: [],
  84. messageSends: []
  85. }, function ($methodClass){ return function (){
  86. var self=this,$self=this;
  87. return false;
  88. }; }),
  89. $globals.TIsInGroup);
  90. $core.addMethod(
  91. $core.method({
  92. selector: "isMetaclass",
  93. protocol: "testing",
  94. //>>excludeStart("ide", pragmas.excludeIdeData);
  95. args: [],
  96. source: "isMetaclass\x0a\x09^ false",
  97. referencedClasses: [],
  98. //>>excludeEnd("ide");
  99. pragmas: [],
  100. messageSends: []
  101. }, function ($methodClass){ return function (){
  102. var self=this,$self=this;
  103. return false;
  104. }; }),
  105. $globals.TIsInGroup);
  106. $core.addMethod(
  107. $core.method({
  108. selector: "isNumber",
  109. protocol: "testing",
  110. //>>excludeStart("ide", pragmas.excludeIdeData);
  111. args: [],
  112. source: "isNumber\x0a\x09^ false",
  113. referencedClasses: [],
  114. //>>excludeEnd("ide");
  115. pragmas: [],
  116. messageSends: []
  117. }, function ($methodClass){ return function (){
  118. var self=this,$self=this;
  119. return false;
  120. }; }),
  121. $globals.TIsInGroup);
  122. $core.addMethod(
  123. $core.method({
  124. selector: "isPackage",
  125. protocol: "testing",
  126. //>>excludeStart("ide", pragmas.excludeIdeData);
  127. args: [],
  128. source: "isPackage\x0a\x09^ false",
  129. referencedClasses: [],
  130. //>>excludeEnd("ide");
  131. pragmas: [],
  132. messageSends: []
  133. }, function ($methodClass){ return function (){
  134. var self=this,$self=this;
  135. return false;
  136. }; }),
  137. $globals.TIsInGroup);
  138. $core.addMethod(
  139. $core.method({
  140. selector: "isString",
  141. protocol: "testing",
  142. //>>excludeStart("ide", pragmas.excludeIdeData);
  143. args: [],
  144. source: "isString\x0a\x09^ false",
  145. referencedClasses: [],
  146. //>>excludeEnd("ide");
  147. pragmas: [],
  148. messageSends: []
  149. }, function ($methodClass){ return function (){
  150. var self=this,$self=this;
  151. return false;
  152. }; }),
  153. $globals.TIsInGroup);
  154. $core.addMethod(
  155. $core.method({
  156. selector: "isSymbol",
  157. protocol: "testing",
  158. //>>excludeStart("ide", pragmas.excludeIdeData);
  159. args: [],
  160. source: "isSymbol\x0a\x09^ false",
  161. referencedClasses: [],
  162. //>>excludeEnd("ide");
  163. pragmas: [],
  164. messageSends: []
  165. }, function ($methodClass){ return function (){
  166. var self=this,$self=this;
  167. return false;
  168. }; }),
  169. $globals.TIsInGroup);
  170. $core.addTrait("TPragmator", "Kernel-Helpers");
  171. $core.addMethod(
  172. $core.method({
  173. selector: "canProcessPragma:",
  174. protocol: "pragma processing",
  175. //>>excludeStart("ide", pragmas.excludeIdeData);
  176. args: ["aMessage"],
  177. source: "canProcessPragma: aMessage\x0a\x09^ self class includesSelector: aMessage selector",
  178. referencedClasses: [],
  179. //>>excludeEnd("ide");
  180. pragmas: [],
  181. messageSends: ["includesSelector:", "class", "selector"]
  182. }, function ($methodClass){ return function (aMessage){
  183. var self=this,$self=this;
  184. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  185. return $core.withContext(function($ctx1) {
  186. //>>excludeEnd("ctx");
  187. return $recv($self._class())._includesSelector_($recv(aMessage)._selector());
  188. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  189. }, function($ctx1) {$ctx1.fill(self,"canProcessPragma:",{aMessage:aMessage})});
  190. //>>excludeEnd("ctx");
  191. }; }),
  192. $globals.TPragmator);
  193. $core.addMethod(
  194. $core.method({
  195. selector: "processPragma:",
  196. protocol: "pragma processing",
  197. //>>excludeStart("ide", pragmas.excludeIdeData);
  198. args: ["aMessage"],
  199. source: "processPragma: aMessage\x0a\x09(self canProcessPragma: aMessage) ifTrue: [\x0a\x09\x09^ aMessage sendTo: self ]",
  200. referencedClasses: [],
  201. //>>excludeEnd("ide");
  202. pragmas: [],
  203. messageSends: ["ifTrue:", "canProcessPragma:", "sendTo:"]
  204. }, function ($methodClass){ return function (aMessage){
  205. var self=this,$self=this;
  206. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  207. return $core.withContext(function($ctx1) {
  208. //>>excludeEnd("ctx");
  209. var $1;
  210. $1=$self._canProcessPragma_(aMessage);
  211. if($core.assert($1)){
  212. return $recv(aMessage)._sendTo_(self);
  213. }
  214. return self;
  215. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  216. }, function($ctx1) {$ctx1.fill(self,"processPragma:",{aMessage:aMessage})});
  217. //>>excludeEnd("ctx");
  218. }; }),
  219. $globals.TPragmator);
  220. $core.addMethod(
  221. $core.method({
  222. selector: "processPragmas:",
  223. protocol: "pragma processing",
  224. //>>excludeStart("ide", pragmas.excludeIdeData);
  225. args: ["aCollection"],
  226. source: "processPragmas: aCollection\x0a\x09aCollection do: [ :each | self processPragma: each ]",
  227. referencedClasses: [],
  228. //>>excludeEnd("ide");
  229. pragmas: [],
  230. messageSends: ["do:", "processPragma:"]
  231. }, function ($methodClass){ return function (aCollection){
  232. var self=this,$self=this;
  233. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  234. return $core.withContext(function($ctx1) {
  235. //>>excludeEnd("ctx");
  236. $recv(aCollection)._do_((function(each){
  237. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  238. return $core.withContext(function($ctx2) {
  239. //>>excludeEnd("ctx");
  240. return $self._processPragma_(each);
  241. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  242. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  243. //>>excludeEnd("ctx");
  244. }));
  245. return self;
  246. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  247. }, function($ctx1) {$ctx1.fill(self,"processPragmas:",{aCollection:aCollection})});
  248. //>>excludeEnd("ctx");
  249. }; }),
  250. $globals.TPragmator);
  251. $core.addTrait("TSubclassable", "Kernel-Helpers");
  252. $core.addMethod(
  253. $core.method({
  254. selector: "subclass:",
  255. protocol: "class creation",
  256. //>>excludeStart("ide", pragmas.excludeIdeData);
  257. args: ["aString"],
  258. source: "subclass: aString \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: #() package: nil",
  259. referencedClasses: [],
  260. //>>excludeEnd("ide");
  261. pragmas: [],
  262. messageSends: ["subclass:slots:package:"]
  263. }, function ($methodClass){ return function (aString){
  264. var self=this,$self=this;
  265. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  266. return $core.withContext(function($ctx1) {
  267. //>>excludeEnd("ctx");
  268. return $self._subclass_slots_package_(aString,[],nil);
  269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  270. }, function($ctx1) {$ctx1.fill(self,"subclass:",{aString:aString})});
  271. //>>excludeEnd("ctx");
  272. }; }),
  273. $globals.TSubclassable);
  274. $core.addMethod(
  275. $core.method({
  276. selector: "subclass:instanceVariableNames:",
  277. protocol: "class creation",
  278. //>>excludeStart("ide", pragmas.excludeIdeData);
  279. args: ["aString", "anotherString"],
  280. source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: anotherString package: nil",
  281. referencedClasses: [],
  282. //>>excludeEnd("ide");
  283. pragmas: [],
  284. messageSends: ["subclass:instanceVariableNames:package:"]
  285. }, function ($methodClass){ return function (aString,anotherString){
  286. var self=this,$self=this;
  287. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  288. return $core.withContext(function($ctx1) {
  289. //>>excludeEnd("ctx");
  290. return $self._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString})});
  293. //>>excludeEnd("ctx");
  294. }; }),
  295. $globals.TSubclassable);
  296. $core.addMethod(
  297. $core.method({
  298. selector: "subclass:instanceVariableNames:category:",
  299. protocol: "class creation",
  300. //>>excludeStart("ide", pragmas.excludeIdeData);
  301. args: ["aString", "aString2", "aString3"],
  302. source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  303. referencedClasses: [],
  304. //>>excludeEnd("ide");
  305. pragmas: [],
  306. messageSends: ["subclass:instanceVariableNames:package:"]
  307. }, function ($methodClass){ return function (aString,aString2,aString3){
  308. var self=this,$self=this;
  309. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  310. return $core.withContext(function($ctx1) {
  311. //>>excludeEnd("ctx");
  312. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  313. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  314. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3})});
  315. //>>excludeEnd("ctx");
  316. }; }),
  317. $globals.TSubclassable);
  318. $core.addMethod(
  319. $core.method({
  320. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  321. protocol: "class creation",
  322. //>>excludeStart("ide", pragmas.excludeIdeData);
  323. args: ["aString", "aString2", "classVars", "pools", "aString3"],
  324. 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",
  325. referencedClasses: [],
  326. //>>excludeEnd("ide");
  327. pragmas: [],
  328. messageSends: ["subclass:instanceVariableNames:package:"]
  329. }, function ($methodClass){ return function (aString,aString2,classVars,pools,aString3){
  330. var self=this,$self=this;
  331. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  332. return $core.withContext(function($ctx1) {
  333. //>>excludeEnd("ctx");
  334. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  335. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  336. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  337. //>>excludeEnd("ctx");
  338. }; }),
  339. $globals.TSubclassable);
  340. $core.addMethod(
  341. $core.method({
  342. selector: "subclass:instanceVariableNames:package:",
  343. protocol: "class creation",
  344. //>>excludeStart("ide", pragmas.excludeIdeData);
  345. args: ["aString", "aString2", "aString3"],
  346. 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",
  347. referencedClasses: [],
  348. //>>excludeEnd("ide");
  349. pragmas: [],
  350. messageSends: ["subclass:slots:package:", "instanceVariablesStringAsSlotList"]
  351. }, function ($methodClass){ return function (aString,aString2,aString3){
  352. var self=this,$self=this;
  353. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  354. return $core.withContext(function($ctx1) {
  355. //>>excludeEnd("ctx");
  356. return $self._subclass_slots_package_(aString,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  357. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  358. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3})});
  359. //>>excludeEnd("ctx");
  360. }; }),
  361. $globals.TSubclassable);
  362. $core.addMethod(
  363. $core.method({
  364. selector: "subclass:slots:",
  365. protocol: "class creation",
  366. //>>excludeStart("ide", pragmas.excludeIdeData);
  367. args: ["aString", "aCollection"],
  368. source: "subclass: aString slots: aCollection\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: aCollection package: nil",
  369. referencedClasses: [],
  370. //>>excludeEnd("ide");
  371. pragmas: [],
  372. messageSends: ["subclass:slots:package:"]
  373. }, function ($methodClass){ return function (aString,aCollection){
  374. var self=this,$self=this;
  375. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  376. return $core.withContext(function($ctx1) {
  377. //>>excludeEnd("ctx");
  378. return $self._subclass_slots_package_(aString,aCollection,nil);
  379. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  380. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:",{aString:aString,aCollection:aCollection})});
  381. //>>excludeEnd("ctx");
  382. }; }),
  383. $globals.TSubclassable);
  384. $core.addMethod(
  385. $core.method({
  386. selector: "subclass:slots:classVariables:package:",
  387. protocol: "class creation",
  388. //>>excludeStart("ide", pragmas.excludeIdeData);
  389. args: ["aString", "aCollection", "anObject", "anotherString"],
  390. 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",
  391. referencedClasses: ["ClassBuilder"],
  392. //>>excludeEnd("ide");
  393. pragmas: [],
  394. messageSends: ["superclass:subclass:slots:package:", "new"]
  395. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherString){
  396. var self=this,$self=this;
  397. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  398. return $core.withContext(function($ctx1) {
  399. //>>excludeEnd("ctx");
  400. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  401. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  402. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherString:anotherString})});
  403. //>>excludeEnd("ctx");
  404. }; }),
  405. $globals.TSubclassable);
  406. $core.addMethod(
  407. $core.method({
  408. selector: "subclass:slots:classVariables:poolDictionaries:package:",
  409. protocol: "class creation",
  410. //>>excludeStart("ide", pragmas.excludeIdeData);
  411. args: ["aString", "aCollection", "anObject", "anotherObject", "anotherString"],
  412. 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",
  413. referencedClasses: ["ClassBuilder"],
  414. //>>excludeEnd("ide");
  415. pragmas: [],
  416. messageSends: ["superclass:subclass:slots:package:", "new"]
  417. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherObject,anotherString){
  418. var self=this,$self=this;
  419. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  420. return $core.withContext(function($ctx1) {
  421. //>>excludeEnd("ctx");
  422. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  423. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  424. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:poolDictionaries:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherObject:anotherObject,anotherString:anotherString})});
  425. //>>excludeEnd("ctx");
  426. }; }),
  427. $globals.TSubclassable);
  428. $core.addMethod(
  429. $core.method({
  430. selector: "subclass:slots:package:",
  431. protocol: "class creation",
  432. //>>excludeStart("ide", pragmas.excludeIdeData);
  433. args: ["aString", "aCollection", "anotherString"],
  434. source: "subclass: aString slots: aCollection package: anotherString\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  435. referencedClasses: ["ClassBuilder"],
  436. //>>excludeEnd("ide");
  437. pragmas: [],
  438. messageSends: ["superclass:subclass:slots:package:", "new"]
  439. }, function ($methodClass){ return function (aString,aCollection,anotherString){
  440. var self=this,$self=this;
  441. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  442. return $core.withContext(function($ctx1) {
  443. //>>excludeEnd("ctx");
  444. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  445. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  446. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:package:",{aString:aString,aCollection:aCollection,anotherString:anotherString})});
  447. //>>excludeEnd("ctx");
  448. }; }),
  449. $globals.TSubclassable);
  450. $core.addMethod(
  451. $core.method({
  452. selector: "subclass:uses:",
  453. protocol: "class creation",
  454. //>>excludeStart("ide", pragmas.excludeIdeData);
  455. args: ["aString", "aTraitCompositionDescription"],
  456. source: "subclass: aString uses: aTraitCompositionDescription \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil",
  457. referencedClasses: [],
  458. //>>excludeEnd("ide");
  459. pragmas: [],
  460. messageSends: ["subclass:uses:slots:package:"]
  461. }, function ($methodClass){ return function (aString,aTraitCompositionDescription){
  462. var self=this,$self=this;
  463. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  464. return $core.withContext(function($ctx1) {
  465. //>>excludeEnd("ctx");
  466. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,[],nil);
  467. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  468. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription})});
  469. //>>excludeEnd("ctx");
  470. }; }),
  471. $globals.TSubclassable);
  472. $core.addMethod(
  473. $core.method({
  474. selector: "subclass:uses:instanceVariableNames:",
  475. protocol: "class creation",
  476. //>>excludeStart("ide", pragmas.excludeIdeData);
  477. args: ["aString", "aTraitCompositionDescription", "anotherString"],
  478. 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",
  479. referencedClasses: [],
  480. //>>excludeEnd("ide");
  481. pragmas: [],
  482. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  483. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,anotherString){
  484. var self=this,$self=this;
  485. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  486. return $core.withContext(function($ctx1) {
  487. //>>excludeEnd("ctx");
  488. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,anotherString,nil);
  489. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  490. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,anotherString:anotherString})});
  491. //>>excludeEnd("ctx");
  492. }; }),
  493. $globals.TSubclassable);
  494. $core.addMethod(
  495. $core.method({
  496. selector: "subclass:uses:instanceVariableNames:category:",
  497. protocol: "class creation",
  498. //>>excludeStart("ide", pragmas.excludeIdeData);
  499. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  500. 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",
  501. referencedClasses: [],
  502. //>>excludeEnd("ide");
  503. pragmas: [],
  504. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  505. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  506. var self=this,$self=this;
  507. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  508. return $core.withContext(function($ctx1) {
  509. //>>excludeEnd("ctx");
  510. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  511. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  512. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  513. //>>excludeEnd("ctx");
  514. }; }),
  515. $globals.TSubclassable);
  516. $core.addMethod(
  517. $core.method({
  518. selector: "subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  519. protocol: "class creation",
  520. //>>excludeStart("ide", pragmas.excludeIdeData);
  521. args: ["aString", "aTraitCompositionDescription", "aString2", "classVars", "pools", "aString3"],
  522. 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",
  523. referencedClasses: [],
  524. //>>excludeEnd("ide");
  525. pragmas: [],
  526. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  527. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,classVars,pools,aString3){
  528. var self=this,$self=this;
  529. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  530. return $core.withContext(function($ctx1) {
  531. //>>excludeEnd("ctx");
  532. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  533. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  534. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  535. //>>excludeEnd("ctx");
  536. }; }),
  537. $globals.TSubclassable);
  538. $core.addMethod(
  539. $core.method({
  540. selector: "subclass:uses:instanceVariableNames:package:",
  541. protocol: "class creation",
  542. //>>excludeStart("ide", pragmas.excludeIdeData);
  543. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  544. 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",
  545. referencedClasses: [],
  546. //>>excludeEnd("ide");
  547. pragmas: [],
  548. messageSends: ["subclass:uses:slots:package:", "instanceVariablesStringAsSlotList"]
  549. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  550. var self=this,$self=this;
  551. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  552. return $core.withContext(function($ctx1) {
  553. //>>excludeEnd("ctx");
  554. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  555. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  556. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  557. //>>excludeEnd("ctx");
  558. }; }),
  559. $globals.TSubclassable);
  560. $core.addMethod(
  561. $core.method({
  562. selector: "subclass:uses:slots:",
  563. protocol: "class creation",
  564. //>>excludeStart("ide", pragmas.excludeIdeData);
  565. args: ["aString", "aTraitCompositionDescription", "aCollection"],
  566. 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",
  567. referencedClasses: [],
  568. //>>excludeEnd("ide");
  569. pragmas: [],
  570. messageSends: ["subclass:uses:slots:package:"]
  571. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection){
  572. var self=this,$self=this;
  573. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  574. return $core.withContext(function($ctx1) {
  575. //>>excludeEnd("ctx");
  576. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,aCollection,nil);
  577. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  578. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection})});
  579. //>>excludeEnd("ctx");
  580. }; }),
  581. $globals.TSubclassable);
  582. $core.addMethod(
  583. $core.method({
  584. selector: "subclass:uses:slots:package:",
  585. protocol: "class creation",
  586. //>>excludeStart("ide", pragmas.excludeIdeData);
  587. args: ["aString", "aTraitCompositionDescription", "aCollection", "aString3"],
  588. 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",
  589. referencedClasses: [],
  590. //>>excludeEnd("ide");
  591. pragmas: [],
  592. messageSends: ["subclass:slots:package:", "setTraitComposition:", "asTraitComposition"]
  593. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection,aString3){
  594. var self=this,$self=this;
  595. var cls;
  596. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  597. return $core.withContext(function($ctx1) {
  598. //>>excludeEnd("ctx");
  599. cls=$self._subclass_slots_package_(aString,aCollection,aString3);
  600. $recv(cls)._setTraitComposition_($recv(aTraitCompositionDescription)._asTraitComposition());
  601. return cls;
  602. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  603. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection,aString3:aString3,cls:cls})});
  604. //>>excludeEnd("ctx");
  605. }; }),
  606. $globals.TSubclassable);
  607. });