Kernel-Exceptions.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. smalltalk.addPackage('Kernel-Exceptions', {});
  2. smalltalk.addClass('Error', smalltalk.Object, ['messageText'], 'Kernel-Exceptions');
  3. smalltalk.addMethod(
  4. "_context",
  5. smalltalk.method({
  6. selector: "context",
  7. category: 'accessing',
  8. fn: function () {
  9. var self=this;
  10. return self.context;
  11. return self;},
  12. args: [],
  13. source: "context\x0a\x09<return self.context>",
  14. messageSends: [],
  15. referencedClasses: []
  16. }),
  17. smalltalk.Error);
  18. smalltalk.addMethod(
  19. "_isSmalltalkError",
  20. smalltalk.method({
  21. selector: "isSmalltalkError",
  22. category: 'testing',
  23. fn: function () {
  24. var self=this;
  25. return self.smalltalkError === true;
  26. return self;},
  27. args: [],
  28. source: "isSmalltalkError\x0a\x09<return self.smalltalkError === true>",
  29. messageSends: [],
  30. referencedClasses: []
  31. }),
  32. smalltalk.Error);
  33. smalltalk.addMethod(
  34. "_jsStack",
  35. smalltalk.method({
  36. selector: "jsStack",
  37. category: 'accessing',
  38. fn: function () {
  39. var self=this;
  40. return self.stack;
  41. return self;},
  42. args: [],
  43. source: "jsStack\x0a\x09<return self.stack>",
  44. messageSends: [],
  45. referencedClasses: []
  46. }),
  47. smalltalk.Error);
  48. smalltalk.addMethod(
  49. "_messageText",
  50. smalltalk.method({
  51. selector: "messageText",
  52. category: 'accessing',
  53. fn: function () {
  54. var self=this;
  55. return self['@messageText'];
  56. return self;},
  57. args: [],
  58. source: "messageText\x0a\x09^messageText",
  59. messageSends: [],
  60. referencedClasses: []
  61. }),
  62. smalltalk.Error);
  63. smalltalk.addMethod(
  64. "_messageText_",
  65. smalltalk.method({
  66. selector: "messageText:",
  67. category: 'accessing',
  68. fn: function (aString) {
  69. var self=this;
  70. (self['@messageText']=aString);
  71. return self;},
  72. args: ["aString"],
  73. source: "messageText: aString\x0a\x09messageText := aString",
  74. messageSends: [],
  75. referencedClasses: []
  76. }),
  77. smalltalk.Error);
  78. smalltalk.addMethod(
  79. "_signal",
  80. smalltalk.method({
  81. selector: "signal",
  82. category: 'signaling',
  83. fn: function () {
  84. var self=this;
  85. self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
  86. return self;},
  87. args: [],
  88. source: "signal\x0a\x09<self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self)>",
  89. messageSends: [],
  90. referencedClasses: []
  91. }),
  92. smalltalk.Error);
  93. smalltalk.addMethod(
  94. "_signal_",
  95. smalltalk.method({
  96. selector: "signal:",
  97. category: 'signaling',
  98. fn: function (aString) {
  99. var self=this;
  100. smalltalk.send(self, "_messageText_", [aString]);
  101. smalltalk.send(self, "_signal", []);
  102. return self;},
  103. args: ["aString"],
  104. source: "signal: aString\x0a\x09self messageText: aString.\x0a\x09self signal",
  105. messageSends: ["messageText:", "signal"],
  106. referencedClasses: []
  107. }),
  108. smalltalk.Error);
  109. smalltalk.addMethod(
  110. "_signal",
  111. smalltalk.method({
  112. selector: "signal",
  113. category: 'instance creation',
  114. fn: function () {
  115. var self=this;
  116. return smalltalk.send(smalltalk.send(self, "_new", []), "_signal", []);
  117. return self;},
  118. args: [],
  119. source: "signal\x0a\x09^self new signal",
  120. messageSends: ["signal", "new"],
  121. referencedClasses: []
  122. }),
  123. smalltalk.Error.klass);
  124. smalltalk.addMethod(
  125. "_signal_",
  126. smalltalk.method({
  127. selector: "signal:",
  128. category: 'instance creation',
  129. fn: function (aString) {
  130. var self=this;
  131. return smalltalk.send(smalltalk.send(self, "_new", []), "_signal_", [aString]);
  132. return self;},
  133. args: ["aString"],
  134. source: "signal: aString\x0a\x09 ^self new\x0a\x09\x09signal: aString",
  135. messageSends: ["signal:", "new"],
  136. referencedClasses: []
  137. }),
  138. smalltalk.Error.klass);
  139. smalltalk.addClass('Continuation', smalltalk.Error, ['context'], 'Kernel-Exceptions');
  140. smalltalk.addMethod(
  141. "_initializeFromContext_",
  142. smalltalk.method({
  143. selector: "initializeFromContext:",
  144. category: 'initialization',
  145. fn: function (aContext) {
  146. var self=this;
  147. smalltalk.send(self, "_initialize", [], smalltalk.Continuation.superclass || nil);
  148. (self['@context']=aContext);
  149. smalltalk.send(self, "_basicAt_put_", ["cc", true]);
  150. return self;},
  151. args: ["aContext"],
  152. source: "initializeFromContext: aContext\x0a\x09\x22Add a cc flag to the error object so Smalltalk knows how to handle it\x22\x0a\x0a\x09super initialize.\x0a\x09context := aContext.\x0a\x09self basicAt: 'cc' put: true",
  153. messageSends: ["initialize", "basicAt:put:"],
  154. referencedClasses: []
  155. }),
  156. smalltalk.Continuation);
  157. smalltalk.addMethod(
  158. "_restore",
  159. smalltalk.method({
  160. selector: "restore",
  161. category: 'initialization',
  162. fn: function () {
  163. var self=this;
  164. smalltalk.send(self['@context'], "_resume", []);
  165. return self;},
  166. args: [],
  167. source: "restore\x0a\x09context resume",
  168. messageSends: ["resume"],
  169. referencedClasses: []
  170. }),
  171. smalltalk.Continuation);
  172. smalltalk.addMethod(
  173. "_value_",
  174. smalltalk.method({
  175. selector: "value:",
  176. category: 'initialization',
  177. fn: function (aBlock) {
  178. var self=this;
  179. smalltalk.send(aBlock, "_value_", [self]);
  180. smalltalk.send(self, "_signal", []);
  181. return self;},
  182. args: ["aBlock"],
  183. source: "value: aBlock\x0a\x09aBlock value: self.\x0a\x09self signal",
  184. messageSends: ["value:", "signal"],
  185. referencedClasses: []
  186. }),
  187. smalltalk.Continuation);
  188. smalltalk.addMethod(
  189. "_currentDo_",
  190. smalltalk.method({
  191. selector: "currentDo:",
  192. category: 'instance creation',
  193. fn: function (aBlock) {
  194. var self=this;
  195. return (function($rec){smalltalk.send($rec, "_initializeWithContext_", [smalltalk.send((smalltalk.getThisContext()), "_home", [])]);return smalltalk.send($rec, "_value_", [aBlock]);})(smalltalk.send(self, "_new", []));
  196. return self;},
  197. args: ["aBlock"],
  198. source: "currentDo: aBlock\x0a\x09^ self new \x0a\x09\x09initializeWithContext: thisContext home;\x0a\x09\x09value: aBlock",
  199. messageSends: ["initializeWithContext:", "home", "value:", "new"],
  200. referencedClasses: []
  201. }),
  202. smalltalk.Continuation.klass);
  203. smalltalk.addClass('MessageNotUnderstood', smalltalk.Error, ['message', 'receiver'], 'Kernel-Exceptions');
  204. smalltalk.addMethod(
  205. "_message",
  206. smalltalk.method({
  207. selector: "message",
  208. category: 'accessing',
  209. fn: function () {
  210. var self=this;
  211. return self['@message'];
  212. return self;},
  213. args: [],
  214. source: "message\x0a\x09^message",
  215. messageSends: [],
  216. referencedClasses: []
  217. }),
  218. smalltalk.MessageNotUnderstood);
  219. smalltalk.addMethod(
  220. "_message_",
  221. smalltalk.method({
  222. selector: "message:",
  223. category: 'accessing',
  224. fn: function (aMessage) {
  225. var self=this;
  226. (self['@message']=aMessage);
  227. return self;},
  228. args: ["aMessage"],
  229. source: "message: aMessage\x0a\x09message := aMessage",
  230. messageSends: [],
  231. referencedClasses: []
  232. }),
  233. smalltalk.MessageNotUnderstood);
  234. smalltalk.addMethod(
  235. "_messageText",
  236. smalltalk.method({
  237. selector: "messageText",
  238. category: 'accessing',
  239. fn: function () {
  240. var self=this;
  241. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_asString", []), "__comma", [" does not understand #"]), "__comma", [smalltalk.send(smalltalk.send(self, "_message", []), "_selector", [])]);
  242. return self;},
  243. args: [],
  244. source: "messageText\x0a\x09^self receiver asString, ' does not understand #', self message selector",
  245. messageSends: [",", "asString", "receiver", "selector", "message"],
  246. referencedClasses: []
  247. }),
  248. smalltalk.MessageNotUnderstood);
  249. smalltalk.addMethod(
  250. "_receiver",
  251. smalltalk.method({
  252. selector: "receiver",
  253. category: 'accessing',
  254. fn: function () {
  255. var self=this;
  256. return self['@receiver'];
  257. return self;},
  258. args: [],
  259. source: "receiver\x0a\x09^receiver",
  260. messageSends: [],
  261. referencedClasses: []
  262. }),
  263. smalltalk.MessageNotUnderstood);
  264. smalltalk.addMethod(
  265. "_receiver_",
  266. smalltalk.method({
  267. selector: "receiver:",
  268. category: 'accessing',
  269. fn: function (anObject) {
  270. var self=this;
  271. (self['@receiver']=anObject);
  272. return self;},
  273. args: ["anObject"],
  274. source: "receiver: anObject\x0a\x09receiver := anObject",
  275. messageSends: [],
  276. referencedClasses: []
  277. }),
  278. smalltalk.MessageNotUnderstood);
  279. smalltalk.addClass('ErrorHandler', smalltalk.Object, [], 'Kernel-Exceptions');
  280. smalltalk.addMethod(
  281. "_handleError_",
  282. smalltalk.method({
  283. selector: "handleError:",
  284. category: 'error handling',
  285. fn: function (anError) {
  286. var self=this;
  287. (($receiver = smalltalk.send(anError, "_context", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logErrorContext_", [smalltalk.send(anError, "_context", [])]);})() : nil;
  288. smalltalk.send(self, "_logError_", [anError]);
  289. return self;},
  290. args: ["anError"],
  291. source: "handleError: anError\x0a\x09anError context ifNotNil: [self logErrorContext: anError context].\x0a\x09self logError: anError",
  292. messageSends: ["ifNotNil:", "context", "logErrorContext:", "logError:"],
  293. referencedClasses: []
  294. }),
  295. smalltalk.ErrorHandler);
  296. smalltalk.addMethod(
  297. "_log_",
  298. smalltalk.method({
  299. selector: "log:",
  300. category: 'private',
  301. fn: function (aString) {
  302. var self=this;
  303. smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [aString]);
  304. return self;},
  305. args: ["aString"],
  306. source: "log: aString\x0a\x09console log: aString",
  307. messageSends: ["log:"],
  308. referencedClasses: []
  309. }),
  310. smalltalk.ErrorHandler);
  311. smalltalk.addMethod(
  312. "_logContext_",
  313. smalltalk.method({
  314. selector: "logContext:",
  315. category: 'private',
  316. fn: function (aContext) {
  317. var self=this;
  318. (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;
  319. smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [">>"]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
  320. return self;},
  321. args: ["aContext"],
  322. source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home].\x0a\x09self log: aContext receiver asString, '>>', aContext selector",
  323. messageSends: ["ifNotNil:", "home", "logContext:", "log:", ",", "asString", "receiver", "selector"],
  324. referencedClasses: []
  325. }),
  326. smalltalk.ErrorHandler);
  327. smalltalk.addMethod(
  328. "_logError_",
  329. smalltalk.method({
  330. selector: "logError:",
  331. category: 'private',
  332. fn: function (anError) {
  333. var self=this;
  334. smalltalk.send(self, "_log_", [smalltalk.send(anError, "_messageText", [])]);
  335. return self;},
  336. args: ["anError"],
  337. source: "logError: anError\x0a\x09self log: anError messageText",
  338. messageSends: ["log:", "messageText"],
  339. referencedClasses: []
  340. }),
  341. smalltalk.ErrorHandler);
  342. smalltalk.addMethod(
  343. "_logErrorContext_",
  344. smalltalk.method({
  345. selector: "logErrorContext:",
  346. category: 'private',
  347. fn: function (aContext) {
  348. var self=this;
  349. (($receiver = aContext) != nil && $receiver != undefined) ? (function(){return (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;})() : nil;
  350. return self;},
  351. args: ["aContext"],
  352. source: "logErrorContext: aContext\x0a\x09aContext ifNotNil: [\x0a\x09\x09aContext home ifNotNil: [\x0a\x09\x09\x09self logContext: aContext home]]",
  353. messageSends: ["ifNotNil:", "home", "logContext:"],
  354. referencedClasses: []
  355. }),
  356. smalltalk.ErrorHandler);
  357. smalltalk.ErrorHandler.klass.iVarNames = ['current'];
  358. smalltalk.addMethod(
  359. "_current",
  360. smalltalk.method({
  361. selector: "current",
  362. category: 'accessing',
  363. fn: function () {
  364. var self=this;
  365. return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", []));})() : $receiver;
  366. return self;},
  367. args: [],
  368. source: "current\x0a\x09^current ifNil: [current := self new]",
  369. messageSends: ["ifNil:", "new"],
  370. referencedClasses: []
  371. }),
  372. smalltalk.ErrorHandler.klass);
  373. smalltalk.addMethod(
  374. "_initialize",
  375. smalltalk.method({
  376. selector: "initialize",
  377. category: 'initialization',
  378. fn: function () {
  379. var self=this;
  380. smalltalk.send(self, "_register", []);
  381. return self;},
  382. args: [],
  383. source: "initialize\x0a\x09self register",
  384. messageSends: ["register"],
  385. referencedClasses: []
  386. }),
  387. smalltalk.ErrorHandler.klass);
  388. smalltalk.addMethod(
  389. "_register",
  390. smalltalk.method({
  391. selector: "register",
  392. category: 'initialization',
  393. fn: function () {
  394. var self=this;
  395. smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_setCurrent_", [smalltalk.send(self, "_new", [])]);
  396. return self;},
  397. args: [],
  398. source: "register\x0a\x09ErrorHandler setCurrent: self new",
  399. messageSends: ["setCurrent:", "new"],
  400. referencedClasses: ["ErrorHandler"]
  401. }),
  402. smalltalk.ErrorHandler.klass);
  403. smalltalk.addMethod(
  404. "_setCurrent_",
  405. smalltalk.method({
  406. selector: "setCurrent:",
  407. category: 'accessing',
  408. fn: function (anHandler) {
  409. var self=this;
  410. (self['@current']=anHandler);
  411. return self;},
  412. args: ["anHandler"],
  413. source: "setCurrent: anHandler\x0a\x09current := anHandler",
  414. messageSends: [],
  415. referencedClasses: []
  416. }),
  417. smalltalk.ErrorHandler.klass);