webruby 0.2.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  #include <ctype.h>
8
+ #include <limits.h>
8
9
  #include <stdlib.h>
9
10
  #include <string.h>
10
11
  #include "mruby.h"
@@ -14,8 +15,9 @@
14
15
  #include "mruby/string.h"
15
16
  #include "mruby/debug.h"
16
17
  #include "node.h"
17
- #include "opcode.h"
18
- #include "re.h"
18
+ #include "mruby/opcode.h"
19
+ #include "mruby/re.h"
20
+ #include "mrb_throw.h"
19
21
 
20
22
  typedef mrb_ast_node node;
21
23
  typedef struct mrb_parser_state parser_state;
@@ -26,7 +28,7 @@ enum looptype {
26
28
  LOOP_FOR,
27
29
  LOOP_BEGIN,
28
30
  LOOP_RESCUE,
29
- } type;
31
+ };
30
32
 
31
33
  struct loopinfo {
32
34
  enum looptype type;
@@ -38,7 +40,7 @@ struct loopinfo {
38
40
  typedef struct scope {
39
41
  mrb_state *mrb;
40
42
  mrb_pool *mpool;
41
- jmp_buf jmp;
43
+ struct mrb_jmpbuf jmp;
42
44
 
43
45
  struct scope *prev;
44
46
 
@@ -64,8 +66,8 @@ typedef struct scope {
64
66
  size_t scapa;
65
67
  size_t rcapa;
66
68
 
67
- int nlocals;
68
- int nregs;
69
+ uint16_t nlocals;
70
+ uint16_t nregs;
69
71
  int ai;
70
72
 
71
73
  int debug_start_pos;
@@ -79,10 +81,11 @@ static struct loopinfo *loop_push(codegen_scope *s, enum looptype t);
79
81
  static void loop_break(codegen_scope *s, node *tree);
80
82
  static void loop_pop(codegen_scope *s, int val);
81
83
 
82
- static void gen_assignment(codegen_scope *s, node *node, int sp, int val);
84
+ static void gen_assignment(codegen_scope *s, node *tree, int sp, int val);
83
85
  static void gen_vmassignment(codegen_scope *s, node *tree, int rhs, int val);
84
86
 
85
87
  static void codegen(codegen_scope *s, node *tree, int val);
88
+ static void raise_error(codegen_scope *s, const char *msg);
86
89
 
87
90
  static void
88
91
  codegen_error(codegen_scope *s, const char *message)
@@ -101,7 +104,7 @@ codegen_error(codegen_scope *s, const char *message)
101
104
  fprintf(stderr, "codegen error: %s\n", message);
102
105
  }
103
106
  #endif
104
- longjmp(s->jmp, 1);
107
+ MRB_THROW(&s->jmp);
105
108
  }
106
109
 
107
110
  static void*
@@ -138,7 +141,7 @@ new_label(codegen_scope *s)
138
141
  return s->pc;
139
142
  }
140
143
 
141
- static inline void
144
+ static inline int
142
145
  genop(codegen_scope *s, mrb_code i)
143
146
  {
144
147
  if (s->pc == s->icapa) {
@@ -153,17 +156,25 @@ genop(codegen_scope *s, mrb_code i)
153
156
  if (s->lines) {
154
157
  s->lines[s->pc] = s->lineno;
155
158
  }
156
- s->pc++;
159
+ return s->pc++;
157
160
  }
158
161
 
159
162
  #define NOVAL 0
160
163
  #define VAL 1
161
164
 
162
- static void
165
+ static mrb_bool
166
+ no_optimize(codegen_scope *s)
167
+ {
168
+ if (s && s->parser && s->parser->no_optimize)
169
+ return TRUE;
170
+ return FALSE;
171
+ }
172
+
173
+ static int
163
174
  genop_peep(codegen_scope *s, mrb_code i, int val)
164
175
  {
165
176
  /* peephole optimization */
166
- if (s->lastlabel != s->pc && s->pc > 0) {
177
+ if (!no_optimize(s) && s->lastlabel != s->pc && s->pc > 0) {
167
178
  mrb_code i0 = s->iseq[s->pc-1];
168
179
  int c1 = GET_OPCODE(i);
169
180
  int c0 = GET_OPCODE(i0);
@@ -172,24 +183,24 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
172
183
  case OP_MOVE:
173
184
  if (GETARG_A(i) == GETARG_B(i)) {
174
185
  /* skip useless OP_MOVE */
175
- return;
186
+ return 0;
176
187
  }
177
188
  if (val) break;
178
189
  switch (c0) {
179
190
  case OP_MOVE:
180
- if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i) == GETARG_B(i0) && GETARG_A(i) >= s->nlocals) {
191
+ if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i) == GETARG_B(i0)) {
181
192
  /* skip swapping OP_MOVE */
182
- return;
193
+ return 0;
183
194
  }
184
195
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
185
- s->iseq[s->pc-1] = MKOP_AB(OP_MOVE, GETARG_A(i), GETARG_B(i0));
186
- return;
196
+ s->pc--;
197
+ return genop_peep(s, MKOP_AB(OP_MOVE, GETARG_A(i), GETARG_B(i0)), val);
187
198
  }
188
199
  break;
189
200
  case OP_LOADI:
190
201
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
191
202
  s->iseq[s->pc-1] = MKOP_AsBx(OP_LOADI, GETARG_A(i), GETARG_sBx(i0));
192
- return;
203
+ return 0;
193
204
  }
194
205
  break;
195
206
  case OP_ARRAY:
@@ -199,7 +210,7 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
199
210
  case OP_GETUPVAR:
200
211
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
201
212
  s->iseq[s->pc-1] = MKOP_ABC(c0, GETARG_A(i), GETARG_B(i0), GETARG_C(i0));
202
- return;
213
+ return 0;
203
214
  }
204
215
  break;
205
216
  case OP_LOADSYM:
@@ -212,13 +223,13 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
212
223
  case OP_STRING:
213
224
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
214
225
  s->iseq[s->pc-1] = MKOP_ABx(c0, GETARG_A(i), GETARG_Bx(i0));
215
- return;
226
+ return 0;
216
227
  }
217
228
  break;
218
229
  case OP_SCLASS:
219
230
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
220
231
  s->iseq[s->pc-1] = MKOP_AB(c0, GETARG_A(i), GETARG_B(i0));
221
- return;
232
+ return 0;
222
233
  }
223
234
  break;
224
235
  case OP_LOADNIL:
@@ -228,7 +239,7 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
228
239
  case OP_OCLASS:
229
240
  if (GETARG_B(i) == GETARG_A(i0) && GETARG_A(i0) >= s->nlocals) {
230
241
  s->iseq[s->pc-1] = MKOP_A(c0, GETARG_A(i));
231
- return;
242
+ return 0;
232
243
  }
233
244
  break;
234
245
  default:
@@ -244,7 +255,7 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
244
255
  if (c0 == OP_MOVE) {
245
256
  if (GETARG_A(i) == GETARG_A(i0)) {
246
257
  s->iseq[s->pc-1] = MKOP_ABx(c1, GETARG_B(i0), GETARG_Bx(i));
247
- return;
258
+ return 0;
248
259
  }
249
260
  }
250
261
  break;
@@ -253,29 +264,32 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
253
264
  if (c0 == OP_MOVE) {
254
265
  if (GETARG_A(i) == GETARG_A(i0)) {
255
266
  s->iseq[s->pc-1] = MKOP_ABC(c1, GETARG_B(i0), GETARG_B(i), GETARG_C(i));
256
- return;
267
+ return 0;
257
268
  }
258
269
  }
259
270
  break;
260
271
  case OP_EPOP:
261
272
  if (c0 == OP_EPOP) {
262
273
  s->iseq[s->pc-1] = MKOP_A(OP_EPOP, GETARG_A(i0)+GETARG_A(i));
263
- return;
274
+ return 0;
264
275
  }
265
276
  break;
266
277
  case OP_POPERR:
267
278
  if (c0 == OP_POPERR) {
268
279
  s->iseq[s->pc-1] = MKOP_A(OP_POPERR, GETARG_A(i0)+GETARG_A(i));
269
- return;
280
+ return 0;
270
281
  }
271
282
  break;
272
283
  case OP_RETURN:
