Kernel-Helpers.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. define(["amber/boot"], function($boot){"use strict";
  2. if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
  3. var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  5. $core.addPackage("Kernel-Helpers");
  6. $core.packages["Kernel-Helpers"].innerEval = function (expr) { return eval(expr); };
  7. $core.packages["Kernel-Helpers"].transport = {"type":"amd","amdNamespace":"amber_core"};
  8. $core.addTrait("TSubclassable", "Kernel-Helpers");
  9. $core.addMethod(
  10. $core.method({
  11. selector: "subclass:",
  12. protocol: "class creation",
  13. fn: function (aString){
  14. var self=this,$self=this;
  15. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  16. return $core.withContext(function($ctx1) {
  17. //>>excludeEnd("ctx");
  18. return $self._subclass_instanceVariableNames_package_(aString,"",nil);
  19. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  20. }, function($ctx1) {$ctx1.fill(self,"subclass:",{aString:aString},$globals.TSubclassable)});
  21. //>>excludeEnd("ctx");
  22. },
  23. //>>excludeStart("ide", pragmas.excludeIdeData);
  24. args: ["aString"],
  25. source: "subclass: aString \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: '' package: nil",
  26. referencedClasses: [],
  27. //>>excludeEnd("ide");
  28. messageSends: ["subclass:instanceVariableNames:package:"]
  29. }),
  30. $globals.TSubclassable);
  31. $core.addMethod(
  32. $core.method({
  33. selector: "subclass:instanceVariableNames:",
  34. protocol: "class creation",
  35. fn: function (aString,anotherString){
  36. var self=this,$self=this;
  37. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  38. return $core.withContext(function($ctx1) {
  39. //>>excludeEnd("ctx");
  40. return $self._subclass_instanceVariableNames_package_(aString,anotherString,nil);
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString},$globals.TSubclassable)});
  43. //>>excludeEnd("ctx");
  44. },
  45. //>>excludeStart("ide", pragmas.excludeIdeData);
  46. args: ["aString", "anotherString"],
  47. source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: anotherString package: nil",
  48. referencedClasses: [],
  49. //>>excludeEnd("ide");
  50. messageSends: ["subclass:instanceVariableNames:package:"]
  51. }),
  52. $globals.TSubclassable);
  53. $core.addMethod(
  54. $core.method({
  55. selector: "subclass:instanceVariableNames:category:",
  56. protocol: "class creation",
  57. fn: function (aString,aString2,aString3){
  58. var self=this,$self=this;
  59. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  60. return $core.withContext(function($ctx1) {
  61. //>>excludeEnd("ctx");
  62. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  63. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  64. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3},$globals.TSubclassable)});
  65. //>>excludeEnd("ctx");
  66. },
  67. //>>excludeStart("ide", pragmas.excludeIdeData);
  68. args: ["aString", "aString2", "aString3"],
  69. source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString instanceVariableNames: aString2 package: aString3",
  70. referencedClasses: [],
  71. //>>excludeEnd("ide");
  72. messageSends: ["subclass:instanceVariableNames:package:"]
  73. }),
  74. $globals.TSubclassable);
  75. $core.addMethod(
  76. $core.method({
  77. selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  78. protocol: "class creation",
  79. fn: function (aString,aString2,classVars,pools,aString3){
  80. var self=this,$self=this;
  81. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  82. return $core.withContext(function($ctx1) {
  83. //>>excludeEnd("ctx");
  84. return $self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  85. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  86. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3},$globals.TSubclassable)});
  87. //>>excludeEnd("ctx");
  88. },
  89. //>>excludeStart("ide", pragmas.excludeIdeData);
  90. args: ["aString", "aString2", "classVars", "pools", "aString3"],
  91. 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",
  92. referencedClasses: [],
  93. //>>excludeEnd("ide");
  94. messageSends: ["subclass:instanceVariableNames:package:"]
  95. }),
  96. $globals.TSubclassable);
  97. $core.addMethod(
  98. $core.method({
  99. selector: "subclass:instanceVariableNames:package:",
  100. protocol: "class creation",
  101. fn: function (aString,aString2,aString3){
  102. var self=this,$self=this;
  103. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  104. return $core.withContext(function($ctx1) {
  105. //>>excludeEnd("ctx");
  106. return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_instanceVariableNames_package_(self,$recv(aString)._asString(),aString2,aString3);
  107. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  108. }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},$globals.TSubclassable)});
  109. //>>excludeEnd("ctx");
  110. },
  111. //>>excludeStart("ide", pragmas.excludeIdeData);
  112. args: ["aString", "aString2", "aString3"],
  113. source: "subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09^ ClassBuilder new\x0a\x09\x09superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3",
  114. referencedClasses: ["ClassBuilder"],
  115. //>>excludeEnd("ide");
  116. messageSends: ["superclass:subclass:instanceVariableNames:package:", "new", "asString"]
  117. }),
  118. $globals.TSubclassable);
  119. $core.addMethod(
  120. $core.method({
  121. selector: "subclass:uses:",
  122. protocol: "class creation",
  123. fn: function (aString,aTraitCompositionDescription){
  124. var self=this,$self=this;
  125. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  126. return $core.withContext(function($ctx1) {
  127. //>>excludeEnd("ctx");
  128. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,"",nil);
  129. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  130. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription},$globals.TSubclassable)});
  131. //>>excludeEnd("ctx");
  132. },
  133. //>>excludeStart("ide", pragmas.excludeIdeData);
  134. args: ["aString", "aTraitCompositionDescription"],
  135. source: "subclass: aString uses: aTraitCompositionDescription \x0a\x09\x22Kept for file-in compatibility.\x22\x0a\x09^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: '' package: nil",
  136. referencedClasses: [],
  137. //>>excludeEnd("ide");
  138. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  139. }),
  140. $globals.TSubclassable);
  141. $core.addMethod(
  142. $core.method({
  143. selector: "subclass:uses:instanceVariableNames:",
  144. protocol: "class creation",
  145. fn: function (aString,aTraitCompositionDescription,anotherString){
  146. var self=this,$self=this;
  147. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  148. return $core.withContext(function($ctx1) {
  149. //>>excludeEnd("ctx");
  150. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,anotherString,nil);
  151. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  152. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,anotherString:anotherString},$globals.TSubclassable)});
  153. //>>excludeEnd("ctx");
  154. },
  155. //>>excludeStart("ide", pragmas.excludeIdeData);
  156. args: ["aString", "aTraitCompositionDescription", "anotherString"],
  157. 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",
  158. referencedClasses: [],
  159. //>>excludeEnd("ide");
  160. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  161. }),
  162. $globals.TSubclassable);
  163. $core.addMethod(
  164. $core.method({
  165. selector: "subclass:uses:instanceVariableNames:category:",
  166. protocol: "class creation",
  167. fn: function (aString,aTraitCompositionDescription,aString2,aString3){
  168. var self=this,$self=this;
  169. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  170. return $core.withContext(function($ctx1) {
  171. //>>excludeEnd("ctx");
  172. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  173. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  174. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3},$globals.TSubclassable)});
  175. //>>excludeEnd("ctx");
  176. },
  177. //>>excludeStart("ide", pragmas.excludeIdeData);
  178. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  179. 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",
  180. referencedClasses: [],
  181. //>>excludeEnd("ide");
  182. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  183. }),
  184. $globals.TSubclassable);
  185. $core.addMethod(
  186. $core.method({
  187. selector: "subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",
  188. protocol: "class creation",
  189. fn: function (aString,aTraitCompositionDescription,aString2,classVars,pools,aString3){
  190. var self=this,$self=this;
  191. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  192. return $core.withContext(function($ctx1) {
  193. //>>excludeEnd("ctx");
  194. return $self._subclass_uses_instanceVariableNames_package_(aString,aTraitCompositionDescription,aString2,aString3);
  195. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  196. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3},$globals.TSubclassable)});
  197. //>>excludeEnd("ctx");
  198. },
  199. //>>excludeStart("ide", pragmas.excludeIdeData);
  200. args: ["aString", "aTraitCompositionDescription", "aString2", "classVars", "pools", "aString3"],
  201. 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",
  202. referencedClasses: [],
  203. //>>excludeEnd("ide");
  204. messageSends: ["subclass:uses:instanceVariableNames:package:"]
  205. }),
  206. $globals.TSubclassable);
  207. $core.addMethod(
  208. $core.method({
  209. selector: "subclass:uses:instanceVariableNames:package:",
  210. protocol: "class creation",
  211. fn: function (aString,aTraitCompositionDescription,aString2,aString3){
  212. var self=this,$self=this;
  213. var cls;
  214. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  215. return $core.withContext(function($ctx1) {
  216. //>>excludeEnd("ctx");
  217. cls=$self._subclass_instanceVariableNames_package_(aString,aString2,aString3);
  218. $recv(cls)._setTraitComposition_($recv(aTraitCompositionDescription)._asTraitComposition());
  219. return cls;
  220. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  221. }, function($ctx1) {$ctx1.fill(self,"subclass:uses:instanceVariableNames:package:",{aString:aString,aTraitCompositionDescription:aTraitCompositionDescription,aString2:aString2,aString3:aString3,cls:cls},$globals.TSubclassable)});
  222. //>>excludeEnd("ctx");
  223. },
  224. //>>excludeStart("ide", pragmas.excludeIdeData);
  225. args: ["aString", "aTraitCompositionDescription", "aString2", "aString3"],
  226. source: "subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3\x0a\x09| cls |\x0a\x09cls := self subclass: aString instanceVariableNames: aString2 package: aString3.\x0a\x09cls setTraitComposition: aTraitCompositionDescription asTraitComposition.\x0a\x09^ cls",
  227. referencedClasses: [],
  228. //>>excludeEnd("ide");
  229. messageSends: ["subclass:instanceVariableNames:package:", "setTraitComposition:", "asTraitComposition"]
  230. }),
  231. $globals.TSubclassable);
  232. });