Kernel-Helpers.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  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: "isMetaclass",
  77. protocol: "testing",
  78. //>>excludeStart("ide", pragmas.excludeIdeData);
  79. args: [],
  80. source: "isMetaclass\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: "isNumber",
  93. protocol: "testing",
  94. //>>excludeStart("ide", pragmas.excludeIdeData);
  95. args: [],
  96. source: "isNumber\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: "isPackage",
  109. protocol: "testing",
  110. //>>excludeStart("ide", pragmas.excludeIdeData);
  111. args: [],
  112. source: "isPackage\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: "isString",
  125. protocol: "testing",
  126. //>>excludeStart("ide", pragmas.excludeIdeData);
  127. args: [],
  128. source: "isString\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: "isSymbol",
  141. protocol: "testing",
  142. //>>excludeStart("ide", pragmas.excludeIdeData);
  143. args: [],
  144. source: "isSymbol\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.addTrait("TPragmator", "Kernel-Helpers");
  155. $core.addMethod(
  156. $core.method({
  157. selector: "canProcessPragma:",
  158. protocol: "pragma processing",
  159. //>>excludeStart("ide", pragmas.excludeIdeData);
  160. args: ["aMessage"],
  161. 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]",
  162. referencedClasses: [],
  163. //>>excludeEnd("ide");
  164. pragmas: [],
  165. messageSends: ["selector", "and:", "respondsTo:", "not", "canUnderstand:", "superclass", "class"]
  166. }, function ($methodClass){ return function (aMessage){
  167. var self=this,$self=this;
  168. var selector;
  169. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  170. return $core.withContext(function($ctx1) {
  171. //>>excludeEnd("ctx");
  172. selector=$recv(aMessage)._selector();
  173. return $recv($self._respondsTo_(selector))._and_((function(){
  174. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  175. return $core.withContext(function($ctx2) {
  176. //>>excludeEnd("ctx");
  177. return $recv($recv($recv($self._class())._superclass())._canUnderstand_(selector))._not();
  178. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  179. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  180. //>>excludeEnd("ctx");
  181. }));
  182. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  183. }, function($ctx1) {$ctx1.fill(self,"canProcessPragma:",{aMessage:aMessage,selector:selector})});
  184. //>>excludeEnd("ctx");
  185. }; }),
  186. $globals.TPragmator);
  187. $core.addMethod(
  188. $core.method({
  189. selector: "processPragma:",
  190. protocol: "pragma processing",
  191. //>>excludeStart("ide", pragmas.excludeIdeData);
  192. args: ["aMessage"],
  193. source: "processPragma: aMessage\x0a\x09(self canProcessPragma: aMessage) ifTrue: [\x0a\x09\x09^ aMessage sendTo: self ]",
  194. referencedClasses: [],
  195. //>>excludeEnd("ide");
  196. pragmas: [],
  197. messageSends: ["ifTrue:", "canProcessPragma:", "sendTo:"]
  198. }, function ($methodClass){ return function (aMessage){
  199. var self=this,$self=this;
  200. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  201. return $core.withContext(function($ctx1) {
  202. //>>excludeEnd("ctx");
  203. var $1;
  204. $1=$self._canProcessPragma_(aMessage);
  205. if($core.assert($1)){
  206. return $recv(aMessage)._sendTo_(self);
  207. }
  208. return self;
  209. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  210. }, function($ctx1) {$ctx1.fill(self,"processPragma:",{aMessage:aMessage})});
  211. //>>excludeEnd("ctx");
  212. }; }),
  213. $globals.TPragmator);
  214. $core.addMethod(
  215. $core.method({
  216. selector: "processPragmas:",
  217. protocol: "pragma processing",
  218. //>>excludeStart("ide", pragmas.excludeIdeData);
  219. args: ["aCollection"],
  220. source: "processPragmas: aCollection\x0a\x09aCollection do: [ :each | self processPragma: each ]",
  221. referencedClasses: [],
  222. //>>excludeEnd("ide");
  223. pragmas: [],
  224. messageSends: ["do:", "processPragma:"]
  225. }, function ($methodClass){ return function (aCollection){
  226. var self=this,$self=this;
  227. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  228. return $core.withContext(function($ctx1) {
  229. //>>excludeEnd("ctx");
  230. $recv(aCollection)._do_((function(each){
  231. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  232. return $core.withContext(function($ctx2) {
  233. //>>excludeEnd("ctx");
  234. return $self._processPragma_(each);
  235. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  236. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  237. //>>excludeEnd("ctx");
  238. }));
  239. return self;
  240. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  241. }, function($ctx1) {$ctx1.fill(self,"processPragmas:",{aCollection:aCollection})});
  242. //>>excludeEnd("ctx");
  243. }; }),
  244. $globals.TPragmator);
  245. $core.addTrait("TSubclassable", "Kernel-Helpers");
  246. $core.addMethod(
  247. $core.method({
  248. selector: "subclass:",
  249. protocol: "class creation",
  250. //>>excludeStart("ide", pragmas.excludeIdeData);
  251. args: ["aString"],
  252. source: "subclass: aString \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: #() package: nil",
  253. referencedClasses: [],
  254. //>>excludeEnd("ide");
  255. pragmas: [],
  256. messageSends: ["subclass:slots:package:"]
  257. }, function ($methodClass){ return function (aString){
  258. var self=this,$self=this;
  259. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  260. return $core.withContext(function($ctx1) {
  261. //>>excludeEnd("ctx");
  262. return $self._subclass_slots_package_(aString,[],nil);
  263. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  264. }, function($ctx1) {$ctx1.fill(self,"subclass:",{aString:aString})});
  265. //>>excludeEnd("ctx");
  266. }; }),
  267. $globals.TSubclassable);
  268. $core.addMethod(
  269. $core.method({
  270. selector: "subclass:instanceVariableNames:",
  271. protocol: "class creation",
  272. //>>excludeStart("ide", pragmas.excludeIdeData);
  273. args: ["aString", "anotherString"],
  274. source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: anotherString package: nil",
  275. referencedClasses: [],
  276. //>>excludeEnd("ide");
  277. pragmas: [],
  278. messageSends: ["subclass:instanceVariableNames:package:"]
  279. }, function ($methodClass){ return function (aString,anotherString){
  280. var self=this,$self=this;
  281. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  282. return $core.withContext(function($ctx1) {
  283. //>>excludeEnd("ctx");
  284. return $self._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  285. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  286. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString})});
  287. //>>excludeEnd("ctx");
  288. }; }),
  289. $globals.TSubclassable);
  290. $core.addMethod(
  291. $core.method({
  292. selector: "subclass:instanceVariableNames:category:",
  293. protocol: "class creation",
  294. //>>excludeStart("ide", pragmas.excludeIdeData);
  295. args: ["aString", "aString2", "aString3"],
  296. source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  297. referencedClasses: [],
  298. //>>excludeEnd("ide");
  299. pragmas: [],
  300. messageSends: ["subclass:instanceVariableNames:package:"]
  301. }, function ($methodClass){ return function (aString,aString2,aString3){
  302. var self=this,$self=this;
  303. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  304. return $core.withContext(function($ctx1) {
  305. //>>excludeEnd("ctx");
  306. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  307. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  308. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3})});
  309. //>>excludeEnd("ctx");
  310. }; }),
  311. $globals.TSubclassable);
  312. $core.addMethod(
  313. $core.method({
  314. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  315. protocol: "class creation",
  316. //>>excludeStart("ide", pragmas.excludeIdeData);
  317. args: ["aString", "aString2", "classVars", "pools", "aString3"],
  318. 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",
  319. referencedClasses: [],
  320. //>>excludeEnd("ide");
  321. pragmas: [],
  322. messageSends: ["subclass:instanceVariableNames:package:"]
  323. }, function ($methodClass){ return function (aString,aString2,classVars,pools,aString3){
  324. var self=this,$self=this;
  325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  326. return $core.withContext(function($ctx1) {
  327. //>>excludeEnd("ctx");
  328. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  329. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  330. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  331. //>>excludeEnd("ctx");
  332. }; }),
  333. $globals.TSubclassable);
  334. $core.addMethod(
  335. $core.method({
  336. selector: "subclass:instanceVariableNames:package:",
  337. protocol: "class creation",
  338. //>>excludeStart("ide", pragmas.excludeIdeData);
  339. args: ["aString", "aString2", "aString3"],
  340. 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",
  341. referencedClasses: [],
  342. //>>excludeEnd("ide");
  343. pragmas: [],
  344. messageSends: ["subclass:slots:package:", "instanceVariablesStringAsSlotList"]
  345. }, function ($methodClass){ return function (aString,aString2,aString3){
  346. var self=this,$self=this;
  347. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  348. return $core.withContext(function($ctx1) {
  349. //>>excludeEnd("ctx");
  350. return $self._subclass_slots_package_(aString,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  351. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  352. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3})});
  353. //>>excludeEnd("ctx");
  354. }; }),
  355. $globals.TSubclassable);
  356. $core.addMethod(
  357. $core.method({
  358. selector: "subclass:slots:",
  359. protocol: "class creation",
  360. //>>excludeStart("ide", pragmas.excludeIdeData);
  361. args: ["aString", "aCollection"],
  362. source: "subclass: aString slots: aCollection\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString slots: aCollection package: nil",
  363. referencedClasses: [],
  364. //>>excludeEnd("ide");
  365. pragmas: [],
  366. messageSends: ["subclass:slots:package:"]
  367. }, function ($methodClass){ return function (aString,aCollection){
  368. var self=this,$self=this;
  369. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  370. return $core.withContext(function($ctx1) {
  371. //>>excludeEnd("ctx");
  372. return $self._subclass_slots_package_(aString,aCollection,nil);
  373. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  374. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:",{aString:aString,aCollection:aCollection})});
  375. //>>excludeEnd("ctx");
  376. }; }),
  377. $globals.TSubclassable);
  378. $core.addMethod(
  379. $core.method({
  380. selector: "subclass:slots:classVariables:package:",
  381. protocol: "class creation",
  382. //>>excludeStart("ide", pragmas.excludeIdeData);
  383. args: ["aString", "aCollection", "anObject", "anotherString"],
  384. 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",
  385. referencedClasses: ["ClassBuilder"],
  386. //>>excludeEnd("ide");
  387. pragmas: [],
  388. messageSends: ["superclass:subclass:slots:package:", "new"]
  389. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherString){
  390. var self=this,$self=this;
  391. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  392. return $core.withContext(function($ctx1) {
  393. //>>excludeEnd("ctx");
  394. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  395. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  396. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherString:anotherString})});
  397. //>>excludeEnd("ctx");
  398. }; }),
  399. $globals.TSubclassable);
  400. $core.addMethod(
  401. $core.method({
  402. selector: "subclass:slots:classVariables:poolDictionaries:package:",
  403. protocol: "class creation",
  404. //>>excludeStart("ide", pragmas.excludeIdeData);
  405. args: ["aString", "aCollection", "anObject", "anotherObject", "anotherString"],
  406. 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",
  407. referencedClasses: ["ClassBuilder"],
  408. //>>excludeEnd("ide");
  409. pragmas: [],
  410. messageSends: ["superclass:subclass:slots:package:", "new"]
  411. }, function ($methodClass){ return function (aString,aCollection,anObject,anotherObject,anotherString){
  412. var self=this,$self=this;
  413. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  414. return $core.withContext(function($ctx1) {
  415. //>>excludeEnd("ctx");
  416. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  417. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  418. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:classVariables:poolDictionaries:package:",{aString:aString,aCollection:aCollection,anObject:anObject,anotherObject:anotherObject,anotherString:anotherString})});
  419. //>>excludeEnd("ctx");
  420. }; }),
  421. $globals.TSubclassable);
  422. $core.addMethod(
  423. $core.method({
  424. selector: "subclass:slots:package:",
  425. protocol: "class creation",
  426. //>>excludeStart("ide", pragmas.excludeIdeData);
  427. args: ["aString", "aCollection", "anotherString"],
  428. source: "subclass: aString slots: aCollection package: anotherString\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString slots: aCollection package: anotherString",
  429. referencedClasses: ["ClassBuilder"],
  430. //>>excludeEnd("ide");
  431. pragmas: [],
  432. messageSends: ["superclass:subclass:slots:package:", "new"]
  433. }, function ($methodClass){ return function (aString,aCollection,anotherString){
  434. var self=this,$self=this;
  435. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  436. return $core.withContext(function($ctx1) {
  437. //>>excludeEnd("ctx");
  438. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_slots_package_(self,aString,aCollection,anotherString);
  439. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  440. }, function($ctx1) {$ctx1.fill(self,"subclass:slots:package:",{aString:aString,aCollection:aCollection,anotherString:anotherString})});
  441. //>>excludeEnd("ctx");
  442. }; }),
  443. $globals.TSubclassable);
  444. $core.addMethod(
  445. $core.method({
  446. selector: "subclass:uses:",
  447. protocol: "class creation",
  448. //>>excludeStart("ide", pragmas.excludeIdeData);
  449. args: ["aString", "aTraitCompositionDescription"],
  450. source: "subclass: aString uses: aTraitCompositionDescription \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil",
  451. referencedClasses: [],
  452. //>>excludeEnd("ide");
  453. pragmas: [],
  454. messageSends: ["subclass:uses:slots:package:"]
  455. }, function ($methodClass){ return function (aString,aTraitCompositionDescription){
  456. var self=this,$self=this;
  457. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  458. return $core.withContext(function($ctx1) {
  459. //>>excludeEnd("ctx");
  460. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,[],nil);
  461. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  462. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription})});
  463. //>>excludeEnd("ctx");
  464. }; }),
  465. $globals.TSubclassable);
  466. $core.addMethod(
  467. $core.method({
  468. selector: "subclass:uses:instanceVariableNames:",
  469. protocol: "class creation",
  470. //>>excludeStart("ide", pragmas.excludeIdeData);
  471. args: ["aString", "aTraitCompositionDescription", "anotherString"],
  472. 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",
  473. referencedClasses: [],
  474. //>>excludeEnd("ide");
  475. pragmas: [],
  476. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  477. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,anotherString){
  478. var self=this,$self=this;
  479. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  480. return $core.withContext(function($ctx1) {
  481. //>>excludeEnd("ctx");
  482. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,anotherString,nil);
  483. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  484. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,anotherString:anotherString})});
  485. //>>excludeEnd("ctx");
  486. }; }),
  487. $globals.TSubclassable);
  488. $core.addMethod(
  489. $core.method({
  490. selector: "subclass:uses:instanceVariableNames:category:",
  491. protocol: "class creation",
  492. //>>excludeStart("ide", pragmas.excludeIdeData);
  493. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  494. 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",
  495. referencedClasses: [],
  496. //>>excludeEnd("ide");
  497. pragmas: [],
  498. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  499. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  500. var self=this,$self=this;
  501. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  502. return $core.withContext(function($ctx1) {
  503. //>>excludeEnd("ctx");
  504. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  505. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  506. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  507. //>>excludeEnd("ctx");
  508. }; }),
  509. $globals.TSubclassable);
  510. $core.addMethod(
  511. $core.method({
  512. selector: "subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  513. protocol: "class creation",
  514. //>>excludeStart("ide", pragmas.excludeIdeData);
  515. args: ["aString", "aTraitCompositionDescription", "aString2", "classVars", "pools", "aString3"],
  516. 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",
  517. referencedClasses: [],
  518. //>>excludeEnd("ide");
  519. pragmas: [],
  520. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  521. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,classVars,pools,aString3){
  522. var self=this,$self=this;
  523. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  524. return $core.withContext(function($ctx1) {
  525. //>>excludeEnd("ctx");
  526. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  527. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  528. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3})});
  529. //>>excludeEnd("ctx");
  530. }; }),
  531. $globals.TSubclassable);
  532. $core.addMethod(
  533. $core.method({
  534. selector: "subclass:uses:instanceVariableNames:package:",
  535. protocol: "class creation",
  536. //>>excludeStart("ide", pragmas.excludeIdeData);
  537. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  538. 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",
  539. referencedClasses: [],
  540. //>>excludeEnd("ide");
  541. pragmas: [],
  542. messageSends: ["subclass:uses:slots:package:", "instanceVariablesStringAsSlotList"]
  543. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aString2,aString3){
  544. var self=this,$self=this;
  545. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  546. return $core.withContext(function($ctx1) {
  547. //>>excludeEnd("ctx");
  548. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,$recv(aString2)._instanceVariablesStringAsSlotList(),aString3);
  549. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  550. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3})});
  551. //>>excludeEnd("ctx");
  552. }; }),
  553. $globals.TSubclassable);
  554. $core.addMethod(
  555. $core.method({
  556. selector: "subclass:uses:slots:",
  557. protocol: "class creation",
  558. //>>excludeStart("ide", pragmas.excludeIdeData);
  559. args: ["aString", "aTraitCompositionDescription", "aCollection"],
  560. 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",
  561. referencedClasses: [],
  562. //>>excludeEnd("ide");
  563. pragmas: [],
  564. messageSends: ["subclass:uses:slots:package:"]
  565. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection){
  566. var self=this,$self=this;
  567. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  568. return $core.withContext(function($ctx1) {
  569. //>>excludeEnd("ctx");
  570. return $self._subclass_uses_slots_package_(aString,aTraitCompositionDescription,aCollection,nil);
  571. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  572. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection})});
  573. //>>excludeEnd("ctx");
  574. }; }),
  575. $globals.TSubclassable);
  576. $core.addMethod(
  577. $core.method({
  578. selector: "subclass:uses:slots:package:",
  579. protocol: "class creation",
  580. //>>excludeStart("ide", pragmas.excludeIdeData);
  581. args: ["aString", "aTraitCompositionDescription", "aCollection", "aString3"],
  582. 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",
  583. referencedClasses: [],
  584. //>>excludeEnd("ide");
  585. pragmas: [],
  586. messageSends: ["subclass:slots:package:", "setTraitComposition:", "asTraitComposition"]
  587. }, function ($methodClass){ return function (aString,aTraitCompositionDescription,aCollection,aString3){
  588. var self=this,$self=this;
  589. var cls;
  590. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  591. return $core.withContext(function($ctx1) {
  592. //>>excludeEnd("ctx");
  593. cls=$self._subclass_slots_package_(aString,aCollection,aString3);
  594. $recv(cls)._setTraitComposition_($recv(aTraitCompositionDescription)._asTraitComposition());
  595. return cls;
  596. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  597. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:slots:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aCollection:aCollection,aString3:aString3,cls:cls})});
  598. //>>excludeEnd("ctx");
  599. }; }),
  600. $globals.TSubclassable);
  601. });