273
284
  switch (c0) {
274
285
  case OP_RETURN:
275
- return;
286
+ return 0;
276
287
  case OP_MOVE:
277
- s->iseq[s->pc-1] = MKOP_AB(OP_RETURN, GETARG_B(i0), OP_R_NORMAL);
278
- return;
288
+ if (GETARG_A(i0) >= s->nlocals) {
289
+ s->iseq[s->pc-1] = MKOP_AB(OP_RETURN, GETARG_B(i0), OP_R_NORMAL);
290
+ return 0;
291
+ }
292
+ break;
279
293
  case OP_SETIV:
280
294
  case OP_SETCV:
281
295
  case OP_SETCONST:
@@ -285,8 +299,7 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
285
299
  s->pc--;
286
300
  genop_peep(s, i0, NOVAL);
287
301
  i0 = s->iseq[s->pc-1];
288
- genop(s, MKOP_AB(OP_RETURN, GETARG_A(i0), OP_R_NORMAL));
289
- return;
302
+ return genop(s, MKOP_AB(OP_RETURN, GETARG_A(i0), OP_R_NORMAL));
290
303
  #if 0
291
304
  case OP_SEND:
292
305
  if (GETARG_B(i) == OP_R_NORMAL && GETARG_A(i) == GETARG_A(i0)) {
@@ -310,24 +323,30 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
310
323
  s->iseq[s->pc-1] = MKOP_ABC(OP_ADDI, GETARG_A(i), GETARG_B(i), c);
311
324
  else
312
325
  s->iseq[s->pc-1] = MKOP_ABC(OP_SUBI, GETARG_A(i), GETARG_B(i), -c);
313
- return;
326
+ return 0;
314
327
  }
315
328
  case OP_STRCAT:
316
329
  if (c0 == OP_STRING) {
317
- int i = GETARG_Bx(i0);
330
+ mrb_value v = s->irep->pool[GETARG_Bx(i0)];
318
331
 
319
- if (mrb_type(s->irep->pool[i]) == MRB_TT_STRING &&
320
- RSTRING_LEN(s->irep->pool[i]) == 0) {
332
+ if (mrb_string_p(v) && RSTRING_LEN(v) == 0) {
321
333
  s->pc--;
322
- return;
334
+ return 0;
323
335
  }
324
336
  }
325
337
  break;
338
+ case OP_JMPIF:
339
+ case OP_JMPNOT:
340
+ if (c0 == OP_MOVE && GETARG_A(i) == GETARG_A(i0)) {
341
+ s->iseq[s->pc-1] = MKOP_AsBx(c1, GETARG_B(i0), GETARG_sBx(i));
342
+ return s->pc-1;
343
+ }
344
+ break;
326
345
  default:
327
346
  break;
328
347
  }
329
348
  }
330
- genop(s, i);
349
+ return genop(s, i);
331
350
  }
332
351
 
333
352
  static void
