gollum 2.4.4 → 2.4.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of gollum might be problematic. Click here for more details.
- data/gollum.gemspec +100 -19
- data/lib/gollum.rb +2 -3
- data/lib/gollum/frontend/public/gollum/css/gollum.css +3 -1
- data/lib/gollum/frontend/public/gollum/css/template.css +8 -12
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ace.js +64 -60
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/anchor.js +56 -62
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/anchor_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/background_tokenizer.js +56 -63
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/background_tokenizer_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/command_manager.js +11 -11
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/command_manager_test.js +59 -53
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/default_commands.js +46 -39
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/multi_select_commands.js +32 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/config.js +62 -47
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/config_test.js +71 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/css/editor.css +82 -41
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/document.js +126 -145
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/document_test.js +25 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session.js +484 -467
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/bracket_match.js +30 -63
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/fold.js +29 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/fold_line.js +27 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/folding.js +47 -55
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session_test.js +61 -41
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor.js +506 -517
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_change_document_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_highlight_selected_word_test.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_navigation_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_text_edit_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/static_highlight.js +28 -38
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/static_highlight_test.js +9 -14
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/textarea.js +26 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/emacs.js +44 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/hash_handler.js +45 -52
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/keybinding.js +25 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/state_handler.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/textinput.js +230 -165
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim.js +76 -49
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/commands.js +66 -61
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/aliases.js +36 -43
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/motions.js +138 -156
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/operators.js +35 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/util.js +18 -18
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/registers.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/cursor.js +116 -101
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/gutter.js +117 -83
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/marker.js +60 -71
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/text.js +163 -102
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/text_test.js +60 -41
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/browser_focus.js +26 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/dom.js +26 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/es5-shim.js +24 -1
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event.js +52 -54
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event_emitter.js +32 -39
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event_emitter_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/keys.js +9 -1
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/lang.js +73 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/net.js +10 -3
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/oop.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/regexp.js +2 -2
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/useragent.js +55 -58
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/package.json +8 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/test_highlight_rules.js +144 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/text_javascript.txt +52 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_c9search.json +175 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_c_cpp.json +124 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_clojure.json +248 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_coffee.json +188 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_coldfusion.json +41 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_csharp.json +42 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_css.json +231 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_diff.json +732 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_glsl.json +185 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_golang.json +362 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_groovy.json +529 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_haxe.json +195 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_html.json +150 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_java.json +139 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_javascript.json +555 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_json.json +611 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_jsx.json +79 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_latex.json +196 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_less.json +292 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_liquid.json +698 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_lua.json +451 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_luapage.json +824 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_markdown.json +1202 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_ocaml.json +260 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_perl.json +311 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_pgsql.json +1020 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_php.json +238 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_powershell.json +255 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_python.json +205 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_ruby.json +104 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scad.json +267 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scala.json +748 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scss.json +181 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_sh.json +434 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_sql.json +73 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_svg.json +931 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_tcl.json +536 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_text.json +58 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_textile.json +195 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_xml.json +705 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_xquery.json +64 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_yaml.json +260 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/abap.js +77 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/abap_highlight_rules.js +133 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/asciidoc.js +64 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/asciidoc_highlight_rules.js +234 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/cstyle.js +195 -55
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/html.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/xml.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/xquery.js +31 -31
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c9search.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c9search_highlight_rules.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c_cpp.js +25 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c_cpp_highlight_rules.js +67 -60
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/clojure.js +25 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/clojure_highlight_rules.js +112 -130
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee.js +29 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/coffee-script.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/helpers.js +22 -7
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/lexer.js +140 -64
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/nodes.js +479 -237
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/parser.js +321 -230
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/parser_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/rewriter.js +62 -28
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/scope.js +39 -20
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_highlight_rules.js +183 -82
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_highlight_rules_test.js +226 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_worker.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion_highlight_rules.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/csharp_highlight_rules.js +7 -21
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css.js +36 -47
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css/csslint.js +202 -697
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_highlight_rules.js +51 -84
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_highlight_rules_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_worker.js +68 -40
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_worker_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/dart.js +62 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/dart_highlight_rules.js +192 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/diff.js +25 -31
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/diff_highlight_rules.js +27 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/doc_comment_highlight_rules.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/asciidoc.js +142 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/c9search.js +31 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/coffee.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/coffee_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/cstyle.js +30 -51
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/cstyle_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/diff.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/fold_mode.js +35 -30
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/html.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/html_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/latex.js +162 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/lua.js +163 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/markdown.js +125 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/mixed.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/pythonic.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/pythonic_test.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/xml.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/xml_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/glsl.js +52 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/glsl_highlight_rules.js +81 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/golang.js +0 -1
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/golang_highlight_rules.js +15 -22
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/groovy_highlight_rules.js +28 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haml.js +62 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haml_highlight_rules.js +132 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haxe.js +20 -25
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haxe_highlight_rules.js +11 -15
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_highlight_rules.js +32 -38
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_highlight_rules_test.js +162 -69
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jade.js +58 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jade_highlight_rules.js +347 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/java_highlight_rules.js +18 -29
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript.js +28 -51
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript/jshint.js +4838 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_highlight_rules.js +98 -180
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_highlight_rules_test.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_worker.js +163 -64
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_worker_test.js +38 -40
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_highlight_rules.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_worker.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_worker_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jsp.js +56 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jsp_highlight_rules.js +85 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js +3 -2
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex_highlight_rules.js +1 -1
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/less.js +25 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/less_highlight_rules.js +25 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid_highlight_rules.js +146 -161
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid_highlight_rules_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lisp.js +60 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lisp_highlight_rules.js +127 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lua.js +116 -56
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lua_highlight_rules.js +75 -101
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene.js +16 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene_highlight_rules.js +49 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene_highlight_rules_test.js +99 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/makefile.js +62 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/makefile_highlight_rules.js +75 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown.js +35 -41
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown_highlight_rules.js +29 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown_highlight_rules_test.js +100 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/matching_brace_outdent.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/matching_parens_outdent.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/objectivec.js +62 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/objectivec_highlight_rules.js +343 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ocaml.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ocaml_highlight_rules.js +39 -53
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/perl.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/perl_highlight_rules.js +39 -52
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/pgsql.js +33 -24
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/pgsql_highlight_rules.js +55 -51
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/php.js +57 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/php_highlight_rules.js +53 -153
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/powershell_highlight_rules.js +31 -21
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python.js +28 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python_highlight_rules.js +44 -61
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/r.js +135 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/r_highlight_rules.js +190 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rdoc.js +36 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rdoc_highlight_rules.js +99 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rhtml.js +67 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rhtml_highlight_rules.js +49 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby.js +27 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby_highlight_rules.js +102 -90
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby_highlight_rules_test.js +29 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scad.js +25 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scad_highlight_rules.js +32 -54
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scala_highlight_rules.js +18 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scss.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scss_highlight_rules.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sh.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sh_highlight_rules.js +48 -64
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sql.js +28 -18
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sql_highlight_rules.js +41 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/stylus.js +62 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/stylus_highlight_rules.js +175 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/svg.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/svg_highlight_rules.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tcl.js +110 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tcl_highlight_rules.js +180 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tex.js +48 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tex_highlight_rules.js +107 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text.js +26 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text_highlight_rules.js +57 -46
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/textile.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/textile_highlight_rules.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/typescript.js +68 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/typescript_highlight_rules.js +98 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_highlight_rules.js +27 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_highlight_rules_test.js +183 -78
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_util.js +30 -38
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery.js +32 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/JSONParseTreeHandler.js +92 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQueryParser.js +32954 -42497
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/visitors/SyntaxHighlighter.js +316 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery_highlight_rules.js +31 -44
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery_worker.js +48 -57
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/yaml.js +30 -18
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/yaml_highlight_rules.js +48 -40
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/model/editor.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/default_gutter_handler.js +126 -40
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/default_handlers.js +35 -43
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/dragdrop.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/fold_handler.js +78 -39
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/mouse_event.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/mouse_handler.js +39 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/multi_select_handler.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/multi_select.js +234 -103
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/multi_select_test.js +26 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/placeholder.js +30 -39
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/placeholder_test.js +27 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range.js +190 -201
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_list.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_list_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/renderloop.js +31 -49
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/requirejs/text.js +27 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/scrollbar.js +52 -55
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search.js +91 -105
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search_highlight.js +31 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search_test.js +47 -37
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/selection.js +138 -153
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/selection_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/split.js +67 -105
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/all.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/all_browser.js +3 -2
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/assertions.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/benchmark.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/mockrenderer.js +30 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/ambiance.css +217 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/ambiance.js +33 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/chrome.css +37 -38
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/chrome.js +27 -34
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds.css +53 -47
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds_midnight.css +54 -48
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds_midnight.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/cobalt.css +58 -59
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/cobalt.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/crimson_editor.css +33 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/crimson_editor.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dawn.css +52 -64
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dawn.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dreamweaver.css +33 -36
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dreamweaver.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/eclipse.css +29 -25
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/eclipse.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/github.css +14 -21
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/github.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/idle_fingers.css +48 -60
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/idle_fingers.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/kr_theme.css +52 -57
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/kr_theme.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore.css +53 -71
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore_soft.css +54 -77
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore_soft.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/mono_industrial.css +60 -70
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/mono_industrial.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/monokai.css +55 -72
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/monokai.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/pastel_on_dark.css +55 -64
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/pastel_on_dark.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_dark.css +48 -66
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_dark.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_light.css +49 -61
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_light.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/textmate.css +38 -44
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/textmate.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow.css +59 -87
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night.css +59 -87
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_blue.css +59 -90
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_blue.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_bright.css +59 -87
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_bright.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_eighties.css +57 -85
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_eighties.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/twilight.css +54 -78
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/twilight.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/vibrant_ink.css +45 -68
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/vibrant_ink.js +28 -35
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/xcode.css +111 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/xcode.js +39 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/token_iterator.js +37 -50
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/token_iterator_test.js +26 -33
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/tokenizer.js +40 -41
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/tokenizer_dev.js +205 -0
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/undomanager.js +48 -55
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/virtual_renderer.js +254 -277
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/virtual_renderer_test.js +25 -32
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/worker.js +22 -4
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/worker_client.js +97 -56
- data/lib/gollum/frontend/public/gollum/livepreview/licenses/ace/LICENSE.txt +24 -476
- data/lib/gollum/frontend/public/gollum/livepreview/licenses/licenses.txt +2 -2
- data/lib/gollum/frontend/views/page.rb +3 -2
- metadata +102 -21
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/Position.js +0 -59
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/StringLexer.js +0 -1686
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XMLLexer.js +0 -2993
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQDTLexer.js +0 -69
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQDTParser.js +0 -63
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQueryLexer.js +0 -10363
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQuerySemanticHighlighter.js +0 -165
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/antlr3-all.js +0 -6177
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/xquery.js +0 -55
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/definitions.js +0 -696
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/lexer.js +0 -598
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/options.js +0 -61
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/parser.js +0 -2072
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/jshint.js +0 -4469
- data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/jslint.js +0 -6396
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
* Copyright (c)
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2009-2012 Jeremy Ashkenas
|
3
3
|
*
|
4
4
|
* Permission is hereby granted, free of charge, to any person
|
5
5
|
* obtaining a copy of this software and associated documentation
|
@@ -24,18 +24,18 @@
|
|
24
24
|
*/
|
25
25
|
|
26
26
|
define(function(require, exports, module) {
|
27
|
-
// Generated by CoffeeScript 1.
|
27
|
+
// Generated by CoffeeScript 1.3.3
|
28
28
|
|
29
|
-
var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref, _ref1,
|
29
|
+
var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, some, starts, unfoldSoak, utility, _ref, _ref1,
|
30
30
|
__hasProp = {}.hasOwnProperty,
|
31
|
-
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; },
|
31
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
|
32
32
|
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
33
33
|
|
34
34
|
Scope = require('./scope').Scope;
|
35
35
|
|
36
36
|
_ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED;
|
37
37
|
|
38
|
-
_ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last;
|
38
|
+
_ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some;
|
39
39
|
|
40
40
|
exports.extend = extend;
|
41
41
|
|
@@ -58,14 +58,14 @@ define(function(require, exports, module) {
|
|
58
58
|
|
59
59
|
exports.Base = Base = (function() {
|
60
60
|
|
61
|
-
Base.name = 'Base';
|
62
|
-
|
63
61
|
function Base() {}
|
64
62
|
|
65
63
|
Base.prototype.compile = function(o, lvl) {
|
66
64
|
var node;
|
67
65
|
o = extend({}, o);
|
68
|
-
if (lvl)
|
66
|
+
if (lvl) {
|
67
|
+
o.level = lvl;
|
68
|
+
}
|
69
69
|
node = this.unfoldSoak(o) || this;
|
70
70
|
node.tab = o.indent;
|
71
71
|
if (o.level === LEVEL_TOP || !node.isStatement(o)) {
|
@@ -140,17 +140,25 @@ define(function(require, exports, module) {
|
|
140
140
|
var i;
|
141
141
|
i = list.length;
|
142
142
|
while (i--) {
|
143
|
-
if (!(list[i] instanceof Comment))
|
143
|
+
if (!(list[i] instanceof Comment)) {
|
144
|
+
return list[i];
|
145
|
+
}
|
144
146
|
}
|
145
147
|
return null;
|
146
148
|
};
|
147
149
|
|
148
150
|
Base.prototype.toString = function(idt, name) {
|
149
151
|
var tree;
|
150
|
-
if (idt == null)
|
151
|
-
|
152
|
+
if (idt == null) {
|
153
|
+
idt = '';
|
154
|
+
}
|
155
|
+
if (name == null) {
|
156
|
+
name = this.constructor.name;
|
157
|
+
}
|
152
158
|
tree = '\n' + idt + name;
|
153
|
-
if (this.soak)
|
159
|
+
if (this.soak) {
|
160
|
+
tree += '?';
|
161
|
+
}
|
154
162
|
this.eachChild(function(node) {
|
155
163
|
return tree += node.toString(idt + TAB);
|
156
164
|
});
|
@@ -159,7 +167,9 @@ define(function(require, exports, module) {
|
|
159
167
|
|
160
168
|
Base.prototype.eachChild = function(func) {
|
161
169
|
var attr, child, _i, _j, _len, _len1, _ref2, _ref3;
|
162
|
-
if (!this.children)
|
170
|
+
if (!this.children) {
|
171
|
+
return this;
|
172
|
+
}
|
163
173
|
_ref2 = this.children;
|
164
174
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
165
175
|
attr = _ref2[_i];
|
@@ -167,7 +177,9 @@ define(function(require, exports, module) {
|
|
167
177
|
_ref3 = flatten([this[attr]]);
|
168
178
|
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
|
169
179
|
child = _ref3[_j];
|
170
|
-
if (func(child) === false)
|
180
|
+
if (func(child) === false) {
|
181
|
+
return this;
|
182
|
+
}
|
171
183
|
}
|
172
184
|
}
|
173
185
|
}
|
@@ -176,7 +188,9 @@ define(function(require, exports, module) {
|
|
176
188
|
|
177
189
|
Base.prototype.traverseChildren = function(crossScope, func) {
|
178
190
|
return this.eachChild(function(child) {
|
179
|
-
if (func(child) === false)
|
191
|
+
if (func(child) === false) {
|
192
|
+
return false;
|
193
|
+
}
|
180
194
|
return child.traverseChildren(crossScope, func);
|
181
195
|
});
|
182
196
|
};
|
@@ -220,8 +234,6 @@ define(function(require, exports, module) {
|
|
220
234
|
|
221
235
|
__extends(Block, _super);
|
222
236
|
|
223
|
-
Block.name = 'Block';
|
224
|
-
|
225
237
|
function Block(nodes) {
|
226
238
|
this.expressions = compact(flatten(nodes || []));
|
227
239
|
}
|
@@ -259,7 +271,9 @@ define(function(require, exports, module) {
|
|
259
271
|
_ref2 = this.expressions;
|
260
272
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
261
273
|
exp = _ref2[_i];
|
262
|
-
if (exp.isStatement(o))
|
274
|
+
if (exp.isStatement(o)) {
|
275
|
+
return true;
|
276
|
+
}
|
263
277
|
}
|
264
278
|
return false;
|
265
279
|
};
|
@@ -269,7 +283,9 @@ define(function(require, exports, module) {
|
|
269
283
|
_ref2 = this.expressions;
|
270
284
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
271
285
|
exp = _ref2[_i];
|
272
|
-
if (exp.jumps(o))
|
286
|
+
if (exp.jumps(o)) {
|
287
|
+
return exp;
|
288
|
+
}
|
273
289
|
}
|
274
290
|
};
|
275
291
|
|
@@ -290,7 +306,9 @@ define(function(require, exports, module) {
|
|
290
306
|
};
|
291
307
|
|
292
308
|
Block.prototype.compile = function(o, level) {
|
293
|
-
if (o == null)
|
309
|
+
if (o == null) {
|
310
|
+
o = {};
|
311
|
+
}
|
294
312
|
if (o.scope) {
|
295
313
|
return Block.__super__.compile.call(this, o, level);
|
296
314
|
} else {
|
@@ -315,7 +333,9 @@ define(function(require, exports, module) {
|
|
315
333
|
code = node.compile(o);
|
316
334
|
if (!node.isStatement(o)) {
|
317
335
|
code = "" + this.tab + code + ";";
|
318
|
-
if (node instanceof Literal)
|
336
|
+
if (node instanceof Literal) {
|
337
|
+
code = "" + code + "\n";
|
338
|
+
}
|
319
339
|
}
|
320
340
|
codes.push(code);
|
321
341
|
} else {
|
@@ -351,7 +371,9 @@ define(function(require, exports, module) {
|
|
351
371
|
_results = [];
|
352
372
|
for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
|
353
373
|
exp = _ref2[i];
|
354
|
-
if (!(exp.unwrap() instanceof Comment))
|
374
|
+
if (!(exp.unwrap() instanceof Comment)) {
|
375
|
+
break;
|
376
|
+
}
|
355
377
|
_results.push(exp);
|
356
378
|
}
|
357
379
|
return _results;
|
@@ -366,7 +388,9 @@ define(function(require, exports, module) {
|
|
366
388
|
this.expressions = rest;
|
367
389
|
}
|
368
390
|
code = this.compileWithDeclarations(o);
|
369
|
-
if (o.bare)
|
391
|
+
if (o.bare) {
|
392
|
+
return code;
|
393
|
+
}
|
370
394
|
return "" + prelude + "(function() {\n" + code + "\n}).call(this);\n";
|
371
395
|
};
|
372
396
|
|
@@ -377,7 +401,9 @@ define(function(require, exports, module) {
|
|
377
401
|
for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
|
378
402
|
exp = _ref2[i];
|
379
403
|
exp = exp.unwrap();
|
380
|
-
if (!(exp instanceof Comment || exp instanceof Literal))
|
404
|
+
if (!(exp instanceof Comment || exp instanceof Literal)) {
|
405
|
+
break;
|
406
|
+
}
|
381
407
|
}
|
382
408
|
o = merge(o, {
|
383
409
|
level: LEVEL_TOP
|
@@ -394,11 +420,17 @@ define(function(require, exports, module) {
|
|
394
420
|
declars = o.scope.hasDeclarations();
|
395
421
|
assigns = scope.hasAssignments;
|
396
422
|
if (declars || assigns) {
|
397
|
-
if (i)
|
423
|
+
if (i) {
|
424
|
+
code += '\n';
|
425
|
+
}
|
398
426
|
code += "" + this.tab + "var ";
|
399
|
-
if (declars)
|
427
|
+
if (declars) {
|
428
|
+
code += scope.declaredVariables().join(', ');
|
429
|
+
}
|
400
430
|
if (assigns) {
|
401
|
-
if (declars)
|
431
|
+
if (declars) {
|
432
|
+
code += ",\n" + (this.tab + TAB);
|
433
|
+
}
|
402
434
|
code += scope.assignedVariables().join(",\n" + (this.tab + TAB));
|
403
435
|
}
|
404
436
|
code += ';\n';
|
@@ -408,7 +440,9 @@ define(function(require, exports, module) {
|
|
408
440
|
};
|
409
441
|
|
410
442
|
Block.wrap = function(nodes) {
|
411
|
-
if (nodes.length === 1 && nodes[0] instanceof Block)
|
443
|
+
if (nodes.length === 1 && nodes[0] instanceof Block) {
|
444
|
+
return nodes[0];
|
445
|
+
}
|
412
446
|
return new Block(nodes);
|
413
447
|
};
|
414
448
|
|
@@ -420,8 +454,6 @@ define(function(require, exports, module) {
|
|
420
454
|
|
421
455
|
__extends(Literal, _super);
|
422
456
|
|
423
|
-
Literal.name = 'Literal';
|
424
|
-
|
425
457
|
function Literal(value) {
|
426
458
|
this.value = value;
|
427
459
|
}
|
@@ -453,12 +485,14 @@ define(function(require, exports, module) {
|
|
453
485
|
if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {
|
454
486
|
return this;
|
455
487
|
}
|
456
|
-
if (this.value === 'continue' && !(o != null ? o.loop : void 0))
|
488
|
+
if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {
|
489
|
+
return this;
|
490
|
+
}
|
457
491
|
};
|
458
492
|
|
459
493
|
Literal.prototype.compileNode = function(o) {
|
460
494
|
var code, _ref2;
|
461
|
-
code = this.
|
495
|
+
code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value;
|
462
496
|
if (this.isStatement()) {
|
463
497
|
return "" + this.tab + code + ";";
|
464
498
|
} else {
|
@@ -474,14 +508,78 @@ define(function(require, exports, module) {
|
|
474
508
|
|
475
509
|
})(Base);
|
476
510
|
|
511
|
+
exports.Undefined = (function(_super) {
|
512
|
+
|
513
|
+
__extends(Undefined, _super);
|
514
|
+
|
515
|
+
function Undefined() {
|
516
|
+
return Undefined.__super__.constructor.apply(this, arguments);
|
517
|
+
}
|
518
|
+
|
519
|
+
Undefined.prototype.isAssignable = NO;
|
520
|
+
|
521
|
+
Undefined.prototype.isComplex = NO;
|
522
|
+
|
523
|
+
Undefined.prototype.compileNode = function(o) {
|
524
|
+
if (o.level >= LEVEL_ACCESS) {
|
525
|
+
return '(void 0)';
|
526
|
+
} else {
|
527
|
+
return 'void 0';
|
528
|
+
}
|
529
|
+
};
|
530
|
+
|
531
|
+
return Undefined;
|
532
|
+
|
533
|
+
})(Base);
|
534
|
+
|
535
|
+
exports.Null = (function(_super) {
|
536
|
+
|
537
|
+
__extends(Null, _super);
|
538
|
+
|
539
|
+
function Null() {
|
540
|
+
return Null.__super__.constructor.apply(this, arguments);
|
541
|
+
}
|
542
|
+
|
543
|
+
Null.prototype.isAssignable = NO;
|
544
|
+
|
545
|
+
Null.prototype.isComplex = NO;
|
546
|
+
|
547
|
+
Null.prototype.compileNode = function() {
|
548
|
+
return "null";
|
549
|
+
};
|
550
|
+
|
551
|
+
return Null;
|
552
|
+
|
553
|
+
})(Base);
|
554
|
+
|
555
|
+
exports.Bool = (function(_super) {
|
556
|
+
|
557
|
+
__extends(Bool, _super);
|
558
|
+
|
559
|
+
Bool.prototype.isAssignable = NO;
|
560
|
+
|
561
|
+
Bool.prototype.isComplex = NO;
|
562
|
+
|
563
|
+
Bool.prototype.compileNode = function() {
|
564
|
+
return this.val;
|
565
|
+
};
|
566
|
+
|
567
|
+
function Bool(val) {
|
568
|
+
this.val = val;
|
569
|
+
}
|
570
|
+
|
571
|
+
return Bool;
|
572
|
+
|
573
|
+
})(Base);
|
574
|
+
|
477
575
|
exports.Return = Return = (function(_super) {
|
478
576
|
|
479
577
|
__extends(Return, _super);
|
480
578
|
|
481
|
-
Return.name = 'Return';
|
482
|
-
|
483
579
|
function Return(expr) {
|
484
|
-
if (expr && !expr.unwrap().isUndefined)
|
580
|
+
if (expr && !expr.unwrap().isUndefined) {
|
581
|
+
this.expression = expr;
|
582
|
+
}
|
485
583
|
}
|
486
584
|
|
487
585
|
Return.prototype.children = ['expression'];
|
@@ -514,13 +612,15 @@ define(function(require, exports, module) {
|
|
514
612
|
|
515
613
|
__extends(Value, _super);
|
516
614
|
|
517
|
-
Value.name = 'Value';
|
518
|
-
|
519
615
|
function Value(base, props, tag) {
|
520
|
-
if (!props && base instanceof Value)
|
616
|
+
if (!props && base instanceof Value) {
|
617
|
+
return base;
|
618
|
+
}
|
521
619
|
this.base = base;
|
522
620
|
this.properties = props || [];
|
523
|
-
if (tag)
|
621
|
+
if (tag) {
|
622
|
+
this[tag] = true;
|
623
|
+
}
|
524
624
|
return this;
|
525
625
|
}
|
526
626
|
|
@@ -560,7 +660,9 @@ define(function(require, exports, module) {
|
|
560
660
|
_ref2 = this.properties.concat(this.base);
|
561
661
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
562
662
|
node = _ref2[_i];
|
563
|
-
if (node.soak || node instanceof Call)
|
663
|
+
if (node.soak || node instanceof Call) {
|
664
|
+
return false;
|
665
|
+
}
|
564
666
|
}
|
565
667
|
return true;
|
566
668
|
};
|
@@ -578,7 +680,9 @@ define(function(require, exports, module) {
|
|
578
680
|
};
|
579
681
|
|
580
682
|
Value.prototype.isObject = function(onlyGenerated) {
|
581
|
-
if (this.properties.length)
|
683
|
+
if (this.properties.length) {
|
684
|
+
return false;
|
685
|
+
}
|
582
686
|
return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
|
583
687
|
};
|
584
688
|
|
@@ -605,7 +709,9 @@ define(function(require, exports, module) {
|
|
605
709
|
bref = new Literal(o.scope.freeVariable('base'));
|
606
710
|
base = new Value(new Parens(new Assign(bref, base)));
|
607
711
|
}
|
608
|
-
if (!name)
|
712
|
+
if (!name) {
|
713
|
+
return [base, bref];
|
714
|
+
}
|
609
715
|
if (name.isComplex()) {
|
610
716
|
nref = new Literal(o.scope.freeVariable('name'));
|
611
717
|
name = new Index(new Assign(nref, name.index));
|
@@ -632,7 +738,9 @@ define(function(require, exports, module) {
|
|
632
738
|
Value.prototype.unfoldSoak = function(o) {
|
633
739
|
var result,
|
634
740
|
_this = this;
|
635
|
-
if (this.unfoldedSoak != null)
|
741
|
+
if (this.unfoldedSoak != null) {
|
742
|
+
return this.unfoldedSoak;
|
743
|
+
}
|
636
744
|
result = (function() {
|
637
745
|
var fst, i, ifn, prop, ref, snd, _i, _len, _ref2;
|
638
746
|
if (ifn = _this.base.unfoldSoak(o)) {
|
@@ -642,7 +750,9 @@ define(function(require, exports, module) {
|
|
642
750
|
_ref2 = _this.properties;
|
643
751
|
for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
|
644
752
|
prop = _ref2[i];
|
645
|
-
if (!prop.soak)
|
753
|
+
if (!prop.soak) {
|
754
|
+
continue;
|
755
|
+
}
|
646
756
|
prop.soak = false;
|
647
757
|
fst = new Value(_this.base, _this.properties.slice(0, i));
|
648
758
|
snd = new Value(_this.base, _this.properties.slice(i));
|
@@ -668,8 +778,6 @@ define(function(require, exports, module) {
|
|
668
778
|
|
669
779
|
__extends(Comment, _super);
|
670
780
|
|
671
|
-
Comment.name = 'Comment';
|
672
|
-
|
673
781
|
function Comment(comment) {
|
674
782
|
this.comment = comment;
|
675
783
|
}
|
@@ -681,7 +789,9 @@ define(function(require, exports, module) {
|
|
681
789
|
Comment.prototype.compileNode = function(o, level) {
|
682
790
|
var code;
|
683
791
|
code = '/*' + multident(this.comment, this.tab) + ("\n" + this.tab + "*/\n");
|
684
|
-
if ((level || o.level) === LEVEL_TOP)
|
792
|
+
if ((level || o.level) === LEVEL_TOP) {
|
793
|
+
code = o.indent + code;
|
794
|
+
}
|
685
795
|
return code;
|
686
796
|
};
|
687
797
|
|
@@ -693,8 +803,6 @@ define(function(require, exports, module) {
|
|
693
803
|
|
694
804
|
__extends(Call, _super);
|
695
805
|
|
696
|
-
Call.name = 'Call';
|
697
|
-
|
698
806
|
function Call(variable, args, soak) {
|
699
807
|
this.args = args != null ? args : [];
|
700
808
|
this.soak = soak;
|
@@ -718,8 +826,10 @@ define(function(require, exports, module) {
|
|
718
826
|
|
719
827
|
Call.prototype.superReference = function(o) {
|
720
828
|
var accesses, method, name;
|
721
|
-
method = o.scope.
|
722
|
-
if (!method)
|
829
|
+
method = o.scope.namedMethod();
|
830
|
+
if (!method) {
|
831
|
+
throw SyntaxError('cannot call super outside of a function.');
|
832
|
+
}
|
723
833
|
name = method.name;
|
724
834
|
if (name == null) {
|
725
835
|
throw SyntaxError('cannot call super on an anonymous function.');
|
@@ -736,11 +846,19 @@ define(function(require, exports, module) {
|
|
736
846
|
}
|
737
847
|
};
|
738
848
|
|
849
|
+
Call.prototype.superThis = function(o) {
|
850
|
+
var method;
|
851
|
+
method = o.scope.method;
|
852
|
+
return (method && !method.klass && method.context) || "this";
|
853
|
+
};
|
854
|
+
|
739
855
|
Call.prototype.unfoldSoak = function(o) {
|
740
856
|
var call, ifn, left, list, rite, _i, _len, _ref2, _ref3;
|
741
857
|
if (this.soak) {
|
742
858
|
if (this.variable) {
|
743
|
-
if (ifn = unfoldSoak(o, this, 'variable'))
|
859
|
+
if (ifn = unfoldSoak(o, this, 'variable')) {
|
860
|
+
return ifn;
|
861
|
+
}
|
744
862
|
_ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1];
|
745
863
|
} else {
|
746
864
|
left = new Literal(this.superReference(o));
|
@@ -761,9 +879,13 @@ define(function(require, exports, module) {
|
|
761
879
|
call = call.variable;
|
762
880
|
continue;
|
763
881
|
}
|
764
|
-
if (!(call.variable instanceof Value))
|
882
|
+
if (!(call.variable instanceof Value)) {
|
883
|
+
break;
|
884
|
+
}
|
765
885
|
list.push(call);
|
766
|
-
if (!((call = call.variable.base) instanceof Call))
|
886
|
+
if (!((call = call.variable.base) instanceof Call)) {
|
887
|
+
break;
|
888
|
+
}
|
767
889
|
}
|
768
890
|
_ref3 = list.reverse();
|
769
891
|
for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
|
@@ -794,7 +916,9 @@ define(function(require, exports, module) {
|
|
794
916
|
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
795
917
|
prop = _ref2[_j];
|
796
918
|
if (prop instanceof Assign || prop instanceof Comment) {
|
797
|
-
if (!obj)
|
919
|
+
if (!obj) {
|
920
|
+
nodes.push(obj = new Obj(properties = [], true));
|
921
|
+
}
|
798
922
|
properties.push(prop);
|
799
923
|
} else {
|
800
924
|
nodes.push(prop);
|
@@ -807,7 +931,9 @@ define(function(require, exports, module) {
|
|
807
931
|
|
808
932
|
Call.prototype.compileNode = function(o) {
|
809
933
|
var arg, args, code, _ref2;
|
810
|
-
if ((_ref2 = this.variable) != null)
|
934
|
+
if ((_ref2 = this.variable) != null) {
|
935
|
+
_ref2.front = this.front;
|
936
|
+
}
|
811
937
|
if (code = Splat.compileSplattedArray(o, this.args, true)) {
|
812
938
|
return this.compileSplat(o, code);
|
813
939
|
}
|
@@ -822,20 +948,20 @@ define(function(require, exports, module) {
|
|
822
948
|
return _results;
|
823
949
|
})()).join(', ');
|
824
950
|
if (this.isSuper) {
|
825
|
-
return this.superReference(o) + (".call(
|
951
|
+
return this.superReference(o) + (".call(" + (this.superThis(o)) + (args && ', ' + args) + ")");
|
826
952
|
} else {
|
827
953
|
return (this.isNew ? 'new ' : '') + this.variable.compile(o, LEVEL_ACCESS) + ("(" + args + ")");
|
828
954
|
}
|
829
955
|
};
|
830
956
|
|
831
957
|
Call.prototype.compileSuper = function(args, o) {
|
832
|
-
return "" + (this.superReference(o)) + ".call(
|
958
|
+
return "" + (this.superReference(o)) + ".call(" + (this.superThis(o)) + (args.length ? ', ' : '') + args + ")";
|
833
959
|
};
|
834
960
|
|
835
961
|
Call.prototype.compileSplat = function(o, splatArgs) {
|
836
962
|
var base, fun, idt, name, ref;
|
837
963
|
if (this.isSuper) {
|
838
|
-
return "" + (this.superReference(o)) + ".apply(this, " + splatArgs + ")";
|
964
|
+
return "" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", " + splatArgs + ")";
|
839
965
|
}
|
840
966
|
if (this.isNew) {
|
841
967
|
idt = this.tab + TAB;
|
@@ -847,7 +973,9 @@ define(function(require, exports, module) {
|
|
847
973
|
fun = "(" + ref + " = " + (base.compile(o, LEVEL_LIST)) + ")" + (name.compile(o));
|
848
974
|
} else {
|
849
975
|
fun = base.compile(o, LEVEL_ACCESS);
|
850
|
-
if (SIMPLENUM.test(fun))
|
976
|
+
if (SIMPLENUM.test(fun)) {
|
977
|
+
fun = "(" + fun + ")";
|
978
|
+
}
|
851
979
|
if (name) {
|
852
980
|
ref = fun;
|
853
981
|
fun += name.compile(o);
|
@@ -866,8 +994,6 @@ define(function(require, exports, module) {
|
|
866
994
|
|
867
995
|
__extends(Extends, _super);
|
868
996
|
|
869
|
-
Extends.name = 'Extends';
|
870
|
-
|
871
997
|
function Extends(child, parent) {
|
872
998
|
this.child = child;
|
873
999
|
this.parent = parent;
|
@@ -887,8 +1013,6 @@ define(function(require, exports, module) {
|
|
887
1013
|
|
888
1014
|
__extends(Access, _super);
|
889
1015
|
|
890
|
-
Access.name = 'Access';
|
891
|
-
|
892
1016
|
function Access(name, tag) {
|
893
1017
|
this.name = name;
|
894
1018
|
this.name.asKey = true;
|
@@ -917,8 +1041,6 @@ define(function(require, exports, module) {
|
|
917
1041
|
|
918
1042
|
__extends(Index, _super);
|
919
1043
|
|
920
|
-
Index.name = 'Index';
|
921
|
-
|
922
1044
|
function Index(index) {
|
923
1045
|
this.index = index;
|
924
1046
|
}
|
@@ -941,8 +1063,6 @@ define(function(require, exports, module) {
|
|
941
1063
|
|
942
1064
|
__extends(Range, _super);
|
943
1065
|
|
944
|
-
Range.name = 'Range';
|
945
|
-
|
946
1066
|
Range.prototype.children = ['from', 'to'];
|
947
1067
|
|
948
1068
|
function Range(from, to, tag) {
|
@@ -963,25 +1083,39 @@ define(function(require, exports, module) {
|
|
963
1083
|
_ref4 = step.cache(o, LEVEL_LIST), this.step = _ref4[0], this.stepVar = _ref4[1];
|
964
1084
|
}
|
965
1085
|
_ref5 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref5[0], this.toNum = _ref5[1];
|
966
|
-
if (this.stepVar)
|
1086
|
+
if (this.stepVar) {
|
1087
|
+
return this.stepNum = this.stepVar.match(SIMPLENUM);
|
1088
|
+
}
|
967
1089
|
};
|
968
1090
|
|
969
1091
|
Range.prototype.compileNode = function(o) {
|
970
1092
|
var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3;
|
971
|
-
if (!this.fromVar)
|
972
|
-
|
1093
|
+
if (!this.fromVar) {
|
1094
|
+
this.compileVariables(o);
|
1095
|
+
}
|
1096
|
+
if (!o.index) {
|
1097
|
+
return this.compileArray(o);
|
1098
|
+
}
|
973
1099
|
known = this.fromNum && this.toNum;
|
974
1100
|
idx = del(o, 'index');
|
975
1101
|
idxName = del(o, 'name');
|
976
1102
|
namedIndex = idxName && idxName !== idx;
|
977
1103
|
varPart = "" + idx + " = " + this.fromC;
|
978
|
-
if (this.toC !== this.toVar)
|
979
|
-
|
1104
|
+
if (this.toC !== this.toVar) {
|
1105
|
+
varPart += ", " + this.toC;
|
1106
|
+
}
|
1107
|
+
if (this.step !== this.stepVar) {
|
1108
|
+
varPart += ", " + this.step;
|
1109
|
+
}
|
980
1110
|
_ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1];
|
981
1111
|
condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [+this.fromNum, +this.toNum], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar);
|
982
1112
|
stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--";
|
983
|
-
if (namedIndex)
|
984
|
-
|
1113
|
+
if (namedIndex) {
|
1114
|
+
varPart = "" + idxName + " = " + varPart;
|
1115
|
+
}
|
1116
|
+
if (namedIndex) {
|
1117
|
+
stepPart = "" + idxName + " = " + stepPart;
|
1118
|
+
}
|
985
1119
|
return "" + varPart + "; " + condPart + "; " + stepPart;
|
986
1120
|
};
|
987
1121
|
|
@@ -993,7 +1127,9 @@ define(function(require, exports, module) {
|
|
993
1127
|
for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); }
|
994
1128
|
return _results;
|
995
1129
|
}).apply(this);
|
996
|
-
if (this.exclusive)
|
1130
|
+
if (this.exclusive) {
|
1131
|
+
range.pop();
|
1132
|
+
}
|
997
1133
|
return "[" + (range.join(', ')) + "]";
|
998
1134
|
}
|
999
1135
|
idt = this.tab + TAB;
|
@@ -1014,7 +1150,9 @@ define(function(require, exports, module) {
|
|
1014
1150
|
return n instanceof Literal && n.value === 'arguments' && !n.asKey;
|
1015
1151
|
}) : void 0;
|
1016
1152
|
};
|
1017
|
-
if (hasArgs(this.from) || hasArgs(this.to))
|
1153
|
+
if (hasArgs(this.from) || hasArgs(this.to)) {
|
1154
|
+
args = ', arguments';
|
1155
|
+
}
|
1018
1156
|
return "(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")";
|
1019
1157
|
};
|
1020
1158
|
|
@@ -1026,8 +1164,6 @@ define(function(require, exports, module) {
|
|
1026
1164
|
|
1027
1165
|
__extends(Slice, _super);
|
1028
1166
|
|
1029
|
-
Slice.name = 'Slice';
|
1030
|
-
|
1031
1167
|
Slice.prototype.children = ['range'];
|
1032
1168
|
|
1033
1169
|
function Slice(range) {
|
@@ -1041,7 +1177,7 @@ define(function(require, exports, module) {
|
|
1041
1177
|
fromStr = from && from.compile(o, LEVEL_PAREN) || '0';
|
1042
1178
|
compiled = to && to.compile(o, LEVEL_PAREN);
|
1043
1179
|
if (to && !(!this.range.exclusive && +compiled === -1)) {
|
1044
|
-
toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? "" + (+compiled + 1) : (compiled = to.compile(o, LEVEL_ACCESS), "" + compiled + " + 1 || 9e9"));
|
1180
|
+
toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? "" + (+compiled + 1) : (compiled = to.compile(o, LEVEL_ACCESS), "+" + compiled + " + 1 || 9e9"));
|
1045
1181
|
}
|
1046
1182
|
return ".slice(" + fromStr + (toStr || '') + ")";
|
1047
1183
|
};
|
@@ -1054,8 +1190,6 @@ define(function(require, exports, module) {
|
|
1054
1190
|
|
1055
1191
|
__extends(Obj, _super);
|
1056
1192
|
|
1057
|
-
Obj.name = 'Obj';
|
1058
|
-
|
1059
1193
|
function Obj(props, generated) {
|
1060
1194
|
this.generated = generated != null ? generated : false;
|
1061
1195
|
this.objects = this.properties = props || [];
|
@@ -1064,25 +1198,14 @@ define(function(require, exports, module) {
|
|
1064
1198
|
Obj.prototype.children = ['properties'];
|
1065
1199
|
|
1066
1200
|
Obj.prototype.compileNode = function(o) {
|
1067
|
-
var i, idt, indent, join, lastNoncom, node, obj, prop,
|
1201
|
+
var i, idt, indent, join, lastNoncom, node, obj, prop, props, _i, _len;
|
1068
1202
|
props = this.properties;
|
1069
|
-
|
1070
|
-
|
1071
|
-
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1072
|
-
prop = _ref2[_i];
|
1073
|
-
if (prop.isComplex()) prop = prop.variable;
|
1074
|
-
if (prop != null) {
|
1075
|
-
propName = prop.unwrapAll().value.toString();
|
1076
|
-
if (__indexOf.call(propNames, propName) >= 0) {
|
1077
|
-
throw SyntaxError("multiple object literal properties named \"" + propName + "\"");
|
1078
|
-
}
|
1079
|
-
propNames.push(propName);
|
1080
|
-
}
|
1203
|
+
if (!props.length) {
|
1204
|
+
return (this.front ? '({})' : '{}');
|
1081
1205
|
}
|
1082
|
-
if (!props.length) return (this.front ? '({})' : '{}');
|
1083
1206
|
if (this.generated) {
|
1084
|
-
for (
|
1085
|
-
node = props[
|
1207
|
+
for (_i = 0, _len = props.length; _i < _len; _i++) {
|
1208
|
+
node = props[_i];
|
1086
1209
|
if (node instanceof Value) {
|
1087
1210
|
throw new Error('cannot have an implicit value in an implicit object');
|
1088
1211
|
}
|
@@ -1091,9 +1214,9 @@ define(function(require, exports, module) {
|
|
1091
1214
|
idt = o.indent += TAB;
|
1092
1215
|
lastNoncom = this.lastNonComment(this.properties);
|
1093
1216
|
props = (function() {
|
1094
|
-
var
|
1217
|
+
var _j, _len1, _results;
|
1095
1218
|
_results = [];
|
1096
|
-
for (i =
|
1219
|
+
for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) {
|
1097
1220
|
prop = props[i];
|
1098
1221
|
join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
|
1099
1222
|
indent = prop instanceof Comment ? '' : idt;
|
@@ -1101,7 +1224,9 @@ define(function(require, exports, module) {
|
|
1101
1224
|
prop = new Assign(prop.properties[0].name, prop, 'object');
|
1102
1225
|
}
|
1103
1226
|
if (!(prop instanceof Comment)) {
|
1104
|
-
if (!(prop instanceof Assign))
|
1227
|
+
if (!(prop instanceof Assign)) {
|
1228
|
+
prop = new Assign(prop, prop, 'object');
|
1229
|
+
}
|
1105
1230
|
(prop.variable.base || prop.variable).asKey = true;
|
1106
1231
|
}
|
1107
1232
|
_results.push(indent + prop.compile(o, LEVEL_TOP) + join);
|
@@ -1122,7 +1247,9 @@ define(function(require, exports, module) {
|
|
1122
1247
|
_ref2 = this.properties;
|
1123
1248
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1124
1249
|
prop = _ref2[_i];
|
1125
|
-
if (prop.assigns(name))
|
1250
|
+
if (prop.assigns(name)) {
|
1251
|
+
return true;
|
1252
|
+
}
|
1126
1253
|
}
|
1127
1254
|
return false;
|
1128
1255
|
};
|
@@ -1135,8 +1262,6 @@ define(function(require, exports, module) {
|
|
1135
1262
|
|
1136
1263
|
__extends(Arr, _super);
|
1137
1264
|
|
1138
|
-
Arr.name = 'Arr';
|
1139
|
-
|
1140
1265
|
function Arr(objs) {
|
1141
1266
|
this.objects = objs || [];
|
1142
1267
|
}
|
@@ -1147,10 +1272,14 @@ define(function(require, exports, module) {
|
|
1147
1272
|
|
1148
1273
|
Arr.prototype.compileNode = function(o) {
|
1149
1274
|
var code, obj, objs;
|
1150
|
-
if (!this.objects.length)
|
1275
|
+
if (!this.objects.length) {
|
1276
|
+
return '[]';
|
1277
|
+
}
|
1151
1278
|
o.indent += TAB;
|
1152
1279
|
objs = this.filterImplicitObjects(this.objects);
|
1153
|
-
if (code = Splat.compileSplattedArray(o, objs))
|
1280
|
+
if (code = Splat.compileSplattedArray(o, objs)) {
|
1281
|
+
return code;
|
1282
|
+
}
|
1154
1283
|
code = ((function() {
|
1155
1284
|
var _i, _len, _results;
|
1156
1285
|
_results = [];
|
@@ -1172,7 +1301,9 @@ define(function(require, exports, module) {
|
|
1172
1301
|
_ref2 = this.objects;
|
1173
1302
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1174
1303
|
obj = _ref2[_i];
|
1175
|
-
if (obj.assigns(name))
|
1304
|
+
if (obj.assigns(name)) {
|
1305
|
+
return true;
|
1306
|
+
}
|
1176
1307
|
}
|
1177
1308
|
return false;
|
1178
1309
|
};
|
@@ -1185,8 +1316,6 @@ define(function(require, exports, module) {
|
|
1185
1316
|
|
1186
1317
|
__extends(Class, _super);
|
1187
1318
|
|
1188
|
-
Class.name = 'Class';
|
1189
|
-
|
1190
1319
|
function Class(variable, parent, body) {
|
1191
1320
|
this.variable = variable;
|
1192
1321
|
this.parent = parent;
|
@@ -1199,7 +1328,9 @@ define(function(require, exports, module) {
|
|
1199
1328
|
|
1200
1329
|
Class.prototype.determineName = function() {
|
1201
1330
|
var decl, tail;
|
1202
|
-
if (!this.variable)
|
1331
|
+
if (!this.variable) {
|
1332
|
+
return null;
|
1333
|
+
}
|
1203
1334
|
decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
|
1204
1335
|
if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {
|
1205
1336
|
throw SyntaxError("variable name may not be " + decl);
|
@@ -1209,12 +1340,16 @@ define(function(require, exports, module) {
|
|
1209
1340
|
|
1210
1341
|
Class.prototype.setContext = function(name) {
|
1211
1342
|
return this.body.traverseChildren(false, function(node) {
|
1212
|
-
if (node.classBody)
|
1343
|
+
if (node.classBody) {
|
1344
|
+
return false;
|
1345
|
+
}
|
1213
1346
|
if (node instanceof Literal && node.value === 'this') {
|
1214
1347
|
return node.value = name;
|
1215
1348
|
} else if (node instanceof Code) {
|
1216
1349
|
node.klass = name;
|
1217
|
-
if (node.bound)
|
1350
|
+
if (node.bound) {
|
1351
|
+
return node.context = name;
|
1352
|
+
}
|
1218
1353
|
}
|
1219
1354
|
});
|
1220
1355
|
};
|
@@ -1260,7 +1395,9 @@ define(function(require, exports, module) {
|
|
1260
1395
|
} else {
|
1261
1396
|
if (assign.variable["this"]) {
|
1262
1397
|
func["static"] = true;
|
1263
|
-
if (func.bound)
|
1398
|
+
if (func.bound) {
|
1399
|
+
func.context = name;
|
1400
|
+
}
|
1264
1401
|
} else {
|
1265
1402
|
assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]);
|
1266
1403
|
if (func instanceof Code && func.bound) {
|
@@ -1281,7 +1418,9 @@ define(function(require, exports, module) {
|
|
1281
1418
|
var _this = this;
|
1282
1419
|
return this.traverseChildren(false, function(child) {
|
1283
1420
|
var exps, i, node, _i, _len, _ref2;
|
1284
|
-
if (child instanceof Class)
|
1421
|
+
if (child instanceof Class) {
|
1422
|
+
return false;
|
1423
|
+
}
|
1285
1424
|
if (child instanceof Block) {
|
1286
1425
|
_ref2 = exps = child.expressions;
|
1287
1426
|
for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
|
@@ -1326,16 +1465,17 @@ define(function(require, exports, module) {
|
|
1326
1465
|
var call, decl, klass, lname, name, params, _ref2;
|
1327
1466
|
decl = this.determineName();
|
1328
1467
|
name = decl || '_Class';
|
1329
|
-
if (name.reserved)
|
1468
|
+
if (name.reserved) {
|
1469
|
+
name = "_" + name;
|
1470
|
+
}
|
1330
1471
|
lname = new Literal(name);
|
1331
1472
|
this.hoistDirectivePrologue();
|
1332
1473
|
this.setContext(name);
|
1333
1474
|
this.walkBody(name, o);
|
1334
1475
|
this.ensureConstructor(name);
|
1335
1476
|
this.body.spaced = true;
|
1336
|
-
if (!(this.ctor instanceof Code))
|
1337
|
-
|
1338
|
-
this.body.expressions.unshift(new Assign(new Value(new Literal(name), [new Access(new Literal('name'))]), new Literal("'" + name + "'")));
|
1477
|
+
if (!(this.ctor instanceof Code)) {
|
1478
|
+
this.body.expressions.unshift(this.ctor);
|
1339
1479
|
}
|
1340
1480
|
this.body.expressions.push(lname);
|
1341
1481
|
(_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives);
|
@@ -1349,7 +1489,9 @@ define(function(require, exports, module) {
|
|
1349
1489
|
params.push(new Param(this.superClass));
|
1350
1490
|
}
|
1351
1491
|
klass = new Parens(call, true);
|
1352
|
-
if (this.variable)
|
1492
|
+
if (this.variable) {
|
1493
|
+
klass = new Assign(this.variable, klass);
|
1494
|
+
}
|
1353
1495
|
return klass.compile(o);
|
1354
1496
|
};
|
1355
1497
|
|
@@ -1361,8 +1503,6 @@ define(function(require, exports, module) {
|
|
1361
1503
|
|
1362
1504
|
__extends(Assign, _super);
|
1363
1505
|
|
1364
|
-
Assign.name = 'Assign';
|
1365
|
-
|
1366
1506
|
function Assign(variable, value, context, options) {
|
1367
1507
|
var forbidden, name, _ref2;
|
1368
1508
|
this.variable = variable;
|
@@ -1396,7 +1536,9 @@ define(function(require, exports, module) {
|
|
1396
1536
|
if (this.variable.isArray() || this.variable.isObject()) {
|
1397
1537
|
return this.compilePatternMatch(o);
|
1398
1538
|
}
|
1399
|
-
if (this.variable.isSplice())
|
1539
|
+
if (this.variable.isSplice()) {
|
1540
|
+
return this.compileSplice(o);
|
1541
|
+
}
|
1400
1542
|
if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') {
|
1401
1543
|
return this.compileConditional(o);
|
1402
1544
|
}
|
@@ -1415,11 +1557,15 @@ define(function(require, exports, module) {
|
|
1415
1557
|
}
|
1416
1558
|
}
|
1417
1559
|
if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) {
|
1418
|
-
if (match[1])
|
1560
|
+
if (match[1]) {
|
1561
|
+
this.value.klass = match[1];
|
1562
|
+
}
|
1419
1563
|
this.value.name = (_ref3 = (_ref4 = (_ref5 = match[2]) != null ? _ref5 : match[3]) != null ? _ref4 : match[4]) != null ? _ref3 : match[5];
|
1420
1564
|
}
|
1421
1565
|
val = this.value.compile(o, LEVEL_LIST);
|
1422
|
-
if (this.context === 'object')
|
1566
|
+
if (this.context === 'object') {
|
1567
|
+
return "" + name + ": " + val;
|
1568
|
+
}
|
1423
1569
|
val = name + (" " + (this.context || '=') + " ") + val;
|
1424
1570
|
if (o.level <= LEVEL_LIST) {
|
1425
1571
|
return val;
|
@@ -1517,7 +1663,9 @@ define(function(require, exports, module) {
|
|
1517
1663
|
subpattern: true
|
1518
1664
|
}).compile(o, LEVEL_LIST));
|
1519
1665
|
}
|
1520
|
-
if (!(top || this.subpattern))
|
1666
|
+
if (!(top || this.subpattern)) {
|
1667
|
+
assigns.push(vvar);
|
1668
|
+
}
|
1521
1669
|
code = assigns.join(', ');
|
1522
1670
|
if (o.level < LEVEL_LIST) {
|
1523
1671
|
return code;
|
@@ -1529,10 +1677,12 @@ define(function(require, exports, module) {
|
|
1529
1677
|
Assign.prototype.compileConditional = function(o) {
|
1530
1678
|
var left, right, _ref2;
|
1531
1679
|
_ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1];
|
1532
|
-
if (left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
|
1680
|
+
if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
|
1533
1681
|
throw new Error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been defined.");
|
1534
1682
|
}
|
1535
|
-
if (__indexOf.call(this.context, "?") >= 0)
|
1683
|
+
if (__indexOf.call(this.context, "?") >= 0) {
|
1684
|
+
o.isExistentialEquals = true;
|
1685
|
+
}
|
1536
1686
|
return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compile(o);
|
1537
1687
|
};
|
1538
1688
|
|
@@ -1544,10 +1694,14 @@ define(function(require, exports, module) {
|
|
1544
1694
|
if (to) {
|
1545
1695
|
if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) {
|
1546
1696
|
to = +to.compile(o) - +fromRef;
|
1547
|
-
if (!exclusive)
|
1697
|
+
if (!exclusive) {
|
1698
|
+
to += 1;
|
1699
|
+
}
|
1548
1700
|
} else {
|
1549
1701
|
to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
|
1550
|
-
if (!exclusive)
|
1702
|
+
if (!exclusive) {
|
1703
|
+
to += ' + 1';
|
1704
|
+
}
|
1551
1705
|
}
|
1552
1706
|
} else {
|
1553
1707
|
to = "9e9";
|
@@ -1569,13 +1723,13 @@ define(function(require, exports, module) {
|
|
1569
1723
|
|
1570
1724
|
__extends(Code, _super);
|
1571
1725
|
|
1572
|
-
Code.name = 'Code';
|
1573
|
-
|
1574
1726
|
function Code(params, body, tag) {
|
1575
1727
|
this.params = params || [];
|
1576
1728
|
this.body = body || new Block;
|
1577
1729
|
this.bound = tag === 'boundfunc';
|
1578
|
-
if (this.bound)
|
1730
|
+
if (this.bound) {
|
1731
|
+
this.context = '_this';
|
1732
|
+
}
|
1579
1733
|
}
|
1580
1734
|
|
1581
1735
|
Code.prototype.children = ['params', 'body'];
|
@@ -1598,16 +1752,25 @@ define(function(require, exports, module) {
|
|
1598
1752
|
_ref2 = this.paramNames();
|
1599
1753
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1600
1754
|
name = _ref2[_i];
|
1601
|
-
if (!o.scope.check(name))
|
1755
|
+
if (!o.scope.check(name)) {
|
1756
|
+
o.scope.parameter(name);
|
1757
|
+
}
|
1602
1758
|
}
|
1603
1759
|
_ref3 = this.params;
|
1604
1760
|
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
|
1605
1761
|
param = _ref3[_j];
|
1606
|
-
if (!param.splat)
|
1762
|
+
if (!param.splat) {
|
1763
|
+
continue;
|
1764
|
+
}
|
1607
1765
|
_ref4 = this.params;
|
1608
1766
|
for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) {
|
1609
|
-
p = _ref4[_k];
|
1610
|
-
if (p
|
1767
|
+
p = _ref4[_k].name;
|
1768
|
+
if (p["this"]) {
|
1769
|
+
p = p.properties[0].name;
|
1770
|
+
}
|
1771
|
+
if (p.value) {
|
1772
|
+
o.scope.add(p.value, 'var', true);
|
1773
|
+
}
|
1611
1774
|
}
|
1612
1775
|
splats = new Assign(new Value(new Arr((function() {
|
1613
1776
|
var _l, _len3, _ref5, _results;
|
@@ -1626,7 +1789,9 @@ define(function(require, exports, module) {
|
|
1626
1789
|
param = _ref5[_l];
|
1627
1790
|
if (param.isComplex()) {
|
1628
1791
|
val = ref = param.asReference(o);
|
1629
|
-
if (param.value)
|
1792
|
+
if (param.value) {
|
1793
|
+
val = new Op('?', ref, param.value);
|
1794
|
+
}
|
1630
1795
|
exprs.push(new Assign(new Value(param.name), val, '=', {
|
1631
1796
|
param: true
|
1632
1797
|
}));
|
@@ -1638,10 +1803,14 @@ define(function(require, exports, module) {
|
|
1638
1803
|
exprs.push(new If(lit, val));
|
1639
1804
|
}
|
1640
1805
|
}
|
1641
|
-
if (!splats)
|
1806
|
+
if (!splats) {
|
1807
|
+
params.push(ref);
|
1808
|
+
}
|
1642
1809
|
}
|
1643
1810
|
wasEmpty = this.body.isEmpty();
|
1644
|
-
if (splats)
|
1811
|
+
if (splats) {
|
1812
|
+
exprs.unshift(splats);
|
1813
|
+
}
|
1645
1814
|
if (exprs.length) {
|
1646
1815
|
(_ref6 = this.body.expressions).unshift.apply(_ref6, exprs);
|
1647
1816
|
}
|
@@ -1658,7 +1827,9 @@ define(function(require, exports, module) {
|
|
1658
1827
|
}
|
1659
1828
|
uniqs.push(name);
|
1660
1829
|
}
|
1661
|
-
if (!(wasEmpty || this.noReturn))
|
1830
|
+
if (!(wasEmpty || this.noReturn)) {
|
1831
|
+
this.body.makeReturn();
|
1832
|
+
}
|
1662
1833
|
if (this.bound) {
|
1663
1834
|
if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) {
|
1664
1835
|
this.bound = this.context = o.scope.parent.method.context;
|
@@ -1668,13 +1839,17 @@ define(function(require, exports, module) {
|
|
1668
1839
|
}
|
1669
1840
|
idt = o.indent;
|
1670
1841
|
code = 'function';
|
1671
|
-
if (this.ctor)
|
1842
|
+
if (this.ctor) {
|
1843
|
+
code += ' ' + this.name;
|
1844
|
+
}
|
1672
1845
|
code += '(' + params.join(', ') + ') {';
|
1673
1846
|
if (!this.body.isEmpty()) {
|
1674
1847
|
code += "\n" + (this.body.compileWithDeclarations(o)) + "\n" + this.tab;
|
1675
1848
|
}
|
1676
1849
|
code += '}';
|
1677
|
-
if (this.ctor)
|
1850
|
+
if (this.ctor) {
|
1851
|
+
return this.tab + code;
|
1852
|
+
}
|
1678
1853
|
if (this.front || (o.level >= LEVEL_ACCESS)) {
|
1679
1854
|
return "(" + code + ")";
|
1680
1855
|
} else {
|
@@ -1707,8 +1882,6 @@ define(function(require, exports, module) {
|
|
1707
1882
|
|
1708
1883
|
__extends(Param, _super);
|
1709
1884
|
|
1710
|
-
Param.name = 'Param';
|
1711
|
-
|
1712
1885
|
function Param(name, value, splat) {
|
1713
1886
|
var _ref2;
|
1714
1887
|
this.name = name;
|
@@ -1727,7 +1900,9 @@ define(function(require, exports, module) {
|
|
1727
1900
|
|
1728
1901
|
Param.prototype.asReference = function(o) {
|
1729
1902
|
var node;
|
1730
|
-
if (this.reference)
|
1903
|
+
if (this.reference) {
|
1904
|
+
return this.reference;
|
1905
|
+
}
|
1731
1906
|
node = this.name;
|
1732
1907
|
if (node["this"]) {
|
1733
1908
|
node = node.properties[0].name;
|
@@ -1738,7 +1913,9 @@ define(function(require, exports, module) {
|
|
1738
1913
|
node = new Literal(o.scope.freeVariable('arg'));
|
1739
1914
|
}
|
1740
1915
|
node = new Value(node);
|
1741
|
-
if (this.splat)
|
1916
|
+
if (this.splat) {
|
1917
|
+
node = new Splat(node);
|
1918
|
+
}
|
1742
1919
|
return this.reference = node;
|
1743
1920
|
};
|
1744
1921
|
|
@@ -1748,7 +1925,9 @@ define(function(require, exports, module) {
|
|
1748
1925
|
|
1749
1926
|
Param.prototype.names = function(name) {
|
1750
1927
|
var atParam, names, obj, _i, _len, _ref2;
|
1751
|
-
if (name == null)
|
1928
|
+
if (name == null) {
|
1929
|
+
name = this.name;
|
1930
|
+
}
|
1752
1931
|
atParam = function(obj) {
|
1753
1932
|
var value;
|
1754
1933
|
value = obj.properties[0].name.value;
|
@@ -1758,20 +1937,30 @@ define(function(require, exports, module) {
|
|
1758
1937
|
return [value];
|
1759
1938
|
}
|
1760
1939
|
};
|
1761
|
-
if (name instanceof Literal)
|
1762
|
-
|
1940
|
+
if (name instanceof Literal) {
|
1941
|
+
return [name.value];
|
1942
|
+
}
|
1943
|
+
if (name instanceof Value) {
|
1944
|
+
return atParam(name);
|
1945
|
+
}
|
1763
1946
|
names = [];
|
1764
1947
|
_ref2 = name.objects;
|
1765
1948
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1766
1949
|
obj = _ref2[_i];
|
1767
1950
|
if (obj instanceof Assign) {
|
1768
|
-
names.push(obj.
|
1769
|
-
} else if (obj
|
1770
|
-
names.push
|
1771
|
-
} else if (obj
|
1772
|
-
|
1951
|
+
names.push(obj.value.unwrap().value);
|
1952
|
+
} else if (obj instanceof Splat) {
|
1953
|
+
names.push(obj.name.unwrap().value);
|
1954
|
+
} else if (obj instanceof Value) {
|
1955
|
+
if (obj.isArray() || obj.isObject()) {
|
1956
|
+
names.push.apply(names, this.names(obj.base));
|
1957
|
+
} else if (obj["this"]) {
|
1958
|
+
names.push.apply(names, atParam(obj));
|
1959
|
+
} else {
|
1960
|
+
names.push(obj.base.value);
|
1961
|
+
}
|
1773
1962
|
} else {
|
1774
|
-
|
1963
|
+
throw SyntaxError("illegal parameter " + (obj.compile()));
|
1775
1964
|
}
|
1776
1965
|
}
|
1777
1966
|
return names;
|
@@ -1785,8 +1974,6 @@ define(function(require, exports, module) {
|
|
1785
1974
|
|
1786
1975
|
__extends(Splat, _super);
|
1787
1976
|
|
1788
|
-
Splat.name = 'Splat';
|
1789
|
-
|
1790
1977
|
Splat.prototype.children = ['name'];
|
1791
1978
|
|
1792
1979
|
Splat.prototype.isAssignable = YES;
|
@@ -1817,10 +2004,14 @@ define(function(require, exports, module) {
|
|
1817
2004
|
while ((node = list[++index]) && !(node instanceof Splat)) {
|
1818
2005
|
continue;
|
1819
2006
|
}
|
1820
|
-
if (index >= list.length)
|
2007
|
+
if (index >= list.length) {
|
2008
|
+
return '';
|
2009
|
+
}
|
1821
2010
|
if (list.length === 1) {
|
1822
2011
|
code = list[0].compile(o, LEVEL_LIST);
|
1823
|
-
if (apply)
|
2012
|
+
if (apply) {
|
2013
|
+
return code;
|
2014
|
+
}
|
1824
2015
|
return "" + (utility('slice')) + ".call(" + code + ")";
|
1825
2016
|
}
|
1826
2017
|
args = list.slice(index);
|
@@ -1853,8 +2044,6 @@ define(function(require, exports, module) {
|
|
1853
2044
|
|
1854
2045
|
__extends(While, _super);
|
1855
2046
|
|
1856
|
-
While.name = 'While';
|
1857
|
-
|
1858
2047
|
function While(condition, options) {
|
1859
2048
|
this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
|
1860
2049
|
this.guard = options != null ? options.guard : void 0;
|
@@ -1883,12 +2072,16 @@ define(function(require, exports, module) {
|
|
1883
2072
|
While.prototype.jumps = function() {
|
1884
2073
|
var expressions, node, _i, _len;
|
1885
2074
|
expressions = this.body.expressions;
|
1886
|
-
if (!expressions.length)
|
2075
|
+
if (!expressions.length) {
|
2076
|
+
return false;
|
2077
|
+
}
|
1887
2078
|
for (_i = 0, _len = expressions.length; _i < _len; _i++) {
|
1888
2079
|
node = expressions[_i];
|
1889
2080
|
if (node.jumps({
|
1890
2081
|
loop: true
|
1891
|
-
}))
|
2082
|
+
})) {
|
2083
|
+
return node;
|
2084
|
+
}
|
1892
2085
|
}
|
1893
2086
|
return false;
|
1894
2087
|
};
|
@@ -1909,13 +2102,17 @@ define(function(require, exports, module) {
|
|
1909
2102
|
if (body.expressions.length > 1) {
|
1910
2103
|
body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
|
1911
2104
|
} else {
|
1912
|
-
if (this.guard)
|
2105
|
+
if (this.guard) {
|
2106
|
+
body = Block.wrap([new If(this.guard, body)]);
|
2107
|
+
}
|
1913
2108
|
}
|
1914
2109
|
}
|
1915
2110
|
body = "\n" + (body.compile(o, LEVEL_TOP)) + "\n" + this.tab;
|
1916
2111
|
}
|
1917
2112
|
code = set + this.tab + ("while (" + (this.condition.compile(o, LEVEL_PAREN)) + ") {" + body + "}");
|
1918
|
-
if (this.returns)
|
2113
|
+
if (this.returns) {
|
2114
|
+
code += "\n" + this.tab + "return " + rvar + ";";
|
2115
|
+
}
|
1919
2116
|
return code;
|
1920
2117
|
};
|
1921
2118
|
|
@@ -1928,11 +2125,13 @@ define(function(require, exports, module) {
|
|
1928
2125
|
|
1929
2126
|
__extends(Op, _super);
|
1930
2127
|
|
1931
|
-
Op.name = 'Op';
|
1932
|
-
|
1933
2128
|
function Op(op, first, second, flip) {
|
1934
|
-
if (op === 'in')
|
1935
|
-
|
2129
|
+
if (op === 'in') {
|
2130
|
+
return new In(first, second);
|
2131
|
+
}
|
2132
|
+
if (op === 'do') {
|
2133
|
+
return this.generateDo(first);
|
2134
|
+
}
|
1936
2135
|
if (op === 'new') {
|
1937
2136
|
if (first instanceof Call && !first["do"] && !first.isNew) {
|
1938
2137
|
return first.newInstance();
|
@@ -1986,7 +2185,9 @@ define(function(require, exports, module) {
|
|
1986
2185
|
allInvertable && (allInvertable = curr.operator in INVERSIONS);
|
1987
2186
|
curr = curr.first;
|
1988
2187
|
}
|
1989
|
-
if (!allInvertable)
|
2188
|
+
if (!allInvertable) {
|
2189
|
+
return new Parens(this).invert();
|
2190
|
+
}
|
1990
2191
|
curr = this;
|
1991
2192
|
while (curr && curr.operator) {
|
1992
2193
|
curr.invert = !curr.invert;
|
@@ -1996,7 +2197,9 @@ define(function(require, exports, module) {
|
|
1996
2197
|
return this;
|
1997
2198
|
} else if (op = INVERSIONS[this.operator]) {
|
1998
2199
|
this.operator = op;
|
1999
|
-
if (this.first.unwrap() instanceof Op)
|
2200
|
+
if (this.first.unwrap() instanceof Op) {
|
2201
|
+
this.first.invert();
|
2202
|
+
}
|
2000
2203
|
return this;
|
2001
2204
|
} else if (this.second) {
|
2002
2205
|
return new Parens(this).invert();
|
@@ -2034,16 +2237,24 @@ define(function(require, exports, module) {
|
|
2034
2237
|
Op.prototype.compileNode = function(o) {
|
2035
2238
|
var code, isChain, _ref2, _ref3;
|
2036
2239
|
isChain = this.isChainable() && this.first.isChainable();
|
2037
|
-
if (!isChain)
|
2240
|
+
if (!isChain) {
|
2241
|
+
this.first.front = this.front;
|
2242
|
+
}
|
2038
2243
|
if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {
|
2039
2244
|
throw SyntaxError('delete operand may not be argument or var');
|
2040
2245
|
}
|
2041
2246
|
if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) {
|
2042
2247
|
throw SyntaxError('prefix increment/decrement may not have eval or arguments operand');
|
2043
2248
|
}
|
2044
|
-
if (this.isUnary())
|
2045
|
-
|
2046
|
-
|
2249
|
+
if (this.isUnary()) {
|
2250
|
+
return this.compileUnary(o);
|
2251
|
+
}
|
2252
|
+
if (isChain) {
|
2253
|
+
return this.compileChain(o);
|
2254
|
+
}
|
2255
|
+
if (this.operator === '?') {
|
2256
|
+
return this.compileExistence(o);
|
2257
|
+
}
|
2047
2258
|
code = this.first.compile(o, LEVEL_OP) + ' ' + this.operator + ' ' + this.second.compile(o, LEVEL_OP);
|
2048
2259
|
if (o.level <= LEVEL_OP) {
|
2049
2260
|
return code;
|
@@ -2062,7 +2273,7 @@ define(function(require, exports, module) {
|
|
2062
2273
|
|
2063
2274
|
Op.prototype.compileExistence = function(o) {
|
2064
2275
|
var fst, ref;
|
2065
|
-
if (this.first.isComplex()
|
2276
|
+
if (this.first.isComplex()) {
|
2066
2277
|
ref = new Literal(o.scope.freeVariable('ref'));
|
2067
2278
|
fst = new Parens(new Assign(ref, this.first));
|
2068
2279
|
} else {
|
@@ -2076,7 +2287,9 @@ define(function(require, exports, module) {
|
|
2076
2287
|
|
2077
2288
|
Op.prototype.compileUnary = function(o) {
|
2078
2289
|
var op, parts, plusMinus;
|
2079
|
-
if (o.level >= LEVEL_ACCESS)
|
2290
|
+
if (o.level >= LEVEL_ACCESS) {
|
2291
|
+
return (new Parens(this)).compile(o);
|
2292
|
+
}
|
2080
2293
|
parts = [op = this.operator];
|
2081
2294
|
plusMinus = op === '+' || op === '-';
|
2082
2295
|
if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {
|
@@ -2086,7 +2299,9 @@ define(function(require, exports, module) {
|
|
2086
2299
|
this.first = new Parens(this.first);
|
2087
2300
|
}
|
2088
2301
|
parts.push(this.first.compile(o, LEVEL_OP));
|
2089
|
-
if (this.flip)
|
2302
|
+
if (this.flip) {
|
2303
|
+
parts.reverse();
|
2304
|
+
}
|
2090
2305
|
return parts.join('');
|
2091
2306
|
};
|
2092
2307
|
|
@@ -2102,8 +2317,6 @@ define(function(require, exports, module) {
|
|
2102
2317
|
|
2103
2318
|
__extends(In, _super);
|
2104
2319
|
|
2105
|
-
In.name = 'In';
|
2106
|
-
|
2107
2320
|
function In(object, array) {
|
2108
2321
|
this.object = object;
|
2109
2322
|
this.array = array;
|
@@ -2119,18 +2332,24 @@ define(function(require, exports, module) {
|
|
2119
2332
|
_ref2 = this.array.base.objects;
|
2120
2333
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
2121
2334
|
obj = _ref2[_i];
|
2122
|
-
if (!(obj instanceof Splat))
|
2335
|
+
if (!(obj instanceof Splat)) {
|
2336
|
+
continue;
|
2337
|
+
}
|
2123
2338
|
hasSplat = true;
|
2124
2339
|
break;
|
2125
2340
|
}
|
2126
|
-
if (!hasSplat)
|
2341
|
+
if (!hasSplat) {
|
2342
|
+
return this.compileOrTest(o);
|
2343
|
+
}
|
2127
2344
|
}
|
2128
2345
|
return this.compileLoopTest(o);
|
2129
2346
|
};
|
2130
2347
|
|
2131
2348
|
In.prototype.compileOrTest = function(o) {
|
2132
2349
|
var cmp, cnj, i, item, ref, sub, tests, _ref2, _ref3;
|
2133
|
-
if (this.array.base.objects.length === 0)
|
2350
|
+
if (this.array.base.objects.length === 0) {
|
2351
|
+
return "" + (!!this.negated);
|
2352
|
+
}
|
2134
2353
|
_ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1];
|
2135
2354
|
_ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1];
|
2136
2355
|
tests = (function() {
|
@@ -2155,7 +2374,9 @@ define(function(require, exports, module) {
|
|
2155
2374
|
var code, ref, sub, _ref2;
|
2156
2375
|
_ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1];
|
2157
2376
|
code = utility('indexOf') + (".call(" + (this.array.compile(o, LEVEL_LIST)) + ", " + ref + ") ") + (this.negated ? '< 0' : '>= 0');
|
2158
|
-
if (sub === ref)
|
2377
|
+
if (sub === ref) {
|
2378
|
+
return code;
|
2379
|
+
}
|
2159
2380
|
code = sub + ', ' + code;
|
2160
2381
|
if (o.level < LEVEL_LIST) {
|
2161
2382
|
return code;
|
@@ -2176,8 +2397,6 @@ define(function(require, exports, module) {
|
|
2176
2397
|
|
2177
2398
|
__extends(Try, _super);
|
2178
2399
|
|
2179
|
-
Try.name = 'Try';
|
2180
|
-
|
2181
2400
|
function Try(attempt, error, recovery, ensure) {
|
2182
2401
|
this.attempt = attempt;
|
2183
2402
|
this.error = error;
|
@@ -2195,8 +2414,12 @@ define(function(require, exports, module) {
|
|
2195
2414
|
};
|
2196
2415
|
|
2197
2416
|
Try.prototype.makeReturn = function(res) {
|
2198
|
-
if (this.attempt)
|
2199
|
-
|
2417
|
+
if (this.attempt) {
|
2418
|
+
this.attempt = this.attempt.makeReturn(res);
|
2419
|
+
}
|
2420
|
+
if (this.recovery) {
|
2421
|
+
this.recovery = this.recovery.makeReturn(res);
|
2422
|
+
}
|
2200
2423
|
return this;
|
2201
2424
|
};
|
2202
2425
|
|
@@ -2231,8 +2454,6 @@ define(function(require, exports, module) {
|
|
2231
2454
|
|
2232
2455
|
__extends(Throw, _super);
|
2233
2456
|
|
2234
|
-
Throw.name = 'Throw';
|
2235
|
-
|
2236
2457
|
function Throw(expression) {
|
2237
2458
|
this.expression = expression;
|
2238
2459
|
}
|
@@ -2257,8 +2478,6 @@ define(function(require, exports, module) {
|
|
2257
2478
|
|
2258
2479
|
__extends(Existence, _super);
|
2259
2480
|
|
2260
|
-
Existence.name = 'Existence';
|
2261
|
-
|
2262
2481
|
function Existence(expression) {
|
2263
2482
|
this.expression = expression;
|
2264
2483
|
}
|
@@ -2292,8 +2511,6 @@ define(function(require, exports, module) {
|
|
2292
2511
|
|
2293
2512
|
__extends(Parens, _super);
|
2294
2513
|
|
2295
|
-
Parens.name = 'Parens';
|
2296
|
-
|
2297
2514
|
function Parens(body) {
|
2298
2515
|
this.body = body;
|
2299
2516
|
}
|
@@ -2332,8 +2549,6 @@ define(function(require, exports, module) {
|
|
2332
2549
|
|
2333
2550
|
__extends(For, _super);
|
2334
2551
|
|
2335
|
-
For.name = 'For';
|
2336
|
-
|
2337
2552
|
function For(body, source) {
|
2338
2553
|
var _ref2;
|
2339
2554
|
this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
|
@@ -2363,27 +2578,31 @@ define(function(require, exports, module) {
|
|
2363
2578
|
var body, defPart, forPart, forVarPart, guardPart, idt1, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, stepPart, stepvar, svar, varPart, _ref2;
|
2364
2579
|
body = Block.wrap([this.body]);
|
2365
2580
|
lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0;
|
2366
|
-
if (lastJumps && lastJumps instanceof Return)
|
2581
|
+
if (lastJumps && lastJumps instanceof Return) {
|
2582
|
+
this.returns = false;
|
2583
|
+
}
|
2367
2584
|
source = this.range ? this.source.base : this.source;
|
2368
2585
|
scope = o.scope;
|
2369
2586
|
name = this.name && this.name.compile(o, LEVEL_LIST);
|
2370
2587
|
index = this.index && this.index.compile(o, LEVEL_LIST);
|
2371
2588
|
if (name && !this.pattern) {
|
2372
|
-
scope.find(name
|
2373
|
-
immediate: true
|
2374
|
-
});
|
2589
|
+
scope.find(name);
|
2375
2590
|
}
|
2376
2591
|
if (index) {
|
2377
|
-
scope.find(index
|
2378
|
-
|
2379
|
-
|
2592
|
+
scope.find(index);
|
2593
|
+
}
|
2594
|
+
if (this.returns) {
|
2595
|
+
rvar = scope.freeVariable('results');
|
2380
2596
|
}
|
2381
|
-
if (this.returns) rvar = scope.freeVariable('results');
|
2382
2597
|
ivar = (this.object && index) || scope.freeVariable('i');
|
2383
2598
|
kvar = (this.range && name) || index || ivar;
|
2384
2599
|
kvarAssign = kvar !== ivar ? "" + kvar + " = " : "";
|
2385
|
-
if (this.step && !this.range)
|
2386
|
-
|
2600
|
+
if (this.step && !this.range) {
|
2601
|
+
stepvar = scope.freeVariable("step");
|
2602
|
+
}
|
2603
|
+
if (this.pattern) {
|
2604
|
+
name = ivar;
|
2605
|
+
}
|
2387
2606
|
varPart = '';
|
2388
2607
|
guardPart = '';
|
2389
2608
|
defPart = '';
|
@@ -2422,14 +2641,18 @@ define(function(require, exports, module) {
|
|
2422
2641
|
if (body.expressions.length > 1) {
|
2423
2642
|
body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
|
2424
2643
|
} else {
|
2425
|
-
if (this.guard)
|
2644
|
+
if (this.guard) {
|
2645
|
+
body = Block.wrap([new If(this.guard, body)]);
|
2646
|
+
}
|
2426
2647
|
}
|
2427
2648
|
}
|
2428
2649
|
if (this.pattern) {
|
2429
2650
|
body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]")));
|
2430
2651
|
}
|
2431
2652
|
defPart += this.pluckDirectCall(o, body);
|
2432
|
-
if (namePart)
|
2653
|
+
if (namePart) {
|
2654
|
+
varPart = "\n" + idt1 + namePart + ";";
|
2655
|
+
}
|
2433
2656
|
if (this.object) {
|
2434
2657
|
forPart = "" + kvar + " in " + svar;
|
2435
2658
|
if (this.own) {
|
@@ -2439,7 +2662,9 @@ define(function(require, exports, module) {
|
|
2439
2662
|
body = body.compile(merge(o, {
|
2440
2663
|
indent: idt1
|
2441
2664
|
}), LEVEL_TOP);
|
2442
|
-
if (body)
|
2665
|
+
if (body) {
|
2666
|
+
body = '\n' + body + '\n';
|
2667
|
+
}
|
2443
2668
|
return "" + defPart + (resultPart || '') + this.tab + "for (" + forPart + ") {" + guardPart + varPart + body + this.tab + "}" + (returnResult || '');
|
2444
2669
|
};
|
2445
2670
|
|
@@ -2450,7 +2675,9 @@ define(function(require, exports, module) {
|
|
2450
2675
|
for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) {
|
2451
2676
|
expr = _ref2[idx];
|
2452
2677
|
expr = expr.unwrapAll();
|
2453
|
-
if (!(expr instanceof Call))
|
2678
|
+
if (!(expr instanceof Call)) {
|
2679
|
+
continue;
|
2680
|
+
}
|
2454
2681
|
val = expr.variable.unwrapAll();
|
2455
2682
|
if (!((val instanceof Code) || (val instanceof Value && ((_ref3 = val.base) != null ? _ref3.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref4 = (_ref5 = val.properties[0].name) != null ? _ref5.value : void 0) === 'call' || _ref4 === 'apply')))) {
|
2456
2683
|
continue;
|
@@ -2458,7 +2685,9 @@ define(function(require, exports, module) {
|
|
2458
2685
|
fn = ((_ref6 = val.base) != null ? _ref6.unwrapAll() : void 0) || val;
|
2459
2686
|
ref = new Literal(o.scope.freeVariable('fn'));
|
2460
2687
|
base = new Value(ref);
|
2461
|
-
if (val.base)
|
2688
|
+
if (val.base) {
|
2689
|
+
_ref7 = [base, val], val.base = _ref7[0], base = _ref7[1];
|
2690
|
+
}
|
2462
2691
|
body.expressions[idx] = new Call(base, expr.args);
|
2463
2692
|
defs += this.tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n';
|
2464
2693
|
}
|
@@ -2473,8 +2702,6 @@ define(function(require, exports, module) {
|
|
2473
2702
|
|
2474
2703
|
__extends(Switch, _super);
|
2475
2704
|
|
2476
|
-
Switch.name = 'Switch';
|
2477
|
-
|
2478
2705
|
function Switch(subject, cases, otherwise) {
|
2479
2706
|
this.subject = subject;
|
2480
2707
|
this.cases = cases;
|
@@ -2495,7 +2722,9 @@ define(function(require, exports, module) {
|
|
2495
2722
|
_ref2 = this.cases;
|
2496
2723
|
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
2497
2724
|
_ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1];
|
2498
|
-
if (block.jumps(o))
|
2725
|
+
if (block.jumps(o)) {
|
2726
|
+
return block;
|
2727
|
+
}
|
2499
2728
|
}
|
2500
2729
|
return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0;
|
2501
2730
|
};
|
@@ -2510,7 +2739,9 @@ define(function(require, exports, module) {
|
|
2510
2739
|
if (res) {
|
2511
2740
|
this.otherwise || (this.otherwise = new Block([new Literal('void 0')]));
|
2512
2741
|
}
|
2513
|
-
if ((_ref3 = this.otherwise) != null)
|
2742
|
+
if ((_ref3 = this.otherwise) != null) {
|
2743
|
+
_ref3.makeReturn(res);
|
2744
|
+
}
|
2514
2745
|
return this;
|
2515
2746
|
};
|
2516
2747
|
|
@@ -2525,11 +2756,17 @@ define(function(require, exports, module) {
|
|
2525
2756
|
_ref5 = flatten([conditions]);
|
2526
2757
|
for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) {
|
2527
2758
|
cond = _ref5[_j];
|
2528
|
-
if (!this.subject)
|
2759
|
+
if (!this.subject) {
|
2760
|
+
cond = cond.invert();
|
2761
|
+
}
|
2529
2762
|
code += idt1 + ("case " + (cond.compile(o, LEVEL_PAREN)) + ":\n");
|
2530
2763
|
}
|
2531
|
-
if (body = block.compile(o, LEVEL_TOP))
|
2532
|
-
|
2764
|
+
if (body = block.compile(o, LEVEL_TOP)) {
|
2765
|
+
code += body + '\n';
|
2766
|
+
}
|
2767
|
+
if (i === this.cases.length - 1 && !this.otherwise) {
|
2768
|
+
break;
|
2769
|
+
}
|
2533
2770
|
expr = this.lastNonComment(block.expressions);
|
2534
2771
|
if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) {
|
2535
2772
|
continue;
|
@@ -2550,11 +2787,11 @@ define(function(require, exports, module) {
|
|
2550
2787
|
|
2551
2788
|
__extends(If, _super);
|
2552
2789
|
|
2553
|
-
If.name = 'If';
|
2554
|
-
|
2555
2790
|
function If(condition, body, options) {
|
2556
2791
|
this.body = body;
|
2557
|
-
if (options == null)
|
2792
|
+
if (options == null) {
|
2793
|
+
options = {};
|
2794
|
+
}
|
2558
2795
|
this.condition = options.type === 'unless' ? condition.invert() : condition;
|
2559
2796
|
this.elseBody = null;
|
2560
2797
|
this.isChain = false;
|
@@ -2619,7 +2856,7 @@ define(function(require, exports, module) {
|
|
2619
2856
|
};
|
2620
2857
|
|
2621
2858
|
If.prototype.compileStatement = function(o) {
|
2622
|
-
var body,
|
2859
|
+
var body, child, cond, exeq, ifPart;
|
2623
2860
|
child = del(o, 'chainChild');
|
2624
2861
|
exeq = del(o, 'isExistentialEquals');
|
2625
2862
|
if (exeq) {
|
@@ -2630,14 +2867,13 @@ define(function(require, exports, module) {
|
|
2630
2867
|
cond = this.condition.compile(o, LEVEL_PAREN);
|
2631
2868
|
o.indent += TAB;
|
2632
2869
|
body = this.ensureBlock(this.body);
|
2633
|
-
|
2634
|
-
if (
|
2635
|
-
|
2636
|
-
}
|
2637
|
-
if (
|
2638
|
-
|
2639
|
-
|
2640
|
-
if (!this.elseBody) return ifPart;
|
2870
|
+
ifPart = "if (" + cond + ") {\n" + (body.compile(o)) + "\n" + this.tab + "}";
|
2871
|
+
if (!child) {
|
2872
|
+
ifPart = this.tab + ifPart;
|
2873
|
+
}
|
2874
|
+
if (!this.elseBody) {
|
2875
|
+
return ifPart;
|
2876
|
+
}
|
2641
2877
|
return ifPart + ' else ' + (this.isChain ? (o.indent = this.tab, o.chainChild = true, this.elseBody.unwrap().compile(o, LEVEL_TOP)) : "{\n" + (this.elseBody.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}");
|
2642
2878
|
};
|
2643
2879
|
|
@@ -2665,13 +2901,17 @@ define(function(require, exports, module) {
|
|
2665
2901
|
Closure = {
|
2666
2902
|
wrap: function(expressions, statement, noReturn) {
|
2667
2903
|
var args, call, func, mentionsArgs, meth;
|
2668
|
-
if (expressions.jumps())
|
2904
|
+
if (expressions.jumps()) {
|
2905
|
+
return expressions;
|
2906
|
+
}
|
2669
2907
|
func = new Code([], Block.wrap([expressions]));
|
2670
2908
|
args = [];
|
2671
2909
|
if ((mentionsArgs = expressions.contains(this.literalArgs)) || expressions.contains(this.literalThis)) {
|
2672
2910
|
meth = new Literal(mentionsArgs ? 'apply' : 'call');
|
2673
2911
|
args = [new Literal('this')];
|
2674
|
-
if (mentionsArgs)
|
2912
|
+
if (mentionsArgs) {
|
2913
|
+
args.push(new Literal('arguments'));
|
2914
|
+
}
|
2675
2915
|
func = new Value(func, [new Access(meth)]);
|
2676
2916
|
}
|
2677
2917
|
func.noReturn = noReturn;
|
@@ -2686,13 +2926,15 @@ define(function(require, exports, module) {
|
|
2686
2926
|
return node instanceof Literal && node.value === 'arguments' && !node.asKey;
|
2687
2927
|
},
|
2688
2928
|
literalThis: function(node) {
|
2689
|
-
return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound);
|
2929
|
+
return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper);
|
2690
2930
|
}
|
2691
2931
|
};
|
2692
2932
|
|
2693
2933
|
unfoldSoak = function(o, parent, name) {
|
2694
2934
|
var ifn;
|
2695
|
-
if (!(ifn = parent[name].unfoldSoak(o)))
|
2935
|
+
if (!(ifn = parent[name].unfoldSoak(o))) {
|
2936
|
+
return;
|
2937
|
+
}
|
2696
2938
|
parent[name] = ifn.body;
|
2697
2939
|
ifn.body = new Value(parent);
|
2698
2940
|
return ifn;
|
@@ -2700,7 +2942,7 @@ define(function(require, exports, module) {
|
|
2700
2942
|
|
2701
2943
|
UTILITIES = {
|
2702
2944
|
"extends": function() {
|
2703
|
-
return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }";
|
2945
|
+
return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }";
|
2704
2946
|
},
|
2705
2947
|
bind: function() {
|
2706
2948
|
return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }';
|
@@ -2753,4 +2995,4 @@ define(function(require, exports, module) {
|
|
2753
2995
|
};
|
2754
2996
|
|
2755
2997
|
|
2756
|
-
});
|
2998
|
+
});
|