Kernel-Helpers.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  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("TSubclassable", "Kernel-Helpers");
  171. $core.addMethod(
  172. $core.method({
  173. selector: "subclass:",
  174. protocol: "class creation",
  175. //>>excludeStart("ide", pragmas.excludeIdeData);
  176. args: ["aString"],
  177. source: "subclass: aString \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: #() package: nil",
  178. referencedClasses: [],
  179. //>>excludeEnd("ide");
  180. pragmas: [],
  181. messageSends: ["subclass:slots:package:"]
  182. }, function ($methodClass){ return function (aString){
  183. var self=this,$self=this;
  184. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  185. return $core.withContext(function($ctx1) {
  186. //>>excludeEnd("ctx");
  187. return $self._subclass_slots_package_(aString,[],nil);
  188. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  189. }, function($ctx1) {$ctx1.fill(self,"subclass:",{aString:aString})});
  190. //>>excludeEnd("ctx");
  191. }; }),
  192. $globals.TSubclassable);
  193. $core.addMethod(
  194. $core.method({
  195. selector: "subclass:instanceVariableNames:",
  196. protocol: "class creation",
  197. //>>excludeStart("ide", pragmas.excludeIdeData);
  198. args: ["aString", "anotherString"],
  199. source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: anotherString package: nil",
  200. referencedClasses: [],
  201. //>>excludeEnd("ide");
  202. pragmas: [],
  203. messageSends: ["subclass:instanceVariableNames:package:"]
  204. }, function ($methodClass){ return function (aString,anotherString){
  205. var self=this,$self=this;
  206. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  207. return $core.withContext(function($ctx1) {
  208. //>>excludeEnd("ctx");
  209. return $self._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  210. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  211. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString})});
  212. //>>excludeEnd("ctx");
  213. }; }),
  214. $globals.TSubclassable);
  215. $core.addMethod(
  216. $core.method({
  217. selector: "subclass:instanceVariableNames:category:",
  218. protocol: "class creation",
  219. //>>excludeStart("ide", pragmas.excludeIdeData);
  220. args: ["aString", "aString2", "aString3"],
  221. source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  222. referencedClasses: [],
  223. //>>excludeEnd("ide");
  224. pragmas: [],
  225. messageSends: ["subclass:instanceVariableNames:package:"]
  226. }, function ($methodClass){ return function (aString,aString2,aString3){
  227. var self=this,$self=this;
  228. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  229. return $core.withContext(function($ctx1) {
  230. //>>excludeEnd("ctx");
  231. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  232. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  233. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3})});
  234. //>>excludeEnd("ctx");
  235. }; }),
  236. $globals.TSubclassable);
  237. $core.addMethod(
  238. $core.method({
  239. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  240. protocol: "class creation",
  241. //>>excludeStart("ide", pragmas.excludeIdeData);
  242. args: ["aString", "aString2", "classVars", "pools", "aString3"],
  243. 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",
  244. referencedClasses: [],
  245. //>>excludeEnd("ide");
  246. pragmas: [],
  247. messageSends: ["subclass:instanceVariableNames:package:"]
  248. }, function ($methodClass){ return function (aString,aString2,classVars,pools,aString3){
  249. var self=this,$self=this;
  250. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  251. return $core.withContext(function($ctx1) {
  252. //>>excludeEnd("ctx");
  253. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  254. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  255. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  256. //>>excludeEnd("ctx");
  257. }; }),
  258. $globals.TSubclassable);
  259. $core.addMethod(
  260. $core.method({
  261. selector: "subclass:instanceVariableNames:package:",
  262. protocol: "class creation",
  263. //>>excludeStart("ide", pragmas.excludeIdeData);
  264. args: ["aString", "aString2", "aString3"],
  265. 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",
  266. referencedClasses: [],
  267. //>>excludeEnd("ide");
  268. pragmas: [],
  269. messageSends: ["subclass:slots:package:", "instanceVariablesStringAsSlotList"]
  270. }, function ($methodClass){ return function (aString,aString2,aString3){
  271. var self=this,$self=this;
  272. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  273. return $core.withContext(function($ctx1) {
  274. //>>excludeEnd("ctx");
  275. return $self._subclass_slots_package_(aString,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  276. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  277. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3})});
  278. //>>excludeEnd("ctx");
  279. }; }),
  280. $globals.TSubclassable);
  281. $core.addMethod(
  282. $core.method({
  283. selector: "subclass:slots:",
  284. protocol: "class creation",
  285. //>>excludeStart("ide", pragmas.excludeIdeData);
  286. args: ["aString", "aCollection"],
  287. source: "subclass: aString slots: aCollection\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: aCollection package: nil",
  288. referencedClasses: [],
  289. //>>excludeEnd("ide");
  290. pragmas: [],
  291. messageSends: ["subclass:slots:package:"]
  292. }, function ($methodClass){ return function (aString,aCollection){
  293. var self=this,$self=this;
  294. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  295. return $core.withContext(function($ctx1) {
  296. //>>excludeEnd("ctx");
  297. return $self._subclass_slots_package_(aString,aCollection,nil);
  298. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  299. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:",{aString:aString,aCollection:aCollection})});
  300. //>>excludeEnd("ctx");
  301. }; }),
  302. $globals.TSubclassable);
  303. $core.addMethod(
  304. $core.method({
  305. selector: "subclass:slots:classVariables:package:",
  306. protocol: "class creation",
  307. //>>excludeStart("ide", pragmas.excludeIdeData);
  308. args: ["aString", "aCollection", "anObject", "anotherString"],
  309. 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",
  310. referencedClasses: ["ClassBuilder"],
  311. //>>excludeEnd("ide");
  312. pragmas: [],
  313. messageSends: ["superclass:subclass:slots:package:", "new"]
  314. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherString){
  315. var self=this,$self=this;
  316. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  317. return $core.withContext(function($ctx1) {
  318. //>>excludeEnd("ctx");
  319. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  320. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  321. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherString:anotherString})});
  322. //>>excludeEnd("ctx");
  323. }; }),
  324. $globals.TSubclassable);
  325. $core.addMethod(
  326. $core.method({
  327. selector: "subclass:slots:classVariables:poolDictionaries:package:",
  328. protocol: "class creation",
  329. //>>excludeStart("ide", pragmas.excludeIdeData);
  330. args: ["aString", "aCollection", "anObject", "anotherObject", "anotherString"],
  331. 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",
  332. referencedClasses: ["ClassBuilder"],
  333. //>>excludeEnd("ide");
  334. pragmas: [],
  335. messageSends: ["superclass:subclass:slots:package:", "new"]
  336. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherObject,anotherString){
  337. var self=this,$self=this;
  338. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  339. return $core.withContext(function($ctx1) {
  340. //>>excludeEnd("ctx");
  341. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  342. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  343. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:poolDictionaries:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherObject:anotherObject,anotherString:anotherString})});
  344. //>>excludeEnd("ctx");
  345. }; }),
  346. $globals.TSubclassable);
  347. $core.addMethod(
  348. $core.method({
  349. selector: "subclass:slots:package:",
  350. protocol: "class creation",
  351. //>>excludeStart("ide", pragmas.excludeIdeData);
  352. args: ["aString", "aCollection", "anotherString"],
  353. source: "subclass: aString slots: aCollection package: anotherString\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  354. referencedClasses: ["ClassBuilder"],
  355. //>>excludeEnd("ide");
  356. pragmas: [],
  357. messageSends: ["superclass:subclass:slots:package:", "new"]
  358. }, function ($methodClass){ return function (aString,aCollection,anotherString){
  359. var self=this,$self=this;
  360. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  361. return $core.withContext(function($ctx1) {
  362. //>>excludeEnd("ctx");
  363. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  364. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  365. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:package:",{aString:aString,aCollection:aCollection,anotherString:anotherString})});
  366. //>>excludeEnd("ctx");
  367. }; }),
  368. $globals.TSubclassable);
  369. $core.addMethod(
  370. $core.method({
  371. selector: "subclass:uses:",
  372. protocol: "class creation",
  373. //>>excludeStart("ide", pragmas.excludeIdeData);
  374. args: ["aString", "aTraitCompositionDescription"],
  375. source: "subclass: aString uses: aTraitCompositionDescription \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil",
  376. referencedClasses: [],
  377. //>>excludeEnd("ide");
  378. pragmas: [],
  379. messageSends: ["subclass:uses:slots:package:"]
  380. }, function ($methodClass){ return function (aString,aTraitCompositionDescription){
  381. var self=this,$self=this;
  382. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  383. return $core.withContext(function($ctx1) {
  384. //>>excludeEnd("ctx");
  385. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,[],nil);
  386. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  387. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription})});
  388. //>>excludeEnd("ctx");
  389. }; }),
  390. $globals.TSubclassable);
  391. $core.addMethod(
  392. $core.method({
  393. selector: "subclass:uses:instanceVariableNames:",
  394. protocol: "class creation",
  395. //>>excludeStart("ide", pragmas.excludeIdeData);
  396. args: ["aString", "aTraitCompositionDescription", "anotherString"],
  397. 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",
  398. referencedClasses: [],
  399. //>>excludeEnd("ide");
  400. pragmas: [],
  401. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  402. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,anotherString){
  403. var self=this,$self=this;
  404. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  405. return $core.withContext(function($ctx1) {
  406. //>>excludeEnd("ctx");
  407. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,anotherString,nil);
  408. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  409. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,anotherString:anotherString})});
  410. //>>excludeEnd("ctx");
  411. }; }),
  412. $globals.TSubclassable);
  413. $core.addMethod(
  414. $core.method({
  415. selector: "subclass:uses:instanceVariableNames:category:",
  416. protocol: "class creation",
  417. //>>excludeStart("ide", pragmas.excludeIdeData);
  418. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  419. 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",
  420. referencedClasses: [],
  421. //>>excludeEnd("ide");
  422. pragmas: [],
  423. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  424. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  425. var self=this,$self=this;
  426. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  427. return $core.withContext(function($ctx1) {
  428. //>>excludeEnd("ctx");
  429. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  430. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  431. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  432. //>>excludeEnd("ctx");
  433. }; }),
  434. $globals.TSubclassable);
  435. $core.addMethod(
  436. $core.method({
  437. selector: "subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  438. protocol: "class creation",
  439. //>>excludeStart("ide", pragmas.excludeIdeData);
  440. args: ["aString", "aTraitCompositionDescription", "aString2", "classVars", "pools", "aString3"],
  441. 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",
  442. referencedClasses: [],
  443. //>>excludeEnd("ide");
  444. pragmas: [],
  445. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  446. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,classVars,pools,aString3){
  447. var self=this,$self=this;
  448. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  449. return $core.withContext(function($ctx1) {
  450. //>>excludeEnd("ctx");
  451. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  452. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  453. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  454. //>>excludeEnd("ctx");
  455. }; }),
  456. $globals.TSubclassable);
  457. $core.addMethod(
  458. $core.method({
  459. selector: "subclass:uses:instanceVariableNames:package:",
  460. protocol: "class creation",
  461. //>>excludeStart("ide", pragmas.excludeIdeData);
  462. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  463. 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",
  464. referencedClasses: [],
  465. //>>excludeEnd("ide");
  466. pragmas: [],
  467. messageSends: ["subclass:uses:slots:package:", "instanceVariablesStringAsSlotList"]
  468. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  469. var self=this,$self=this;
  470. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  471. return $core.withContext(function($ctx1) {
  472. //>>excludeEnd("ctx");
  473. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  474. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  475. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  476. //>>excludeEnd("ctx");
  477. }; }),
  478. $globals.TSubclassable);
  479. $core.addMethod(
  480. $core.method({
  481. selector: "subclass:uses:slots:",
  482. protocol: "class creation",
  483. //>>excludeStart("ide", pragmas.excludeIdeData);
  484. args: ["aString", "aTraitCompositionDescription", "aCollection"],
  485. 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",
  486. referencedClasses: [],
  487. //>>excludeEnd("ide");
  488. pragmas: [],
  489. messageSends: ["subclass:uses:slots:package:"]
  490. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection){
  491. var self=this,$self=this;
  492. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  493. return $core.withContext(function($ctx1) {
  494. //>>excludeEnd("ctx");
  495. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,aCollection,nil);
  496. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  497. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection})});
  498. //>>excludeEnd("ctx");
  499. }; }),
  500. $globals.TSubclassable);
  501. $core.addMethod(
  502. $core.method({
  503. selector: "subclass:uses:slots:package:",
  504. protocol: "class creation",
  505. //>>excludeStart("ide", pragmas.excludeIdeData);
  506. args: ["aString", "aTraitCompositionDescription", "aCollection", "aString3"],
  507. 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",
  508. referencedClasses: [],
  509. //>>excludeEnd("ide");
  510. pragmas: [],
  511. messageSends: ["subclass:slots:package:", "setTraitComposition:", "asTraitComposition"]
  512. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection,aString3){
  513. var self=this,$self=this;
  514. var cls;
  515. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  516. return $core.withContext(function($ctx1) {
  517. //>>excludeEnd("ctx");
  518. cls=$self._subclass_slots_package_(aString,aCollection,aString3);
  519. $recv(cls)._setTraitComposition_($recv(aTraitCompositionDescription)._asTraitComposition());
  520. return cls;
  521. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  522. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection,aString3:aString3,cls:cls})});
  523. //>>excludeEnd("ctx");
  524. }; }),
  525. $globals.TSubclassable);
  526. });