@@ -464,6 +483,8 @@ new_msym(codegen_scope *s, mrb_sym sym)
464
483
  {
465
484
  size_t i, len;
466
485
 
486
+ mrb_assert(s->irep);
487
+
467
488
  len = s->irep->slen;
468
489
  if (len > 256) len = 256;
469
490
  for (i=0; i<len; i++) {
@@ -535,22 +556,26 @@ for_body(codegen_scope *s, node *tree)
535
556
  node *n2;
536
557
  mrb_code c;
537
558
 
538
- // generate receiver
559
+ /* generate receiver */
539
560
  codegen(s, tree->cdr->car, VAL);
540
- // generate loop-block
541
- s = scope_new(s->mrb, s, tree->car);
561
+ /* generate loop-block */
562
+ s = scope_new(s->mrb, s, NULL);
563
+ if (s == NULL) {
564
+ raise_error(prev, "unexpected scope");
565
+ }
566
+
567
+ push(); /* push for a block parameter */
542
568
 
543
569
  lp = loop_push(s, LOOP_FOR);
544
570
  lp->pc1 = new_label(s);
545
571
 
546
- // generate loop variable
572
+ /* generate loop variable */
547
573
  n2 = tree->car;
574
+ genop(s, MKOP_Ax(OP_ENTER, 0x40000));
548
575
  if (n2->car && !n2->car->cdr && !n2->cdr) {
549
- genop(s, MKOP_Ax(OP_ENTER, 0x40000));
550
576
  gen_assignment(s, n2->car->car, 1, NOVAL);
551
577
  }
552
578
  else {
553
- genop(s, MKOP_Ax(OP_ENTER, 0x40000));
554
579
  gen_vmassignment(s, n2, 1, VAL);
555
580
  }
556
581
  codegen(s, tree->cdr->cdr->car, VAL);
@@ -575,6 +600,10 @@ lambda_body(codegen_scope *s, node *tree, int blk)
575
600
  mrb_code c;
576
601
  codegen_scope *parent = s;
577
602
  s = scope_new(s->mrb, s, tree->car);
603
+ if (s == NULL) {
604
+ raise_error(parent, "unexpected scope");
605
+ }
606
+
578
607
  s->mscope = !blk;
579
608
 
580
609
  if (blk) {
@@ -660,6 +689,9 @@ static int
660
689
  scope_body(codegen_scope *s, node *tree, int val)
661
690
  {
662
691
  codegen_scope *scope = scope_new(s->mrb, s, tree->car);
692
+ if (scope == NULL) {
693
+ raise_error(s, "unexpected scope");
694
+ }
663
695
 
664
696
  codegen(scope, tree->cdr, VAL);
665
697
  if (!s->iseq) {
@@ -699,12 +731,17 @@ static mrb_sym
699
731
  attrsym(codegen_scope *s, mrb_sym a)
700
732
  {
701
733
  const char *name;
702
- size_t len;
734
+ mrb_int len;
703
735
  char *name2;
704
736
 
705
737
  name = mrb_sym2name_len(s->mrb, a, &len);
706
- name2 = (char *)codegen_palloc(s, len+1);
707
- memcpy(name2, name, len);
738
+ name2 = (char *)codegen_palloc(s,
739
+ (size_t)len
740
+ + 1 /* '=' */
741
+ + 1 /* '\0' */
742
+ );
743
+ mrb_assert_int_fit(mrb_int, len, size_t, SIZE_MAX);
744
+ memcpy(name2, name, (size_t)len);
708
745
  name2[len] = '=';
709
746
  name2[len+1] = '\0';
710
747
 
@@ -718,7 +755,7 @@ gen_values(codegen_scope *s, node *t, int val)
718
755
  int is_splat;
719
756
 
720
757
  while (t) {
721
- is_splat = (intptr_t)t->car->car == NODE_SPLAT; // splat mode
758
+ is_splat = (intptr_t)t->car->car == NODE_SPLAT; /* splat mode */
722
759
  if (n >= 127 || is_splat) {
723
760
  if (val) {
724
761
  pop_n(n);
@@ -727,10 +764,10 @@ gen_values(codegen_scope *s, node *t, int val)
727
764
  codegen(s, t->car, VAL);
728
765
  pop(); pop();
729
766
  if (is_splat) {
730
- genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1));
767
+ genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1));
731
768
  }
732
769
  else {
733
- genop(s, MKOP_AB(OP_ARYPUSH, cursp(), cursp()+1));
770
+ genop(s, MKOP_AB(OP_ARYPUSH, cursp(), cursp()+1));
734
771
  }
735
772
  t = t->cdr;
736
773
  while (t) {
@@ -756,7 +793,7 @@ gen_values(codegen_scope *s, node *t, int val)
756
793
  }
757
794
  return -1;
758
795
  }
759
- // normal (no splat) mode
796
+ /* normal (no splat) mode */
760
797
  codegen(s, t->car, val);
761
798
  n++;
762
799
  t = t->cdr;
@@ -803,36 +840,37 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val)
803
840
  else {
804
841
  blk = cursp();
805
842
  }
843
+ push();pop();
806
844
  pop_n(n+1);
807
845
  {
808
- size_t len;
809
- const char *name = mrb_sym2name_len(s->mrb, sym, &len);
846
+ mrb_int symlen;
847
+ const char *symname = mrb_sym2name_len(s->mrb, sym, &symlen);
810
848
 
811
- if (!noop && len == 1 && name[0] == '+') {
849
+ if (!noop && symlen == 1 && symname[0] == '+') {
812
850
  genop_peep(s, MKOP_ABC(OP_ADD, cursp(), idx, n), val);
813
851
  }
814
- else if (!noop && len == 1 && name[0] == '-') {
852
+ else if (!noop && symlen == 1 && symname[0] == '-') {
815
853
  genop_peep(s, MKOP_ABC(OP_SUB, cursp(), idx, n), val);
816
854
  }
817
- else if (!noop && len == 1 && name[0] == '*') {
855
+ else if (!noop && symlen == 1 && symname[0] == '*') {
818
856
  genop(s, MKOP_ABC(OP_MUL, cursp(), idx, n));
819
857
  }
820
- else if (!noop && len == 1 && name[0] == '/') {
858
+ else if (!noop && symlen == 1 && symname[0] == '/') {
821
859
  genop(s, MKOP_ABC(OP_DIV, cursp(), idx, n));
822
860
  }
823
- else if (!noop && len == 1 && name[0] == '<') {
861
+ else if (!noop && symlen == 1 && symname[0] == '<') {
824
862
  genop(s, MKOP_ABC(OP_LT, cursp(), idx, n));
825
863
  }
826
- else if (!noop && len == 2 && name[0] == '<' && name[1] == '=') {
864
+ else if (!noop && symlen == 2 && symname[0] == '<' && symname[1] == '=') {
827
865
  genop(s, MKOP_ABC(OP_LE, cursp(), idx, n));
828
866
  }
829
- else if (!noop && len == 1 && name[0] == '>') {
867
+ else if (!noop && symlen == 1 && symname[0] == '>') {
830
868
  genop(s, MKOP_ABC(OP_GT, cursp(), idx, n));
831
869
  }
832
- else if (!noop && len == 2 && name[0] == '>' && name[1] == '=') {
870
+ else if (!noop && symlen == 2 && symname[0] == '>' && symname[1] == '=') {
833
871
  genop(s, MKOP_ABC(OP_GE, cursp(), idx, n));
834
872
  }
835
- else if (!noop && len == 2 && name[0] == '=' && name[1] == '=') {
873
+ else if (!noop && symlen == 2 && symname[0] == '=' && symname[1] == '=') {
836
874
  genop(s, MKOP_ABC(OP_EQ, cursp(), idx, n));
837
875
  }
838
876
  else {
@@ -851,19 +889,19 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val)
851
889
  }
852
890
 
853
891
  static void
854
- gen_assignment(codegen_scope *s, node *node, int sp, int val)
892
+ gen_assignment(codegen_scope *s, node *tree, int sp, int val)
855
893
  {
856
894
  int idx;
857
- int type = (intptr_t)node->car;
895
+ int type = (intptr_t)tree->car;
858
896
 
859
- node = node->cdr;
897
+ tree = tree->cdr;
860
898
  switch ((intptr_t)type) {
861
899
  case NODE_GVAR:
862
- idx = new_sym(s, sym(node));
900
+ idx = new_sym(s, sym(tree));
863
901
  genop_peep(s, MKOP_ABx(OP_SETGLOBAL, sp, idx), val);
864
902
  break;
865
903
  case NODE_LVAR:
866
- idx = lv_idx(s, sym(node));
904
+ idx = lv_idx(s, sym(tree));
867
905
  if (idx > 0) {
868
906
  if (idx != sp) {
869
907
  genop_peep(s, MKOP_AB(OP_MOVE, idx, sp), val);
@@ -875,7 +913,7 @@ gen_assignment(codegen_scope *s, node *node, int sp, int val)
875
913
  codegen_scope *up = s->prev;
876
914
 
877
915
  while (up) {
878
- idx = lv_idx(up, sym(node));
916
+ idx = lv_idx(up, sym(tree));
879
917
  if (idx > 0) {
880
918
  genop_peep(s, MKOP_ABC(OP_SETUPVAR, sp, idx, lv), val);
881
919
  break;
@@ -886,29 +924,41 @@ gen_assignment(codegen_scope *s, node *node, int sp, int val)
886
924
  }
887
925
  break;
888
926
  case NODE_IVAR:
889
- idx = new_sym(s, sym(node));
927
+ idx = new_sym(s, sym(tree));
890
928
  genop_peep(s, MKOP_ABx(OP_SETIV, sp, idx), val);
891
929
  break;
892
930
  case NODE_CVAR:
893
- idx = new_sym(s, sym(node));
931
+ idx = new_sym(s, sym(tree));
894
932
  genop_peep(s, MKOP_ABx(OP_SETCV, sp, idx), val);
895
933
  break;
896
934
  case NODE_CONST:
897
- idx = new_sym(s, sym(node));
935
+ idx = new_sym(s, sym(tree));
898
936
  genop_peep(s, MKOP_ABx(OP_SETCONST, sp, idx), val);
899
937
  break;
900
938
  case NODE_COLON2:
901
- idx = new_sym(s, sym(node->cdr));
939
+ idx = new_sym(s, sym(tree->cdr));
902
940
  genop_peep(s, MKOP_AB(OP_MOVE, cursp(), sp), NOVAL);
903
941
  push();
904
- codegen(s, node->car, VAL);
942
+ codegen(s, tree->car, VAL);
905
943
  pop_n(2);
906
944
  genop_peep(s, MKOP_ABx(OP_SETMCNST, cursp(), idx), val);
907
945
  break;
908
946
 
909
947
  case NODE_CALL:
910
948
  push();
911
- gen_call(s, node, attrsym(s, sym(node->cdr->car)), sp, NOVAL);
949
+ gen_call(s, tree, attrsym(s, sym(tree->cdr->car)), sp, NOVAL);
950
+ pop();
951
+ if (val) {
952
+ genop_peep(s, MKOP_AB(OP_MOVE, cursp(), sp), val);
953
+ }
954
+ break;
955
+
956
+ case NODE_MASGN:
957
+ gen_vmassignment(s, tree->car, sp, val);
958
+ break;
959
+
960
+ push();
961
+ gen_call(s, tree, attrsym(s, sym(tree->cdr->car)), sp, NOVAL);
912
962
  pop();
913
963
  if (val) {
914
964
  genop_peep(s, MKOP_AB(OP_MOVE, cursp(), sp), val);
@@ -951,9 +1001,10 @@ gen_vmassignment(codegen_scope *s, node *tree, int rhs, int val)
951
1001
  }
952
1002
  if (val) {
953
1003
  genop(s, MKOP_AB(OP_MOVE, cursp(), rhs));
954
- push();
955
1004
  }
956
- pop();
1005
+ else {
1006
+ pop();
1007
+ }
957
1008
  genop(s, MKOP_ABC(OP_APOST, cursp(), n, post));
958
1009
  n = 1;
959
1010
  if (t->car) { /* rest */
@@ -967,9 +1018,7 @@ gen_vmassignment(codegen_scope *s, node *tree, int rhs, int val)
967
1018
  n++;
968
1019
  }
969
1020
  }
970
- }
971
- else {
972
- pop();
1021
+ push();
973
1022
  }
974
1023
  }
975
1024
 
@@ -981,7 +1030,7 @@ gen_send_intern(codegen_scope *s)
981
1030
  push();
982
1031
  }
983
1032
  static void
984
- gen_literal_array(codegen_scope *s, node *tree, int sym, int val)
1033
+ gen_literal_array(codegen_scope *s, node *tree, mrb_bool sym, int val)
985
1034
  {
986
1035
  if (val) {
987
1036
  int i = 0, j = 0;
@@ -1069,12 +1118,13 @@ readint_float(codegen_scope *s, const char *p, int base)
1069
1118
  }
1070
1119
 
1071
1120
  static mrb_int
1072
- readint_mrb_int(codegen_scope *s, const char *p, int base, int neg, int *overflow)
1121
+ readint_mrb_int(codegen_scope *s, const char *p, int base, mrb_bool neg, mrb_bool *overflow)
1073
1122
  {
1074
1123
  const char *e = p + strlen(p);
1075
1124
  mrb_int result = 0;
1076
1125
  int n;
1077
1126
 
1127
+ mrb_assert(base >= 2 && base <= 36);
1078
1128
  if (*p == '+') p++;
1079
1129
  while (p < e) {
1080
1130
  char c = *p;
@@ -1117,7 +1167,7 @@ codegen(codegen_scope *s, node *tree, int val)
1117
1167
 
1118
1168
  if (!tree) return;
1119
1169
 
1120
- if (s->irep && s->pc > 0 && s->filename_index != tree->filename_index) {
1170
+ if (s->irep && s->filename_index != tree->filename_index) {
1121
1171
  s->irep->filename = mrb_parser_get_filename(s->parser, s->filename_index);
1122
1172
  mrb_debug_info_append_file(s->mrb, s->irep, s->debug_start_pos, s->pc);
1123
1173
  s->debug_start_pos = s->pc;
@@ -1145,8 +1195,7 @@ codegen(codegen_scope *s, node *tree, int val)
1145
1195
  int onerr, noexc, exend, pos1, pos2, tmp;
1146
1196
  struct loopinfo *lp;
1147
1197
 
1148
- onerr = new_label(s);
1149
- genop(s, MKOP_Bx(OP_ONERR, 0));
1198
+ onerr = genop(s, MKOP_Bx(OP_ONERR, 0));
1150
1199
  lp = loop_push(s, LOOP_BEGIN);
1151
1200
  lp->pc1 = onerr;
1152
1201
  if (tree->car) {
@@ -1154,8 +1203,7 @@ codegen(codegen_scope *s, node *tree, int val)
1154
1203
  if (val) pop();
1155
1204
  }
1156
1205
  lp->type = LOOP_RESCUE;
1157
- noexc = new_label(s);
1158
- genop(s, MKOP_Bx(OP_JMP, 0));
1206
+ noexc = genop(s, MKOP_Bx(OP_JMP, 0));
1159
1207
  dispatch(s, onerr);
1160
1208
  tree = tree->cdr;
1161
1209
  exend = 0;
@@ -1182,16 +1230,19 @@ codegen(codegen_scope *s, node *tree, int val)
1182
1230
  }
1183
1231
  genop(s, MKOP_AB(OP_MOVE, cursp(), exc));
1184
1232
  pop();
1185
- genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "===")), 1));
1186
- tmp = new_label(s);
1187
- genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2));
1233
+ if (n4 && n4->car && (intptr_t)n4->car->car == NODE_SPLAT) {
1234
+ genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "__case_eqq")), 1));
1235
+ }
1236
+ else {
1237
+ genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "===")), 1));
1238
+ }
1239
+ tmp = genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2));
1188
1240
  pos2 = tmp;
1189
1241
  if (n4) {
1190
1242
  n4 = n4->cdr;
1191
1243
  }
1192
1244
  } while (n4);
1193
- pos1 = new_label(s);
1194
- genop(s, MKOP_sBx(OP_JMP, 0));
1245
+ pos1 = genop(s, MKOP_sBx(OP_JMP, 0));
1195
1246
  dispatch_linked(s, pos2);
1196
1247
 
1197
1248
  pop();
@@ -1202,8 +1253,7 @@ codegen(codegen_scope *s, node *tree, int val)
1202
1253
  codegen(s, n3->cdr->cdr->car, val);
1203
1254
  if (val) pop();
1204
1255
  }
1205
- tmp = new_label(s);
1206
- genop(s, MKOP_sBx(OP_JMP, exend));
1256
+ tmp = genop(s, MKOP_sBx(OP_JMP, exend));
1207
1257
  exend = tmp;
1208
1258
  n2 = n2->cdr;
1209
1259
  push();
@@ -1268,8 +1318,7 @@ codegen(codegen_scope *s, node *tree, int val)
1268
1318
 
1269
1319
  codegen(s, tree->car, VAL);
1270
1320
  pop();
1271
- pos1 = new_label(s);
1272
- genop(s, MKOP_AsBx(OP_JMPNOT, cursp(), 0));
1321
+ pos1 = genop_peep(s, MKOP_AsBx(OP_JMPNOT, cursp(), 0), NOVAL);
1273
1322
 
