Platform-Services.js 79 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272
  1. define(["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Infrastructure", "amber_core/Kernel-Methods", "amber_core/Kernel-Objects"], function($boot){"use strict";
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  4. $core.addPackage('Platform-Services');
  5. $core.packages["Platform-Services"].innerEval = function (expr) { return eval(expr); };
  6. $core.packages["Platform-Services"].transport = {"type":"amd","amdNamespace":"amber_core"};
  7. $core.addClass('ConsoleErrorHandler', $globals.Object, [], 'Platform-Services');
  8. //>>excludeStart("ide", pragmas.excludeIdeData);
  9. $globals.ConsoleErrorHandler.comment="I am manage Smalltalk errors, displaying the stack in the console.";
  10. //>>excludeEnd("ide");
  11. $core.addMethod(
  12. $core.method({
  13. selector: "handleError:",
  14. protocol: 'error handling',
  15. fn: function (anError){
  16. var self=this;
  17. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  18. return $core.withContext(function($ctx1) {
  19. //>>excludeEnd("ctx");
  20. var $1,$receiver;
  21. $1=$recv(anError)._context();
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. $ctx1.sendIdx["context"]=1;
  24. //>>excludeEnd("ctx");
  25. if(($receiver = $1) == null || $receiver.isNil){
  26. $1;
  27. } else {
  28. self._logErrorContext_($recv(anError)._context());
  29. };
  30. self._logError_(anError);
  31. return self;
  32. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  33. }, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},$globals.ConsoleErrorHandler)});
  34. //>>excludeEnd("ctx");
  35. },
  36. //>>excludeStart("ide", pragmas.excludeIdeData);
  37. args: ["anError"],
  38. source: "handleError: anError\x0a\x09anError context ifNotNil: [ self logErrorContext: anError context ].\x0a\x09self logError: anError",
  39. referencedClasses: [],
  40. //>>excludeEnd("ide");
  41. messageSends: ["ifNotNil:", "context", "logErrorContext:", "logError:"]
  42. }),
  43. $globals.ConsoleErrorHandler);
  44. $core.addMethod(
  45. $core.method({
  46. selector: "log:",
  47. protocol: 'private',
  48. fn: function (aString){
  49. var self=this;
  50. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  51. return $core.withContext(function($ctx1) {
  52. //>>excludeEnd("ctx");
  53. $recv(console)._log_(aString);
  54. return self;
  55. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  56. }, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString},$globals.ConsoleErrorHandler)});
  57. //>>excludeEnd("ctx");
  58. },
  59. //>>excludeStart("ide", pragmas.excludeIdeData);
  60. args: ["aString"],
  61. source: "log: aString\x0a\x09console log: aString",
  62. referencedClasses: [],
  63. //>>excludeEnd("ide");
  64. messageSends: ["log:"]
  65. }),
  66. $globals.ConsoleErrorHandler);
  67. $core.addMethod(
  68. $core.method({
  69. selector: "logContext:",
  70. protocol: 'private',
  71. fn: function (aContext){
  72. var self=this;
  73. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  74. return $core.withContext(function($ctx1) {
  75. //>>excludeEnd("ctx");
  76. var $1,$receiver;
  77. $1=$recv(aContext)._home();
  78. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  79. $ctx1.sendIdx["home"]=1;
  80. //>>excludeEnd("ctx");
  81. if(($receiver = $1) == null || $receiver.isNil){
  82. $1;
  83. } else {
  84. self._logContext_($recv(aContext)._home());
  85. };
  86. self._log_($recv(aContext)._asString());
  87. return self;
  88. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  89. }, function($ctx1) {$ctx1.fill(self,"logContext:",{aContext:aContext},$globals.ConsoleErrorHandler)});
  90. //>>excludeEnd("ctx");
  91. },
  92. //>>excludeStart("ide", pragmas.excludeIdeData);
  93. args: ["aContext"],
  94. source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home ].\x0a\x09self log: aContext asString",
  95. referencedClasses: [],
  96. //>>excludeEnd("ide");
  97. messageSends: ["ifNotNil:", "home", "logContext:", "log:", "asString"]
  98. }),
  99. $globals.ConsoleErrorHandler);
  100. $core.addMethod(
  101. $core.method({
  102. selector: "logError:",
  103. protocol: 'private',
  104. fn: function (anError){
  105. var self=this;
  106. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  107. return $core.withContext(function($ctx1) {
  108. //>>excludeEnd("ctx");
  109. self._log_($recv(anError)._messageText());
  110. return self;
  111. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  112. }, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError},$globals.ConsoleErrorHandler)});
  113. //>>excludeEnd("ctx");
  114. },
  115. //>>excludeStart("ide", pragmas.excludeIdeData);
  116. args: ["anError"],
  117. source: "logError: anError\x0a\x09self log: anError messageText",
  118. referencedClasses: [],
  119. //>>excludeEnd("ide");
  120. messageSends: ["log:", "messageText"]
  121. }),
  122. $globals.ConsoleErrorHandler);
  123. $core.addMethod(
  124. $core.method({
  125. selector: "logErrorContext:",
  126. protocol: 'private',
  127. fn: function (aContext){
  128. var self=this;
  129. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  130. return $core.withContext(function($ctx1) {
  131. //>>excludeEnd("ctx");
  132. var $1,$receiver;
  133. if(($receiver = aContext) == null || $receiver.isNil){
  134. aContext;
  135. } else {
  136. $1=$recv(aContext)._home();
  137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  138. $ctx1.sendIdx["home"]=1;
  139. //>>excludeEnd("ctx");
  140. if(($receiver = $1) == null || $receiver.isNil){
  141. $1;
  142. } else {
  143. self._logContext_($recv(aContext)._home());
  144. };
  145. };
  146. return self;
  147. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  148. }, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext},$globals.ConsoleErrorHandler)});
  149. //>>excludeEnd("ctx");
  150. },
  151. //>>excludeStart("ide", pragmas.excludeIdeData);
  152. args: ["aContext"],
  153. source: "logErrorContext: aContext\x0a\x09aContext ifNotNil: [\x0a\x09\x09aContext home ifNotNil: [\x0a\x09\x09\x09self logContext: aContext home ]]",
  154. referencedClasses: [],
  155. //>>excludeEnd("ide");
  156. messageSends: ["ifNotNil:", "home", "logContext:"]
  157. }),
  158. $globals.ConsoleErrorHandler);
  159. $globals.ConsoleErrorHandler.klass.iVarNames = ['current'];
  160. $core.addMethod(
  161. $core.method({
  162. selector: "initialize",
  163. protocol: 'initialization',
  164. fn: function (){
  165. var self=this;
  166. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  167. return $core.withContext(function($ctx1) {
  168. //>>excludeEnd("ctx");
  169. $recv($globals.ErrorHandler)._registerIfNone_(self._new());
  170. return self;
  171. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  172. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ConsoleErrorHandler.klass)});
  173. //>>excludeEnd("ctx");
  174. },
  175. //>>excludeStart("ide", pragmas.excludeIdeData);
  176. args: [],
  177. source: "initialize\x0a\x09ErrorHandler registerIfNone: self new",
  178. referencedClasses: ["ErrorHandler"],
  179. //>>excludeEnd("ide");
  180. messageSends: ["registerIfNone:", "new"]
  181. }),
  182. $globals.ConsoleErrorHandler.klass);
  183. $core.addClass('ConsoleTranscript', $globals.Object, ['textarea'], 'Platform-Services');
  184. //>>excludeStart("ide", pragmas.excludeIdeData);
  185. $globals.ConsoleTranscript.comment="I am a specific transcript emitting to the JavaScript console.\x0a\x0aIf no other transcript is registered, I am the default.";
  186. //>>excludeEnd("ide");
  187. $core.addMethod(
  188. $core.method({
  189. selector: "clear",
  190. protocol: 'printing',
  191. fn: function (){
  192. var self=this;
  193. return self;
  194. },
  195. //>>excludeStart("ide", pragmas.excludeIdeData);
  196. args: [],
  197. source: "clear\x0a\x09\x22no op\x22",
  198. referencedClasses: [],
  199. //>>excludeEnd("ide");
  200. messageSends: []
  201. }),
  202. $globals.ConsoleTranscript);
  203. $core.addMethod(
  204. $core.method({
  205. selector: "cr",
  206. protocol: 'printing',
  207. fn: function (){
  208. var self=this;
  209. return self;
  210. },
  211. //>>excludeStart("ide", pragmas.excludeIdeData);
  212. args: [],
  213. source: "cr\x0a\x09\x22no op\x22",
  214. referencedClasses: [],
  215. //>>excludeEnd("ide");
  216. messageSends: []
  217. }),
  218. $globals.ConsoleTranscript);
  219. $core.addMethod(
  220. $core.method({
  221. selector: "open",
  222. protocol: 'actions',
  223. fn: function (){
  224. var self=this;
  225. return self;
  226. },
  227. //>>excludeStart("ide", pragmas.excludeIdeData);
  228. args: [],
  229. source: "open",
  230. referencedClasses: [],
  231. //>>excludeEnd("ide");
  232. messageSends: []
  233. }),
  234. $globals.ConsoleTranscript);
  235. $core.addMethod(
  236. $core.method({
  237. selector: "show:",
  238. protocol: 'printing',
  239. fn: function (anObject){
  240. var self=this;
  241. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  242. return $core.withContext(function($ctx1) {
  243. //>>excludeEnd("ctx");
  244. console.log(String($recv(anObject)._asString()));
  245. return self;
  246. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  247. }, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject},$globals.ConsoleTranscript)});
  248. //>>excludeEnd("ctx");
  249. },
  250. //>>excludeStart("ide", pragmas.excludeIdeData);
  251. args: ["anObject"],
  252. source: "show: anObject\x0a\x22Smalltalk objects should have no trouble displaying themselves on the Transcript; Javascript objects don't know how, so must be wrapped in a JSObectProxy.\x22\x0a<console.log(String($recv(anObject)._asString()))>",
  253. referencedClasses: [],
  254. //>>excludeEnd("ide");
  255. messageSends: []
  256. }),
  257. $globals.ConsoleTranscript);
  258. $core.addMethod(
  259. $core.method({
  260. selector: "initialize",
  261. protocol: 'initialization',
  262. fn: function (){
  263. var self=this;
  264. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  265. return $core.withContext(function($ctx1) {
  266. //>>excludeEnd("ctx");
  267. $recv($globals.Transcript)._registerIfNone_(self._new());
  268. return self;
  269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  270. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ConsoleTranscript.klass)});
  271. //>>excludeEnd("ctx");
  272. },
  273. //>>excludeStart("ide", pragmas.excludeIdeData);
  274. args: [],
  275. source: "initialize\x0a\x09Transcript registerIfNone: self new",
  276. referencedClasses: ["Transcript"],
  277. //>>excludeEnd("ide");
  278. messageSends: ["registerIfNone:", "new"]
  279. }),
  280. $globals.ConsoleTranscript.klass);
  281. $core.addClass('Environment', $globals.Object, [], 'Platform-Services');
  282. //>>excludeStart("ide", pragmas.excludeIdeData);
  283. $globals.Environment.comment="I provide an unified entry point to manipulate Amber packages, classes and methods.\x0a\x0aTypical use cases include IDEs, remote access and restricting browsing.";
  284. //>>excludeEnd("ide");
  285. $core.addMethod(
  286. $core.method({
  287. selector: "addInstVarNamed:to:",
  288. protocol: 'compiling',
  289. fn: function (aString,aClass){
  290. var self=this;
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. return $core.withContext(function($ctx1) {
  293. //>>excludeEnd("ctx");
  294. var $1,$2,$3,$5,$4;
  295. $1=self._classBuilder();
  296. $2=$recv(aClass)._superclass();
  297. $3=$recv(aClass)._name();
  298. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  299. $ctx1.sendIdx["name"]=1;
  300. //>>excludeEnd("ctx");
  301. $5=$recv($recv(aClass)._instanceVariableNames())._copy();
  302. $recv($5)._add_(aString);
  303. $4=$recv($5)._yourself();
  304. $recv($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$recv($recv(aClass)._package())._name());
  305. return self;
  306. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  307. }, function($ctx1) {$ctx1.fill(self,"addInstVarNamed:to:",{aString:aString,aClass:aClass},$globals.Environment)});
  308. //>>excludeEnd("ctx");
  309. },
  310. //>>excludeStart("ide", pragmas.excludeIdeData);
  311. args: ["aString", "aClass"],
  312. source: "addInstVarNamed: aString to: aClass\x0a\x09self classBuilder\x0a\x09\x09addSubclassOf: aClass superclass \x0a\x09\x09named: aClass name \x0a\x09\x09instanceVariableNames: (aClass instanceVariableNames copy add: aString; yourself)\x0a\x09\x09package: aClass package name",
  313. referencedClasses: [],
  314. //>>excludeEnd("ide");
  315. messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "classBuilder", "superclass", "name", "add:", "copy", "instanceVariableNames", "yourself", "package"]
  316. }),
  317. $globals.Environment);
  318. $core.addMethod(
  319. $core.method({
  320. selector: "allSelectors",
  321. protocol: 'accessing',
  322. fn: function (){
  323. var self=this;
  324. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  325. return $core.withContext(function($ctx1) {
  326. //>>excludeEnd("ctx");
  327. return $recv($recv($globals.Smalltalk)._core())._allSelectors();
  328. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  329. }, function($ctx1) {$ctx1.fill(self,"allSelectors",{},$globals.Environment)});
  330. //>>excludeEnd("ctx");
  331. },
  332. //>>excludeStart("ide", pragmas.excludeIdeData);
  333. args: [],
  334. source: "allSelectors\x0a\x09^ Smalltalk core allSelectors",
  335. referencedClasses: ["Smalltalk"],
  336. //>>excludeEnd("ide");
  337. messageSends: ["allSelectors", "core"]
  338. }),
  339. $globals.Environment);
  340. $core.addMethod(
  341. $core.method({
  342. selector: "availableClassNames",
  343. protocol: 'accessing',
  344. fn: function (){
  345. var self=this;
  346. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  347. return $core.withContext(function($ctx1) {
  348. //>>excludeEnd("ctx");
  349. return $recv($recv($globals.Smalltalk)._classes())._collect_((function(each){
  350. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  351. return $core.withContext(function($ctx2) {
  352. //>>excludeEnd("ctx");
  353. return $recv(each)._name();
  354. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  355. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  356. //>>excludeEnd("ctx");
  357. }));
  358. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  359. }, function($ctx1) {$ctx1.fill(self,"availableClassNames",{},$globals.Environment)});
  360. //>>excludeEnd("ctx");
  361. },
  362. //>>excludeStart("ide", pragmas.excludeIdeData);
  363. args: [],
  364. source: "availableClassNames\x0a\x09^ Smalltalk classes \x0a\x09\x09collect: [ :each | each name ]",
  365. referencedClasses: ["Smalltalk"],
  366. //>>excludeEnd("ide");
  367. messageSends: ["collect:", "classes", "name"]
  368. }),
  369. $globals.Environment);
  370. $core.addMethod(
  371. $core.method({
  372. selector: "availablePackageNames",
  373. protocol: 'accessing',
  374. fn: function (){
  375. var self=this;
  376. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  377. return $core.withContext(function($ctx1) {
  378. //>>excludeEnd("ctx");
  379. return $recv($recv($globals.Smalltalk)._packages())._collect_((function(each){
  380. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  381. return $core.withContext(function($ctx2) {
  382. //>>excludeEnd("ctx");
  383. return $recv(each)._name();
  384. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  385. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  386. //>>excludeEnd("ctx");
  387. }));
  388. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  389. }, function($ctx1) {$ctx1.fill(self,"availablePackageNames",{},$globals.Environment)});
  390. //>>excludeEnd("ctx");
  391. },
  392. //>>excludeStart("ide", pragmas.excludeIdeData);
  393. args: [],
  394. source: "availablePackageNames\x0a\x09^ Smalltalk packages \x0a\x09\x09collect: [ :each | each name ]",
  395. referencedClasses: ["Smalltalk"],
  396. //>>excludeEnd("ide");
  397. messageSends: ["collect:", "packages", "name"]
  398. }),
  399. $globals.Environment);
  400. $core.addMethod(
  401. $core.method({
  402. selector: "availableProtocolsFor:",
  403. protocol: 'accessing',
  404. fn: function (aClass){
  405. var self=this;
  406. var protocols;
  407. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  408. return $core.withContext(function($ctx1) {
  409. //>>excludeEnd("ctx");
  410. var $1,$receiver;
  411. protocols=$recv(aClass)._protocols();
  412. $1=$recv(aClass)._superclass();
  413. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  414. $ctx1.sendIdx["superclass"]=1;
  415. //>>excludeEnd("ctx");
  416. if(($receiver = $1) == null || $receiver.isNil){
  417. $1;
  418. } else {
  419. $recv(protocols)._addAll_(self._availableProtocolsFor_($recv(aClass)._superclass()));
  420. };
  421. return $recv($recv($recv(protocols)._asSet())._asArray())._sort();
  422. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  423. }, function($ctx1) {$ctx1.fill(self,"availableProtocolsFor:",{aClass:aClass,protocols:protocols},$globals.Environment)});
  424. //>>excludeEnd("ctx");
  425. },
  426. //>>excludeStart("ide", pragmas.excludeIdeData);
  427. args: ["aClass"],
  428. source: "availableProtocolsFor: aClass\x0a\x09| protocols |\x0a\x09\x0a\x09protocols := aClass protocols.\x0a\x09aClass superclass ifNotNil: [ protocols addAll: (self availableProtocolsFor: aClass superclass) ].\x0a\x09^ protocols asSet asArray sort",
  429. referencedClasses: [],
  430. //>>excludeEnd("ide");
  431. messageSends: ["protocols", "ifNotNil:", "superclass", "addAll:", "availableProtocolsFor:", "sort", "asArray", "asSet"]
  432. }),
  433. $globals.Environment);
  434. $core.addMethod(
  435. $core.method({
  436. selector: "classBuilder",
  437. protocol: 'accessing',
  438. fn: function (){
  439. var self=this;
  440. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  441. return $core.withContext(function($ctx1) {
  442. //>>excludeEnd("ctx");
  443. return $recv($globals.ClassBuilder)._new();
  444. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  445. }, function($ctx1) {$ctx1.fill(self,"classBuilder",{},$globals.Environment)});
  446. //>>excludeEnd("ctx");
  447. },
  448. //>>excludeStart("ide", pragmas.excludeIdeData);
  449. args: [],
  450. source: "classBuilder\x0a\x09^ ClassBuilder new",
  451. referencedClasses: ["ClassBuilder"],
  452. //>>excludeEnd("ide");
  453. messageSends: ["new"]
  454. }),
  455. $globals.Environment);
  456. $core.addMethod(
  457. $core.method({
  458. selector: "classNamed:",
  459. protocol: 'accessing',
  460. fn: function (aString){
  461. var self=this;
  462. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  463. return $core.withContext(function($ctx1) {
  464. //>>excludeEnd("ctx");
  465. var $1,$receiver;
  466. $1=$recv($recv($globals.Smalltalk)._globals())._at_($recv(aString)._asSymbol());
  467. if(($receiver = $1) == null || $receiver.isNil){
  468. return self._error_("Invalid class name");
  469. } else {
  470. return $1;
  471. };
  472. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  473. }, function($ctx1) {$ctx1.fill(self,"classNamed:",{aString:aString},$globals.Environment)});
  474. //>>excludeEnd("ctx");
  475. },
  476. //>>excludeStart("ide", pragmas.excludeIdeData);
  477. args: ["aString"],
  478. source: "classNamed: aString\x0a\x09^ (Smalltalk globals at: aString asSymbol)\x0a\x09\x09ifNil: [ self error: 'Invalid class name' ]",
  479. referencedClasses: ["Smalltalk"],
  480. //>>excludeEnd("ide");
  481. messageSends: ["ifNil:", "at:", "globals", "asSymbol", "error:"]
  482. }),
  483. $globals.Environment);
  484. $core.addMethod(
  485. $core.method({
  486. selector: "classes",
  487. protocol: 'accessing',
  488. fn: function (){
  489. var self=this;
  490. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  491. return $core.withContext(function($ctx1) {
  492. //>>excludeEnd("ctx");
  493. return $recv($globals.Smalltalk)._classes();
  494. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  495. }, function($ctx1) {$ctx1.fill(self,"classes",{},$globals.Environment)});
  496. //>>excludeEnd("ctx");
  497. },
  498. //>>excludeStart("ide", pragmas.excludeIdeData);
  499. args: [],
  500. source: "classes\x0a\x09^ Smalltalk classes",
  501. referencedClasses: ["Smalltalk"],
  502. //>>excludeEnd("ide");
  503. messageSends: ["classes"]
  504. }),
  505. $globals.Environment);
  506. $core.addMethod(
  507. $core.method({
  508. selector: "commitPackage:onSuccess:onError:",
  509. protocol: 'actions',
  510. fn: function (aPackage,aBlock,anotherBlock){
  511. var self=this;
  512. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  513. return $core.withContext(function($ctx1) {
  514. //>>excludeEnd("ctx");
  515. $recv($recv(aPackage)._transport())._commitOnSuccess_onError_(aBlock,anotherBlock);
  516. return self;
  517. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  518. }, function($ctx1) {$ctx1.fill(self,"commitPackage:onSuccess:onError:",{aPackage:aPackage,aBlock:aBlock,anotherBlock:anotherBlock},$globals.Environment)});
  519. //>>excludeEnd("ctx");
  520. },
  521. //>>excludeStart("ide", pragmas.excludeIdeData);
  522. args: ["aPackage", "aBlock", "anotherBlock"],
  523. source: "commitPackage: aPackage onSuccess: aBlock onError: anotherBlock\x0a\x09aPackage transport\x0a\x09\x09commitOnSuccess: aBlock\x0a\x09\x09onError: anotherBlock",
  524. referencedClasses: [],
  525. //>>excludeEnd("ide");
  526. messageSends: ["commitOnSuccess:onError:", "transport"]
  527. }),
  528. $globals.Environment);
  529. $core.addMethod(
  530. $core.method({
  531. selector: "compileClassComment:for:",
  532. protocol: 'compiling',
  533. fn: function (aString,aClass){
  534. var self=this;
  535. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  536. return $core.withContext(function($ctx1) {
  537. //>>excludeEnd("ctx");
  538. $recv(aClass)._comment_(aString);
  539. return self;
  540. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  541. }, function($ctx1) {$ctx1.fill(self,"compileClassComment:for:",{aString:aString,aClass:aClass},$globals.Environment)});
  542. //>>excludeEnd("ctx");
  543. },
  544. //>>excludeStart("ide", pragmas.excludeIdeData);
  545. args: ["aString", "aClass"],
  546. source: "compileClassComment: aString for: aClass\x0a\x09aClass comment: aString",
  547. referencedClasses: [],
  548. //>>excludeEnd("ide");
  549. messageSends: ["comment:"]
  550. }),
  551. $globals.Environment);
  552. $core.addMethod(
  553. $core.method({
  554. selector: "compileClassDefinition:",
  555. protocol: 'compiling',
  556. fn: function (aString){
  557. var self=this;
  558. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  559. return $core.withContext(function($ctx1) {
  560. //>>excludeEnd("ctx");
  561. $recv((function(){
  562. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  563. return $core.withContext(function($ctx2) {
  564. //>>excludeEnd("ctx");
  565. return self._evaluate_for_(aString,$recv($globals.DoIt)._new());
  566. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  567. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  568. //>>excludeEnd("ctx");
  569. }))._on_do_($globals.Error,(function(error){
  570. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  571. return $core.withContext(function($ctx2) {
  572. //>>excludeEnd("ctx");
  573. return $recv($globals.Terminal)._alert_($recv(error)._messageText());
  574. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  575. }, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1,2)});
  576. //>>excludeEnd("ctx");
  577. }));
  578. return self;
  579. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  580. }, function($ctx1) {$ctx1.fill(self,"compileClassDefinition:",{aString:aString},$globals.Environment)});
  581. //>>excludeEnd("ctx");
  582. },
  583. //>>excludeStart("ide", pragmas.excludeIdeData);
  584. args: ["aString"],
  585. source: "compileClassDefinition: aString\x0a\x09[ self evaluate: aString for: DoIt new ]\x0a\x09\x09on: Error\x0a\x09\x09do: [ :error | Terminal alert: error messageText ]",
  586. referencedClasses: ["DoIt", "Error", "Terminal"],
  587. //>>excludeEnd("ide");
  588. messageSends: ["on:do:", "evaluate:for:", "new", "alert:", "messageText"]
  589. }),
  590. $globals.Environment);
  591. $core.addMethod(
  592. $core.method({
  593. selector: "compileMethod:for:protocol:",
  594. protocol: 'compiling',
  595. fn: function (sourceCode,class_,protocol){
  596. var self=this;
  597. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  598. return $core.withContext(function($ctx1) {
  599. //>>excludeEnd("ctx");
  600. return $recv(class_)._compile_protocol_(sourceCode,protocol);
  601. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  602. }, function($ctx1) {$ctx1.fill(self,"compileMethod:for:protocol:",{sourceCode:sourceCode,class_:class_,protocol:protocol},$globals.Environment)});
  603. //>>excludeEnd("ctx");
  604. },
  605. //>>excludeStart("ide", pragmas.excludeIdeData);
  606. args: ["sourceCode", "class", "protocol"],
  607. source: "compileMethod: sourceCode for: class protocol: protocol\x0a\x09^ class\x0a\x09\x09compile: sourceCode\x0a\x09\x09protocol: protocol",
  608. referencedClasses: [],
  609. //>>excludeEnd("ide");
  610. messageSends: ["compile:protocol:"]
  611. }),
  612. $globals.Environment);
  613. $core.addMethod(
  614. $core.method({
  615. selector: "copyClass:to:",
  616. protocol: 'actions',
  617. fn: function (aClass,aClassName){
  618. var self=this;
  619. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  620. return $core.withContext(function($ctx1) {
  621. //>>excludeEnd("ctx");
  622. var $1,$2,$receiver;
  623. $1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
  624. if(($receiver = $1) == null || $receiver.isNil){
  625. $1;
  626. } else {
  627. $2=$recv("A class named ".__comma(aClassName)).__comma(" already exists");
  628. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  629. $ctx1.sendIdx[","]=1;
  630. //>>excludeEnd("ctx");
  631. self._error_($2);
  632. };
  633. $recv($recv($globals.ClassBuilder)._new())._copyClass_named_(aClass,aClassName);
  634. return self;
  635. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  636. }, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,aClassName:aClassName},$globals.Environment)});
  637. //>>excludeEnd("ctx");
  638. },
  639. //>>excludeStart("ide", pragmas.excludeIdeData);
  640. args: ["aClass", "aClassName"],
  641. source: "copyClass: aClass to: aClassName\x0a\x09(Smalltalk globals at: aClassName)\x0a\x09\x09ifNotNil: [ self error: 'A class named ', aClassName, ' already exists' ].\x0a\x09\x09\x0a\x09ClassBuilder new copyClass: aClass named: aClassName",
  642. referencedClasses: ["Smalltalk", "ClassBuilder"],
  643. //>>excludeEnd("ide");
  644. messageSends: ["ifNotNil:", "at:", "globals", "error:", ",", "copyClass:named:", "new"]
  645. }),
  646. $globals.Environment);
  647. $core.addMethod(
  648. $core.method({
  649. selector: "doItReceiver",
  650. protocol: 'accessing',
  651. fn: function (){
  652. var self=this;
  653. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  654. return $core.withContext(function($ctx1) {
  655. //>>excludeEnd("ctx");
  656. return $recv($globals.DoIt)._new();
  657. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  658. }, function($ctx1) {$ctx1.fill(self,"doItReceiver",{},$globals.Environment)});
  659. //>>excludeEnd("ctx");
  660. },
  661. //>>excludeStart("ide", pragmas.excludeIdeData);
  662. args: [],
  663. source: "doItReceiver\x0a\x09^ DoIt new",
  664. referencedClasses: ["DoIt"],
  665. //>>excludeEnd("ide");
  666. messageSends: ["new"]
  667. }),
  668. $globals.Environment);
  669. $core.addMethod(
  670. $core.method({
  671. selector: "evaluate:for:",
  672. protocol: 'evaluating',
  673. fn: function (aString,anObject){
  674. var self=this;
  675. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  676. return $core.withContext(function($ctx1) {
  677. //>>excludeEnd("ctx");
  678. return $recv($globals.Evaluator)._evaluate_for_(aString,anObject);
  679. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  680. }, function($ctx1) {$ctx1.fill(self,"evaluate:for:",{aString:aString,anObject:anObject},$globals.Environment)});
  681. //>>excludeEnd("ctx");
  682. },
  683. //>>excludeStart("ide", pragmas.excludeIdeData);
  684. args: ["aString", "anObject"],
  685. source: "evaluate: aString for: anObject\x0a\x09^ Evaluator evaluate: aString for: anObject",
  686. referencedClasses: ["Evaluator"],
  687. //>>excludeEnd("ide");
  688. messageSends: ["evaluate:for:"]
  689. }),
  690. $globals.Environment);
  691. $core.addMethod(
  692. $core.method({
  693. selector: "evaluate:on:do:",
  694. protocol: 'error handling',
  695. fn: function (aBlock,anErrorClass,exceptionBlock){
  696. var self=this;
  697. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  698. return $core.withContext(function($ctx1) {
  699. //>>excludeEnd("ctx");
  700. var $1;
  701. $recv(aBlock)._tryCatch_((function(exception){
  702. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  703. return $core.withContext(function($ctx2) {
  704. //>>excludeEnd("ctx");
  705. $1=$recv(exception)._isKindOf_(self._classNamed_($recv(anErrorClass)._name()));
  706. if($core.assert($1)){
  707. return $recv(exceptionBlock)._value_(exception);
  708. } else {
  709. return $recv(exception)._resignal();
  710. };
  711. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  712. }, function($ctx2) {$ctx2.fillBlock({exception:exception},$ctx1,1)});
  713. //>>excludeEnd("ctx");
  714. }));
  715. return self;
  716. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  717. }, function($ctx1) {$ctx1.fill(self,"evaluate:on:do:",{aBlock:aBlock,anErrorClass:anErrorClass,exceptionBlock:exceptionBlock},$globals.Environment)});
  718. //>>excludeEnd("ctx");
  719. },
  720. //>>excludeStart("ide", pragmas.excludeIdeData);
  721. args: ["aBlock", "anErrorClass", "exceptionBlock"],
  722. source: "evaluate: aBlock on: anErrorClass do: exceptionBlock\x0a\x09\x22Evaluate a block and catch exceptions happening on the environment stack\x22\x0a\x09\x0a\x09aBlock tryCatch: [ :exception | \x0a\x09\x09(exception isKindOf: (self classNamed: anErrorClass name))\x0a\x09\x09\x09ifTrue: [ exceptionBlock value: exception ]\x0a \x09\x09\x09ifFalse: [ exception resignal ] ]",
  723. referencedClasses: [],
  724. //>>excludeEnd("ide");
  725. messageSends: ["tryCatch:", "ifTrue:ifFalse:", "isKindOf:", "classNamed:", "name", "value:", "resignal"]
  726. }),
  727. $globals.Environment);
  728. $core.addMethod(
  729. $core.method({
  730. selector: "inspect:",
  731. protocol: 'actions',
  732. fn: function (anObject){
  733. var self=this;
  734. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  735. return $core.withContext(function($ctx1) {
  736. //>>excludeEnd("ctx");
  737. $recv($globals.Inspector)._inspect_(anObject);
  738. return self;
  739. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  740. }, function($ctx1) {$ctx1.fill(self,"inspect:",{anObject:anObject},$globals.Environment)});
  741. //>>excludeEnd("ctx");
  742. },
  743. //>>excludeStart("ide", pragmas.excludeIdeData);
  744. args: ["anObject"],
  745. source: "inspect: anObject\x0a\x09Inspector inspect: anObject",
  746. referencedClasses: ["Inspector"],
  747. //>>excludeEnd("ide");
  748. messageSends: ["inspect:"]
  749. }),
  750. $globals.Environment);
  751. $core.addMethod(
  752. $core.method({
  753. selector: "moveClass:toPackage:",
  754. protocol: 'actions',
  755. fn: function (aClass,aPackageName){
  756. var self=this;
  757. var package_;
  758. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  759. return $core.withContext(function($ctx1) {
  760. //>>excludeEnd("ctx");
  761. var $1,$2,$receiver;
  762. package_=$recv($globals.Package)._named_(aPackageName);
  763. $1=package_;
  764. if(($receiver = $1) == null || $receiver.isNil){
  765. self._error_("Invalid package name");
  766. } else {
  767. $1;
  768. };
  769. $2=$recv(package_).__eq_eq($recv(aClass)._package());
  770. if($core.assert($2)){
  771. return self;
  772. };
  773. $recv(aClass)._package_(package_);
  774. return self;
  775. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  776. }, function($ctx1) {$ctx1.fill(self,"moveClass:toPackage:",{aClass:aClass,aPackageName:aPackageName,package_:package_},$globals.Environment)});
  777. //>>excludeEnd("ctx");
  778. },
  779. //>>excludeStart("ide", pragmas.excludeIdeData);
  780. args: ["aClass", "aPackageName"],
  781. source: "moveClass: aClass toPackage: aPackageName\x0a\x09| package |\x0a\x09\x0a\x09package := Package named: aPackageName.\x0a\x09package ifNil: [ self error: 'Invalid package name' ].\x0a\x09package == aClass package ifTrue: [ ^ self ].\x0a\x09\x0a\x09aClass package: package",
  782. referencedClasses: ["Package"],
  783. //>>excludeEnd("ide");
  784. messageSends: ["named:", "ifNil:", "error:", "ifTrue:", "==", "package", "package:"]
  785. }),
  786. $globals.Environment);
  787. $core.addMethod(
  788. $core.method({
  789. selector: "moveMethod:toClass:",
  790. protocol: 'actions',
  791. fn: function (aMethod,aClassName){
  792. var self=this;
  793. var destinationClass;
  794. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  795. return $core.withContext(function($ctx1) {
  796. //>>excludeEnd("ctx");
  797. var $2,$3,$1,$5,$4;
  798. destinationClass=self._classNamed_(aClassName);
  799. $2=destinationClass;
  800. $3=$recv(aMethod)._methodClass();
  801. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  802. $ctx1.sendIdx["methodClass"]=1;
  803. //>>excludeEnd("ctx");
  804. $1=$recv($2).__eq_eq($3);
  805. if($core.assert($1)){
  806. return self;
  807. };
  808. $5=$recv(aMethod)._methodClass();
  809. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  810. $ctx1.sendIdx["methodClass"]=2;
  811. //>>excludeEnd("ctx");
  812. $4=$recv($5)._isMetaclass();
  813. if($core.assert($4)){
  814. destinationClass=$recv(destinationClass)._class();
  815. destinationClass;
  816. };
  817. $recv(destinationClass)._compile_protocol_($recv(aMethod)._source(),$recv(aMethod)._protocol());
  818. $recv($recv(aMethod)._methodClass())._removeCompiledMethod_(aMethod);
  819. return self;
  820. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  821. }, function($ctx1) {$ctx1.fill(self,"moveMethod:toClass:",{aMethod:aMethod,aClassName:aClassName,destinationClass:destinationClass},$globals.Environment)});
  822. //>>excludeEnd("ctx");
  823. },
  824. //>>excludeStart("ide", pragmas.excludeIdeData);
  825. args: ["aMethod", "aClassName"],
  826. source: "moveMethod: aMethod toClass: aClassName\x0a\x09| destinationClass |\x0a\x09\x0a\x09destinationClass := self classNamed: aClassName.\x0a\x09destinationClass == aMethod methodClass ifTrue: [ ^ self ].\x0a\x09\x0a\x09aMethod methodClass isMetaclass ifTrue: [ \x0a\x09\x09destinationClass := destinationClass class ].\x0a\x09\x0a\x09destinationClass \x0a\x09\x09compile: aMethod source\x0a\x09\x09protocol: aMethod protocol.\x0a\x09aMethod methodClass \x0a\x09\x09removeCompiledMethod: aMethod",
  827. referencedClasses: [],
  828. //>>excludeEnd("ide");
  829. messageSends: ["classNamed:", "ifTrue:", "==", "methodClass", "isMetaclass", "class", "compile:protocol:", "source", "protocol", "removeCompiledMethod:"]
  830. }),
  831. $globals.Environment);
  832. $core.addMethod(
  833. $core.method({
  834. selector: "moveMethod:toProtocol:",
  835. protocol: 'actions',
  836. fn: function (aMethod,aProtocol){
  837. var self=this;
  838. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  839. return $core.withContext(function($ctx1) {
  840. //>>excludeEnd("ctx");
  841. $recv(aMethod)._protocol_(aProtocol);
  842. return self;
  843. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  844. }, function($ctx1) {$ctx1.fill(self,"moveMethod:toProtocol:",{aMethod:aMethod,aProtocol:aProtocol},$globals.Environment)});
  845. //>>excludeEnd("ctx");
  846. },
  847. //>>excludeStart("ide", pragmas.excludeIdeData);
  848. args: ["aMethod", "aProtocol"],
  849. source: "moveMethod: aMethod toProtocol: aProtocol\x0a\x09aMethod protocol: aProtocol",
  850. referencedClasses: [],
  851. //>>excludeEnd("ide");
  852. messageSends: ["protocol:"]
  853. }),
  854. $globals.Environment);
  855. $core.addMethod(
  856. $core.method({
  857. selector: "packages",
  858. protocol: 'accessing',
  859. fn: function (){
  860. var self=this;
  861. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  862. return $core.withContext(function($ctx1) {
  863. //>>excludeEnd("ctx");
  864. return $recv($globals.Smalltalk)._packages();
  865. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  866. }, function($ctx1) {$ctx1.fill(self,"packages",{},$globals.Environment)});
  867. //>>excludeEnd("ctx");
  868. },
  869. //>>excludeStart("ide", pragmas.excludeIdeData);
  870. args: [],
  871. source: "packages\x0a\x09^ Smalltalk packages",
  872. referencedClasses: ["Smalltalk"],
  873. //>>excludeEnd("ide");
  874. messageSends: ["packages"]
  875. }),
  876. $globals.Environment);
  877. $core.addMethod(
  878. $core.method({
  879. selector: "registerErrorHandler:",
  880. protocol: 'services',
  881. fn: function (anErrorHandler){
  882. var self=this;
  883. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  884. return $core.withContext(function($ctx1) {
  885. //>>excludeEnd("ctx");
  886. $recv($globals.ErrorHandler)._register_(anErrorHandler);
  887. return self;
  888. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  889. }, function($ctx1) {$ctx1.fill(self,"registerErrorHandler:",{anErrorHandler:anErrorHandler},$globals.Environment)});
  890. //>>excludeEnd("ctx");
  891. },
  892. //>>excludeStart("ide", pragmas.excludeIdeData);
  893. args: ["anErrorHandler"],
  894. source: "registerErrorHandler: anErrorHandler\x0a\x09ErrorHandler register: anErrorHandler",
  895. referencedClasses: ["ErrorHandler"],
  896. //>>excludeEnd("ide");
  897. messageSends: ["register:"]
  898. }),
  899. $globals.Environment);
  900. $core.addMethod(
  901. $core.method({
  902. selector: "registerFinder:",
  903. protocol: 'services',
  904. fn: function (aFinder){
  905. var self=this;
  906. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  907. return $core.withContext(function($ctx1) {
  908. //>>excludeEnd("ctx");
  909. $recv($globals.Finder)._register_(aFinder);
  910. return self;
  911. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  912. }, function($ctx1) {$ctx1.fill(self,"registerFinder:",{aFinder:aFinder},$globals.Environment)});
  913. //>>excludeEnd("ctx");
  914. },
  915. //>>excludeStart("ide", pragmas.excludeIdeData);
  916. args: ["aFinder"],
  917. source: "registerFinder: aFinder\x0a\x09Finder register: aFinder",
  918. referencedClasses: ["Finder"],
  919. //>>excludeEnd("ide");
  920. messageSends: ["register:"]
  921. }),
  922. $globals.Environment);
  923. $core.addMethod(
  924. $core.method({
  925. selector: "registerInspector:",
  926. protocol: 'services',
  927. fn: function (anInspector){
  928. var self=this;
  929. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  930. return $core.withContext(function($ctx1) {
  931. //>>excludeEnd("ctx");
  932. $recv($globals.Inspector)._register_(anInspector);
  933. return self;
  934. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  935. }, function($ctx1) {$ctx1.fill(self,"registerInspector:",{anInspector:anInspector},$globals.Environment)});
  936. //>>excludeEnd("ctx");
  937. },
  938. //>>excludeStart("ide", pragmas.excludeIdeData);
  939. args: ["anInspector"],
  940. source: "registerInspector: anInspector\x0a\x09Inspector register: anInspector",
  941. referencedClasses: ["Inspector"],
  942. //>>excludeEnd("ide");
  943. messageSends: ["register:"]
  944. }),
  945. $globals.Environment);
  946. $core.addMethod(
  947. $core.method({
  948. selector: "registerProgressHandler:",
  949. protocol: 'services',
  950. fn: function (aProgressHandler){
  951. var self=this;
  952. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  953. return $core.withContext(function($ctx1) {
  954. //>>excludeEnd("ctx");
  955. $recv($globals.ProgressHandler)._register_(aProgressHandler);
  956. return self;
  957. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  958. }, function($ctx1) {$ctx1.fill(self,"registerProgressHandler:",{aProgressHandler:aProgressHandler},$globals.Environment)});
  959. //>>excludeEnd("ctx");
  960. },
  961. //>>excludeStart("ide", pragmas.excludeIdeData);
  962. args: ["aProgressHandler"],
  963. source: "registerProgressHandler: aProgressHandler\x0a\x09ProgressHandler register: aProgressHandler",
  964. referencedClasses: ["ProgressHandler"],
  965. //>>excludeEnd("ide");
  966. messageSends: ["register:"]
  967. }),
  968. $globals.Environment);
  969. $core.addMethod(
  970. $core.method({
  971. selector: "registerTranscript:",
  972. protocol: 'services',
  973. fn: function (aTranscript){
  974. var self=this;
  975. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  976. return $core.withContext(function($ctx1) {
  977. //>>excludeEnd("ctx");
  978. $recv($globals.Transcript)._register_(aTranscript);
  979. return self;
  980. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  981. }, function($ctx1) {$ctx1.fill(self,"registerTranscript:",{aTranscript:aTranscript},$globals.Environment)});
  982. //>>excludeEnd("ctx");
  983. },
  984. //>>excludeStart("ide", pragmas.excludeIdeData);
  985. args: ["aTranscript"],
  986. source: "registerTranscript: aTranscript\x0a\x09Transcript register: aTranscript",
  987. referencedClasses: ["Transcript"],
  988. //>>excludeEnd("ide");
  989. messageSends: ["register:"]
  990. }),
  991. $globals.Environment);
  992. $core.addMethod(
  993. $core.method({
  994. selector: "removeClass:",
  995. protocol: 'actions',
  996. fn: function (aClass){
  997. var self=this;
  998. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  999. return $core.withContext(function($ctx1) {
  1000. //>>excludeEnd("ctx");
  1001. $recv($globals.Smalltalk)._removeClass_(aClass);
  1002. return self;
  1003. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1004. }, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},$globals.Environment)});
  1005. //>>excludeEnd("ctx");
  1006. },
  1007. //>>excludeStart("ide", pragmas.excludeIdeData);
  1008. args: ["aClass"],
  1009. source: "removeClass: aClass\x0a\x09Smalltalk removeClass: aClass",
  1010. referencedClasses: ["Smalltalk"],
  1011. //>>excludeEnd("ide");
  1012. messageSends: ["removeClass:"]
  1013. }),
  1014. $globals.Environment);
  1015. $core.addMethod(
  1016. $core.method({
  1017. selector: "removeMethod:",
  1018. protocol: 'actions',
  1019. fn: function (aMethod){
  1020. var self=this;
  1021. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1022. return $core.withContext(function($ctx1) {
  1023. //>>excludeEnd("ctx");
  1024. $recv($recv(aMethod)._methodClass())._removeCompiledMethod_(aMethod);
  1025. return self;
  1026. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1027. }, function($ctx1) {$ctx1.fill(self,"removeMethod:",{aMethod:aMethod},$globals.Environment)});
  1028. //>>excludeEnd("ctx");
  1029. },
  1030. //>>excludeStart("ide", pragmas.excludeIdeData);
  1031. args: ["aMethod"],
  1032. source: "removeMethod: aMethod\x0a\x09aMethod methodClass removeCompiledMethod: aMethod",
  1033. referencedClasses: [],
  1034. //>>excludeEnd("ide");
  1035. messageSends: ["removeCompiledMethod:", "methodClass"]
  1036. }),
  1037. $globals.Environment);
  1038. $core.addMethod(
  1039. $core.method({
  1040. selector: "removeProtocol:from:",
  1041. protocol: 'actions',
  1042. fn: function (aString,aClass){
  1043. var self=this;
  1044. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1045. return $core.withContext(function($ctx1) {
  1046. //>>excludeEnd("ctx");
  1047. $recv($recv(aClass)._methodsInProtocol_(aString))._do_((function(each){
  1048. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1049. return $core.withContext(function($ctx2) {
  1050. //>>excludeEnd("ctx");
  1051. return $recv(aClass)._removeCompiledMethod_(each);
  1052. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1053. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  1054. //>>excludeEnd("ctx");
  1055. }));
  1056. return self;
  1057. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1058. }, function($ctx1) {$ctx1.fill(self,"removeProtocol:from:",{aString:aString,aClass:aClass},$globals.Environment)});
  1059. //>>excludeEnd("ctx");
  1060. },
  1061. //>>excludeStart("ide", pragmas.excludeIdeData);
  1062. args: ["aString", "aClass"],
  1063. source: "removeProtocol: aString from: aClass\x0a\x09(aClass methodsInProtocol: aString)\x0a\x09\x09do: [ :each | aClass removeCompiledMethod: each ]",
  1064. referencedClasses: [],
  1065. //>>excludeEnd("ide");
  1066. messageSends: ["do:", "methodsInProtocol:", "removeCompiledMethod:"]
  1067. }),
  1068. $globals.Environment);
  1069. $core.addMethod(
  1070. $core.method({
  1071. selector: "renameClass:to:",
  1072. protocol: 'actions',
  1073. fn: function (aClass,aClassName){
  1074. var self=this;
  1075. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1076. return $core.withContext(function($ctx1) {
  1077. //>>excludeEnd("ctx");
  1078. var $1,$2,$receiver;
  1079. $1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
  1080. if(($receiver = $1) == null || $receiver.isNil){
  1081. $1;
  1082. } else {
  1083. $2=$recv("A class named ".__comma(aClassName)).__comma(" already exists");
  1084. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1085. $ctx1.sendIdx[","]=1;
  1086. //>>excludeEnd("ctx");
  1087. self._error_($2);
  1088. };
  1089. $recv($recv($globals.ClassBuilder)._new())._renameClass_to_(aClass,aClassName);
  1090. return self;
  1091. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1092. }, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aClassName:aClassName},$globals.Environment)});
  1093. //>>excludeEnd("ctx");
  1094. },
  1095. //>>excludeStart("ide", pragmas.excludeIdeData);
  1096. args: ["aClass", "aClassName"],
  1097. source: "renameClass: aClass to: aClassName\x0a\x09(Smalltalk globals at: aClassName)\x0a\x09\x09ifNotNil: [ self error: 'A class named ', aClassName, ' already exists' ].\x0a\x09\x09\x0a\x09ClassBuilder new renameClass: aClass to: aClassName",
  1098. referencedClasses: ["Smalltalk", "ClassBuilder"],
  1099. //>>excludeEnd("ide");
  1100. messageSends: ["ifNotNil:", "at:", "globals", "error:", ",", "renameClass:to:", "new"]
  1101. }),
  1102. $globals.Environment);
  1103. $core.addMethod(
  1104. $core.method({
  1105. selector: "renamePackage:to:",
  1106. protocol: 'actions',
  1107. fn: function (aPackageName,aNewPackageName){
  1108. var self=this;
  1109. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1110. return $core.withContext(function($ctx1) {
  1111. //>>excludeEnd("ctx");
  1112. var $1,$2,$receiver;
  1113. $1=$recv($recv($globals.Smalltalk)._globals())._at_(aNewPackageName);
  1114. if(($receiver = $1) == null || $receiver.isNil){
  1115. $1;
  1116. } else {
  1117. $2=$recv("A package named ".__comma(aNewPackageName)).__comma(" already exists");
  1118. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1119. $ctx1.sendIdx[","]=1;
  1120. //>>excludeEnd("ctx");
  1121. self._error_($2);
  1122. };
  1123. $recv($globals.Smalltalk)._renamePackage_to_(aPackageName,aNewPackageName);
  1124. return self;
  1125. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1126. }, function($ctx1) {$ctx1.fill(self,"renamePackage:to:",{aPackageName:aPackageName,aNewPackageName:aNewPackageName},$globals.Environment)});
  1127. //>>excludeEnd("ctx");
  1128. },
  1129. //>>excludeStart("ide", pragmas.excludeIdeData);
  1130. args: ["aPackageName", "aNewPackageName"],
  1131. source: "renamePackage: aPackageName to: aNewPackageName\x0a (Smalltalk globals at: aNewPackageName)\x0a ifNotNil: [ self error: 'A package named ', aNewPackageName, ' already exists' ].\x0a\x0a Smalltalk renamePackage: aPackageName to: aNewPackageName",
  1132. referencedClasses: ["Smalltalk"],
  1133. //>>excludeEnd("ide");
  1134. messageSends: ["ifNotNil:", "at:", "globals", "error:", ",", "renamePackage:to:"]
  1135. }),
  1136. $globals.Environment);
  1137. $core.addMethod(
  1138. $core.method({
  1139. selector: "renameProtocol:to:in:",
  1140. protocol: 'actions',
  1141. fn: function (aString,anotherString,aClass){
  1142. var self=this;
  1143. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1144. return $core.withContext(function($ctx1) {
  1145. //>>excludeEnd("ctx");
  1146. $recv($recv(aClass)._methodsInProtocol_(aString))._do_((function(each){
  1147. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1148. return $core.withContext(function($ctx2) {
  1149. //>>excludeEnd("ctx");
  1150. return $recv(each)._protocol_(anotherString);
  1151. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1152. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  1153. //>>excludeEnd("ctx");
  1154. }));
  1155. return self;
  1156. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1157. }, function($ctx1) {$ctx1.fill(self,"renameProtocol:to:in:",{aString:aString,anotherString:anotherString,aClass:aClass},$globals.Environment)});
  1158. //>>excludeEnd("ctx");
  1159. },
  1160. //>>excludeStart("ide", pragmas.excludeIdeData);
  1161. args: ["aString", "anotherString", "aClass"],
  1162. source: "renameProtocol: aString to: anotherString in: aClass\x0a\x09(aClass methodsInProtocol: aString)\x0a\x09\x09do: [ :each | each protocol: anotherString ]",
  1163. referencedClasses: [],
  1164. //>>excludeEnd("ide");
  1165. messageSends: ["do:", "methodsInProtocol:", "protocol:"]
  1166. }),
  1167. $globals.Environment);
  1168. $core.addMethod(
  1169. $core.method({
  1170. selector: "setClassCommentOf:to:",
  1171. protocol: 'actions',
  1172. fn: function (aClass,aString){
  1173. var self=this;
  1174. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1175. return $core.withContext(function($ctx1) {
  1176. //>>excludeEnd("ctx");
  1177. $recv(aClass)._comment_(aString);
  1178. return self;
  1179. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1180. }, function($ctx1) {$ctx1.fill(self,"setClassCommentOf:to:",{aClass:aClass,aString:aString},$globals.Environment)});
  1181. //>>excludeEnd("ctx");
  1182. },
  1183. //>>excludeStart("ide", pragmas.excludeIdeData);
  1184. args: ["aClass", "aString"],
  1185. source: "setClassCommentOf: aClass to: aString\x0a\x09aClass comment: aString",
  1186. referencedClasses: [],
  1187. //>>excludeEnd("ide");
  1188. messageSends: ["comment:"]
  1189. }),
  1190. $globals.Environment);
  1191. $core.addMethod(
  1192. $core.method({
  1193. selector: "systemAnnouncer",
  1194. protocol: 'accessing',
  1195. fn: function (){
  1196. var self=this;
  1197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1198. return $core.withContext(function($ctx1) {
  1199. //>>excludeEnd("ctx");
  1200. return $recv($recv($recv($globals.Smalltalk)._globals())._at_("SystemAnnouncer"))._current();
  1201. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1202. }, function($ctx1) {$ctx1.fill(self,"systemAnnouncer",{},$globals.Environment)});
  1203. //>>excludeEnd("ctx");
  1204. },
  1205. //>>excludeStart("ide", pragmas.excludeIdeData);
  1206. args: [],
  1207. source: "systemAnnouncer\x0a\x09^ (Smalltalk globals at: #SystemAnnouncer) current",
  1208. referencedClasses: ["Smalltalk"],
  1209. //>>excludeEnd("ide");
  1210. messageSends: ["current", "at:", "globals"]
  1211. }),
  1212. $globals.Environment);
  1213. $core.addClass('NullProgressHandler', $globals.Object, [], 'Platform-Services');
  1214. //>>excludeStart("ide", pragmas.excludeIdeData);
  1215. $globals.NullProgressHandler.comment="I am the default progress handler. I do not display any progress, and simply iterate over the collection.";
  1216. //>>excludeEnd("ide");
  1217. $core.addMethod(
  1218. $core.method({
  1219. selector: "do:on:displaying:",
  1220. protocol: 'progress handling',
  1221. fn: function (aBlock,aCollection,aString){
  1222. var self=this;
  1223. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1224. return $core.withContext(function($ctx1) {
  1225. //>>excludeEnd("ctx");
  1226. $recv(aCollection)._do_(aBlock);
  1227. return self;
  1228. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1229. }, function($ctx1) {$ctx1.fill(self,"do:on:displaying:",{aBlock:aBlock,aCollection:aCollection,aString:aString},$globals.NullProgressHandler)});
  1230. //>>excludeEnd("ctx");
  1231. },
  1232. //>>excludeStart("ide", pragmas.excludeIdeData);
  1233. args: ["aBlock", "aCollection", "aString"],
  1234. source: "do: aBlock on: aCollection displaying: aString\x0a\x09aCollection do: aBlock",
  1235. referencedClasses: [],
  1236. //>>excludeEnd("ide");
  1237. messageSends: ["do:"]
  1238. }),
  1239. $globals.NullProgressHandler);
  1240. $globals.NullProgressHandler.klass.iVarNames = ['current'];
  1241. $core.addMethod(
  1242. $core.method({
  1243. selector: "initialize",
  1244. protocol: 'initialization',
  1245. fn: function (){
  1246. var self=this;
  1247. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1248. return $core.withContext(function($ctx1) {
  1249. //>>excludeEnd("ctx");
  1250. $recv($globals.ProgressHandler)._registerIfNone_(self._new());
  1251. return self;
  1252. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1253. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.NullProgressHandler.klass)});
  1254. //>>excludeEnd("ctx");
  1255. },
  1256. //>>excludeStart("ide", pragmas.excludeIdeData);
  1257. args: [],
  1258. source: "initialize\x0a\x09ProgressHandler registerIfNone: self new",
  1259. referencedClasses: ["ProgressHandler"],
  1260. //>>excludeEnd("ide");
  1261. messageSends: ["registerIfNone:", "new"]
  1262. }),
  1263. $globals.NullProgressHandler.klass);
  1264. $core.addClass('Service', $globals.Object, [], 'Platform-Services');
  1265. //>>excludeStart("ide", pragmas.excludeIdeData);
  1266. $globals.Service.comment="I implement the basic behavior for class registration to a service.\x0a\x0aSee the `Transcript` class for a concrete service.\x0a\x0a## API\x0a\x0aUse class-side methods `#register:` and `#registerIfNone:` to register classes to a specific service.";
  1267. //>>excludeEnd("ide");
  1268. $globals.Service.klass.iVarNames = ['current'];
  1269. $core.addMethod(
  1270. $core.method({
  1271. selector: "current",
  1272. protocol: 'accessing',
  1273. fn: function (){
  1274. var self=this;
  1275. return self["@current"];
  1276. },
  1277. //>>excludeStart("ide", pragmas.excludeIdeData);
  1278. args: [],
  1279. source: "current\x0a\x09^ current",
  1280. referencedClasses: [],
  1281. //>>excludeEnd("ide");
  1282. messageSends: []
  1283. }),
  1284. $globals.Service.klass);
  1285. $core.addMethod(
  1286. $core.method({
  1287. selector: "new",
  1288. protocol: 'instance creation',
  1289. fn: function (){
  1290. var self=this;
  1291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1292. return $core.withContext(function($ctx1) {
  1293. //>>excludeEnd("ctx");
  1294. self._shouldNotImplement();
  1295. return self;
  1296. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1297. }, function($ctx1) {$ctx1.fill(self,"new",{},$globals.Service.klass)});
  1298. //>>excludeEnd("ctx");
  1299. },
  1300. //>>excludeStart("ide", pragmas.excludeIdeData);
  1301. args: [],
  1302. source: "new\x0a\x09self shouldNotImplement",
  1303. referencedClasses: [],
  1304. //>>excludeEnd("ide");
  1305. messageSends: ["shouldNotImplement"]
  1306. }),
  1307. $globals.Service.klass);
  1308. $core.addMethod(
  1309. $core.method({
  1310. selector: "register:",
  1311. protocol: 'registration',
  1312. fn: function (anObject){
  1313. var self=this;
  1314. self["@current"]=anObject;
  1315. return self;
  1316. },
  1317. //>>excludeStart("ide", pragmas.excludeIdeData);
  1318. args: ["anObject"],
  1319. source: "register: anObject\x0a\x09current := anObject",
  1320. referencedClasses: [],
  1321. //>>excludeEnd("ide");
  1322. messageSends: []
  1323. }),
  1324. $globals.Service.klass);
  1325. $core.addMethod(
  1326. $core.method({
  1327. selector: "registerIfNone:",
  1328. protocol: 'registration',
  1329. fn: function (anObject){
  1330. var self=this;
  1331. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1332. return $core.withContext(function($ctx1) {
  1333. //>>excludeEnd("ctx");
  1334. var $1,$receiver;
  1335. $1=self._current();
  1336. if(($receiver = $1) == null || $receiver.isNil){
  1337. self._register_(anObject);
  1338. } else {
  1339. $1;
  1340. };
  1341. return self;
  1342. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1343. }, function($ctx1) {$ctx1.fill(self,"registerIfNone:",{anObject:anObject},$globals.Service.klass)});
  1344. //>>excludeEnd("ctx");
  1345. },
  1346. //>>excludeStart("ide", pragmas.excludeIdeData);
  1347. args: ["anObject"],
  1348. source: "registerIfNone: anObject\x0a\x09self current ifNil: [ self register: anObject ]",
  1349. referencedClasses: [],
  1350. //>>excludeEnd("ide");
  1351. messageSends: ["ifNil:", "current", "register:"]
  1352. }),
  1353. $globals.Service.klass);
  1354. $core.addClass('ErrorHandler', $globals.Service, [], 'Platform-Services');
  1355. //>>excludeStart("ide", pragmas.excludeIdeData);
  1356. $globals.ErrorHandler.comment="I am the service used to handle Smalltalk errors.\x0aSee `boot.js` `handleError()` function.\x0a\x0aRegistered service instances must implement `#handleError:` to perform an action on the thrown exception.";
  1357. //>>excludeEnd("ide");
  1358. $core.addMethod(
  1359. $core.method({
  1360. selector: "handleError:",
  1361. protocol: 'error handling',
  1362. fn: function (anError){
  1363. var self=this;
  1364. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1365. return $core.withContext(function($ctx1) {
  1366. //>>excludeEnd("ctx");
  1367. self._handleUnhandledError_(anError);
  1368. return self;
  1369. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1370. }, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},$globals.ErrorHandler.klass)});
  1371. //>>excludeEnd("ctx");
  1372. },
  1373. //>>excludeStart("ide", pragmas.excludeIdeData);
  1374. args: ["anError"],
  1375. source: "handleError: anError\x0a\x09self handleUnhandledError: anError",
  1376. referencedClasses: [],
  1377. //>>excludeEnd("ide");
  1378. messageSends: ["handleUnhandledError:"]
  1379. }),
  1380. $globals.ErrorHandler.klass);
  1381. $core.addMethod(
  1382. $core.method({
  1383. selector: "handleUnhandledError:",
  1384. protocol: 'error handling',
  1385. fn: function (anError){
  1386. var self=this;
  1387. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1388. return $core.withContext(function($ctx1) {
  1389. //>>excludeEnd("ctx");
  1390. var $1;
  1391. $1=$recv(anError)._wasHandled();
  1392. if($core.assert($1)){
  1393. return self;
  1394. };
  1395. return $recv(self._current())._handleError_(anError);
  1396. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1397. }, function($ctx1) {$ctx1.fill(self,"handleUnhandledError:",{anError:anError},$globals.ErrorHandler.klass)});
  1398. //>>excludeEnd("ctx");
  1399. },
  1400. //>>excludeStart("ide", pragmas.excludeIdeData);
  1401. args: ["anError"],
  1402. source: "handleUnhandledError: anError\x0a\x09anError wasHandled ifTrue: [ ^ self ].\x0a\x09\x0a\x09^ self current handleError: anError",
  1403. referencedClasses: [],
  1404. //>>excludeEnd("ide");
  1405. messageSends: ["ifTrue:", "wasHandled", "handleError:", "current"]
  1406. }),
  1407. $globals.ErrorHandler.klass);
  1408. $core.addClass('Finder', $globals.Service, [], 'Platform-Services');
  1409. //>>excludeStart("ide", pragmas.excludeIdeData);
  1410. $globals.Finder.comment="I am the service responsible for finding classes/methods.\x0a__There is no default finder.__\x0a\x0a## API\x0a\x0aUse `#browse` on an object to find it.";
  1411. //>>excludeEnd("ide");
  1412. $core.addMethod(
  1413. $core.method({
  1414. selector: "findClass:",
  1415. protocol: 'finding',
  1416. fn: function (aClass){
  1417. var self=this;
  1418. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1419. return $core.withContext(function($ctx1) {
  1420. //>>excludeEnd("ctx");
  1421. return $recv(self._current())._findClass_(aClass);
  1422. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1423. }, function($ctx1) {$ctx1.fill(self,"findClass:",{aClass:aClass},$globals.Finder.klass)});
  1424. //>>excludeEnd("ctx");
  1425. },
  1426. //>>excludeStart("ide", pragmas.excludeIdeData);
  1427. args: ["aClass"],
  1428. source: "findClass: aClass\x0a\x09^ self current findClass: aClass",
  1429. referencedClasses: [],
  1430. //>>excludeEnd("ide");
  1431. messageSends: ["findClass:", "current"]
  1432. }),
  1433. $globals.Finder.klass);
  1434. $core.addMethod(
  1435. $core.method({
  1436. selector: "findMethod:",
  1437. protocol: 'finding',
  1438. fn: function (aCompiledMethod){
  1439. var self=this;
  1440. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1441. return $core.withContext(function($ctx1) {
  1442. //>>excludeEnd("ctx");
  1443. return $recv(self._current())._findMethod_(aCompiledMethod);
  1444. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1445. }, function($ctx1) {$ctx1.fill(self,"findMethod:",{aCompiledMethod:aCompiledMethod},$globals.Finder.klass)});
  1446. //>>excludeEnd("ctx");
  1447. },
  1448. //>>excludeStart("ide", pragmas.excludeIdeData);
  1449. args: ["aCompiledMethod"],
  1450. source: "findMethod: aCompiledMethod\x0a\x09^ self current findMethod: aCompiledMethod",
  1451. referencedClasses: [],
  1452. //>>excludeEnd("ide");
  1453. messageSends: ["findMethod:", "current"]
  1454. }),
  1455. $globals.Finder.klass);
  1456. $core.addMethod(
  1457. $core.method({
  1458. selector: "findString:",
  1459. protocol: 'finding',
  1460. fn: function (aString){
  1461. var self=this;
  1462. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1463. return $core.withContext(function($ctx1) {
  1464. //>>excludeEnd("ctx");
  1465. return $recv(self._current())._findString_(aString);
  1466. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1467. }, function($ctx1) {$ctx1.fill(self,"findString:",{aString:aString},$globals.Finder.klass)});
  1468. //>>excludeEnd("ctx");
  1469. },
  1470. //>>excludeStart("ide", pragmas.excludeIdeData);
  1471. args: ["aString"],
  1472. source: "findString: aString\x0a\x09^ self current findString: aString",
  1473. referencedClasses: [],
  1474. //>>excludeEnd("ide");
  1475. messageSends: ["findString:", "current"]
  1476. }),
  1477. $globals.Finder.klass);
  1478. $core.addClass('Inspector', $globals.Service, [], 'Platform-Services');
  1479. //>>excludeStart("ide", pragmas.excludeIdeData);
  1480. $globals.Inspector.comment="I am the service responsible for inspecting objects.\x0a\x0aThe default inspector object is the transcript.";
  1481. //>>excludeEnd("ide");
  1482. $core.addMethod(
  1483. $core.method({
  1484. selector: "inspect:",
  1485. protocol: 'inspecting',
  1486. fn: function (anObject){
  1487. var self=this;
  1488. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1489. return $core.withContext(function($ctx1) {
  1490. //>>excludeEnd("ctx");
  1491. return $recv(self._current())._inspect_(anObject);
  1492. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1493. }, function($ctx1) {$ctx1.fill(self,"inspect:",{anObject:anObject},$globals.Inspector.klass)});
  1494. //>>excludeEnd("ctx");
  1495. },
  1496. //>>excludeStart("ide", pragmas.excludeIdeData);
  1497. args: ["anObject"],
  1498. source: "inspect: anObject\x0a\x09^ self current inspect: anObject",
  1499. referencedClasses: [],
  1500. //>>excludeEnd("ide");
  1501. messageSends: ["inspect:", "current"]
  1502. }),
  1503. $globals.Inspector.klass);
  1504. $core.addClass('Platform', $globals.Service, [], 'Platform-Services');
  1505. //>>excludeStart("ide", pragmas.excludeIdeData);
  1506. $globals.Platform.comment="I am bridge to JS environment.\x0a\x0a## API\x0a\x0a Platform globals. \x22JS global object\x22\x0a Platform newXHR \x22new XMLHttpRequest() or its shim\x22";
  1507. //>>excludeEnd("ide");
  1508. $core.addMethod(
  1509. $core.method({
  1510. selector: "globals",
  1511. protocol: 'accessing',
  1512. fn: function (){
  1513. var self=this;
  1514. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1515. return $core.withContext(function($ctx1) {
  1516. //>>excludeEnd("ctx");
  1517. return $recv(self._current())._globals();
  1518. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1519. }, function($ctx1) {$ctx1.fill(self,"globals",{},$globals.Platform.klass)});
  1520. //>>excludeEnd("ctx");
  1521. },
  1522. //>>excludeStart("ide", pragmas.excludeIdeData);
  1523. args: [],
  1524. source: "globals\x0a\x09^ self current globals",
  1525. referencedClasses: [],
  1526. //>>excludeEnd("ide");
  1527. messageSends: ["globals", "current"]
  1528. }),
  1529. $globals.Platform.klass);
  1530. $core.addMethod(
  1531. $core.method({
  1532. selector: "newXhr",
  1533. protocol: 'accessing',
  1534. fn: function (){
  1535. var self=this;
  1536. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1537. return $core.withContext(function($ctx1) {
  1538. //>>excludeEnd("ctx");
  1539. return $recv(self._current())._newXhr();
  1540. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1541. }, function($ctx1) {$ctx1.fill(self,"newXhr",{},$globals.Platform.klass)});
  1542. //>>excludeEnd("ctx");
  1543. },
  1544. //>>excludeStart("ide", pragmas.excludeIdeData);
  1545. args: [],
  1546. source: "newXhr\x0a\x09^ self current newXhr",
  1547. referencedClasses: [],
  1548. //>>excludeEnd("ide");
  1549. messageSends: ["newXhr", "current"]
  1550. }),
  1551. $globals.Platform.klass);
  1552. $core.addClass('ProgressHandler', $globals.Service, [], 'Platform-Services');
  1553. //>>excludeStart("ide", pragmas.excludeIdeData);
  1554. $globals.ProgressHandler.comment="I am used to manage progress in collection iterations, see `SequenceableCollection >> #do:displayingProgress:`.\x0a\x0aRegistered instances must implement `#do:on:displaying:`.\x0a\x0aThe default behavior is to simply iterate over the collection, using `NullProgressHandler`.";
  1555. //>>excludeEnd("ide");
  1556. $core.addMethod(
  1557. $core.method({
  1558. selector: "do:on:displaying:",
  1559. protocol: 'progress handling',
  1560. fn: function (aBlock,aCollection,aString){
  1561. var self=this;
  1562. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1563. return $core.withContext(function($ctx1) {
  1564. //>>excludeEnd("ctx");
  1565. $recv(self._current())._do_on_displaying_(aBlock,aCollection,aString);
  1566. return self;
  1567. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1568. }, function($ctx1) {$ctx1.fill(self,"do:on:displaying:",{aBlock:aBlock,aCollection:aCollection,aString:aString},$globals.ProgressHandler.klass)});
  1569. //>>excludeEnd("ctx");
  1570. },
  1571. //>>excludeStart("ide", pragmas.excludeIdeData);
  1572. args: ["aBlock", "aCollection", "aString"],
  1573. source: "do: aBlock on: aCollection displaying: aString\x0a\x09self current do: aBlock on: aCollection displaying: aString",
  1574. referencedClasses: [],
  1575. //>>excludeEnd("ide");
  1576. messageSends: ["do:on:displaying:", "current"]
  1577. }),
  1578. $globals.ProgressHandler.klass);
  1579. $core.addClass('Terminal', $globals.Service, [], 'Platform-Services');
  1580. //>>excludeStart("ide", pragmas.excludeIdeData);
  1581. $globals.Terminal.comment="I am UI interface service.\x0a\x0a## API\x0a\x0a Terminal alert: 'Hey, there is a problem'.\x0a Terminal confirm: 'Affirmative?'.\x0a Terminal prompt: 'Your name:'.";
  1582. //>>excludeEnd("ide");
  1583. $core.addMethod(
  1584. $core.method({
  1585. selector: "alert:",
  1586. protocol: 'dialogs',
  1587. fn: function (aString){
  1588. var self=this;
  1589. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1590. return $core.withContext(function($ctx1) {
  1591. //>>excludeEnd("ctx");
  1592. return $recv(self._current())._alert_(aString);
  1593. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1594. }, function($ctx1) {$ctx1.fill(self,"alert:",{aString:aString},$globals.Terminal.klass)});
  1595. //>>excludeEnd("ctx");
  1596. },
  1597. //>>excludeStart("ide", pragmas.excludeIdeData);
  1598. args: ["aString"],
  1599. source: "alert: aString\x0a\x09^ self current alert: aString",
  1600. referencedClasses: [],
  1601. //>>excludeEnd("ide");
  1602. messageSends: ["alert:", "current"]
  1603. }),
  1604. $globals.Terminal.klass);
  1605. $core.addMethod(
  1606. $core.method({
  1607. selector: "confirm:",
  1608. protocol: 'dialogs',
  1609. fn: function (aString){
  1610. var self=this;
  1611. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1612. return $core.withContext(function($ctx1) {
  1613. //>>excludeEnd("ctx");
  1614. return $recv(self._current())._confirm_(aString);
  1615. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1616. }, function($ctx1) {$ctx1.fill(self,"confirm:",{aString:aString},$globals.Terminal.klass)});
  1617. //>>excludeEnd("ctx");
  1618. },
  1619. //>>excludeStart("ide", pragmas.excludeIdeData);
  1620. args: ["aString"],
  1621. source: "confirm: aString\x0a\x09^ self current confirm: aString",
  1622. referencedClasses: [],
  1623. //>>excludeEnd("ide");
  1624. messageSends: ["confirm:", "current"]
  1625. }),
  1626. $globals.Terminal.klass);
  1627. $core.addMethod(
  1628. $core.method({
  1629. selector: "prompt:",
  1630. protocol: 'dialogs',
  1631. fn: function (aString){
  1632. var self=this;
  1633. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1634. return $core.withContext(function($ctx1) {
  1635. //>>excludeEnd("ctx");
  1636. return $recv(self._current())._prompt_(aString);
  1637. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1638. }, function($ctx1) {$ctx1.fill(self,"prompt:",{aString:aString},$globals.Terminal.klass)});
  1639. //>>excludeEnd("ctx");
  1640. },
  1641. //>>excludeStart("ide", pragmas.excludeIdeData);
  1642. args: ["aString"],
  1643. source: "prompt: aString\x0a\x09^ self current prompt: aString",
  1644. referencedClasses: [],
  1645. //>>excludeEnd("ide");
  1646. messageSends: ["prompt:", "current"]
  1647. }),
  1648. $globals.Terminal.klass);
  1649. $core.addMethod(
  1650. $core.method({
  1651. selector: "prompt:default:",
  1652. protocol: 'dialogs',
  1653. fn: function (aString,defaultString){
  1654. var self=this;
  1655. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1656. return $core.withContext(function($ctx1) {
  1657. //>>excludeEnd("ctx");
  1658. return $recv(self._current())._prompt_default_(aString,defaultString);
  1659. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1660. }, function($ctx1) {$ctx1.fill(self,"prompt:default:",{aString:aString,defaultString:defaultString},$globals.Terminal.klass)});
  1661. //>>excludeEnd("ctx");
  1662. },
  1663. //>>excludeStart("ide", pragmas.excludeIdeData);
  1664. args: ["aString", "defaultString"],
  1665. source: "prompt: aString default: defaultString\x0a\x09^ self current prompt: aString default: defaultString",
  1666. referencedClasses: [],
  1667. //>>excludeEnd("ide");
  1668. messageSends: ["prompt:default:", "current"]
  1669. }),
  1670. $globals.Terminal.klass);
  1671. $core.addClass('Transcript', $globals.Service, [], 'Platform-Services');
  1672. //>>excludeStart("ide", pragmas.excludeIdeData);
  1673. $globals.Transcript.comment="I am a facade for Transcript actions.\x0a\x0aI delegate actions to the currently registered transcript.\x0a\x0a## API\x0a\x0a Transcript \x0a show: 'hello world';\x0a cr;\x0a show: anObject.";
  1674. //>>excludeEnd("ide");
  1675. $core.addMethod(
  1676. $core.method({
  1677. selector: "clear",
  1678. protocol: 'printing',
  1679. fn: function (){
  1680. var self=this;
  1681. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1682. return $core.withContext(function($ctx1) {
  1683. //>>excludeEnd("ctx");
  1684. $recv(self._current())._clear();
  1685. return self;
  1686. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1687. }, function($ctx1) {$ctx1.fill(self,"clear",{},$globals.Transcript.klass)});
  1688. //>>excludeEnd("ctx");
  1689. },
  1690. //>>excludeStart("ide", pragmas.excludeIdeData);
  1691. args: [],
  1692. source: "clear\x0a\x09self current clear",
  1693. referencedClasses: [],
  1694. //>>excludeEnd("ide");
  1695. messageSends: ["clear", "current"]
  1696. }),
  1697. $globals.Transcript.klass);
  1698. $core.addMethod(
  1699. $core.method({
  1700. selector: "cr",
  1701. protocol: 'printing',
  1702. fn: function (){
  1703. var self=this;
  1704. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1705. return $core.withContext(function($ctx1) {
  1706. //>>excludeEnd("ctx");
  1707. $recv(self._current())._show_($recv($globals.String)._cr());
  1708. return self;
  1709. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1710. }, function($ctx1) {$ctx1.fill(self,"cr",{},$globals.Transcript.klass)});
  1711. //>>excludeEnd("ctx");
  1712. },
  1713. //>>excludeStart("ide", pragmas.excludeIdeData);
  1714. args: [],
  1715. source: "cr\x0a\x09self current show: String cr",
  1716. referencedClasses: ["String"],
  1717. //>>excludeEnd("ide");
  1718. messageSends: ["show:", "current", "cr"]
  1719. }),
  1720. $globals.Transcript.klass);
  1721. $core.addMethod(
  1722. $core.method({
  1723. selector: "inspect:",
  1724. protocol: 'printing',
  1725. fn: function (anObject){
  1726. var self=this;
  1727. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1728. return $core.withContext(function($ctx1) {
  1729. //>>excludeEnd("ctx");
  1730. self._show_(anObject);
  1731. return self;
  1732. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1733. }, function($ctx1) {$ctx1.fill(self,"inspect:",{anObject:anObject},$globals.Transcript.klass)});
  1734. //>>excludeEnd("ctx");
  1735. },
  1736. //>>excludeStart("ide", pragmas.excludeIdeData);
  1737. args: ["anObject"],
  1738. source: "inspect: anObject\x0a\x09self show: anObject",
  1739. referencedClasses: [],
  1740. //>>excludeEnd("ide");
  1741. messageSends: ["show:"]
  1742. }),
  1743. $globals.Transcript.klass);
  1744. $core.addMethod(
  1745. $core.method({
  1746. selector: "open",
  1747. protocol: 'instance creation',
  1748. fn: function (){
  1749. var self=this;
  1750. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1751. return $core.withContext(function($ctx1) {
  1752. //>>excludeEnd("ctx");
  1753. $recv(self._current())._open();
  1754. return self;
  1755. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1756. }, function($ctx1) {$ctx1.fill(self,"open",{},$globals.Transcript.klass)});
  1757. //>>excludeEnd("ctx");
  1758. },
  1759. //>>excludeStart("ide", pragmas.excludeIdeData);
  1760. args: [],
  1761. source: "open\x0a\x09self current open",
  1762. referencedClasses: [],
  1763. //>>excludeEnd("ide");
  1764. messageSends: ["open", "current"]
  1765. }),
  1766. $globals.Transcript.klass);
  1767. $core.addMethod(
  1768. $core.method({
  1769. selector: "show:",
  1770. protocol: 'printing',
  1771. fn: function (anObject){
  1772. var self=this;
  1773. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1774. return $core.withContext(function($ctx1) {
  1775. //>>excludeEnd("ctx");
  1776. $recv(self._current())._show_(anObject);
  1777. return self;
  1778. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1779. }, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject},$globals.Transcript.klass)});
  1780. //>>excludeEnd("ctx");
  1781. },
  1782. //>>excludeStart("ide", pragmas.excludeIdeData);
  1783. args: ["anObject"],
  1784. source: "show: anObject\x0a\x09self current show: anObject",
  1785. referencedClasses: [],
  1786. //>>excludeEnd("ide");
  1787. messageSends: ["show:", "current"]
  1788. }),
  1789. $globals.Transcript.klass);
  1790. $core.addMethod(
  1791. $core.method({
  1792. selector: "inspectOn:",
  1793. protocol: '*Platform-Services',
  1794. fn: function (anInspector){
  1795. var self=this;
  1796. var variables;
  1797. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1798. return $core.withContext(function($ctx1) {
  1799. //>>excludeEnd("ctx");
  1800. variables=$recv($globals.Dictionary)._new();
  1801. $recv(variables)._at_put_("#self",self);
  1802. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1803. $ctx1.sendIdx["at:put:"]=1;
  1804. //>>excludeEnd("ctx");
  1805. $recv(variables)._at_put_("#keys",self._keys());
  1806. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1807. $ctx1.sendIdx["at:put:"]=2;
  1808. //>>excludeEnd("ctx");
  1809. self._keysAndValuesDo_((function(key,value){
  1810. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1811. return $core.withContext(function($ctx2) {
  1812. //>>excludeEnd("ctx");
  1813. return $recv(variables)._at_put_(key,value);
  1814. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1815. }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)});
  1816. //>>excludeEnd("ctx");
  1817. }));
  1818. $recv(anInspector)._setLabel_(self._printString());
  1819. $recv(anInspector)._setVariables_(variables);
  1820. return self;
  1821. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1822. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.AssociativeCollection)});
  1823. //>>excludeEnd("ctx");
  1824. },
  1825. //>>excludeStart("ide", pragmas.excludeIdeData);
  1826. args: ["anInspector"],
  1827. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#keys' put: self keys.\x0a\x09self keysAndValuesDo: [ :key :value |\x0a\x09\x09variables at: key put: value ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  1828. referencedClasses: ["Dictionary"],
  1829. //>>excludeEnd("ide");
  1830. messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"]
  1831. }),
  1832. $globals.AssociativeCollection);
  1833. $core.addMethod(
  1834. $core.method({
  1835. selector: "inspectOn:",
  1836. protocol: '*Platform-Services',
  1837. fn: function (anInspector){
  1838. var self=this;
  1839. var variables;
  1840. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1841. return $core.withContext(function($ctx1) {
  1842. //>>excludeEnd("ctx");
  1843. variables=$recv($globals.Dictionary)._new();
  1844. $recv(variables)._at_put_("#self",self);
  1845. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1846. $ctx1.sendIdx["at:put:"]=1;
  1847. //>>excludeEnd("ctx");
  1848. self._withIndexDo_((function(each,i){
  1849. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1850. return $core.withContext(function($ctx2) {
  1851. //>>excludeEnd("ctx");
  1852. return $recv(variables)._at_put_(i,each);
  1853. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1854. }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1,1)});
  1855. //>>excludeEnd("ctx");
  1856. }));
  1857. $recv(anInspector)._setLabel_(self._printString());
  1858. $recv(anInspector)._setVariables_(variables);
  1859. return self;
  1860. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1861. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.Collection)});
  1862. //>>excludeEnd("ctx");
  1863. },
  1864. //>>excludeStart("ide", pragmas.excludeIdeData);
  1865. args: ["anInspector"],
  1866. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09self withIndexDo: [ :each :i |\x0a\x09\x09variables at: i put: each ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  1867. referencedClasses: ["Dictionary"],
  1868. //>>excludeEnd("ide");
  1869. messageSends: ["new", "at:put:", "withIndexDo:", "setLabel:", "printString", "setVariables:"]
  1870. }),
  1871. $globals.Collection);
  1872. $core.addMethod(
  1873. $core.method({
  1874. selector: "inspectOn:",
  1875. protocol: '*Platform-Services',
  1876. fn: function (anInspector){
  1877. var self=this;
  1878. var variables;
  1879. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1880. return $core.withContext(function($ctx1) {
  1881. //>>excludeEnd("ctx");
  1882. variables=$recv($globals.Dictionary)._new();
  1883. $recv(variables)._at_put_("#self",self);
  1884. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1885. $ctx1.sendIdx["at:put:"]=1;
  1886. //>>excludeEnd("ctx");
  1887. $recv(variables)._at_put_("#year",self._year());
  1888. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1889. $ctx1.sendIdx["at:put:"]=2;
  1890. //>>excludeEnd("ctx");
  1891. $recv(variables)._at_put_("#month",self._month());
  1892. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1893. $ctx1.sendIdx["at:put:"]=3;
  1894. //>>excludeEnd("ctx");
  1895. $recv(variables)._at_put_("#day",self._day());
  1896. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1897. $ctx1.sendIdx["at:put:"]=4;
  1898. //>>excludeEnd("ctx");
  1899. $recv(variables)._at_put_("#hours",self._hours());
  1900. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1901. $ctx1.sendIdx["at:put:"]=5;
  1902. //>>excludeEnd("ctx");
  1903. $recv(variables)._at_put_("#minutes",self._minutes());
  1904. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1905. $ctx1.sendIdx["at:put:"]=6;
  1906. //>>excludeEnd("ctx");
  1907. $recv(variables)._at_put_("#seconds",self._seconds());
  1908. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1909. $ctx1.sendIdx["at:put:"]=7;
  1910. //>>excludeEnd("ctx");
  1911. $recv(variables)._at_put_("#milliseconds",self._milliseconds());
  1912. $recv(anInspector)._setLabel_(self._printString());
  1913. $recv(anInspector)._setVariables_(variables);
  1914. return self;
  1915. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1916. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.Date)});
  1917. //>>excludeEnd("ctx");
  1918. },
  1919. //>>excludeStart("ide", pragmas.excludeIdeData);
  1920. args: ["anInspector"],
  1921. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#year' put: self year.\x0a\x09variables at: '#month' put: self month.\x0a\x09variables at: '#day' put: self day.\x0a\x09variables at: '#hours' put: self hours.\x0a\x09variables at: '#minutes' put: self minutes.\x0a\x09variables at: '#seconds' put: self seconds.\x0a\x09variables at: '#milliseconds' put: self milliseconds.\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  1922. referencedClasses: ["Dictionary"],
  1923. //>>excludeEnd("ide");
  1924. messageSends: ["new", "at:put:", "year", "month", "day", "hours", "minutes", "seconds", "milliseconds", "setLabel:", "printString", "setVariables:"]
  1925. }),
  1926. $globals.Date);
  1927. $core.addMethod(
  1928. $core.method({
  1929. selector: "inspectOn:",
  1930. protocol: '*Platform-Services',
  1931. fn: function (anInspector){
  1932. var self=this;
  1933. var variables;
  1934. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1935. return $core.withContext(function($ctx1) {
  1936. //>>excludeEnd("ctx");
  1937. variables=$recv($globals.Dictionary)._new();
  1938. $recv(variables)._at_put_("#self",self._jsObject());
  1939. $recv(anInspector)._setLabel_(self._printString());
  1940. $recv($globals.JSObjectProxy)._addObjectVariablesTo_ofProxy_(variables,self);
  1941. $recv(anInspector)._setVariables_(variables);
  1942. return self;
  1943. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1944. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.JSObjectProxy)});
  1945. //>>excludeEnd("ctx");
  1946. },
  1947. //>>excludeStart("ide", pragmas.excludeIdeData);
  1948. args: ["anInspector"],
  1949. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self jsObject.\x0a\x09anInspector setLabel: self printString.\x0a\x09JSObjectProxy addObjectVariablesTo: variables ofProxy: self.\x0a\x09anInspector setVariables: variables",
  1950. referencedClasses: ["Dictionary", "JSObjectProxy"],
  1951. //>>excludeEnd("ide");
  1952. messageSends: ["new", "at:put:", "jsObject", "setLabel:", "printString", "addObjectVariablesTo:ofProxy:", "setVariables:"]
  1953. }),
  1954. $globals.JSObjectProxy);
  1955. $core.addMethod(
  1956. $core.method({
  1957. selector: "inspectOn:",
  1958. protocol: '*Platform-Services',
  1959. fn: function (anInspector){
  1960. var self=this;
  1961. var variables;
  1962. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1963. return $core.withContext(function($ctx1) {
  1964. //>>excludeEnd("ctx");
  1965. variables=$recv($globals.Dictionary)._new();
  1966. $recv(variables)._at_put_("#self",self);
  1967. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1968. $ctx1.sendIdx["at:put:"]=1;
  1969. //>>excludeEnd("ctx");
  1970. $recv(variables)._at_put_("#home",self._home());
  1971. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1972. $ctx1.sendIdx["at:put:"]=2;
  1973. //>>excludeEnd("ctx");
  1974. $recv(variables)._at_put_("#receiver",self._receiver());
  1975. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1976. $ctx1.sendIdx["at:put:"]=3;
  1977. //>>excludeEnd("ctx");
  1978. $recv(variables)._at_put_("#selector",self._selector());
  1979. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1980. $ctx1.sendIdx["at:put:"]=4;
  1981. //>>excludeEnd("ctx");
  1982. $recv(variables)._at_put_("#locals",self._locals());
  1983. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1984. $ctx1.sendIdx["at:put:"]=5;
  1985. //>>excludeEnd("ctx");
  1986. $recv($recv(self._class())._instanceVariableNames())._do_((function(each){
  1987. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1988. return $core.withContext(function($ctx2) {
  1989. //>>excludeEnd("ctx");
  1990. return $recv(variables)._at_put_(each,self._instVarAt_(each));
  1991. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1992. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  1993. //>>excludeEnd("ctx");
  1994. }));
  1995. $recv(anInspector)._setLabel_(self._printString());
  1996. $recv(anInspector)._setVariables_(variables);
  1997. return self;
  1998. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1999. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.MethodContext)});
  2000. //>>excludeEnd("ctx");
  2001. },
  2002. //>>excludeStart("ide", pragmas.excludeIdeData);
  2003. args: ["anInspector"],
  2004. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#home' put: self home.\x0a\x09variables at: '#receiver' put: self receiver.\x0a\x09variables at: '#selector' put: self selector.\x0a\x09variables at: '#locals' put: self locals.\x0a\x09self class instanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  2005. referencedClasses: ["Dictionary"],
  2006. //>>excludeEnd("ide");
  2007. messageSends: ["new", "at:put:", "home", "receiver", "selector", "locals", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"]
  2008. }),
  2009. $globals.MethodContext);
  2010. $core.addMethod(
  2011. $core.method({
  2012. selector: "inspectOn:",
  2013. protocol: '*Platform-Services',
  2014. fn: function (anInspector){
  2015. var self=this;
  2016. var variables;
  2017. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2018. return $core.withContext(function($ctx1) {
  2019. //>>excludeEnd("ctx");
  2020. variables=$recv($globals.Dictionary)._new();
  2021. $recv(variables)._at_put_("#self",self);
  2022. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2023. $ctx1.sendIdx["at:put:"]=1;
  2024. //>>excludeEnd("ctx");
  2025. $recv($recv(self._class())._allInstanceVariableNames())._do_((function(each){
  2026. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2027. return $core.withContext(function($ctx2) {
  2028. //>>excludeEnd("ctx");
  2029. return $recv(variables)._at_put_(each,self._instVarAt_(each));
  2030. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2031. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  2032. //>>excludeEnd("ctx");
  2033. }));
  2034. $recv(anInspector)._setLabel_(self._printString());
  2035. $recv(anInspector)._setVariables_(variables);
  2036. return self;
  2037. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2038. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},$globals.Object)});
  2039. //>>excludeEnd("ctx");
  2040. },
  2041. //>>excludeStart("ide", pragmas.excludeIdeData);
  2042. args: ["anInspector"],
  2043. source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09self class allInstanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  2044. referencedClasses: ["Dictionary"],
  2045. //>>excludeEnd("ide");
  2046. messageSends: ["new", "at:put:", "do:", "allInstanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"]
  2047. }),
  2048. $globals.Object);
  2049. $core.addMethod(
  2050. $core.method({
  2051. selector: "do:displayingProgress:",
  2052. protocol: '*Platform-Services',
  2053. fn: function (aBlock,aString){
  2054. var self=this;
  2055. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2056. return $core.withContext(function($ctx1) {
  2057. //>>excludeEnd("ctx");
  2058. $recv($globals.ProgressHandler)._do_on_displaying_(aBlock,self,aString);
  2059. return self;
  2060. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2061. }, function($ctx1) {$ctx1.fill(self,"do:displayingProgress:",{aBlock:aBlock,aString:aString},$globals.SequenceableCollection)});
  2062. //>>excludeEnd("ctx");
  2063. },
  2064. //>>excludeStart("ide", pragmas.excludeIdeData);
  2065. args: ["aBlock", "aString"],
  2066. source: "do: aBlock displayingProgress: aString\x0a\x09ProgressHandler \x0a\x09\x09do: aBlock \x0a\x09\x09on: self \x0a\x09\x09displaying: aString",
  2067. referencedClasses: ["ProgressHandler"],
  2068. //>>excludeEnd("ide");
  2069. messageSends: ["do:on:displaying:"]
  2070. }),
  2071. $globals.SequenceableCollection);
  2072. $core.addMethod(
  2073. $core.method({
  2074. selector: "inspectOn:",
  2075. protocol: '*Platform-Services',
  2076. fn: function (anInspector){
  2077. var self=this;
  2078. var variables,i;
  2079. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2080. return $core.withContext(function($ctx1) {
  2081. //>>excludeEnd("ctx");
  2082. variables=$recv($globals.Dictionary)._new();
  2083. $recv(variables)._at_put_("#self",self);
  2084. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2085. $ctx1.sendIdx["at:put:"]=1;
  2086. //>>excludeEnd("ctx");
  2087. i=(1);
  2088. self._do_((function(each){
  2089. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2090. return $core.withContext(function($ctx2) {
  2091. //>>excludeEnd("ctx");
  2092. $recv(variables)._at_put_(i,each);
  2093. i=$recv(i).__plus((1));
  2094. return i;
  2095. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2096. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  2097. //>>excludeEnd("ctx");
  2098. }));
  2099. $recv(anInspector)._setLabel_(self._printString());
  2100. $recv(anInspector)._setVariables_(variables);
  2101. return self;
  2102. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2103. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables,i:i},$globals.Set)});
  2104. //>>excludeEnd("ctx");
  2105. },
  2106. //>>excludeStart("ide", pragmas.excludeIdeData);
  2107. args: ["anInspector"],
  2108. source: "inspectOn: anInspector\x0a\x09| variables i |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09i := 1.\x0a\x09self do: [ :each |\x0a\x09\x09variables at: i put: each.\x0a\x09\x09i := i + 1 ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
  2109. referencedClasses: ["Dictionary"],
  2110. //>>excludeEnd("ide");
  2111. messageSends: ["new", "at:put:", "do:", "+", "setLabel:", "printString", "setVariables:"]
  2112. }),
  2113. $globals.Set);
  2114. $core.addMethod(
  2115. $core.method({
  2116. selector: "inspectOn:",
  2117. protocol: '*Platform-Services',
  2118. fn: function (anInspector){
  2119. var self=this;
  2120. var label;
  2121. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2122. return $core.withContext(function($ctx1) {
  2123. //>>excludeEnd("ctx");
  2124. var $3,$2,$1,$5,$4;
  2125. (
  2126. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2127. $ctx1.supercall = true,
  2128. //>>excludeEnd("ctx");
  2129. ($globals.String.superclass||$boot.nilAsClass).fn.prototype._inspectOn_.apply($recv(self), [anInspector]));
  2130. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2131. $ctx1.supercall = false;
  2132. //>>excludeEnd("ctx");;
  2133. $3=self._printString();
  2134. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2135. $ctx1.sendIdx["printString"]=1;
  2136. //>>excludeEnd("ctx");
  2137. $2=$recv($3)._size();
  2138. $1=$recv($2).__gt((30));
  2139. if($core.assert($1)){
  2140. $5=self._printString();
  2141. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2142. $ctx1.sendIdx["printString"]=2;
  2143. //>>excludeEnd("ctx");
  2144. $4=$recv($5)._copyFrom_to_((1),(30));
  2145. label=$recv($4).__comma("...'");
  2146. label;
  2147. } else {
  2148. label=self._printString();
  2149. label;
  2150. };
  2151. $recv(anInspector)._setLabel_(label);
  2152. return self;
  2153. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2154. }, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,label:label},$globals.String)});
  2155. //>>excludeEnd("ctx");
  2156. },
  2157. //>>excludeStart("ide", pragmas.excludeIdeData);
  2158. args: ["anInspector"],
  2159. source: "inspectOn: anInspector\x0a\x09| label |\x0a\x09super inspectOn: anInspector.\x0a\x09self printString size > 30\x0a\x09\x09ifTrue: [ label := (self printString copyFrom: 1 to: 30), '...''' ]\x0a\x09\x09ifFalse: [ label := self printString ].\x0a\x09anInspector setLabel: label",
  2160. referencedClasses: [],
  2161. //>>excludeEnd("ide");
  2162. messageSends: ["inspectOn:", "ifTrue:ifFalse:", ">", "size", "printString", ",", "copyFrom:to:", "setLabel:"]
  2163. }),
  2164. $globals.String);
  2165. });