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.

Files changed (391) hide show
  1. data/gollum.gemspec +100 -19
  2. data/lib/gollum.rb +2 -3
  3. data/lib/gollum/frontend/public/gollum/css/gollum.css +3 -1
  4. data/lib/gollum/frontend/public/gollum/css/template.css +8 -12
  5. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ace.js +64 -60
  6. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/anchor.js +56 -62
  7. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/anchor_test.js +25 -32
  8. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/background_tokenizer.js +56 -63
  9. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/background_tokenizer_test.js +25 -32
  10. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/command_manager.js +11 -11
  11. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/command_manager_test.js +59 -53
  12. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/default_commands.js +46 -39
  13. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/commands/multi_select_commands.js +32 -36
  14. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/config.js +62 -47
  15. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/config_test.js +71 -0
  16. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/css/editor.css +82 -41
  17. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/document.js +126 -145
  18. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/document_test.js +25 -33
  19. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session.js +484 -467
  20. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/bracket_match.js +30 -63
  21. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/fold.js +29 -37
  22. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/fold_line.js +27 -35
  23. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session/folding.js +47 -55
  24. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/edit_session_test.js +61 -41
  25. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor.js +506 -517
  26. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_change_document_test.js +25 -32
  27. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_highlight_selected_word_test.js +26 -34
  28. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_navigation_test.js +25 -32
  29. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/editor_text_edit_test.js +25 -32
  30. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/static_highlight.js +28 -38
  31. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/static_highlight_test.js +9 -14
  32. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/ext/textarea.js +26 -36
  33. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/emacs.js +44 -36
  34. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/hash_handler.js +45 -52
  35. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/keybinding.js +25 -34
  36. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/state_handler.js +26 -33
  37. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/textinput.js +230 -165
  38. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim.js +76 -49
  39. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/commands.js +66 -61
  40. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/aliases.js +36 -43
  41. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/motions.js +138 -156
  42. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/operators.js +35 -32
  43. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/maps/util.js +18 -18
  44. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/keyboard/vim/registers.js +25 -32
  45. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/cursor.js +116 -101
  46. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/gutter.js +117 -83
  47. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/marker.js +60 -71
  48. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/text.js +163 -102
  49. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/layer/text_test.js +60 -41
  50. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/browser_focus.js +26 -36
  51. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/dom.js +26 -36
  52. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/es5-shim.js +24 -1
  53. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event.js +52 -54
  54. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event_emitter.js +32 -39
  55. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/event_emitter_test.js +25 -32
  56. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/keys.js +9 -1
  57. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/lang.js +73 -33
  58. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/net.js +10 -3
  59. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/oop.js +25 -32
  60. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/regexp.js +2 -2
  61. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/lib/useragent.js +55 -58
  62. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/package.json +8 -0
  63. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/test_highlight_rules.js +144 -0
  64. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/text_javascript.txt +52 -0
  65. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_c9search.json +175 -0
  66. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_c_cpp.json +124 -0
  67. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_clojure.json +248 -0
  68. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_coffee.json +188 -0
  69. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_coldfusion.json +41 -0
  70. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_csharp.json +42 -0
  71. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_css.json +231 -0
  72. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_diff.json +732 -0
  73. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_glsl.json +185 -0
  74. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_golang.json +362 -0
  75. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_groovy.json +529 -0
  76. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_haxe.json +195 -0
  77. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_html.json +150 -0
  78. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_java.json +139 -0
  79. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_javascript.json +555 -0
  80. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_json.json +611 -0
  81. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_jsx.json +79 -0
  82. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_latex.json +196 -0
  83. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_less.json +292 -0
  84. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_liquid.json +698 -0
  85. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_lua.json +451 -0
  86. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_luapage.json +824 -0
  87. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_markdown.json +1202 -0
  88. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_ocaml.json +260 -0
  89. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_perl.json +311 -0
  90. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_pgsql.json +1020 -0
  91. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_php.json +238 -0
  92. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_powershell.json +255 -0
  93. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_python.json +205 -0
  94. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_ruby.json +104 -0
  95. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scad.json +267 -0
  96. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scala.json +748 -0
  97. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_scss.json +181 -0
  98. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_sh.json +434 -0
  99. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_sql.json +73 -0
  100. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_svg.json +931 -0
  101. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_tcl.json +536 -0
  102. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_text.json +58 -0
  103. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_textile.json +195 -0
  104. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_xml.json +705 -0
  105. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_xquery.json +64 -0
  106. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/_test/tokens_yaml.json +260 -0
  107. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/abap.js +77 -0
  108. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/abap_highlight_rules.js +133 -0
  109. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/asciidoc.js +64 -0
  110. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/asciidoc_highlight_rules.js +234 -0
  111. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour.js +26 -34
  112. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/cstyle.js +195 -55
  113. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/html.js +26 -34
  114. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/xml.js +26 -34
  115. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/behaviour/xquery.js +31 -31
  116. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c9search.js +25 -32
  117. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c9search_highlight_rules.js +25 -32
  118. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c_cpp.js +25 -33
  119. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/c_cpp_highlight_rules.js +67 -60
  120. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/clojure.js +25 -34
  121. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/clojure_highlight_rules.js +112 -130
  122. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee.js +29 -36
  123. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/coffee-script.js +25 -32
  124. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/helpers.js +22 -7
  125. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/lexer.js +140 -64
  126. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/nodes.js +479 -237
  127. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/parser.js +321 -230
  128. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/parser_test.js +25 -32
  129. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/rewriter.js +62 -28
  130. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee/scope.js +39 -20
  131. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_highlight_rules.js +183 -82
  132. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_highlight_rules_test.js +226 -32
  133. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coffee_worker.js +25 -32
  134. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion.js +25 -32
  135. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion_highlight_rules.js +28 -35
  136. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/coldfusion_test.js +25 -32
  137. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/csharp_highlight_rules.js +7 -21
  138. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css.js +36 -47
  139. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css/csslint.js +202 -697
  140. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_highlight_rules.js +51 -84
  141. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_highlight_rules_test.js +25 -32
  142. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_test.js +25 -32
  143. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_worker.js +68 -40
  144. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/css_worker_test.js +25 -32
  145. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/dart.js +62 -0
  146. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/dart_highlight_rules.js +192 -0
  147. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/diff.js +25 -31
  148. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/diff_highlight_rules.js +27 -33
  149. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/doc_comment_highlight_rules.js +25 -32
  150. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/asciidoc.js +142 -0
  151. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/c9search.js +31 -37
  152. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/coffee.js +26 -33
  153. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/coffee_test.js +25 -32
  154. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/cstyle.js +30 -51
  155. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/cstyle_test.js +25 -32
  156. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/diff.js +28 -35
  157. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/fold_mode.js +35 -30
  158. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/html.js +25 -32
  159. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/html_test.js +25 -32
  160. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/latex.js +162 -0
  161. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/lua.js +163 -0
  162. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/markdown.js +125 -0
  163. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/mixed.js +25 -32
  164. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/pythonic.js +25 -32
  165. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/pythonic_test.js +26 -33
  166. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/xml.js +25 -32
  167. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/folding/xml_test.js +25 -32
  168. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/glsl.js +52 -0
  169. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/glsl_highlight_rules.js +81 -0
  170. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/golang.js +0 -1
  171. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/golang_highlight_rules.js +15 -22
  172. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/groovy_highlight_rules.js +28 -36
  173. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haml.js +62 -0
  174. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haml_highlight_rules.js +132 -0
  175. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haxe.js +20 -25
  176. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/haxe_highlight_rules.js +11 -15
  177. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html.js +25 -32
  178. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_highlight_rules.js +32 -38
  179. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_highlight_rules_test.js +162 -69
  180. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/html_test.js +25 -32
  181. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jade.js +58 -0
  182. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jade_highlight_rules.js +347 -0
  183. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/java_highlight_rules.js +18 -29
  184. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript.js +28 -51
  185. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript/jshint.js +4838 -0
  186. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_highlight_rules.js +98 -180
  187. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_highlight_rules_test.js +26 -33
  188. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_test.js +25 -32
  189. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_worker.js +163 -64
  190. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/javascript_worker_test.js +38 -40
  191. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json.js +26 -33
  192. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_highlight_rules.js +26 -34
  193. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_worker.js +25 -32
  194. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/json_worker_test.js +25 -32
  195. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jsp.js +56 -0
  196. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/jsp_highlight_rules.js +85 -0
  197. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js +3 -2
  198. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex_highlight_rules.js +1 -1
  199. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/less.js +25 -33
  200. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/less_highlight_rules.js +25 -33
  201. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid.js +25 -32
  202. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid_highlight_rules.js +146 -161
  203. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/liquid_highlight_rules_test.js +25 -32
  204. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lisp.js +60 -0
  205. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lisp_highlight_rules.js +127 -0
  206. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lua.js +116 -56
  207. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lua_highlight_rules.js +75 -101
  208. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene.js +16 -0
  209. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene_highlight_rules.js +49 -0
  210. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/lucene_highlight_rules_test.js +99 -0
  211. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/makefile.js +62 -0
  212. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/makefile_highlight_rules.js +75 -0
  213. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown.js +35 -41
  214. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown_highlight_rules.js +29 -37
  215. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/markdown_highlight_rules_test.js +100 -0
  216. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/matching_brace_outdent.js +25 -32
  217. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/matching_parens_outdent.js +25 -32
  218. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/objectivec.js +62 -0
  219. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/objectivec_highlight_rules.js +343 -0
  220. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ocaml.js +25 -32
  221. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ocaml_highlight_rules.js +39 -53
  222. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/perl.js +25 -32
  223. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/perl_highlight_rules.js +39 -52
  224. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/pgsql.js +33 -24
  225. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/pgsql_highlight_rules.js +55 -51
  226. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/php.js +57 -36
  227. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/php_highlight_rules.js +53 -153
  228. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/powershell_highlight_rules.js +31 -21
  229. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python.js +28 -36
  230. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python_highlight_rules.js +44 -61
  231. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/python_test.js +25 -32
  232. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/r.js +135 -0
  233. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/r_highlight_rules.js +190 -0
  234. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rdoc.js +36 -0
  235. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rdoc_highlight_rules.js +99 -0
  236. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rhtml.js +67 -0
  237. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/rhtml_highlight_rules.js +49 -0
  238. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby.js +27 -33
  239. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby_highlight_rules.js +102 -90
  240. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/ruby_highlight_rules_test.js +29 -37
  241. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scad.js +25 -33
  242. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scad_highlight_rules.js +32 -54
  243. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scala_highlight_rules.js +18 -32
  244. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scss.js +25 -32
  245. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/scss_highlight_rules.js +25 -32
  246. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sh.js +28 -35
  247. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sh_highlight_rules.js +48 -64
  248. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sql.js +28 -18
  249. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/sql_highlight_rules.js +41 -36
  250. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/stylus.js +62 -0
  251. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/stylus_highlight_rules.js +175 -0
  252. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/svg.js +25 -32
  253. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/svg_highlight_rules.js +26 -33
  254. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tcl.js +110 -0
  255. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tcl_highlight_rules.js +180 -0
  256. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tex.js +48 -0
  257. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/tex_highlight_rules.js +107 -0
  258. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text.js +26 -36
  259. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text_highlight_rules.js +57 -46
  260. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/text_test.js +25 -32
  261. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/textile.js +25 -32
  262. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/textile_highlight_rules.js +26 -33
  263. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/typescript.js +68 -0
  264. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/typescript_highlight_rules.js +98 -0
  265. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml.js +25 -32
  266. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_highlight_rules.js +27 -34
  267. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_highlight_rules_test.js +183 -78
  268. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_test.js +25 -32
  269. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xml_util.js +30 -38
  270. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery.js +32 -37
  271. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/JSONParseTreeHandler.js +92 -0
  272. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQueryParser.js +32954 -42497
  273. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/visitors/SyntaxHighlighter.js +316 -0
  274. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery_highlight_rules.js +31 -44
  275. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery_worker.js +48 -57
  276. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/yaml.js +30 -18
  277. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/yaml_highlight_rules.js +48 -40
  278. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/model/editor.js +26 -34
  279. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/default_gutter_handler.js +126 -40
  280. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/default_handlers.js +35 -43
  281. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/dragdrop.js +28 -35
  282. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/fold_handler.js +78 -39
  283. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/mouse_event.js +26 -34
  284. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/mouse_handler.js +39 -36
  285. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mouse/multi_select_handler.js +26 -34
  286. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/multi_select.js +234 -103
  287. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/multi_select_test.js +26 -34
  288. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/placeholder.js +30 -39
  289. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/placeholder_test.js +27 -35
  290. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range.js +190 -201
  291. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_list.js +25 -32
  292. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_list_test.js +25 -32
  293. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/range_test.js +25 -32
  294. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/renderloop.js +31 -49
  295. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/requirejs/text.js +27 -34
  296. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/scrollbar.js +52 -55
  297. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search.js +91 -105
  298. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search_highlight.js +31 -34
  299. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/search_test.js +47 -37
  300. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/selection.js +138 -153
  301. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/selection_test.js +25 -32
  302. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/split.js +67 -105
  303. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/all.js +25 -32
  304. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/all_browser.js +3 -2
  305. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/assertions.js +25 -32
  306. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/benchmark.js +25 -32
  307. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/test/mockrenderer.js +30 -34
  308. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/ambiance.css +217 -0
  309. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/ambiance.js +33 -0
  310. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/chrome.css +37 -38
  311. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/chrome.js +27 -34
  312. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds.css +53 -47
  313. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds.js +28 -35
  314. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds_midnight.css +54 -48
  315. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/clouds_midnight.js +28 -35
  316. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/cobalt.css +58 -59
  317. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/cobalt.js +28 -35
  318. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/crimson_editor.css +33 -33
  319. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/crimson_editor.js +26 -33
  320. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dawn.css +52 -64
  321. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dawn.js +28 -35
  322. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dreamweaver.css +33 -36
  323. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/dreamweaver.js +26 -33
  324. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/eclipse.css +29 -25
  325. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/eclipse.js +26 -33
  326. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/github.css +14 -21
  327. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/github.js +26 -33
  328. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/idle_fingers.css +48 -60
  329. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/idle_fingers.js +28 -35
  330. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/kr_theme.css +52 -57
  331. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/kr_theme.js +28 -35
  332. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore.css +53 -71
  333. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore.js +28 -35
  334. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore_soft.css +54 -77
  335. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/merbivore_soft.js +28 -35
  336. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/mono_industrial.css +60 -70
  337. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/mono_industrial.js +28 -35
  338. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/monokai.css +55 -72
  339. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/monokai.js +28 -35
  340. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/pastel_on_dark.css +55 -64
  341. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/pastel_on_dark.js +28 -35
  342. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_dark.css +48 -66
  343. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_dark.js +28 -35
  344. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_light.css +49 -61
  345. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/solarized_light.js +28 -35
  346. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/textmate.css +38 -44
  347. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/textmate.js +26 -33
  348. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow.css +59 -87
  349. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow.js +28 -35
  350. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night.css +59 -87
  351. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night.js +28 -35
  352. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_blue.css +59 -90
  353. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_blue.js +28 -35
  354. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_bright.css +59 -87
  355. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_bright.js +28 -35
  356. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_eighties.css +57 -85
  357. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/tomorrow_night_eighties.js +28 -35
  358. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/twilight.css +54 -78
  359. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/twilight.js +28 -35
  360. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/vibrant_ink.css +45 -68
  361. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/vibrant_ink.js +28 -35
  362. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/xcode.css +111 -0
  363. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/theme/xcode.js +39 -0
  364. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/token_iterator.js +37 -50
  365. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/token_iterator_test.js +26 -33
  366. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/tokenizer.js +40 -41
  367. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/tokenizer_dev.js +205 -0
  368. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/undomanager.js +48 -55
  369. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/virtual_renderer.js +254 -277
  370. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/virtual_renderer_test.js +25 -32
  371. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/worker.js +22 -4
  372. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/worker_client.js +97 -56
  373. data/lib/gollum/frontend/public/gollum/livepreview/licenses/ace/LICENSE.txt +24 -476
  374. data/lib/gollum/frontend/public/gollum/livepreview/licenses/licenses.txt +2 -2
  375. data/lib/gollum/frontend/views/page.rb +3 -2
  376. metadata +102 -21
  377. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/Position.js +0 -59
  378. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/StringLexer.js +0 -1686
  379. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XMLLexer.js +0 -2993
  380. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQDTLexer.js +0 -69
  381. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQDTParser.js +0 -63
  382. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQueryLexer.js +0 -10363
  383. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/XQuerySemanticHighlighter.js +0 -165
  384. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/antlr3-all.js +0 -6177
  385. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/xquery/xquery.js +0 -55
  386. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/definitions.js +0 -696
  387. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/lexer.js +0 -598
  388. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/options.js +0 -61
  389. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/narcissus/parser.js +0 -2072
  390. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/jshint.js +0 -4469
  391. data/lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/worker/jslint.js +0 -6396
