Trapped-Backend.deploy.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. smalltalk.addPackage('Trapped-Backend', {});
  2. smalltalk.addClass('EavModel', smalltalk.Object, ['getBlock', 'putBlock'], 'Trapped-Backend');
  3. smalltalk.addMethod(
  4. "_getBlock_",
  5. smalltalk.method({
  6. selector: "getBlock:",
  7. fn: function (aBlock){
  8. var self=this;
  9. self["@getBlock"]=aBlock;
  10. return self}
  11. }),
  12. smalltalk.EavModel);
  13. smalltalk.addMethod(
  14. "_initialize",
  15. smalltalk.method({
  16. selector: "initialize",
  17. fn: function (){
  18. var self=this;
  19. smalltalk.send(self,"_initialize",[],smalltalk.Object);
  20. self["@getBlock"]=(function(){
  21. return smalltalk.send(self,"_error_",["No getter block."]);
  22. });
  23. self["@putBlock"]=(function(){
  24. return smalltalk.send(self,"_error_",["No putter block."]);
  25. });
  26. return self}
  27. }),
  28. smalltalk.EavModel);
  29. smalltalk.addMethod(
  30. "_on_",
  31. smalltalk.method({
  32. selector: "on:",
  33. fn: function (anObject){
  34. var self=this;
  35. var $1;
  36. $1=smalltalk.send(self["@getBlock"],"_value_",[anObject]);
  37. return $1;
  38. }
  39. }),
  40. smalltalk.EavModel);
  41. smalltalk.addMethod(
  42. "_on_put_",
  43. smalltalk.method({
  44. selector: "on:put:",
  45. fn: function (anObject,anObject2){
  46. var self=this;
  47. var $1;
  48. $1=smalltalk.send(self["@putBlock"],"_value_value_",[anObject,anObject2]);
  49. return $1;
  50. }
  51. }),
  52. smalltalk.EavModel);
  53. smalltalk.addMethod(
  54. "_putBlock_",
  55. smalltalk.method({
  56. selector: "putBlock:",
  57. fn: function (aBlock){
  58. var self=this;
  59. self["@putBlock"]=aBlock;
  60. return self}
  61. }),
  62. smalltalk.EavModel);
  63. smalltalk.addClass('Isolator', smalltalk.Object, ['root'], 'Trapped-Backend');
  64. smalltalk.addMethod(
  65. "_model_modify_",
  66. smalltalk.method({
  67. selector: "model:modify:",
  68. fn: function (anEavModel,aBlock){
  69. var self=this;
  70. var newValue;
  71. newValue=smalltalk.send(aBlock,"_value_",[smalltalk.send(anEavModel,"_on_",[self])]);
  72. smalltalk.send(anEavModel,"_on_put_",[self,smalltalk.send(newValue,"_deepCopy",[])]);
  73. return self}
  74. }),
  75. smalltalk.Isolator);
  76. smalltalk.addMethod(
  77. "_model_read_",
  78. smalltalk.method({
  79. selector: "model:read:",
  80. fn: function (anEavModel,aBlock){
  81. var self=this;
  82. smalltalk.send(aBlock,"_value_",[smalltalk.send(smalltalk.send(anEavModel,"_on_",[self]),"_deepCopy",[])]);
  83. return self}
  84. }),
  85. smalltalk.Isolator);
  86. smalltalk.addMethod(
  87. "_root",
  88. smalltalk.method({
  89. selector: "root",
  90. fn: function (){
  91. var self=this;
  92. return self["@root"];
  93. }
  94. }),
  95. smalltalk.Isolator);
  96. smalltalk.addMethod(
  97. "_root_",
  98. smalltalk.method({
  99. selector: "root:",
  100. fn: function (anObject){
  101. var self=this;
  102. self["@root"]=anObject;
  103. return self}
  104. }),
  105. smalltalk.Isolator);
  106. smalltalk.addMethod(
  107. "_on_",
  108. smalltalk.method({
  109. selector: "on:",
  110. fn: function (anObject){
  111. var self=this;
  112. var $1;
  113. $1=smalltalk.send(smalltalk.send(self,"_new",[]),"_root_",[anObject]);
  114. return $1;
  115. }
  116. }),
  117. smalltalk.Isolator.klass);
  118. smalltalk.addClass('KeyedPubSubBase', smalltalk.Object, [], 'Trapped-Backend');
  119. smalltalk.addMethod(
  120. "_changed_",
  121. smalltalk.method({
  122. selector: "changed:",
  123. fn: function (key){
  124. var self=this;
  125. var $1;
  126. var needsToRun;
  127. needsToRun=false;
  128. smalltalk.send(self,"_do_",[(function(each){
  129. $1=smalltalk.send(each,"_accepts_",[key]);
  130. if(smalltalk.assert($1)){
  131. smalltalk.send(each,"_flag",[]);
  132. needsToRun=true;
  133. return needsToRun;
  134. };
  135. })]);
  136. smalltalk.send(self,"_dirty_",[needsToRun]);
  137. return self}
  138. }),
  139. smalltalk.KeyedPubSubBase);
  140. smalltalk.addMethod(
  141. "_dirty_",
  142. smalltalk.method({
  143. selector: "dirty:",
  144. fn: function (aBoolean){
  145. var self=this;
  146. if(smalltalk.assert(aBoolean)){
  147. smalltalk.send((function(){
  148. return smalltalk.send(self,"_run",[]);
  149. }),"_fork",[]);
  150. };
  151. return self}
  152. }),
  153. smalltalk.KeyedPubSubBase);
  154. smalltalk.addMethod(
  155. "_on_hook_",
  156. smalltalk.method({
  157. selector: "on:hook:",
  158. fn: function (key,aBlock){
  159. var self=this;
  160. smalltalk.send(self,"_add_",[smalltalk.send(smalltalk.send(self,"_subscriptionKey_block_",[key,aBlock]),"_flag",[])]);
  161. smalltalk.send(self,"_dirty_",[true]);
  162. return self}
  163. }),
  164. smalltalk.KeyedPubSubBase);
  165. smalltalk.addMethod(
  166. "_run",
  167. smalltalk.method({
  168. selector: "run",
  169. fn: function (){
  170. var self=this;
  171. var $1,$2;
  172. var needsClean;
  173. needsClean=false;
  174. smalltalk.send(self,"_do_",[(function(each){
  175. $1=smalltalk.send(each,"_isFlagged",[]);
  176. if(smalltalk.assert($1)){
  177. smalltalk.send(each,"_run",[]);
  178. $2=smalltalk.send(each,"_isEnabled",[]);
  179. if(! smalltalk.assert($2)){
  180. needsClean=true;
  181. return needsClean;
  182. };
  183. };
  184. })]);
  185. if(smalltalk.assert(needsClean)){
  186. smalltalk.send(self,"_clean",[]);
  187. };
  188. return self}
  189. }),
  190. smalltalk.KeyedPubSubBase);
  191. smalltalk.addMethod(
  192. "_subscriptionKey_block_",
  193. smalltalk.method({
  194. selector: "subscriptionKey:block:",
  195. fn: function (key,aBlock){
  196. var self=this;
  197. smalltalk.send(self,"_subclassReponsibility",[]);
  198. return self}
  199. }),
  200. smalltalk.KeyedPubSubBase);
  201. smalltalk.addClass('ListKeyedPubSubBase', smalltalk.KeyedPubSubBase, [], 'Trapped-Backend');
  202. smalltalk.addMethod(
  203. "_subscriptionKey_block_",
  204. smalltalk.method({
  205. selector: "subscriptionKey:block:",
  206. fn: function (key,aBlock){
  207. var self=this;
  208. var $2,$3,$1;
  209. $2=smalltalk.send((smalltalk.ListKeyedSubscription || ListKeyedSubscription),"_new",[]);
  210. smalltalk.send($2,"_key_block_",[key,aBlock]);
  211. $3=smalltalk.send($2,"_yourself",[]);
  212. $1=$3;
  213. return $1;
  214. }
  215. }),
  216. smalltalk.ListKeyedPubSubBase);
  217. smalltalk.addClass('SimpleListKeyedPubSub', smalltalk.ListKeyedPubSubBase, ['queue'], 'Trapped-Backend');
  218. smalltalk.addMethod(
  219. "_add_",
  220. smalltalk.method({
  221. selector: "add:",
  222. fn: function (aSubscription){
  223. var self=this;
  224. smalltalk.send(self["@queue"],"_add_",[aSubscription]);
  225. return self}
  226. }),
  227. smalltalk.SimpleListKeyedPubSub);
  228. smalltalk.addMethod(
  229. "_clean",
  230. smalltalk.method({
  231. selector: "clean",
  232. fn: function (){
  233. var self=this;
  234. self["@queue"]=smalltalk.send(self["@queue"],"_select_",[(function(each){
  235. return smalltalk.send(each,"_isEnabled",[]);
  236. })]);
  237. return self}
  238. }),
  239. smalltalk.SimpleListKeyedPubSub);
  240. smalltalk.addMethod(
  241. "_do_",
  242. smalltalk.method({
  243. selector: "do:",
  244. fn: function (aBlock){
  245. var self=this;
  246. smalltalk.send(self["@queue"],"_do_",[aBlock]);
  247. return self}
  248. }),
  249. smalltalk.SimpleListKeyedPubSub);
  250. smalltalk.addMethod(
  251. "_initialize",
  252. smalltalk.method({
  253. selector: "initialize",
  254. fn: function (){
  255. var self=this;
  256. smalltalk.send(self,"_initialize",[],smalltalk.ListKeyedPubSubBase);
  257. self["@queue"]=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection),"_new",[]);
  258. return self}
  259. }),
  260. smalltalk.SimpleListKeyedPubSub);
  261. smalltalk.addClass('KeyedPubSubUnsubscribe', smalltalk.Error, [], 'Trapped-Backend');
  262. smalltalk.addClass('KeyedSubscriptionBase', smalltalk.Object, ['key', 'actionBlock', 'flagged'], 'Trapped-Backend');
  263. smalltalk.addMethod(
  264. "_accepts_",
  265. smalltalk.method({
  266. selector: "accepts:",
  267. fn: function (aKey){
  268. var self=this;
  269. smalltalk.send(self,"_subclassResponsibility",[]);
  270. return self}
  271. }),
  272. smalltalk.KeyedSubscriptionBase);
  273. smalltalk.addMethod(
  274. "_flag",
  275. smalltalk.method({
  276. selector: "flag",
  277. fn: function (){
  278. var self=this;
  279. self["@flagged"]=true;
  280. return self}
  281. }),
  282. smalltalk.KeyedSubscriptionBase);
  283. smalltalk.addMethod(
  284. "_initialize",
  285. smalltalk.method({
  286. selector: "initialize",
  287. fn: function (){
  288. var self=this;
  289. smalltalk.send(self,"_initialize",[],smalltalk.Object);
  290. self["@key"]=nil;
  291. self["@actionBlock"]=nil;
  292. self["@flagged"]=false;
  293. return self}
  294. }),
  295. smalltalk.KeyedSubscriptionBase);
  296. smalltalk.addMethod(
  297. "_isEnabled",
  298. smalltalk.method({
  299. selector: "isEnabled",
  300. fn: function (){
  301. var self=this;
  302. var $1;
  303. $1=smalltalk.send(self["@actionBlock"],"_notNil",[]);
  304. return $1;
  305. }
  306. }),
  307. smalltalk.KeyedSubscriptionBase);
  308. smalltalk.addMethod(
  309. "_isFlagged",
  310. smalltalk.method({
  311. selector: "isFlagged",
  312. fn: function (){
  313. var self=this;
  314. return self["@flagged"];
  315. }
  316. }),
  317. smalltalk.KeyedSubscriptionBase);
  318. smalltalk.addMethod(
  319. "_key_block_",
  320. smalltalk.method({
  321. selector: "key:block:",
  322. fn: function (anObject,aBlock){
  323. var self=this;
  324. self["@key"]=anObject;
  325. self["@actionBlock"]=aBlock;
  326. return self}
  327. }),
  328. smalltalk.KeyedSubscriptionBase);
  329. smalltalk.addMethod(
  330. "_run",
  331. smalltalk.method({
  332. selector: "run",
  333. fn: function (){
  334. var self=this;
  335. smalltalk.send((function(){
  336. return smalltalk.send((function(){
  337. return smalltalk.send(self["@actionBlock"],"_value",[]);
  338. }),"_ensure_",[(function(){
  339. self["@flagged"]=false;
  340. return self["@flagged"];
  341. })]);
  342. }),"_on_do_",[(smalltalk.KeyedPubSubUnsubscribe || KeyedPubSubUnsubscribe),(function(){
  343. self["@actionBlock"]=nil;
  344. return self["@actionBlock"];
  345. })]);
  346. return self}
  347. }),
  348. smalltalk.KeyedSubscriptionBase);
  349. smalltalk.addClass('ListKeyedSubscription', smalltalk.KeyedSubscriptionBase, [], 'Trapped-Backend');
  350. smalltalk.addMethod(
  351. "_accepts_",
  352. smalltalk.method({
  353. selector: "accepts:",
  354. fn: function (aKey){
  355. var self=this;
  356. var $1;
  357. $1=smalltalk.send(smalltalk.send(smalltalk.send(aKey,"_size",[]),"__lt_eq",[smalltalk.send(self["@key"],"_size",[])]),"_and_",[(function(){
  358. return smalltalk.send(aKey,"__eq",[smalltalk.send(self["@key"],"_copyFrom_to_",[(1),smalltalk.send(aKey,"_size",[])])]);
  359. })]);
  360. return $1;
  361. }
  362. }),
  363. smalltalk.ListKeyedSubscription);
  364. smalltalk.addClass('ListKeyedEntity', smalltalk.Object, ['dispatcher', 'payload'], 'Trapped-Backend');
  365. smalltalk.addMethod(
  366. "_dispatcher",
  367. smalltalk.method({
  368. selector: "dispatcher",
  369. fn: function (){
  370. var self=this;
  371. return self["@dispatcher"];
  372. }
  373. }),
  374. smalltalk.ListKeyedEntity);
  375. smalltalk.addMethod(
  376. "_dispatcher_",
  377. smalltalk.method({
  378. selector: "dispatcher:",
  379. fn: function (aDispatcher){
  380. var self=this;
  381. self["@dispatcher"]=aDispatcher;
  382. return self}
  383. }),
  384. smalltalk.ListKeyedEntity);
  385. smalltalk.addMethod(
  386. "_model_",
  387. smalltalk.method({
  388. selector: "model:",
  389. fn: function (anObject){
  390. var self=this;
  391. self["@payload"]=anObject;
  392. smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_changed_",[[]]);
  393. return self}
  394. }),
  395. smalltalk.ListKeyedEntity);
  396. smalltalk.addMethod(
  397. "_watch_do_",
  398. smalltalk.method({
  399. selector: "watch:do:",
  400. fn: function (path,aBlock){
  401. var self=this;
  402. smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_on_hook_",[path,(function(){
  403. return smalltalk.send(self,"_read_do_",[path,aBlock]);
  404. })]);
  405. return self}
  406. }),
  407. smalltalk.ListKeyedEntity);
  408. smalltalk.addClass('ListKeyedDirectEntity', smalltalk.ListKeyedEntity, [], 'Trapped-Backend');
  409. smalltalk.addMethod(
  410. "_modify_do_",
  411. smalltalk.method({
  412. selector: "modify:do:",
  413. fn: function (path,aBlock){
  414. var self=this;
  415. var newValue;
  416. var eavModel;
  417. eavModel=smalltalk.send(path,"_asEavModel",[]);
  418. newValue=smalltalk.send(aBlock,"_value_",[smalltalk.send(eavModel,"_on_",[self["@payload"]])]);
  419. smalltalk.send((function(){
  420. return smalltalk.send(eavModel,"_on_put_",[self["@payload"],newValue]);
  421. }),"_ensure_",[(function(){
  422. return smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_changed_",[path]);
  423. })]);
  424. return self}
  425. }),
  426. smalltalk.ListKeyedDirectEntity);
  427. smalltalk.addMethod(
  428. "_read_do_",
  429. smalltalk.method({
  430. selector: "read:do:",
  431. fn: function (path,aBlock){
  432. var self=this;
  433. var eavModel;
  434. eavModel=smalltalk.send(path,"_asEavModel",[]);
  435. smalltalk.send(aBlock,"_value_",[smalltalk.send(eavModel,"_on_",[self["@payload"]])]);
  436. return self}
  437. }),
  438. smalltalk.ListKeyedDirectEntity);
  439. smalltalk.addClass('ListKeyedIsolatedEntity', smalltalk.ListKeyedEntity, [], 'Trapped-Backend');
  440. smalltalk.addMethod(
  441. "_model_",
  442. smalltalk.method({
  443. selector: "model:",
  444. fn: function (anObject){
  445. var self=this;
  446. smalltalk.send(self,"_model_",[smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[anObject])],smalltalk.ListKeyedEntity);
  447. return self}
  448. }),
  449. smalltalk.ListKeyedIsolatedEntity);
  450. smalltalk.addMethod(
  451. "_modify_do_",
  452. smalltalk.method({
  453. selector: "modify:do:",
  454. fn: function (path,aBlock){
  455. var self=this;
  456. var eavModel;
  457. eavModel=smalltalk.send(smalltalk.send([smalltalk.symbolFor("root")],"__comma",[path]),"_asEavModel",[]);
  458. smalltalk.send((function(){
  459. return smalltalk.send(self["@payload"],"_model_modify_",[eavModel,aBlock]);
  460. }),"_ensure_",[(function(){
  461. return smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_changed_",[path]);
  462. })]);
  463. return self}
  464. }),
  465. smalltalk.ListKeyedIsolatedEntity);
  466. smalltalk.addMethod(
  467. "_read_do_",
  468. smalltalk.method({
  469. selector: "read:do:",
  470. fn: function (path,aBlock){
  471. var self=this;
  472. var eavModel;
  473. eavModel=smalltalk.send(smalltalk.send([smalltalk.symbolFor("root")],"__comma",[path]),"_asEavModel",[]);
  474. smalltalk.send(self["@payload"],"_model_read_",[eavModel,aBlock]);
  475. return self}
  476. }),
  477. smalltalk.ListKeyedIsolatedEntity);
  478. smalltalk.addMethod(
  479. "_reverseTrapAt_",
  480. smalltalk.method({
  481. selector: "reverseTrapAt:",
  482. fn: function (anObject){
  483. var self=this;
  484. return nil;
  485. }
  486. }),
  487. smalltalk.Object);
  488. smalltalk.addMethod(
  489. "_reverseTrapAt_put_",
  490. smalltalk.method({
  491. selector: "reverseTrapAt:put:",
  492. fn: function (anObject,value){
  493. var self=this;
  494. smalltalk.send(self,"_error_",[smalltalk.send(smalltalk.send("Trapped cannot put at ","__comma",[smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[])]),"__comma",[" type key."])]);
  495. return self}
  496. }),
  497. smalltalk.Object);
  498. smalltalk.addMethod(
  499. "_asEavModel",
  500. smalltalk.method({
  501. selector: "asEavModel",
  502. fn: function (){
  503. var self=this;
  504. var $1;
  505. var model;
  506. model=smalltalk.send((smalltalk.EavModel || EavModel),"_new",[]);
  507. smalltalk.send(model,"_getBlock_",[(function(anObject){
  508. return smalltalk.send(self,"_inject_into_",[anObject,(function(soFar,segment){
  509. if(($receiver = soFar) == nil || $receiver == undefined){
  510. return soFar;
  511. } else {
  512. return smalltalk.send(segment,"_reverseTrapAt_",[soFar]);
  513. };
  514. })]);
  515. })]);
  516. $1=smalltalk.send(self,"_isEmpty",[]);
  517. if(! smalltalk.assert($1)){
  518. smalltalk.send(model,"_putBlock_",[(function(anObject,value){
  519. var penultimate;
  520. penultimate=smalltalk.send(smalltalk.send(self,"_allButLast",[]),"_inject_into_",[anObject,(function(soFar,segment){
  521. if(($receiver = soFar) == nil || $receiver == undefined){
  522. return soFar;
  523. } else {
  524. return smalltalk.send(segment,"_reverseTrapAt_",[soFar]);
  525. };
  526. })]);
  527. penultimate;
  528. return smalltalk.send(smalltalk.send(self,"_last",[]),"_reverseTrapAt_put_",[penultimate,value]);
  529. })]);
  530. };
  531. return model;
  532. }
  533. }),
  534. smalltalk.SequenceableCollection);
  535. smalltalk.addMethod(
  536. "_reverseTrapAt_",
  537. smalltalk.method({
  538. selector: "reverseTrapAt:",
  539. fn: function (anObject){
  540. var self=this;
  541. var $1;
  542. $1=smalltalk.send(anObject,"_at_ifAbsent_",[self,(function(){
  543. return nil;
  544. })]);
  545. return $1;
  546. }
  547. }),
  548. smalltalk.String);
  549. smalltalk.addMethod(
  550. "_reverseTrapAt_put_",
  551. smalltalk.method({
  552. selector: "reverseTrapAt:put:",
  553. fn: function (anObject,value){
  554. var self=this;
  555. var $1;
  556. $1=smalltalk.send(anObject,"_at_put_",[self,value]);
  557. return $1;
  558. }
  559. }),
  560. smalltalk.String);
  561. smalltalk.addMethod(
  562. "_reverseTrapAt_",
  563. smalltalk.method({
  564. selector: "reverseTrapAt:",
  565. fn: function (anObject){
  566. var self=this;
  567. var $1;
  568. var $early={};
  569. try {
  570. $1=smalltalk.send((function(){
  571. return smalltalk.send(anObject,"_perform_",[self]);
  572. }),"_on_do_",[(smalltalk.MessageNotUnderstood || MessageNotUnderstood),(function(){
  573. throw $early=[nil];
  574. })]);
  575. return $1;
  576. }
  577. catch(e) {if(e===$early)return e[0]; throw e}
  578. }
  579. }),
  580. smalltalk.Symbol);
  581. smalltalk.addMethod(
  582. "_reverseTrapAt_put_",
  583. smalltalk.method({
  584. selector: "reverseTrapAt:put:",
  585. fn: function (anObject,value){
  586. var self=this;
  587. var $1;
  588. $1=smalltalk.send(anObject,"_perform_withArguments_",[smalltalk.send(smalltalk.send(self,"__comma",[":"]),"_asSymbol",[]),[value]]);
  589. return $1;
  590. }
  591. }),
  592. smalltalk.Symbol);
  593. smalltalk.addMethod(
  594. "_reverseTrapAt_",
  595. smalltalk.method({
  596. selector: "reverseTrapAt:",
  597. fn: function (anObject){
  598. var self=this;
  599. var $1;
  600. $1=smalltalk.send(anObject,"_at_ifAbsent_",[self,(function(){
  601. return nil;
  602. })]);
  603. return $1;
  604. }
  605. }),
  606. smalltalk.Number);
  607. smalltalk.addMethod(
  608. "_reverseTrapAt_put_",
  609. smalltalk.method({
  610. selector: "reverseTrapAt:put:",
  611. fn: function (anObject,value){
  612. var self=this;
  613. var $1;
  614. $1=smalltalk.send(anObject,"_at_put_",[self,value]);
  615. return $1;
  616. }
  617. }),
  618. smalltalk.Number);