1274
1323
  codegen(s, tree->cdr->car, val);
1275
1324
  if (val && !(tree->cdr->car)) {
@@ -1278,17 +1327,15 @@ codegen(codegen_scope *s, node *tree, int val)
1278
1327
  }
1279
1328
  if (e) {
1280
1329
  if (val) pop();
1281
- pos2 = new_label(s);
1282
- genop(s, MKOP_sBx(OP_JMP, 0));
1283
- dispatch(s, pos1);
1330
+ pos2 = genop(s, MKOP_sBx(OP_JMP, 0));
1331
+ dispatch(s, pos1);
1284
1332
  codegen(s, e, val);
1285
1333
  dispatch(s, pos2);
1286
1334
  }
1287
1335
  else {
1288
1336
  if (val) {
1289
1337
  pop();
1290
- pos2 = new_label(s);
1291
- genop(s, MKOP_sBx(OP_JMP, 0));
1338
+ pos2 = genop(s, MKOP_sBx(OP_JMP, 0));
1292
1339
  dispatch(s, pos1);
1293
1340
  genop(s, MKOP_A(OP_LOADNIL, cursp()));
1294
1341
  dispatch(s, pos2);
@@ -1306,9 +1353,8 @@ codegen(codegen_scope *s, node *tree, int val)
1306
1353
  int pos;
1307
1354
 
1308
1355
  codegen(s, tree->car, VAL);
1309
- pos = new_label(s);
1310
1356
  pop();
1311
- genop(s, MKOP_AsBx(OP_JMPNOT, cursp(), 0));
1357
+ pos = genop(s, MKOP_AsBx(OP_JMPNOT, cursp(), 0));
1312
1358
  codegen(s, tree->cdr, val);
1313
1359
  dispatch(s, pos);
1314
1360
  }
@@ -1319,9 +1365,8 @@ codegen(codegen_scope *s, node *tree, int val)
1319
1365
  int pos;
1320
1366
 
1321
1367
  codegen(s, tree->car, VAL);
1322
- pos = new_label(s);
1323
1368
  pop();
1324
- genop(s, MKOP_AsBx(OP_JMPIF, cursp(), 0));
1369
+ pos = genop(s, MKOP_AsBx(OP_JMPIF, cursp(), 0));
1325
1370
  codegen(s, tree->cdr, val);
1326
1371
  dispatch(s, pos);
1327
1372
  }
@@ -1331,8 +1376,7 @@ codegen(codegen_scope *s, node *tree, int val)
1331
1376
  {
1332
1377
  struct loopinfo *lp = loop_push(s, LOOP_NORMAL);
1333
1378
 
1334
- lp->pc1 = new_label(s);
1335
- genop(s, MKOP_sBx(OP_JMP, 0));
1379
+ lp->pc1 = genop(s, MKOP_sBx(OP_JMP, 0));
1336
1380
  lp->pc2 = new_label(s);
1337
1381
  codegen(s, tree->cdr, NOVAL);
1338
1382
  dispatch(s, lp->pc1);
@@ -1348,8 +1392,7 @@ codegen(codegen_scope *s, node *tree, int val)
1348
1392
  {
1349
1393
  struct loopinfo *lp = loop_push(s, LOOP_NORMAL);
1350
1394
 
1351
- lp->pc1 = new_label(s);
1352
- genop(s, MKOP_sBx(OP_JMP, 0));
1395
+ lp->pc1 = genop(s, MKOP_sBx(OP_JMP, 0));
1353
1396
  lp->pc2 = new_label(s);
1354
1397
  codegen(s, tree->cdr, NOVAL);
1355
1398
  dispatch(s, lp->pc1);
@@ -1396,20 +1439,17 @@ codegen(codegen_scope *s, node *tree, int val)
1396
1439
  else {
1397
1440
  pop();
1398
1441
  }
1399
- tmp = new_label(s);
1400
- genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2));
1442
+ tmp = genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2));
1401
1443
  pos2 = tmp;
1402
1444
  n = n->cdr;
1403
1445
  }
1404
1446
  if (tree->car->car) {
1405
- pos1 = new_label(s);
1406
- genop(s, MKOP_sBx(OP_JMP, 0));
1447
+ pos1 = genop(s, MKOP_sBx(OP_JMP, 0));
1407
1448
  dispatch_linked(s, pos2);
1408
1449
  }
1409
1450
  codegen(s, tree->car->cdr, val);
1410
1451
  if (val) pop();
1411
- tmp = new_label(s);
1412
- genop(s, MKOP_sBx(OP_JMP, pos3));
1452
+ tmp = genop(s, MKOP_sBx(OP_JMP, pos3));
1413
1453
  pos3 = tmp;
1414
1454
  if (pos1) dispatch(s, pos1);
1415
1455
  tree = tree->cdr;
@@ -1442,7 +1482,7 @@ codegen(codegen_scope *s, node *tree, int val)
1442
1482
  codegen(s, tree->cdr, val);
1443
1483
  if (val) {
1444
1484
  pop(); pop();
1445
- genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), 0));
1485
+ genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), FALSE));
1446
1486
  push();
1447
1487
  }
1448
1488
  break;
@@ -1452,7 +1492,7 @@ codegen(codegen_scope *s, node *tree, int val)
1452
1492
  codegen(s, tree->cdr, val);
1453
1493
  if (val) {
1454
1494
  pop(); pop();
1455
- genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), 1));
1495
+ genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), TRUE));
1456
1496
  push();
1457
1497
  }
1458
1498
  break;
@@ -1499,30 +1539,39 @@ codegen(codegen_scope *s, node *tree, int val)
1499
1539
  case NODE_HASH:
1500
1540
  {
1501
1541
  int len = 0;
1542
+ mrb_bool update = FALSE;
1502
1543
 
1503
1544
  while (tree) {
1504
1545
  codegen(s, tree->car->car, val);
1505
1546
  codegen(s, tree->car->cdr, val);
1506
1547
  len++;
1507
1548
  tree = tree->cdr;
1549
+ if (val && len == 126) {
1550
+ pop_n(len*2);
1551
+ genop(s, MKOP_ABC(OP_HASH, cursp(), cursp(), len));
1552
+ if (update) {
1553
+ pop();
1554
+ genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "__update")), 1));
1555
+ }
1556
+ push();
1557
+ update = TRUE;
1558
+ len = 0;
1559
+ }
1508
1560
  }
1509
1561
  if (val) {
1510
1562
  pop_n(len*2);
1511
1563
  genop(s, MKOP_ABC(OP_HASH, cursp(), cursp(), len));
1564
+ if (update) {
1565
+ pop();
1566
+ genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "__update")), 1));
1567
+ }
1512
1568
  push();
1513
1569
  }
1514
1570
  }
1515
1571
  break;
1516
1572
 
1517
1573
  case NODE_SPLAT:
1518
- {
1519
- int idx = new_msym(s, mrb_intern_lit(s->mrb, "to_a"));
1520
-
1521
- codegen(s, tree, VAL);
1522
- pop();
1523
- genop(s, MKOP_ABC(OP_SEND, cursp(), idx, 0));
1524
- push();
1525
- }
1574
+ codegen(s, tree, VAL);
1526
1575
  break;
1527
1576
 
1528
1577
  case NODE_ASGN:
@@ -1538,7 +1587,7 @@ codegen(codegen_scope *s, node *tree, int val)
1538
1587
  int rhs = cursp();
1539
1588
 
1540
1589
  if ((intptr_t)t->car == NODE_ARRAY && nosplat(t->cdr)) {
1541
- // fixed rhs
1590
+ /* fixed rhs */
1542
1591
  t = t->cdr;
1543
1592
  while (t) {
1544
1593
  codegen(s, t->car, VAL);
@@ -1587,9 +1636,12 @@ codegen(codegen_scope *s, node *tree, int val)
1587
1636
  }
1588
1637
  }
1589
1638
  else {
1590
- // variable rhs
1639
+ /* variable rhs */
1591
1640
  codegen(s, t, VAL);
1592
1641
  gen_vmassignment(s, tree->car, rhs, val);
1642
+ if (!val) {
1643
+ pop();
1644
+ }
1593
1645
  }
1594
1646
  }
1595
1647
  break;
@@ -1597,7 +1649,7 @@ codegen(codegen_scope *s, node *tree, int val)
1597
1649
  case NODE_OP_ASGN:
1598
1650
  {
1599
1651
  mrb_sym sym = sym(tree->cdr->car);
1600
- size_t len;
1652
+ mrb_int len;
1601
1653
  const char *name = mrb_sym2name_len(s->mrb, sym, &len);
1602
1654
  int idx;
1603
1655
 
@@ -1608,8 +1660,7 @@ codegen(codegen_scope *s, node *tree, int val)
1608
1660
  int pos;
1609
1661
 
1610
1662
  pop();
1611
- pos = new_label(s);
1612
- genop(s, MKOP_AsBx(name[0] == '|' ? OP_JMPIF : OP_JMPNOT, cursp(), 0));
1663
+ pos = genop_peep(s, MKOP_AsBx(name[0] == '|' ? OP_JMPIF : OP_JMPNOT, cursp(), 0), NOVAL);
1613
1664
  codegen(s, tree->cdr->cdr->car, VAL);
1614
1665
  pop();
1615
1666
  gen_assignment(s, tree->car, cursp(), val);
@@ -1617,6 +1668,7 @@ codegen(codegen_scope *s, node *tree, int val)
1617
1668
  break;
1618
1669
  }
