webruby 0.2.7 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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
  }