@@ -1,5 +1,5 @@
1
- /*
2
- * Copyright (c) 2011 Jeremy Ashkenas
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.2.1-pre
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) o.level = 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)) return list[i];
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) idt = '';
151
- if (name == null) name = this.constructor.name;
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) tree += '?';
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) return this;
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) return this;
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) return 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)) return true;
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)) return exp;
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) o = {};
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) code = "" + code + "\n";
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)) break;
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) return code;
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)) break;
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) code += '\n';
423
+ if (i) {
424
+ code += '\n';
425
+ }
398
426
  code += "" + this.tab + "var ";
399
- if (declars) code += scope.declaredVariables().join(', ');
427
+ if (declars) {
428
+ code += scope.declaredVariables().join(', ');
429
+ }
400
430
  if (assigns) {
401
- if (declars) code += ",\n" + (this.tab + TAB);
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) return nodes[0];
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)) return this;
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.isUndefined ? o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0' : 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;
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) this.expression = expr;
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) return base;
616
+ if (!props && base instanceof Value) {
617
+ return base;
618
+ }
521
619
  this.base = base;
522
620
  this.properties = props || [];
523
- if (tag) this[tag] = true;
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) return false;
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) return false;
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) return [base, bref];
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) return this.unfoldedSoak;
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) continue;
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) code = o.indent + code;
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.method;
722
- if (!method) throw SyntaxError('cannot call super outside of a function.');
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')) return ifn;
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)) break;
882
+ if (!(call.variable instanceof Value)) {
883
+ break;
884
+ }
765
885
  list.push(call);
766
- if (!((call = call.variable.base) instanceof Call)) break;
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) nodes.push(obj = new Obj(properties = [], true));
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) _ref2.front = this.front;
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(this" + (args && ', ' + args) + ")");
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(this" + (args.length ? ', ' : '') + args + ")";
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)) fun = "(" + 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) return this.stepNum = this.stepVar.match(SIMPLENUM);
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) this.compileVariables(o);
972
- if (!o.index) return this.compileArray(o);
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) varPart += ", " + this.toC;
979
- if (this.step !== this.stepVar) varPart += ", " + this.step;
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) varPart = "" + idxName + " = " + varPart;
984
- if (namedIndex) stepPart = "" + idxName + " = " + stepPart;
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) range.pop();
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)) args = ', arguments';
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, propName, propNames, props, _i, _j, _len, _len1, _ref2;
1201
+ var i, idt, indent, join, lastNoncom, node, obj, prop, props, _i, _len;
1068
1202
  props = this.properties;
1069
- propNames = [];
1070
- _ref2 = this.properties;
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 (_j = 0, _len1 = props.length; _j < _len1; _j++) {
1085
- node = props[_j];
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 _k, _len2, _results;
1217
+ var _j, _len1, _results;
1095
1218
  _results = [];
1096
- for (i = _k = 0, _len2 = props.length; _k < _len2; i = ++_k) {
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)) prop = new Assign(prop, prop, 'object');
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)) return true;
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) return '[]';
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)) return code;
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)) return true;
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) return null;
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) return false;
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) return node.context = name;
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) func.context = name;
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) return false;
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) name = "_" + name;
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)) this.body.expressions.unshift(this.ctor);
1337
- if (decl) {
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) klass = new Assign(this.variable, klass);
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()) return this.compileSplice(o);
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]) this.value.klass = 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') return "" + name + ": " + val;
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)) assigns.push(vvar);
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) o.isExistentialEquals = true;
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) to += 1;
1697
+ if (!exclusive) {
1698
+ to += 1;
1699
+ }
1548
1700
  } else {
1549
1701
  to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
1550
- if (!exclusive) to += ' + 1';
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) this.context = '_this';
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)) o.scope.parameter(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) continue;
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.name.value) o.scope.add(p.name.value, 'var', true);
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) val = new Op('?', ref, 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) params.push(ref);
1806
+ if (!splats) {
1807
+ params.push(ref);
1808
+ }
1642
1809
  }
1643
1810
  wasEmpty = this.body.isEmpty();
1644
- if (splats) exprs.unshift(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)) this.body.makeReturn();
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) code += ' ' + this.name;
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) return this.tab + code;
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) return 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) node = new Splat(node);
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) name = this.name;
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) return [name.value];
1762
- if (name instanceof Value) return atParam(name);
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.variable.base.value);
1769
- } else if (obj.isArray() || obj.isObject()) {
1770
- names.push.apply(names, this.names(obj.base));
1771
- } else if (obj["this"]) {
1772
- names.push.apply(names, atParam(obj));
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
- names.push(obj.base.value);
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) return '';
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) return code;
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) return false;
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
- })) return node;
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) body = Block.wrap([new If(this.guard, body)]);
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) code += "\n" + this.tab + "return " + rvar + ";";
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') return new In(first, second);
1935
- if (op === 'do') return this.generateDo(first);
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) return new Parens(this).invert();
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) this.first.invert();
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) this.first.front = this.front;
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()) return this.compileUnary(o);
2045
- if (isChain) return this.compileChain(o);
2046
- if (this.operator === '?') return this.compileExistence(o);
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() && o.level > LEVEL_TOP) {
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) return (new Parens(this)).compile(o);
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) parts.reverse();
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)) continue;
2335
+ if (!(obj instanceof Splat)) {
2336
+ continue;
2337
+ }
2123
2338
  hasSplat = true;
2124
2339
  break;
2125
2340
  }
2126
- if (!hasSplat) return this.compileOrTest(o);
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) return "" + (!!this.negated);
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) return code;
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) this.attempt = this.attempt.makeReturn(res);
2199
- if (this.recovery) this.recovery = this.recovery.makeReturn(res);
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) this.returns = false;
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
- immediate: true
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) stepvar = scope.freeVariable("step");
2386
- if (this.pattern) name = ivar;
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) body = Block.wrap([new If(this.guard, body)]);
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) varPart = "\n" + idt1 + 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) body = '\n' + body + '\n';
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)) continue;
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) _ref7 = [base, val], val.base = _ref7[0], base = _ref7[1];
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)) return block;
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) _ref3.makeReturn(res);
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) cond = cond.invert();
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)) code += body + '\n';
2532
- if (i === this.cases.length - 1 && !this.otherwise) break;
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) options = {};
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, bodyc, child, cond, exeq, ifPart, _ref2;
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
- bodyc = body.compile(o);
2634
- if (1 === ((_ref2 = body.expressions) != null ? _ref2.length : void 0) && !this.elseBody && !child && bodyc && cond && -1 === (bodyc.indexOf('\n')) && 80 > cond.length + bodyc.length) {
2635
- return "" + this.tab + "if (" + cond + ") " + (bodyc.replace(/^\s+/, ''));
2636
- }
2637
- if (bodyc) bodyc = "\n" + bodyc + "\n" + this.tab;
2638
- ifPart = "if (" + cond + ") {" + bodyc + "}";
2639
- if (!child) ifPart = this.tab + ifPart;
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()) return expressions;
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) args.push(new Literal('arguments'));
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))) return;
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
+ });