mdbe 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +53 -0
  4. data/app.rb +182 -0
  5. data/bin/mdbe +5 -0
  6. data/config.ru +2 -0
  7. data/environment.rb +8 -0
  8. data/lib/mdbe.rb +39 -0
  9. data/lib/mdbe/action_controller_debug_patch.rb +12 -0
  10. data/lib/mdbe/code_evaluation.rb +46 -0
  11. data/lib/mdbe/database_views.rb +24 -0
  12. data/lib/mdbe/database_views/abstract_dictionary.rb +69 -0
  13. data/lib/mdbe/database_views/abstract_exception.rb +25 -0
  14. data/lib/mdbe/database_views/array.rb +28 -0
  15. data/lib/mdbe/database_views/boolean.rb +12 -0
  16. data/lib/mdbe/database_views/class.rb +46 -0
  17. data/lib/mdbe/database_views/exception.rb +3 -0
  18. data/lib/mdbe/database_views/execblock.rb +5 -0
  19. data/lib/mdbe/database_views/fixnum.rb +5 -0
  20. data/lib/mdbe/database_views/float.rb +5 -0
  21. data/lib/mdbe/database_views/globals.rb +2 -0
  22. data/lib/mdbe/database_views/gsnmethod.rb +29 -0
  23. data/lib/mdbe/database_views/hash.rb +5 -0
  24. data/lib/mdbe/database_views/maglev_record.rb +42 -0
  25. data/lib/mdbe/database_views/module.rb +103 -0
  26. data/lib/mdbe/database_views/nilclass.rb +5 -0
  27. data/lib/mdbe/database_views/object.rb +80 -0
  28. data/lib/mdbe/database_views/proc.rb +3 -0
  29. data/lib/mdbe/database_views/repository.rb +3 -0
  30. data/lib/mdbe/database_views/ruby_workspace.rb +5 -0
  31. data/lib/mdbe/database_views/smalltalk_classes.rb +34 -0
  32. data/lib/mdbe/database_views/smalltalk_classes.st +60 -0
  33. data/lib/mdbe/database_views/string.rb +31 -0
  34. data/lib/mdbe/database_views/symbol.rb +32 -0
  35. data/lib/mdbe/database_views/system.rb +61 -0
  36. data/lib/mdbe/database_views/thread.rb +101 -0
  37. data/lib/mdbe/debug_server.rb +22 -0
  38. data/lib/mdbe/halt.rb +42 -0
  39. data/lib/mdbe/ruby_workspace.rb +29 -0
  40. data/lib/mdbe/version.rb +3 -0
  41. data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
  42. data/public/LICENSE +35 -0
  43. data/public/amber/CHANGELOG +65 -0
  44. data/public/amber/LICENSE +22 -0
  45. data/public/amber/Makefile +53 -0
  46. data/public/amber/README.md +30 -0
  47. data/public/amber/bin/amber +3 -0
  48. data/public/amber/bin/amberc +352 -0
  49. data/public/amber/bin/nodecompile.js +33 -0
  50. data/public/amber/bin/server +3 -0
  51. data/public/amber/bin/server.bat +3 -0
  52. data/public/amber/css/amber-normalize.css +468 -0
  53. data/public/amber/css/amber-normalize.less +501 -0
  54. data/public/amber/css/amber.css +539 -0
  55. data/public/amber/css/documentation.css +84 -0
  56. data/public/amber/css/profstef.css +75 -0
  57. data/public/amber/css/style.css +313 -0
  58. data/public/amber/documentation.html +37 -0
  59. data/public/amber/examples/Makefile +23 -0
  60. data/public/amber/examples/README +4 -0
  61. data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
  62. data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
  63. data/public/amber/examples/android/helloamber/Makefile +56 -0
  64. data/public/amber/examples/android/helloamber/README.md +80 -0
  65. data/public/amber/examples/android/helloamber/ant.properties +17 -0
  66. data/public/amber/examples/android/helloamber/assets/index.html +15 -0
  67. data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
  68. data/public/amber/examples/android/helloamber/build.xml +83 -0
  69. data/public/amber/examples/android/helloamber/local.properties +10 -0
  70. data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
  71. data/public/amber/examples/android/helloamber/project.properties +14 -0
  72. data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
  73. data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
  74. data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
  75. data/public/amber/examples/myproject/index.html +16 -0
  76. data/public/amber/examples/nodejs/README +9 -0
  77. data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
  78. data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
  79. data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
  80. data/public/amber/examples/nodejs/hello/Hello.st +9 -0
  81. data/public/amber/examples/nodejs/hello/Makefile +8 -0
  82. data/public/amber/examples/nodejs/hello/README +13 -0
  83. data/public/amber/examples/nodejs/hello/hello +1 -0
  84. data/public/amber/examples/nodejs/meta/Makefile +8 -0
  85. data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
  86. data/public/amber/examples/nodejs/meta/meta +1 -0
  87. data/public/amber/examples/nodejs/pystone/Makefile +8 -0
  88. data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
  89. data/public/amber/examples/nodejs/pystone/pystone +1 -0
  90. data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
  91. data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
  92. data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
  93. data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
  94. data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
  95. data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
  96. data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
  97. data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
  98. data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
  99. data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
  100. data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
  101. data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
  102. data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
  103. data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
  104. data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
  105. data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
  106. data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
  107. data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
  108. data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
  109. data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
  110. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
  111. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
  112. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
  113. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
  114. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
  115. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
  116. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
  117. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
  118. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
  119. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
  120. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
  121. data/public/amber/examples/presentation/index.html +17 -0
  122. data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
  123. data/public/amber/examples/presentation/js/Presentation.js +2712 -0
  124. data/public/amber/examples/presentation/st/Presentation.st +1996 -0
  125. data/public/amber/examples/trysmalltalk/index.html +18 -0
  126. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
  127. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
  128. data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
  129. data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
  130. data/public/amber/examples/twitterwall/index.html +35 -0
  131. data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
  132. data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
  133. data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
  134. data/public/amber/examples/webos/README +11 -0
  135. data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
  136. data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
  137. data/public/amber/examples/webos/eris/Eris.css +0 -0
  138. data/public/amber/examples/webos/eris/Eris.st +86 -0
  139. data/public/amber/examples/webos/eris/Makefile +37 -0
  140. data/public/amber/examples/webos/eris/README +3 -0
  141. data/public/amber/examples/webos/eris/appinfo.json +10 -0
  142. data/public/amber/examples/webos/eris/index.html +12 -0
  143. data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
  144. data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
  145. data/public/amber/examples/webos/helloamber/Makefile +38 -0
  146. data/public/amber/examples/webos/helloamber/README +5 -0
  147. data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
  148. data/public/amber/examples/webos/helloamber/index.html +12 -0
  149. data/public/amber/favicon.ico +0 -0
  150. data/public/amber/images/amber.png +0 -0
  151. data/public/amber/images/amber.svg +706 -0
  152. data/public/amber/images/amber_small.png +0 -0
  153. data/public/amber/images/off.amber.png +0 -0
  154. data/public/amber/images/off.png +0 -0
  155. data/public/amber/images/offHover.amber.png +0 -0
  156. data/public/amber/images/offHover.png +0 -0
  157. data/public/amber/images/presentation.png +0 -0
  158. data/public/amber/images/profstef.png +0 -0
  159. data/public/amber/images/sprite.amber.png +0 -0
  160. data/public/amber/images/sprite.png +0 -0
  161. data/public/amber/images/tinylogo.amber.png +0 -0
  162. data/public/amber/images/tinylogo.png +0 -0
  163. data/public/amber/images/twitterwall.png +0 -0
  164. data/public/amber/index.html +55 -0
  165. data/public/amber/js/Additional-Examples.deploy.js +15 -0
  166. data/public/amber/js/Additional-Examples.js +21 -0
  167. data/public/amber/js/Benchfib.deploy.js +132 -0
  168. data/public/amber/js/Benchfib.js +167 -0
  169. data/public/amber/js/Canvas.deploy.js +2446 -0
  170. data/public/amber/js/Canvas.js +3547 -0
  171. data/public/amber/js/Compiler-Tests.deploy.js +97 -0
  172. data/public/amber/js/Compiler-Tests.js +137 -0
  173. data/public/amber/js/Compiler.deploy.js +1877 -0
  174. data/public/amber/js/Compiler.js +2622 -0
  175. data/public/amber/js/Documentation.deploy.js +961 -0
  176. data/public/amber/js/Documentation.js +1376 -0
  177. data/public/amber/js/Examples.deploy.js +53 -0
  178. data/public/amber/js/Examples.js +73 -0
  179. data/public/amber/js/IDE.deploy.js +3557 -0
  180. data/public/amber/js/IDE.js +5002 -0
  181. data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
  182. data/public/amber/js/Kernel-Announcements.js +152 -0
  183. data/public/amber/js/Kernel-Classes.deploy.js +774 -0
  184. data/public/amber/js/Kernel-Classes.js +1095 -0
  185. data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
  186. data/public/amber/js/Kernel-Collections.js +4427 -0
  187. data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
  188. data/public/amber/js/Kernel-Exceptions.js +349 -0
  189. data/public/amber/js/Kernel-Methods.deploy.js +573 -0
  190. data/public/amber/js/Kernel-Methods.js +807 -0
  191. data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
  192. data/public/amber/js/Kernel-Objects.js +4107 -0
  193. data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
  194. data/public/amber/js/Kernel-Tests.js +2053 -0
  195. data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
  196. data/public/amber/js/Kernel-Transcript.js +202 -0
  197. data/public/amber/js/Maglev-Core.deploy.js +2996 -0
  198. data/public/amber/js/Maglev-Core.js +4246 -0
  199. data/public/amber/js/Maglev-Database-Explorer.deploy.js +4476 -0
  200. data/public/amber/js/Maglev-Database-Explorer.js +6232 -0
  201. data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
  202. data/public/amber/js/Maglev-Vendor.js +465 -0
  203. data/public/amber/js/README.md +5 -0
  204. data/public/amber/js/SUnit.deploy.js +351 -0
  205. data/public/amber/js/SUnit.js +501 -0
  206. data/public/amber/js/amber.js +273 -0
  207. data/public/amber/js/boot.js +602 -0
  208. data/public/amber/js/compat.js +22 -0
  209. data/public/amber/js/init.js +9 -0
  210. data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
  211. data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
  212. data/public/amber/js/lib/CodeMirror/amber.css +21 -0
  213. data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
  214. data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
  215. data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
  216. data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
  217. data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
  218. data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
  219. data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
  220. data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
  221. data/public/amber/js/lib/showdown.js +419 -0
  222. data/public/amber/js/parser.js +4222 -0
  223. data/public/amber/js/parser.pegjs +223 -0
  224. data/public/amber/learn.html +40 -0
  225. data/public/amber/repl/Makefile +8 -0
  226. data/public/amber/repl/REPL.js +124 -0
  227. data/public/amber/repl/REPL.st +56 -0
  228. data/public/amber/repl/amber.js +18085 -0
  229. data/public/amber/server/FileServer.st +576 -0
  230. data/public/amber/server/Makefile +8 -0
  231. data/public/amber/server/server.js +13049 -0
  232. data/public/amber/st/Benchfib.js +297 -0
  233. data/public/amber/st/Benchfib.st +124 -0
  234. data/public/amber/st/Canvas.st +968 -0
  235. data/public/amber/st/Compiler-Tests.st +471 -0
  236. data/public/amber/st/Compiler.st +1445 -0
  237. data/public/amber/st/Documentation.st +758 -0
  238. data/public/amber/st/Examples.js +100 -0
  239. data/public/amber/st/Examples.st +38 -0
  240. data/public/amber/st/IDE.st +2404 -0
  241. data/public/amber/st/Kernel-Announcements.st +61 -0
  242. data/public/amber/st/Kernel-Classes.st +462 -0
  243. data/public/amber/st/Kernel-Collections.st +1611 -0
  244. data/public/amber/st/Kernel-Exceptions.st +124 -0
  245. data/public/amber/st/Kernel-Methods.st +291 -0
  246. data/public/amber/st/Kernel-Objects.st +1587 -0
  247. data/public/amber/st/Kernel-Tests.st +953 -0
  248. data/public/amber/st/Kernel-Transcript.st +70 -0
  249. data/public/amber/st/Maglev-Core.st +1694 -0
  250. data/public/amber/st/Maglev-Database-Explorer.st +3148 -0
  251. data/public/amber/st/Maglev-Vendor.st +151 -0
  252. data/public/amber/st/Makefile +104 -0
  253. data/public/amber/st/README.md +4 -0
  254. data/public/amber/st/SUnit.st +172 -0
  255. data/public/css/bootstrap-combined.no-icons.min.css +731 -0
  256. data/public/css/bootstrap.css +6811 -0
  257. data/public/css/images/animated-overlay.gif +0 -0
  258. data/public/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  259. data/public/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  260. data/public/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
  261. data/public/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  262. data/public/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  263. data/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  264. data/public/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  265. data/public/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  266. data/public/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  267. data/public/css/images/ui-icons_222222_256x240.png +0 -0
  268. data/public/css/images/ui-icons_228ef1_256x240.png +0 -0
  269. data/public/css/images/ui-icons_ef8c08_256x240.png +0 -0
  270. data/public/css/images/ui-icons_ffd27a_256x240.png +0 -0
  271. data/public/css/images/ui-icons_ffffff_256x240.png +0 -0
  272. data/public/css/jquery-ui.min.css +5 -0
  273. data/public/css/smalltalk_code.css +42 -0
  274. data/public/css/style.css +210 -0
  275. data/public/images/bg_tile.png +0 -0
  276. data/public/images/maglev-logo.gif +0 -0
  277. data/public/images/mchammer.gif +0 -0
  278. data/public/images/rails_tiny.png +0 -0
  279. data/public/images/ruby.png +0 -0
  280. data/public/images/ruby_smalltalk_bridge.png +0 -0
  281. data/public/images/smalltalk.png +0 -0
  282. data/public/img/glyphicons-halflings.png +0 -0
  283. data/public/index.html +118 -0
  284. data/public/libs/bootstrap.min.js +7 -0
  285. data/public/libs/codemirror/CONTRIBUTING.md +72 -0
  286. data/public/libs/codemirror/LICENSE +23 -0
  287. data/public/libs/codemirror/README.md +11 -0
  288. data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
  289. data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
  290. data/public/libs/codemirror/addon/display/placeholder.js +54 -0
  291. data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
  292. data/public/libs/codemirror/addon/edit/closetag.js +86 -0
  293. data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
  294. data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
  295. data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
  296. data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
  297. data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
  298. data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
  299. data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
  300. data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
  301. data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
  302. data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
  303. data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
  304. data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
  305. data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
  306. data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
  307. data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
  308. data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
  309. data/public/libs/codemirror/addon/lint/lint.css +96 -0
  310. data/public/libs/codemirror/addon/lint/lint.js +197 -0
  311. data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
  312. data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
  313. data/public/libs/codemirror/addon/mode/overlay.js +59 -0
  314. data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
  315. data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
  316. data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
  317. data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
  318. data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
  319. data/public/libs/codemirror/addon/search/search.js +131 -0
  320. data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
  321. data/public/libs/codemirror/addon/selection/active-line.js +39 -0
  322. data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
  323. data/public/libs/codemirror/bin/compress +91 -0
  324. data/public/libs/codemirror/bin/lint +11 -0
  325. data/public/libs/codemirror/demo/activeline.html +70 -0
  326. data/public/libs/codemirror/demo/bidi.html +61 -0
  327. data/public/libs/codemirror/demo/btree.html +87 -0
  328. data/public/libs/codemirror/demo/buffers.html +98 -0
  329. data/public/libs/codemirror/demo/changemode.html +50 -0
  330. data/public/libs/codemirror/demo/closebrackets.html +63 -0
  331. data/public/libs/codemirror/demo/closetag.html +37 -0
  332. data/public/libs/codemirror/demo/complete.html +70 -0
  333. data/public/libs/codemirror/demo/emacs.html +60 -0
  334. data/public/libs/codemirror/demo/folding.html +69 -0
  335. data/public/libs/codemirror/demo/fullscreen.html +147 -0
  336. data/public/libs/codemirror/demo/html5complete.html +92 -0
  337. data/public/libs/codemirror/demo/indentwrap.html +49 -0
  338. data/public/libs/codemirror/demo/lint.html +90 -0
  339. data/public/libs/codemirror/demo/loadmode.html +40 -0
  340. data/public/libs/codemirror/demo/marker.html +59 -0
  341. data/public/libs/codemirror/demo/markselection.html +36 -0
  342. data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
  343. data/public/libs/codemirror/demo/multiplex.html +60 -0
  344. data/public/libs/codemirror/demo/mustache.html +59 -0
  345. data/public/libs/codemirror/demo/placeholder.html +36 -0
  346. data/public/libs/codemirror/demo/preview.html +76 -0
  347. data/public/libs/codemirror/demo/resize.html +49 -0
  348. data/public/libs/codemirror/demo/runmode.html +50 -0
  349. data/public/libs/codemirror/demo/search.html +85 -0
  350. data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
  351. data/public/libs/codemirror/demo/theme.html +89 -0
  352. data/public/libs/codemirror/demo/variableheight.html +52 -0
  353. data/public/libs/codemirror/demo/vim.html +65 -0
  354. data/public/libs/codemirror/demo/visibletabs.html +53 -0
  355. data/public/libs/codemirror/demo/widget.html +74 -0
  356. data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
  357. data/public/libs/codemirror/index.html +487 -0
  358. data/public/libs/codemirror/keymap/emacs.js +30 -0
  359. data/public/libs/codemirror/keymap/vim.js +3044 -0
  360. data/public/libs/codemirror/lib/codemirror.css +253 -0
  361. data/public/libs/codemirror/lib/codemirror.js +5585 -0
  362. data/public/libs/codemirror/mode/apl/apl.js +160 -0
  363. data/public/libs/codemirror/mode/apl/index.html +61 -0
  364. data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
  365. data/public/libs/codemirror/mode/asterisk/index.html +142 -0
  366. data/public/libs/codemirror/mode/clike/clike.js +302 -0
  367. data/public/libs/codemirror/mode/clike/index.html +103 -0
  368. data/public/libs/codemirror/mode/clike/scala.html +767 -0
  369. data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
  370. data/public/libs/codemirror/mode/clojure/index.html +76 -0
  371. data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
  372. data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
  373. data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
  374. data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
  375. data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
  376. data/public/libs/codemirror/mode/css/css.js +567 -0
  377. data/public/libs/codemirror/mode/css/index.html +58 -0
  378. data/public/libs/codemirror/mode/css/scss.html +145 -0
  379. data/public/libs/codemirror/mode/css/scss_test.js +80 -0
  380. data/public/libs/codemirror/mode/css/test.js +113 -0
  381. data/public/libs/codemirror/mode/d/d.js +205 -0
  382. data/public/libs/codemirror/mode/d/index.html +262 -0
  383. data/public/libs/codemirror/mode/diff/diff.js +32 -0
  384. data/public/libs/codemirror/mode/diff/index.html +105 -0
  385. data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
  386. data/public/libs/codemirror/mode/ecl/index.html +39 -0
  387. data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
  388. data/public/libs/codemirror/mode/erlang/index.html +64 -0
  389. data/public/libs/codemirror/mode/gas/gas.js +326 -0
  390. data/public/libs/codemirror/mode/gas/index.html +57 -0
  391. data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
  392. data/public/libs/codemirror/mode/gfm/index.html +74 -0
  393. data/public/libs/codemirror/mode/gfm/test.js +112 -0
  394. data/public/libs/codemirror/mode/go/go.js +165 -0
  395. data/public/libs/codemirror/mode/go/index.html +74 -0
  396. data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
  397. data/public/libs/codemirror/mode/groovy/index.html +73 -0
  398. data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
  399. data/public/libs/codemirror/mode/haskell/index.html +62 -0
  400. data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
  401. data/public/libs/codemirror/mode/haxe/index.html +90 -0
  402. data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  403. data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
  404. data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  405. data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
  406. data/public/libs/codemirror/mode/http/http.js +98 -0
  407. data/public/libs/codemirror/mode/http/index.html +32 -0
  408. data/public/libs/codemirror/mode/javascript/index.html +92 -0
  409. data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
  410. data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
  411. data/public/libs/codemirror/mode/jinja2/index.html +38 -0
  412. data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
  413. data/public/libs/codemirror/mode/less/index.html +741 -0
  414. data/public/libs/codemirror/mode/less/less.js +266 -0
  415. data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
  416. data/public/libs/codemirror/mode/livescript/index.html +446 -0
  417. data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
  418. data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
  419. data/public/libs/codemirror/mode/lua/index.html +74 -0
  420. data/public/libs/codemirror/mode/lua/lua.js +140 -0
  421. data/public/libs/codemirror/mode/markdown/index.html +344 -0
  422. data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
  423. data/public/libs/codemirror/mode/markdown/test.js +636 -0
  424. data/public/libs/codemirror/mode/meta.js +75 -0
  425. data/public/libs/codemirror/mode/mirc/index.html +149 -0
  426. data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
  427. data/public/libs/codemirror/mode/ntriples/index.html +33 -0
  428. data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
  429. data/public/libs/codemirror/mode/ocaml/index.html +131 -0
  430. data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
  431. data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
  432. data/public/libs/codemirror/mode/pascal/index.html +48 -0
  433. data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
  434. data/public/libs/codemirror/mode/perl/LICENSE +19 -0
  435. data/public/libs/codemirror/mode/perl/index.html +62 -0
  436. data/public/libs/codemirror/mode/perl/perl.js +816 -0
  437. data/public/libs/codemirror/mode/php/index.html +51 -0
  438. data/public/libs/codemirror/mode/php/php.js +129 -0
  439. data/public/libs/codemirror/mode/pig/index.html +42 -0
  440. data/public/libs/codemirror/mode/pig/pig.js +171 -0
  441. data/public/libs/codemirror/mode/properties/index.html +41 -0
  442. data/public/libs/codemirror/mode/properties/properties.js +63 -0
  443. data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
  444. data/public/libs/codemirror/mode/python/index.html +135 -0
  445. data/public/libs/codemirror/mode/python/python.js +340 -0
  446. data/public/libs/codemirror/mode/q/index.html +131 -0
  447. data/public/libs/codemirror/mode/q/q.js +124 -0
  448. data/public/libs/codemirror/mode/r/LICENSE +24 -0
  449. data/public/libs/codemirror/mode/r/index.html +74 -0
  450. data/public/libs/codemirror/mode/r/r.js +141 -0
  451. data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
  452. data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
  453. data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
  454. data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
  455. data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
  456. data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
  457. data/public/libs/codemirror/mode/rst/index.html +524 -0
  458. data/public/libs/codemirror/mode/rst/rst.js +550 -0
  459. data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
  460. data/public/libs/codemirror/mode/ruby/index.html +173 -0
  461. data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
  462. data/public/libs/codemirror/mode/rust/index.html +48 -0
  463. data/public/libs/codemirror/mode/rust/rust.js +432 -0
  464. data/public/libs/codemirror/mode/sass/index.html +54 -0
  465. data/public/libs/codemirror/mode/sass/sass.js +349 -0
  466. data/public/libs/codemirror/mode/scheme/index.html +65 -0
  467. data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
  468. data/public/libs/codemirror/mode/shell/index.html +51 -0
  469. data/public/libs/codemirror/mode/shell/shell.js +118 -0
  470. data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
  471. data/public/libs/codemirror/mode/sieve/index.html +81 -0
  472. data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
  473. data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
  474. data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
  475. data/public/libs/codemirror/mode/smarty/index.html +83 -0
  476. data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
  477. data/public/libs/codemirror/mode/sparql/index.html +42 -0
  478. data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
  479. data/public/libs/codemirror/mode/sql/index.html +68 -0
  480. data/public/libs/codemirror/mode/sql/sql.js +268 -0
  481. data/public/libs/codemirror/mode/stex/index.html +98 -0
  482. data/public/libs/codemirror/mode/stex/stex.js +246 -0
  483. data/public/libs/codemirror/mode/stex/test.js +117 -0
  484. data/public/libs/codemirror/mode/tcl/index.html +129 -0
  485. data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
  486. data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
  487. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  488. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  489. data/public/libs/codemirror/mode/tiki/index.html +81 -0
  490. data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
  491. data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
  492. data/public/libs/codemirror/mode/turtle/index.html +39 -0
  493. data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
  494. data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
  495. data/public/libs/codemirror/mode/vb/index.html +88 -0
  496. data/public/libs/codemirror/mode/vb/vb.js +259 -0
  497. data/public/libs/codemirror/mode/vbscript/index.html +42 -0
  498. data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
  499. data/public/libs/codemirror/mode/velocity/index.html +103 -0
  500. data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
  501. data/public/libs/codemirror/mode/verilog/index.html +121 -0
  502. data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
  503. data/public/libs/codemirror/mode/xml/index.html +45 -0
  504. data/public/libs/codemirror/mode/xml/xml.js +328 -0
  505. data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
  506. data/public/libs/codemirror/mode/xquery/index.html +221 -0
  507. data/public/libs/codemirror/mode/xquery/test.js +64 -0
  508. data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
  509. data/public/libs/codemirror/mode/yaml/index.html +68 -0
  510. data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
  511. data/public/libs/codemirror/mode/z80/index.html +39 -0
  512. data/public/libs/codemirror/mode/z80/z80.js +85 -0
  513. data/public/libs/codemirror/package.json +21 -0
  514. data/public/libs/codemirror/test/doc_test.js +329 -0
  515. data/public/libs/codemirror/test/driver.js +138 -0
  516. data/public/libs/codemirror/test/index.html +182 -0
  517. data/public/libs/codemirror/test/lint/acorn.js +1593 -0
  518. data/public/libs/codemirror/test/lint/lint.js +112 -0
  519. data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
  520. data/public/libs/codemirror/test/lint/walk.js +216 -0
  521. data/public/libs/codemirror/test/mode_test.css +10 -0
  522. data/public/libs/codemirror/test/mode_test.js +192 -0
  523. data/public/libs/codemirror/test/phantom_driver.js +31 -0
  524. data/public/libs/codemirror/test/run.js +33 -0
  525. data/public/libs/codemirror/test/test.js +1400 -0
  526. data/public/libs/codemirror/test/vim_test.js +1688 -0
  527. data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
  528. data/public/libs/codemirror/theme/ambiance.css +75 -0
  529. data/public/libs/codemirror/theme/blackboard.css +25 -0
  530. data/public/libs/codemirror/theme/cobalt.css +18 -0
  531. data/public/libs/codemirror/theme/eclipse.css +25 -0
  532. data/public/libs/codemirror/theme/elegant.css +10 -0
  533. data/public/libs/codemirror/theme/erlang-dark.css +21 -0
  534. data/public/libs/codemirror/theme/lesser-dark.css +44 -0
  535. data/public/libs/codemirror/theme/midnight.css +52 -0
  536. data/public/libs/codemirror/theme/monokai.css +28 -0
  537. data/public/libs/codemirror/theme/neat.css +9 -0
  538. data/public/libs/codemirror/theme/night.css +21 -0
  539. data/public/libs/codemirror/theme/rubyblue.css +21 -0
  540. data/public/libs/codemirror/theme/solarized.css +207 -0
  541. data/public/libs/codemirror/theme/twilight.css +26 -0
  542. data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
  543. data/public/libs/codemirror/theme/xq-dark.css +46 -0
  544. data/public/libs/codemirror/theme/xq-light.css +43 -0
  545. data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
  546. data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
  547. data/public/libs/font-awesome/css/font-awesome.css +1268 -0
  548. data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
  549. data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
  550. data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
  551. data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
  552. data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
  553. data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
  554. data/public/libs/font-awesome/less/bootstrap.less +78 -0
  555. data/public/libs/font-awesome/less/core.less +132 -0
  556. data/public/libs/font-awesome/less/extras.less +79 -0
  557. data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
  558. data/public/libs/font-awesome/less/font-awesome.less +32 -0
  559. data/public/libs/font-awesome/less/icons.less +330 -0
  560. data/public/libs/font-awesome/less/mixins.less +34 -0
  561. data/public/libs/font-awesome/less/path.less +15 -0
  562. data/public/libs/font-awesome/less/variables.less +9 -0
  563. data/public/libs/jquery-1.10.0.min.js +6 -0
  564. data/public/libs/jquery-ui.min.js +12 -0
  565. data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
  566. data/public/libs/jquery.livequery.js +226 -0
  567. data/public/libs/jsPlumbInitializer.js +72 -0
  568. data/public/libs/jstree/README.txt +10 -0
  569. data/public/libs/jstree/_demo/_dump.sql +20 -0
  570. data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
  571. data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
  572. data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
  573. data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
  574. data/public/libs/jstree/_demo/_install.txt +6 -0
  575. data/public/libs/jstree/_demo/config.php +14 -0
  576. data/public/libs/jstree/_demo/file.png +0 -0
  577. data/public/libs/jstree/_demo/folder.png +0 -0
  578. data/public/libs/jstree/_demo/index.html +461 -0
  579. data/public/libs/jstree/_demo/root.png +0 -0
  580. data/public/libs/jstree/_demo/server.php +69 -0
  581. data/public/libs/jstree/_docs/!style.css +48 -0
  582. data/public/libs/jstree/_docs/_drive.png +0 -0
  583. data/public/libs/jstree/_docs/_html_data.html +2 -0
  584. data/public/libs/jstree/_docs/_json_data.json +4 -0
  585. data/public/libs/jstree/_docs/_search_data.json +6 -0
  586. data/public/libs/jstree/_docs/_search_result.json +1 -0
  587. data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
  588. data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
  589. data/public/libs/jstree/_docs/checkbox.html +171 -0
  590. data/public/libs/jstree/_docs/contextmenu.html +121 -0
  591. data/public/libs/jstree/_docs/cookies.html +97 -0
  592. data/public/libs/jstree/_docs/core.html +689 -0
  593. data/public/libs/jstree/_docs/crrm.html +316 -0
  594. data/public/libs/jstree/_docs/dnd.html +199 -0
  595. data/public/libs/jstree/_docs/hotkeys.html +82 -0
  596. data/public/libs/jstree/_docs/html_data.html +175 -0
  597. data/public/libs/jstree/_docs/index.html +86 -0
  598. data/public/libs/jstree/_docs/json_data.html +249 -0
  599. data/public/libs/jstree/_docs/languages.html +152 -0
  600. data/public/libs/jstree/_docs/logo.png +0 -0
  601. data/public/libs/jstree/_docs/search.html +153 -0
  602. data/public/libs/jstree/_docs/sort.html +85 -0
  603. data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
  604. data/public/libs/jstree/_docs/syntax/!style.css +511 -0
  605. data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
  606. data/public/libs/jstree/_docs/syntax/help.png +0 -0
  607. data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
  608. data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
  609. data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
  610. data/public/libs/jstree/_docs/syntax/printer.png +0 -0
  611. data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
  612. data/public/libs/jstree/_docs/themeroller.html +107 -0
  613. data/public/libs/jstree/_docs/themes.html +127 -0
  614. data/public/libs/jstree/_docs/types.html +178 -0
  615. data/public/libs/jstree/_docs/ui.html +197 -0
  616. data/public/libs/jstree/_docs/unique.html +85 -0
  617. data/public/libs/jstree/_docs/xml_data.html +218 -0
  618. data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
  619. data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
  620. data/public/libs/jstree/_lib/jquery.js +5 -0
  621. data/public/libs/jstree/jquery.jstree.js +4564 -0
  622. data/public/libs/jstree/themes/apple/bg.jpg +0 -0
  623. data/public/libs/jstree/themes/apple/d.png +0 -0
  624. data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
  625. data/public/libs/jstree/themes/apple/style.css +61 -0
  626. data/public/libs/jstree/themes/apple/throbber.gif +0 -0
  627. data/public/libs/jstree/themes/classic/d.gif +0 -0
  628. data/public/libs/jstree/themes/classic/d.png +0 -0
  629. data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
  630. data/public/libs/jstree/themes/classic/style.css +77 -0
  631. data/public/libs/jstree/themes/classic/throbber.gif +0 -0
  632. data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
  633. data/public/libs/jstree/themes/default-rtl/d.png +0 -0
  634. data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
  635. data/public/libs/jstree/themes/default-rtl/style.css +84 -0
  636. data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
  637. data/public/libs/jstree/themes/default/d.gif +0 -0
  638. data/public/libs/jstree/themes/default/d.png +0 -0
  639. data/public/libs/jstree/themes/default/style.css +74 -0
  640. data/public/libs/jstree/themes/default/throbber.gif +0 -0
  641. data/public/themes/geo-bootstrap/README.md +25 -0
  642. data/public/themes/geo-bootstrap/img/flames.gif +0 -0
  643. data/public/themes/geo-bootstrap/img/glyphicons-halflings-white.png +0 -0
  644. data/public/themes/geo-bootstrap/img/glyphicons-halflings.png +0 -0
  645. data/public/themes/geo-bootstrap/img/microfab.gif +0 -0
  646. data/public/themes/geo-bootstrap/img/progress.gif +0 -0
  647. data/public/themes/geo-bootstrap/img/rainbow.gif +0 -0
  648. data/public/themes/geo-bootstrap/img/stars.gif +0 -0
  649. data/public/themes/geo-bootstrap/img/test/7upspot.gif +0 -0
  650. data/public/themes/geo-bootstrap/img/test/americanflag.gif +0 -0
  651. data/public/themes/geo-bootstrap/img/test/community.gif +0 -0
  652. data/public/themes/geo-bootstrap/img/test/computer-01.gif +0 -0
  653. data/public/themes/geo-bootstrap/img/test/computer.gif +0 -0
  654. data/public/themes/geo-bootstrap/img/test/construction.gif +0 -0
  655. data/public/themes/geo-bootstrap/img/test/counter.gif +0 -0
  656. data/public/themes/geo-bootstrap/img/test/counter2.gif +0 -0
  657. data/public/themes/geo-bootstrap/img/test/divider.gif +0 -0
  658. data/public/themes/geo-bootstrap/img/test/divider1.gif +0 -0
  659. data/public/themes/geo-bootstrap/img/test/divider2.gif +0 -0
  660. data/public/themes/geo-bootstrap/img/test/divider3.gif +0 -0
  661. data/public/themes/geo-bootstrap/img/test/divider4.gif +0 -0
  662. data/public/themes/geo-bootstrap/img/test/drudgesiren.gif +0 -0
  663. data/public/themes/geo-bootstrap/img/test/emailme.gif +0 -0
  664. data/public/themes/geo-bootstrap/img/test/funky.gif +0 -0
  665. data/public/themes/geo-bootstrap/img/test/geocities.jpg +0 -0
  666. data/public/themes/geo-bootstrap/img/test/hacker.gif +0 -0
  667. data/public/themes/geo-bootstrap/img/test/heart.gif +0 -0
  668. data/public/themes/geo-bootstrap/img/test/hot.gif +0 -0
  669. data/public/themes/geo-bootstrap/img/test/ie_logo.gif +0 -0
  670. data/public/themes/geo-bootstrap/img/test/mailkitten.gif +0 -0
  671. data/public/themes/geo-bootstrap/img/test/mchammer.gif +0 -0
  672. data/public/themes/geo-bootstrap/img/test/new.gif +0 -0
  673. data/public/themes/geo-bootstrap/img/test/new2.gif +0 -0
  674. data/public/themes/geo-bootstrap/img/test/noframes.gif +0 -0
  675. data/public/themes/geo-bootstrap/img/test/notepad.gif +0 -0
  676. data/public/themes/geo-bootstrap/img/test/ns_logo.gif +0 -0
  677. data/public/themes/geo-bootstrap/img/test/sign-in.gif +0 -0
  678. data/public/themes/geo-bootstrap/img/test/spinningearth.gif +0 -0
  679. data/public/themes/geo-bootstrap/img/test/underconstruction.gif +0 -0
  680. data/public/themes/geo-bootstrap/img/test/wabwalk.gif +0 -0
  681. data/public/themes/geo-bootstrap/img/test/webtrips.gif +0 -0
  682. data/public/themes/geo-bootstrap/img/test/yahooweek.gif +0 -0
  683. data/public/themes/geo-bootstrap/package.json +21 -0
  684. data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.css +1109 -0
  685. data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.min.css +9 -0
  686. data/public/themes/geo-bootstrap/swatch/bootstrap.css +6462 -0
  687. data/public/themes/geo-bootstrap/swatch/bootstrap.min.css +9 -0
  688. metadata +791 -0