1619
1670
  codegen(s, tree->cdr->cdr->car, VAL);
1671
+ push(); pop();
1620
1672
  pop(); pop();
1621
1673
 
1622
1674
  idx = new_msym(s, sym);
@@ -1672,6 +1724,7 @@ codegen(codegen_scope *s, node *tree, int val)
1672
1724
  }
1673
1725
  else {
1674
1726
  genop(s, MKOP_A(OP_LOADNIL, cursp()));
1727
+ push(); pop();
1675
1728
  }
1676
1729
  pop_n(n+1);
1677
1730
  if (sendv) n = CALL_MAXARGS;
@@ -1693,12 +1746,12 @@ codegen(codegen_scope *s, node *tree, int val)
1693
1746
  }
1694
1747
  if (s2) ainfo = s2->ainfo;
1695
1748
  genop(s, MKOP_ABx(OP_ARGARY, cursp(), (ainfo<<4)|(lv & 0xf)));
1749
+ push(); push(); pop(); /* ARGARY pushes two values */
1696
1750
  if (tree && tree->cdr) {
1697
- push();
1698
1751
  codegen(s, tree->cdr, VAL);
1699
- pop_n(2);
1752
+ pop();
1700
1753
  }
1701
- pop();
1754
+ pop(); pop();
1702
1755
  genop(s, MKOP_ABC(OP_SUPER, cursp(), 0, CALL_MAXARGS));
1703
1756
  if (val) push();
1704
1757
  }
@@ -1830,7 +1883,7 @@ codegen(codegen_scope *s, node *tree, int val)
1830
1883
  int idx = lv_idx(s, sym(tree));
1831
1884
 
1832
1885
  if (idx > 0) {
1833
- genop(s, MKOP_AB(OP_MOVE, cursp(), idx));
1886
+ genop_peep(s, MKOP_AB(OP_MOVE, cursp(), idx), NOVAL);
1834
1887
  }
1835
1888
  else {
1836
1889
  int lv = 0;
@@ -1911,8 +1964,8 @@ codegen(codegen_scope *s, node *tree, int val)
1911
1964
  mrb_value fix = mrb_fixnum_value((intptr_t)tree);
1912
1965
  mrb_value str = mrb_str_buf_new(mrb, 4);
1913
1966
 
1914
- mrb_str_buf_cat(mrb, str, "$", 1);
1915
- mrb_str_buf_append(mrb, str, mrb_fixnum_to_str(mrb, fix, 10));
1967
+ mrb_str_cat_lit(mrb, str, "$");
1968
+ mrb_str_cat_str(mrb, str, mrb_fixnum_to_str(mrb, fix, 10));
1916
1969
  sym = new_sym(s, mrb_intern_str(mrb, str));
1917
1970
  genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym));
1918
1971
  push();
@@ -1920,7 +1973,7 @@ codegen(codegen_scope *s, node *tree, int val)
1920
1973
  break;
1921
1974
 
1922
1975
  case NODE_ARG:
1923
- // should not happen
1976
+ /* should not happen */
1924
1977
  break;
1925
1978
 
1926
1979
  case NODE_BLOCK_ARG:
@@ -1933,7 +1986,7 @@ codegen(codegen_scope *s, node *tree, int val)
1933
1986
  int base = (intptr_t)tree->cdr->car;
1934
1987
  mrb_int i;
1935
1988
  mrb_code co;
1936
- int overflow;
1989
+ mrb_bool overflow;
1937
1990
 
1938
1991
  i = readint_mrb_int(s, p, base, FALSE, &overflow);
