webruby 0.2.7 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/webruby/environment.rb +24 -8
- data/lib/webruby/rake/files.rake +6 -22
- data/lib/webruby/rake/general.rake +1 -1
- data/lib/webruby/rake/mruby.rake +1 -0
- data/lib/webruby/utility.rb +14 -0
- data/modules/mruby/AUTHORS +14 -0
- data/modules/mruby/CONTRIBUTING.md +7 -4
- data/modules/mruby/INSTALL +28 -11
- data/modules/mruby/MITL +13 -13
- data/modules/mruby/Makefile +4 -5
- data/modules/mruby/README.md +54 -49
- data/modules/mruby/Rakefile +36 -6
- data/modules/mruby/benchmark/ao-render.rb +1 -2
- data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
- data/modules/mruby/benchmark/fib39.rb +0 -0
- data/modules/mruby/bintest/mrbc.rb +12 -0
- data/modules/mruby/build_config.rb +32 -2
- data/modules/mruby/doc/api/README.md +30 -0
- data/modules/mruby/doc/api/mruby.h.md +69 -0
- data/modules/mruby/doc/compile/README.md +208 -99
- data/modules/mruby/doc/debugger/README.md +370 -0
- data/modules/mruby/doc/language/Core.md +1590 -0
- data/modules/mruby/doc/language/README.md +9 -0
- data/modules/mruby/doc/language/generator.rb +15 -0
- data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
- data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
- data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
- data/modules/mruby/doc/mrbconf/README.md +160 -0
- data/modules/mruby/doc/mrbgems/README.md +136 -66
- data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
- data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
- data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
- data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
- data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
- data/modules/mruby/include/mrbconf.h +25 -1
- data/modules/mruby/include/mruby/array.h +32 -22
- data/modules/mruby/include/mruby/boxing_nan.h +94 -0
- data/modules/mruby/include/mruby/boxing_no.h +49 -0
- data/modules/mruby/include/mruby/boxing_word.h +119 -0
- data/modules/mruby/include/mruby/class.h +15 -13
- data/modules/mruby/include/mruby/compile.h +43 -36
- data/modules/mruby/include/mruby/data.h +13 -5
- data/modules/mruby/include/mruby/debug.h +9 -9
- data/modules/mruby/include/mruby/dump.h +32 -23
- data/modules/mruby/include/mruby/error.h +36 -0
- data/modules/mruby/include/mruby/gc.h +11 -6
- data/modules/mruby/include/mruby/hash.h +12 -12
- data/modules/mruby/include/mruby/irep.h +9 -3
- data/modules/mruby/include/mruby/khash.h +58 -41
- data/modules/mruby/include/mruby/numeric.h +38 -4
- data/modules/mruby/include/mruby/object.h +55 -0
- data/modules/mruby/include/mruby/opcode.h +160 -0
- data/modules/mruby/include/mruby/proc.h +19 -5
- data/modules/mruby/include/mruby/range.h +4 -3
- data/modules/mruby/include/mruby/re.h +20 -0
- data/modules/mruby/include/mruby/string.h +86 -47
- data/modules/mruby/include/mruby/value.h +100 -374
- data/modules/mruby/include/mruby/variable.h +34 -32
- data/modules/mruby/include/mruby/version.h +40 -0
- data/modules/mruby/include/mruby.h +211 -139
- data/modules/mruby/minirake +16 -9
- data/modules/mruby/mrbgems/default.gembox +12 -0
- data/modules/mruby/mrbgems/full-core.gembox +3 -3
- data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
- data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
- data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
- data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
- data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
- data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
- data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
- data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
- data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
- data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
- data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
- data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
- data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
- data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
- data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
- data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
- data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
- data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
- data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
- data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
- data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
- data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
- data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
- data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
- data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
- data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
- data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
- data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
- data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
- data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
- data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
- data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
- data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
- data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
- data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
- data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
- data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
- data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
- data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
- data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
- data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
- data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
- data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
- data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
- data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
- data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
- data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
- data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
- data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
- data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
- data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
- data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
- data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
- data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
- data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
- data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
- data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
- data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
- data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
- data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
- data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
- data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
- data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
- data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
- data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
- data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
- data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
- data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
- data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
- data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
- data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
- data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
- data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
- data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
- data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
- data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
- data/modules/mruby/mrblib/array.rb +110 -4
- data/modules/mruby/mrblib/class.rb +1 -22
- data/modules/mruby/mrblib/compar.rb +10 -30
- data/modules/mruby/mrblib/enum.rb +64 -52
- data/modules/mruby/mrblib/error.rb +9 -4
- data/modules/mruby/mrblib/hash.rb +164 -23
- data/modules/mruby/mrblib/kernel.rb +26 -22
- data/modules/mruby/mrblib/mrblib.rake +4 -4
- data/modules/mruby/mrblib/numeric.rb +22 -9
- data/modules/mruby/mrblib/range.rb +24 -2
- data/modules/mruby/mrblib/string.rb +15 -3
- data/modules/mruby/src/array.c +279 -339
- data/modules/mruby/src/backtrace.c +68 -16
- data/modules/mruby/src/class.c +539 -379
- data/modules/mruby/src/codegen.c +424 -207
- data/modules/mruby/src/compar.c +1 -1
- data/modules/mruby/src/crc.c +7 -6
- data/modules/mruby/src/debug.c +37 -36
- data/modules/mruby/src/dump.c +463 -213
- data/modules/mruby/src/enum.c +1 -1
- data/modules/mruby/src/error.c +91 -92
- data/modules/mruby/src/error.h +3 -19
- data/modules/mruby/src/etc.c +85 -82
- data/modules/mruby/src/gc.c +134 -108
- data/modules/mruby/src/hash.c +161 -565
- data/modules/mruby/src/init.c +2 -13
- data/modules/mruby/src/kernel.c +217 -251
- data/modules/mruby/src/load.c +280 -283
- data/modules/mruby/src/mrb_throw.h +41 -0
- data/modules/mruby/src/mruby_core.rake +57 -7
- data/modules/mruby/src/node.h +104 -104
- data/modules/mruby/src/numeric.c +221 -208
- data/modules/mruby/src/object.c +41 -42
- data/modules/mruby/src/opcode.h +2 -160
- data/modules/mruby/src/parse.y +3430 -3223
- data/modules/mruby/src/pool.c +13 -9
- data/modules/mruby/src/print.c +20 -17
- data/modules/mruby/src/proc.c +77 -21
- data/modules/mruby/src/range.c +55 -45
- data/modules/mruby/src/state.c +95 -31
- data/modules/mruby/src/string.c +462 -468
- data/modules/mruby/src/symbol.c +95 -85
- data/modules/mruby/src/variable.c +104 -74
- data/modules/mruby/src/version.c +13 -0
- data/modules/mruby/src/vm.c +528 -296
- data/modules/mruby/tasks/libmruby.rake +9 -5
- data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
- data/modules/mruby/tasks/mrbgems.rake +21 -11
- data/modules/mruby/tasks/mrbgems_test.rake +46 -40
- data/modules/mruby/tasks/mruby_build.rake +54 -12
- data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
- data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
- data/modules/mruby/tasks/ruby_ext.rake +11 -2
- data/modules/mruby/tasks/toolchains/clang.rake +2 -1
- data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
- data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
- data/modules/mruby/test/assert.rb +30 -8
- data/modules/mruby/test/bintest.rb +10 -0
- data/modules/mruby/test/driver.c +74 -24
- data/modules/mruby/test/init_mrbtest.c +21 -2
- data/modules/mruby/test/mrbtest.rake +27 -5
- data/modules/mruby/test/t/argumenterror.rb +0 -5
- data/modules/mruby/test/t/array.rb +23 -7
- data/modules/mruby/test/t/bs_block.rb +32 -0
- data/modules/mruby/test/t/class.rb +29 -5
- data/modules/mruby/test/t/comparable.rb +20 -12
- data/modules/mruby/test/t/enumerable.rb +33 -7
- data/modules/mruby/test/t/exception.rb +63 -38
- data/modules/mruby/test/t/false.rb +2 -4
- data/modules/mruby/test/t/float.rb +39 -4
- data/modules/mruby/test/t/hash.rb +40 -6
- data/modules/mruby/test/t/indexerror.rb +0 -4
- data/modules/mruby/test/t/integer.rb +41 -5
- data/modules/mruby/test/t/kernel.rb +90 -3
- data/modules/mruby/test/t/localjumperror.rb +4 -4
- data/modules/mruby/test/t/methods.rb +1 -1
- data/modules/mruby/test/t/module.rb +43 -13
- data/modules/mruby/test/t/nameerror.rb +0 -4
- data/modules/mruby/test/t/nil.rb +5 -0
- data/modules/mruby/test/t/nomethoderror.rb +11 -2
- data/modules/mruby/test/t/numeric.rb +18 -4
- data/modules/mruby/test/t/proc.rb +59 -6
- data/modules/mruby/test/t/range.rb +15 -5
- data/modules/mruby/test/t/rangeerror.rb +0 -4
- data/modules/mruby/test/t/standarderror.rb +0 -4
- data/modules/mruby/test/t/string.rb +56 -12
- data/modules/mruby/test/t/superclass.rb +46 -0
- data/modules/mruby/test/t/symbol.rb +0 -4
- data/modules/mruby/test/t/syntax.rb +134 -1
- data/modules/mruby/test/t/true.rb +2 -4
- data/modules/mruby/test/t/typeerror.rb +0 -5
- data/modules/mruby/test/t/unicode.rb +35 -0
- data/modules/mruby/tools/mrbc/mrbc.c +9 -12
- data/modules/mruby/travis_config.rb +22 -2
- metadata +98 -1299
- data/modules/emscripten/AUTHORS +0 -117
- data/modules/emscripten/CONTRIBUTING.markdown +0 -5
- data/modules/emscripten/ChangeLog +0 -468
- data/modules/emscripten/LICENSE +0 -94
- data/modules/emscripten/README.markdown +0 -14
- data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
- data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
- data/modules/emscripten/em++ +0 -12
- data/modules/emscripten/em++.bat +0 -2
- data/modules/emscripten/em-config +0 -24
- data/modules/emscripten/em-config.bat +0 -2
- data/modules/emscripten/emar +0 -24
- data/modules/emscripten/emar.bat +0 -2
- data/modules/emscripten/emcc +0 -2069
- data/modules/emscripten/emcc.bat +0 -2
- data/modules/emscripten/emcc.py +0 -5
- data/modules/emscripten/emconfigure +0 -27
- data/modules/emscripten/emconfigure.bat +0 -2
- data/modules/emscripten/emlink.py +0 -33
- data/modules/emscripten/emmake +0 -29
- data/modules/emscripten/emmake.bat +0 -2
- data/modules/emscripten/emranlib +0 -9
- data/modules/emscripten/emranlib.bat +0 -2
- data/modules/emscripten/emrun +0 -1087
- data/modules/emscripten/emrun.bat +0 -2
- data/modules/emscripten/emscons +0 -20
- data/modules/emscripten/emscripten.py +0 -1347
- data/modules/emscripten/package.json +0 -7
- data/modules/emscripten/patches/README +0 -4
- data/modules/emscripten/patches/series +0 -2
- data/modules/emscripten/scons-tools/closure.py +0 -28
- data/modules/emscripten/scons-tools/emscripten.py +0 -364
- data/modules/emscripten/scons-tools/llvm.py +0 -34
- data/modules/emscripten/src/analyzer.js +0 -1781
- data/modules/emscripten/src/closure-externs.js +0 -110
- data/modules/emscripten/src/compiler.html +0 -48
- data/modules/emscripten/src/compiler.js +0 -331
- data/modules/emscripten/src/compiler_phase.html +0 -33
- data/modules/emscripten/src/corruptionCheck.js +0 -98
- data/modules/emscripten/src/determinstic.js +0 -20
- data/modules/emscripten/src/embind/embind.js +0 -1677
- data/modules/emscripten/src/embind/emval.js +0 -284
- data/modules/emscripten/src/emrun_postjs.js +0 -20
- data/modules/emscripten/src/emrun_prejs.js +0 -5
- data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
- data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
- data/modules/emscripten/src/experimental/batching.diff +0 -44
- data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
- data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
- data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
- data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
- data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
- data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
- data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
- data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
- data/modules/emscripten/src/experimental/stringCache.diff +0 -147
- data/modules/emscripten/src/fastLong.js +0 -299
- data/modules/emscripten/src/gl-matrix.js +0 -1952
- data/modules/emscripten/src/headless.js +0 -295
- data/modules/emscripten/src/headlessCanvas.js +0 -618
- data/modules/emscripten/src/hello_world.js +0 -92
- data/modules/emscripten/src/intertyper.js +0 -1228
- data/modules/emscripten/src/jsifier.js +0 -1969
- data/modules/emscripten/src/library.js +0 -9196
- data/modules/emscripten/src/library_browser.js +0 -988
- data/modules/emscripten/src/library_egl.js +0 -564
- data/modules/emscripten/src/library_fs.js +0 -1619
- data/modules/emscripten/src/library_gc.js +0 -236
- data/modules/emscripten/src/library_gl.js +0 -5194
- data/modules/emscripten/src/library_glfw.js +0 -585
- data/modules/emscripten/src/library_glut.js +0 -504
- data/modules/emscripten/src/library_idbfs.js +0 -216
- data/modules/emscripten/src/library_jansson.js +0 -320
- data/modules/emscripten/src/library_memfs.js +0 -303
- data/modules/emscripten/src/library_nodefs.js +0 -286
- data/modules/emscripten/src/library_openal.js +0 -915
- data/modules/emscripten/src/library_path.js +0 -133
- data/modules/emscripten/src/library_sdl.js +0 -2728
- data/modules/emscripten/src/library_sockfs.js +0 -578
- data/modules/emscripten/src/library_strtok_r.c +0 -97
- data/modules/emscripten/src/library_tty.js +0 -146
- data/modules/emscripten/src/library_uuid.js +0 -140
- data/modules/emscripten/src/library_xlib.js +0 -23
- data/modules/emscripten/src/long.js +0 -1609
- data/modules/emscripten/src/modules.js +0 -543
- data/modules/emscripten/src/parseTools.js +0 -2723
- data/modules/emscripten/src/postamble.js +0 -239
- data/modules/emscripten/src/postamble_sharedlib.js +0 -16
- data/modules/emscripten/src/preamble.js +0 -1233
- data/modules/emscripten/src/preamble_sharedlib.js +0 -25
- data/modules/emscripten/src/proxyClient.js +0 -82
- data/modules/emscripten/src/proxyWorker.js +0 -143
- data/modules/emscripten/src/relooper/README.markdown +0 -14
- data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
- data/modules/emscripten/src/relooper/Relooper.h +0 -257
- data/modules/emscripten/src/relooper/doit.sh +0 -70
- data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
- data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
- data/modules/emscripten/src/relooper/fuzzer.py +0 -131
- data/modules/emscripten/src/relooper/ministring.h +0 -35
- data/modules/emscripten/src/relooper/paper.pdf +0 -0
- data/modules/emscripten/src/relooper/test.cpp +0 -290
- data/modules/emscripten/src/relooper/test.txt +0 -317
- data/modules/emscripten/src/relooper/test2.c +0 -44
- data/modules/emscripten/src/relooper/test2.txt +0 -26
- data/modules/emscripten/src/relooper/test3.c +0 -42
- data/modules/emscripten/src/relooper/test3.txt +0 -56
- data/modules/emscripten/src/relooper/test4.cpp +0 -40
- data/modules/emscripten/src/relooper/test4.txt +0 -44
- data/modules/emscripten/src/relooper/test5.cpp +0 -40
- data/modules/emscripten/src/relooper/test5.txt +0 -56
- data/modules/emscripten/src/relooper/test6.cpp +0 -31
- data/modules/emscripten/src/relooper/test6.txt +0 -26
- data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
- data/modules/emscripten/src/relooper/test_dead.txt +0 -9
- data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
- data/modules/emscripten/src/relooper/test_debug.txt +0 -142
- data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
- data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
- data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
- data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
- data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
- data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
- data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
- data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
- data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
- data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
- data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
- data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
- data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
- data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
- data/modules/emscripten/src/relooper/testit.sh +0 -62
- data/modules/emscripten/src/relooper/updateit.sh +0 -17
- data/modules/emscripten/src/runtime.js +0 -604
- data/modules/emscripten/src/settings.js +0 -476
- data/modules/emscripten/src/shell.html +0 -95
- data/modules/emscripten/src/shell.js +0 -173
- data/modules/emscripten/src/shell_sharedlib.js +0 -29
- data/modules/emscripten/src/simd.js +0 -1128
- data/modules/emscripten/src/socket.io.js +0 -3870
- data/modules/emscripten/src/struct_info.json +0 -1077
- data/modules/emscripten/src/utility.js +0 -411
- data/modules/emscripten/src/wrtcp.js +0 -821
- data/modules/emscripten/system/bin/sdl-config +0 -13
- data/modules/emscripten/system/include/AL/al.h +0 -172
- data/modules/emscripten/system/include/AL/alc.h +0 -84
- data/modules/emscripten/system/include/EGL/egl.h +0 -329
- data/modules/emscripten/system/include/EGL/eglext.h +0 -398
- data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
- data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
- data/modules/emscripten/system/include/GL/gl.h +0 -2241
- data/modules/emscripten/system/include/GL/glew.h +0 -6
- data/modules/emscripten/system/include/GL/glext.h +0 -11127
- data/modules/emscripten/system/include/GL/glfw.h +0 -518
- data/modules/emscripten/system/include/GL/glu.h +0 -353
- data/modules/emscripten/system/include/GL/glut.h +0 -21
- data/modules/emscripten/system/include/GLES/gl.h +0 -770
- data/modules/emscripten/system/include/GLES/glext.h +0 -1278
- data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
- data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
- data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
- data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
- data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
- data/modules/emscripten/system/include/SDL/COPYING +0 -19
- data/modules/emscripten/system/include/SDL/SDL.h +0 -162
- data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
- data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
- data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
- data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
- data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
- data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
- data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
- data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
- data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
- data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
- data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
- data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
- data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
- data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
- data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
- data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
- data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
- data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
- data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
- data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
- data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
- data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
- data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
- data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
- data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
- data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
- data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
- data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
- data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
- data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
- data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
- data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
- data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
- data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
- data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
- data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
- data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
- data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
- data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
- data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
- data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
- data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
- data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
- data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
- data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
- data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
- data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
- data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
- data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
- data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
- data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
- data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
- data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
- data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
- data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
- data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
- data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
- data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
- data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
- data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
- data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
- data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
- data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
- data/modules/emscripten/system/include/SDL/close_code.h +0 -37
- data/modules/emscripten/system/include/X11/X.h +0 -717
- data/modules/emscripten/system/include/X11/Xatom.h +0 -79
- data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
- data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
- data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
- data/modules/emscripten/system/include/X11/Xutil.h +0 -826
- data/modules/emscripten/system/include/X11/keysym.h +0 -73
- data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
- data/modules/emscripten/system/include/compat/ctype.h +0 -34
- data/modules/emscripten/system/include/compat/malloc.h +0 -48
- data/modules/emscripten/system/include/compat/math.h +0 -14
- data/modules/emscripten/system/include/compat/netdb.h +0 -22
- data/modules/emscripten/system/include/compat/stdarg.h +0 -16
- data/modules/emscripten/system/include/compat/stdlib.h +0 -16
- data/modules/emscripten/system/include/compat/string.h +0 -17
- data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
- data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
- data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
- data/modules/emscripten/system/include/compat/time.h +0 -18
- data/modules/emscripten/system/include/compat/unistd.h +0 -16
- data/modules/emscripten/system/include/compat/wchar.h +0 -23
- data/modules/emscripten/system/include/compat/wctype.h +0 -23
- data/modules/emscripten/system/include/compat/xlocale.h +0 -19
- data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
- data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
- data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
- data/modules/emscripten/system/include/emscripten/val.h +0 -311
- data/modules/emscripten/system/include/emscripten/vector.h +0 -34
- data/modules/emscripten/system/include/emscripten/wire.h +0 -393
- data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
- data/modules/emscripten/system/include/execinfo.h +0 -44
- data/modules/emscripten/system/include/gc.h +0 -70
- data/modules/emscripten/system/include/gfx/png.h +0 -3798
- data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
- data/modules/emscripten/system/include/gfx/tiff.h +0 -654
- data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
- data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
- data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
- data/modules/emscripten/system/include/jansson.h +0 -323
- data/modules/emscripten/system/include/jansson_config.h +0 -54
- data/modules/emscripten/system/include/libc/aio.h +0 -69
- data/modules/emscripten/system/include/libc/alloca.h +0 -21
- data/modules/emscripten/system/include/libc/ar.h +0 -25
- data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
- data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
- data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
- data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
- data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
- data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
- data/modules/emscripten/system/include/libc/assert.h +0 -19
- data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
- data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
- data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
- data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
- data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
- data/modules/emscripten/system/include/libc/bits/float.h +0 -17
- data/modules/emscripten/system/include/libc/bits/io.h +0 -0
- data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
- data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
- data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
- data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
- data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
- data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
- data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
- data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
- data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
- data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
- data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
- data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
- data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
- data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
- data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
- data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
- data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
- data/modules/emscripten/system/include/libc/bits/user.h +0 -48
- data/modules/emscripten/system/include/libc/byteswap.h +0 -26
- data/modules/emscripten/system/include/libc/complex.h +0 -125
- data/modules/emscripten/system/include/libc/cpio.h +0 -29
- data/modules/emscripten/system/include/libc/crypt.h +0 -20
- data/modules/emscripten/system/include/libc/ctype.h +0 -67
- data/modules/emscripten/system/include/libc/dirent.h +0 -79
- data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
- data/modules/emscripten/system/include/libc/elf.h +0 -2555
- data/modules/emscripten/system/include/libc/endian.h +0 -82
- data/modules/emscripten/system/include/libc/err.h +0 -25
- data/modules/emscripten/system/include/libc/errno.h +0 -27
- data/modules/emscripten/system/include/libc/fcntl.h +0 -175
- data/modules/emscripten/system/include/libc/features.h +0 -32
- data/modules/emscripten/system/include/libc/fenv.h +0 -28
- data/modules/emscripten/system/include/libc/float.h +0 -34
- data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
- data/modules/emscripten/system/include/libc/ftw.h +0 -42
- data/modules/emscripten/system/include/libc/getopt.h +0 -31
- data/modules/emscripten/system/include/libc/glob.h +0 -48
- data/modules/emscripten/system/include/libc/grp.h +0 -52
- data/modules/emscripten/system/include/libc/iconv.h +0 -24
- data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
- data/modules/emscripten/system/include/libc/inttypes.h +0 -227
- data/modules/emscripten/system/include/libc/iso646.h +0 -20
- data/modules/emscripten/system/include/libc/langinfo.h +0 -88
- data/modules/emscripten/system/include/libc/lastlog.h +0 -1
- data/modules/emscripten/system/include/libc/libgen.h +0 -15
- data/modules/emscripten/system/include/libc/libintl.h +0 -25
- data/modules/emscripten/system/include/libc/limits.h +0 -146
- data/modules/emscripten/system/include/libc/link.h +0 -54
- data/modules/emscripten/system/include/libc/locale.h +0 -82
- data/modules/emscripten/system/include/libc/malloc.h +0 -0
- data/modules/emscripten/system/include/libc/math.h +0 -422
- data/modules/emscripten/system/include/libc/memory.h +0 -1
- data/modules/emscripten/system/include/libc/mntent.h +0 -44
- data/modules/emscripten/system/include/libc/monetary.h +0 -23
- data/modules/emscripten/system/include/libc/mqueue.h +0 -36
- data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
- data/modules/emscripten/system/include/libc/net/if.h +0 -135
- data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
- data/modules/emscripten/system/include/libc/net/route.h +0 -124
- data/modules/emscripten/system/include/libc/netdb.h +0 -161
- data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
- data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
- data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
- data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
- data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
- data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
- data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
- data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
- data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
- data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
- data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
- data/modules/emscripten/system/include/libc/nl_types.h +0 -22
- data/modules/emscripten/system/include/libc/paths.h +0 -32
- data/modules/emscripten/system/include/libc/poll.h +0 -46
- data/modules/emscripten/system/include/libc/pthread.h +0 -222
- data/modules/emscripten/system/include/libc/pty.h +0 -18
- data/modules/emscripten/system/include/libc/pwd.h +0 -49
- data/modules/emscripten/system/include/libc/readme.txt +0 -3
- data/modules/emscripten/system/include/libc/regex.h +0 -62
- data/modules/emscripten/system/include/libc/resolv.h +0 -144
- data/modules/emscripten/system/include/libc/sched.h +0 -132
- data/modules/emscripten/system/include/libc/search.h +0 -51
- data/modules/emscripten/system/include/libc/semaphore.h +0 -35
- data/modules/emscripten/system/include/libc/setjmp.h +0 -42
- data/modules/emscripten/system/include/libc/shadow.h +0 -44
- data/modules/emscripten/system/include/libc/signal.h +0 -255
- data/modules/emscripten/system/include/libc/spawn.h +0 -74
- data/modules/emscripten/system/include/libc/stdalign.h +0 -15
- data/modules/emscripten/system/include/libc/stdarg.h +0 -25
- data/modules/emscripten/system/include/libc/stdbool.h +0 -14
- data/modules/emscripten/system/include/libc/stddef.h +0 -18
- data/modules/emscripten/system/include/libc/stdint.h +0 -117
- data/modules/emscripten/system/include/libc/stdio.h +0 -199
- data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
- data/modules/emscripten/system/include/libc/stdlib.h +0 -171
- data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
- data/modules/emscripten/system/include/libc/string.h +0 -102
- data/modules/emscripten/system/include/libc/strings.h +0 -35
- data/modules/emscripten/system/include/libc/stropts.h +0 -139
- data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
- data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
- data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
- data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
- data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
- data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
- data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
- data/modules/emscripten/system/include/libc/sys/file.h +0 -21
- data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
- data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
- data/modules/emscripten/system/include/libc/sys/io.h +0 -17
- data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
- data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
- data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
- data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
- data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
- data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
- data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
- data/modules/emscripten/system/include/libc/sys/param.h +0 -35
- data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
- data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
- data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
- data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
- data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
- data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
- data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
- data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
- data/modules/emscripten/system/include/libc/sys/select.h +0 -42
- data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
- data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
- data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
- data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
- data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
- data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
- data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
- data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
- data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
- data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
- data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
- data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
- data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
- data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
- data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
- data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
- data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
- data/modules/emscripten/system/include/libc/sys/time.h +0 -57
- data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
- data/modules/emscripten/system/include/libc/sys/times.h +0 -26
- data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
- data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
- data/modules/emscripten/system/include/libc/sys/types.h +0 -91
- data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
- data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
- data/modules/emscripten/system/include/libc/sys/un.h +0 -32
- data/modules/emscripten/system/include/libc/sys/user.h +0 -16
- data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
- data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
- data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
- data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
- data/modules/emscripten/system/include/libc/syscall.h +0 -1
- data/modules/emscripten/system/include/libc/sysexits.h +0 -21
- data/modules/emscripten/system/include/libc/syslog.h +0 -104
- data/modules/emscripten/system/include/libc/tar.h +0 -33
- data/modules/emscripten/system/include/libc/termios.h +0 -46
- data/modules/emscripten/system/include/libc/tgmath.h +0 -270
- data/modules/emscripten/system/include/libc/time.h +0 -132
- data/modules/emscripten/system/include/libc/ucontext.h +0 -25
- data/modules/emscripten/system/include/libc/ulimit.h +0 -17
- data/modules/emscripten/system/include/libc/unistd.h +0 -519
- data/modules/emscripten/system/include/libc/utime.h +0 -24
- data/modules/emscripten/system/include/libc/utmp.h +0 -47
- data/modules/emscripten/system/include/libc/utmpx.h +0 -58
- data/modules/emscripten/system/include/libc/values.h +0 -39
- data/modules/emscripten/system/include/libc/wchar.h +0 -183
- data/modules/emscripten/system/include/libc/wctype.h +0 -77
- data/modules/emscripten/system/include/libc/wordexp.h +0 -42
- data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
- data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
- data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
- data/modules/emscripten/system/include/libcxx/__config +0 -610
- data/modules/emscripten/system/include/libcxx/__debug +0 -218
- data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
- data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
- data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
- data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
- data/modules/emscripten/system/include/libcxx/__locale +0 -1445
- data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
- data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
- data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
- data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
- data/modules/emscripten/system/include/libcxx/__tree +0 -2309
- data/modules/emscripten/system/include/libcxx/__tuple +0 -305
- data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
- data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
- data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
- data/modules/emscripten/system/include/libcxx/array +0 -342
- data/modules/emscripten/system/include/libcxx/atomic +0 -1531
- data/modules/emscripten/system/include/libcxx/bitset +0 -1081
- data/modules/emscripten/system/include/libcxx/cassert +0 -25
- data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
- data/modules/emscripten/system/include/libcxx/cctype +0 -164
- data/modules/emscripten/system/include/libcxx/cerrno +0 -393
- data/modules/emscripten/system/include/libcxx/cfenv +0 -82
- data/modules/emscripten/system/include/libcxx/cfloat +0 -78
- data/modules/emscripten/system/include/libcxx/chrono +0 -1027
- data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
- data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
- data/modules/emscripten/system/include/libcxx/climits +0 -48
- data/modules/emscripten/system/include/libcxx/clocale +0 -53
- data/modules/emscripten/system/include/libcxx/cmath +0 -1690
- data/modules/emscripten/system/include/libcxx/codecvt +0 -550
- data/modules/emscripten/system/include/libcxx/complex +0 -1567
- data/modules/emscripten/system/include/libcxx/complex.h +0 -35
- data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
- data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
- data/modules/emscripten/system/include/libcxx/csignal +0 -58
- data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
- data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
- data/modules/emscripten/system/include/libcxx/cstddef +0 -103
- data/modules/emscripten/system/include/libcxx/cstdint +0 -191
- data/modules/emscripten/system/include/libcxx/cstdio +0 -182
- data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
- data/modules/emscripten/system/include/libcxx/cstring +0 -112
- data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
- data/modules/emscripten/system/include/libcxx/ctime +0 -72
- data/modules/emscripten/system/include/libcxx/cwchar +0 -217
- data/modules/emscripten/system/include/libcxx/cwctype +0 -213
- data/modules/emscripten/system/include/libcxx/deque +0 -2873
- data/modules/emscripten/system/include/libcxx/dynarray +0 -311
- data/modules/emscripten/system/include/libcxx/exception +0 -250
- data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
- data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
- data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
- data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
- data/modules/emscripten/system/include/libcxx/fstream +0 -1431
- data/modules/emscripten/system/include/libcxx/functional +0 -2418
- data/modules/emscripten/system/include/libcxx/future +0 -2615
- data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
- data/modules/emscripten/system/include/libcxx/iomanip +0 -651
- data/modules/emscripten/system/include/libcxx/ios +0 -1023
- data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
- data/modules/emscripten/system/include/libcxx/iostream +0 -60
- data/modules/emscripten/system/include/libcxx/istream +0 -1716
- data/modules/emscripten/system/include/libcxx/iterator +0 -1568
- data/modules/emscripten/system/include/libcxx/limits +0 -813
- data/modules/emscripten/system/include/libcxx/list +0 -2355
- data/modules/emscripten/system/include/libcxx/locale +0 -4465
- data/modules/emscripten/system/include/libcxx/map +0 -2045
- data/modules/emscripten/system/include/libcxx/memory +0 -5448
- data/modules/emscripten/system/include/libcxx/mutex +0 -566
- data/modules/emscripten/system/include/libcxx/new +0 -146
- data/modules/emscripten/system/include/libcxx/numeric +0 -197
- data/modules/emscripten/system/include/libcxx/optional +0 -697
- data/modules/emscripten/system/include/libcxx/ostream +0 -1295
- data/modules/emscripten/system/include/libcxx/queue +0 -717
- data/modules/emscripten/system/include/libcxx/random +0 -6725
- data/modules/emscripten/system/include/libcxx/ratio +0 -487
- data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
- data/modules/emscripten/system/include/libcxx/regex +0 -6487
- data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
- data/modules/emscripten/system/include/libcxx/set +0 -1189
- data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
- data/modules/emscripten/system/include/libcxx/sstream +0 -972
- data/modules/emscripten/system/include/libcxx/stack +0 -292
- data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
- data/modules/emscripten/system/include/libcxx/streambuf +0 -564
- data/modules/emscripten/system/include/libcxx/string +0 -4198
- data/modules/emscripten/system/include/libcxx/strstream +0 -400
- data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
- data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
- data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
- data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
- data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
- data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
- data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
- data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
- data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
- data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
- data/modules/emscripten/system/include/libcxx/system_error +0 -642
- data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
- data/modules/emscripten/system/include/libcxx/thread +0 -458
- data/modules/emscripten/system/include/libcxx/tuple +0 -1102
- data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
- data/modules/emscripten/system/include/libcxx/typeindex +0 -103
- data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
- data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
- data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
- data/modules/emscripten/system/include/libcxx/utility +0 -768
- data/modules/emscripten/system/include/libcxx/valarray +0 -4779
- data/modules/emscripten/system/include/libcxx/vector +0 -3246
- data/modules/emscripten/system/include/unwind.h +0 -154
- data/modules/emscripten/system/include/uuid/uuid.h +0 -35
- data/modules/emscripten/system/include/zconf.h +0 -428
- data/modules/emscripten/system/include/zlib.h +0 -1613
- data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
- data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
- data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
- data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
- data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
- data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
- data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
- data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
- data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
- data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
- data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
- data/modules/emscripten/system/lib/debugging.cpp +0 -24
- data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
- data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
- data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
- data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
- data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
- data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
- data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
- data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
- data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
- data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
- data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
- data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
- data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
- data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
- data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
- data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
- data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
- data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
- data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
- data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
- data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
- data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
- data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
- data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
- data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
- data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
- data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
- data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
- data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
- data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
- data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
- data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
- data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
- data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
- data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
- data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
- data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
- data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
- data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
- data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
- data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
- data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
- data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
- data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
- data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
- data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
- data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
- data/modules/emscripten/system/lib/libc.symbols +0 -81
- data/modules/emscripten/system/lib/libcextra.symbols +0 -115
- data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
- data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
- data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
- data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
- data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
- data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
- data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
- data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
- data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
- data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
- data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
- data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
- data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
- data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
- data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
- data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
- data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
- data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
- data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
- data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
- data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
- data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
- data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
- data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
- data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
- data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
- data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
- data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
- data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
- data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
- data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
- data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
- data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
- data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
- data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
- data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
- data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
- data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
- data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
- data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
- data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
- data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
- data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
- data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
- data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
- data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
- data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
- data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
- data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
- data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
- data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
- data/modules/emscripten/system/lib/sdl.cpp +0 -13
- data/modules/emscripten/system/lib/sdl.symbols +0 -1
- data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
- data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
- data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
- data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
- data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
- data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
- data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
- data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
- data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
- data/modules/emscripten/third_party/ansidecl.h +0 -371
- data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
- data/modules/emscripten/third_party/closure-compiler/README +0 -292
- data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
- data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
- data/modules/emscripten/third_party/cp-demangle.h +0 -161
- data/modules/emscripten/third_party/demangle.h +0 -549
- data/modules/emscripten/third_party/demangler.py +0 -49
- data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
- data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
- data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
- data/modules/emscripten/third_party/jni/emjvm.h +0 -8
- data/modules/emscripten/third_party/jni/emjvm.js +0 -185
- data/modules/emscripten/third_party/jni/jni.h +0 -1154
- data/modules/emscripten/third_party/libiberty.h +0 -634
- data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
- data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
- data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
- data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
- data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
- data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
- data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
- data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
- data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
- data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
- data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
- data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
- data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
- data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
- data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
- data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
- data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
- data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
- data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
- data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
- data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
- data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
- data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
- data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
- data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
- data/modules/emscripten/third_party/lzma.js/post.js +0 -13
- data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
- data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
- data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
- data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
- data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
- data/modules/emscripten/third_party/ply/CHANGES +0 -1093
- data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
- data/modules/emscripten/third_party/ply/README +0 -271
- data/modules/emscripten/third_party/ply/TODO +0 -16
- data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
- data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
- data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
- data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
- data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
- data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
- data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
- data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
- data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
- data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
- data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
- data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
- data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
- data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
- data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
- data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
- data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
- data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
- data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
- data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
- data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
- data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
- data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
- data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
- data/modules/emscripten/third_party/ply/example/README +0 -10
- data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
- data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
- data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
- data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
- data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
- data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
- data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
- data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
- data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
- data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
- data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
- data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
- data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
- data/modules/emscripten/third_party/ply/example/yply/README +0 -41
- data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
- data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
- data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
- data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
- data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
- data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
- data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
- data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
- data/modules/emscripten/third_party/ply/setup.py +0 -31
- data/modules/emscripten/third_party/ply/test/README +0 -7
- data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
- data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
- data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
- data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
- data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
- data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
- data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
- data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
- data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
- data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
- data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
- data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
- data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
- data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
- data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
- data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
- data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
- data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
- data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
- data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
- data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
- data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
- data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
- data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
- data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
- data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
- data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
- data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
- data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
- data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
- data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
- data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
- data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
- data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
- data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
- data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
- data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
- data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
- data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
- data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
- data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
- data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
- data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
- data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
- data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
- data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
- data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
- data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
- data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
- data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
- data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
- data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
- data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
- data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
- data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
- data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
- data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
- data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
- data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
- data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
- data/modules/emscripten/third_party/readme.txt +0 -7
- data/modules/emscripten/third_party/stb_image.c +0 -4673
- data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
- data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
- data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
- data/modules/emscripten/third_party/websockify/Makefile +0 -11
- data/modules/emscripten/third_party/websockify/README.md +0 -168
- data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
- data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
- data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
- data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
- data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
- data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
- data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
- data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
- data/modules/emscripten/third_party/websockify/docs/notes +0 -17
- data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
- data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
- data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
- data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
- data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
- data/modules/emscripten/third_party/websockify/include/util.js +0 -359
- data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
- data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
- data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
- data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
- data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
- data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
- data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
- data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
- data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
- data/modules/emscripten/third_party/websockify/other/README.md +0 -51
- data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
- data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
- data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
- data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
- data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
- data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
- data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
- data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
- data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
- data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
- data/modules/emscripten/third_party/websockify/rebind +0 -18
- data/modules/emscripten/third_party/websockify/rebind.c +0 -94
- data/modules/emscripten/third_party/websockify/run +0 -5
- data/modules/emscripten/third_party/websockify/setup.py +0 -30
- data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
- data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
- data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
- data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
- data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
- data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
- data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
- data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
- data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
- data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
- data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
- data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
- data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
- data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
- data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
- data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
- data/modules/emscripten/third_party/websockify/websockify.py +0 -5
- data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
- data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
- data/modules/emscripten/tools/__init__.py +0 -0
- data/modules/emscripten/tools/asm_module.py +0 -275
- data/modules/emscripten/tools/autodebugger.py +0 -291
- data/modules/emscripten/tools/autodebugger_c.py +0 -37
- data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
- data/modules/emscripten/tools/autodebugger_js.py +0 -47
- data/modules/emscripten/tools/autodediffer.py +0 -60
- data/modules/emscripten/tools/bindings_generator.py +0 -832
- data/modules/emscripten/tools/bisect_pair.py +0 -88
- data/modules/emscripten/tools/cache.py +0 -196
- data/modules/emscripten/tools/clean_webconsole.py +0 -34
- data/modules/emscripten/tools/crunch-worker.js +0 -124
- data/modules/emscripten/tools/diff_autodebugger.py +0 -15
- data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
- data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
- data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
- data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
- data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
- data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
- data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
- data/modules/emscripten/tools/emconfiguren.py +0 -19
- data/modules/emscripten/tools/emmaken.py +0 -230
- data/modules/emscripten/tools/emmakenxx.py +0 -18
- data/modules/emscripten/tools/exec_llvm.py +0 -50
- data/modules/emscripten/tools/file2json.py +0 -49
- data/modules/emscripten/tools/file_packager.py +0 -719
- data/modules/emscripten/tools/find_bigfuncs.py +0 -23
- data/modules/emscripten/tools/find_bigis.py +0 -18
- data/modules/emscripten/tools/find_bigvars.py +0 -24
- data/modules/emscripten/tools/fix_closure.py +0 -88
- data/modules/emscripten/tools/gen_struct_info.py +0 -509
- data/modules/emscripten/tools/ie7_fix.py +0 -14
- data/modules/emscripten/tools/js-optimizer.js +0 -4023
- data/modules/emscripten/tools/js_optimizer.py +0 -357
- data/modules/emscripten/tools/jsrun.py +0 -37
- data/modules/emscripten/tools/ll-strip.py +0 -56
- data/modules/emscripten/tools/make_file.py +0 -19
- data/modules/emscripten/tools/make_minigzip.py +0 -13
- data/modules/emscripten/tools/merge_asm.py +0 -26
- data/modules/emscripten/tools/namespacer.py +0 -95
- data/modules/emscripten/tools/nativize_llvm.py +0 -34
- data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
- data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
- data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
- data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
- data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
- data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
- data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
- data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
- data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
- data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
- data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
- data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
- data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
- data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
- data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
- data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
- data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
- data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
- data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
- data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
- data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
- data/modules/emscripten/tools/reproduceriter.js +0 -216
- data/modules/emscripten/tools/reproduceriter.py +0 -160
- data/modules/emscripten/tools/response_file.py +0 -34
- data/modules/emscripten/tools/scan_js.py +0 -20
- data/modules/emscripten/tools/scan_ll.py +0 -18
- data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
- data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
- data/modules/emscripten/tools/settings_template_readonly.py +0 -49
- data/modules/emscripten/tools/shared.py +0 -1705
- data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
- data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
- data/modules/emscripten/tools/split.py +0 -105
- data/modules/emscripten/tools/split_asm.py +0 -30
- data/modules/emscripten/tools/tempfiles.py +0 -41
- data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
- data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
- data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
- data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
- data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
- data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
- data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
- data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
- data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
- data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
- data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
- data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
- data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
- data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
- data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
- data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
- data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
- data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
- data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
- data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
- data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
- data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
- data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
- data/modules/emscripten/tools/test-js-optimizer.js +0 -401
- data/modules/emscripten/tools/validate_asmjs.py +0 -82
- data/modules/mruby/mrblib/print.rb +0 -18
- data/modules/mruby/src/re.h +0 -12
data/modules/mruby/src/vm.c
CHANGED
@@ -1,24 +1,26 @@
|
|
1
|
-
|
1
|
+
/*
|
2
2
|
** vm.c - virtual machine for mruby
|
3
3
|
**
|
4
4
|
** See Copyright Notice in mruby.h
|
5
5
|
*/
|
6
6
|
|
7
|
-
#include <setjmp.h>
|
8
7
|
#include <stddef.h>
|
9
8
|
#include <stdarg.h>
|
9
|
+
#include <math.h>
|
10
10
|
#include "mruby.h"
|
11
11
|
#include "mruby/array.h"
|
12
12
|
#include "mruby/class.h"
|
13
13
|
#include "mruby/hash.h"
|
14
14
|
#include "mruby/irep.h"
|
15
|
+
#include "mruby/numeric.h"
|
15
16
|
#include "mruby/proc.h"
|
16
17
|
#include "mruby/range.h"
|
17
18
|
#include "mruby/string.h"
|
18
19
|
#include "mruby/variable.h"
|
19
|
-
#include "error.h"
|
20
|
-
#include "opcode.h"
|
20
|
+
#include "mruby/error.h"
|
21
|
+
#include "mruby/opcode.h"
|
21
22
|
#include "value_array.h"
|
23
|
+
#include "mrb_throw.h"
|
22
24
|
|
23
25
|
#ifndef ENABLE_STDIO
|
24
26
|
#if defined(__cplusplus)
|
@@ -30,20 +32,6 @@ void abort(void);
|
|
30
32
|
#endif
|
31
33
|
#endif
|
32
34
|
|
33
|
-
#define SET_TRUE_VALUE(r) MRB_SET_VALUE(r, MRB_TT_TRUE, value.i, 1)
|
34
|
-
#define SET_FALSE_VALUE(r) MRB_SET_VALUE(r, MRB_TT_FALSE, value.i, 1)
|
35
|
-
#define SET_NIL_VALUE(r) MRB_SET_VALUE(r, MRB_TT_FALSE, value.i, 0)
|
36
|
-
#define SET_INT_VALUE(r,n) MRB_SET_VALUE(r, MRB_TT_FIXNUM, value.i, (n))
|
37
|
-
#define SET_SYM_VALUE(r,v) MRB_SET_VALUE(r, MRB_TT_SYMBOL, value.sym, (v))
|
38
|
-
#define SET_OBJ_VALUE(r,v) MRB_SET_VALUE(r, (((struct RObject*)(v))->tt), value.p, (v))
|
39
|
-
#ifdef MRB_NAN_BOXING
|
40
|
-
#define SET_FLT_VALUE(mrb,r,v) r.f = (v)
|
41
|
-
#elif defined(MRB_WORD_BOXING)
|
42
|
-
#define SET_FLT_VALUE(mrb,r,v) r = mrb_float_value(mrb, (v))
|
43
|
-
#else
|
44
|
-
#define SET_FLT_VALUE(mrb,r,v) MRB_SET_VALUE(r, MRB_TT_FLOAT, value.f, (v))
|
45
|
-
#endif
|
46
|
-
|
47
35
|
#define STACK_INIT_SIZE 128
|
48
36
|
#define CALLINFO_INIT_SIZE 32
|
49
37
|
|
@@ -64,9 +52,6 @@ The value below allows about 60000 recursive calls in the simplest case. */
|
|
64
52
|
# define DEBUG(x)
|
65
53
|
#endif
|
66
54
|
|
67
|
-
#define TO_STR(x) TO_STR_(x)
|
68
|
-
#define TO_STR_(x) #x
|
69
|
-
|
70
55
|
#define ARENA_RESTORE(mrb,ai) (mrb)->arena_idx = (ai)
|
71
56
|
|
72
57
|
static inline void
|
@@ -109,6 +94,7 @@ stack_init(mrb_state *mrb)
|
|
109
94
|
c->ciend = c->cibase + CALLINFO_INIT_SIZE;
|
110
95
|
c->ci = c->cibase;
|
111
96
|
c->ci->target_class = mrb->object_class;
|
97
|
+
c->ci->stackent = c->stack;
|
112
98
|
}
|
113
99
|
|
114
100
|
static inline void
|
@@ -116,42 +102,62 @@ envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase)
|
|
116
102
|
{
|
117
103
|
mrb_callinfo *ci = mrb->c->cibase;
|
118
104
|
|
105
|
+
if (newbase == oldbase) return;
|
119
106
|
while (ci <= mrb->c->ci) {
|
120
107
|
struct REnv *e = ci->env;
|
121
|
-
if (e && e
|
108
|
+
if (e && MRB_ENV_STACK_SHARED_P(e)) {
|
122
109
|
ptrdiff_t off = e->stack - oldbase;
|
123
110
|
|
124
111
|
e->stack = newbase + off;
|
125
112
|
}
|
113
|
+
ci->stackent = newbase + (ci->stackent - oldbase);
|
126
114
|
ci++;
|
127
115
|
}
|
128
116
|
}
|
129
117
|
|
118
|
+
static inline void
|
119
|
+
init_new_stack_space(mrb_state *mrb, int room, int keep)
|
120
|
+
{
|
121
|
+
if (room > keep) {
|
122
|
+
/* do not leave uninitialized malloc region */
|
123
|
+
stack_clear(&(mrb->c->stack[keep]), room - keep);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
130
127
|
/** def rec ; $deep =+ 1 ; if $deep > 1000 ; return 0 ; end ; rec ; end */
|
131
128
|
|
132
129
|
static void
|
133
|
-
stack_extend_alloc(mrb_state *mrb, int room)
|
130
|
+
stack_extend_alloc(mrb_state *mrb, int room, int keep)
|
134
131
|
{
|
135
132
|
mrb_value *oldbase = mrb->c->stbase;
|
136
133
|
int size = mrb->c->stend - mrb->c->stbase;
|
137
134
|
int off = mrb->c->stack - mrb->c->stbase;
|
138
135
|
|
136
|
+
#ifdef MRB_STACK_EXTEND_DOUBLING
|
137
|
+
if (room <= size)
|
138
|
+
size *= 2;
|
139
|
+
else
|
140
|
+
size += room;
|
141
|
+
#else
|
139
142
|
/* Use linear stack growth.
|
140
143
|
It is slightly slower than doubling the stack space,
|
141
144
|
but it saves memory on small devices. */
|
142
|
-
if (room <=
|
145
|
+
if (room <= MRB_STACK_GROWTH)
|
143
146
|
size += MRB_STACK_GROWTH;
|
144
147
|
else
|
145
148
|
size += room;
|
149
|
+
#endif
|
146
150
|
|
147
151
|
mrb->c->stbase = (mrb_value *)mrb_realloc(mrb, mrb->c->stbase, sizeof(mrb_value) * size);
|
148
152
|
mrb->c->stack = mrb->c->stbase + off;
|
149
153
|
mrb->c->stend = mrb->c->stbase + size;
|
150
154
|
envadjust(mrb, oldbase, mrb->c->stbase);
|
155
|
+
|
151
156
|
/* Raise an exception if the new stack size will be too large,
|
152
157
|
to prevent infinite recursion. However, do this only after resizing the stack, so mrb_raise has stack space to work with. */
|
153
158
|
if (size > MRB_STACK_MAX) {
|
154
|
-
|
159
|
+
init_new_stack_space(mrb, room, keep);
|
160
|
+
mrb_raise(mrb, E_SYSSTACK_ERROR, "stack level too deep. (limit=" MRB_STRINGIZE(MRB_STACK_MAX) ")");
|
155
161
|
}
|
156
162
|
}
|
157
163
|
|
@@ -159,12 +165,9 @@ static inline void
|
|
159
165
|
stack_extend(mrb_state *mrb, int room, int keep)
|
160
166
|
{
|
161
167
|
if (mrb->c->stack + room >= mrb->c->stend) {
|
162
|
-
stack_extend_alloc(mrb, room);
|
163
|
-
}
|
164
|
-
if (room > keep) {
|
165
|
-
/* do not leave uninitialized malloc region */
|
166
|
-
stack_clear(&(mrb->c->stack[keep]), room - keep);
|
168
|
+
stack_extend_alloc(mrb, room, keep);
|
167
169
|
}
|
170
|
+
init_new_stack_space(mrb, room, keep);
|
168
171
|
}
|
169
172
|
|
170
173
|
static inline struct REnv*
|
@@ -184,7 +187,7 @@ is_strict(mrb_state *mrb, struct REnv *e)
|
|
184
187
|
{
|
185
188
|
int cioff = e->cioff;
|
186
189
|
|
187
|
-
if (
|
190
|
+
if (MRB_ENV_STACK_SHARED_P(e) && mrb->c->cibase[cioff].proc &&
|
188
191
|
MRB_PROC_STRICT_P(mrb->c->cibase[cioff].proc)) {
|
189
192
|
return TRUE;
|
190
193
|
}
|
@@ -224,12 +227,12 @@ cipush(mrb_state *mrb)
|
|
224
227
|
c->ciend = c->cibase + size * 2;
|
225
228
|
}
|
226
229
|
ci = ++c->ci;
|
227
|
-
ci->nregs = 2; /* protect method_missing arg and block */
|
228
230
|
ci->eidx = eidx;
|
229
231
|
ci->ridx = ridx;
|
230
232
|
ci->env = 0;
|
231
233
|
ci->pc = 0;
|
232
234
|
ci->err = 0;
|
235
|
+
ci->proc = 0;
|
233
236
|
|
234
237
|
return ci;
|
235
238
|
}
|
@@ -241,12 +244,15 @@ cipop(mrb_state *mrb)
|
|
241
244
|
|
242
245
|
if (c->ci->env) {
|
243
246
|
struct REnv *e = c->ci->env;
|
244
|
-
size_t len = (size_t)e
|
247
|
+
size_t len = (size_t)MRB_ENV_STACK_LEN(e);
|
245
248
|
mrb_value *p = (mrb_value *)mrb_malloc(mrb, sizeof(mrb_value)*len);
|
246
249
|
|
247
|
-
e
|
248
|
-
|
250
|
+
MRB_ENV_UNSHARE_STACK(e);
|
251
|
+
if (len > 0) {
|
252
|
+
stack_copy(p, e->stack, len);
|
253
|
+
}
|
249
254
|
e->stack = p;
|
255
|
+
mrb_write_barrier(mrb, (struct RBasic *)e);
|
250
256
|
}
|
251
257
|
|
252
258
|
c->ci--;
|
@@ -265,7 +271,7 @@ ecall(mrb_state *mrb, int i)
|
|
265
271
|
if (mrb->c->ci->eidx > i)
|
266
272
|
mrb->c->ci->eidx = i;
|
267
273
|
ci = cipush(mrb);
|
268
|
-
ci->
|
274
|
+
ci->stackent = mrb->c->stack;
|
269
275
|
ci->mid = ci[-1].mid;
|
270
276
|
ci->acc = CI_ACC_SKIP;
|
271
277
|
ci->argc = 0;
|
@@ -283,64 +289,50 @@ ecall(mrb_state *mrb, int i)
|
|
283
289
|
#define MRB_FUNCALL_ARGC_MAX 16
|
284
290
|
#endif
|
285
291
|
|
286
|
-
mrb_value
|
287
|
-
mrb_funcall(mrb_state *mrb, mrb_value self, const char *name,
|
292
|
+
MRB_API mrb_value
|
293
|
+
mrb_funcall(mrb_state *mrb, mrb_value self, const char *name, mrb_int argc, ...)
|
288
294
|
{
|
295
|
+
mrb_value argv[MRB_FUNCALL_ARGC_MAX];
|
296
|
+
va_list ap;
|
297
|
+
mrb_int i;
|
289
298
|
mrb_sym mid = mrb_intern_cstr(mrb, name);
|
290
299
|
|
291
|
-
if (argc
|
292
|
-
|
300
|
+
if (argc > MRB_FUNCALL_ARGC_MAX) {
|
301
|
+
mrb_raise(mrb, E_ARGUMENT_ERROR, "Too long arguments. (limit=" MRB_STRINGIZE(MRB_FUNCALL_ARGC_MAX) ")");
|
293
302
|
}
|
294
|
-
else if (argc == 1) {
|
295
|
-
mrb_value v;
|
296
|
-
va_list ap;
|
297
|
-
|
298
|
-
va_start(ap, argc);
|
299
|
-
v = va_arg(ap, mrb_value);
|
300
|
-
va_end(ap);
|
301
|
-
return mrb_funcall_argv(mrb, self, mid, 1, &v);
|
302
|
-
}
|
303
|
-
else {
|
304
|
-
mrb_value argv[MRB_FUNCALL_ARGC_MAX];
|
305
|
-
va_list ap;
|
306
|
-
int i;
|
307
|
-
|
308
|
-
if (argc > MRB_FUNCALL_ARGC_MAX) {
|
309
|
-
mrb_raise(mrb, E_ARGUMENT_ERROR, "Too long arguments. (limit=" TO_STR(MRB_FUNCALL_ARGC_MAX) ")");
|
310
|
-
}
|
311
303
|
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
}
|
316
|
-
va_end(ap);
|
317
|
-
return mrb_funcall_argv(mrb, self, mid, argc, argv);
|
304
|
+
va_start(ap, argc);
|
305
|
+
for (i = 0; i < argc; i++) {
|
306
|
+
argv[i] = va_arg(ap, mrb_value);
|
318
307
|
}
|
308
|
+
va_end(ap);
|
309
|
+
return mrb_funcall_argv(mrb, self, mid, argc, argv);
|
319
310
|
}
|
320
311
|
|
321
|
-
mrb_value
|
322
|
-
mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid,
|
312
|
+
MRB_API mrb_value
|
313
|
+
mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc, const mrb_value *argv, mrb_value blk)
|
323
314
|
{
|
324
315
|
mrb_value val;
|
325
316
|
|
326
317
|
if (!mrb->jmp) {
|
327
|
-
|
318
|
+
struct mrb_jmpbuf c_jmp;
|
328
319
|
mrb_callinfo *old_ci = mrb->c->ci;
|
329
320
|
|
330
|
-
|
321
|
+
MRB_TRY(&c_jmp) {
|
322
|
+
mrb->jmp = &c_jmp;
|
323
|
+
/* recursive call */
|
324
|
+
val = mrb_funcall_with_block(mrb, self, mid, argc, argv, blk);
|
325
|
+
mrb->jmp = 0;
|
326
|
+
}
|
327
|
+
MRB_CATCH(&c_jmp) { /* error */
|
331
328
|
while (old_ci != mrb->c->ci) {
|
332
|
-
mrb->c->stack = mrb->c->
|
329
|
+
mrb->c->stack = mrb->c->ci->stackent;
|
333
330
|
cipop(mrb);
|
334
331
|
}
|
335
332
|
mrb->jmp = 0;
|
336
333
|
val = mrb_obj_value(mrb->exc);
|
337
334
|
}
|
338
|
-
|
339
|
-
mrb->jmp = &c_jmp;
|
340
|
-
/* recursive call */
|
341
|
-
val = mrb_funcall_with_block(mrb, self, mid, argc, argv, blk);
|
342
|
-
mrb->jmp = 0;
|
343
|
-
}
|
335
|
+
MRB_END_EXC(&c_jmp);
|
344
336
|
}
|
345
337
|
else {
|
346
338
|
struct RProc *p;
|
@@ -367,22 +359,24 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, int argc, mr
|
|
367
359
|
ci = cipush(mrb);
|
368
360
|
ci->mid = mid;
|
369
361
|
ci->proc = p;
|
370
|
-
ci->
|
362
|
+
ci->stackent = mrb->c->stack;
|
371
363
|
ci->argc = argc;
|
372
364
|
ci->target_class = c;
|
365
|
+
mrb->c->stack = mrb->c->stack + n;
|
373
366
|
if (MRB_PROC_CFUNC_P(p)) {
|
374
367
|
ci->nregs = argc + 2;
|
368
|
+
stack_extend(mrb, ci->nregs, 0);
|
375
369
|
}
|
376
370
|
else {
|
377
371
|
ci->nregs = p->body.irep->nregs + n;
|
372
|
+
stack_extend(mrb, ci->nregs, argc+2);
|
378
373
|
}
|
379
|
-
mrb->c->stack = mrb->c->stack + n;
|
380
|
-
|
381
|
-
stack_extend(mrb, ci->nregs, 0);
|
382
374
|
mrb->c->stack[0] = self;
|
383
375
|
if (undef) {
|
384
376
|
mrb->c->stack[1] = mrb_symbol_value(undef);
|
385
|
-
|
377
|
+
if (argc > 1) {
|
378
|
+
stack_copy(mrb->c->stack+2, argv, argc-1);
|
379
|
+
}
|
386
380
|
}
|
387
381
|
else if (argc > 0) {
|
388
382
|
stack_copy(mrb->c->stack+1, argv, argc);
|
@@ -394,7 +388,7 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, int argc, mr
|
|
394
388
|
|
395
389
|
ci->acc = CI_ACC_DIRECT;
|
396
390
|
val = p->body.func(mrb, self);
|
397
|
-
mrb->c->stack = mrb->c->
|
391
|
+
mrb->c->stack = mrb->c->ci->stackent;
|
398
392
|
cipop(mrb);
|
399
393
|
mrb_gc_arena_restore(mrb, ai);
|
400
394
|
}
|
@@ -407,14 +401,179 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, int argc, mr
|
|
407
401
|
return val;
|
408
402
|
}
|
409
403
|
|
410
|
-
mrb_value
|
411
|
-
mrb_funcall_argv(mrb_state *mrb, mrb_value self, mrb_sym mid,
|
404
|
+
MRB_API mrb_value
|
405
|
+
mrb_funcall_argv(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc, const mrb_value *argv)
|
412
406
|
{
|
413
407
|
return mrb_funcall_with_block(mrb, self, mid, argc, argv, mrb_nil_value());
|
414
408
|
}
|
415
409
|
|
410
|
+
/* 15.3.1.3.4 */
|
411
|
+
/* 15.3.1.3.44 */
|
412
|
+
/*
|
413
|
+
* call-seq:
|
414
|
+
* obj.send(symbol [, args...]) -> obj
|
415
|
+
* obj.__send__(symbol [, args...]) -> obj
|
416
|
+
*
|
417
|
+
* Invokes the method identified by _symbol_, passing it any
|
418
|
+
* arguments specified. You can use <code>__send__</code> if the name
|
419
|
+
* +send+ clashes with an existing method in _obj_.
|
420
|
+
*
|
421
|
+
* class Klass
|
422
|
+
* def hello(*args)
|
423
|
+
* "Hello " + args.join(' ')
|
424
|
+
* end
|
425
|
+
* end
|
426
|
+
* k = Klass.new
|
427
|
+
* k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
|
428
|
+
*/
|
429
|
+
MRB_API mrb_value
|
430
|
+
mrb_f_send(mrb_state *mrb, mrb_value self)
|
431
|
+
{
|
432
|
+
mrb_sym name;
|
433
|
+
mrb_value block, *argv, *regs;
|
434
|
+
mrb_int argc, i, len;
|
435
|
+
struct RProc *p;
|
436
|
+
struct RClass *c;
|
437
|
+
mrb_callinfo *ci;
|
438
|
+
|
439
|
+
mrb_get_args(mrb, "n*&", &name, &argv, &argc, &block);
|
440
|
+
|
441
|
+
c = mrb_class(mrb, self);
|
442
|
+
p = mrb_method_search_vm(mrb, &c, name);
|
443
|
+
|
444
|
+
if (!p) { /* call method_mising */
|
445
|
+
return mrb_funcall_with_block(mrb, self, name, argc, argv, block);
|
446
|
+
}
|
447
|
+
|
448
|
+
ci = mrb->c->ci;
|
449
|
+
ci->mid = name;
|
450
|
+
ci->target_class = c;
|
451
|
+
ci->proc = p;
|
452
|
+
regs = mrb->c->stack+1;
|
453
|
+
/* remove first symbol from arguments */
|
454
|
+
if (ci->argc >= 0) {
|
455
|
+
for (i=0,len=ci->argc; i<len; i++) {
|
456
|
+
regs[i] = regs[i+1];
|
457
|
+
}
|
458
|
+
ci->argc--;
|
459
|
+
}
|
460
|
+
else { /* variable length arguments */
|
461
|
+
mrb_ary_shift(mrb, regs[0]);
|
462
|
+
}
|
463
|
+
|
464
|
+
if (MRB_PROC_CFUNC_P(p)) {
|
465
|
+
return p->body.func(mrb, self);
|
466
|
+
}
|
467
|
+
|
468
|
+
ci->nregs = p->body.irep->nregs;
|
469
|
+
ci = cipush(mrb);
|
470
|
+
ci->nregs = 0;
|
471
|
+
ci->target_class = 0;
|
472
|
+
ci->pc = p->body.irep->iseq;
|
473
|
+
ci->stackent = mrb->c->stack;
|
474
|
+
ci->acc = 0;
|
475
|
+
|
476
|
+
return self;
|
477
|
+
}
|
478
|
+
|
479
|
+
static mrb_value
|
480
|
+
eval_under(mrb_state *mrb, mrb_value self, mrb_value blk, struct RClass *c)
|
481
|
+
{
|
482
|
+
struct RProc *p;
|
483
|
+
mrb_callinfo *ci;
|
484
|
+
|
485
|
+
if (mrb_nil_p(blk)) {
|
486
|
+
mrb_raise(mrb, E_ARGUMENT_ERROR, "no block given");
|
487
|
+
}
|
488
|
+
ci = mrb->c->ci;
|
489
|
+
if (ci->acc == CI_ACC_DIRECT) {
|
490
|
+
return mrb_yield_with_class(mrb, blk, 0, 0, self, c);
|
491
|
+
}
|
492
|
+
ci->target_class = c;
|
493
|
+
p = mrb_proc_ptr(blk);
|
494
|
+
ci->proc = p;
|
495
|
+
if (MRB_PROC_CFUNC_P(p)) {
|
496
|
+
return p->body.func(mrb, self);
|
497
|
+
}
|
498
|
+
ci->nregs = p->body.irep->nregs;
|
499
|
+
ci = cipush(mrb);
|
500
|
+
ci->nregs = 0;
|
501
|
+
ci->target_class = 0;
|
502
|
+
ci->pc = p->body.irep->iseq;
|
503
|
+
ci->stackent = mrb->c->stack;
|
504
|
+
ci->acc = 0;
|
505
|
+
|
506
|
+
return self;
|
507
|
+
}
|
508
|
+
|
509
|
+
/* 15.2.2.4.35 */
|
510
|
+
/*
|
511
|
+
* call-seq:
|
512
|
+
* mod.class_eval {| | block } -> obj
|
513
|
+
* mod.module_eval {| | block } -> obj
|
514
|
+
*
|
515
|
+
* Evaluates block in the context of _mod_. This can
|
516
|
+
* be used to add methods to a class. <code>module_eval</code> returns
|
517
|
+
* the result of evaluating its argument.
|
518
|
+
*/
|
519
|
+
mrb_value
|
520
|
+
mrb_mod_module_eval(mrb_state *mrb, mrb_value mod)
|
521
|
+
{
|
522
|
+
mrb_value a, b;
|
523
|
+
|
524
|
+
if (mrb_get_args(mrb, "|S&", &a, &b) == 1) {
|
525
|
+
mrb_raise(mrb, E_NOTIMP_ERROR, "module_eval/class_eval with string not implemented");
|
526
|
+
}
|
527
|
+
return eval_under(mrb, mod, b, mrb_class_ptr(mod));
|
528
|
+
}
|
529
|
+
|
530
|
+
/* 15.3.1.3.18 */
|
531
|
+
/*
|
532
|
+
* call-seq:
|
533
|
+
* obj.instance_eval {| | block } -> obj
|
534
|
+
*
|
535
|
+
* Evaluates the given block,within the context of the receiver (_obj_).
|
536
|
+
* In order to set the context, the variable +self+ is set to _obj_ while
|
537
|
+
* the code is executing, giving the code access to _obj_'s
|
538
|
+
* instance variables. In the version of <code>instance_eval</code>
|
539
|
+
* that takes a +String+, the optional second and third
|
540
|
+
* parameters supply a filename and starting line number that are used
|
541
|
+
* when reporting compilation errors.
|
542
|
+
*
|
543
|
+
* class KlassWithSecret
|
544
|
+
* def initialize
|
545
|
+
* @secret = 99
|
546
|
+
* end
|
547
|
+
* end
|
548
|
+
* k = KlassWithSecret.new
|
549
|
+
* k.instance_eval { @secret } #=> 99
|
550
|
+
*/
|
416
551
|
mrb_value
|
417
|
-
|
552
|
+
mrb_obj_instance_eval(mrb_state *mrb, mrb_value self)
|
553
|
+
{
|
554
|
+
mrb_value a, b;
|
555
|
+
mrb_value cv;
|
556
|
+
struct RClass *c;
|
557
|
+
|
558
|
+
if (mrb_get_args(mrb, "|S&", &a, &b) == 1) {
|
559
|
+
mrb_raise(mrb, E_NOTIMP_ERROR, "instance_eval with string not implemented");
|
560
|
+
}
|
561
|
+
switch (mrb_type(self)) {
|
562
|
+
case MRB_TT_SYMBOL:
|
563
|
+
case MRB_TT_FIXNUM:
|
564
|
+
case MRB_TT_FLOAT:
|
565
|
+
c = 0;
|
566
|
+
break;
|
567
|
+
default:
|
568
|
+
cv = mrb_singleton_class(mrb, self);
|
569
|
+
c = mrb_class_ptr(cv);
|
570
|
+
break;
|
571
|
+
}
|
572
|
+
return eval_under(mrb, self, b, c);
|
573
|
+
}
|
574
|
+
|
575
|
+
MRB_API mrb_value
|
576
|
+
mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv, mrb_value self, struct RClass *c)
|
418
577
|
{
|
419
578
|
struct RProc *p;
|
420
579
|
mrb_sym mid = mrb->c->ci->mid;
|
@@ -429,19 +588,20 @@ mrb_yield_internal(mrb_state *mrb, mrb_value b, int argc, mrb_value *argv, mrb_v
|
|
429
588
|
ci = cipush(mrb);
|
430
589
|
ci->mid = mid;
|
431
590
|
ci->proc = p;
|
432
|
-
ci->
|
591
|
+
ci->stackent = mrb->c->stack;
|
433
592
|
ci->argc = argc;
|
434
593
|
ci->target_class = c;
|
594
|
+
ci->acc = CI_ACC_SKIP;
|
595
|
+
mrb->c->stack = mrb->c->stack + n;
|
435
596
|
if (MRB_PROC_CFUNC_P(p)) {
|
436
597
|
ci->nregs = argc + 2;
|
598
|
+
stack_extend(mrb, ci->nregs, 0);
|
437
599
|
}
|
438
600
|
else {
|
439
|
-
ci->nregs = p->body.irep->nregs
|
601
|
+
ci->nregs = p->body.irep->nregs;
|
602
|
+
stack_extend(mrb, ci->nregs, argc+2);
|
440
603
|
}
|
441
|
-
ci->acc = CI_ACC_SKIP;
|
442
|
-
mrb->c->stack = mrb->c->stack + n;
|
443
604
|
|
444
|
-
stack_extend(mrb, ci->nregs, 0);
|
445
605
|
mrb->c->stack[0] = self;
|
446
606
|
if (argc > 0) {
|
447
607
|
stack_copy(mrb->c->stack+1, argv, argc);
|
@@ -450,7 +610,7 @@ mrb_yield_internal(mrb_state *mrb, mrb_value b, int argc, mrb_value *argv, mrb_v
|
|
450
610
|
|
451
611
|
if (MRB_PROC_CFUNC_P(p)) {
|
452
612
|
val = p->body.func(mrb, self);
|
453
|
-
mrb->c->stack = mrb->c->
|
613
|
+
mrb->c->stack = mrb->c->ci->stackent;
|
454
614
|
cipop(mrb);
|
455
615
|
}
|
456
616
|
else {
|
@@ -459,20 +619,20 @@ mrb_yield_internal(mrb_state *mrb, mrb_value b, int argc, mrb_value *argv, mrb_v
|
|
459
619
|
return val;
|
460
620
|
}
|
461
621
|
|
462
|
-
mrb_value
|
463
|
-
mrb_yield_argv(mrb_state *mrb, mrb_value b,
|
622
|
+
MRB_API mrb_value
|
623
|
+
mrb_yield_argv(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv)
|
464
624
|
{
|
465
625
|
struct RProc *p = mrb_proc_ptr(b);
|
466
626
|
|
467
|
-
return
|
627
|
+
return mrb_yield_with_class(mrb, b, argc, argv, p->env->stack[0], p->target_class);
|
468
628
|
}
|
469
629
|
|
470
|
-
mrb_value
|
630
|
+
MRB_API mrb_value
|
471
631
|
mrb_yield(mrb_state *mrb, mrb_value b, mrb_value arg)
|
472
632
|
{
|
473
633
|
struct RProc *p = mrb_proc_ptr(b);
|
474
634
|
|
475
|
-
return
|
635
|
+
return mrb_yield_with_class(mrb, b, 1, &arg, p->env->stack[0], p->target_class);
|
476
636
|
}
|
477
637
|
|
478
638
|
typedef enum {
|
@@ -491,14 +651,14 @@ localjump_error(mrb_state *mrb, localjump_error_kind kind)
|
|
491
651
|
mrb_value exc;
|
492
652
|
|
493
653
|
msg = mrb_str_buf_new(mrb, sizeof(lead) + 7);
|
494
|
-
|
495
|
-
|
654
|
+
mrb_str_cat(mrb, msg, lead, sizeof(lead) - 1);
|
655
|
+
mrb_str_cat(mrb, msg, kind_str[kind], kind_str_len[kind]);
|
496
656
|
exc = mrb_exc_new_str(mrb, E_LOCALJUMP_ERROR, msg);
|
497
657
|
mrb->exc = mrb_obj_ptr(exc);
|
498
658
|
}
|
499
659
|
|
500
660
|
static void
|
501
|
-
argnum_error(mrb_state *mrb,
|
661
|
+
argnum_error(mrb_state *mrb, mrb_int num)
|
502
662
|
{
|
503
663
|
mrb_value exc;
|
504
664
|
mrb_value str;
|
@@ -524,7 +684,7 @@ argnum_error(mrb_state *mrb, int num)
|
|
524
684
|
#define CODE_FETCH_HOOK(mrb, irep, pc, regs)
|
525
685
|
#endif
|
526
686
|
|
527
|
-
#
|
687
|
+
#if defined __GNUC__ || defined __clang__ || defined __INTEL_COMPILER
|
528
688
|
#define DIRECT_THREADED
|
529
689
|
#endif
|
530
690
|
|
@@ -552,7 +712,7 @@ void mrb_gv_val_set(mrb_state *mrb, mrb_sym sym, mrb_value val);
|
|
552
712
|
|
553
713
|
#define CALL_MAXARGS 127
|
554
714
|
|
555
|
-
mrb_value
|
715
|
+
MRB_API mrb_value
|
556
716
|
mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stack_keep)
|
557
717
|
{
|
558
718
|
/* mrb_assert(mrb_proc_cfunc_p(proc)) */
|
@@ -563,8 +723,8 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
563
723
|
mrb_value *regs = NULL;
|
564
724
|
mrb_code i;
|
565
725
|
int ai = mrb_gc_arena_save(mrb);
|
566
|
-
|
567
|
-
|
726
|
+
struct mrb_jmpbuf *prev_jmp = mrb->jmp;
|
727
|
+
struct mrb_jmpbuf c_jmp;
|
568
728
|
|
569
729
|
#ifdef DIRECT_THREADED
|
570
730
|
static void *optable[] = {
|
@@ -591,19 +751,22 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
591
751
|
};
|
592
752
|
#endif
|
593
753
|
|
754
|
+
mrb_bool exc_catched = FALSE;
|
755
|
+
RETRY_TRY_BLOCK:
|
594
756
|
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
757
|
+
MRB_TRY(&c_jmp) {
|
758
|
+
|
759
|
+
if (exc_catched) {
|
760
|
+
exc_catched = FALSE;
|
599
761
|
goto L_RAISE;
|
600
762
|
}
|
763
|
+
mrb->jmp = &c_jmp;
|
601
764
|
if (!mrb->c->stack) {
|
602
765
|
stack_init(mrb);
|
603
766
|
}
|
604
767
|
stack_extend(mrb, irep->nregs, stack_keep);
|
605
768
|
mrb->c->ci->proc = proc;
|
606
|
-
mrb->c->ci->nregs = irep->nregs
|
769
|
+
mrb->c->ci->nregs = irep->nregs;
|
607
770
|
regs = mrb->c->stack;
|
608
771
|
regs[0] = self;
|
609
772
|
|
@@ -621,18 +784,18 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
621
784
|
|
622
785
|
CASE(OP_LOADL) {
|
623
786
|
/* A Bx R(A) := Pool(Bx) */
|
624
|
-
regs[GETARG_A(i)] =
|
787
|
+
regs[GETARG_A(i)] = pool[GETARG_Bx(i)];
|
625
788
|
NEXT;
|
626
789
|
}
|
627
790
|
|
628
791
|
CASE(OP_LOADI) {
|
629
|
-
/* A
|
792
|
+
/* A sBx R(A) := sBx */
|
630
793
|
SET_INT_VALUE(regs[GETARG_A(i)], GETARG_sBx(i));
|
631
794
|
NEXT;
|
632
795
|
}
|
633
796
|
|
634
797
|
CASE(OP_LOADSYM) {
|
635
|
-
/* A
|
798
|
+
/* A Bx R(A) := Syms(Bx) */
|
636
799
|
SET_SYM_VALUE(regs[GETARG_A(i)], syms[GETARG_Bx(i)]);
|
637
800
|
NEXT;
|
638
801
|
}
|
@@ -656,13 +819,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
656
819
|
}
|
657
820
|
|
658
821
|
CASE(OP_GETGLOBAL) {
|
659
|
-
/* A
|
822
|
+
/* A Bx R(A) := getglobal(Syms(Bx)) */
|
660
823
|
regs[GETARG_A(i)] = mrb_gv_get(mrb, syms[GETARG_Bx(i)]);
|
661
824
|
NEXT;
|
662
825
|
}
|
663
826
|
|
664
827
|
CASE(OP_SETGLOBAL) {
|
665
|
-
/* setglobal(
|
828
|
+
/* setglobal(Syms(Bx), R(A)) */
|
666
829
|
mrb_gv_set(mrb, syms[GETARG_Bx(i)], regs[GETARG_A(i)]);
|
667
830
|
NEXT;
|
668
831
|
}
|
@@ -686,13 +849,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
686
849
|
}
|
687
850
|
|
688
851
|
CASE(OP_SETIV) {
|
689
|
-
/* ivset(
|
852
|
+
/* ivset(Syms(Bx),R(A)) */
|
690
853
|
mrb_vm_iv_set(mrb, syms[GETARG_Bx(i)], regs[GETARG_A(i)]);
|
691
854
|
NEXT;
|
692
855
|
}
|
693
856
|
|
694
857
|
CASE(OP_GETCV) {
|
695
|
-
/* A
|
858
|
+
/* A Bx R(A) := cvget(Syms(Bx)) */
|
696
859
|
ERR_PC_SET(mrb, pc);
|
697
860
|
regs[GETARG_A(i)] = mrb_vm_cv_get(mrb, syms[GETARG_Bx(i)]);
|
698
861
|
ERR_PC_CLR(mrb);
|
@@ -700,13 +863,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
700
863
|
}
|
701
864
|
|
702
865
|
CASE(OP_SETCV) {
|
703
|
-
/*
|
866
|
+
/* cvset(Syms(Bx),R(A)) */
|
704
867
|
mrb_vm_cv_set(mrb, syms[GETARG_Bx(i)], regs[GETARG_A(i)]);
|
705
868
|
NEXT;
|
706
869
|
}
|
707
870
|
|
708
871
|
CASE(OP_GETCONST) {
|
709
|
-
/* A
|
872
|
+
/* A Bx R(A) := constget(Syms(Bx)) */
|
710
873
|
mrb_value val;
|
711
874
|
|
712
875
|
ERR_PC_SET(mrb, pc);
|
@@ -718,13 +881,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
718
881
|
}
|
719
882
|
|
720
883
|
CASE(OP_SETCONST) {
|
721
|
-
/* A
|
884
|
+
/* A Bx constset(Syms(Bx),R(A)) */
|
722
885
|
mrb_vm_const_set(mrb, syms[GETARG_Bx(i)], regs[GETARG_A(i)]);
|
723
886
|
NEXT;
|
724
887
|
}
|
725
888
|
|
726
889
|
CASE(OP_GETMCNST) {
|
727
|
-
/* A
|
890
|
+
/* A Bx R(A) := R(A)::Syms(Bx) */
|
728
891
|
mrb_value val;
|
729
892
|
int a = GETARG_A(i);
|
730
893
|
|
@@ -737,7 +900,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
737
900
|
}
|
738
901
|
|
739
902
|
CASE(OP_SETMCNST) {
|
740
|
-
/* A
|
903
|
+
/* A Bx R(A+1)::Syms(Bx) := R(A) */
|
741
904
|
int a = GETARG_A(i);
|
742
905
|
|
743
906
|
mrb_const_set(mrb, regs[a+1], syms[GETARG_Bx(i)], regs[a]);
|
@@ -763,7 +926,6 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
763
926
|
|
764
927
|
CASE(OP_SETUPVAR) {
|
765
928
|
/* A B C uvset(B,C,R(A)) */
|
766
|
-
/* A B C R(A) := uvget(B,C) */
|
767
929
|
int up = GETARG_C(i);
|
768
930
|
|
769
931
|
struct REnv *e = uvenv(mrb, up);
|
@@ -793,7 +955,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
793
955
|
}
|
794
956
|
|
795
957
|
CASE(OP_JMPNOT) {
|
796
|
-
/* A sBx if R(A) pc+=sBx */
|
958
|
+
/* A sBx if !R(A) pc+=sBx */
|
797
959
|
if (!mrb_test(regs[GETARG_A(i)])) {
|
798
960
|
pc += GETARG_sBx(i);
|
799
961
|
JUMP;
|
@@ -820,6 +982,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
820
982
|
}
|
821
983
|
|
822
984
|
CASE(OP_POPERR) {
|
985
|
+
/* A A.times{rescue_pop()} */
|
823
986
|
int a = GETARG_A(i);
|
824
987
|
|
825
988
|
while (a--) {
|
@@ -864,7 +1027,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
864
1027
|
}
|
865
1028
|
|
866
1029
|
CASE(OP_LOADNIL) {
|
867
|
-
/* A
|
1030
|
+
/* A R(A) := nil */
|
868
1031
|
int a = GETARG_A(i);
|
869
1032
|
|
870
1033
|
SET_NIL_VALUE(regs[a]);
|
@@ -872,12 +1035,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
872
1035
|
}
|
873
1036
|
|
874
1037
|
CASE(OP_SENDB) {
|
1038
|
+
/* A B C R(A) := call(R(A),Syms(B),R(A+1),...,R(A+C),&R(A+C+1))*/
|
875
1039
|
/* fall through */
|
876
1040
|
};
|
877
1041
|
|
878
1042
|
L_SEND:
|
879
1043
|
CASE(OP_SEND) {
|
880
|
-
/* A B C R(A) := call(R(A),
|
1044
|
+
/* A B C R(A) := call(R(A),Syms(B),R(A+1),...,R(A+C)) */
|
881
1045
|
int a = GETARG_A(i);
|
882
1046
|
int n = GETARG_C(i);
|
883
1047
|
struct RProc *m;
|
@@ -915,19 +1079,8 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
915
1079
|
ci = cipush(mrb);
|
916
1080
|
ci->mid = mid;
|
917
1081
|
ci->proc = m;
|
918
|
-
ci->
|
919
|
-
|
920
|
-
ci->argc = -1;
|
921
|
-
}
|
922
|
-
else {
|
923
|
-
ci->argc = n;
|
924
|
-
}
|
925
|
-
if (c->tt == MRB_TT_ICLASS) {
|
926
|
-
ci->target_class = c->c;
|
927
|
-
}
|
928
|
-
else {
|
929
|
-
ci->target_class = c;
|
930
|
-
}
|
1082
|
+
ci->stackent = mrb->c->stack;
|
1083
|
+
ci->target_class = c;
|
931
1084
|
|
932
1085
|
ci->pc = pc + 1;
|
933
1086
|
ci->acc = a;
|
@@ -937,9 +1090,11 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
937
1090
|
|
938
1091
|
if (MRB_PROC_CFUNC_P(m)) {
|
939
1092
|
if (n == CALL_MAXARGS) {
|
1093
|
+
ci->argc = -1;
|
940
1094
|
ci->nregs = 3;
|
941
1095
|
}
|
942
1096
|
else {
|
1097
|
+
ci->argc = n;
|
943
1098
|
ci->nregs = n + 2;
|
944
1099
|
}
|
945
1100
|
result = m->body.func(mrb, recv);
|
@@ -950,12 +1105,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
950
1105
|
ci = mrb->c->ci;
|
951
1106
|
if (!ci->target_class) { /* return from context modifying method (resume/yield) */
|
952
1107
|
if (!MRB_PROC_CFUNC_P(ci[-1].proc)) {
|
953
|
-
|
1108
|
+
proc = ci[-1].proc;
|
1109
|
+
irep = proc->body.irep;
|
954
1110
|
pool = irep->pool;
|
955
1111
|
syms = irep->syms;
|
956
1112
|
}
|
957
1113
|
}
|
958
|
-
regs = mrb->c->stack =
|
1114
|
+
regs = mrb->c->stack = ci->stackent;
|
959
1115
|
pc = ci->pc;
|
960
1116
|
cipop(mrb);
|
961
1117
|
JUMP;
|
@@ -967,11 +1123,13 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
967
1123
|
pool = irep->pool;
|
968
1124
|
syms = irep->syms;
|
969
1125
|
ci->nregs = irep->nregs;
|
970
|
-
if (
|
1126
|
+
if (n == CALL_MAXARGS) {
|
1127
|
+
ci->argc = -1;
|
971
1128
|
stack_extend(mrb, (irep->nregs < 3) ? 3 : irep->nregs, 3);
|
972
1129
|
}
|
973
1130
|
else {
|
974
|
-
|
1131
|
+
ci->argc = n;
|
1132
|
+
stack_extend(mrb, irep->nregs, n+2);
|
975
1133
|
}
|
976
1134
|
regs = mrb->c->stack;
|
977
1135
|
pc = irep->iseq;
|
@@ -980,7 +1138,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
980
1138
|
}
|
981
1139
|
|
982
1140
|
CASE(OP_FSEND) {
|
983
|
-
/* A B C R(A) := fcall(R(A),
|
1141
|
+
/* A B C R(A) := fcall(R(A),Syms(B),R(A+1),... ,R(A+C-1)) */
|
984
1142
|
NEXT;
|
985
1143
|
}
|
986
1144
|
|
@@ -1010,7 +1168,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1010
1168
|
if (mrb->exc) goto L_RAISE;
|
1011
1169
|
/* pop stackpos */
|
1012
1170
|
ci = mrb->c->ci;
|
1013
|
-
regs = mrb->c->stack =
|
1171
|
+
regs = mrb->c->stack = ci->stackent;
|
1014
1172
|
regs[ci->acc] = recv;
|
1015
1173
|
pc = ci->pc;
|
1016
1174
|
cipop(mrb);
|
@@ -1034,17 +1192,17 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1034
1192
|
stack_extend(mrb, (irep->nregs < 3) ? 3 : irep->nregs, 3);
|
1035
1193
|
}
|
1036
1194
|
else {
|
1037
|
-
stack_extend(mrb, irep->nregs,
|
1195
|
+
stack_extend(mrb, irep->nregs, ci->argc+2);
|
1038
1196
|
}
|
1039
1197
|
regs = mrb->c->stack;
|
1040
1198
|
regs[0] = m->env->stack[0];
|
1041
|
-
pc =
|
1199
|
+
pc = irep->iseq;
|
1042
1200
|
JUMP;
|
1043
1201
|
}
|
1044
1202
|
}
|
1045
1203
|
|
1046
1204
|
CASE(OP_SUPER) {
|
1047
|
-
/* A
|
1205
|
+
/* A C R(A) := super(R(A+1),... ,R(A+C+1)) */
|
1048
1206
|
mrb_value recv;
|
1049
1207
|
mrb_callinfo *ci = mrb->c->ci;
|
1050
1208
|
struct RProc *m;
|
@@ -1072,7 +1230,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1072
1230
|
ci = cipush(mrb);
|
1073
1231
|
ci->mid = mid;
|
1074
1232
|
ci->proc = m;
|
1075
|
-
ci->
|
1233
|
+
ci->stackent = mrb->c->stack;
|
1076
1234
|
if (n == CALL_MAXARGS) {
|
1077
1235
|
ci->argc = -1;
|
1078
1236
|
}
|
@@ -1087,11 +1245,17 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1087
1245
|
mrb->c->stack[0] = recv;
|
1088
1246
|
|
1089
1247
|
if (MRB_PROC_CFUNC_P(m)) {
|
1248
|
+
if (n == CALL_MAXARGS) {
|
1249
|
+
ci->nregs = 3;
|
1250
|
+
}
|
1251
|
+
else {
|
1252
|
+
ci->nregs = n + 2;
|
1253
|
+
}
|
1090
1254
|
mrb->c->stack[0] = m->body.func(mrb, recv);
|
1091
1255
|
mrb_gc_arena_restore(mrb, ai);
|
1092
1256
|
if (mrb->exc) goto L_RAISE;
|
1093
1257
|
/* pop stackpos */
|
1094
|
-
regs = mrb->c->stack = mrb->c->
|
1258
|
+
regs = mrb->c->stack = mrb->c->ci->stackent;
|
1095
1259
|
cipop(mrb);
|
1096
1260
|
NEXT;
|
1097
1261
|
}
|
@@ -1109,7 +1273,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1109
1273
|
stack_extend(mrb, (irep->nregs < 3) ? 3 : irep->nregs, 3);
|
1110
1274
|
}
|
1111
1275
|
else {
|
1112
|
-
stack_extend(mrb, irep->nregs,
|
1276
|
+
stack_extend(mrb, irep->nregs, ci->argc+2);
|
1113
1277
|
}
|
1114
1278
|
regs = mrb->c->stack;
|
1115
1279
|
pc = irep->iseq;
|
@@ -1132,8 +1296,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1132
1296
|
struct REnv *e = uvenv(mrb, lv-1);
|
1133
1297
|
if (!e) {
|
1134
1298
|
mrb_value exc;
|
1135
|
-
|
1136
|
-
exc = mrb_exc_new(mrb, E_NOMETHOD_ERROR, m, sizeof(m) - 1);
|
1299
|
+
exc = mrb_exc_new_str_lit(mrb, E_NOMETHOD_ERROR, "super called outside of method");
|
1137
1300
|
mrb->exc = mrb_obj_ptr(exc);
|
1138
1301
|
goto L_RAISE;
|
1139
1302
|
}
|
@@ -1155,7 +1318,9 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1155
1318
|
}
|
1156
1319
|
regs[a] = mrb_ary_new_capa(mrb, m1+len+m2);
|
1157
1320
|
rest = mrb_ary_ptr(regs[a]);
|
1158
|
-
|
1321
|
+
if (m1 > 0) {
|
1322
|
+
stack_copy(rest->ptr, stack, m1);
|
1323
|
+
}
|
1159
1324
|
if (len > 0) {
|
1160
1325
|
stack_copy(rest->ptr+m1, pp, len);
|
1161
1326
|
}
|
@@ -1170,17 +1335,17 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1170
1335
|
}
|
1171
1336
|
|
1172
1337
|
CASE(OP_ENTER) {
|
1173
|
-
/* Ax arg setup according to flags (
|
1338
|
+
/* Ax arg setup according to flags (23=5:5:1:5:5:1:1) */
|
1174
1339
|
/* number of optional arguments times OP_JMP should follow */
|
1175
1340
|
mrb_aspec ax = GETARG_Ax(i);
|
1176
|
-
int m1 = (ax
|
1177
|
-
int o = (ax
|
1178
|
-
int r = (ax
|
1179
|
-
int m2 = (ax
|
1341
|
+
int m1 = MRB_ASPEC_REQ(ax);
|
1342
|
+
int o = MRB_ASPEC_OPT(ax);
|
1343
|
+
int r = MRB_ASPEC_REST(ax);
|
1344
|
+
int m2 = MRB_ASPEC_POST(ax);
|
1180
1345
|
/* unused
|
1181
|
-
int k = (ax
|
1182
|
-
int kd = (ax
|
1183
|
-
int b = (ax
|
1346
|
+
int k = MRB_ASPEC_KEY(ax);
|
1347
|
+
int kd = MRB_ASPEC_KDICT(ax);
|
1348
|
+
int b = MRB_ASPEC_BLOCK(ax);
|
1184
1349
|
*/
|
1185
1350
|
int argc = mrb->c->ci->argc;
|
1186
1351
|
mrb_value *argv = regs+1;
|
@@ -1188,6 +1353,9 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1188
1353
|
int len = m1 + o + r + m2;
|
1189
1354
|
mrb_value *blk = &argv[argc < 0 ? 1 : argc];
|
1190
1355
|
|
1356
|
+
if (!mrb_nil_p(*blk) && mrb_type(*blk) != MRB_TT_PROC) {
|
1357
|
+
*blk = mrb_convert_type(mrb, *blk, MRB_TT_PROC, "Proc", "to_proc");
|
1358
|
+
}
|
1191
1359
|
if (argc < 0) {
|
1192
1360
|
struct RArray *ary = mrb_ary_ptr(regs[1]);
|
1193
1361
|
argv = ary->ptr;
|
@@ -1203,40 +1371,47 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1203
1371
|
}
|
1204
1372
|
}
|
1205
1373
|
else if (len > 1 && argc == 1 && mrb_array_p(argv[0])) {
|
1374
|
+
mrb_gc_protect(mrb, argv[0]);
|
1206
1375
|
argc = mrb_ary_ptr(argv[0])->len;
|
1207
1376
|
argv = mrb_ary_ptr(argv[0])->ptr;
|
1208
1377
|
}
|
1209
1378
|
mrb->c->ci->argc = len;
|
1210
1379
|
if (argc < len) {
|
1380
|
+
int mlen = m2;
|
1381
|
+
if (argc < m1+m2) {
|
1382
|
+
if (m1 < argc)
|
1383
|
+
mlen = argc - m1;
|
1384
|
+
else
|
1385
|
+
mlen = 0;
|
1386
|
+
}
|
1211
1387
|
regs[len+1] = *blk; /* move block */
|
1388
|
+
SET_NIL_VALUE(regs[argc+1]);
|
1212
1389
|
if (argv0 != argv) {
|
1213
|
-
value_move(®s[1], argv, argc-
|
1390
|
+
value_move(®s[1], argv, argc-mlen); /* m1 + o */
|
1214
1391
|
}
|
1215
|
-
if (
|
1216
|
-
int mlen = m2;
|
1217
|
-
if (argc-m2 <= m1) {
|
1218
|
-
mlen = argc - m1;
|
1219
|
-
}
|
1392
|
+
if (mlen) {
|
1220
1393
|
value_move(®s[len-m2+1], &argv[argc-mlen], mlen);
|
1221
1394
|
}
|
1222
1395
|
if (r) {
|
1223
1396
|
regs[m1+o+1] = mrb_ary_new_capa(mrb, 0);
|
1224
1397
|
}
|
1225
|
-
if (o == 0) pc++;
|
1398
|
+
if (o == 0 || argc < m1+m2) pc++;
|
1226
1399
|
else
|
1227
1400
|
pc += argc - m1 - m2 + 1;
|
1228
1401
|
}
|
1229
1402
|
else {
|
1403
|
+
int rnum = 0;
|
1230
1404
|
if (argv0 != argv) {
|
1231
1405
|
regs[len+1] = *blk; /* move block */
|
1232
1406
|
value_move(®s[1], argv, m1+o);
|
1233
1407
|
}
|
1234
1408
|
if (r) {
|
1235
|
-
|
1409
|
+
rnum = argc-m1-o-m2;
|
1410
|
+
regs[m1+o+1] = mrb_ary_new_from_values(mrb, rnum, argv+m1+o);
|
1236
1411
|
}
|
1237
1412
|
if (m2) {
|
1238
1413
|
if (argc-m2 > m1) {
|
1239
|
-
value_move(®s[m1+o+r+1], &argv[
|
1414
|
+
value_move(®s[m1+o+r+1], &argv[m1+o+rnum], m2);
|
1240
1415
|
}
|
1241
1416
|
}
|
1242
1417
|
if (argv0 == argv) {
|
@@ -1248,7 +1423,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1248
1423
|
}
|
1249
1424
|
|
1250
1425
|
CASE(OP_KARG) {
|
1251
|
-
/* A B C R(A) := kdict[
|
1426
|
+
/* A B C R(A) := kdict[Syms(B)]; if C kdict.rm(Syms(B)) */
|
1252
1427
|
/* if C == 2; raise unless kdict.empty? */
|
1253
1428
|
/* OP_JMP should follow to skip init code */
|
1254
1429
|
NEXT;
|
@@ -1263,7 +1438,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1263
1438
|
i = MKOP_AB(OP_RETURN, GETARG_A(i), OP_R_NORMAL);
|
1264
1439
|
/* fall through */
|
1265
1440
|
CASE(OP_RETURN) {
|
1266
|
-
/* A
|
1441
|
+
/* A B return R(A) (B=normal,in-block return/break) */
|
1267
1442
|
if (mrb->exc) {
|
1268
1443
|
mrb_callinfo *ci;
|
1269
1444
|
int eidx;
|
@@ -1283,10 +1458,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1283
1458
|
while (ci[0].ridx == ci[-1].ridx) {
|
1284
1459
|
cipop(mrb);
|
1285
1460
|
ci = mrb->c->ci;
|
1286
|
-
mrb->c->stack =
|
1461
|
+
mrb->c->stack = ci[1].stackent;
|
1287
1462
|
if (ci[1].acc == CI_ACC_SKIP && prev_jmp) {
|
1288
1463
|
mrb->jmp = prev_jmp;
|
1289
|
-
|
1464
|
+
MRB_THROW(prev_jmp);
|
1290
1465
|
}
|
1291
1466
|
if (ci > mrb->c->cibase) {
|
1292
1467
|
while (eidx > ci[-1].eidx) {
|
@@ -1295,17 +1470,28 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1295
1470
|
}
|
1296
1471
|
else if (ci == mrb->c->cibase) {
|
1297
1472
|
if (ci->ridx == 0) {
|
1298
|
-
|
1299
|
-
|
1473
|
+
if (mrb->c == mrb->root_c) {
|
1474
|
+
regs = mrb->c->stack = mrb->c->stbase;
|
1475
|
+
goto L_STOP;
|
1476
|
+
}
|
1477
|
+
else {
|
1478
|
+
struct mrb_context *c = mrb->c;
|
1479
|
+
|
1480
|
+
mrb->c = c->prev;
|
1481
|
+
c->prev = NULL;
|
1482
|
+
goto L_RAISE;
|
1483
|
+
}
|
1300
1484
|
}
|
1301
1485
|
break;
|
1302
1486
|
}
|
1303
1487
|
}
|
1304
1488
|
L_RESCUE:
|
1305
|
-
|
1489
|
+
if (ci->ridx == 0) goto L_STOP;
|
1490
|
+
proc = ci->proc;
|
1491
|
+
irep = proc->body.irep;
|
1306
1492
|
pool = irep->pool;
|
1307
1493
|
syms = irep->syms;
|
1308
|
-
regs = mrb->c->stack =
|
1494
|
+
regs = mrb->c->stack = ci[1].stackent;
|
1309
1495
|
pc = mrb->c->rescue[--ci->ridx];
|
1310
1496
|
}
|
1311
1497
|
else {
|
@@ -1315,11 +1501,11 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1315
1501
|
|
1316
1502
|
switch (GETARG_B(i)) {
|
1317
1503
|
case OP_R_RETURN:
|
1318
|
-
|
1504
|
+
/* Fall through to OP_R_NORMAL otherwise */
|
1319
1505
|
if (proc->env && !MRB_PROC_STRICT_P(proc)) {
|
1320
1506
|
struct REnv *e = top_env(mrb, proc);
|
1321
1507
|
|
1322
|
-
if (e
|
1508
|
+
if (!MRB_ENV_STACK_SHARED_P(e)) {
|
1323
1509
|
localjump_error(mrb, LOCALJUMP_ERROR_RETURN);
|
1324
1510
|
goto L_RAISE;
|
1325
1511
|
}
|
@@ -1338,7 +1524,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1338
1524
|
goto L_RAISE;
|
1339
1525
|
}
|
1340
1526
|
if (mrb->c->prev->ci == mrb->c->prev->cibase) {
|
1341
|
-
mrb_value exc =
|
1527
|
+
mrb_value exc = mrb_exc_new_str_lit(mrb, E_FIBER_ERROR, "double resume");
|
1342
1528
|
mrb->exc = mrb_obj_ptr(exc);
|
1343
1529
|
goto L_RAISE;
|
1344
1530
|
}
|
@@ -1350,11 +1536,26 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1350
1536
|
ci = mrb->c->ci;
|
1351
1537
|
break;
|
1352
1538
|
case OP_R_BREAK:
|
1353
|
-
if (proc->env
|
1539
|
+
if (!proc->env || !MRB_ENV_STACK_SHARED_P(proc->env)) {
|
1354
1540
|
localjump_error(mrb, LOCALJUMP_ERROR_BREAK);
|
1355
1541
|
goto L_RAISE;
|
1356
1542
|
}
|
1357
|
-
|
1543
|
+
/* break from fiber block */
|
1544
|
+
if (mrb->c->ci == mrb->c->cibase && mrb->c->ci->pc) {
|
1545
|
+
struct mrb_context *c = mrb->c;
|
1546
|
+
|
1547
|
+
mrb->c = c->prev;
|
1548
|
+
c->prev = NULL;
|
1549
|
+
}
|
1550
|
+
ci = mrb->c->ci;
|
1551
|
+
mrb->c->ci = mrb->c->cibase + proc->env->cioff + 1;
|
1552
|
+
while (ci > mrb->c->ci) {
|
1553
|
+
if (ci[-1].acc == CI_ACC_SKIP) {
|
1554
|
+
mrb->c->ci = ci;
|
1555
|
+
break;
|
1556
|
+
}
|
1557
|
+
ci--;
|
1558
|
+
}
|
1358
1559
|
break;
|
1359
1560
|
default:
|
1360
1561
|
/* cannot happen */
|
@@ -1366,7 +1567,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1366
1567
|
cipop(mrb);
|
1367
1568
|
acc = ci->acc;
|
1368
1569
|
pc = ci->pc;
|
1369
|
-
regs = mrb->c->stack =
|
1570
|
+
regs = mrb->c->stack = ci->stackent;
|
1370
1571
|
if (acc == CI_ACC_SKIP) {
|
1371
1572
|
mrb->jmp = prev_jmp;
|
1372
1573
|
return v;
|
@@ -1383,7 +1584,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1383
1584
|
}
|
1384
1585
|
|
1385
1586
|
CASE(OP_TAILCALL) {
|
1386
|
-
/* A B C return call(R(A),
|
1587
|
+
/* A B C return call(R(A),Syms(B),R(A+1),... ,R(A+C+1)) */
|
1387
1588
|
int a = GETARG_A(i);
|
1388
1589
|
int n = GETARG_C(i);
|
1389
1590
|
struct RProc *m;
|
@@ -1437,7 +1638,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1437
1638
|
stack_extend(mrb, (irep->nregs < 3) ? 3 : irep->nregs, 3);
|
1438
1639
|
}
|
1439
1640
|
else {
|
1440
|
-
stack_extend(mrb, irep->nregs,
|
1641
|
+
stack_extend(mrb, irep->nregs, ci->argc+2);
|
1441
1642
|
}
|
1442
1643
|
regs = mrb->c->stack;
|
1443
1644
|
pc = irep->iseq;
|
@@ -1468,18 +1669,9 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1468
1669
|
NEXT;
|
1469
1670
|
}
|
1470
1671
|
|
1471
|
-
#define attr_i value.i
|
1472
|
-
#ifdef MRB_NAN_BOXING
|
1473
|
-
#define attr_f f
|
1474
|
-
#elif defined(MRB_WORD_BOXING)
|
1475
|
-
#define attr_f value.fp->f
|
1476
|
-
#else
|
1477
|
-
#define attr_f value.f
|
1478
|
-
#endif
|
1479
|
-
|
1480
1672
|
#define TYPES2(a,b) ((((uint16_t)(a))<<8)|(((uint16_t)(b))&0xff))
|
1481
1673
|
#define OP_MATH_BODY(op,v1,v2) do {\
|
1482
|
-
regs[a]
|
1674
|
+
v1(regs[a]) = v1(regs[a]) op v2(regs[a+1]);\
|
1483
1675
|
} while(0)
|
1484
1676
|
|
1485
1677
|
CASE(OP_ADD) {
|
@@ -1495,13 +1687,8 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1495
1687
|
|
1496
1688
|
x = mrb_fixnum(regs_a[0]);
|
1497
1689
|
y = mrb_fixnum(regs_a[1]);
|
1498
|
-
|
1499
|
-
|
1500
|
-
z = (z << MRB_FIXNUM_SHIFT) / (1 << MRB_FIXNUM_SHIFT);
|
1501
|
-
#endif
|
1502
|
-
if ((x < 0) != (z < 0) && ((x < 0) ^ (y < 0)) == 0) {
|
1503
|
-
/* integer overflow */
|
1504
|
-
SET_FLT_VALUE(mrb, regs_a[0], (mrb_float)x + (mrb_float)y);
|
1690
|
+
if (mrb_int_add_overflow(x, y, &z)) {
|
1691
|
+
SET_FLOAT_VALUE(mrb, regs_a[0], (mrb_float)x + (mrb_float)y);
|
1505
1692
|
break;
|
1506
1693
|
}
|
1507
1694
|
SET_INT_VALUE(regs[a], z);
|
@@ -1511,7 +1698,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1511
1698
|
{
|
1512
1699
|
mrb_int x = mrb_fixnum(regs[a]);
|
1513
1700
|
mrb_float y = mrb_float(regs[a+1]);
|
1514
|
-
|
1701
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x + y);
|
1515
1702
|
}
|
1516
1703
|
break;
|
1517
1704
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FIXNUM):
|
@@ -1519,10 +1706,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1519
1706
|
{
|
1520
1707
|
mrb_float x = mrb_float(regs[a]);
|
1521
1708
|
mrb_int y = mrb_fixnum(regs[a+1]);
|
1522
|
-
|
1709
|
+
SET_FLOAT_VALUE(mrb, regs[a], x + y);
|
1523
1710
|
}
|
1524
1711
|
#else
|
1525
|
-
OP_MATH_BODY(+,
|
1712
|
+
OP_MATH_BODY(+,mrb_float,mrb_fixnum);
|
1526
1713
|
#endif
|
1527
1714
|
break;
|
1528
1715
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):
|
@@ -1530,10 +1717,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1530
1717
|
{
|
1531
1718
|
mrb_float x = mrb_float(regs[a]);
|
1532
1719
|
mrb_float y = mrb_float(regs[a+1]);
|
1533
|
-
|
1720
|
+
SET_FLOAT_VALUE(mrb, regs[a], x + y);
|
1534
1721
|
}
|
1535
1722
|
#else
|
1536
|
-
OP_MATH_BODY(+,
|
1723
|
+
OP_MATH_BODY(+,mrb_float,mrb_float);
|
1537
1724
|
#endif
|
1538
1725
|
break;
|
1539
1726
|
case TYPES2(MRB_TT_STRING,MRB_TT_STRING):
|
@@ -1558,13 +1745,8 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1558
1745
|
|
1559
1746
|
x = mrb_fixnum(regs[a]);
|
1560
1747
|
y = mrb_fixnum(regs[a+1]);
|
1561
|
-
|
1562
|
-
|
1563
|
-
z = (z << MRB_FIXNUM_SHIFT) / (1 << MRB_FIXNUM_SHIFT);
|
1564
|
-
#endif
|
1565
|
-
if (((x < 0) ^ (y < 0)) != 0 && (x < 0) != (z < 0)) {
|
1566
|
-
/* integer overflow */
|
1567
|
-
SET_FLT_VALUE(mrb, regs[a], (mrb_float)x - (mrb_float)y);
|
1748
|
+
if (mrb_int_sub_overflow(x, y, &z)) {
|
1749
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x - (mrb_float)y);
|
1568
1750
|
break;
|
1569
1751
|
}
|
1570
1752
|
SET_INT_VALUE(regs[a], z);
|
@@ -1574,7 +1756,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1574
1756
|
{
|
1575
1757
|
mrb_int x = mrb_fixnum(regs[a]);
|
1576
1758
|
mrb_float y = mrb_float(regs[a+1]);
|
1577
|
-
|
1759
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x - y);
|
1578
1760
|
}
|
1579
1761
|
break;
|
1580
1762
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FIXNUM):
|
@@ -1582,10 +1764,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1582
1764
|
{
|
1583
1765
|
mrb_float x = mrb_float(regs[a]);
|
1584
1766
|
mrb_int y = mrb_fixnum(regs[a+1]);
|
1585
|
-
|
1767
|
+
SET_FLOAT_VALUE(mrb, regs[a], x - y);
|
1586
1768
|
}
|
1587
1769
|
#else
|
1588
|
-
OP_MATH_BODY(-,
|
1770
|
+
OP_MATH_BODY(-,mrb_float,mrb_fixnum);
|
1589
1771
|
#endif
|
1590
1772
|
break;
|
1591
1773
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):
|
@@ -1593,10 +1775,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1593
1775
|
{
|
1594
1776
|
mrb_float x = mrb_float(regs[a]);
|
1595
1777
|
mrb_float y = mrb_float(regs[a+1]);
|
1596
|
-
|
1778
|
+
SET_FLOAT_VALUE(mrb, regs[a], x - y);
|
1597
1779
|
}
|
1598
1780
|
#else
|
1599
|
-
OP_MATH_BODY(-,
|
1781
|
+
OP_MATH_BODY(-,mrb_float,mrb_float);
|
1600
1782
|
#endif
|
1601
1783
|
break;
|
1602
1784
|
default:
|
@@ -1613,19 +1795,24 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1613
1795
|
switch (TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {
|
1614
1796
|
case TYPES2(MRB_TT_FIXNUM,MRB_TT_FIXNUM):
|
1615
1797
|
{
|
1616
|
-
|
1798
|
+
mrb_value z;
|
1617
1799
|
|
1618
|
-
|
1619
|
-
|
1620
|
-
z
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1800
|
+
z = mrb_fixnum_mul(mrb, regs[a], regs[a+1]);
|
1801
|
+
|
1802
|
+
switch (mrb_type(z)) {
|
1803
|
+
case MRB_TT_FIXNUM:
|
1804
|
+
{
|
1805
|
+
SET_INT_VALUE(regs[a], mrb_fixnum(z));
|
1806
|
+
}
|
1807
|
+
break;
|
1808
|
+
case MRB_TT_FLOAT:
|
1809
|
+
{
|
1810
|
+
SET_FLOAT_VALUE(mrb, regs[a], mrb_float(z));
|
1811
|
+
}
|
1812
|
+
break;
|
1813
|
+
default:
|
1814
|
+
/* cannot happen */
|
1815
|
+
break;
|
1629
1816
|
}
|
1630
1817
|
}
|
1631
1818
|
break;
|
@@ -1633,7 +1820,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1633
1820
|
{
|
1634
1821
|
mrb_int x = mrb_fixnum(regs[a]);
|
1635
1822
|
mrb_float y = mrb_float(regs[a+1]);
|
1636
|
-
|
1823
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x * y);
|
1637
1824
|
}
|
1638
1825
|
break;
|
1639
1826
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FIXNUM):
|
@@ -1641,10 +1828,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1641
1828
|
{
|
1642
1829
|
mrb_float x = mrb_float(regs[a]);
|
1643
1830
|
mrb_int y = mrb_fixnum(regs[a+1]);
|
1644
|
-
|
1831
|
+
SET_FLOAT_VALUE(mrb, regs[a], x * y);
|
1645
1832
|
}
|
1646
1833
|
#else
|
1647
|
-
OP_MATH_BODY(*,
|
1834
|
+
OP_MATH_BODY(*,mrb_float,mrb_fixnum);
|
1648
1835
|
#endif
|
1649
1836
|
break;
|
1650
1837
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):
|
@@ -1652,10 +1839,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1652
1839
|
{
|
1653
1840
|
mrb_float x = mrb_float(regs[a]);
|
1654
1841
|
mrb_float y = mrb_float(regs[a+1]);
|
1655
|
-
|
1842
|
+
SET_FLOAT_VALUE(mrb, regs[a], x * y);
|
1656
1843
|
}
|
1657
1844
|
#else
|
1658
|
-
OP_MATH_BODY(*,
|
1845
|
+
OP_MATH_BODY(*,mrb_float,mrb_float);
|
1659
1846
|
#endif
|
1660
1847
|
break;
|
1661
1848
|
default:
|
@@ -1674,14 +1861,14 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1674
1861
|
{
|
1675
1862
|
mrb_int x = mrb_fixnum(regs[a]);
|
1676
1863
|
mrb_int y = mrb_fixnum(regs[a+1]);
|
1677
|
-
|
1864
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x / (mrb_float)y);
|
1678
1865
|
}
|
1679
1866
|
break;
|
1680
1867
|
case TYPES2(MRB_TT_FIXNUM,MRB_TT_FLOAT):
|
1681
1868
|
{
|
1682
1869
|
mrb_int x = mrb_fixnum(regs[a]);
|
1683
1870
|
mrb_float y = mrb_float(regs[a+1]);
|
1684
|
-
|
1871
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x / y);
|
1685
1872
|
}
|
1686
1873
|
break;
|
1687
1874
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FIXNUM):
|
@@ -1689,10 +1876,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1689
1876
|
{
|
1690
1877
|
mrb_float x = mrb_float(regs[a]);
|
1691
1878
|
mrb_int y = mrb_fixnum(regs[a+1]);
|
1692
|
-
|
1879
|
+
SET_FLOAT_VALUE(mrb, regs[a], x / y);
|
1693
1880
|
}
|
1694
1881
|
#else
|
1695
|
-
OP_MATH_BODY(/,
|
1882
|
+
OP_MATH_BODY(/,mrb_float,mrb_fixnum);
|
1696
1883
|
#endif
|
1697
1884
|
break;
|
1698
1885
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):
|
@@ -1700,15 +1887,20 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1700
1887
|
{
|
1701
1888
|
mrb_float x = mrb_float(regs[a]);
|
1702
1889
|
mrb_float y = mrb_float(regs[a+1]);
|
1703
|
-
|
1890
|
+
SET_FLOAT_VALUE(mrb, regs[a], x / y);
|
1704
1891
|
}
|
1705
1892
|
#else
|
1706
|
-
OP_MATH_BODY(/,
|
1893
|
+
OP_MATH_BODY(/,mrb_float,mrb_float);
|
1707
1894
|
#endif
|
1708
1895
|
break;
|
1709
1896
|
default:
|
1710
1897
|
goto L_SEND;
|
1711
1898
|
}
|
1899
|
+
#ifdef MRB_NAN_BOXING
|
1900
|
+
if (isnan(mrb_float(regs[a]))) {
|
1901
|
+
regs[a] = mrb_float_value(mrb, mrb_float(regs[a]));
|
1902
|
+
}
|
1903
|
+
#endif
|
1712
1904
|
NEXT;
|
1713
1905
|
}
|
1714
1906
|
|
@@ -1720,26 +1912,25 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1720
1912
|
switch (mrb_type(regs[a])) {
|
1721
1913
|
case MRB_TT_FIXNUM:
|
1722
1914
|
{
|
1723
|
-
mrb_int x = regs[a]
|
1915
|
+
mrb_int x = mrb_fixnum(regs[a]);
|
1724
1916
|
mrb_int y = GETARG_C(i);
|
1725
|
-
mrb_int z
|
1917
|
+
mrb_int z;
|
1726
1918
|
|
1727
|
-
if ((
|
1728
|
-
|
1729
|
-
SET_FLT_VALUE(mrb, regs[a], (mrb_float)x + (mrb_float)y);
|
1919
|
+
if (mrb_int_add_overflow(x, y, &z)) {
|
1920
|
+
SET_FLOAT_VALUE(mrb, regs[a], (mrb_float)x + (mrb_float)y);
|
1730
1921
|
break;
|
1731
1922
|
}
|
1732
|
-
regs[a]
|
1923
|
+
SET_INT_VALUE(regs[a], z);
|
1733
1924
|
}
|
1734
1925
|
break;
|
1735
1926
|
case MRB_TT_FLOAT:
|
1736
1927
|
#ifdef MRB_WORD_BOXING
|
1737
1928
|
{
|
1738
1929
|
mrb_float x = mrb_float(regs[a]);
|
1739
|
-
|
1930
|
+
SET_FLOAT_VALUE(mrb, regs[a], x + GETARG_C(i));
|
1740
1931
|
}
|
1741
1932
|
#else
|
1742
|
-
regs[a]
|
1933
|
+
mrb_float(regs[a]) += GETARG_C(i);
|
1743
1934
|
#endif
|
1744
1935
|
break;
|
1745
1936
|
default:
|
@@ -1759,16 +1950,15 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1759
1950
|
switch (mrb_type(regs_a[0])) {
|
1760
1951
|
case MRB_TT_FIXNUM:
|
1761
1952
|
{
|
1762
|
-
mrb_int x = regs_a[0]
|
1953
|
+
mrb_int x = mrb_fixnum(regs_a[0]);
|
1763
1954
|
mrb_int y = GETARG_C(i);
|
1764
|
-
mrb_int z
|
1955
|
+
mrb_int z;
|
1765
1956
|
|
1766
|
-
if ((x
|
1767
|
-
|
1768
|
-
SET_FLT_VALUE(mrb, regs_a[0], (mrb_float)x - (mrb_float)y);
|
1957
|
+
if (mrb_int_sub_overflow(x, y, &z)) {
|
1958
|
+
SET_FLOAT_VALUE(mrb, regs_a[0], (mrb_float)x - (mrb_float)y);
|
1769
1959
|
}
|
1770
1960
|
else {
|
1771
|
-
regs_a[0]
|
1961
|
+
SET_INT_VALUE(regs_a[0], z);
|
1772
1962
|
}
|
1773
1963
|
}
|
1774
1964
|
break;
|
@@ -1776,10 +1966,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1776
1966
|
#ifdef MRB_WORD_BOXING
|
1777
1967
|
{
|
1778
1968
|
mrb_float x = mrb_float(regs[a]);
|
1779
|
-
|
1969
|
+
SET_FLOAT_VALUE(mrb, regs[a], x - GETARG_C(i));
|
1780
1970
|
}
|
1781
1971
|
#else
|
1782
|
-
regs_a[0]
|
1972
|
+
mrb_float(regs_a[0]) -= GETARG_C(i);
|
1783
1973
|
#endif
|
1784
1974
|
break;
|
1785
1975
|
default:
|
@@ -1790,38 +1980,37 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1790
1980
|
NEXT;
|
1791
1981
|
}
|
1792
1982
|
|
1793
|
-
#define OP_CMP_BODY(op,v1,v2)
|
1794
|
-
if (regs[a].v1 op regs[a+1].v2) {\
|
1795
|
-
SET_TRUE_VALUE(regs[a]);\
|
1796
|
-
}\
|
1797
|
-
else {\
|
1798
|
-
SET_FALSE_VALUE(regs[a]);\
|
1799
|
-
}\
|
1800
|
-
} while(0)
|
1983
|
+
#define OP_CMP_BODY(op,v1,v2) (v1(regs[a]) op v2(regs[a+1]))
|
1801
1984
|
|
1802
1985
|
#define OP_CMP(op) do {\
|
1803
|
-
int
|
1986
|
+
int result;\
|
1804
1987
|
/* need to check if - is overridden */\
|
1805
1988
|
switch (TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {\
|
1806
1989
|
case TYPES2(MRB_TT_FIXNUM,MRB_TT_FIXNUM):\
|
1807
|
-
OP_CMP_BODY(op,
|
1990
|
+
result = OP_CMP_BODY(op,mrb_fixnum,mrb_fixnum);\
|
1808
1991
|
break;\
|
1809
1992
|
case TYPES2(MRB_TT_FIXNUM,MRB_TT_FLOAT):\
|
1810
|
-
OP_CMP_BODY(op,
|
1993
|
+
result = OP_CMP_BODY(op,mrb_fixnum,mrb_float);\
|
1811
1994
|
break;\
|
1812
1995
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FIXNUM):\
|
1813
|
-
OP_CMP_BODY(op,
|
1996
|
+
result = OP_CMP_BODY(op,mrb_float,mrb_fixnum);\
|
1814
1997
|
break;\
|
1815
1998
|
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):\
|
1816
|
-
OP_CMP_BODY(op,
|
1999
|
+
result = OP_CMP_BODY(op,mrb_float,mrb_float);\
|
1817
2000
|
break;\
|
1818
2001
|
default:\
|
1819
2002
|
goto L_SEND;\
|
1820
2003
|
}\
|
2004
|
+
if (result) {\
|
2005
|
+
SET_TRUE_VALUE(regs[a]);\
|
2006
|
+
}\
|
2007
|
+
else {\
|
2008
|
+
SET_FALSE_VALUE(regs[a]);\
|
2009
|
+
}\
|
1821
2010
|
} while(0)
|
1822
2011
|
|
1823
2012
|
CASE(OP_EQ) {
|
1824
|
-
/* A B C R(A) := R(A)
|
2013
|
+
/* A B C R(A) := R(A)==R(A+1) (Syms[B]=:==,C=1)*/
|
1825
2014
|
int a = GETARG_A(i);
|
1826
2015
|
if (mrb_obj_eq(mrb, regs[a], regs[a+1])) {
|
1827
2016
|
SET_TRUE_VALUE(regs[a]);
|
@@ -1834,24 +2023,28 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1834
2023
|
|
1835
2024
|
CASE(OP_LT) {
|
1836
2025
|
/* A B C R(A) := R(A)<R(A+1) (Syms[B]=:<,C=1)*/
|
2026
|
+
int a = GETARG_A(i);
|
1837
2027
|
OP_CMP(<);
|
1838
2028
|
NEXT;
|
1839
2029
|
}
|
1840
2030
|
|
1841
2031
|
CASE(OP_LE) {
|
1842
2032
|
/* A B C R(A) := R(A)<=R(A+1) (Syms[B]=:<=,C=1)*/
|
2033
|
+
int a = GETARG_A(i);
|
1843
2034
|
OP_CMP(<=);
|
1844
2035
|
NEXT;
|
1845
2036
|
}
|
1846
2037
|
|
1847
2038
|
CASE(OP_GT) {
|
1848
|
-
/* A B C R(A) := R(A)
|
2039
|
+
/* A B C R(A) := R(A)>R(A+1) (Syms[B]=:>,C=1)*/
|
2040
|
+
int a = GETARG_A(i);
|
1849
2041
|
OP_CMP(>);
|
1850
2042
|
NEXT;
|
1851
2043
|
}
|
1852
2044
|
|
1853
2045
|
CASE(OP_GE) {
|
1854
|
-
/* A B C R(A) := R(A)
|
2046
|
+
/* A B C R(A) := R(A)>=R(A+1) (Syms[B]=:>=,C=1)*/
|
2047
|
+
int a = GETARG_A(i);
|
1855
2048
|
OP_CMP(>=);
|
1856
2049
|
NEXT;
|
1857
2050
|
}
|
@@ -1920,7 +2113,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1920
2113
|
else {
|
1921
2114
|
struct RArray *ary = mrb_ary_ptr(v);
|
1922
2115
|
int len = ary->len;
|
1923
|
-
int
|
2116
|
+
int idx;
|
1924
2117
|
|
1925
2118
|
if (len > pre + post) {
|
1926
2119
|
regs[a++] = mrb_ary_new_from_values(mrb, len - pre - post, ary->ptr+pre);
|
@@ -1930,12 +2123,12 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1930
2123
|
}
|
1931
2124
|
else {
|
1932
2125
|
regs[a++] = mrb_ary_new_capa(mrb, 0);
|
1933
|
-
for (
|
1934
|
-
regs[a+
|
2126
|
+
for (idx=0; idx+pre<len; idx++) {
|
2127
|
+
regs[a+idx] = ary->ptr[pre+idx];
|
1935
2128
|
}
|
1936
|
-
while (
|
1937
|
-
SET_NIL_VALUE(regs[a+
|
1938
|
-
|
2129
|
+
while (idx < post) {
|
2130
|
+
SET_NIL_VALUE(regs[a+idx]);
|
2131
|
+
idx++;
|
1939
2132
|
}
|
1940
2133
|
}
|
1941
2134
|
}
|
@@ -1982,6 +2175,15 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1982
2175
|
}
|
1983
2176
|
else {
|
1984
2177
|
p = mrb_proc_new(mrb, irep->reps[GETARG_b(i)]);
|
2178
|
+
if (c & OP_L_METHOD) {
|
2179
|
+
if (p->target_class->tt == MRB_TT_SCLASS) {
|
2180
|
+
mrb_value klass;
|
2181
|
+
klass = mrb_obj_iv_get(mrb,
|
2182
|
+
(struct RObject *)p->target_class,
|
2183
|
+
mrb_intern_lit(mrb, "__attached__"));
|
2184
|
+
p->target_class = mrb_class_ptr(klass);
|
2185
|
+
}
|
2186
|
+
}
|
1985
2187
|
}
|
1986
2188
|
if (c & OP_L_STRICT) p->flags |= MRB_PROC_STRICT;
|
1987
2189
|
regs[GETARG_A(i)] = mrb_obj_value(p);
|
@@ -1996,7 +2198,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
1996
2198
|
}
|
1997
2199
|
|
1998
2200
|
CASE(OP_CLASS) {
|
1999
|
-
/* A B R(A) := newclass(R(A),
|
2201
|
+
/* A B R(A) := newclass(R(A),Syms(B),R(A+1)) */
|
2000
2202
|
struct RClass *c = 0;
|
2001
2203
|
int a = GETARG_A(i);
|
2002
2204
|
mrb_value base, super;
|
@@ -2014,7 +2216,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2014
2216
|
}
|
2015
2217
|
|
2016
2218
|
CASE(OP_MODULE) {
|
2017
|
-
/* A B R(A) := newmodule(R(A),
|
2219
|
+
/* A B R(A) := newmodule(R(A),Syms(B)) */
|
2018
2220
|
struct RClass *c = 0;
|
2019
2221
|
int a = GETARG_A(i);
|
2020
2222
|
mrb_value base;
|
@@ -2042,7 +2244,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2042
2244
|
ci->pc = pc + 1;
|
2043
2245
|
ci->acc = a;
|
2044
2246
|
ci->mid = 0;
|
2045
|
-
ci->
|
2247
|
+
ci->stackent = mrb->c->stack;
|
2046
2248
|
ci->argc = 0;
|
2047
2249
|
ci->target_class = mrb_class_ptr(recv);
|
2048
2250
|
|
@@ -2054,11 +2256,12 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2054
2256
|
ci->proc = p;
|
2055
2257
|
|
2056
2258
|
if (MRB_PROC_CFUNC_P(p)) {
|
2259
|
+
ci->nregs = 0;
|
2057
2260
|
mrb->c->stack[0] = p->body.func(mrb, recv);
|
2058
2261
|
mrb_gc_arena_restore(mrb, ai);
|
2059
2262
|
if (mrb->exc) goto L_RAISE;
|
2060
2263
|
/* pop stackpos */
|
2061
|
-
regs = mrb->c->stack = mrb->c->
|
2264
|
+
regs = mrb->c->stack = mrb->c->ci->stackent;
|
2062
2265
|
cipop(mrb);
|
2063
2266
|
NEXT;
|
2064
2267
|
}
|
@@ -2075,7 +2278,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2075
2278
|
}
|
2076
2279
|
|
2077
2280
|
CASE(OP_METHOD) {
|
2078
|
-
/* A B R(A).newmethod(
|
2281
|
+
/* A B R(A).newmethod(Syms(B),R(A+1)) */
|
2079
2282
|
int a = GETARG_A(i);
|
2080
2283
|
struct RClass *c = mrb_class_ptr(regs[a]);
|
2081
2284
|
|
@@ -2092,10 +2295,9 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2092
2295
|
}
|
2093
2296
|
|
2094
2297
|
CASE(OP_TCLASS) {
|
2095
|
-
/* A
|
2298
|
+
/* A R(A) := target_class */
|
2096
2299
|
if (!mrb->c->ci->target_class) {
|
2097
|
-
|
2098
|
-
mrb_value exc = mrb_exc_new(mrb, E_TYPE_ERROR, msg, sizeof(msg) - 1);
|
2300
|
+
mrb_value exc = mrb_exc_new_str_lit(mrb, E_TYPE_ERROR, "no target class or module");
|
2099
2301
|
mrb->exc = mrb_obj_ptr(exc);
|
2100
2302
|
goto L_RAISE;
|
2101
2303
|
}
|
@@ -2112,11 +2314,15 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2112
2314
|
}
|
2113
2315
|
|
2114
2316
|
CASE(OP_DEBUG) {
|
2115
|
-
/* A
|
2317
|
+
/* A B C debug print R(A),R(B),R(C) */
|
2318
|
+
#ifdef ENABLE_DEBUG
|
2319
|
+
mrb->debug_op_hook(mrb, irep, pc, regs);
|
2320
|
+
#else
|
2116
2321
|
#ifdef ENABLE_STDIO
|
2117
2322
|
printf("OP_DEBUG %d %d %d\n", GETARG_A(i), GETARG_B(i), GETARG_C(i));
|
2118
2323
|
#else
|
2119
2324
|
abort();
|
2325
|
+
#endif
|
2120
2326
|
#endif
|
2121
2327
|
NEXT;
|
2122
2328
|
}
|
@@ -2125,10 +2331,10 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2125
2331
|
/* stop VM */
|
2126
2332
|
L_STOP:
|
2127
2333
|
{
|
2128
|
-
int
|
2129
|
-
|
2130
|
-
while (
|
2131
|
-
ecall(mrb,
|
2334
|
+
int eidx_stop = mrb->c->ci == mrb->c->cibase ? 0 : mrb->c->ci[-1].eidx;
|
2335
|
+
int eidx = mrb->c->ci->eidx;
|
2336
|
+
while (eidx > eidx_stop) {
|
2337
|
+
ecall(mrb, --eidx);
|
2132
2338
|
}
|
2133
2339
|
}
|
2134
2340
|
ERR_PC_CLR(mrb);
|
@@ -2155,16 +2361,42 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int
|
|
2155
2361
|
}
|
2156
2362
|
}
|
2157
2363
|
END_DISPATCH;
|
2364
|
+
|
2365
|
+
}
|
2366
|
+
MRB_CATCH(&c_jmp) {
|
2367
|
+
exc_catched = TRUE;
|
2368
|
+
goto RETRY_TRY_BLOCK;
|
2369
|
+
}
|
2370
|
+
MRB_END_EXC(&c_jmp);
|
2158
2371
|
}
|
2159
2372
|
|
2160
|
-
mrb_value
|
2373
|
+
MRB_API mrb_value
|
2161
2374
|
mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
|
2162
2375
|
{
|
2163
|
-
|
2376
|
+
return mrb_context_run(mrb, proc, self, mrb->c->ci->argc + 2); /* argc + 2 (receiver and block) */
|
2377
|
+
}
|
2378
|
+
|
2379
|
+
MRB_API mrb_value
|
2380
|
+
mrb_toplevel_run_keep(mrb_state *mrb, struct RProc *proc, unsigned int stack_keep)
|
2381
|
+
{
|
2382
|
+
mrb_callinfo *ci;
|
2383
|
+
mrb_value v;
|
2384
|
+
|
2385
|
+
if (!mrb->c->cibase || mrb->c->ci == mrb->c->cibase) {
|
2386
|
+
return mrb_context_run(mrb, proc, mrb_top_self(mrb), stack_keep);
|
2387
|
+
}
|
2388
|
+
ci = cipush(mrb);
|
2389
|
+
ci->nregs = 1; /* protect the receiver */
|
2390
|
+
ci->acc = CI_ACC_SKIP;
|
2391
|
+
ci->target_class = mrb->object_class;
|
2392
|
+
v = mrb_context_run(mrb, proc, mrb_top_self(mrb), stack_keep);
|
2393
|
+
cipop(mrb);
|
2394
|
+
|
2395
|
+
return v;
|
2164
2396
|
}
|
2165
2397
|
|
2166
|
-
|
2167
|
-
|
2398
|
+
MRB_API mrb_value
|
2399
|
+
mrb_toplevel_run(mrb_state *mrb, struct RProc *proc)
|
2168
2400
|
{
|
2169
|
-
|
2401
|
+
return mrb_toplevel_run_keep(mrb, proc, 0);
|
2170
2402
|
}
|