Axxord.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377
  1. define(["amber/boot"
  2. //>>excludeStart("imports", pragmas.excludeImports);
  3. , "axxord/Axxord-Axon"
  4. //>>excludeEnd("imports");
  5. , "amber_core/Kernel-Collections", "amber_core/Kernel-Infrastructure", "amber_core/Kernel-Objects"], function($boot
  6. //>>excludeStart("imports", pragmas.excludeImports);
  7. //>>excludeEnd("imports");
  8. ){"use strict";
  9. if(!("nilAsValue" in $boot))$boot.nilAsValue=$boot.nilAsReceiver;
  10. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  11. $core.addPackage("Axxord");
  12. ($core.packageDescriptors||$core.packages)["Axxord"].innerEval = function (expr) { return eval(expr); };
  13. ($core.packageDescriptors||$core.packages)["Axxord"].imports = ["axxord/Axxord-Axon"];
  14. ($core.packageDescriptors||$core.packages)["Axxord"].transport = {"type":"amd","amdNamespace":"axxord"};
  15. $core.addClass("Axes", $globals.Object, [], "Axxord");
  16. $core.addMethod(
  17. $core.method({
  18. selector: "newInterestThru:doing:",
  19. protocol: "factory",
  20. fn: function (anAspect,aBlock){
  21. var self=this,$self=this;
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. return $core.withContext(function($ctx1) {
  24. //>>excludeEnd("ctx");
  25. var $2,$3,$1,$5,$4;
  26. return $recv($recv($globals.PluggableInterest)._new())._accept_enact_((function(aspect){
  27. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  28. return $core.withContext(function($ctx2) {
  29. //>>excludeEnd("ctx");
  30. $2=$recv(aspect)._size();
  31. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  32. $ctx2.sendIdx["size"]=1;
  33. //>>excludeEnd("ctx");
  34. $3=$recv(anAspect)._size();
  35. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  36. $ctx2.sendIdx["size"]=2;
  37. //>>excludeEnd("ctx");
  38. $1=$recv($2).__lt_eq($3);
  39. if($core.assert($1)){
  40. $5=$recv(aspect)._size();
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. $ctx2.sendIdx["size"]=3;
  43. //>>excludeEnd("ctx");
  44. $4=$recv(anAspect)._copyFrom_to_((1),$5);
  45. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  46. $ctx2.sendIdx["copyFrom:to:"]=1;
  47. //>>excludeEnd("ctx");
  48. return $recv(aspect).__eq($4);
  49. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  50. $ctx2.sendIdx["="]=1;
  51. //>>excludeEnd("ctx");
  52. } else {
  53. return $recv(anAspect).__eq($recv(aspect)._copyFrom_to_((1),$recv(anAspect)._size()));
  54. }
  55. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  56. }, function($ctx2) {$ctx2.fillBlock({aspect:aspect},$ctx1,1)});
  57. //>>excludeEnd("ctx");
  58. }),aBlock);
  59. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  60. }, function($ctx1) {$ctx1.fill(self,"newInterestThru:doing:",{anAspect:anAspect,aBlock:aBlock},$globals.Axes.a$cls)});
  61. //>>excludeEnd("ctx");
  62. },
  63. //>>excludeStart("ide", pragmas.excludeIdeData);
  64. args: ["anAspect", "aBlock"],
  65. source: "newInterestThru: anAspect doing: aBlock\x0a\x09^ PluggableInterest new\x0a\x09\x09accept: [ :aspect | aspect size <= anAspect size\x0a\x09\x09\x09ifTrue: [ aspect = (anAspect copyFrom: 1 to: aspect size) ]\x0a\x09\x09\x09ifFalse: [ anAspect = (aspect copyFrom: 1 to: anAspect size) ] ]\x0a\x09\x09enact: aBlock",
  66. referencedClasses: ["PluggableInterest"],
  67. //>>excludeEnd("ide");
  68. messageSends: ["accept:enact:", "new", "ifTrue:ifFalse:", "<=", "size", "=", "copyFrom:to:"]
  69. }),
  70. $globals.Axes.a$cls);
  71. $core.addMethod(
  72. $core.method({
  73. selector: "newInterestUpTo:doing:",
  74. protocol: "factory",
  75. fn: function (anAspect,aBlock){
  76. var self=this,$self=this;
  77. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  78. return $core.withContext(function($ctx1) {
  79. //>>excludeEnd("ctx");
  80. var $2,$3,$1;
  81. return $recv($recv($globals.PluggableInterest)._new())._accept_enact_((function(changedAspect){
  82. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  83. return $core.withContext(function($ctx2) {
  84. //>>excludeEnd("ctx");
  85. $2=$recv(changedAspect)._size();
  86. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  87. $ctx2.sendIdx["size"]=1;
  88. //>>excludeEnd("ctx");
  89. $3=$recv(anAspect)._size();
  90. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  91. $ctx2.sendIdx["size"]=2;
  92. //>>excludeEnd("ctx");
  93. $1=$recv($2).__lt_eq($3);
  94. return $recv($1)._and_((function(){
  95. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  96. return $core.withContext(function($ctx3) {
  97. //>>excludeEnd("ctx");
  98. return $recv(changedAspect).__eq($recv(anAspect)._copyFrom_to_((1),$recv(changedAspect)._size()));
  99. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  100. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  101. //>>excludeEnd("ctx");
  102. }));
  103. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  104. }, function($ctx2) {$ctx2.fillBlock({changedAspect:changedAspect},$ctx1,1)});
  105. //>>excludeEnd("ctx");
  106. }),aBlock);
  107. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  108. }, function($ctx1) {$ctx1.fill(self,"newInterestUpTo:doing:",{anAspect:anAspect,aBlock:aBlock},$globals.Axes.a$cls)});
  109. //>>excludeEnd("ctx");
  110. },
  111. //>>excludeStart("ide", pragmas.excludeIdeData);
  112. args: ["anAspect", "aBlock"],
  113. source: "newInterestUpTo: anAspect doing: aBlock\x0a\x09^ PluggableInterest new\x0a\x09\x09accept: [ :changedAspect | changedAspect size <= anAspect size and:\x0a\x09\x09\x09[changedAspect = (anAspect copyFrom: 1 to: changedAspect size)] ]\x0a\x09\x09enact: aBlock",
  114. referencedClasses: ["PluggableInterest"],
  115. //>>excludeEnd("ide");
  116. messageSends: ["accept:enact:", "new", "and:", "<=", "size", "=", "copyFrom:to:"]
  117. }),
  118. $globals.Axes.a$cls);
  119. $core.addMethod(
  120. $core.method({
  121. selector: "on:at:consume:",
  122. protocol: "delegated",
  123. fn: function (anObject,aCollection,aBlock){
  124. var self=this,$self=this;
  125. var value;
  126. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  127. return $core.withContext(function($ctx1) {
  128. //>>excludeEnd("ctx");
  129. var $early={};
  130. try {
  131. value=$recv(anObject)._atAxes_ifAbsent_(aCollection,(function(){
  132. throw $early=[anObject];
  133. }));
  134. return $recv(aBlock)._value_(value);
  135. }
  136. catch(e) {if(e===$early)return e[0]; throw e}
  137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  138. }, function($ctx1) {$ctx1.fill(self,"on:at:consume:",{anObject:anObject,aCollection:aCollection,aBlock:aBlock,value:value},$globals.Axes.a$cls)});
  139. //>>excludeEnd("ctx");
  140. },
  141. //>>excludeStart("ide", pragmas.excludeIdeData);
  142. args: ["anObject", "aCollection", "aBlock"],
  143. source: "on: anObject at: aCollection consume: aBlock\x0a\x09| value |\x0a\x09value := anObject atAxes: aCollection ifAbsent: [ ^ anObject ].\x0a\x09^ aBlock value: value",
  144. referencedClasses: [],
  145. //>>excludeEnd("ide");
  146. messageSends: ["atAxes:ifAbsent:", "value:"]
  147. }),
  148. $globals.Axes.a$cls);
  149. $core.addMethod(
  150. $core.method({
  151. selector: "on:at:ifAbsent:",
  152. protocol: "delegated",
  153. fn: function (anObject,aCollection,aBlock){
  154. var self=this,$self=this;
  155. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  156. return $core.withContext(function($ctx1) {
  157. //>>excludeEnd("ctx");
  158. var $early={};
  159. try {
  160. return $recv(aCollection)._inject_into_(anObject,(function(soFar,segment){
  161. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  162. return $core.withContext(function($ctx2) {
  163. //>>excludeEnd("ctx");
  164. return $recv(segment)._asAxisIn_ifAbsent_(soFar,(function(){
  165. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  166. return $core.withContext(function($ctx3) {
  167. //>>excludeEnd("ctx");
  168. throw $early=[$recv(aBlock)._value()];
  169. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  170. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  171. //>>excludeEnd("ctx");
  172. }));
  173. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  174. }, function($ctx2) {$ctx2.fillBlock({soFar:soFar,segment:segment},$ctx1,1)});
  175. //>>excludeEnd("ctx");
  176. }));
  177. }
  178. catch(e) {if(e===$early)return e[0]; throw e}
  179. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  180. }, function($ctx1) {$ctx1.fill(self,"on:at:ifAbsent:",{anObject:anObject,aCollection:aCollection,aBlock:aBlock},$globals.Axes.a$cls)});
  181. //>>excludeEnd("ctx");
  182. },
  183. //>>excludeStart("ide", pragmas.excludeIdeData);
  184. args: ["anObject", "aCollection", "aBlock"],
  185. source: "on: anObject at: aCollection ifAbsent: aBlock\x0a\x09^ aCollection inject: anObject into: [ :soFar :segment |\x0a\x09\x09segment asAxisIn: soFar ifAbsent: [ ^ aBlock value ]]",
  186. referencedClasses: [],
  187. //>>excludeEnd("ide");
  188. messageSends: ["inject:into:", "asAxisIn:ifAbsent:", "value"]
  189. }),
  190. $globals.Axes.a$cls);
  191. $core.addMethod(
  192. $core.method({
  193. selector: "on:at:ifAbsent:put:",
  194. protocol: "delegated",
  195. fn: function (anObject,aCollection,aBlock,value){
  196. var self=this,$self=this;
  197. var penultimate;
  198. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  199. return $core.withContext(function($ctx1) {
  200. //>>excludeEnd("ctx");
  201. penultimate=$recv(anObject)._atAxes_ifAbsent_($recv(aCollection)._allButLast(),aBlock);
  202. return $recv($recv(aCollection)._last())._asAxisIn_ifAbsent_put_(penultimate,aBlock,value);
  203. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  204. }, function($ctx1) {$ctx1.fill(self,"on:at:ifAbsent:put:",{anObject:anObject,aCollection:aCollection,aBlock:aBlock,value:value,penultimate:penultimate},$globals.Axes.a$cls)});
  205. //>>excludeEnd("ctx");
  206. },
  207. //>>excludeStart("ide", pragmas.excludeIdeData);
  208. args: ["anObject", "aCollection", "aBlock", "value"],
  209. source: "on: anObject at: aCollection ifAbsent: aBlock put: value\x0a\x09| penultimate |\x0a\x09penultimate := anObject atAxes: aCollection allButLast ifAbsent: aBlock.\x0a\x09^ aCollection last asAxisIn: penultimate ifAbsent: aBlock put: value",
  210. referencedClasses: [],
  211. //>>excludeEnd("ide");
  212. messageSends: ["atAxes:ifAbsent:", "allButLast", "asAxisIn:ifAbsent:put:", "last"]
  213. }),
  214. $globals.Axes.a$cls);
  215. $core.addMethod(
  216. $core.method({
  217. selector: "on:at:transform:",
  218. protocol: "delegated",
  219. fn: function (anObject,aCollection,aBlock){
  220. var self=this,$self=this;
  221. var value,newValue;
  222. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  223. return $core.withContext(function($ctx1) {
  224. //>>excludeEnd("ctx");
  225. var $1,$2,$receiver;
  226. var $early={};
  227. try {
  228. value=$recv(anObject)._atAxes_ifAbsent_(aCollection,(function(){
  229. throw $early=[anObject];
  230. }));
  231. newValue=$recv(aBlock)._value_(value);
  232. $1=$recv(value).__eq_eq(newValue);
  233. if(!$core.assert($1)){
  234. $recv(anObject)._atAxes_ifAbsent_put_(aCollection,(function(){
  235. throw $early=[anObject];
  236. }),newValue);
  237. }
  238. $2=$recv(anObject)._axxord();
  239. if(($receiver = $2) == null || $receiver.a$nil){
  240. $2;
  241. } else {
  242. var axon;
  243. axon=$receiver;
  244. $recv(axon)._changed_(aCollection);
  245. }
  246. return self;
  247. }
  248. catch(e) {if(e===$early)return e[0]; throw e}
  249. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  250. }, function($ctx1) {$ctx1.fill(self,"on:at:transform:",{anObject:anObject,aCollection:aCollection,aBlock:aBlock,value:value,newValue:newValue},$globals.Axes.a$cls)});
  251. //>>excludeEnd("ctx");
  252. },
  253. //>>excludeStart("ide", pragmas.excludeIdeData);
  254. args: ["anObject", "aCollection", "aBlock"],
  255. source: "on: anObject at: aCollection transform: aBlock\x0a\x09| value newValue |\x0a\x09value := anObject atAxes: aCollection ifAbsent: [ ^ anObject ].\x0a\x09newValue := aBlock value: value.\x0a\x09value == newValue ifFalse: [ anObject atAxes: aCollection ifAbsent: [ ^ anObject ] put: newValue ].\x0a\x09anObject axxord ifNotNil: [:axon | axon changed: aCollection]",
  256. referencedClasses: [],
  257. //>>excludeEnd("ide");
  258. messageSends: ["atAxes:ifAbsent:", "value:", "ifFalse:", "==", "atAxes:ifAbsent:put:", "ifNotNil:", "axxord", "changed:"]
  259. }),
  260. $globals.Axes.a$cls);
  261. $core.addMethod(
  262. $core.method({
  263. selector: "parse:",
  264. protocol: "parsing",
  265. fn: function (message){
  266. var self=this,$self=this;
  267. var result,stack,anArray;
  268. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  269. return $core.withContext(function($ctx1) {
  270. //>>excludeEnd("ctx");
  271. var $1,$2,$3,$5,$4,$6,$7,$8,$9,$10,$11;
  272. anArray=$recv(message)._tokenize_(" ");
  273. result=[];
  274. stack=[result];
  275. $recv(anArray)._do_((function(each){
  276. var asNum,inner,close;
  277. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  278. return $core.withContext(function($ctx2) {
  279. //>>excludeEnd("ctx");
  280. close=(0);
  281. close;
  282. inner=each;
  283. inner;
  284. $recv((function(){
  285. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  286. return $core.withContext(function($ctx3) {
  287. //>>excludeEnd("ctx");
  288. $1=$recv(inner)._notEmpty();
  289. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  290. $ctx3.sendIdx["notEmpty"]=1;
  291. //>>excludeEnd("ctx");
  292. return $recv($1)._and_((function(){
  293. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  294. return $core.withContext(function($ctx4) {
  295. //>>excludeEnd("ctx");
  296. $2=$recv(inner)._first();
  297. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  298. $ctx4.sendIdx["first"]=1;
  299. //>>excludeEnd("ctx");
  300. return $recv($2).__eq("(");
  301. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  302. $ctx4.sendIdx["="]=1;
  303. //>>excludeEnd("ctx");
  304. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  305. }, function($ctx4) {$ctx4.fillBlock({},$ctx3,3)});
  306. //>>excludeEnd("ctx");
  307. }));
  308. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  309. $ctx3.sendIdx["and:"]=1;
  310. //>>excludeEnd("ctx");
  311. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  312. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  313. //>>excludeEnd("ctx");
  314. }))._whileTrue_((function(){
  315. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  316. return $core.withContext(function($ctx3) {
  317. //>>excludeEnd("ctx");
  318. inner=$recv(inner)._allButFirst();
  319. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  320. $ctx3.sendIdx["allButFirst"]=1;
  321. //>>excludeEnd("ctx");
  322. inner;
  323. $3=stack;
  324. $5=$recv(stack)._last();
  325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  326. $ctx3.sendIdx["last"]=1;
  327. //>>excludeEnd("ctx");
  328. $4=$recv($5)._add_([]);
  329. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  330. $ctx3.sendIdx["add:"]=2;
  331. //>>excludeEnd("ctx");
  332. return $recv($3)._add_($4);
  333. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  334. $ctx3.sendIdx["add:"]=1;
  335. //>>excludeEnd("ctx");
  336. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  337. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,4)});
  338. //>>excludeEnd("ctx");
  339. }));
  340. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  341. $ctx2.sendIdx["whileTrue:"]=1;
  342. //>>excludeEnd("ctx");
  343. $recv((function(){
  344. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  345. return $core.withContext(function($ctx3) {
  346. //>>excludeEnd("ctx");
  347. $6=$recv(inner)._notEmpty();
  348. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  349. $ctx3.sendIdx["notEmpty"]=2;
  350. //>>excludeEnd("ctx");
  351. return $recv($6)._and_((function(){
  352. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  353. return $core.withContext(function($ctx4) {
  354. //>>excludeEnd("ctx");
  355. $7=$recv(inner)._last();
  356. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  357. $ctx4.sendIdx["last"]=2;
  358. //>>excludeEnd("ctx");
  359. return $recv($7).__eq(")");
  360. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  361. $ctx4.sendIdx["="]=2;
  362. //>>excludeEnd("ctx");
  363. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  364. }, function($ctx4) {$ctx4.fillBlock({},$ctx3,6)});
  365. //>>excludeEnd("ctx");
  366. }));
  367. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  368. $ctx3.sendIdx["and:"]=2;
  369. //>>excludeEnd("ctx");
  370. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  371. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,5)});
  372. //>>excludeEnd("ctx");
  373. }))._whileTrue_((function(){
  374. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  375. return $core.withContext(function($ctx3) {
  376. //>>excludeEnd("ctx");
  377. inner=$recv(inner)._allButLast();
  378. inner;
  379. close=$recv(close).__plus((1));
  380. return close;
  381. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  382. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,7)});
  383. //>>excludeEnd("ctx");
  384. }));
  385. $8=$recv($recv(inner)._notEmpty())._and_((function(){
  386. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  387. return $core.withContext(function($ctx3) {
  388. //>>excludeEnd("ctx");
  389. return $recv($recv(inner)._first()).__eq("~");
  390. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  391. $ctx3.sendIdx["="]=3;
  392. //>>excludeEnd("ctx");
  393. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  394. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,8)});
  395. //>>excludeEnd("ctx");
  396. }));
  397. if($core.assert($8)){
  398. inner=[$recv(inner)._allButFirst()];
  399. inner;
  400. }
  401. $9=$recv(inner)._isString();
  402. if($core.assert($9)){
  403. asNum=$recv($recv(inner)._ifEmpty_((function(){
  404. return "NaN";
  405. })))._asNumber();
  406. } else {
  407. asNum=inner;
  408. }
  409. asNum;
  410. $10=$recv(asNum).__eq(asNum);
  411. if($core.assert($10)){
  412. $11=$recv(stack)._last();
  413. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  414. $ctx2.sendIdx["last"]=3;
  415. //>>excludeEnd("ctx");
  416. $recv($11)._add_(asNum);
  417. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  418. $ctx2.sendIdx["add:"]=3;
  419. //>>excludeEnd("ctx");
  420. } else {
  421. $recv(inner)._ifNotEmpty_((function(){
  422. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  423. return $core.withContext(function($ctx3) {
  424. //>>excludeEnd("ctx");
  425. return $recv($recv(stack)._last())._add_(inner);
  426. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  427. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,15)});
  428. //>>excludeEnd("ctx");
  429. }));
  430. }
  431. return $recv(close)._timesRepeat_((function(){
  432. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  433. return $core.withContext(function($ctx3) {
  434. //>>excludeEnd("ctx");
  435. return $recv(stack)._removeLast();
  436. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  437. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,16)});
  438. //>>excludeEnd("ctx");
  439. }));
  440. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  441. }, function($ctx2) {$ctx2.fillBlock({each:each,asNum:asNum,inner:inner,close:close},$ctx1,1)});
  442. //>>excludeEnd("ctx");
  443. }));
  444. return result;
  445. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  446. }, function($ctx1) {$ctx1.fill(self,"parse:",{message:message,result:result,stack:stack,anArray:anArray},$globals.Axes.a$cls)});
  447. //>>excludeEnd("ctx");
  448. },
  449. //>>excludeStart("ide", pragmas.excludeIdeData);
  450. args: ["message"],
  451. source: "parse: message\x0a\x09| result stack anArray |\x0a\x09anArray := message tokenize: ' '.\x0a\x09result := #().\x0a\x09stack := { result }.\x0a\x09anArray do: [ :each |\x0a\x09\x09| asNum inner close |\x0a\x09\x09close := 0.\x0a\x09\x09inner := each.\x0a\x09\x09[ inner notEmpty and: [ inner first = '(' ]] whileTrue: [ inner := inner allButFirst. stack add: (stack last add: #()) ].\x0a\x09\x09[ inner notEmpty and: [ inner last = ')' ]] whileTrue: [ inner := inner allButLast. close := close + 1 ].\x0a\x09\x09(inner notEmpty and: [ inner first = '~' ]) ifTrue: [ inner := { inner allButFirst } ].\x0a\x09\x09asNum := inner isString ifTrue: [ (inner ifEmpty: [ 'NaN' ]) asNumber ] ifFalse: [ inner ].\x0a\x09\x09asNum = asNum ifTrue: [ stack last add: asNum ] ifFalse: [\x0a\x09\x09\x09inner ifNotEmpty: [ stack last add: inner ] ].\x0a\x09\x09close timesRepeat: [ stack removeLast ] ].\x0a\x09^ result",
  452. referencedClasses: [],
  453. //>>excludeEnd("ide");
  454. messageSends: ["tokenize:", "do:", "whileTrue:", "and:", "notEmpty", "=", "first", "allButFirst", "add:", "last", "allButLast", "+", "ifTrue:", "ifTrue:ifFalse:", "isString", "asNumber", "ifEmpty:", "ifNotEmpty:", "timesRepeat:", "removeLast"]
  455. }),
  456. $globals.Axes.a$cls);
  457. $core.addClass("Axolator", $globals.Object, ["root"], "Axxord");
  458. $core.addMethod(
  459. $core.method({
  460. selector: "atAxes:ifAbsent:",
  461. protocol: "action",
  462. fn: function (aCollection,aBlock){
  463. var self=this,$self=this;
  464. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  465. return $core.withContext(function($ctx1) {
  466. //>>excludeEnd("ctx");
  467. return $recv($self["@root"])._atAxes_ifAbsent_(aCollection,aBlock);
  468. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  469. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:",{aCollection:aCollection,aBlock:aBlock},$globals.Axolator)});
  470. //>>excludeEnd("ctx");
  471. },
  472. //>>excludeStart("ide", pragmas.excludeIdeData);
  473. args: ["aCollection", "aBlock"],
  474. source: "atAxes: aCollection ifAbsent: aBlock\x0a\x09^ root atAxes: aCollection ifAbsent: aBlock",
  475. referencedClasses: [],
  476. //>>excludeEnd("ide");
  477. messageSends: ["atAxes:ifAbsent:"]
  478. }),
  479. $globals.Axolator);
  480. $core.addMethod(
  481. $core.method({
  482. selector: "atAxes:ifAbsent:put:",
  483. protocol: "action",
  484. fn: function (aCollection,aBlock,value){
  485. var self=this,$self=this;
  486. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  487. return $core.withContext(function($ctx1) {
  488. //>>excludeEnd("ctx");
  489. return $recv($self["@root"])._atAxes_ifAbsent_put_(aCollection,aBlock,value);
  490. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  491. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:put:",{aCollection:aCollection,aBlock:aBlock,value:value},$globals.Axolator)});
  492. //>>excludeEnd("ctx");
  493. },
  494. //>>excludeStart("ide", pragmas.excludeIdeData);
  495. args: ["aCollection", "aBlock", "value"],
  496. source: "atAxes: aCollection ifAbsent: aBlock put: value\x0a\x09^ root atAxes: aCollection ifAbsent: aBlock put: value",
  497. referencedClasses: [],
  498. //>>excludeEnd("ide");
  499. messageSends: ["atAxes:ifAbsent:put:"]
  500. }),
  501. $globals.Axolator);
  502. $core.addMethod(
  503. $core.method({
  504. selector: "axes:consume:",
  505. protocol: "action",
  506. fn: function (aCollection,aBlock){
  507. var self=this,$self=this;
  508. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  509. return $core.withContext(function($ctx1) {
  510. //>>excludeEnd("ctx");
  511. (
  512. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  513. $ctx1.supercall = true,
  514. //>>excludeEnd("ctx");
  515. ($globals.Axolator.superclass||$boot.nilAsClass).fn.prototype._axes_consume_.apply($self, [aCollection,(function(value){
  516. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  517. return $core.withContext(function($ctx2) {
  518. //>>excludeEnd("ctx");
  519. return $recv(aBlock)._value_($recv(value)._deepCopy());
  520. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  521. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1,1)});
  522. //>>excludeEnd("ctx");
  523. })]));
  524. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  525. $ctx1.supercall = false;
  526. //>>excludeEnd("ctx");;
  527. return self;
  528. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  529. }, function($ctx1) {$ctx1.fill(self,"axes:consume:",{aCollection:aCollection,aBlock:aBlock},$globals.Axolator)});
  530. //>>excludeEnd("ctx");
  531. },
  532. //>>excludeStart("ide", pragmas.excludeIdeData);
  533. args: ["aCollection", "aBlock"],
  534. source: "axes: aCollection consume: aBlock\x0a\x0asuper axes: aCollection consume: [:value | aBlock value: value deepCopy]",
  535. referencedClasses: [],
  536. //>>excludeEnd("ide");
  537. messageSends: ["axes:consume:", "value:", "deepCopy"]
  538. }),
  539. $globals.Axolator);
  540. $core.addMethod(
  541. $core.method({
  542. selector: "axes:transform:",
  543. protocol: "action",
  544. fn: function (aCollection,aBlock){
  545. var self=this,$self=this;
  546. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  547. return $core.withContext(function($ctx1) {
  548. //>>excludeEnd("ctx");
  549. var $2,$1,$3,$receiver;
  550. $recv(aCollection)._ifEmpty_ifNotEmpty_((function(){
  551. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  552. return $core.withContext(function($ctx2) {
  553. //>>excludeEnd("ctx");
  554. $2=$recv(aBlock)._value_($self._root());
  555. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  556. $ctx2.sendIdx["value:"]=1;
  557. //>>excludeEnd("ctx");
  558. $1=$recv($2)._deepCopy();
  559. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  560. $ctx2.sendIdx["deepCopy"]=1;
  561. //>>excludeEnd("ctx");
  562. $self._root_($1);
  563. $3=$self._axxord();
  564. if(($receiver = $3) == null || $receiver.a$nil){
  565. return $3;
  566. } else {
  567. var axxord;
  568. axxord=$receiver;
  569. return $recv(axxord)._changed_(aCollection);
  570. }
  571. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  572. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  573. //>>excludeEnd("ctx");
  574. }),(function(){
  575. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  576. return $core.withContext(function($ctx2) {
  577. //>>excludeEnd("ctx");
  578. return (
  579. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  580. $ctx2.supercall = true,
  581. //>>excludeEnd("ctx");
  582. ($globals.Axolator.superclass||$boot.nilAsClass).fn.prototype._axes_transform_.apply($self, [aCollection,(function(value){
  583. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  584. return $core.withContext(function($ctx3) {
  585. //>>excludeEnd("ctx");
  586. return $recv($recv(aBlock)._value_(value))._deepCopy();
  587. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  588. }, function($ctx3) {$ctx3.fillBlock({value:value},$ctx2,4)});
  589. //>>excludeEnd("ctx");
  590. })]));
  591. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  592. $ctx2.supercall = false;
  593. //>>excludeEnd("ctx");;
  594. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  595. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
  596. //>>excludeEnd("ctx");
  597. }));
  598. return self;
  599. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  600. }, function($ctx1) {$ctx1.fill(self,"axes:transform:",{aCollection:aCollection,aBlock:aBlock},$globals.Axolator)});
  601. //>>excludeEnd("ctx");
  602. },
  603. //>>excludeStart("ide", pragmas.excludeIdeData);
  604. args: ["aCollection", "aBlock"],
  605. source: "axes: aCollection transform: aBlock\x0a\x0aaCollection\x0a\x09ifEmpty: [ self root: (aBlock value: self root) deepCopy. self axxord ifNotNil: [ :axxord | axxord changed: aCollection ] ]\x0a\x09ifNotEmpty: [ super axes: aCollection transform: [:value | (aBlock value: value) deepCopy] ]",
  606. referencedClasses: [],
  607. //>>excludeEnd("ide");
  608. messageSends: ["ifEmpty:ifNotEmpty:", "root:", "deepCopy", "value:", "root", "ifNotNil:", "axxord", "changed:", "axes:transform:"]
  609. }),
  610. $globals.Axolator);
  611. $core.addMethod(
  612. $core.method({
  613. selector: "root",
  614. protocol: "accessing",
  615. fn: function (){
  616. var self=this,$self=this;
  617. return $self["@root"];
  618. },
  619. //>>excludeStart("ide", pragmas.excludeIdeData);
  620. args: [],
  621. source: "root\x0a\x0a^root",
  622. referencedClasses: [],
  623. //>>excludeEnd("ide");
  624. messageSends: []
  625. }),
  626. $globals.Axolator);
  627. $core.addMethod(
  628. $core.method({
  629. selector: "root:",
  630. protocol: "accessing",
  631. fn: function (anObject){
  632. var self=this,$self=this;
  633. $self["@root"]=anObject;
  634. return self;
  635. },
  636. //>>excludeStart("ide", pragmas.excludeIdeData);
  637. args: ["anObject"],
  638. source: "root: anObject\x0a\x0aroot := anObject",
  639. referencedClasses: [],
  640. //>>excludeEnd("ide");
  641. messageSends: []
  642. }),
  643. $globals.Axolator);
  644. $core.addMethod(
  645. $core.method({
  646. selector: "on:",
  647. protocol: "instance creation",
  648. fn: function (anObject){
  649. var self=this,$self=this;
  650. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  651. return $core.withContext(function($ctx1) {
  652. //>>excludeEnd("ctx");
  653. return $recv($self._new())._root_(anObject);
  654. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  655. }, function($ctx1) {$ctx1.fill(self,"on:",{anObject:anObject},$globals.Axolator.a$cls)});
  656. //>>excludeEnd("ctx");
  657. },
  658. //>>excludeStart("ide", pragmas.excludeIdeData);
  659. args: ["anObject"],
  660. source: "on: anObject\x0a^self new root: anObject",
  661. referencedClasses: [],
  662. //>>excludeEnd("ide");
  663. messageSends: ["root:", "new"]
  664. }),
  665. $globals.Axolator.a$cls);
  666. $core.addMethod(
  667. $core.method({
  668. selector: "asAxisIn:ifAbsent:",
  669. protocol: "*Axxord",
  670. fn: function (anObject,aBlock){
  671. var self=this,$self=this;
  672. var receiver,selector,result;
  673. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  674. return $core.withContext(function($ctx1) {
  675. //>>excludeEnd("ctx");
  676. var $5,$4,$3,$2,$1;
  677. var $early={};
  678. try {
  679. selector=$self._first();
  680. receiver=$recv(anObject)._yourself();
  681. $recv((function(){
  682. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  683. return $core.withContext(function($ctx2) {
  684. //>>excludeEnd("ctx");
  685. result=$recv(receiver)._perform_(selector);
  686. return result;
  687. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  688. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  689. //>>excludeEnd("ctx");
  690. }))._on_do_($globals.MessageNotUnderstood,(function(mnu){
  691. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  692. return $core.withContext(function($ctx2) {
  693. //>>excludeEnd("ctx");
  694. $5=$recv(mnu)._message();
  695. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  696. $ctx2.sendIdx["message"]=1;
  697. //>>excludeEnd("ctx");
  698. $4=$recv($5)._selector();
  699. $3=$recv($4).__eq(selector);
  700. $2=$recv($3)._and_((function(){
  701. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  702. return $core.withContext(function($ctx3) {
  703. //>>excludeEnd("ctx");
  704. return $recv($recv(mnu)._receiver()).__eq_eq(receiver);
  705. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  706. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
  707. //>>excludeEnd("ctx");
  708. }));
  709. $1=$recv($2)._and_((function(){
  710. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  711. return $core.withContext(function($ctx3) {
  712. //>>excludeEnd("ctx");
  713. return $recv($recv($recv(mnu)._message())._arguments())._isEmpty();
  714. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  715. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,4)});
  716. //>>excludeEnd("ctx");
  717. }));
  718. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  719. $ctx2.sendIdx["and:"]=1;
  720. //>>excludeEnd("ctx");
  721. if(!$core.assert($1)){
  722. $recv(mnu)._resignal();
  723. }
  724. throw $early=[$recv(aBlock)._value()];
  725. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  726. }, function($ctx2) {$ctx2.fillBlock({mnu:mnu},$ctx1,2)});
  727. //>>excludeEnd("ctx");
  728. }));
  729. return result;
  730. }
  731. catch(e) {if(e===$early)return e[0]; throw e}
  732. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  733. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:",{anObject:anObject,aBlock:aBlock,receiver:receiver,selector:selector,result:result},$globals.Array)});
  734. //>>excludeEnd("ctx");
  735. },
  736. //>>excludeStart("ide", pragmas.excludeIdeData);
  737. args: ["anObject", "aBlock"],
  738. source: "asAxisIn: anObject ifAbsent: aBlock\x0a\x09| receiver selector result |\x0a\x09selector := self first.\x0a\x09receiver := anObject yourself. \x22JSObjectProxy hack\x22\x0a\x09\x0a\x09[ result := receiver perform: selector ]\x0a\x09on: MessageNotUnderstood do: [ :mnu |\x0a\x09\x09((mnu message selector = selector\x0a\x09\x09\x09and: [ mnu receiver == receiver ])\x0a\x09\x09\x09and: [ mnu message arguments isEmpty ])\x0a\x09\x09\x09ifFalse: [ mnu resignal ].\x0a\x09\x09^ aBlock value ].\x0a\x09^ result",
  739. referencedClasses: ["MessageNotUnderstood"],
  740. //>>excludeEnd("ide");
  741. messageSends: ["first", "yourself", "on:do:", "perform:", "ifFalse:", "and:", "=", "selector", "message", "==", "receiver", "isEmpty", "arguments", "resignal", "value"]
  742. }),
  743. $globals.Array);
  744. $core.addMethod(
  745. $core.method({
  746. selector: "asAxisIn:ifAbsent:put:",
  747. protocol: "*Axxord",
  748. fn: function (anObject,aBlock,anotherObject){
  749. var self=this,$self=this;
  750. var receiver,selector,arguments_,result;
  751. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  752. return $core.withContext(function($ctx1) {
  753. //>>excludeEnd("ctx");
  754. var $5,$4,$3,$2,$1;
  755. var $early={};
  756. try {
  757. selector=$recv($self._first())._asMutator();
  758. receiver=$recv(anObject)._yourself();
  759. arguments_=[anotherObject];
  760. $recv((function(){
  761. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  762. return $core.withContext(function($ctx2) {
  763. //>>excludeEnd("ctx");
  764. result=$recv(receiver)._perform_withArguments_(selector,arguments_);
  765. return result;
  766. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  767. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  768. //>>excludeEnd("ctx");
  769. }))._on_do_($globals.MessageNotUnderstood,(function(mnu){
  770. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  771. return $core.withContext(function($ctx2) {
  772. //>>excludeEnd("ctx");
  773. $5=$recv(mnu)._message();
  774. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  775. $ctx2.sendIdx["message"]=1;
  776. //>>excludeEnd("ctx");
  777. $4=$recv($5)._selector();
  778. $3=$recv($4).__eq(selector);
  779. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  780. $ctx2.sendIdx["="]=1;
  781. //>>excludeEnd("ctx");
  782. $2=$recv($3)._and_((function(){
  783. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  784. return $core.withContext(function($ctx3) {
  785. //>>excludeEnd("ctx");
  786. return $recv($recv(mnu)._receiver()).__eq_eq(receiver);
  787. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  788. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
  789. //>>excludeEnd("ctx");
  790. }));
  791. $1=$recv($2)._and_((function(){
  792. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  793. return $core.withContext(function($ctx3) {
  794. //>>excludeEnd("ctx");
  795. return $recv($recv($recv(mnu)._message())._arguments()).__eq(arguments_);
  796. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  797. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,4)});
  798. //>>excludeEnd("ctx");
  799. }));
  800. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  801. $ctx2.sendIdx["and:"]=1;
  802. //>>excludeEnd("ctx");
  803. if(!$core.assert($1)){
  804. $recv(mnu)._resignal();
  805. }
  806. throw $early=[$recv(aBlock)._value()];
  807. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  808. }, function($ctx2) {$ctx2.fillBlock({mnu:mnu},$ctx1,2)});
  809. //>>excludeEnd("ctx");
  810. }));
  811. return result;
  812. }
  813. catch(e) {if(e===$early)return e[0]; throw e}
  814. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  815. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:put:",{anObject:anObject,aBlock:aBlock,anotherObject:anotherObject,receiver:receiver,selector:selector,arguments_:arguments_,result:result},$globals.Array)});
  816. //>>excludeEnd("ctx");
  817. },
  818. //>>excludeStart("ide", pragmas.excludeIdeData);
  819. args: ["anObject", "aBlock", "anotherObject"],
  820. source: "asAxisIn: anObject ifAbsent: aBlock put: anotherObject\x0a\x09| receiver selector arguments result |\x0a\x09selector := self first asMutator.\x0a\x09receiver := anObject yourself. \x22JSObjectProxy hack\x22\x0a\x09arguments := { anotherObject }.\x0a\x09\x0a\x09[ result := receiver perform: selector withArguments: arguments ]\x0a\x09on: MessageNotUnderstood do: [ :mnu |\x0a\x09\x09((mnu message selector = selector\x0a\x09\x09\x09and: [ mnu receiver == receiver ])\x0a\x09\x09\x09and: [ mnu message arguments = arguments ])\x0a\x09\x09\x09ifFalse: [ mnu resignal ].\x0a\x09\x09^ aBlock value ].\x0a\x09^ result",
  821. referencedClasses: ["MessageNotUnderstood"],
  822. //>>excludeEnd("ide");
  823. messageSends: ["asMutator", "first", "yourself", "on:do:", "perform:withArguments:", "ifFalse:", "and:", "=", "selector", "message", "==", "receiver", "arguments", "resignal", "value"]
  824. }),
  825. $globals.Array);
  826. $core.addMethod(
  827. $core.method({
  828. selector: "asAxisIn:ifAbsent:",
  829. protocol: "*Axxord",
  830. fn: function (anObject,aBlock){
  831. var self=this,$self=this;
  832. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  833. return $core.withContext(function($ctx1) {
  834. //>>excludeEnd("ctx");
  835. return $recv(aBlock)._value();
  836. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  837. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:",{anObject:anObject,aBlock:aBlock},$globals.JSObjectProxy)});
  838. //>>excludeEnd("ctx");
  839. },
  840. //>>excludeStart("ide", pragmas.excludeIdeData);
  841. args: ["anObject", "aBlock"],
  842. source: "asAxisIn: anObject ifAbsent: aBlock\x0a\x09^ aBlock value",
  843. referencedClasses: [],
  844. //>>excludeEnd("ide");
  845. messageSends: ["value"]
  846. }),
  847. $globals.JSObjectProxy);
  848. $core.addMethod(
  849. $core.method({
  850. selector: "asAxisIn:ifAbsent:put:",
  851. protocol: "*Axxord",
  852. fn: function (anObject,aBlock,anotherObject){
  853. var self=this,$self=this;
  854. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  855. return $core.withContext(function($ctx1) {
  856. //>>excludeEnd("ctx");
  857. return $recv(aBlock)._value();
  858. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  859. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:put:",{anObject:anObject,aBlock:aBlock,anotherObject:anotherObject},$globals.JSObjectProxy)});
  860. //>>excludeEnd("ctx");
  861. },
  862. //>>excludeStart("ide", pragmas.excludeIdeData);
  863. args: ["anObject", "aBlock", "anotherObject"],
  864. source: "asAxisIn: anObject ifAbsent: aBlock put: anotherObject\x0a\x09^ aBlock value",
  865. referencedClasses: [],
  866. //>>excludeEnd("ide");
  867. messageSends: ["value"]
  868. }),
  869. $globals.JSObjectProxy);
  870. $core.addMethod(
  871. $core.method({
  872. selector: "atAxes:ifAbsent:",
  873. protocol: "*Axxord",
  874. fn: function (aCollection,aBlock){
  875. var self=this,$self=this;
  876. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  877. return $core.withContext(function($ctx1) {
  878. //>>excludeEnd("ctx");
  879. return $recv($globals.Axes)._on_at_ifAbsent_(self,aCollection,aBlock);
  880. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  881. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:",{aCollection:aCollection,aBlock:aBlock},$globals.JSObjectProxy)});
  882. //>>excludeEnd("ctx");
  883. },
  884. //>>excludeStart("ide", pragmas.excludeIdeData);
  885. args: ["aCollection", "aBlock"],
  886. source: "atAxes: aCollection ifAbsent: aBlock\x0a\x09^ Axes on: self at: aCollection ifAbsent: aBlock",
  887. referencedClasses: ["Axes"],
  888. //>>excludeEnd("ide");
  889. messageSends: ["on:at:ifAbsent:"]
  890. }),
  891. $globals.JSObjectProxy);
  892. $core.addMethod(
  893. $core.method({
  894. selector: "atAxes:ifAbsent:put:",
  895. protocol: "*Axxord",
  896. fn: function (aCollection,aBlock,value){
  897. var self=this,$self=this;
  898. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  899. return $core.withContext(function($ctx1) {
  900. //>>excludeEnd("ctx");
  901. return $recv($globals.Axes)._on_at_ifAbsent_put_(self,aCollection,aBlock,value);
  902. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  903. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:put:",{aCollection:aCollection,aBlock:aBlock,value:value},$globals.JSObjectProxy)});
  904. //>>excludeEnd("ctx");
  905. },
  906. //>>excludeStart("ide", pragmas.excludeIdeData);
  907. args: ["aCollection", "aBlock", "value"],
  908. source: "atAxes: aCollection ifAbsent: aBlock put: value\x0a\x09^ Axes on: self at: aCollection ifAbsent: aBlock put: value",
  909. referencedClasses: ["Axes"],
  910. //>>excludeEnd("ide");
  911. messageSends: ["on:at:ifAbsent:put:"]
  912. }),
  913. $globals.JSObjectProxy);
  914. $core.addMethod(
  915. $core.method({
  916. selector: "axes:consume:",
  917. protocol: "*Axxord",
  918. fn: function (aCollection,aBlock){
  919. var self=this,$self=this;
  920. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  921. return $core.withContext(function($ctx1) {
  922. //>>excludeEnd("ctx");
  923. return $recv($globals.Axes)._on_at_consume_(self,aCollection,aBlock);
  924. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  925. }, function($ctx1) {$ctx1.fill(self,"axes:consume:",{aCollection:aCollection,aBlock:aBlock},$globals.JSObjectProxy)});
  926. //>>excludeEnd("ctx");
  927. },
  928. //>>excludeStart("ide", pragmas.excludeIdeData);
  929. args: ["aCollection", "aBlock"],
  930. source: "axes: aCollection consume: aBlock\x0a\x09^ Axes on: self at: aCollection consume: aBlock",
  931. referencedClasses: ["Axes"],
  932. //>>excludeEnd("ide");
  933. messageSends: ["on:at:consume:"]
  934. }),
  935. $globals.JSObjectProxy);
  936. $core.addMethod(
  937. $core.method({
  938. selector: "axes:transform:",
  939. protocol: "*Axxord",
  940. fn: function (aCollection,aBlock){
  941. var self=this,$self=this;
  942. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  943. return $core.withContext(function($ctx1) {
  944. //>>excludeEnd("ctx");
  945. return $recv($globals.Axes)._on_at_transform_(self,aCollection,aBlock);
  946. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  947. }, function($ctx1) {$ctx1.fill(self,"axes:transform:",{aCollection:aCollection,aBlock:aBlock},$globals.JSObjectProxy)});
  948. //>>excludeEnd("ctx");
  949. },
  950. //>>excludeStart("ide", pragmas.excludeIdeData);
  951. args: ["aCollection", "aBlock"],
  952. source: "axes: aCollection transform: aBlock\x0a\x09^ Axes on: self at: aCollection transform: aBlock",
  953. referencedClasses: ["Axes"],
  954. //>>excludeEnd("ide");
  955. messageSends: ["on:at:transform:"]
  956. }),
  957. $globals.JSObjectProxy);
  958. $core.addMethod(
  959. $core.method({
  960. selector: "axxord",
  961. protocol: "*Axxord",
  962. fn: function (){
  963. var self=this,$self=this;
  964. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  965. return $core.withContext(function($ctx1) {
  966. //>>excludeEnd("ctx");
  967. return $self["@jsObject"].$axxord$;
  968. return self;
  969. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  970. }, function($ctx1) {$ctx1.fill(self,"axxord",{},$globals.JSObjectProxy)});
  971. //>>excludeEnd("ctx");
  972. },
  973. //>>excludeStart("ide", pragmas.excludeIdeData);
  974. args: [],
  975. source: "axxord\x0a<inlineJS: 'return $self[\x22@jsObject\x22].$axxord$'>",
  976. referencedClasses: [],
  977. //>>excludeEnd("ide");
  978. messageSends: []
  979. }),
  980. $globals.JSObjectProxy);
  981. $core.addMethod(
  982. $core.method({
  983. selector: "axxord:",
  984. protocol: "*Axxord",
  985. fn: function (anAxon){
  986. var self=this,$self=this;
  987. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  988. return $core.withContext(function($ctx1) {
  989. //>>excludeEnd("ctx");
  990. $self["@jsObject"].$axxord$ = anAxon;
  991. return self;
  992. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  993. }, function($ctx1) {$ctx1.fill(self,"axxord:",{anAxon:anAxon},$globals.JSObjectProxy)});
  994. //>>excludeEnd("ctx");
  995. },
  996. //>>excludeStart("ide", pragmas.excludeIdeData);
  997. args: ["anAxon"],
  998. source: "axxord: anAxon\x0a<inlineJS: '$self[\x22@jsObject\x22].$axxord$ = anAxon'>",
  999. referencedClasses: [],
  1000. //>>excludeEnd("ide");
  1001. messageSends: []
  1002. }),
  1003. $globals.JSObjectProxy);
  1004. $core.addMethod(
  1005. $core.method({
  1006. selector: "asAxisIn:ifAbsent:",
  1007. protocol: "*Axxord",
  1008. fn: function (anObject,aBlock){
  1009. var self=this,$self=this;
  1010. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1011. return $core.withContext(function($ctx1) {
  1012. //>>excludeEnd("ctx");
  1013. var $1;
  1014. var $early={};
  1015. try {
  1016. $1=$recv(anObject)._respondsTo_("at:ifAbsent:");
  1017. $recv($1)._ifTrue_ifFalse_((function(){
  1018. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1019. return $core.withContext(function($ctx2) {
  1020. //>>excludeEnd("ctx");
  1021. throw $early=[$recv(anObject)._at_ifAbsent_(self,aBlock)];
  1022. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1023. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1024. //>>excludeEnd("ctx");
  1025. }),aBlock);
  1026. return self;
  1027. }
  1028. catch(e) {if(e===$early)return e[0]; throw e}
  1029. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1030. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:",{anObject:anObject,aBlock:aBlock},$globals.Number)});
  1031. //>>excludeEnd("ctx");
  1032. },
  1033. //>>excludeStart("ide", pragmas.excludeIdeData);
  1034. args: ["anObject", "aBlock"],
  1035. source: "asAxisIn: anObject ifAbsent: aBlock\x0a\x09(anObject respondsTo: #at:ifAbsent:)\x0a\x09\x09ifTrue: [ ^ anObject at: self ifAbsent: aBlock ]\x0a\x09\x09ifFalse: aBlock",
  1036. referencedClasses: [],
  1037. //>>excludeEnd("ide");
  1038. messageSends: ["ifTrue:ifFalse:", "respondsTo:", "at:ifAbsent:"]
  1039. }),
  1040. $globals.Number);
  1041. $core.addMethod(
  1042. $core.method({
  1043. selector: "asAxisIn:ifAbsent:put:",
  1044. protocol: "*Axxord",
  1045. fn: function (anObject,aBlock,anotherObject){
  1046. var self=this,$self=this;
  1047. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1048. return $core.withContext(function($ctx1) {
  1049. //>>excludeEnd("ctx");
  1050. var $1;
  1051. var $early={};
  1052. try {
  1053. $1=$recv(anObject)._respondsTo_("at:put:");
  1054. $recv($1)._ifTrue_ifFalse_((function(){
  1055. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1056. return $core.withContext(function($ctx2) {
  1057. //>>excludeEnd("ctx");
  1058. throw $early=[$recv(anObject)._at_put_(self,anotherObject)];
  1059. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1060. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1061. //>>excludeEnd("ctx");
  1062. }),aBlock);
  1063. return self;
  1064. }
  1065. catch(e) {if(e===$early)return e[0]; throw e}
  1066. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1067. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:put:",{anObject:anObject,aBlock:aBlock,anotherObject:anotherObject},$globals.Number)});
  1068. //>>excludeEnd("ctx");
  1069. },
  1070. //>>excludeStart("ide", pragmas.excludeIdeData);
  1071. args: ["anObject", "aBlock", "anotherObject"],
  1072. source: "asAxisIn: anObject ifAbsent: aBlock put: anotherObject\x0a\x09(anObject respondsTo: #at:put:)\x0a\x09\x09ifTrue: [ ^ anObject at: self put: anotherObject ]\x0a\x09\x09ifFalse: aBlock",
  1073. referencedClasses: [],
  1074. //>>excludeEnd("ide");
  1075. messageSends: ["ifTrue:ifFalse:", "respondsTo:", "at:put:"]
  1076. }),
  1077. $globals.Number);
  1078. $core.addMethod(
  1079. $core.method({
  1080. selector: "asAxisIn:ifAbsent:",
  1081. protocol: "*Axxord",
  1082. fn: function (anObject,aBlock){
  1083. var self=this,$self=this;
  1084. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1085. return $core.withContext(function($ctx1) {
  1086. //>>excludeEnd("ctx");
  1087. return $recv(aBlock)._value();
  1088. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1089. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:",{anObject:anObject,aBlock:aBlock},$globals.Object)});
  1090. //>>excludeEnd("ctx");
  1091. },
  1092. //>>excludeStart("ide", pragmas.excludeIdeData);
  1093. args: ["anObject", "aBlock"],
  1094. source: "asAxisIn: anObject ifAbsent: aBlock\x0a\x09^ aBlock value",
  1095. referencedClasses: [],
  1096. //>>excludeEnd("ide");
  1097. messageSends: ["value"]
  1098. }),
  1099. $globals.Object);
  1100. $core.addMethod(
  1101. $core.method({
  1102. selector: "asAxisIn:ifAbsent:put:",
  1103. protocol: "*Axxord",
  1104. fn: function (anObject,aBlock,anotherObject){
  1105. var self=this,$self=this;
  1106. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1107. return $core.withContext(function($ctx1) {
  1108. //>>excludeEnd("ctx");
  1109. return $recv(aBlock)._value();
  1110. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1111. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:put:",{anObject:anObject,aBlock:aBlock,anotherObject:anotherObject},$globals.Object)});
  1112. //>>excludeEnd("ctx");
  1113. },
  1114. //>>excludeStart("ide", pragmas.excludeIdeData);
  1115. args: ["anObject", "aBlock", "anotherObject"],
  1116. source: "asAxisIn: anObject ifAbsent: aBlock put: anotherObject\x0a\x09^ aBlock value",
  1117. referencedClasses: [],
  1118. //>>excludeEnd("ide");
  1119. messageSends: ["value"]
  1120. }),
  1121. $globals.Object);
  1122. $core.addMethod(
  1123. $core.method({
  1124. selector: "atAxes:ifAbsent:",
  1125. protocol: "*Axxord",
  1126. fn: function (aCollection,aBlock){
  1127. var self=this,$self=this;
  1128. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1129. return $core.withContext(function($ctx1) {
  1130. //>>excludeEnd("ctx");
  1131. return $recv($globals.Axes)._on_at_ifAbsent_(self,aCollection,aBlock);
  1132. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1133. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:",{aCollection:aCollection,aBlock:aBlock},$globals.Object)});
  1134. //>>excludeEnd("ctx");
  1135. },
  1136. //>>excludeStart("ide", pragmas.excludeIdeData);
  1137. args: ["aCollection", "aBlock"],
  1138. source: "atAxes: aCollection ifAbsent: aBlock\x0a\x09^ Axes on: self at: aCollection ifAbsent: aBlock",
  1139. referencedClasses: ["Axes"],
  1140. //>>excludeEnd("ide");
  1141. messageSends: ["on:at:ifAbsent:"]
  1142. }),
  1143. $globals.Object);
  1144. $core.addMethod(
  1145. $core.method({
  1146. selector: "atAxes:ifAbsent:put:",
  1147. protocol: "*Axxord",
  1148. fn: function (aCollection,aBlock,value){
  1149. var self=this,$self=this;
  1150. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1151. return $core.withContext(function($ctx1) {
  1152. //>>excludeEnd("ctx");
  1153. return $recv($globals.Axes)._on_at_ifAbsent_put_(self,aCollection,aBlock,value);
  1154. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1155. }, function($ctx1) {$ctx1.fill(self,"atAxes:ifAbsent:put:",{aCollection:aCollection,aBlock:aBlock,value:value},$globals.Object)});
  1156. //>>excludeEnd("ctx");
  1157. },
  1158. //>>excludeStart("ide", pragmas.excludeIdeData);
  1159. args: ["aCollection", "aBlock", "value"],
  1160. source: "atAxes: aCollection ifAbsent: aBlock put: value\x0a\x09^ Axes on: self at: aCollection ifAbsent: aBlock put: value",
  1161. referencedClasses: ["Axes"],
  1162. //>>excludeEnd("ide");
  1163. messageSends: ["on:at:ifAbsent:put:"]
  1164. }),
  1165. $globals.Object);
  1166. $core.addMethod(
  1167. $core.method({
  1168. selector: "axes:consume:",
  1169. protocol: "*Axxord",
  1170. fn: function (aCollection,aBlock){
  1171. var self=this,$self=this;
  1172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1173. return $core.withContext(function($ctx1) {
  1174. //>>excludeEnd("ctx");
  1175. return $recv($globals.Axes)._on_at_consume_(self,aCollection,aBlock);
  1176. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1177. }, function($ctx1) {$ctx1.fill(self,"axes:consume:",{aCollection:aCollection,aBlock:aBlock},$globals.Object)});
  1178. //>>excludeEnd("ctx");
  1179. },
  1180. //>>excludeStart("ide", pragmas.excludeIdeData);
  1181. args: ["aCollection", "aBlock"],
  1182. source: "axes: aCollection consume: aBlock\x0a\x09^ Axes on: self at: aCollection consume: aBlock",
  1183. referencedClasses: ["Axes"],
  1184. //>>excludeEnd("ide");
  1185. messageSends: ["on:at:consume:"]
  1186. }),
  1187. $globals.Object);
  1188. $core.addMethod(
  1189. $core.method({
  1190. selector: "axes:transform:",
  1191. protocol: "*Axxord",
  1192. fn: function (aCollection,aBlock){
  1193. var self=this,$self=this;
  1194. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1195. return $core.withContext(function($ctx1) {
  1196. //>>excludeEnd("ctx");
  1197. return $recv($globals.Axes)._on_at_transform_(self,aCollection,aBlock);
  1198. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1199. }, function($ctx1) {$ctx1.fill(self,"axes:transform:",{aCollection:aCollection,aBlock:aBlock},$globals.Object)});
  1200. //>>excludeEnd("ctx");
  1201. },
  1202. //>>excludeStart("ide", pragmas.excludeIdeData);
  1203. args: ["aCollection", "aBlock"],
  1204. source: "axes: aCollection transform: aBlock\x0a\x09^ Axes on: self at: aCollection transform: aBlock",
  1205. referencedClasses: ["Axes"],
  1206. //>>excludeEnd("ide");
  1207. messageSends: ["on:at:transform:"]
  1208. }),
  1209. $globals.Object);
  1210. $core.addMethod(
  1211. $core.method({
  1212. selector: "axxord",
  1213. protocol: "*Axxord",
  1214. fn: function (){
  1215. var self=this,$self=this;
  1216. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1217. return $core.withContext(function($ctx1) {
  1218. //>>excludeEnd("ctx");
  1219. return self.$axxord$;
  1220. return self;
  1221. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1222. }, function($ctx1) {$ctx1.fill(self,"axxord",{},$globals.Object)});
  1223. //>>excludeEnd("ctx");
  1224. },
  1225. //>>excludeStart("ide", pragmas.excludeIdeData);
  1226. args: [],
  1227. source: "axxord\x0a<inlineJS: 'return self.$axxord$'>",
  1228. referencedClasses: [],
  1229. //>>excludeEnd("ide");
  1230. messageSends: []
  1231. }),
  1232. $globals.Object);
  1233. $core.addMethod(
  1234. $core.method({
  1235. selector: "axxord:",
  1236. protocol: "*Axxord",
  1237. fn: function (anAxon){
  1238. var self=this,$self=this;
  1239. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1240. return $core.withContext(function($ctx1) {
  1241. //>>excludeEnd("ctx");
  1242. self.$axxord$ = anAxon;
  1243. return self;
  1244. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1245. }, function($ctx1) {$ctx1.fill(self,"axxord:",{anAxon:anAxon},$globals.Object)});
  1246. //>>excludeEnd("ctx");
  1247. },
  1248. //>>excludeStart("ide", pragmas.excludeIdeData);
  1249. args: ["anAxon"],
  1250. source: "axxord: anAxon\x0a<inlineJS: 'self.$axxord$ = anAxon'>",
  1251. referencedClasses: [],
  1252. //>>excludeEnd("ide");
  1253. messageSends: []
  1254. }),
  1255. $globals.Object);
  1256. $core.addMethod(
  1257. $core.method({
  1258. selector: "asAxisIn:ifAbsent:",
  1259. protocol: "*Axxord",
  1260. fn: function (anObject,aBlock){
  1261. var self=this,$self=this;
  1262. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1263. return $core.withContext(function($ctx1) {
  1264. //>>excludeEnd("ctx");
  1265. var $1;
  1266. var $early={};
  1267. try {
  1268. $1=$recv(anObject)._respondsTo_("at:ifAbsent:");
  1269. $recv($1)._ifTrue_ifFalse_((function(){
  1270. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1271. return $core.withContext(function($ctx2) {
  1272. //>>excludeEnd("ctx");
  1273. throw $early=[$recv(anObject)._at_ifAbsent_(self,aBlock)];
  1274. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1275. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1276. //>>excludeEnd("ctx");
  1277. }),aBlock);
  1278. return self;
  1279. }
  1280. catch(e) {if(e===$early)return e[0]; throw e}
  1281. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1282. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:",{anObject:anObject,aBlock:aBlock},$globals.String)});
  1283. //>>excludeEnd("ctx");
  1284. },
  1285. //>>excludeStart("ide", pragmas.excludeIdeData);
  1286. args: ["anObject", "aBlock"],
  1287. source: "asAxisIn: anObject ifAbsent: aBlock\x0a\x09(anObject respondsTo: #at:ifAbsent:)\x0a\x09\x09ifTrue: [ ^ anObject at: self ifAbsent: aBlock ]\x0a\x09\x09ifFalse: aBlock",
  1288. referencedClasses: [],
  1289. //>>excludeEnd("ide");
  1290. messageSends: ["ifTrue:ifFalse:", "respondsTo:", "at:ifAbsent:"]
  1291. }),
  1292. $globals.String);
  1293. $core.addMethod(
  1294. $core.method({
  1295. selector: "asAxisIn:ifAbsent:put:",
  1296. protocol: "*Axxord",
  1297. fn: function (anObject,aBlock,anotherObject){
  1298. var self=this,$self=this;
  1299. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1300. return $core.withContext(function($ctx1) {
  1301. //>>excludeEnd("ctx");
  1302. var $1;
  1303. var $early={};
  1304. try {
  1305. $1=$recv(anObject)._respondsTo_("at:put:");
  1306. $recv($1)._ifTrue_ifFalse_((function(){
  1307. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1308. return $core.withContext(function($ctx2) {
  1309. //>>excludeEnd("ctx");
  1310. throw $early=[$recv(anObject)._at_put_(self,anotherObject)];
  1311. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1312. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1313. //>>excludeEnd("ctx");
  1314. }),aBlock);
  1315. return self;
  1316. }
  1317. catch(e) {if(e===$early)return e[0]; throw e}
  1318. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1319. }, function($ctx1) {$ctx1.fill(self,"asAxisIn:ifAbsent:put:",{anObject:anObject,aBlock:aBlock,anotherObject:anotherObject},$globals.String)});
  1320. //>>excludeEnd("ctx");
  1321. },
  1322. //>>excludeStart("ide", pragmas.excludeIdeData);
  1323. args: ["anObject", "aBlock", "anotherObject"],
  1324. source: "asAxisIn: anObject ifAbsent: aBlock put: anotherObject\x0a\x09(anObject respondsTo: #at:put:)\x0a\x09\x09ifTrue: [ ^ anObject at: self put: anotherObject ]\x0a\x09\x09ifFalse: aBlock",
  1325. referencedClasses: [],
  1326. //>>excludeEnd("ide");
  1327. messageSends: ["ifTrue:ifFalse:", "respondsTo:", "at:put:"]
  1328. }),
  1329. $globals.String);
  1330. });