@@ -0,0 +1,70 @@
1
+ Smalltalk current createPackage: 'Kernel-Transcript' properties: #{}!
2
+ Object subclass: #ConsoleTranscript
3
+ instanceVariableNames: 'textarea'
4
+ package: 'Kernel-Transcript'!
5
+
6
+ !ConsoleTranscript methodsFor: 'actions'!
7
+
8
+ open
9
+ ! !
10
+
11
+ !ConsoleTranscript methodsFor: 'printing'!
12
+
13
+ clear
14
+ "no op"
15
+ !
16
+
17
+ cr
18
+ "no op"
19
+ !
20
+
21
+ show: anObject
22
+ | string |
23
+ string := anObject asString.
24
+ <console.log(String(string))>
25
+ ! !
26
+
27
+ !ConsoleTranscript class methodsFor: 'initialization'!
28
+
29
+ initialize
30
+ Transcript register: self new
31
+ ! !
32
+
33
+ Object subclass: #Transcript
34
+ instanceVariableNames: 'textarea'
35
+ package: 'Kernel-Transcript'!
36
+
37
+ Transcript class instanceVariableNames: 'current'!
38
+
39
+ !Transcript class methodsFor: 'instance creation'!
40
+
41
+ current
42
+ ^current
43
+ !
44
+
45
+ new
46
+ self shouldNotImplement
47
+ !
48
+
49
+ open
50
+ self current open
51
+ !
52
+
53
+ register: aTranscript
54
+ current := aTranscript
55
+ ! !
56
+
57
+ !Transcript class methodsFor: 'printing'!
58
+
59
+ clear
60
+ self current clear
61
+ !
62
+
63
+ cr
64
+ self current show: String cr
65
+ !
66
+
67
+ show: anObject
68
+ self current show: anObject
69
+ ! !
70
+
@@ -0,0 +1,1694 @@
1
+ Smalltalk current createPackage: 'Maglev-Core' properties: #{}!
2
+ Object subclass: #Maglev
3
+ instanceVariableNames: 'objectSpace windows bottomNavHtml'
4
+ package: 'Maglev-Core'!
5
+
6
+ !Maglev methodsFor: 'accessing'!
7
+
8
+ objectSpace
9
+ objectSpace ifNil: [objectSpace := MaglevObjectSpace instance].
10
+ ^ objectSpace
11
+ ! !
12
+
13
+ !Maglev methodsFor: 'initializing'!
14
+
15
+ initialize
16
+ windows := OrderedCollection new.
17
+ bottomNavHtml := HTMLCanvas onJQuery: '#windows-navigation' asJQuery.
18
+ ! !
19
+
20
+ !Maglev methodsFor: 'interactions'!
21
+
22
+ addWindow: aWindow
23
+ self renderNavigationItemFor: aWindow.
24
+ windows add: aWindow.
25
+ self showConnectionsFor: aWindow.
26
+ !
27
+
28
+ evaluateWithoutUpdate: code language: aString with: additionalParams withCallback: aBlock
29
+ |params|
30
+ params := Dictionary new
31
+ at: 'language' put: aString;
32
+ at: 'code' put: code;
33
+ addAll: additionalParams;
34
+ yourself.
35
+ MaglevAjax
36
+ ajax: 'object/evaluate/20'
37
+ data: params
38
+ withCallback: [:obj | |parsedObj|
39
+ parsedObj := MaglevObject newObjectWithoutUpdate: obj.
40
+ aBlock value: parsedObj isException not value: parsedObj].
41
+ !
42
+
43
+ findClassNamesMatching: aSelector with: aBlock
44
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
45
+
46
+ MaglevNilClass instance
47
+ evaluateWithoutUpdate: '|organizer| organizer := ClassOrganizer new. organizer findClassNamesMatching:''', aSelector, '''.'
48
+ language: 'smalltalk'
49
+ withCallback: aBlock.
50
+ !
51
+
52
+ findMethodNamesMatching: aSelector with: aBlock
53
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
54
+
55
+ MaglevNilClass instance
56
+ evaluateWithoutUpdate: '|organizer| organizer := ClassOrganizer new. organizer findMethodNamesMatching:''', aSelector, '''.'
57
+ language: 'smalltalk'
58
+ withCallback: aBlock.
59
+ !
60
+
61
+ implementersOf: aSelector withCallback: aBlock
62
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
63
+ MaglevNilClass instance
64
+ evaluateWithoutUpdate: '|organizer dict ruby smalltalk| organizer := ClassOrganizer new. dict := Array new. smalltalk := organizer implementorsOf:''', aSelector, ''' asSymbol. smalltalk do:[:cls| dict addLast:{cls. 0.}]. ruby := organizer rubyImplementorsOf:''', aSelector, ''' asSymbol. ruby do:[:cls| dict addLast:{cls. 1.}]. 1 to: dict size do:[:i||cls| cls:= (dict at: i) at:1. (cls class == GsNMethod) ifTrue:[(dict at:i) at:1 put: cls inClass]]. dict'
65
+ language: 'smalltalk'
66
+ withCallback: aBlock.
67
+ !
68
+
69
+ removeWindow: aWindow
70
+ aWindow navigationItem asJQuery remove.
71
+ windows remove: aWindow.
72
+ ! !
73
+
74
+ !Maglev methodsFor: 'rendering'!
75
+
76
+ renderNavigationItemFor: aWindow
77
+ |navItem|
78
+ navItem := bottomNavHtml li
79
+ with: [
80
+ bottomNavHtml a
81
+ class: 'btn btn-info window-navigation-item';
82
+ style: 'padding: 4px 2px 2px 4px; margin-top: 5px;';
83
+ onClick: [aWindow moveToFront];
84
+ with: [aWindow renderNavigationOn: bottomNavHtml]].
85
+ aWindow navigationItem: navItem.
86
+ !
87
+
88
+ showConnectionsFor: aWindow
89
+ windows do: [:window |
90
+ window checkAddConnectionTo: aWindow.
91
+ aWindow checkAddConnectionTo: window].
92
+ !
93
+
94
+ showObjectWindow: oop
95
+ |window|
96
+ (self objectSpace hasLoadedOop: oop)
97
+ ifFalse: [^ self showReloadObjectWindow: oop].
98
+ window := (self objectSpace at: oop) windowViewComponent.
99
+ window appendToWorkspace.
100
+ ^ window
101
+ !
102
+
103
+ showReloadObjectWindow: oop
104
+ |window|
105
+ window := MaglevWaitingWindow new.
106
+ window appendToWorkspace.
107
+ self objectSpace
108
+ reloadObject: oop
109
+ withCallback: [:object | |objWindow|
110
+ objWindow := object windowViewComponentReplace: window.
111
+ objWindow renderReplace].
112
+ ^ window
113
+ ! !
114
+
115
+ Maglev class instanceVariableNames: 'instance defaultWorkspaceId persistentRootId maglevSystemId evalObjectId swatchDesign'!
116
+
117
+ !Maglev class methodsFor: 'accessing'!
118
+
119
+ defaultWorkspaceId
120
+ ^ defaultWorkspaceId
121
+ !
122
+
123
+ defaultWorkspaceId: anInteger
124
+ "Called from JavaScript initializer."
125
+ defaultWorkspaceId := anInteger.
126
+ !
127
+
128
+ evalObjectId
129
+ ^ evalObjectId
130
+ !
131
+
132
+ evalObjectId: anInteger
133
+ evalObjectId := anInteger.
134
+ !
135
+
136
+ maglevSystemId
137
+ ^ maglevSystemId
138
+ !
139
+
140
+ maglevSystemId: anInteger
141
+ "Called from JavaScript initializer."
142
+ maglevSystemId := anInteger.
143
+ !
144
+
145
+ persistentRootId
146
+ ^ persistentRootId
147
+ !
148
+
149
+ persistentRootId: anInteger
150
+ "Called from JavaScript initializer."
151
+ persistentRootId := anInteger.
152
+ ! !
153
+
154
+ !Maglev class methodsFor: 'initializing'!
155
+
156
+ openWindow: anInteger
157
+ Maglev instance showObjectWindow: anInteger.
158
+ !
159
+
160
+ ready
161
+ jQuery getJSON: '/ids' do: [ :data |
162
+ self persistentRootId: data persistentRootId;
163
+ maglevSystemId: data maglevSystemId;
164
+ defaultWorkspaceId: data defaultWorkspaceId;
165
+ evalObjectId: data evalObjectId.
166
+
167
+ MaglevObjectSpace instance
168
+ evalObject: (MaglevObjectSpace instance reloadObject: self evalObjectId).
169
+
170
+ self openWindow: self defaultWorkspaceId.
171
+ " self openWindow: self persistentRootId.
172
+ self openWindow: self maglevSystemId " ].
173
+ ! !
174
+
175
+ !Maglev class methodsFor: 'rendering'!
176
+
177
+ swatchDesign
178
+ swatchDesign
179
+ ifNil: [ |html|
180
+ html := HTMLCanvas onJQuery: 'head' asJQuery.
181
+ swatchDesign := html link
182
+ href: 'themes/geo-bootstrap/swatch/bootstrap.css';
183
+ rel: 'stylesheet']
184
+ ifNotNil: [
185
+ swatchDesign asJQuery remove.
186
+ swatchDesign := nil].
187
+ ! !
188
+
189
+ !Maglev class methodsFor: 'singleton'!
190
+
191
+ instance
192
+ instance ifNil: [instance := Maglev new].
193
+ ^ instance
194
+ ! !
195
+
196
+ Object subclass: #MaglevObject
197
+ instanceVariableNames: 'oop instVars instVarsSize virtualClassObject classObject inspection isLoaded isException windows customTabs'
198
+ package: 'Maglev-Core'!
199
+
200
+ !MaglevObject methodsFor: 'accessing'!
201
+
202
+ classObject
203
+ ^ classObject
204
+ !
205
+
206
+ customTabs
207
+ ^ customTabs
208
+ !
209
+
210
+ hasInstVar: instVarName
211
+ self instVarsDo: [:ivName :ivValue |
212
+ ivName = instVarName ifTrue: [^ true]].
213
+ ^ false
214
+ !
215
+
216
+ inspection
217
+ ^ inspection
218
+ !
219
+
220
+ instVarAt: aString
221
+ instVars keysAndValuesDo: [:index :iv |
222
+ iv key string = aString asString
223
+ ifTrue: [^ iv value]].
224
+ self error: 'instVar not found in forwarder object: ', aString.
225
+ !
226
+
227
+ instVarAt: aString ifAbsent: anObject
228
+ instVars keysAndValuesDo: [:index :iv |
229
+ iv key string = aString asString
230
+ ifTrue: [^ iv value]].
231
+ ^ anObject
232
+ !
233
+
234
+ instVars
235
+ ^ instVars
236
+ !
237
+
238
+ instVarsDo: aBlock
239
+ instVars keysAndValuesDo: [:index :iv | aBlock value: iv key value: iv value].
240
+ !
241
+
242
+ instVarsSize
243
+ ^ instVarsSize
244
+ !
245
+
246
+ isException
247
+ ^ isException
248
+ !
249
+
250
+ oop
251
+ ^ oop
252
+ !
253
+
254
+ shortInspection
255
+ inspection size > 10
256
+ ifTrue: [^ (inspection copyFrom: 1 to: 10), '...']
257
+ ifFalse: [^ inspection].
258
+ !
259
+
260
+ virtualClassObject
261
+ ^ virtualClassObject
262
+ !
263
+
264
+ windows
265
+ windows ifNil: [windows := OrderedCollection new].
266
+ ^ windows
267
+ ! !
268
+
269
+ !MaglevObject methodsFor: 'comparing'!
270
+
271
+ = anObject
272
+ ^ self oop = anObject oop
273
+ !
274
+
275
+ == anObject
276
+ ^ self oop == anObject oop
277
+ ! !
278
+
279
+ !MaglevObject methodsFor: 'instance creation'!
280
+
281
+ parseJSON: obj
282
+ isLoaded := true.
283
+ instVars ifNil: [instVars := Dictionary new].
284
+ oop := obj oop.
285
+ isException := obj exception.
286
+ classObject := MaglevObject newObject: obj classObject.
287
+ virtualClassObject := MaglevObject newObject: obj virtualClassObject.
288
+ inspection := obj inspection.
289
+ instVarsSize := obj instVarsSize.
290
+ obj instVars keysAndValuesDo: [:index :assoc | |key value|
291
+ key := MaglevObject newObject: (assoc at: 1).
292
+ value := MaglevObject newObject: (assoc at: 2).
293
+ instVars at: index asNumber put: key -> value].
294
+ customTabs := obj customTabs.
295
+ !
296
+
297
+ parseJSONNotLoaded: obj
298
+ self isLoaded
299
+ ifNil: [isLoaded := false].
300
+ oop := obj oop.
301
+ inspection := obj inspection.
302
+ ! !
303
+
304
+ !MaglevObject methodsFor: 'interactions'!
305
+
306
+ addWindow: aWindow
307
+ self windows add: aWindow.
308
+ Maglev instance addWindow: aWindow.
309
+ ^ aWindow
310
+ !
311
+
312
+ evaluate: code language: aString withCallback: aBlock
313
+ |params|
314
+ params := Dictionary new
315
+ at: 'language' put: aString;
316
+ at: 'code' put: code;
317
+ yourself.
318
+ MaglevAjax
319
+ ajax: 'object/evaluate/', oop asString
320
+ data: params
321
+ withCallback: [:obj | |isException parsedObj|
322
+ isException := obj at: 1.
323
+ parsedObj := MaglevObject newObject: (obj at: 2).
324
+ aBlock value: isException not value: parsedObj].
325
+ !
326
+
327
+ evaluateWithoutUpdate: code language: aString with: additionalParams withCallback: aBlock
328
+ |params|
329
+ params := Dictionary new
330
+ at: 'language' put: aString;
331
+ at: 'code' put: code;
332
+ addAll: additionalParams;
333
+ yourself.
334
+ MaglevAjax
335
+ ajax: 'object/evaluate/', oop asString
336
+ data: params
337
+ withCallback: [:obj | |isException parsedObj|
338
+ isException := obj at: 1.
339
+ parsedObj := MaglevObject newObjectWithoutUpdate: (obj at: 2).
340
+ aBlock value: isException not value: parsedObj].
341
+ !
342
+
343
+ evaluateWithoutUpdate: code language: aString withCallback: aBlock
344
+ |params|
345
+ params := Dictionary new
346
+ at: 'language' put: aString;
347
+ at: 'code' put: code;
348
+ yourself.
349
+ MaglevAjax
350
+ ajax: 'object/evaluate/', oop asString
351
+ data: params
352
+ withCallback: [:obj | |isException parsedObj|
353
+ isException := obj at: 1.
354
+ parsedObj := MaglevObject newObject: (obj at: 2).
355
+ aBlock value: isException not value: parsedObj].
356
+ !
357
+
358
+ fullReloadWithCallback: aBlock
359
+ MaglevObjectSpace instance
360
+ reloadObject: oop withCallback: aBlock.
361
+ !
362
+
363
+ paramsAllElements
364
+ ^ Dictionary new
365
+ at: 'allElements' put: true;
366
+ yourself
367
+ !
368
+
369
+ paramsFullString
370
+ ^ Dictionary new
371
+ at: 'fullString' put: true;
372
+ yourself
373
+ !
374
+
375
+ paramsFullStringAndElements
376
+ ^ Dictionary new
377
+ at: 'allElements' put: true;
378
+ at: 'fullString' put: true;
379
+ yourself
380
+ !
381
+
382
+ paramsThreadFrame
383
+ ^ Dictionary new
384
+ at: 'allElements' put: true;
385
+ at: 'fullString' put: true;
386
+ at: 'fullMethod' put: true;
387
+ at: 'noBehavior' put: true;
388
+ yourself
389
+ !
390
+
391
+ removeWindow: aWindow
392
+ self windows remove: aWindow.
393
+ Maglev instance removeWindow: aWindow.
394
+ ^ aWindow
395
+ ! !
396
+
397
+ !MaglevObject methodsFor: 'reloading'!
398
+
399
+ ensureIsLoaded: collectionName from: from to: to
400
+ |obj params|
401
+ (self isLoaded: collectionName from: from to: to) ifTrue: [^ self].
402
+ params := Dictionary new
403
+ at: 'range_', collectionName asString, '_from' put: from;
404
+ at: 'range_', collectionName asString, '_to' put: to;
405
+ yourself.
406
+ obj := MaglevAjax
407
+ ajax: 'object/index/', self oop
408
+ data: params.
409
+ self parseJSON: obj.
410
+ !
411
+
412
+ ensureIsLoaded: collectionName from: from to: to withCallback: aBlock
413
+ |params|
414
+ (self isLoaded: collectionName from: from to: to) ifTrue: [aBlock value. ^ self].
415
+ params := Dictionary new
416
+ at: 'range_', collectionName asString, '_from' put: from;
417
+ at: 'range_', collectionName asString, '_to' put: to;
418
+ yourself.
419
+ MaglevAjax
420
+ ajax: 'object/index/', self oop
421
+ data: params
422
+ withCallback: [:obj |
423
+ self parseJSON: obj.
424
+ aBlock value].
425
+ ! !
426
+
427
+ !MaglevObject methodsFor: 'rendering'!
428
+
429
+ inlineViewComponent
430
+ ^ self class inlineViewClass basicNew
431
+ object: self;
432
+ initialize;
433
+ yourself
434
+ !
435
+
436
+ inlineViewComponentFull
437
+ ^ self class inlineViewClass basicNew
438
+ fullInspection: true;
439
+ object: self;
440
+ initialize;
441
+ yourself
442
+ !
443
+
444
+ inlineViewComponentNavItem
445
+ ^ self class inlineViewClass basicNew
446
+ object: self;
447
+ isShort: true;
448
+ hasDropDown: false;
449
+ isDraggable: false;
450
+ yourself
451
+ !
452
+
453
+ inlineViewComponentShort
454
+ ^ self class inlineViewClass basicNew
455
+ object: self;
456
+ isShort: true;
457
+ isDraggable: false;
458
+ yourself
459
+ !
460
+
461
+ inlineViewComponentWithDepth: anInteger
462
+ ^ self inlineViewComponent
463
+ depth: anInteger;
464
+ yourself
465
+ !
466
+
467
+ instancesViewComponent
468
+ ^ self class instancesViewClass basicNew
469
+ object: self;
470
+ initialize;
471
+ yourself
472
+ !
473
+
474
+ windowViewComponent
475
+ ^ self class windowViewClass basicNew
476
+ object: self;
477
+ initialize;
478
+ yourself
479
+ !
480
+
481
+ windowViewComponentReplace: aWindow
482
+ ^ self class windowViewClass newReplace: aWindow with: self
483
+ ! !
484
+
485
+ !MaglevObject methodsFor: 'testing'!
486
+
487
+ hasInstVars
488
+ ^ instVars size > 0
489
+ !
490
+
491
+ ifNotMaglevNil: aBlock
492
+ ^ aBlock value
493
+ !
494
+
495
+ isGsNMethod
496
+ ^ false
497
+ !
498
+
499
+ isLoaded
500
+ ^ isLoaded
501
+ !
502
+
503
+ isLoaded: collectionName from: from to: to
504
+ |collection|
505
+ collection := self perform: collectionName.
506
+ (from to: to) do: [:index |
507
+ (collection includesKey: index) ifFalse: [^ false]].
508
+ ^ true
509
+ !
510
+
511
+ isMaglevNil
512
+ ^ false
513
+ ! !
514
+
515
+ MaglevObject class instanceVariableNames: 'basetypes doesUpdateObjectSpace'!
516
+
517
+ !MaglevObject class methodsFor: 'accessing'!
518
+
519
+ basetypes
520
+ ^ basetypes
521
+ !
522
+
523
+ doesUpdateObjectSpace
524
+ doesUpdateObjectSpace ifNil: [doesUpdateObjectSpace := true].
525
+ ^ doesUpdateObjectSpace
526
+ !
527
+
528
+ doesUpdateObjectSpace: aBoolean
529
+ doesUpdateObjectSpace := aBoolean.
530
+ ! !
531
+
532
+ !MaglevObject class methodsFor: 'constants'!
533
+
534
+ basetype
535
+ ^ #object
536
+ !
537
+
538
+ inlineViewClass
539
+ ^ MaglevObjectInline
540
+ !
541
+
542
+ instancesViewClass
543
+ ^ MaglevObjectInstancesView
544
+ !
545
+
546
+ windowViewClass
547
+ ^ MaglevObjectWindow
548
+ ! !
549
+
550
+ !MaglevObject class methodsFor: 'initializing'!
551
+
552
+ initialize
553
+ self initializeBasetypes.
554
+ !
555
+
556
+ initializeBasetypes
557
+ basetypes := Dictionary new
558
+ at: self basetype put: self;
559
+ yourself.
560
+ self allSubclasses do: [:cls |
561
+ basetypes at: cls basetype put: cls].
562
+ ! !
563
+
564
+ !MaglevObject class methodsFor: 'instance creation'!
565
+
566
+ newFor: aBaseType
567
+ |cls|
568
+ cls := self basetypes
569
+ at: aBaseType asSymbol
570
+ ifAbsent: [self error: 'Could not create forwarder object for invalid base type ', aBaseType].
571
+ ^ cls new
572
+ !
573
+
574
+ newObject: obj
575
+ |object|
576
+ object := self parseJSON: obj.
577
+ self doesUpdateObjectSpace
578
+ ifTrue: [MaglevObjectSpace instance updateObject: object].
579
+ ^ object
580
+ !
581
+
582
+ newObjectWithoutUpdate: obj
583
+ |before result|
584
+ before := self doesUpdateObjectSpace.
585
+ result := self newObject: obj.
586
+ doesUpdateObjectSpace := before.
587
+ ^ result
588
+ !
589
+
590
+ parseJSON: obj
591
+ |object|
592
+ object := self newFor: obj basetype.
593
+ obj loaded
594
+ ifTrue: [^ object parseJSON: obj; yourself]
595
+ ifFalse: [^ object parseJSONNotLoaded: obj; yourself].
596
+ ! !
597
+
598
+ MaglevObject subclass: #MaglevArray
599
+ instanceVariableNames: 'elements elementsSize'
600
+ package: 'Maglev-Core'!
601
+
602
+ !MaglevArray methodsFor: 'accessing'!
603
+
604
+ at: anInteger
605
+ ^ self elements at: anInteger
606
+ !
607
+
608
+ do: aBlock
609
+ self elements do: aBlock.
610
+ !
611
+
612
+ elements
613
+ ^ elements
614
+ !
615
+
616
+ elementsSize
617
+ ^ elementsSize
618
+ ! !
619
+
620
+ !MaglevArray methodsFor: 'instance creation'!
621
+
622
+ parseJSON: obj
623
+ super parseJSON: obj.
624
+ elements ifNil: [elements := Dictionary new].
625
+ elementsSize := obj elementsSize.
626
+ obj elements keysAndValuesDo: [:index :element |
627
+ elements at: index asNumber put: (MaglevObject newObject: element)].
628
+ ! !
629
+
630
+ !MaglevArray methodsFor: 'testing'!
631
+
632
+ hasElements
633
+ ^ self elementsSize > 0
634
+ !
635
+
636
+ isFullyLoaded
637
+ ^ self elementsSize == self elements size
638
+ ! !
639
+
640
+ !MaglevArray class methodsFor: 'constants'!
641
+
642
+ basetype
643
+ ^ #array
644
+ !
645
+
646
+ inlineViewClass
647
+ ^ MaglevArrayInline
648
+ !
649
+
650
+ windowViewClass
651
+ ^ MaglevArrayWindow
652
+ ! !
653
+
654
+ MaglevObject subclass: #MaglevBoolean
655
+ instanceVariableNames: 'value'
656
+ package: 'Maglev-Core'!
657
+
658
+ !MaglevBoolean methodsFor: 'accessing'!
659
+
660
+ value
661
+ ^ value
662
+ ! !
663
+
664
+ !MaglevBoolean methodsFor: 'instance creation'!
665
+
666
+ parseJSON: obj
667
+ super parseJSON: obj.
668
+ value := obj value.
669
+ !
670
+
671
+ parseJSONNotLoaded: obj
672
+ super parseJSONNotLoaded: obj.
673
+ value := obj value.
674
+ ! !
675
+
676
+ !MaglevBoolean class methodsFor: 'constants'!
677
+
678
+ basetype
679
+ ^ #boolean
680
+ !
681
+
682
+ inlineViewClass
683
+ ^ MaglevBooleanInline
684
+ ! !
685
+
686
+ MaglevObject subclass: #MaglevDictionary
687
+ instanceVariableNames: 'elements elementsSize'
688
+ package: 'Maglev-Core'!
689
+
690
+ !MaglevDictionary methodsFor: 'accessing'!
691
+
692
+ at: anInteger
693
+ ^ self elements at: anInteger
694
+ !
695
+
696
+ atKey: anObject
697
+ self elements do: [:assoc |
698
+ anObject = assoc key
699
+ ifTrue: [^ assoc value]].
700
+ self error: 'Object is not in the collection'.
701
+ !
702
+
703
+ atKeyInspection: anObject
704
+ self elements do: [:assoc |
705
+ anObject = assoc key inspection
706
+ ifTrue: [^ assoc value]].
707
+ self error: 'Object is not in the collection'.
708
+ !
709
+
710
+ atKeyString: anObject
711
+ self elements do: [:assoc |
712
+ anObject = assoc key string
713
+ ifTrue: [^ assoc value]].
714
+ self error: 'Object is not in the collection'.
715
+ !
716
+
717
+ elements
718
+ ^ elements
719
+ !
720
+
721
+ elementsSize
722
+ ^ elementsSize
723
+ !
724
+
725
+ includesKey: anObject
726
+ self elements do: [:assoc |
727
+ anObject = assoc key
728
+ ifTrue: [^ true]].
729
+ ^ false
730
+ !
731
+
732
+ keysAndValuesDo: aBlock
733
+ elements keysAndValuesDo: [:index :kv | aBlock value: kv key value: kv value].
734
+ !
735
+
736
+ valuesDo: aBlock
737
+ self elements do: [:assoc |
738
+ aBlock value: assoc value].
739
+ ! !
740
+
741
+ !MaglevDictionary methodsFor: 'instance creation'!
742
+
743
+ parseJSON: obj
744
+ super parseJSON: obj.
745
+ elements ifNil: [elements := Dictionary new].
746
+ elementsSize := obj elementsSize.
747
+ obj elements keysAndValuesDo: [:index :assoc | |key value|
748
+ key := MaglevObject newObject: (assoc at: 1).
749
+ value := MaglevObject newObject: (assoc at: 2).
750
+ elements at: index asNumber put: key -> value].
751
+ ! !
752
+
753
+ !MaglevDictionary methodsFor: 'testing'!
754
+
755
+ hasElements
756
+ ^ self elementsSize > 0
757
+ !
758
+
759
+ isFullyLoaded
760
+ ^ self elementsSize == self elements size
761
+ ! !
762
+
763
+ !MaglevDictionary class methodsFor: 'constants'!
764
+
765
+ basetype
766
+ ^ #dictionary
767
+ !
768
+
769
+ inlineViewClass
770
+ ^ MaglevHashInline
771
+ !
772
+
773
+ windowViewClass
774
+ ^ MaglevHashWindow
775
+ ! !
776
+
777
+ MaglevDictionary subclass: #MaglevHash
778
+ instanceVariableNames: 'elements elementsSize'
779
+ package: 'Maglev-Core'!
780
+
781
+ !MaglevHash class methodsFor: 'constants'!
782
+
783
+ basetype
784
+ ^ #hash
785
+ ! !
786
+
787
+ MaglevObject subclass: #MaglevException
788
+ instanceVariableNames: 'gsResumable gsTrappable gsNumber isDBEHalt'
789
+ package: 'Maglev-Core'!
790
+
791
+ !MaglevException methodsFor: 'accessing'!
792
+
793
+ isResumable
794
+ ^ gsResumable
795
+ !
796
+
797
+ isTrappable
798
+ ^ gsTrappable
799
+ !
800
+
801
+ number
802
+ ^ gsNumber
803
+ ! !
804
+
805
+ !MaglevException methodsFor: 'instance creation'!
806
+
807
+ parseJSON: obj
808
+ super parseJSON: obj.
809
+ gsTrappable := obj gsTrappable.
810
+ gsResumable := obj gsResumable.
811
+ gsNumber := obj at: 'gsNumber'. "gsNumber might be nil"
812
+ isDBEHalt := obj isDBEHalt.
813
+ !
814
+
815
+ parseJSONNotLoaded: obj
816
+ super parseJSONNotLoaded: obj.
817
+ gsTrappable := obj gsTrappable.
818
+ gsResumable := obj gsResumable.
819
+ gsNumber := obj at: 'gsNumber'. "gsNumber might be nil"
820
+ isDBEHalt := obj isDBEHalt.
821
+ ! !
822
+
823
+ !MaglevException methodsFor: 'testing'!
824
+
825
+ isDBEHalt
826
+ ^ isDBEHalt
827
+ ! !
828
+
829
+ !MaglevException class methodsFor: 'constants'!
830
+
831
+ basetype
832
+ ^ #exception
833
+ !
834
+
835
+ inlineViewClass
836
+ ^ MaglevExceptionInline
837
+ !
838
+
839
+ windowViewClass
840
+ ^ MaglevExceptionWindow
841
+ ! !
842
+
843
+ MaglevObject subclass: #MaglevFixnum
844
+ instanceVariableNames: ''
845
+ package: 'Maglev-Core'!
846
+
847
+ !MaglevFixnum methodsFor: 'accessing'!
848
+
849
+ number
850
+ ^ inspection asNumber
851
+ ! !
852
+
853
+ !MaglevFixnum class methodsFor: 'constants'!
854
+
855
+ basetype
856
+ ^ #fixnum
857
+ !
858
+
859
+ inlineViewClass
860
+ ^ MaglevFixnumInline
861
+ !
862
+
863
+ windowViewClass
864
+ ^ MaglevFixnumWindow
865
+ ! !
866
+
867
+ MaglevObject subclass: #MaglevFloat
868
+ instanceVariableNames: ''
869
+ package: 'Maglev-Core'!
870
+
871
+ !MaglevFloat methodsFor: 'accessing'!
872
+
873
+ number
874
+ ^ inspection asNumber
875
+ ! !
876
+
877
+ !MaglevFloat class methodsFor: 'constants'!
878
+
879
+ basetype
880
+ ^ #float
881
+ !
882
+
883
+ inlineViewClass
884
+ ^ MaglevFloatInline
885
+ !
886
+
887
+ windowViewClass
888
+ ^ MaglevFloatWindow
889
+ ! !
890
+
891
+ MaglevObject subclass: #MaglevGsNMethod
892
+ instanceVariableNames: 'selectorString argsAndTemps descrForStack'
893
+ package: 'Maglev-Core'!
894
+
895
+ !MaglevGsNMethod methodsFor: 'accessing'!
896
+
897
+ argsAndTemps
898
+ ^ argsAndTemps
899
+ !
900
+
901
+ debugInfo
902
+ ^ self instVarAt: '@_st_debugInfo'
903
+ !
904
+
905
+ descrForStack
906
+ ^ descrForStack
907
+ !
908
+
909
+ environmentId
910
+ ^ (self selector number bitShift: 0 - self siSelectorIdEnvShift) bitAnd: self selectorIdEnvMask
911
+ !
912
+
913
+ filename
914
+ ^ self debugInfo at: self debugInfoFileNameOffset
915
+ !
916
+
917
+ inClass
918
+ ^ self instVarAt: '@_st_inClass'
919
+ !
920
+
921
+ rubyFullName
922
+ ^ 'a GsNMethod'
923
+ !
924
+
925
+ selector
926
+ ^ self instVarAt: '@_st_selector'
927
+ !
928
+
929
+ selectorString
930
+ ^ selectorString
931
+ !
932
+
933
+ smalltalkFullName
934
+ ^ 'a GsNMethod'
935
+ !
936
+
937
+ sourceString
938
+ ^ (self debugInfo at: self debugInfoSourceOffset) string
939
+ ! !
940
+
941
+ !MaglevGsNMethod methodsFor: 'constants'!
942
+
943
+ debugInfoFileNameOffset
944
+ ^ 4
945
+ !
946
+
947
+ debugInfoSourceOffset
948
+ ^ 2
949
+ !
950
+
951
+ selectorIdEnvMask
952
+ ^ 255
953
+ !
954
+
955
+ siSelectorIdEnvShift
956
+ ^ 53
957
+ ! !
958
+
959
+ !MaglevGsNMethod methodsFor: 'instance creation'!
960
+
961
+ parseJSON: obj
962
+ super parseJSON: obj.
963
+ selectorString := MaglevObject newObject: obj selectorString.
964
+ argsAndTemps := MaglevObject newObject: obj argsAndTemps.
965
+ descrForStack := MaglevObject newObject: obj descrForStack.
966
+ !
967
+
968
+ parseJSONNotLoaded: obj
969
+ super parseJSONNotLoaded: obj.
970
+ selectorString := MaglevObject newObject: obj selectorString.
971
+ descrForStack := MaglevObject newObject: obj descrForStack.
972
+ ! !
973
+
974
+ !MaglevGsNMethod methodsFor: 'interactions'!
975
+
976
+ compileRubySourceCode: sourceCode withCallback: aBlock
977
+ self inClass
978
+ evaluateWithoutUpdate: sourceCode
979
+ language: 'rubyClass'
980
+ with: Dictionary new
981
+ withCallback: aBlock.
982
+ !
983
+
984
+ compileSmalltalkSourceCode: sourceCode withCallback: aBlock
985
+ self inClass
986
+ evaluateWithoutUpdate: 'self compile: ''', sourceCode escapedString, '''.'
987
+ language: 'smalltalk'
988
+ with: Dictionary new
989
+ withCallback: aBlock.
990
+ !
991
+
992
+ fullReloadWithCallback: aBlock
993
+ MaglevObjectSpace instance
994
+ reloadObject: oop
995
+ withCallback: aBlock
996
+ params: self paramsFullString.
997
+ ! !
998
+
999
+ !MaglevGsNMethod methodsFor: 'testing'!
1000
+
1001
+ isGsNMethod
1002
+ ^ true
1003
+ ! !
1004
+
1005
+ !MaglevGsNMethod class methodsFor: 'constants'!
1006
+
1007
+ basetype
1008
+ ^ #gsnmethod
1009
+ ! !
1010
+
1011
+ MaglevObject subclass: #MaglevInvalidObject
1012
+ instanceVariableNames: ''
1013
+ package: 'Maglev-Core'!
1014
+
1015
+ MaglevInvalidObject class instanceVariableNames: 'instance'!
1016
+
1017
+ !MaglevInvalidObject class methodsFor: 'singleton'!
1018
+
1019
+ instance
1020
+ instance ifNil: [instance := self new].
1021
+ ^ instance
1022
+ ! !
1023
+
1024
+ MaglevObject subclass: #MaglevMaglevRecordBase
1025
+ instanceVariableNames: 'attributes attributesSize'
1026
+ package: 'Maglev-Core'!
1027
+
1028
+ !MaglevMaglevRecordBase methodsFor: 'accessing'!
1029
+
1030
+ attributeAt: aString
1031
+ attributes keysAndValuesDo: [:index :iv |
1032
+ iv key string = aString asString
1033
+ ifTrue: [^ iv value]].
1034
+ self error: 'attribute not found in forwarder object: ', aString.
1035
+ !
1036
+
1037
+ attributes
1038
+ ^ attributes
1039
+ !
1040
+
1041
+ attributesSize
1042
+ ^ attributesSize
1043
+ ! !
1044
+
1045
+ !MaglevMaglevRecordBase methodsFor: 'instance creation'!
1046
+
1047
+ parseJSON: obj
1048
+ super parseJSON: obj.
1049
+ (obj at: 'attributes') ifNotNil: [
1050
+ attributes ifNil: [attributes := Dictionary new].
1051
+ attributesSize := obj attributesSize.
1052
+ obj attributes keysAndValuesDo: [:index :assoc | |key value|
1053
+ key := MaglevObject newObject: (assoc at: 1).
1054
+ value := MaglevObject newObject: (assoc at: 2).
1055
+ attributes at: index asNumber put: key -> value]].
1056
+ ! !
1057
+
1058
+ !MaglevMaglevRecordBase class methodsFor: 'constants'!
1059
+
1060
+ basetype
1061
+ ^ #maglevRecordBase
1062
+ !
1063
+
1064
+ inlineViewClass
1065
+ ^ MaglevMaglevRecordBaseInline
1066
+ !
1067
+
1068
+ windowViewClass
1069
+ ^ MaglevMaglevRecordBaseWindow
1070
+ ! !
1071
+
1072
+ MaglevObject subclass: #MaglevModule
1073
+ instanceVariableNames: 'includedModules includedModulesSize constants constantsSize rubyFullName smalltalkFullName superList'
1074
+ package: 'Maglev-Core'!
1075
+
1076
+ !MaglevModule methodsFor: 'accessing'!
1077
+
1078
+ constants
1079
+ ^ constants
1080
+ !
1081
+
1082
+ constantsSize
1083
+ ^ constantsSize
1084
+ !
1085
+
1086
+ includedModules
1087
+ ^ includedModules
1088
+ !
1089
+
1090
+ includedModulesSize
1091
+ ^ includedModulesSize
1092
+ !
1093
+
1094
+ rubyFullName
1095
+ ^ rubyFullName string
1096
+ !
1097
+
1098
+ smalltalkFullName
1099
+ ^ smalltalkFullName string
1100
+ !
1101
+
1102
+ superList
1103
+ ^ superList
1104
+ ! !
1105
+
1106
+ !MaglevModule methodsFor: 'instance creation'!
1107
+
1108
+ parseJSON: obj
1109
+ super parseJSON: obj.
1110
+ includedModules ifNil: [includedModules := Dictionary new].
1111
+ constants ifNil: [constants := Dictionary new].
1112
+ (obj at: 'includedModulesSize') ifNotNil: [
1113
+ includedModulesSize := obj includedModulesSize.
1114
+ obj includedModules keysAndValuesDo: [:index :value |
1115
+ includedModules at: index asNumber put: (MaglevObject newObject: value)]].
1116
+ (obj at: 'constantsSize') ifNotNil: [
1117
+ constantsSize := obj constantsSize.
1118
+ obj constants keysAndValuesDo: [:index :assoc | |key value|
1119
+ key := MaglevObject newObject: (assoc at: 1).
1120
+ value := MaglevObject newObject: (assoc at: 2).
1121
+ constants at: index asNumber put: key -> value]].
1122
+ (obj at: 'superList') ifNotNil: [
1123
+ superList := MaglevObject newObject: obj superList].
1124
+ (obj at: 'rubyFullName') ifNotNil: [
1125
+ rubyFullName := MaglevObject newObject: obj rubyFullName.
1126
+ smalltalkFullName := MaglevObject newObject: obj smalltalkFullName].
1127
+ !
1128
+
1129
+ parseJSONNotLoaded: obj
1130
+ super parseJSONNotLoaded: obj.
1131
+ ! !
1132
+
1133
+ !MaglevModule methodsFor: 'interactions'!
1134
+
1135
+ allSelectorsWithCallback: aBlock
1136
+ MaglevAjax
1137
+ ajax: 'code/selectors/', oop asString
1138
+ data: Dictionary new
1139
+ withCallback: aBlock.
1140
+ !
1141
+
1142
+ compileRubySourceCode: sourceCode withCallback: aBlock
1143
+ self
1144
+ evaluateWithoutUpdate: sourceCode
1145
+ language: 'rubyClass'
1146
+ with: Dictionary new
1147
+ withCallback: aBlock.
1148
+ !
1149
+
1150
+ compileSmalltalkSourceCode: sourceCode withCallback: aBlock
1151
+ self
1152
+ evaluateWithoutUpdate: 'self compile: ''', sourceCode escapedString, '''.'
1153
+ language: 'smalltalk'
1154
+ with: Dictionary new
1155
+ withCallback: aBlock.
1156
+ !
1157
+
1158
+ ensureSuperListLoadedWithCallback: aBlock
1159
+ superList
1160
+ ifNil: [MaglevAjax
1161
+ ajax: 'object/index/', self oop
1162
+ data: self paramsSuperList
1163
+ withCallback: [:obj |
1164
+ self parseJSON: obj.
1165
+ aBlock value]]
1166
+ ifNotNil: [aBlock value].
1167
+ !
1168
+
1169
+ paramsSuperList
1170
+ ^ Dictionary new
1171
+ at: 'superList' put: true;
1172
+ yourself
1173
+ !
1174
+
1175
+ sourceCodeFor: selectorString language: lang withCallback: aBlock
1176
+ |params|
1177
+ params := Dictionary new
1178
+ at: 'language' put: lang;
1179
+ at: 'selector' put: selectorString;
1180
+ yourself.
1181
+ MaglevAjax
1182
+ ajax: 'code/code/', oop asString
1183
+ data: params
1184
+ withCallback: aBlock.
1185
+ ! !
1186
+
1187
+ !MaglevModule methodsFor: 'testing'!
1188
+
1189
+ hasConstants
1190
+ ^ self constantsSize > 0
1191
+ !
1192
+
1193
+ hasIncludedModules
1194
+ ^ self includedModulesSize > 0
1195
+ ! !
1196
+
1197
+ !MaglevModule class methodsFor: 'constants'!
1198
+
1199
+ basetype
1200
+ ^ #module
1201
+ !
1202
+
1203
+ inlineViewClass
1204
+ ^ MaglevModuleInline
1205
+ !
1206
+
1207
+ windowViewClass
1208
+ ^ MaglevModuleWindow
1209
+ ! !
1210
+
1211
+ MaglevModule subclass: #MaglevClass
1212
+ instanceVariableNames: 'superclassObject size subclasses instances instancesSize'
1213
+ package: 'Maglev-Core'!
1214
+
1215
+ !MaglevClass methodsFor: 'accessing'!
1216
+
1217
+ instances
1218
+ ^ instances
1219
+ !
1220
+
1221
+ instancesSize
1222
+ ^ instancesSize
1223
+ !
1224
+
1225
+ subclasses
1226
+ ^ subclasses
1227
+ !
1228
+
1229
+ superclassObject
1230
+ ^ superclassObject
1231
+ ! !
1232
+
1233
+ !MaglevClass methodsFor: 'instance creation'!
1234
+
1235
+ parseJSON: obj
1236
+ super parseJSON: obj.
1237
+ (obj at: 'superclassObject') ifNotNil: [
1238
+ superclassObject := MaglevObject newObject: obj superclassObject].
1239
+ (obj at: 'subclasses') ifNotNil: [
1240
+ subclasses := MaglevObject newObject: obj subclasses].
1241
+ (obj at: 'instancesSize') ifNotNil: [
1242
+ instances ifNil: [instances := Dictionary new].
1243
+ instancesSize := obj instancesSize.
1244
+ obj instances keysAndValuesDo: [:index :element |
1245
+ instances at: index asNumber put: (MaglevObject newObject: element)]].
1246
+ ! !
1247
+
1248
+ !MaglevClass methodsFor: 'interactions'!
1249
+
1250
+ ensureSubclassesLoadedWithCallback: aBlock
1251
+ subclasses
1252
+ ifNil: [MaglevAjax
1253
+ ajax: 'object/index/', self oop
1254
+ data: self paramsSubclasses
1255
+ withCallback: [:obj |
1256
+ self parseJSON: obj.
1257
+ aBlock value]]
1258
+ ifNotNil: [aBlock value].
1259
+ !
1260
+
1261
+ loadInstancesFrom: from to: to withCallback: aBlock
1262
+ |params|
1263
+ params := Dictionary new
1264
+ at: 'range_instances_from' put: from;
1265
+ at: 'range_instances_to' put: to;
1266
+ at: 'instances' put: true;
1267
+ yourself.
1268
+ MaglevAjax
1269
+ ajax: 'object/index/', self oop
1270
+ data: params
1271
+ withCallback: [:obj |
1272
+ "Create new object instead of merging results to self. This way
1273
+ we can separate instances with different filters and don't
1274
+ pollute MaglevObjectSpace with masses of objects."
1275
+ aBlock value: (MaglevObject newObjectWithoutUpdate: obj)].
1276
+ !
1277
+
1278
+ paramsSubclasses
1279
+ ^ Dictionary new
1280
+ at: 'subclasses' put: true;
1281
+ yourself
1282
+ ! !
1283
+
1284
+ !MaglevClass class methodsFor: 'constants'!
1285
+
1286
+ basetype
1287
+ ^ #class
1288
+ !
1289
+
1290
+ inlineViewClass
1291
+ ^ MaglevClassInline
1292
+ !
1293
+
1294
+ windowViewClass
1295
+ ^ MaglevClassWindow
1296
+ ! !
1297
+
1298
+ MaglevClass subclass: #MaglevSystemClass
1299
+ instanceVariableNames: 'gemVersionReport gemVersionReportSize stoneVersionReport stoneVersionReportSize'
1300
+ package: 'Maglev-Core'!
1301
+
1302
+ !MaglevSystemClass methodsFor: 'accessing'!
1303
+
1304
+ gemVersionReport
1305
+ ^ gemVersionReport
1306
+ !
1307
+
1308
+ gemVersionReportSize
1309
+ ^ gemVersionReportSize
1310
+ !
1311
+
1312
+ stoneVersionReport
1313
+ ^ stoneVersionReport
1314
+ !
1315
+
1316
+ stoneVersionReportSize
1317
+ ^ stoneVersionReportSize
1318
+ ! !
1319
+
1320
+ !MaglevSystemClass methodsFor: 'instance creation'!
1321
+
1322
+ parseJSON: obj
1323
+ super parseJSON: obj.
1324
+ gemVersionReport := MaglevObject newObject: obj gemVersionReport.
1325
+ gemVersionReportSize := obj gemVersionReportSize.
1326
+ stoneVersionReport := MaglevObject newObject: obj stoneVersionReport.
1327
+ stoneVersionReportSize := obj stoneVersionReportSize.
1328
+ ! !
1329
+
1330
+ !MaglevSystemClass class methodsFor: 'constants'!
1331
+
1332
+ basetype
1333
+ ^ #systemClass
1334
+ !
1335
+
1336
+ windowViewClass
1337
+ ^ MaglevSystemClassWindow
1338
+ ! !
1339
+
1340
+ MaglevObject subclass: #MaglevNilClass
1341
+ instanceVariableNames: ''
1342
+ package: 'Maglev-Core'!
1343
+
1344
+ !MaglevNilClass methodsFor: 'accessing'!
1345
+
1346
+ string
1347
+ ^ '(nil)'
1348
+ ! !
1349
+
1350
+ !MaglevNilClass methodsFor: 'testing'!
1351
+
1352
+ ifNotMaglevNil: aBlock
1353
+ ^ self
1354
+ !
1355
+
1356
+ isMaglevNil
1357
+ ^ true
1358
+ ! !
1359
+
1360
+ MaglevNilClass class instanceVariableNames: 'instance'!
1361
+
1362
+ !MaglevNilClass class methodsFor: 'constants'!
1363
+
1364
+ basetype
1365
+ ^ #nilclass
1366
+ !
1367
+
1368
+ inlineViewClass
1369
+ ^ MaglevNilClassInline
1370
+ !
1371
+
1372
+ windowViewClass
1373
+ ^ MaglevNilClassWindow
1374
+ ! !
1375
+
1376
+ !MaglevNilClass class methodsFor: 'singleton'!
1377
+
1378
+ instance
1379
+ instance ifNil: [instance := MaglevObjectSpace instance reloadObject: 20].
1380
+ ^ instance
1381
+ ! !
1382
+
1383
+ MaglevObject subclass: #MaglevRubyWorkspace
1384
+ instanceVariableNames: ''
1385
+ package: 'Maglev-Core'!
1386
+
1387
+ !MaglevRubyWorkspace class methodsFor: 'constants'!
1388
+
1389
+ basetype
1390
+ ^ #rubyWorkspace
1391
+ !
1392
+
1393
+ inlineViewClass
1394
+ ^ MaglevRubyWorkspaceInline
1395
+ !
1396
+
1397
+ windowViewClass
1398
+ ^ MaglevRubyWorkspaceWindow
1399
+ ! !
1400
+
1401
+ MaglevObject subclass: #MaglevString
1402
+ instanceVariableNames: 'string isStringComplete'
1403
+ package: 'Maglev-Core'!
1404
+
1405
+ !MaglevString methodsFor: 'accessing'!
1406
+
1407
+ string
1408
+ ^ string
1409
+ ! !
1410
+
1411
+ !MaglevString methodsFor: 'instance creation'!
1412
+
1413
+ parseJSON: obj
1414
+ super parseJSON: obj.
1415
+ string := obj string.
1416
+ isStringComplete := obj stringComplete.
1417
+ !
1418
+
1419
+ parseJSONNotLoaded: obj
1420
+ super parseJSONNotLoaded: obj.
1421
+ string := obj string.
1422
+ isStringComplete := obj stringComplete.
1423
+ ! !
1424
+
1425
+ !MaglevString class methodsFor: 'constants'!
1426
+
1427
+ basetype
1428
+ ^ #string
1429
+ !
1430
+
1431
+ inlineViewClass
1432
+ ^ MaglevStringInline
1433
+ !
1434
+
1435
+ windowViewClass
1436
+ ^ MaglevStringWindow
1437
+ ! !
1438
+
1439
+ MaglevObject subclass: #MaglevSymbol
1440
+ instanceVariableNames: 'string isStringComplete'
1441
+ package: 'Maglev-Core'!
1442
+
1443
+ !MaglevSymbol methodsFor: 'accessing'!
1444
+
1445
+ string
1446
+ ^ string
1447
+ ! !
1448
+
1449
+ !MaglevSymbol methodsFor: 'instance creation'!
1450
+
1451
+ parseJSON: obj
1452
+ super parseJSON: obj.
1453
+ string := obj string.
1454
+ isStringComplete := obj stringComplete.
1455
+ !
1456
+
1457
+ parseJSONNotLoaded: obj
1458
+ super parseJSONNotLoaded: obj.
1459
+ string := obj string.
1460
+ isStringComplete := obj stringComplete.
1461
+ ! !
1462
+
1463
+ !MaglevSymbol class methodsFor: 'constants'!
1464
+
1465
+ basetype
1466
+ ^ #symbol
1467
+ !
1468
+
1469
+ inlineViewClass
1470
+ ^ MaglevSymbolInline
1471
+ !
1472
+
1473
+ windowViewClass
1474
+ ^ MaglevSymbolWindow
1475
+ ! !
1476
+
1477
+ MaglevObject subclass: #MaglevThread
1478
+ instanceVariableNames: 'exception localStorage localStorageSize status isRailsThread'
1479
+ package: 'Maglev-Core'!
1480
+
1481
+ !MaglevThread methodsFor: 'accessing'!
1482
+
1483
+ exception
1484
+ ^ exception
1485
+ !
1486
+
1487
+ inspection
1488
+ self hasException
1489
+ ifTrue: [^ '#<GsProcess[', exception inspection, ']>']
1490
+ ifFalse: [^ super inspection].
1491
+ !
1492
+
1493
+ isRailsThread
1494
+ ^ isRailsThread = true
1495
+ !
1496
+
1497
+ localStorage
1498
+ ^ localStorage
1499
+ !
1500
+
1501
+ localStorageSize
1502
+ ^ localStorageSize
1503
+ !
1504
+
1505
+ status
1506
+ ^ status
1507
+ ! !
1508
+
1509
+ !MaglevThread methodsFor: 'instance creation'!
1510
+
1511
+ parseJSON: obj
1512
+ |objException|
1513
+ super parseJSON: obj.
1514
+ objException := obj at: 'exception'.
1515
+ objException ifNotNil: [exception := MaglevObject newObject: objException].
1516
+ localStorage := MaglevObject newObject: obj threadLocalStorage.
1517
+ localStorageSize := obj threadLocalStorageSize.
1518
+ status := obj status.
1519
+ isRailsThread := obj isRailsThread.
1520
+ ! !
1521
+
1522
+ !MaglevThread methodsFor: 'interactions'!
1523
+
1524
+ proceedWithCallback: aBlock
1525
+ MaglevAjax
1526
+ ajax: 'code/proceed/', oop asString
1527
+ data: Dictionary new
1528
+ withCallback: aBlock.
1529
+ !
1530
+
1531
+ stackFrame: anInteger withCallback: aBlock
1532
+ |params|
1533
+ params := Dictionary new
1534
+ at: 'index' put: anInteger;
1535
+ yourself.
1536
+ MaglevAjax
1537
+ ajax: 'code/frame/', oop asString
1538
+ data: params
1539
+ withCallback: aBlock.
1540
+ !
1541
+
1542
+ stackTraceMethodsWithCallback: aBlock
1543
+ MaglevAjax
1544
+ ajax: 'code/frames/', oop asString
1545
+ data: Dictionary new
1546
+ withCallback: aBlock.
1547
+ !
1548
+
1549
+ stepInto: frameIndex withCallback: aBlock
1550
+ |params|
1551
+ params := Dictionary new
1552
+ at: 'index' put: frameIndex;
1553
+ yourself.
1554
+ MaglevAjax
1555
+ ajax: 'code/stepInto/', oop asString
1556
+ data: params
1557
+ withCallback: aBlock.
1558
+ !
1559
+
1560
+ stepOver: frameIndex withCallback: aBlock
1561
+ |params|
1562
+ params := Dictionary new
1563
+ at: 'index' put: frameIndex;
1564
+ yourself.
1565
+ MaglevAjax
1566
+ ajax: 'code/stepOver/', oop asString
1567
+ data: params
1568
+ withCallback: aBlock.
1569
+ !
1570
+
1571
+ trimTo: frameIndex withCallback: aBlock
1572
+ |params|
1573
+ params := Dictionary new
1574
+ at: 'index' put: frameIndex;
1575
+ yourself.
1576
+ MaglevAjax
1577
+ ajax: 'code/trim/', oop asString
1578
+ data: params
1579
+ withCallback: aBlock.
1580
+ ! !
1581
+
1582
+ !MaglevThread methodsFor: 'testing'!
1583
+
1584
+ hasException
1585
+ exception ifNil: [^ false].
1586
+ ^ exception isMaglevNil not
1587
+ ! !
1588
+
1589
+ !MaglevThread class methodsFor: 'constants'!
1590
+
1591
+ basetype
1592
+ ^ #thread
1593
+ !
1594
+
1595
+ inlineViewClass
1596
+ ^ MaglevThreadInline
1597
+ !
1598
+
1599
+ windowViewClass
1600
+ ^ MaglevThreadWindow
1601
+ ! !
1602
+
1603
+ Object subclass: #MaglevObjectSpace
1604
+ instanceVariableNames: 'objects evalObject'
1605
+ package: 'Maglev-Core'!
1606
+
1607
+ !MaglevObjectSpace methodsFor: 'accessing'!
1608
+
1609
+ evalObject
1610
+ ^ evalObject
1611
+ !
1612
+
1613
+ evalObject: anObject
1614
+ evalObject := anObject.
1615
+ ! !
1616
+
1617
+ !MaglevObjectSpace methodsFor: 'initializing'!
1618
+
1619
+ initialize
1620
+ objects := Dictionary new.
1621
+ ! !
1622
+
1623
+ !MaglevObjectSpace methodsFor: 'interactions'!
1624
+
1625
+ registerWindow: aWindow
1626
+ (objects at: aWindow object oop)
1627
+ addWindow: aWindow.
1628
+ !
1629
+
1630
+ unregisterWindow: aWindow
1631
+ (objects at: aWindow object oop)
1632
+ removeWindow: aWindow.
1633
+ ! !
1634
+
1635
+ !MaglevObjectSpace methodsFor: 'objects'!
1636
+
1637
+ at: anOop
1638
+ ^ objects
1639
+ at: anOop
1640
+ ifAbsent: [self reloadObject: anOop]
1641
+ !
1642
+
1643
+ at: anOop withCallback: aBlock
1644
+ (objects includesKey: anOop)
1645
+ ifTrue: [aBlock value: (objects at: anOop)]
1646
+ ifFalse: [self reloadObject: anOop withCallback: aBlock].
1647
+ !
1648
+
1649
+ hasLoadedOop: oop
1650
+ ^ (objects includesKey: oop) and: [(objects at: oop) isLoaded]
1651
+ !
1652
+
1653
+ hasOop: oop
1654
+ ^ objects includesKey: oop
1655
+ !
1656
+
1657
+ reloadObject: anOop
1658
+ |obj|
1659
+ obj := MaglevAjax
1660
+ ajax: 'object/index/', anOop asString
1661
+ data: Dictionary new.
1662
+ ^ MaglevObject newObject: obj.
1663
+ !
1664
+
1665
+ reloadObject: anOop withCallback: aBlock
1666
+ MaglevAjax
1667
+ ajax: 'object/index/', anOop asString
1668
+ data: Dictionary new
1669
+ withCallback: [:obj |
1670
+ aBlock value: (MaglevObject newObject: obj)].
1671
+ !
1672
+
1673
+ reloadObject: anOop withCallback: aBlock params: aParamsDict
1674
+ MaglevAjax
1675
+ ajax: 'object/index/', anOop asString
1676
+ data: aParamsDict
1677
+ withCallback: [:obj |
1678
+ aBlock value: (MaglevObject newObject: obj)].
1679
+ !
1680
+
1681
+ updateObject: anObject
1682
+ anObject isLoaded
1683
+ ifTrue: [objects at: anObject oop put: anObject].
1684
+ ! !
1685
+
1686
+ MaglevObjectSpace class instanceVariableNames: 'instance'!
1687
+
1688
+ !MaglevObjectSpace class methodsFor: 'singleton'!
1689
+
1690
+ instance
1691
+ instance ifNil: [instance := self new].
1692
+ ^ instance
1693
+ ! !
1694
+