Kernel-Helpers.js 27 KB

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