1939
1992
  if (overflow) {
@@ -1989,7 +2042,7 @@ codegen(codegen_scope *s, node *tree, int val)
1989
2042
  int base = (intptr_t)tree->cdr->car;
1990
2043
  mrb_int i;
1991
2044
  mrb_code co;
1992
- int overflow;
2045
+ mrb_bool overflow;
1993
2046
 
1994
2047
  i = readint_mrb_int(s, p, base, TRUE, &overflow);
1995
2048
  if (overflow) {
@@ -2077,14 +2130,48 @@ codegen(codegen_scope *s, node *tree, int val)
2077
2130
  gen_literal_array(s, tree, TRUE, val);
2078
2131
  break;
2079
2132
 
2133
+ case NODE_DXSTR:
2134
+ {
2135
+ node *n;
2136
+ int ai = mrb_gc_arena_save(s->mrb);
2137
+ int sym = new_sym(s, mrb_intern_lit(s->mrb, "Kernel"));
2138
+
2139
+ if (val == NOVAL) { push(); }
2140
+ genop(s, MKOP_A(OP_OCLASS, cursp()));
2141
+ genop(s, MKOP_ABx(OP_GETMCNST, cursp(), sym));
2142
+ push();
2143
+ codegen(s, tree->car, VAL);
2144
+ n = tree->cdr;
2145
+ while (n) {
2146
+ if ((intptr_t)n->car->car == NODE_XSTR) {
2147
+ n->car->car = (struct mrb_ast_node*)(intptr_t)NODE_STR;
2148
+ mrb_assert(!n->cdr); /* must be the end */
2149
+ }
2150
+ codegen(s, n->car, VAL);
2151
+ pop(); pop();
2152
+ genop_peep(s, MKOP_AB(OP_STRCAT, cursp(), cursp()+1), VAL);
2153
+ push();
2154
+ n = n->cdr;
2155
+ }
2156
+ pop();
2157
+ pop();
2158
+ sym = new_sym(s, mrb_intern_lit(s->mrb, "`"));
2159
+ genop(s, MKOP_ABC(OP_SEND, cursp(), sym, 1));
2160
+ if (val == NOVAL) { pop(); }
2161
+ else { push(); }
2162
+ mrb_gc_arena_restore(s->mrb, ai);
2163
+ }
2164
+ break;
2165
+
2080
2166
  case NODE_XSTR:
2081
- if (val) {
2167
+ {
2082
2168
  char *p = (char*)tree->car;
2083
2169
  size_t len = (intptr_t)tree->cdr;
2084
2170
  int ai = mrb_gc_arena_save(s->mrb);
2085
2171
  int sym = new_sym(s, mrb_intern_lit(s->mrb, "Kernel"));
2086
2172
  int off = new_lit(s, mrb_str_new(s->mrb, p, len));
2087
2173
 
2174
+ if (val == NOVAL) { push(); }
2088
2175
  genop(s, MKOP_A(OP_OCLASS, cursp()));
2089
2176
  genop(s, MKOP_ABx(OP_GETMCNST, cursp(), sym));
2090
2177
  push();
@@ -2092,8 +2179,9 @@ codegen(codegen_scope *s, node *tree, int val)
2092
2179
  pop();
2093
2180
  sym = new_sym(s, mrb_intern_lit(s->mrb, "`"));
2094
2181
  genop(s, MKOP_ABC(OP_SEND, cursp(), sym, 1));
2182
+ if (val == NOVAL) { pop(); }
2183
+ else { push(); }
2095
2184
  mrb_gc_arena_restore(s->mrb, ai);
2096
- push();
2097
2185
  }
2098
2186
  break;
2099
2187
 
@@ -2103,7 +2191,7 @@ codegen(codegen_scope *s, node *tree, int val)
2103
2191
  char *p2 = (char*)tree->cdr;
2104
2192
  int ai = mrb_gc_arena_save(s->mrb);
2105
2193
  int sym = new_sym(s, mrb_intern_lit(s->mrb, REGEXP_CLASS));
2106
- int off = new_lit(s, mrb_str_new(s->mrb, p1, strlen(p1)));
2194
+ int off = new_lit(s, mrb_str_new_cstr(s->mrb, p1));
2107
2195
  int argc = 1;
2108
2196
 
2109
2197
  genop(s, MKOP_A(OP_OCLASS, cursp()));
@@ -2112,7 +2200,7 @@ codegen(codegen_scope *s, node *tree, int val)
2112
2200
  genop(s, MKOP_ABx(OP_STRING, cursp(), off));
2113
2201
  if (p2) {
2114
2202
  push();
2115
- off = new_lit(s, mrb_str_new(s->mrb, p2, strlen(p2)));
2203
+ off = new_lit(s, mrb_str_new_cstr(s->mrb, p2));
2116
2204
  genop(s, MKOP_ABx(OP_STRING, cursp(), off));
2117
2205
  argc++;
2118
2206
  pop();
@@ -2149,7 +2237,7 @@ codegen(codegen_scope *s, node *tree, int val)
2149
2237
  n = tree->cdr->cdr;
2150
2238
  if (n->car) {
2151
2239
  p = (char*)n->car;
2152
- off = new_lit(s, mrb_str_new(s->mrb, p, strlen(p)));
2240
+ off = new_lit(s, mrb_str_new_cstr(s->mrb, p));
2153
2241
  codegen(s, tree->car, VAL);
2154
2242
  genop(s, MKOP_ABx(OP_STRING, cursp(), off));
2155
2243
  pop();
@@ -2157,10 +2245,9 @@ codegen(codegen_scope *s, node *tree, int val)
2157
2245
  }
2158
2246
  if (n->cdr) {
2159
2247
  char *p2 = (char*)n->cdr;
2160
- int off;
2161
2248
 
2162
2249
  push();
2163
- off = new_lit(s, mrb_str_new(s->mrb, p2, strlen(p2)));
2250
+ off = new_lit(s, mrb_str_new_cstr(s->mrb, p2));
2164
2251
  genop(s, MKOP_ABx(OP_STRING, cursp(), off));
2165
2252
  argc++;
2166
2253
  pop();
@@ -2231,7 +2318,7 @@ codegen(codegen_scope *s, node *tree, int val)
2231
2318
  {
2232
2319
  int a = new_msym(s, sym(tree->car));
2233
2320
  int b = new_msym(s, sym(tree->cdr));
2234
- int c = new_msym(s, mrb_intern_lit(s->mrb,"alias_method"));
2321
+ int c = new_msym(s, mrb_intern_lit(s->mrb, "alias_method"));
2235
2322
 
2236
2323
  genop(s, MKOP_A(OP_TCLASS, cursp()));
2237
2324
  push();
@@ -2353,6 +2440,7 @@ codegen(codegen_scope *s, node *tree, int val)
2353
2440
  genop(s, MKOP_A(OP_TCLASS, cursp()));
2354
2441
  push();
2355
2442
  genop(s, MKOP_Abc(OP_LAMBDA, cursp(), idx, OP_L_METHOD));
2443
+ push(); pop();
2356
2444
  pop();
2357
2445
  genop(s, MKOP_AB(OP_METHOD, cursp(), sym));
2358
2446
  if (val) {
@@ -2413,7 +2501,7 @@ scope_new(mrb_state *mrb, codegen_scope *prev, node *lv)
2413
2501
  mrb_pool *pool = mrb_pool_open(mrb);
2414
2502
  codegen_scope *p = (codegen_scope *)mrb_pool_alloc(pool, sizeof(codegen_scope));
2415
2503
 
2416
- if (!p) return 0;
2504
+ if (!p) return NULL;
2417
2505
  *p = codegen_scope_zero;
2418
2506
  p->mrb = mrb;
2419
2507
  p->mpool = pool;
@@ -2443,6 +2531,22 @@ scope_new(mrb_state *mrb, codegen_scope *prev, node *lv)
2443
2531
  p->lv = lv;
2444
2532
  p->sp += node_len(lv)+1; /* add self */
2445
2533
  p->nlocals = p->sp;
2534
+ if (lv) {
2535
+ node *n = lv;
2536
+ size_t i = 0;
2537
+
2538
+ p->irep->lv = (struct mrb_locals*)mrb_malloc(mrb, sizeof(struct mrb_locals) * (p->nlocals - 1));
2539
+ for (i=0, n=lv; n; i++,n=n->cdr) {
2540
+ p->irep->lv[i].name = lv_name(n);
2541
+ if (lv_name(n)) {
2542
+ p->irep->lv[i].r = lv_idx(p, lv_name(n));
2543
+ }
2544
+ else {
2545
+ p->irep->lv[i].r = 0;
2546
+ }
2547
+ }
2548
+ mrb_assert(i + 1 == p->nlocals);
2549
+ }
2446
2550
  p->ai = mrb_gc_arena_save(mrb);
2447
2551
 
2448
2552
  p->filename = prev->filename;
@@ -2451,9 +2555,9 @@ scope_new(mrb_state *mrb, codegen_scope *prev, node *lv)
2451
2555
  }
2452
2556
  p->lineno = prev->lineno;
2453
2557
 
2454
- // debug setting
2558
+ /* debug setting */
2455
2559
  p->debug_start_pos = 0;
2456
- if(p->filename) {
2560
+ if (p->filename) {
2457
2561
  mrb_debug_info_alloc(mrb, p->irep);
2458
2562
  p->irep->filename = p->filename;
2459
2563
  p->irep->lines = p->lines;
@@ -2494,7 +2598,7 @@ scope_finish(codegen_scope *s)
2494
2598
  mrb_debug_info_append_file(mrb, s->irep, s->debug_start_pos, s->pc);
2495
2599
 
2496
2600
  fname_len = strlen(s->filename);
2497
- fname = codegen_malloc(s, fname_len + 1);
2601
+ fname = (char*)codegen_malloc(s, fname_len + 1);
2498
2602
  memcpy(fname, s->filename, fname_len);
2499
2603
  fname[fname_len] = '\0';
2500
2604
  irep->filename = fname;
@@ -2554,8 +2658,7 @@ loop_break(codegen_scope *s, node *tree)
2554
2658
  if (tree) {
2555
2659
  genop_peep(s, MKOP_AB(OP_MOVE, loop->acc, cursp()), NOVAL);
2556
2660
  }
2557
- tmp = new_label(s);
2558
- genop(s, MKOP_sBx(OP_JMP, loop->pc3));
2661
+ tmp = genop(s, MKOP_sBx(OP_JMP, loop->pc3));
2559
2662
  loop->pc3 = tmp;
2560
2663
  }
2561
2664
  else {
@@ -2575,19 +2678,81 @@ loop_pop(codegen_scope *s, int val)
2575
2678
  if (val) push();
2576
2679
  }
2577
2680
 
2681
+ #ifdef ENABLE_STDIO
2682
+ static int
2683
+ print_r(mrb_state *mrb, mrb_irep *irep, size_t n, int pre)
2684
+ {
2685
+ size_t i;
2686
+
2687
+ if (n == 0) return 0;
2688
+
2689
+ for (i=0; i+1<irep->nlocals; i++) {
2690
+ if (irep->lv[i].r == n) {
2691
+ mrb_sym sym = irep->lv[i].name;
2692
+ if (pre) printf(" ");
2693
+ printf("R%d:%s", (int)n, mrb_sym2name(mrb, sym));
2694
+ return 1;
2695
+ }
2696
+ }
2697
+ return 0;
2698
+ }
2699
+
2700
+ #define RA 1
2701
+ #define RB 2
2702
+ #define RAB 3
2703
+
2704
+ static void
2705
+ print_lv(mrb_state *mrb, mrb_irep *irep, mrb_code c, int r)
2706
+ {
2707
+ int pre = 0;
2708
+
2709
+ if (!irep->lv
2710
+ || ((!(r & RA) || GETARG_A(c) >= irep->nlocals)
2711
+ && (!(r & RB) || GETARG_B(c) >= irep->nlocals))) {
2712
+ printf("\n");
2713
+ return;
2714
+ }
2715
+ printf("\t; ");
2716
+ if (r & RA) {
2717
+ pre = print_r(mrb, irep, GETARG_A(c), 0);
2718
+ }
2719
+ if (r & RB) {
2720
+ print_r(mrb, irep, GETARG_B(c), pre);
2721
+ }
2722
+ printf("\n");
2723
+ }
2724
+ #endif
2725
+
2578
2726
  static void
2579
2727
  codedump(mrb_state *mrb, mrb_irep *irep)
2580
2728
  {
2581
2729
  #ifdef ENABLE_STDIO
2582
- uint32_t i;
2730
+ int i;
2583
2731
  int ai;
2584
2732
  mrb_code c;
2733
+ const char *file = NULL, *next_file;
2734
+ int32_t line;
2585
2735
 
2586
2736
  if (!irep) return;
2587
- printf("irep %p nregs=%d nlocals=%d pools=%d syms=%d reps=%d\n", irep,
2737
+ printf("irep %p nregs=%d nlocals=%d pools=%d syms=%d reps=%d\n", (void*)irep,
2588
2738
  irep->nregs, irep->nlocals, (int)irep->plen, (int)irep->slen, (int)irep->rlen);
2589
- for (i=0; i<irep->ilen; i++) {
2739
+
2740
+ for (i = 0; i < (int)irep->ilen; i++) {
2590
2741
  ai = mrb_gc_arena_save(mrb);
2742
+
2743
+ next_file = mrb_debug_get_filename(irep, i);
2744
+ if (next_file && file != next_file) {
2745
+ printf("file: %s\n", next_file);
2746
+ file = next_file;
2747
+ }
2748
+ line = mrb_debug_get_line(irep, i);
2749
+ if (line < 0) {
2750
+ printf(" ");
2751
+ }
2752
+ else {
2753
+ printf("%5d ", line);
2754
+ }
2755
+
2591
2756
  printf("%03d ", i);
2592
2757
  c = irep->iseq[i];
2593
2758
  switch (GET_OPCODE(c)) {
@@ -2595,82 +2760,106 @@ codedump(mrb_state *mrb, mrb_irep *irep)
2595
2760
  printf("OP_NOP\n");
2596
2761
  break;
2597
2762
  case OP_MOVE:
2598
- printf("OP_MOVE\tR%d\tR%d\n", GETARG_A(c), GETARG_B(c));
2763
+ printf("OP_MOVE\tR%d\tR%d\t", GETARG_A(c), GETARG_B(c));
2764
+ print_lv(mrb, irep, c, RAB);
2599
2765
  break;
2600
2766
  case OP_LOADL:
2601
- printf("OP_LOADL\tR%d\tL(%d)\n", GETARG_A(c), GETARG_Bx(c));
2767
+ {
2768
+ mrb_value v = irep->pool[GETARG_Bx(c)];
2769
+ mrb_value s = mrb_inspect(mrb, v);
2770
+ printf("OP_LOADL\tR%d\tL(%d)\t; %s", GETARG_A(c), GETARG_Bx(c), RSTRING_PTR(s));
2771
+ }
2772
+ print_lv(mrb, irep, c, RA);
2602
2773
  break;
2603
2774
  case OP_LOADI:
2604
- printf("OP_LOADI\tR%d\t%d\n", GETARG_A(c), GETARG_sBx(c));
2775
+ printf("OP_LOADI\tR%d\t%d\t", GETARG_A(c), GETARG_sBx(c));
2776
+ print_lv(mrb, irep, c, RA);
2605
2777
  break;
2606
2778
  case OP_LOADSYM:
2607
- printf("OP_LOADSYM\tR%d\t:%s\n", GETARG_A(c),
2779
+ printf("OP_LOADSYM\tR%d\t:%s", GETARG_A(c),
2608
2780
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2781
+ print_lv(mrb, irep, c, RA);
2609
2782
  break;
2610
2783
  case OP_LOADNIL:
2611
- printf("OP_LOADNIL\tR%d\n", GETARG_A(c));
2784
+ printf("OP_LOADNIL\tR%d\t\t", GETARG_A(c));
2785
+ print_lv(mrb, irep, c, RA);
2612
2786
  break;
2613
2787
  case OP_LOADSELF:
2614
- printf("OP_LOADSELF\tR%d\n", GETARG_A(c));
2788
+ printf("OP_LOADSELF\tR%d\t\t", GETARG_A(c));
2789
+ print_lv(mrb, irep, c, RA);
2615
2790
  break;
2616
2791
  case OP_LOADT:
2617
- printf("OP_LOADT\tR%d\n", GETARG_A(c));
2792
+ printf("OP_LOADT\tR%d\t\t", GETARG_A(c));
2793
+ print_lv(mrb, irep, c, RA);
2618
2794
  break;
2619
2795
  case OP_LOADF:
2620
- printf("OP_LOADF\tR%d\n", GETARG_A(c));
2796
+ printf("OP_LOADF\tR%d\t\t", GETARG_A(c));
2797
+ print_lv(mrb, irep, c, RA);
2621
2798
  break;
2622
2799
  case OP_GETGLOBAL:
2623
- printf("OP_GETGLOBAL\tR%d\t:%s\n", GETARG_A(c),
2800
+ printf("OP_GETGLOBAL\tR%d\t:%s", GETARG_A(c),
2624
2801
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2802
+ print_lv(mrb, irep, c, RA);
2625
2803
  break;
2626
2804
  case OP_SETGLOBAL:
2627
- printf("OP_SETGLOBAL\t:%s\tR%d\n",
2805
+ printf("OP_SETGLOBAL\t:%s\tR%d\t",
2628
2806
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]),
2629
2807
  GETARG_A(c));
2808
+ print_lv(mrb, irep, c, RA);
2630
2809
  break;
2631
2810
  case OP_GETCONST:
2632
- printf("OP_GETCONST\tR%d\t:%s\n", GETARG_A(c),
2811
+ printf("OP_GETCONST\tR%d\t:%s", GETARG_A(c),
2633
2812
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2813
+ print_lv(mrb, irep, c, RA);
2634
2814
  break;
2635
2815
  case OP_SETCONST:
2636
- printf("OP_SETCONST\t:%s\tR%d\n",
2816
+ printf("OP_SETCONST\t:%s\tR%d\t",
2637
2817
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]),
2638
2818
  GETARG_A(c));
2819
+ print_lv(mrb, irep, c, RA);
2639
2820
  break;
2640
2821
  case OP_GETMCNST:
2641
- printf("OP_GETMCNST\tR%d\tR%d::%s\n", GETARG_A(c), GETARG_A(c),
2822
+ printf("OP_GETMCNST\tR%d\tR%d::%s", GETARG_A(c), GETARG_A(c),
2642
2823
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2824
+ print_lv(mrb, irep, c, RAB);
2643
2825
  break;
2644
2826
  case OP_SETMCNST:
2645
- printf("OP_SETMCNST\tR%d::%s\tR%d\n", GETARG_A(c)+1,
2827
+ printf("OP_SETMCNST\tR%d::%s\tR%d", GETARG_A(c)+1,
2646
2828
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]),
2647
2829
  GETARG_A(c));
2830
+ print_lv(mrb, irep, c, RA);
2648
2831
  break;
2649
2832
  case OP_GETIV:
2650
- printf("OP_GETIV\tR%d\t%s\n", GETARG_A(c),
2833
+ printf("OP_GETIV\tR%d\t%s", GETARG_A(c),
2651
2834
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2835
+ print_lv(mrb, irep, c, RA);
2652
2836
  break;
2653
2837
  case OP_SETIV:
2654
- printf("OP_SETIV\t%s\tR%d\n",
2838
+ printf("OP_SETIV\t%s\tR%d",
2655
2839
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]),
2656
2840
  GETARG_A(c));
2841
+ print_lv(mrb, irep, c, RA);
2657
2842
  break;
2658
2843
  case OP_GETUPVAR:
2659
- printf("OP_GETUPVAR\tR%d\t%d\t%d\n",
2844
+ printf("OP_GETUPVAR\tR%d\t%d\t%d",
2660
2845
  GETARG_A(c), GETARG_B(c), GETARG_C(c));
2846
+ print_lv(mrb, irep, c, RA);
2661
2847
  break;
2662
2848
  case OP_SETUPVAR:
2663
- printf("OP_SETUPVAR\tR%d\t%d\t%d\n",
2849
+ printf("OP_SETUPVAR\tR%d\t%d\t%d",
2664
2850
  GETARG_A(c), GETARG_B(c), GETARG_C(c));
2851
+ print_lv(mrb, irep, c, RA);
2665
2852
  break;
2666
2853
  case OP_GETCV:
2667
- printf("OP_GETCV\tR%d\t%s\n", GETARG_A(c),
2854
+ printf("OP_GETCV\tR%d\t%s", GETARG_A(c),
2668
2855
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]));
2856
+ print_lv(mrb, irep, c, RA);
2669
2857
  break;
2670
2858
  case OP_SETCV:
2671
- printf("OP_SETCV\t%s\tR%d\n",
2859
+ printf("OP_SETCV\t%s\tR%d",
2672
2860
  mrb_sym2name(mrb, irep->syms[GETARG_Bx(c)]),
2673
2861
  GETARG_A(c));
2862
+ print_lv(mrb, irep, c, RA);
2674
2863
  break;
2675
2864
  case OP_JMP:
2676
2865
  printf("OP_JMP\t\t%03d\n", i+GETARG_sBx(c));
@@ -2701,11 +2890,12 @@ codedump(mrb_state *mrb, mrb_irep *irep)
2701
2890
  GETARG_C(c));
2702
2891
  break;
2703
2892
  case OP_ARGARY:
2704
- printf("OP_ARGARY\tR%d\t%d:%d:%d:%d\n", GETARG_A(c),
2893
+ printf("OP_ARGARY\tR%d\t%d:%d:%d:%d", GETARG_A(c),
2705
2894
  (GETARG_Bx(c)>>10)&0x3f,
2706
2895
  (GETARG_Bx(c)>>9)&0x1,
2707
2896
  (GETARG_Bx(c)>>4)&0x1f,
2708
2897
  (GETARG_Bx(c)>>0)&0xf);
2898
+ print_lv(mrb, irep, c, RA);
2709
2899
  break;
2710
2900
 
2711
2901
  case OP_ENTER:
@@ -2722,33 +2912,37 @@ codedump(mrb_state *mrb, mrb_irep *irep)
2722
2912
  printf("OP_RETURN\tR%d", GETARG_A(c));
2723
2913
  switch (GETARG_B(c)) {
2724
2914
  case OP_R_NORMAL:
2725
- printf("\n"); break;
2726
2915
  case OP_R_RETURN:
2727
- printf("\treturn\n"); break;
2916
+ printf("\treturn"); break;
2728
2917
  case OP_R_BREAK:
2729
- printf("\tbreak\n"); break;
2918
+ printf("\tbreak"); break;
2730
2919
  default:
2731
- printf("\tbroken\n"); break;
2920
+ printf("\tbroken"); break;
2732
2921
  break;
2733
2922
  }
2923
+ print_lv(mrb, irep, c, RA);
2734
2924
  break;
2735
2925
  case OP_BLKPUSH:
2736
- printf("OP_BLKPUSH\tR%d\t%d:%d:%d:%d\n", GETARG_A(c),
2926
+ printf("OP_BLKPUSH\tR%d\t%d:%d:%d:%d", GETARG_A(c),
2737
2927
  (GETARG_Bx(c)>>10)&0x3f,
2738
2928
  (GETARG_Bx(c)>>9)&0x1,
2739
2929
  (GETARG_Bx(c)>>4)&0x1f,
2740
2930
  (GETARG_Bx(c)>>0)&0xf);
2931
+ print_lv(mrb, irep, c, RA);
2741
2932
  break;
2742
2933
 
2743
2934
  case OP_LAMBDA:
2744
- printf("OP_LAMBDA\tR%d\tI(%+d)\t%d\n", GETARG_A(c), GETARG_b(c), GETARG_c(c));
2935
+ printf("OP_LAMBDA\tR%d\tI(%+d)\t%d", GETARG_A(c), GETARG_b(c)+1, GETARG_c(c));
2936
+ print_lv(mrb, irep, c, RA);
2745
2937
  break;
2746
2938
  case OP_RANGE:
2747
- printf("OP_RANGE\tR%d\tR%d\t%d\n", GETARG_A(c), GETARG_B(c), GETARG_C(c));
2939
+ printf("OP_RANGE\tR%d\tR%d\t%d", GETARG_A(c), GETARG_B(c), GETARG_C(c));
2940
+ print_lv(mrb, irep, c, RAB);
2748
2941
  break;
2749
2942
  case OP_METHOD:
2750
- printf("OP_METHOD\tR%d\t:%s\n", GETARG_A(c),
2943
+ printf("OP_METHOD\tR%d\t:%s", GETARG_A(c),
2751
2944
  mrb_sym2name(mrb, irep->syms[GETARG_B(c)]));
2945
+ print_lv(mrb, irep, c, RA);
2752
2946
  break;
2753
2947
 
2754
2948
  case OP_ADD:
@@ -2812,71 +3006,92 @@ codedump(mrb_state *mrb, mrb_irep *irep)
2812
3006
  break;
2813
3007
 
2814
3008
  case OP_ARRAY:
2815
- printf("OP_ARRAY\tR%d\tR%d\t%d\n", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3009
+ printf("OP_ARRAY\tR%d\tR%d\t%d", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3010
+ print_lv(mrb, irep, c, RAB);
2816
3011
  break;
2817
3012
  case OP_ARYCAT:
2818
- printf("OP_ARYCAT\tR%d\tR%d\n", GETARG_A(c), GETARG_B(c));
3013
+ printf("OP_ARYCAT\tR%d\tR%d\t", GETARG_A(c), GETARG_B(c));
3014
+ print_lv(mrb, irep, c, RAB);
2819
3015
  break;
2820
3016
  case OP_ARYPUSH:
2821
- printf("OP_ARYPUSH\tR%d\tR%d\n", GETARG_A(c), GETARG_B(c));
3017
+ printf("OP_ARYPUSH\tR%d\tR%d\t", GETARG_A(c), GETARG_B(c));
3018
+ print_lv(mrb, irep, c, RAB);
2822
3019
  break;
2823
3020
  case OP_AREF:
2824
- printf("OP_AREF\tR%d\tR%d\t%d\n", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3021
+ printf("OP_AREF\tR%d\tR%d\t%d", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3022
+ print_lv(mrb, irep, c, RAB);
2825
3023
  break;
2826
3024
  case OP_APOST:
2827
- printf("OP_APOST\tR%d\t%d\t%d\n", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3025
+ printf("OP_APOST\tR%d\t%d\t%d", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3026
+ print_lv(mrb, irep, c, RA);
2828
3027
  break;
2829
3028
  case OP_STRING:
2830
3029
  {
2831
3030
  mrb_value v = irep->pool[GETARG_Bx(c)];
2832
3031
  mrb_value s = mrb_str_dump(mrb, mrb_str_new(mrb, RSTRING_PTR(v), RSTRING_LEN(v)));
2833
- printf("OP_STRING\tR%d\t%s\n", GETARG_A(c), RSTRING_PTR(s));
3032
+ printf("OP_STRING\tR%d\tL(%d)\t; %s", GETARG_A(c), GETARG_Bx(c), RSTRING_PTR(s));
2834
3033
  }
3034
+ print_lv(mrb, irep, c, RA);
2835
3035
  break;
2836
3036
  case OP_STRCAT:
2837
- printf("OP_STRCAT\tR%d\tR%d\n", GETARG_A(c), GETARG_B(c));
3037
+ printf("OP_STRCAT\tR%d\tR%d\t", GETARG_A(c), GETARG_B(c));
3038
+ print_lv(mrb, irep, c, RAB);
2838
3039
  break;
2839
3040
  case OP_HASH:
2840
- printf("OP_HASH\tR%d\tR%d\t%d\n", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3041
+ printf("OP_HASH\tR%d\tR%d\t%d", GETARG_A(c), GETARG_B(c), GETARG_C(c));
3042
+ print_lv(mrb, irep, c, RAB);
2841
3043
  break;
2842
3044
 
2843
3045
  case OP_OCLASS:
2844
- printf("OP_OCLASS\tR%d\n", GETARG_A(c));
3046
+ printf("OP_OCLASS\tR%d\t\t", GETARG_A(c));
3047
+ print_lv(mrb, irep, c, RA);
2845
3048
  break;
2846
3049
  case OP_CLASS:
2847
- printf("OP_CLASS\tR%d\t:%s\n", GETARG_A(c),
3050
+ printf("OP_CLASS\tR%d\t:%s", GETARG_A(c),
2848
3051
  mrb_sym2name(mrb, irep->syms[GETARG_B(c)]));
3052
+ print_lv(mrb, irep, c, RA);
2849
3053
  break;
2850
3054
  case OP_MODULE:
2851
- printf("OP_MODULE\tR%d\t:%s\n", GETARG_A(c),
3055
+ printf("OP_MODULE\tR%d\t:%s", GETARG_A(c),
2852
3056
  mrb_sym2name(mrb, irep->syms[GETARG_B(c)]));
3057
+ print_lv(mrb, irep, c, RA);
2853
3058
  break;
2854
3059
  case OP_EXEC:
2855
- printf("OP_EXEC\tR%d\tI(%+d)\n", GETARG_A(c), GETARG_Bx(c));
3060
+ printf("OP_EXEC\tR%d\tI(%+d)", GETARG_A(c), GETARG_Bx(c)+1);
3061
+ print_lv(mrb, irep, c, RA);
2856
3062
  break;
2857
3063
  case OP_SCLASS:
2858
- printf("OP_SCLASS\tR%d\tR%d\n", GETARG_A(c), GETARG_B(c));
3064
+ printf("OP_SCLASS\tR%d\tR%d\t", GETARG_A(c), GETARG_B(c));
3065
+ print_lv(mrb, irep, c, RAB);
2859
3066
  break;
2860
3067
  case OP_TCLASS:
2861
- printf("OP_TCLASS\tR%d\n", GETARG_A(c));
3068
+ printf("OP_TCLASS\tR%d\t\t", GETARG_A(c));
3069
+ print_lv(mrb, irep, c, RA);
2862
3070
  break;
2863
3071
  case OP_ERR:
2864
- printf("OP_ERR\tL(%d)\n", GETARG_Bx(c));
3072
+ {
3073
+ mrb_value v = irep->pool[GETARG_Bx(c)];
3074
+ mrb_value s = mrb_str_dump(mrb, mrb_str_new(mrb, RSTRING_PTR(v), RSTRING_LEN(v)));
3075
+ printf("OP_ERR\t%s\n", RSTRING_PTR(s));
3076
+ }
2865
3077
  break;
2866
3078
  case OP_EPUSH:
2867
- printf("OP_EPUSH\t:I(%+d)\n", GETARG_Bx(c));
3079
+ printf("OP_EPUSH\t:I(%+d)\n", GETARG_Bx(c)+1);
2868
3080
  break;
2869
3081
  case OP_ONERR:
2870
3082
  printf("OP_ONERR\t%03d\n", i+GETARG_sBx(c));
2871
3083
  break;
2872
3084
  case OP_RESCUE:
2873
- printf("OP_RESCUE\tR%d\n", GETARG_A(c));
3085
+ printf("OP_RESCUE\tR%d\t\t", GETARG_A(c));
3086
+ print_lv(mrb, irep, c, RA);
2874
3087
  break;
2875
3088
  case OP_RAISE:
2876
- printf("OP_RAISE\tR%d\n", GETARG_A(c));
3089
+ printf("OP_RAISE\tR%d\t\t", GETARG_A(c));
3090
+ print_lv(mrb, irep, c, RA);
2877
3091
  break;
2878
3092
  case OP_POPERR:
2879
- printf("OP_POPERR\t%d\n", GETARG_A(c));
3093
+ printf("OP_POPERR\t%d\t\t", GETARG_A(c));
3094
+ print_lv(mrb, irep, c, RA);
2880
3095
  break;
2881
3096
  case OP_EPOP:
2882
3097
  printf("OP_EPOP\t%d\n", GETARG_A(c));
@@ -2905,12 +3120,12 @@ codedump_recur(mrb_state *mrb, mrb_irep *irep)
2905
3120
  }
2906
3121
 
2907
3122
  void
2908
- codedump_all(mrb_state *mrb, struct RProc *proc)
3123
+ mrb_codedump_all(mrb_state *mrb, struct RProc *proc)
2909
3124
  {
2910
3125
  codedump_recur(mrb, proc->body.irep);
2911
3126
  }
2912
3127
 
2913
- struct RProc*
3128
+ MRB_API struct RProc*
2914
3129
  mrb_generate_code(mrb_state *mrb, parser_state *p)
2915
3130
  {
2916
3131
  codegen_scope *scope = scope_new(mrb, 0, 0);
@@ -2923,15 +3138,16 @@ mrb_generate_code(mrb_state *mrb, parser_state *p)
2923
3138
  scope->parser = p;
2924
3139
  scope->filename = p->filename;
2925
3140
  scope->filename_index = p->current_filename_index;
2926
- if (setjmp(scope->jmp) == 0) {
2927
- // prepare irep
3141
+
3142
+ MRB_TRY(&scope->jmp) {
3143
+ /* prepare irep */
2928
3144
  codegen(scope, p->tree, NOVAL);
2929
3145
  proc = mrb_proc_new(mrb, scope->irep);
2930
3146
  mrb_irep_decref(mrb, scope->irep);
2931
3147
  mrb_pool_close(scope->mpool);
2932
3148
  return proc;
2933
3149
  }
2934
- else {
3150
+ MRB_CATCH(&scope->jmp) {
2935
3151
  if (scope->filename == scope->irep->filename) {
2936
3152
  scope->irep->filename = NULL;
2937
3153
  }
@@ -2939,4 +3155,5 @@ mrb_generate_code(mrb_state *mrb, parser_state *p)
2939
3155
  mrb_pool_close(scope->mpool);
2940
3156
  return NULL;
2941
3157
  }
3158
+ MRB_END_EXC(&scope->jmp);
2942
3159
  }