Kernel-Helpers.js 23 KB

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