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.
- checksums.yaml +15 -0
- data/LICENSE.txt +21 -0
- data/README.md +53 -0
- data/app.rb +182 -0
- data/bin/mdbe +5 -0
- data/config.ru +2 -0
- data/environment.rb +8 -0
- data/lib/mdbe.rb +39 -0
- data/lib/mdbe/action_controller_debug_patch.rb +12 -0
- data/lib/mdbe/code_evaluation.rb +46 -0
- data/lib/mdbe/database_views.rb +24 -0
- data/lib/mdbe/database_views/abstract_dictionary.rb +69 -0
- data/lib/mdbe/database_views/abstract_exception.rb +25 -0
- data/lib/mdbe/database_views/array.rb +28 -0
- data/lib/mdbe/database_views/boolean.rb +12 -0
- data/lib/mdbe/database_views/class.rb +46 -0
- data/lib/mdbe/database_views/exception.rb +3 -0
- data/lib/mdbe/database_views/execblock.rb +5 -0
- data/lib/mdbe/database_views/fixnum.rb +5 -0
- data/lib/mdbe/database_views/float.rb +5 -0
- data/lib/mdbe/database_views/globals.rb +2 -0
- data/lib/mdbe/database_views/gsnmethod.rb +29 -0
- data/lib/mdbe/database_views/hash.rb +5 -0
- data/lib/mdbe/database_views/maglev_record.rb +42 -0
- data/lib/mdbe/database_views/module.rb +103 -0
- data/lib/mdbe/database_views/nilclass.rb +5 -0
- data/lib/mdbe/database_views/object.rb +80 -0
- data/lib/mdbe/database_views/proc.rb +3 -0
- data/lib/mdbe/database_views/repository.rb +3 -0
- data/lib/mdbe/database_views/ruby_workspace.rb +5 -0
- data/lib/mdbe/database_views/smalltalk_classes.rb +34 -0
- data/lib/mdbe/database_views/smalltalk_classes.st +60 -0
- data/lib/mdbe/database_views/string.rb +31 -0
- data/lib/mdbe/database_views/symbol.rb +32 -0
- data/lib/mdbe/database_views/system.rb +61 -0
- data/lib/mdbe/database_views/thread.rb +101 -0
- data/lib/mdbe/debug_server.rb +22 -0
- data/lib/mdbe/halt.rb +42 -0
- data/lib/mdbe/ruby_workspace.rb +29 -0
- data/lib/mdbe/version.rb +3 -0
- data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
- data/public/LICENSE +35 -0
- data/public/amber/CHANGELOG +65 -0
- data/public/amber/LICENSE +22 -0
- data/public/amber/Makefile +53 -0
- data/public/amber/README.md +30 -0
- data/public/amber/bin/amber +3 -0
- data/public/amber/bin/amberc +352 -0
- data/public/amber/bin/nodecompile.js +33 -0
- data/public/amber/bin/server +3 -0
- data/public/amber/bin/server.bat +3 -0
- data/public/amber/css/amber-normalize.css +468 -0
- data/public/amber/css/amber-normalize.less +501 -0
- data/public/amber/css/amber.css +539 -0
- data/public/amber/css/documentation.css +84 -0
- data/public/amber/css/profstef.css +75 -0
- data/public/amber/css/style.css +313 -0
- data/public/amber/documentation.html +37 -0
- data/public/amber/examples/Makefile +23 -0
- data/public/amber/examples/README +4 -0
- data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
- data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
- data/public/amber/examples/android/helloamber/Makefile +56 -0
- data/public/amber/examples/android/helloamber/README.md +80 -0
- data/public/amber/examples/android/helloamber/ant.properties +17 -0
- data/public/amber/examples/android/helloamber/assets/index.html +15 -0
- data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
- data/public/amber/examples/android/helloamber/build.xml +83 -0
- data/public/amber/examples/android/helloamber/local.properties +10 -0
- data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
- data/public/amber/examples/android/helloamber/project.properties +14 -0
- data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
- data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
- data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
- data/public/amber/examples/myproject/index.html +16 -0
- data/public/amber/examples/nodejs/README +9 -0
- data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
- data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
- data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
- data/public/amber/examples/nodejs/hello/Hello.st +9 -0
- data/public/amber/examples/nodejs/hello/Makefile +8 -0
- data/public/amber/examples/nodejs/hello/README +13 -0
- data/public/amber/examples/nodejs/hello/hello +1 -0
- data/public/amber/examples/nodejs/meta/Makefile +8 -0
- data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
- data/public/amber/examples/nodejs/meta/meta +1 -0
- data/public/amber/examples/nodejs/pystone/Makefile +8 -0
- data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
- data/public/amber/examples/nodejs/pystone/pystone +1 -0
- data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
- data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
- data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
- data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
- data/public/amber/examples/presentation/index.html +17 -0
- data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
- data/public/amber/examples/presentation/js/Presentation.js +2712 -0
- data/public/amber/examples/presentation/st/Presentation.st +1996 -0
- data/public/amber/examples/trysmalltalk/index.html +18 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
- data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
- data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
- data/public/amber/examples/twitterwall/index.html +35 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
- data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
- data/public/amber/examples/webos/README +11 -0
- data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
- data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/eris/Eris.css +0 -0
- data/public/amber/examples/webos/eris/Eris.st +86 -0
- data/public/amber/examples/webos/eris/Makefile +37 -0
- data/public/amber/examples/webos/eris/README +3 -0
- data/public/amber/examples/webos/eris/appinfo.json +10 -0
- data/public/amber/examples/webos/eris/index.html +12 -0
- data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
- data/public/amber/examples/webos/helloamber/Makefile +38 -0
- data/public/amber/examples/webos/helloamber/README +5 -0
- data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
- data/public/amber/examples/webos/helloamber/index.html +12 -0
- data/public/amber/favicon.ico +0 -0
- data/public/amber/images/amber.png +0 -0
- data/public/amber/images/amber.svg +706 -0
- data/public/amber/images/amber_small.png +0 -0
- data/public/amber/images/off.amber.png +0 -0
- data/public/amber/images/off.png +0 -0
- data/public/amber/images/offHover.amber.png +0 -0
- data/public/amber/images/offHover.png +0 -0
- data/public/amber/images/presentation.png +0 -0
- data/public/amber/images/profstef.png +0 -0
- data/public/amber/images/sprite.amber.png +0 -0
- data/public/amber/images/sprite.png +0 -0
- data/public/amber/images/tinylogo.amber.png +0 -0
- data/public/amber/images/tinylogo.png +0 -0
- data/public/amber/images/twitterwall.png +0 -0
- data/public/amber/index.html +55 -0
- data/public/amber/js/Additional-Examples.deploy.js +15 -0
- data/public/amber/js/Additional-Examples.js +21 -0
- data/public/amber/js/Benchfib.deploy.js +132 -0
- data/public/amber/js/Benchfib.js +167 -0
- data/public/amber/js/Canvas.deploy.js +2446 -0
- data/public/amber/js/Canvas.js +3547 -0
- data/public/amber/js/Compiler-Tests.deploy.js +97 -0
- data/public/amber/js/Compiler-Tests.js +137 -0
- data/public/amber/js/Compiler.deploy.js +1877 -0
- data/public/amber/js/Compiler.js +2622 -0
- data/public/amber/js/Documentation.deploy.js +961 -0
- data/public/amber/js/Documentation.js +1376 -0
- data/public/amber/js/Examples.deploy.js +53 -0
- data/public/amber/js/Examples.js +73 -0
- data/public/amber/js/IDE.deploy.js +3557 -0
- data/public/amber/js/IDE.js +5002 -0
- data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
- data/public/amber/js/Kernel-Announcements.js +152 -0
- data/public/amber/js/Kernel-Classes.deploy.js +774 -0
- data/public/amber/js/Kernel-Classes.js +1095 -0
- data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
- data/public/amber/js/Kernel-Collections.js +4427 -0
- data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
- data/public/amber/js/Kernel-Exceptions.js +349 -0
- data/public/amber/js/Kernel-Methods.deploy.js +573 -0
- data/public/amber/js/Kernel-Methods.js +807 -0
- data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
- data/public/amber/js/Kernel-Objects.js +4107 -0
- data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
- data/public/amber/js/Kernel-Tests.js +2053 -0
- data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
- data/public/amber/js/Kernel-Transcript.js +202 -0
- data/public/amber/js/Maglev-Core.deploy.js +2996 -0
- data/public/amber/js/Maglev-Core.js +4246 -0
- data/public/amber/js/Maglev-Database-Explorer.deploy.js +4476 -0
- data/public/amber/js/Maglev-Database-Explorer.js +6232 -0
- data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
- data/public/amber/js/Maglev-Vendor.js +465 -0
- data/public/amber/js/README.md +5 -0
- data/public/amber/js/SUnit.deploy.js +351 -0
- data/public/amber/js/SUnit.js +501 -0
- data/public/amber/js/amber.js +273 -0
- data/public/amber/js/boot.js +602 -0
- data/public/amber/js/compat.js +22 -0
- data/public/amber/js/init.js +9 -0
- data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
- data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
- data/public/amber/js/lib/CodeMirror/amber.css +21 -0
- data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
- data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
- data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
- data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
- data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
- data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
- data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
- data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
- data/public/amber/js/lib/showdown.js +419 -0
- data/public/amber/js/parser.js +4222 -0
- data/public/amber/js/parser.pegjs +223 -0
- data/public/amber/learn.html +40 -0
- data/public/amber/repl/Makefile +8 -0
- data/public/amber/repl/REPL.js +124 -0
- data/public/amber/repl/REPL.st +56 -0
- data/public/amber/repl/amber.js +18085 -0
- data/public/amber/server/FileServer.st +576 -0
- data/public/amber/server/Makefile +8 -0
- data/public/amber/server/server.js +13049 -0
- data/public/amber/st/Benchfib.js +297 -0
- data/public/amber/st/Benchfib.st +124 -0
- data/public/amber/st/Canvas.st +968 -0
- data/public/amber/st/Compiler-Tests.st +471 -0
- data/public/amber/st/Compiler.st +1445 -0
- data/public/amber/st/Documentation.st +758 -0
- data/public/amber/st/Examples.js +100 -0
- data/public/amber/st/Examples.st +38 -0
- data/public/amber/st/IDE.st +2404 -0
- data/public/amber/st/Kernel-Announcements.st +61 -0
- data/public/amber/st/Kernel-Classes.st +462 -0
- data/public/amber/st/Kernel-Collections.st +1611 -0
- data/public/amber/st/Kernel-Exceptions.st +124 -0
- data/public/amber/st/Kernel-Methods.st +291 -0
- data/public/amber/st/Kernel-Objects.st +1587 -0
- data/public/amber/st/Kernel-Tests.st +953 -0
- data/public/amber/st/Kernel-Transcript.st +70 -0
- data/public/amber/st/Maglev-Core.st +1694 -0
- data/public/amber/st/Maglev-Database-Explorer.st +3148 -0
- data/public/amber/st/Maglev-Vendor.st +151 -0
- data/public/amber/st/Makefile +104 -0
- data/public/amber/st/README.md +4 -0
- data/public/amber/st/SUnit.st +172 -0
- data/public/css/bootstrap-combined.no-icons.min.css +731 -0
- data/public/css/bootstrap.css +6811 -0
- data/public/css/images/animated-overlay.gif +0 -0
- data/public/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/css/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/css/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/css/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/jquery-ui.min.css +5 -0
- data/public/css/smalltalk_code.css +42 -0
- data/public/css/style.css +210 -0
- data/public/images/bg_tile.png +0 -0
- data/public/images/maglev-logo.gif +0 -0
- data/public/images/mchammer.gif +0 -0
- data/public/images/rails_tiny.png +0 -0
- data/public/images/ruby.png +0 -0
- data/public/images/ruby_smalltalk_bridge.png +0 -0
- data/public/images/smalltalk.png +0 -0
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/index.html +118 -0
- data/public/libs/bootstrap.min.js +7 -0
- data/public/libs/codemirror/CONTRIBUTING.md +72 -0
- data/public/libs/codemirror/LICENSE +23 -0
- data/public/libs/codemirror/README.md +11 -0
- data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
- data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
- data/public/libs/codemirror/addon/display/placeholder.js +54 -0
- data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
- data/public/libs/codemirror/addon/edit/closetag.js +86 -0
- data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
- data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
- data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
- data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
- data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
- data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
- data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
- data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
- data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
- data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
- data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
- data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
- data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
- data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
- data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
- data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
- data/public/libs/codemirror/addon/lint/lint.css +96 -0
- data/public/libs/codemirror/addon/lint/lint.js +197 -0
- data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
- data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
- data/public/libs/codemirror/addon/mode/overlay.js +59 -0
- data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
- data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
- data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
- data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
- data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
- data/public/libs/codemirror/addon/search/search.js +131 -0
- data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
- data/public/libs/codemirror/addon/selection/active-line.js +39 -0
- data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
- data/public/libs/codemirror/bin/compress +91 -0
- data/public/libs/codemirror/bin/lint +11 -0
- data/public/libs/codemirror/demo/activeline.html +70 -0
- data/public/libs/codemirror/demo/bidi.html +61 -0
- data/public/libs/codemirror/demo/btree.html +87 -0
- data/public/libs/codemirror/demo/buffers.html +98 -0
- data/public/libs/codemirror/demo/changemode.html +50 -0
- data/public/libs/codemirror/demo/closebrackets.html +63 -0
- data/public/libs/codemirror/demo/closetag.html +37 -0
- data/public/libs/codemirror/demo/complete.html +70 -0
- data/public/libs/codemirror/demo/emacs.html +60 -0
- data/public/libs/codemirror/demo/folding.html +69 -0
- data/public/libs/codemirror/demo/fullscreen.html +147 -0
- data/public/libs/codemirror/demo/html5complete.html +92 -0
- data/public/libs/codemirror/demo/indentwrap.html +49 -0
- data/public/libs/codemirror/demo/lint.html +90 -0
- data/public/libs/codemirror/demo/loadmode.html +40 -0
- data/public/libs/codemirror/demo/marker.html +59 -0
- data/public/libs/codemirror/demo/markselection.html +36 -0
- data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
- data/public/libs/codemirror/demo/multiplex.html +60 -0
- data/public/libs/codemirror/demo/mustache.html +59 -0
- data/public/libs/codemirror/demo/placeholder.html +36 -0
- data/public/libs/codemirror/demo/preview.html +76 -0
- data/public/libs/codemirror/demo/resize.html +49 -0
- data/public/libs/codemirror/demo/runmode.html +50 -0
- data/public/libs/codemirror/demo/search.html +85 -0
- data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
- data/public/libs/codemirror/demo/theme.html +89 -0
- data/public/libs/codemirror/demo/variableheight.html +52 -0
- data/public/libs/codemirror/demo/vim.html +65 -0
- data/public/libs/codemirror/demo/visibletabs.html +53 -0
- data/public/libs/codemirror/demo/widget.html +74 -0
- data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
- data/public/libs/codemirror/index.html +487 -0
- data/public/libs/codemirror/keymap/emacs.js +30 -0
- data/public/libs/codemirror/keymap/vim.js +3044 -0
- data/public/libs/codemirror/lib/codemirror.css +253 -0
- data/public/libs/codemirror/lib/codemirror.js +5585 -0
- data/public/libs/codemirror/mode/apl/apl.js +160 -0
- data/public/libs/codemirror/mode/apl/index.html +61 -0
- data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
- data/public/libs/codemirror/mode/asterisk/index.html +142 -0
- data/public/libs/codemirror/mode/clike/clike.js +302 -0
- data/public/libs/codemirror/mode/clike/index.html +103 -0
- data/public/libs/codemirror/mode/clike/scala.html +767 -0
- data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
- data/public/libs/codemirror/mode/clojure/index.html +76 -0
- data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
- data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
- data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
- data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
- data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
- data/public/libs/codemirror/mode/css/css.js +567 -0
- data/public/libs/codemirror/mode/css/index.html +58 -0
- data/public/libs/codemirror/mode/css/scss.html +145 -0
- data/public/libs/codemirror/mode/css/scss_test.js +80 -0
- data/public/libs/codemirror/mode/css/test.js +113 -0
- data/public/libs/codemirror/mode/d/d.js +205 -0
- data/public/libs/codemirror/mode/d/index.html +262 -0
- data/public/libs/codemirror/mode/diff/diff.js +32 -0
- data/public/libs/codemirror/mode/diff/index.html +105 -0
- data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
- data/public/libs/codemirror/mode/ecl/index.html +39 -0
- data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
- data/public/libs/codemirror/mode/erlang/index.html +64 -0
- data/public/libs/codemirror/mode/gas/gas.js +326 -0
- data/public/libs/codemirror/mode/gas/index.html +57 -0
- data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
- data/public/libs/codemirror/mode/gfm/index.html +74 -0
- data/public/libs/codemirror/mode/gfm/test.js +112 -0
- data/public/libs/codemirror/mode/go/go.js +165 -0
- data/public/libs/codemirror/mode/go/index.html +74 -0
- data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
- data/public/libs/codemirror/mode/groovy/index.html +73 -0
- data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
- data/public/libs/codemirror/mode/haskell/index.html +62 -0
- data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
- data/public/libs/codemirror/mode/haxe/index.html +90 -0
- data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
- data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
- data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
- data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
- data/public/libs/codemirror/mode/http/http.js +98 -0
- data/public/libs/codemirror/mode/http/index.html +32 -0
- data/public/libs/codemirror/mode/javascript/index.html +92 -0
- data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
- data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
- data/public/libs/codemirror/mode/jinja2/index.html +38 -0
- data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
- data/public/libs/codemirror/mode/less/index.html +741 -0
- data/public/libs/codemirror/mode/less/less.js +266 -0
- data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
- data/public/libs/codemirror/mode/livescript/index.html +446 -0
- data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
- data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
- data/public/libs/codemirror/mode/lua/index.html +74 -0
- data/public/libs/codemirror/mode/lua/lua.js +140 -0
- data/public/libs/codemirror/mode/markdown/index.html +344 -0
- data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
- data/public/libs/codemirror/mode/markdown/test.js +636 -0
- data/public/libs/codemirror/mode/meta.js +75 -0
- data/public/libs/codemirror/mode/mirc/index.html +149 -0
- data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
- data/public/libs/codemirror/mode/ntriples/index.html +33 -0
- data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
- data/public/libs/codemirror/mode/ocaml/index.html +131 -0
- data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
- data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
- data/public/libs/codemirror/mode/pascal/index.html +48 -0
- data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
- data/public/libs/codemirror/mode/perl/LICENSE +19 -0
- data/public/libs/codemirror/mode/perl/index.html +62 -0
- data/public/libs/codemirror/mode/perl/perl.js +816 -0
- data/public/libs/codemirror/mode/php/index.html +51 -0
- data/public/libs/codemirror/mode/php/php.js +129 -0
- data/public/libs/codemirror/mode/pig/index.html +42 -0
- data/public/libs/codemirror/mode/pig/pig.js +171 -0
- data/public/libs/codemirror/mode/properties/index.html +41 -0
- data/public/libs/codemirror/mode/properties/properties.js +63 -0
- data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/python/index.html +135 -0
- data/public/libs/codemirror/mode/python/python.js +340 -0
- data/public/libs/codemirror/mode/q/index.html +131 -0
- data/public/libs/codemirror/mode/q/q.js +124 -0
- data/public/libs/codemirror/mode/r/LICENSE +24 -0
- data/public/libs/codemirror/mode/r/index.html +74 -0
- data/public/libs/codemirror/mode/r/r.js +141 -0
- data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
- data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
- data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
- data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/rst/index.html +524 -0
- data/public/libs/codemirror/mode/rst/rst.js +550 -0
- data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
- data/public/libs/codemirror/mode/ruby/index.html +173 -0
- data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
- data/public/libs/codemirror/mode/rust/index.html +48 -0
- data/public/libs/codemirror/mode/rust/rust.js +432 -0
- data/public/libs/codemirror/mode/sass/index.html +54 -0
- data/public/libs/codemirror/mode/sass/sass.js +349 -0
- data/public/libs/codemirror/mode/scheme/index.html +65 -0
- data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
- data/public/libs/codemirror/mode/shell/index.html +51 -0
- data/public/libs/codemirror/mode/shell/shell.js +118 -0
- data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
- data/public/libs/codemirror/mode/sieve/index.html +81 -0
- data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
- data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
- data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
- data/public/libs/codemirror/mode/smarty/index.html +83 -0
- data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
- data/public/libs/codemirror/mode/sparql/index.html +42 -0
- data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
- data/public/libs/codemirror/mode/sql/index.html +68 -0
- data/public/libs/codemirror/mode/sql/sql.js +268 -0
- data/public/libs/codemirror/mode/stex/index.html +98 -0
- data/public/libs/codemirror/mode/stex/stex.js +246 -0
- data/public/libs/codemirror/mode/stex/test.js +117 -0
- data/public/libs/codemirror/mode/tcl/index.html +129 -0
- data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
- data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
- data/public/libs/codemirror/mode/tiki/index.html +81 -0
- data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
- data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
- data/public/libs/codemirror/mode/turtle/index.html +39 -0
- data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
- data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/vb/index.html +88 -0
- data/public/libs/codemirror/mode/vb/vb.js +259 -0
- data/public/libs/codemirror/mode/vbscript/index.html +42 -0
- data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
- data/public/libs/codemirror/mode/velocity/index.html +103 -0
- data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
- data/public/libs/codemirror/mode/verilog/index.html +121 -0
- data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
- data/public/libs/codemirror/mode/xml/index.html +45 -0
- data/public/libs/codemirror/mode/xml/xml.js +328 -0
- data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
- data/public/libs/codemirror/mode/xquery/index.html +221 -0
- data/public/libs/codemirror/mode/xquery/test.js +64 -0
- data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
- data/public/libs/codemirror/mode/yaml/index.html +68 -0
- data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
- data/public/libs/codemirror/mode/z80/index.html +39 -0
- data/public/libs/codemirror/mode/z80/z80.js +85 -0
- data/public/libs/codemirror/package.json +21 -0
- data/public/libs/codemirror/test/doc_test.js +329 -0
- data/public/libs/codemirror/test/driver.js +138 -0
- data/public/libs/codemirror/test/index.html +182 -0
- data/public/libs/codemirror/test/lint/acorn.js +1593 -0
- data/public/libs/codemirror/test/lint/lint.js +112 -0
- data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
- data/public/libs/codemirror/test/lint/walk.js +216 -0
- data/public/libs/codemirror/test/mode_test.css +10 -0
- data/public/libs/codemirror/test/mode_test.js +192 -0
- data/public/libs/codemirror/test/phantom_driver.js +31 -0
- data/public/libs/codemirror/test/run.js +33 -0
- data/public/libs/codemirror/test/test.js +1400 -0
- data/public/libs/codemirror/test/vim_test.js +1688 -0
- data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
- data/public/libs/codemirror/theme/ambiance.css +75 -0
- data/public/libs/codemirror/theme/blackboard.css +25 -0
- data/public/libs/codemirror/theme/cobalt.css +18 -0
- data/public/libs/codemirror/theme/eclipse.css +25 -0
- data/public/libs/codemirror/theme/elegant.css +10 -0
- data/public/libs/codemirror/theme/erlang-dark.css +21 -0
- data/public/libs/codemirror/theme/lesser-dark.css +44 -0
- data/public/libs/codemirror/theme/midnight.css +52 -0
- data/public/libs/codemirror/theme/monokai.css +28 -0
- data/public/libs/codemirror/theme/neat.css +9 -0
- data/public/libs/codemirror/theme/night.css +21 -0
- data/public/libs/codemirror/theme/rubyblue.css +21 -0
- data/public/libs/codemirror/theme/solarized.css +207 -0
- data/public/libs/codemirror/theme/twilight.css +26 -0
- data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
- data/public/libs/codemirror/theme/xq-dark.css +46 -0
- data/public/libs/codemirror/theme/xq-light.css +43 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
- data/public/libs/font-awesome/css/font-awesome.css +1268 -0
- data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
- data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
- data/public/libs/font-awesome/less/bootstrap.less +78 -0
- data/public/libs/font-awesome/less/core.less +132 -0
- data/public/libs/font-awesome/less/extras.less +79 -0
- data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
- data/public/libs/font-awesome/less/font-awesome.less +32 -0
- data/public/libs/font-awesome/less/icons.less +330 -0
- data/public/libs/font-awesome/less/mixins.less +34 -0
- data/public/libs/font-awesome/less/path.less +15 -0
- data/public/libs/font-awesome/less/variables.less +9 -0
- data/public/libs/jquery-1.10.0.min.js +6 -0
- data/public/libs/jquery-ui.min.js +12 -0
- data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
- data/public/libs/jquery.livequery.js +226 -0
- data/public/libs/jsPlumbInitializer.js +72 -0
- data/public/libs/jstree/README.txt +10 -0
- data/public/libs/jstree/_demo/_dump.sql +20 -0
- data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
- data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
- data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
- data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
- data/public/libs/jstree/_demo/_install.txt +6 -0
- data/public/libs/jstree/_demo/config.php +14 -0
- data/public/libs/jstree/_demo/file.png +0 -0
- data/public/libs/jstree/_demo/folder.png +0 -0
- data/public/libs/jstree/_demo/index.html +461 -0
- data/public/libs/jstree/_demo/root.png +0 -0
- data/public/libs/jstree/_demo/server.php +69 -0
- data/public/libs/jstree/_docs/!style.css +48 -0
- data/public/libs/jstree/_docs/_drive.png +0 -0
- data/public/libs/jstree/_docs/_html_data.html +2 -0
- data/public/libs/jstree/_docs/_json_data.json +4 -0
- data/public/libs/jstree/_docs/_search_data.json +6 -0
- data/public/libs/jstree/_docs/_search_result.json +1 -0
- data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
- data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
- data/public/libs/jstree/_docs/checkbox.html +171 -0
- data/public/libs/jstree/_docs/contextmenu.html +121 -0
- data/public/libs/jstree/_docs/cookies.html +97 -0
- data/public/libs/jstree/_docs/core.html +689 -0
- data/public/libs/jstree/_docs/crrm.html +316 -0
- data/public/libs/jstree/_docs/dnd.html +199 -0
- data/public/libs/jstree/_docs/hotkeys.html +82 -0
- data/public/libs/jstree/_docs/html_data.html +175 -0
- data/public/libs/jstree/_docs/index.html +86 -0
- data/public/libs/jstree/_docs/json_data.html +249 -0
- data/public/libs/jstree/_docs/languages.html +152 -0
- data/public/libs/jstree/_docs/logo.png +0 -0
- data/public/libs/jstree/_docs/search.html +153 -0
- data/public/libs/jstree/_docs/sort.html +85 -0
- data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
- data/public/libs/jstree/_docs/syntax/!style.css +511 -0
- data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
- data/public/libs/jstree/_docs/syntax/help.png +0 -0
- data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
- data/public/libs/jstree/_docs/syntax/printer.png +0 -0
- data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
- data/public/libs/jstree/_docs/themeroller.html +107 -0
- data/public/libs/jstree/_docs/themes.html +127 -0
- data/public/libs/jstree/_docs/types.html +178 -0
- data/public/libs/jstree/_docs/ui.html +197 -0
- data/public/libs/jstree/_docs/unique.html +85 -0
- data/public/libs/jstree/_docs/xml_data.html +218 -0
- data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
- data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
- data/public/libs/jstree/_lib/jquery.js +5 -0
- data/public/libs/jstree/jquery.jstree.js +4564 -0
- data/public/libs/jstree/themes/apple/bg.jpg +0 -0
- data/public/libs/jstree/themes/apple/d.png +0 -0
- data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/apple/style.css +61 -0
- data/public/libs/jstree/themes/apple/throbber.gif +0 -0
- data/public/libs/jstree/themes/classic/d.gif +0 -0
- data/public/libs/jstree/themes/classic/d.png +0 -0
- data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/classic/style.css +77 -0
- data/public/libs/jstree/themes/classic/throbber.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.png +0 -0
- data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/style.css +84 -0
- data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
- data/public/libs/jstree/themes/default/d.gif +0 -0
- data/public/libs/jstree/themes/default/d.png +0 -0
- data/public/libs/jstree/themes/default/style.css +74 -0
- data/public/libs/jstree/themes/default/throbber.gif +0 -0
- data/public/themes/geo-bootstrap/README.md +25 -0
- data/public/themes/geo-bootstrap/img/flames.gif +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings-white.png +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings.png +0 -0
- data/public/themes/geo-bootstrap/img/microfab.gif +0 -0
- data/public/themes/geo-bootstrap/img/progress.gif +0 -0
- data/public/themes/geo-bootstrap/img/rainbow.gif +0 -0
- data/public/themes/geo-bootstrap/img/stars.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/7upspot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/americanflag.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/community.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer-01.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/construction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider1.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider3.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider4.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/drudgesiren.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/emailme.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/funky.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/geocities.jpg +0 -0
- data/public/themes/geo-bootstrap/img/test/hacker.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/heart.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/hot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ie_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mailkitten.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mchammer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/noframes.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/notepad.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ns_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/sign-in.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/spinningearth.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/underconstruction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/wabwalk.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/webtrips.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/yahooweek.gif +0 -0
- data/public/themes/geo-bootstrap/package.json +21 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.css +1109 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.min.css +9 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.css +6462 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.min.css +9 -0
- 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
|
+
|