webruby 0.2.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -1,2309 +0,0 @@
1
- // -*- C++ -*-
2
- //===----------------------------------------------------------------------===//
3
- //
4
- // The LLVM Compiler Infrastructure
5
- //
6
- // This file is dual licensed under the MIT and the University of Illinois Open
7
- // Source Licenses. See LICENSE.TXT for details.
8
- //
9
- //===----------------------------------------------------------------------===//
10
-
11
- #ifndef _LIBCPP___TREE
12
- #define _LIBCPP___TREE
13
-
14
- #include <__config>
15
- #include <iterator>
16
- #include <memory>
17
- #include <stdexcept>
18
- #include <algorithm>
19
-
20
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
21
- #pragma GCC system_header
22
- #endif
23
-
24
- _LIBCPP_BEGIN_NAMESPACE_STD
25
-
26
- template <class _Tp, class _Compare, class _Allocator> class __tree;
27
- template <class _Tp, class _NodePtr, class _DiffType>
28
- class _LIBCPP_TYPE_VIS_ONLY __tree_iterator;
29
- template <class _Tp, class _ConstNodePtr, class _DiffType>
30
- class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
31
- template <class _Key, class _Tp, class _Compare, class _Allocator>
32
- class _LIBCPP_TYPE_VIS_ONLY map;
33
- template <class _Key, class _Tp, class _Compare, class _Allocator>
34
- class _LIBCPP_TYPE_VIS_ONLY multimap;
35
- template <class _Key, class _Compare, class _Allocator>
36
- class _LIBCPP_TYPE_VIS_ONLY set;
37
- template <class _Key, class _Compare, class _Allocator>
38
- class _LIBCPP_TYPE_VIS_ONLY multiset;
39
-
40
- /*
41
-
42
- _NodePtr algorithms
43
-
44
- The algorithms taking _NodePtr are red black tree algorithms. Those
45
- algorithms taking a parameter named __root should assume that __root
46
- points to a proper red black tree (unless otherwise specified).
47
-
48
- Each algorithm herein assumes that __root->__parent_ points to a non-null
49
- structure which has a member __left_ which points back to __root. No other
50
- member is read or written to at __root->__parent_.
51
-
52
- __root->__parent_ will be referred to below (in comments only) as end_node.
53
- end_node->__left_ is an externably accessible lvalue for __root, and can be
54
- changed by node insertion and removal (without explicit reference to end_node).
55
-
56
- All nodes (with the exception of end_node), even the node referred to as
57
- __root, have a non-null __parent_ field.
58
-
59
- */
60
-
61
- // Returns: true if __x is a left child of its parent, else false
62
- // Precondition: __x != nullptr.
63
- template <class _NodePtr>
64
- inline _LIBCPP_INLINE_VISIBILITY
65
- bool
66
- __tree_is_left_child(_NodePtr __x) _NOEXCEPT
67
- {
68
- return __x == __x->__parent_->__left_;
69
- }
70
-
71
- // Determintes if the subtree rooted at __x is a proper red black subtree. If
72
- // __x is a proper subtree, returns the black height (null counts as 1). If
73
- // __x is an improper subtree, returns 0.
74
- template <class _NodePtr>
75
- unsigned
76
- __tree_sub_invariant(_NodePtr __x)
77
- {
78
- if (__x == nullptr)
79
- return 1;
80
- // parent consistency checked by caller
81
- // check __x->__left_ consistency
82
- if (__x->__left_ != nullptr && __x->__left_->__parent_ != __x)
83
- return 0;
84
- // check __x->__right_ consistency
85
- if (__x->__right_ != nullptr && __x->__right_->__parent_ != __x)
86
- return 0;
87
- // check __x->__left_ != __x->__right_ unless both are nullptr
88
- if (__x->__left_ == __x->__right_ && __x->__left_ != nullptr)
89
- return 0;
90
- // If this is red, neither child can be red
91
- if (!__x->__is_black_)
92
- {
93
- if (__x->__left_ && !__x->__left_->__is_black_)
94
- return 0;
95
- if (__x->__right_ && !__x->__right_->__is_black_)
96
- return 0;
97
- }
98
- unsigned __h = __tree_sub_invariant(__x->__left_);
99
- if (__h == 0)
100
- return 0; // invalid left subtree
101
- if (__h != __tree_sub_invariant(__x->__right_))
102
- return 0; // invalid or different height right subtree
103
- return __h + __x->__is_black_; // return black height of this node
104
- }
105
-
106
- // Determintes if the red black tree rooted at __root is a proper red black tree.
107
- // __root == nullptr is a proper tree. Returns true is __root is a proper
108
- // red black tree, else returns false.
109
- template <class _NodePtr>
110
- bool
111
- __tree_invariant(_NodePtr __root)
112
- {
113
- if (__root == nullptr)
114
- return true;
115
- // check __x->__parent_ consistency
116
- if (__root->__parent_ == nullptr)
117
- return false;
118
- if (!__tree_is_left_child(__root))
119
- return false;
120
- // root must be black
121
- if (!__root->__is_black_)
122
- return false;
123
- // do normal node checks
124
- return __tree_sub_invariant(__root) != 0;
125
- }
126
-
127
- // Returns: pointer to the left-most node under __x.
128
- // Precondition: __x != nullptr.
129
- template <class _NodePtr>
130
- inline _LIBCPP_INLINE_VISIBILITY
131
- _NodePtr
132
- __tree_min(_NodePtr __x) _NOEXCEPT
133
- {
134
- while (__x->__left_ != nullptr)
135
- __x = __x->__left_;
136
- return __x;
137
- }
138
-
139
- // Returns: pointer to the right-most node under __x.
140
- // Precondition: __x != nullptr.
141
- template <class _NodePtr>
142
- inline _LIBCPP_INLINE_VISIBILITY
143
- _NodePtr
144
- __tree_max(_NodePtr __x) _NOEXCEPT
145
- {
146
- while (__x->__right_ != nullptr)
147
- __x = __x->__right_;
148
- return __x;
149
- }
150
-
151
- // Returns: pointer to the next in-order node after __x.
152
- // Precondition: __x != nullptr.
153
- template <class _NodePtr>
154
- _NodePtr
155
- __tree_next(_NodePtr __x) _NOEXCEPT
156
- {
157
- if (__x->__right_ != nullptr)
158
- return __tree_min(__x->__right_);
159
- while (!__tree_is_left_child(__x))
160
- __x = __x->__parent_;
161
- return __x->__parent_;
162
- }
163
-
164
- // Returns: pointer to the previous in-order node before __x.
165
- // Precondition: __x != nullptr.
166
- template <class _NodePtr>
167
- _NodePtr
168
- __tree_prev(_NodePtr __x) _NOEXCEPT
169
- {
170
- if (__x->__left_ != nullptr)
171
- return __tree_max(__x->__left_);
172
- while (__tree_is_left_child(__x))
173
- __x = __x->__parent_;
174
- return __x->__parent_;
175
- }
176
-
177
- // Returns: pointer to a node which has no children
178
- // Precondition: __x != nullptr.
179
- template <class _NodePtr>
180
- _NodePtr
181
- __tree_leaf(_NodePtr __x) _NOEXCEPT
182
- {
183
- while (true)
184
- {
185
- if (__x->__left_ != nullptr)
186
- {
187
- __x = __x->__left_;
188
- continue;
189
- }
190
- if (__x->__right_ != nullptr)
191
- {
192
- __x = __x->__right_;
193
- continue;
194
- }
195
- break;
196
- }
197
- return __x;
198
- }
199
-
200
- // Effects: Makes __x->__right_ the subtree root with __x as its left child
201
- // while preserving in-order order.
202
- // Precondition: __x->__right_ != nullptr
203
- template <class _NodePtr>
204
- void
205
- __tree_left_rotate(_NodePtr __x) _NOEXCEPT
206
- {
207
- _NodePtr __y = __x->__right_;
208
- __x->__right_ = __y->__left_;
209
- if (__x->__right_ != nullptr)
210
- __x->__right_->__parent_ = __x;
211
- __y->__parent_ = __x->__parent_;
212
- if (__tree_is_left_child(__x))
213
- __x->__parent_->__left_ = __y;
214
- else
215
- __x->__parent_->__right_ = __y;
216
- __y->__left_ = __x;
217
- __x->__parent_ = __y;
218
- }
219
-
220
- // Effects: Makes __x->__left_ the subtree root with __x as its right child
221
- // while preserving in-order order.
222
- // Precondition: __x->__left_ != nullptr
223
- template <class _NodePtr>
224
- void
225
- __tree_right_rotate(_NodePtr __x) _NOEXCEPT
226
- {
227
- _NodePtr __y = __x->__left_;
228
- __x->__left_ = __y->__right_;
229
- if (__x->__left_ != nullptr)
230
- __x->__left_->__parent_ = __x;
231
- __y->__parent_ = __x->__parent_;
232
- if (__tree_is_left_child(__x))
233
- __x->__parent_->__left_ = __y;
234
- else
235
- __x->__parent_->__right_ = __y;
236
- __y->__right_ = __x;
237
- __x->__parent_ = __y;
238
- }
239
-
240
- // Effects: Rebalances __root after attaching __x to a leaf.
241
- // Precondition: __root != nulptr && __x != nullptr.
242
- // __x has no children.
243
- // __x == __root or == a direct or indirect child of __root.
244
- // If __x were to be unlinked from __root (setting __root to
245
- // nullptr if __root == __x), __tree_invariant(__root) == true.
246
- // Postcondition: __tree_invariant(end_node->__left_) == true. end_node->__left_
247
- // may be different than the value passed in as __root.
248
- template <class _NodePtr>
249
- void
250
- __tree_balance_after_insert(_NodePtr __root, _NodePtr __x) _NOEXCEPT
251
- {
252
- __x->__is_black_ = __x == __root;
253
- while (__x != __root && !__x->__parent_->__is_black_)
254
- {
255
- // __x->__parent_ != __root because __x->__parent_->__is_black == false
256
- if (__tree_is_left_child(__x->__parent_))
257
- {
258
- _NodePtr __y = __x->__parent_->__parent_->__right_;
259
- if (__y != nullptr && !__y->__is_black_)
260
- {
261
- __x = __x->__parent_;
262
- __x->__is_black_ = true;
263
- __x = __x->__parent_;
264
- __x->__is_black_ = __x == __root;
265
- __y->__is_black_ = true;
266
- }
267
- else
268
- {
269
- if (!__tree_is_left_child(__x))
270
- {
271
- __x = __x->__parent_;
272
- __tree_left_rotate(__x);
273
- }
274
- __x = __x->__parent_;
275
- __x->__is_black_ = true;
276
- __x = __x->__parent_;
277
- __x->__is_black_ = false;
278
- __tree_right_rotate(__x);
279
- break;
280
- }
281
- }
282
- else
283
- {
284
- _NodePtr __y = __x->__parent_->__parent_->__left_;
285
- if (__y != nullptr && !__y->__is_black_)
286
- {
287
- __x = __x->__parent_;
288
- __x->__is_black_ = true;
289
- __x = __x->__parent_;
290
- __x->__is_black_ = __x == __root;
291
- __y->__is_black_ = true;
292
- }
293
- else
294
- {
295
- if (__tree_is_left_child(__x))
296
- {
297
- __x = __x->__parent_;
298
- __tree_right_rotate(__x);
299
- }
300
- __x = __x->__parent_;
301
- __x->__is_black_ = true;
302
- __x = __x->__parent_;
303
- __x->__is_black_ = false;
304
- __tree_left_rotate(__x);
305
- break;
306
- }
307
- }
308
- }
309
- }
310
-
311
- // Precondition: __root != nullptr && __z != nullptr.
312
- // __tree_invariant(__root) == true.
313
- // __z == __root or == a direct or indirect child of __root.
314
- // Effects: unlinks __z from the tree rooted at __root, rebalancing as needed.
315
- // Postcondition: __tree_invariant(end_node->__left_) == true && end_node->__left_
316
- // nor any of its children refer to __z. end_node->__left_
317
- // may be different than the value passed in as __root.
318
- template <class _NodePtr>
319
- void
320
- __tree_remove(_NodePtr __root, _NodePtr __z) _NOEXCEPT
321
- {
322
- // __z will be removed from the tree. Client still needs to destruct/deallocate it
323
- // __y is either __z, or if __z has two children, __tree_next(__z).
324
- // __y will have at most one child.
325
- // __y will be the initial hole in the tree (make the hole at a leaf)
326
- _NodePtr __y = (__z->__left_ == nullptr || __z->__right_ == nullptr) ?
327
- __z : __tree_next(__z);
328
- // __x is __y's possibly null single child
329
- _NodePtr __x = __y->__left_ != nullptr ? __y->__left_ : __y->__right_;
330
- // __w is __x's possibly null uncle (will become __x's sibling)
331
- _NodePtr __w = nullptr;
332
- // link __x to __y's parent, and find __w
333
- if (__x != nullptr)
334
- __x->__parent_ = __y->__parent_;
335
- if (__tree_is_left_child(__y))
336
- {
337
- __y->__parent_->__left_ = __x;
338
- if (__y != __root)
339
- __w = __y->__parent_->__right_;
340
- else
341
- __root = __x; // __w == nullptr
342
- }
343
- else
344
- {
345
- __y->__parent_->__right_ = __x;
346
- // __y can't be root if it is a right child
347
- __w = __y->__parent_->__left_;
348
- }
349
- bool __removed_black = __y->__is_black_;
350
- // If we didn't remove __z, do so now by splicing in __y for __z,
351
- // but copy __z's color. This does not impact __x or __w.
352
- if (__y != __z)
353
- {
354
- // __z->__left_ != nulptr but __z->__right_ might == __x == nullptr
355
- __y->__parent_ = __z->__parent_;
356
- if (__tree_is_left_child(__z))
357
- __y->__parent_->__left_ = __y;
358
- else
359
- __y->__parent_->__right_ = __y;
360
- __y->__left_ = __z->__left_;
361
- __y->__left_->__parent_ = __y;
362
- __y->__right_ = __z->__right_;
363
- if (__y->__right_ != nullptr)
364
- __y->__right_->__parent_ = __y;
365
- __y->__is_black_ = __z->__is_black_;
366
- if (__root == __z)
367
- __root = __y;
368
- }
369
- // There is no need to rebalance if we removed a red, or if we removed
370
- // the last node.
371
- if (__removed_black && __root != nullptr)
372
- {
373
- // Rebalance:
374
- // __x has an implicit black color (transferred from the removed __y)
375
- // associated with it, no matter what its color is.
376
- // If __x is __root (in which case it can't be null), it is supposed
377
- // to be black anyway, and if it is doubly black, then the double
378
- // can just be ignored.
379
- // If __x is red (in which case it can't be null), then it can absorb
380
- // the implicit black just by setting its color to black.
381
- // Since __y was black and only had one child (which __x points to), __x
382
- // is either red with no children, else null, otherwise __y would have
383
- // different black heights under left and right pointers.
384
- // if (__x == __root || __x != nullptr && !__x->__is_black_)
385
- if (__x != nullptr)
386
- __x->__is_black_ = true;
387
- else
388
- {
389
- // Else __x isn't root, and is "doubly black", even though it may
390
- // be null. __w can not be null here, else the parent would
391
- // see a black height >= 2 on the __x side and a black height
392
- // of 1 on the __w side (__w must be a non-null black or a red
393
- // with a non-null black child).
394
- while (true)
395
- {
396
- if (!__tree_is_left_child(__w)) // if x is left child
397
- {
398
- if (!__w->__is_black_)
399
- {
400
- __w->__is_black_ = true;
401
- __w->__parent_->__is_black_ = false;
402
- __tree_left_rotate(__w->__parent_);
403
- // __x is still valid
404
- // reset __root only if necessary
405
- if (__root == __w->__left_)
406
- __root = __w;
407
- // reset sibling, and it still can't be null
408
- __w = __w->__left_->__right_;
409
- }
410
- // __w->__is_black_ is now true, __w may have null children
411
- if ((__w->__left_ == nullptr || __w->__left_->__is_black_) &&
412
- (__w->__right_ == nullptr || __w->__right_->__is_black_))
413
- {
414
- __w->__is_black_ = false;
415
- __x = __w->__parent_;
416
- // __x can no longer be null
417
- if (__x == __root || !__x->__is_black_)
418
- {
419
- __x->__is_black_ = true;
420
- break;
421
- }
422
- // reset sibling, and it still can't be null
423
- __w = __tree_is_left_child(__x) ?
424
- __x->__parent_->__right_ :
425
- __x->__parent_->__left_;
426
- // continue;
427
- }
428
- else // __w has a red child
429
- {
430
- if (__w->__right_ == nullptr || __w->__right_->__is_black_)
431
- {
432
- // __w left child is non-null and red
433
- __w->__left_->__is_black_ = true;
434
- __w->__is_black_ = false;
435
- __tree_right_rotate(__w);
436
- // __w is known not to be root, so root hasn't changed
437
- // reset sibling, and it still can't be null
438
- __w = __w->__parent_;
439
- }
440
- // __w has a right red child, left child may be null
441
- __w->__is_black_ = __w->__parent_->__is_black_;
442
- __w->__parent_->__is_black_ = true;
443
- __w->__right_->__is_black_ = true;
444
- __tree_left_rotate(__w->__parent_);
445
- break;
446
- }
447
- }
448
- else
449
- {
450
- if (!__w->__is_black_)
451
- {
452
- __w->__is_black_ = true;
453
- __w->__parent_->__is_black_ = false;
454
- __tree_right_rotate(__w->__parent_);
455
- // __x is still valid
456
- // reset __root only if necessary
457
- if (__root == __w->__right_)
458
- __root = __w;
459
- // reset sibling, and it still can't be null
460
- __w = __w->__right_->__left_;
461
- }
462
- // __w->__is_black_ is now true, __w may have null children
463
- if ((__w->__left_ == nullptr || __w->__left_->__is_black_) &&
464
- (__w->__right_ == nullptr || __w->__right_->__is_black_))
465
- {
466
- __w->__is_black_ = false;
467
- __x = __w->__parent_;
468
- // __x can no longer be null
469
- if (!__x->__is_black_ || __x == __root)
470
- {
471
- __x->__is_black_ = true;
472
- break;
473
- }
474
- // reset sibling, and it still can't be null
475
- __w = __tree_is_left_child(__x) ?
476
- __x->__parent_->__right_ :
477
- __x->__parent_->__left_;
478
- // continue;
479
- }
480
- else // __w has a red child
481
- {
482
- if (__w->__left_ == nullptr || __w->__left_->__is_black_)
483
- {
484
- // __w right child is non-null and red
485
- __w->__right_->__is_black_ = true;
486
- __w->__is_black_ = false;
487
- __tree_left_rotate(__w);
488
- // __w is known not to be root, so root hasn't changed
489
- // reset sibling, and it still can't be null
490
- __w = __w->__parent_;
491
- }
492
- // __w has a left red child, right child may be null
493
- __w->__is_black_ = __w->__parent_->__is_black_;
494
- __w->__parent_->__is_black_ = true;
495
- __w->__left_->__is_black_ = true;
496
- __tree_right_rotate(__w->__parent_);
497
- break;
498
- }
499
- }
500
- }
501
- }
502
- }
503
- }
504
-
505
- template <class _Allocator> class __map_node_destructor;
506
-
507
- template <class _Allocator>
508
- class __tree_node_destructor
509
- {
510
- typedef _Allocator allocator_type;
511
- typedef allocator_traits<allocator_type> __alloc_traits;
512
- typedef typename __alloc_traits::value_type::value_type value_type;
513
- public:
514
- typedef typename __alloc_traits::pointer pointer;
515
- private:
516
-
517
- allocator_type& __na_;
518
-
519
- __tree_node_destructor& operator=(const __tree_node_destructor&);
520
-
521
- public:
522
- bool __value_constructed;
523
-
524
- _LIBCPP_INLINE_VISIBILITY
525
- explicit __tree_node_destructor(allocator_type& __na) _NOEXCEPT
526
- : __na_(__na),
527
- __value_constructed(false)
528
- {}
529
-
530
- _LIBCPP_INLINE_VISIBILITY
531
- void operator()(pointer __p) _NOEXCEPT
532
- {
533
- if (__value_constructed)
534
- __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_));
535
- if (__p)
536
- __alloc_traits::deallocate(__na_, __p, 1);
537
- }
538
-
539
- template <class> friend class __map_node_destructor;
540
- };
541
-
542
- // node
543
-
544
- template <class _Pointer>
545
- class __tree_end_node
546
- {
547
- public:
548
- typedef _Pointer pointer;
549
- pointer __left_;
550
-
551
- _LIBCPP_INLINE_VISIBILITY
552
- __tree_end_node() _NOEXCEPT : __left_() {}
553
- };
554
-
555
- template <class _VoidPtr>
556
- class __tree_node_base
557
- : public __tree_end_node
558
- <
559
- typename pointer_traits<_VoidPtr>::template
560
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
561
- rebind<__tree_node_base<_VoidPtr> >
562
- #else
563
- rebind<__tree_node_base<_VoidPtr> >::other
564
- #endif
565
- >
566
- {
567
- __tree_node_base(const __tree_node_base&);
568
- __tree_node_base& operator=(const __tree_node_base&);
569
- public:
570
- typedef typename pointer_traits<_VoidPtr>::template
571
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
572
- rebind<__tree_node_base>
573
- #else
574
- rebind<__tree_node_base>::other
575
- #endif
576
- pointer;
577
- typedef typename pointer_traits<_VoidPtr>::template
578
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
579
- rebind<const __tree_node_base>
580
- #else
581
- rebind<const __tree_node_base>::other
582
- #endif
583
- const_pointer;
584
- typedef __tree_end_node<pointer> base;
585
-
586
- pointer __right_;
587
- pointer __parent_;
588
- bool __is_black_;
589
-
590
- _LIBCPP_INLINE_VISIBILITY
591
- __tree_node_base() _NOEXCEPT
592
- : __right_(), __parent_(), __is_black_(false) {}
593
- };
594
-
595
- template <class _Tp, class _VoidPtr>
596
- class __tree_node
597
- : public __tree_node_base<_VoidPtr>
598
- {
599
- public:
600
- typedef __tree_node_base<_VoidPtr> base;
601
- typedef _Tp value_type;
602
-
603
- value_type __value_;
604
-
605
- #if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
606
- template <class ..._Args>
607
- _LIBCPP_INLINE_VISIBILITY
608
- explicit __tree_node(_Args&& ...__args)
609
- : __value_(_VSTD::forward<_Args>(__args)...) {}
610
- #else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
611
- _LIBCPP_INLINE_VISIBILITY
612
- explicit __tree_node(const value_type& __v)
613
- : __value_(__v) {}
614
- #endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
615
- };
616
-
617
- template <class _TreeIterator> class _LIBCPP_TYPE_VIS_ONLY __map_iterator;
618
- template <class _TreeIterator> class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator;
619
-
620
- template <class _Tp, class _NodePtr, class _DiffType>
621
- class _LIBCPP_TYPE_VIS_ONLY __tree_iterator
622
- {
623
- typedef _NodePtr __node_pointer;
624
- typedef typename pointer_traits<__node_pointer>::element_type __node;
625
- typedef typename __node::base __node_base;
626
- typedef typename __node_base::pointer __node_base_pointer;
627
-
628
- __node_pointer __ptr_;
629
-
630
- typedef pointer_traits<__node_pointer> __pointer_traits;
631
- public:
632
- typedef bidirectional_iterator_tag iterator_category;
633
- typedef _Tp value_type;
634
- typedef _DiffType difference_type;
635
- typedef value_type& reference;
636
- typedef typename pointer_traits<__node_pointer>::template
637
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
638
- rebind<value_type>
639
- #else
640
- rebind<value_type>::other
641
- #endif
642
- pointer;
643
-
644
- _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT
645
- #if _LIBCPP_STD_VER > 11
646
- : __ptr_(nullptr)
647
- #endif
648
- {}
649
-
650
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;}
651
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const
652
- {return pointer_traits<pointer>::pointer_to(__ptr_->__value_);}
653
-
654
- _LIBCPP_INLINE_VISIBILITY
655
- __tree_iterator& operator++()
656
- {__ptr_ = static_cast<__node_pointer>(__tree_next(static_cast<__node_base_pointer>(__ptr_)));
657
- return *this;}
658
- _LIBCPP_INLINE_VISIBILITY
659
- __tree_iterator operator++(int)
660
- {__tree_iterator __t(*this); ++(*this); return __t;}
661
-
662
- _LIBCPP_INLINE_VISIBILITY
663
- __tree_iterator& operator--()
664
- {__ptr_ = static_cast<__node_pointer>(__tree_prev(static_cast<__node_base_pointer>(__ptr_)));
665
- return *this;}
666
- _LIBCPP_INLINE_VISIBILITY
667
- __tree_iterator operator--(int)
668
- {__tree_iterator __t(*this); --(*this); return __t;}
669
-
670
- friend _LIBCPP_INLINE_VISIBILITY
671
- bool operator==(const __tree_iterator& __x, const __tree_iterator& __y)
672
- {return __x.__ptr_ == __y.__ptr_;}
673
- friend _LIBCPP_INLINE_VISIBILITY
674
- bool operator!=(const __tree_iterator& __x, const __tree_iterator& __y)
675
- {return !(__x == __y);}
676
-
677
- private:
678
- _LIBCPP_INLINE_VISIBILITY
679
- explicit __tree_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
680
- template <class, class, class> friend class __tree;
681
- template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
682
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __map_iterator;
683
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
684
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
685
- template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY set;
686
- template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multiset;
687
- };
688
-
689
- template <class _Tp, class _ConstNodePtr, class _DiffType>
690
- class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator
691
- {
692
- typedef _ConstNodePtr __node_pointer;
693
- typedef typename pointer_traits<__node_pointer>::element_type __node;
694
- typedef typename __node::base __node_base;
695
- typedef typename pointer_traits<__node_pointer>::template
696
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
697
- rebind<__node_base>
698
- #else
699
- rebind<__node_base>::other
700
- #endif
701
- __node_base_pointer;
702
-
703
- __node_pointer __ptr_;
704
-
705
- typedef pointer_traits<__node_pointer> __pointer_traits;
706
- public:
707
- typedef bidirectional_iterator_tag iterator_category;
708
- typedef _Tp value_type;
709
- typedef _DiffType difference_type;
710
- typedef const value_type& reference;
711
- typedef typename pointer_traits<__node_pointer>::template
712
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
713
- rebind<const value_type>
714
- #else
715
- rebind<const value_type>::other
716
- #endif
717
- pointer;
718
-
719
- _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT
720
- #if _LIBCPP_STD_VER > 11
721
- : __ptr_(nullptr)
722
- #endif
723
- {}
724
-
725
- private:
726
- typedef typename remove_const<__node>::type __non_const_node;
727
- typedef typename pointer_traits<__node_pointer>::template
728
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
729
- rebind<__non_const_node>
730
- #else
731
- rebind<__non_const_node>::other
732
- #endif
733
- __non_const_node_pointer;
734
- typedef __tree_iterator<value_type, __non_const_node_pointer, difference_type>
735
- __non_const_iterator;
736
- public:
737
- _LIBCPP_INLINE_VISIBILITY
738
- __tree_const_iterator(__non_const_iterator __p) _NOEXCEPT
739
- : __ptr_(__p.__ptr_) {}
740
-
741
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;}
742
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const
743
- {return pointer_traits<pointer>::pointer_to(__ptr_->__value_);}
744
-
745
- _LIBCPP_INLINE_VISIBILITY
746
- __tree_const_iterator& operator++()
747
- {__ptr_ = static_cast<__node_pointer>(__tree_next(static_cast<__node_base_pointer>(__ptr_)));
748
- return *this;}
749
- _LIBCPP_INLINE_VISIBILITY
750
- __tree_const_iterator operator++(int)
751
- {__tree_const_iterator __t(*this); ++(*this); return __t;}
752
-
753
- _LIBCPP_INLINE_VISIBILITY
754
- __tree_const_iterator& operator--()
755
- {__ptr_ = static_cast<__node_pointer>(__tree_prev(static_cast<__node_base_pointer>(__ptr_)));
756
- return *this;}
757
- _LIBCPP_INLINE_VISIBILITY
758
- __tree_const_iterator operator--(int)
759
- {__tree_const_iterator __t(*this); --(*this); return __t;}
760
-
761
- friend _LIBCPP_INLINE_VISIBILITY
762
- bool operator==(const __tree_const_iterator& __x, const __tree_const_iterator& __y)
763
- {return __x.__ptr_ == __y.__ptr_;}
764
- friend _LIBCPP_INLINE_VISIBILITY
765
- bool operator!=(const __tree_const_iterator& __x, const __tree_const_iterator& __y)
766
- {return !(__x == __y);}
767
-
768
- private:
769
- _LIBCPP_INLINE_VISIBILITY
770
- explicit __tree_const_iterator(__node_pointer __p) _NOEXCEPT
771
- : __ptr_(__p) {}
772
- template <class, class, class> friend class __tree;
773
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
774
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
775
- template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY set;
776
- template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multiset;
777
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator;
778
- };
779
-
780
- template <class _Tp, class _Compare, class _Allocator>
781
- class __tree
782
- {
783
- public:
784
- typedef _Tp value_type;
785
- typedef _Compare value_compare;
786
- typedef _Allocator allocator_type;
787
- typedef allocator_traits<allocator_type> __alloc_traits;
788
- typedef typename __alloc_traits::pointer pointer;
789
- typedef typename __alloc_traits::const_pointer const_pointer;
790
- typedef typename __alloc_traits::size_type size_type;
791
- typedef typename __alloc_traits::difference_type difference_type;
792
-
793
- typedef typename __alloc_traits::void_pointer __void_pointer;
794
-
795
- typedef __tree_node<value_type, __void_pointer> __node;
796
- typedef __tree_node_base<__void_pointer> __node_base;
797
- typedef typename __alloc_traits::template
798
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
799
- rebind_alloc<__node>
800
- #else
801
- rebind_alloc<__node>::other
802
- #endif
803
- __node_allocator;
804
- typedef allocator_traits<__node_allocator> __node_traits;
805
- typedef typename __node_traits::pointer __node_pointer;
806
- typedef typename __node_traits::pointer __node_const_pointer;
807
- typedef typename __node_base::pointer __node_base_pointer;
808
- typedef typename __node_base::pointer __node_base_const_pointer;
809
- private:
810
- typedef typename __node_base::base __end_node_t;
811
- typedef typename pointer_traits<__node_pointer>::template
812
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
813
- rebind<__end_node_t>
814
- #else
815
- rebind<__end_node_t>::other
816
- #endif
817
- __end_node_ptr;
818
- typedef typename pointer_traits<__node_pointer>::template
819
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
820
- rebind<__end_node_t>
821
- #else
822
- rebind<__end_node_t>::other
823
- #endif
824
- __end_node_const_ptr;
825
-
826
- __node_pointer __begin_node_;
827
- __compressed_pair<__end_node_t, __node_allocator> __pair1_;
828
- __compressed_pair<size_type, value_compare> __pair3_;
829
-
830
- public:
831
- _LIBCPP_INLINE_VISIBILITY
832
- __node_pointer __end_node() _NOEXCEPT
833
- {
834
- return static_cast<__node_pointer>
835
- (
836
- pointer_traits<__end_node_ptr>::pointer_to(__pair1_.first())
837
- );
838
- }
839
- _LIBCPP_INLINE_VISIBILITY
840
- __node_const_pointer __end_node() const _NOEXCEPT
841
- {
842
- return static_cast<__node_const_pointer>
843
- (
844
- pointer_traits<__end_node_const_ptr>::pointer_to(const_cast<__end_node_t&>(__pair1_.first()))
845
- );
846
- }
847
- _LIBCPP_INLINE_VISIBILITY
848
- __node_allocator& __node_alloc() _NOEXCEPT {return __pair1_.second();}
849
- private:
850
- _LIBCPP_INLINE_VISIBILITY
851
- const __node_allocator& __node_alloc() const _NOEXCEPT
852
- {return __pair1_.second();}
853
- _LIBCPP_INLINE_VISIBILITY
854
- __node_pointer& __begin_node() _NOEXCEPT {return __begin_node_;}
855
- _LIBCPP_INLINE_VISIBILITY
856
- const __node_pointer& __begin_node() const _NOEXCEPT {return __begin_node_;}
857
- public:
858
- _LIBCPP_INLINE_VISIBILITY
859
- allocator_type __alloc() const _NOEXCEPT
860
- {return allocator_type(__node_alloc());}
861
- private:
862
- _LIBCPP_INLINE_VISIBILITY
863
- size_type& size() _NOEXCEPT {return __pair3_.first();}
864
- public:
865
- _LIBCPP_INLINE_VISIBILITY
866
- const size_type& size() const _NOEXCEPT {return __pair3_.first();}
867
- _LIBCPP_INLINE_VISIBILITY
868
- value_compare& value_comp() _NOEXCEPT {return __pair3_.second();}
869
- _LIBCPP_INLINE_VISIBILITY
870
- const value_compare& value_comp() const _NOEXCEPT
871
- {return __pair3_.second();}
872
- public:
873
- _LIBCPP_INLINE_VISIBILITY
874
- __node_pointer __root() _NOEXCEPT
875
- {return static_cast<__node_pointer> (__end_node()->__left_);}
876
- _LIBCPP_INLINE_VISIBILITY
877
- __node_const_pointer __root() const _NOEXCEPT
878
- {return static_cast<__node_const_pointer>(__end_node()->__left_);}
879
-
880
- typedef __tree_iterator<value_type, __node_pointer, difference_type> iterator;
881
- typedef __tree_const_iterator<value_type, __node_pointer, difference_type> const_iterator;
882
-
883
- explicit __tree(const value_compare& __comp)
884
- _NOEXCEPT_(
885
- is_nothrow_default_constructible<__node_allocator>::value &&
886
- is_nothrow_copy_constructible<value_compare>::value);
887
- explicit __tree(const allocator_type& __a);
888
- __tree(const value_compare& __comp, const allocator_type& __a);
889
- __tree(const __tree& __t);
890
- __tree& operator=(const __tree& __t);
891
- template <class _InputIterator>
892
- void __assign_unique(_InputIterator __first, _InputIterator __last);
893
- template <class _InputIterator>
894
- void __assign_multi(_InputIterator __first, _InputIterator __last);
895
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
896
- __tree(__tree&& __t)
897
- _NOEXCEPT_(
898
- is_nothrow_move_constructible<__node_allocator>::value &&
899
- is_nothrow_move_constructible<value_compare>::value);
900
- __tree(__tree&& __t, const allocator_type& __a);
901
- __tree& operator=(__tree&& __t)
902
- _NOEXCEPT_(
903
- __node_traits::propagate_on_container_move_assignment::value &&
904
- is_nothrow_move_assignable<value_compare>::value &&
905
- is_nothrow_move_assignable<__node_allocator>::value);
906
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
907
-
908
- ~__tree();
909
-
910
- _LIBCPP_INLINE_VISIBILITY
911
- iterator begin() _NOEXCEPT {return iterator(__begin_node());}
912
- _LIBCPP_INLINE_VISIBILITY
913
- const_iterator begin() const _NOEXCEPT {return const_iterator(__begin_node());}
914
- _LIBCPP_INLINE_VISIBILITY
915
- iterator end() _NOEXCEPT {return iterator(__end_node());}
916
- _LIBCPP_INLINE_VISIBILITY
917
- const_iterator end() const _NOEXCEPT {return const_iterator(__end_node());}
918
-
919
- _LIBCPP_INLINE_VISIBILITY
920
- size_type max_size() const _NOEXCEPT
921
- {return __node_traits::max_size(__node_alloc());}
922
-
923
- void clear() _NOEXCEPT;
924
-
925
- void swap(__tree& __t)
926
- _NOEXCEPT_(
927
- __is_nothrow_swappable<value_compare>::value &&
928
- (!__node_traits::propagate_on_container_swap::value ||
929
- __is_nothrow_swappable<__node_allocator>::value));
930
-
931
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
932
- #ifndef _LIBCPP_HAS_NO_VARIADICS
933
- template <class... _Args>
934
- pair<iterator, bool>
935
- __emplace_unique(_Args&&... __args);
936
- template <class... _Args>
937
- iterator
938
- __emplace_multi(_Args&&... __args);
939
-
940
- template <class... _Args>
941
- iterator
942
- __emplace_hint_unique(const_iterator __p, _Args&&... __args);
943
- template <class... _Args>
944
- iterator
945
- __emplace_hint_multi(const_iterator __p, _Args&&... __args);
946
- #endif // _LIBCPP_HAS_NO_VARIADICS
947
-
948
- template <class _Vp>
949
- pair<iterator, bool> __insert_unique(_Vp&& __v);
950
- template <class _Vp>
951
- iterator __insert_unique(const_iterator __p, _Vp&& __v);
952
- template <class _Vp>
953
- iterator __insert_multi(_Vp&& __v);
954
- template <class _Vp>
955
- iterator __insert_multi(const_iterator __p, _Vp&& __v);
956
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
957
-
958
- pair<iterator, bool> __insert_unique(const value_type& __v);
959
- iterator __insert_unique(const_iterator __p, const value_type& __v);
960
- iterator __insert_multi(const value_type& __v);
961
- iterator __insert_multi(const_iterator __p, const value_type& __v);
962
-
963
- pair<iterator, bool> __node_insert_unique(__node_pointer __nd);
964
- iterator __node_insert_unique(const_iterator __p,
965
- __node_pointer __nd);
966
-
967
- iterator __node_insert_multi(__node_pointer __nd);
968
- iterator __node_insert_multi(const_iterator __p, __node_pointer __nd);
969
-
970
- iterator erase(const_iterator __p);
971
- iterator erase(const_iterator __f, const_iterator __l);
972
- template <class _Key>
973
- size_type __erase_unique(const _Key& __k);
974
- template <class _Key>
975
- size_type __erase_multi(const _Key& __k);
976
-
977
- void __insert_node_at(__node_base_pointer __parent,
978
- __node_base_pointer& __child,
979
- __node_base_pointer __new_node);
980
-
981
- template <class _Key>
982
- iterator find(const _Key& __v);
983
- template <class _Key>
984
- const_iterator find(const _Key& __v) const;
985
-
986
- template <class _Key>
987
- size_type __count_unique(const _Key& __k) const;
988
- template <class _Key>
989
- size_type __count_multi(const _Key& __k) const;
990
-
991
- template <class _Key>
992
- _LIBCPP_INLINE_VISIBILITY
993
- iterator lower_bound(const _Key& __v)
994
- {return __lower_bound(__v, __root(), __end_node());}
995
- template <class _Key>
996
- iterator __lower_bound(const _Key& __v,
997
- __node_pointer __root,
998
- __node_pointer __result);
999
- template <class _Key>
1000
- _LIBCPP_INLINE_VISIBILITY
1001
- const_iterator lower_bound(const _Key& __v) const
1002
- {return __lower_bound(__v, __root(), __end_node());}
1003
- template <class _Key>
1004
- const_iterator __lower_bound(const _Key& __v,
1005
- __node_const_pointer __root,
1006
- __node_const_pointer __result) const;
1007
- template <class _Key>
1008
- _LIBCPP_INLINE_VISIBILITY
1009
- iterator upper_bound(const _Key& __v)
1010
- {return __upper_bound(__v, __root(), __end_node());}
1011
- template <class _Key>
1012
- iterator __upper_bound(const _Key& __v,
1013
- __node_pointer __root,
1014
- __node_pointer __result);
1015
- template <class _Key>
1016
- _LIBCPP_INLINE_VISIBILITY
1017
- const_iterator upper_bound(const _Key& __v) const
1018
- {return __upper_bound(__v, __root(), __end_node());}
1019
- template <class _Key>
1020
- const_iterator __upper_bound(const _Key& __v,
1021
- __node_const_pointer __root,
1022
- __node_const_pointer __result) const;
1023
- template <class _Key>
1024
- pair<iterator, iterator>
1025
- __equal_range_unique(const _Key& __k);
1026
- template <class _Key>
1027
- pair<const_iterator, const_iterator>
1028
- __equal_range_unique(const _Key& __k) const;
1029
-
1030
- template <class _Key>
1031
- pair<iterator, iterator>
1032
- __equal_range_multi(const _Key& __k);
1033
- template <class _Key>
1034
- pair<const_iterator, const_iterator>
1035
- __equal_range_multi(const _Key& __k) const;
1036
-
1037
- typedef __tree_node_destructor<__node_allocator> _Dp;
1038
- typedef unique_ptr<__node, _Dp> __node_holder;
1039
-
1040
- __node_holder remove(const_iterator __p) _NOEXCEPT;
1041
- private:
1042
- typename __node_base::pointer&
1043
- __find_leaf_low(typename __node_base::pointer& __parent, const value_type& __v);
1044
- typename __node_base::pointer&
1045
- __find_leaf_high(typename __node_base::pointer& __parent, const value_type& __v);
1046
- typename __node_base::pointer&
1047
- __find_leaf(const_iterator __hint,
1048
- typename __node_base::pointer& __parent, const value_type& __v);
1049
- template <class _Key>
1050
- typename __node_base::pointer&
1051
- __find_equal(typename __node_base::pointer& __parent, const _Key& __v);
1052
- template <class _Key>
1053
- typename __node_base::pointer&
1054
- __find_equal(const_iterator __hint, typename __node_base::pointer& __parent,
1055
- const _Key& __v);
1056
-
1057
- #if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
1058
- template <class ..._Args>
1059
- __node_holder __construct_node(_Args&& ...__args);
1060
- #else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
1061
- __node_holder __construct_node(const value_type& __v);
1062
- #endif
1063
-
1064
- void destroy(__node_pointer __nd) _NOEXCEPT;
1065
-
1066
- _LIBCPP_INLINE_VISIBILITY
1067
- void __copy_assign_alloc(const __tree& __t)
1068
- {__copy_assign_alloc(__t, integral_constant<bool,
1069
- __node_traits::propagate_on_container_copy_assignment::value>());}
1070
-
1071
- _LIBCPP_INLINE_VISIBILITY
1072
- void __copy_assign_alloc(const __tree& __t, true_type)
1073
- {__node_alloc() = __t.__node_alloc();}
1074
- _LIBCPP_INLINE_VISIBILITY
1075
- void __copy_assign_alloc(const __tree& __t, false_type) {}
1076
-
1077
- void __move_assign(__tree& __t, false_type);
1078
- void __move_assign(__tree& __t, true_type)
1079
- _NOEXCEPT_(is_nothrow_move_assignable<value_compare>::value &&
1080
- is_nothrow_move_assignable<__node_allocator>::value);
1081
-
1082
- _LIBCPP_INLINE_VISIBILITY
1083
- void __move_assign_alloc(__tree& __t)
1084
- _NOEXCEPT_(
1085
- !__node_traits::propagate_on_container_move_assignment::value ||
1086
- is_nothrow_move_assignable<__node_allocator>::value)
1087
- {__move_assign_alloc(__t, integral_constant<bool,
1088
- __node_traits::propagate_on_container_move_assignment::value>());}
1089
-
1090
- _LIBCPP_INLINE_VISIBILITY
1091
- void __move_assign_alloc(__tree& __t, true_type)
1092
- _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)
1093
- {__node_alloc() = _VSTD::move(__t.__node_alloc());}
1094
- _LIBCPP_INLINE_VISIBILITY
1095
- void __move_assign_alloc(__tree& __t, false_type) _NOEXCEPT {}
1096
-
1097
- _LIBCPP_INLINE_VISIBILITY
1098
- static void __swap_alloc(__node_allocator& __x, __node_allocator& __y)
1099
- _NOEXCEPT_(
1100
- !__node_traits::propagate_on_container_swap::value ||
1101
- __is_nothrow_swappable<__node_allocator>::value)
1102
- {__swap_alloc(__x, __y, integral_constant<bool,
1103
- __node_traits::propagate_on_container_swap::value>());}
1104
- _LIBCPP_INLINE_VISIBILITY
1105
- static void __swap_alloc(__node_allocator& __x, __node_allocator& __y, true_type)
1106
- _NOEXCEPT_(__is_nothrow_swappable<__node_allocator>::value)
1107
- {
1108
- using _VSTD::swap;
1109
- swap(__x, __y);
1110
- }
1111
- _LIBCPP_INLINE_VISIBILITY
1112
- static void __swap_alloc(__node_allocator& __x, __node_allocator& __y, false_type)
1113
- _NOEXCEPT
1114
- {}
1115
-
1116
- __node_pointer __detach();
1117
- static __node_pointer __detach(__node_pointer);
1118
-
1119
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
1120
- template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
1121
- };
1122
-
1123
- template <class _Tp, class _Compare, class _Allocator>
1124
- __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp)
1125
- _NOEXCEPT_(
1126
- is_nothrow_default_constructible<__node_allocator>::value &&
1127
- is_nothrow_copy_constructible<value_compare>::value)
1128
- : __pair3_(0, __comp)
1129
- {
1130
- __begin_node() = __end_node();
1131
- }
1132
-
1133
- template <class _Tp, class _Compare, class _Allocator>
1134
- __tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a)
1135
- : __pair1_(__node_allocator(__a)),
1136
- __begin_node_(__node_pointer()),
1137
- __pair3_(0)
1138
- {
1139
- __begin_node() = __end_node();
1140
- }
1141
-
1142
- template <class _Tp, class _Compare, class _Allocator>
1143
- __tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp,
1144
- const allocator_type& __a)
1145
- : __pair1_(__node_allocator(__a)),
1146
- __begin_node_(__node_pointer()),
1147
- __pair3_(0, __comp)
1148
- {
1149
- __begin_node() = __end_node();
1150
- }
1151
-
1152
- // Precondition: size() != 0
1153
- template <class _Tp, class _Compare, class _Allocator>
1154
- typename __tree<_Tp, _Compare, _Allocator>::__node_pointer
1155
- __tree<_Tp, _Compare, _Allocator>::__detach()
1156
- {
1157
- __node_pointer __cache = __begin_node();
1158
- __begin_node() = __end_node();
1159
- __end_node()->__left_->__parent_ = nullptr;
1160
- __end_node()->__left_ = nullptr;
1161
- size() = 0;
1162
- // __cache->__left_ == nullptr
1163
- if (__cache->__right_ != nullptr)
1164
- __cache = static_cast<__node_pointer>(__cache->__right_);
1165
- // __cache->__left_ == nullptr
1166
- // __cache->__right_ == nullptr
1167
- return __cache;
1168
- }
1169
-
1170
- // Precondition: __cache != nullptr
1171
- // __cache->left_ == nullptr
1172
- // __cache->right_ == nullptr
1173
- // This is no longer a red-black tree
1174
- template <class _Tp, class _Compare, class _Allocator>
1175
- typename __tree<_Tp, _Compare, _Allocator>::__node_pointer
1176
- __tree<_Tp, _Compare, _Allocator>::__detach(__node_pointer __cache)
1177
- {
1178
- if (__cache->__parent_ == nullptr)
1179
- return nullptr;
1180
- if (__tree_is_left_child(static_cast<__node_base_pointer>(__cache)))
1181
- {
1182
- __cache->__parent_->__left_ = nullptr;
1183
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1184
- if (__cache->__right_ == nullptr)
1185
- return __cache;
1186
- return static_cast<__node_pointer>(__tree_leaf(__cache->__right_));
1187
- }
1188
- // __cache is right child
1189
- __cache->__parent_->__right_ = nullptr;
1190
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1191
- if (__cache->__left_ == nullptr)
1192
- return __cache;
1193
- return static_cast<__node_pointer>(__tree_leaf(__cache->__left_));
1194
- }
1195
-
1196
- template <class _Tp, class _Compare, class _Allocator>
1197
- __tree<_Tp, _Compare, _Allocator>&
1198
- __tree<_Tp, _Compare, _Allocator>::operator=(const __tree& __t)
1199
- {
1200
- if (this != &__t)
1201
- {
1202
- value_comp() = __t.value_comp();
1203
- __copy_assign_alloc(__t);
1204
- __assign_multi(__t.begin(), __t.end());
1205
- }
1206
- return *this;
1207
- }
1208
-
1209
- template <class _Tp, class _Compare, class _Allocator>
1210
- template <class _InputIterator>
1211
- void
1212
- __tree<_Tp, _Compare, _Allocator>::__assign_unique(_InputIterator __first, _InputIterator __last)
1213
- {
1214
- if (size() != 0)
1215
- {
1216
- __node_pointer __cache = __detach();
1217
- #ifndef _LIBCPP_NO_EXCEPTIONS
1218
- try
1219
- {
1220
- #endif // _LIBCPP_NO_EXCEPTIONS
1221
- for (; __cache != nullptr && __first != __last; ++__first)
1222
- {
1223
- __cache->__value_ = *__first;
1224
- __node_pointer __next = __detach(__cache);
1225
- __node_insert_unique(__cache);
1226
- __cache = __next;
1227
- }
1228
- #ifndef _LIBCPP_NO_EXCEPTIONS
1229
- }
1230
- catch (...)
1231
- {
1232
- while (__cache->__parent_ != nullptr)
1233
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1234
- destroy(__cache);
1235
- throw;
1236
- }
1237
- #endif // _LIBCPP_NO_EXCEPTIONS
1238
- if (__cache != nullptr)
1239
- {
1240
- while (__cache->__parent_ != nullptr)
1241
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1242
- destroy(__cache);
1243
- }
1244
- }
1245
- for (; __first != __last; ++__first)
1246
- __insert_unique(*__first);
1247
- }
1248
-
1249
- template <class _Tp, class _Compare, class _Allocator>
1250
- template <class _InputIterator>
1251
- void
1252
- __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last)
1253
- {
1254
- if (size() != 0)
1255
- {
1256
- __node_pointer __cache = __detach();
1257
- #ifndef _LIBCPP_NO_EXCEPTIONS
1258
- try
1259
- {
1260
- #endif // _LIBCPP_NO_EXCEPTIONS
1261
- for (; __cache != nullptr && __first != __last; ++__first)
1262
- {
1263
- __cache->__value_ = *__first;
1264
- __node_pointer __next = __detach(__cache);
1265
- __node_insert_multi(__cache);
1266
- __cache = __next;
1267
- }
1268
- #ifndef _LIBCPP_NO_EXCEPTIONS
1269
- }
1270
- catch (...)
1271
- {
1272
- while (__cache->__parent_ != nullptr)
1273
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1274
- destroy(__cache);
1275
- throw;
1276
- }
1277
- #endif // _LIBCPP_NO_EXCEPTIONS
1278
- if (__cache != nullptr)
1279
- {
1280
- while (__cache->__parent_ != nullptr)
1281
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1282
- destroy(__cache);
1283
- }
1284
- }
1285
- for (; __first != __last; ++__first)
1286
- __insert_multi(*__first);
1287
- }
1288
-
1289
- template <class _Tp, class _Compare, class _Allocator>
1290
- __tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t)
1291
- : __begin_node_(__node_pointer()),
1292
- __pair1_(__node_traits::select_on_container_copy_construction(__t.__node_alloc())),
1293
- __pair3_(0, __t.value_comp())
1294
- {
1295
- __begin_node() = __end_node();
1296
- }
1297
-
1298
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1299
-
1300
- template <class _Tp, class _Compare, class _Allocator>
1301
- __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t)
1302
- _NOEXCEPT_(
1303
- is_nothrow_move_constructible<__node_allocator>::value &&
1304
- is_nothrow_move_constructible<value_compare>::value)
1305
- : __begin_node_(_VSTD::move(__t.__begin_node_)),
1306
- __pair1_(_VSTD::move(__t.__pair1_)),
1307
- __pair3_(_VSTD::move(__t.__pair3_))
1308
- {
1309
- if (size() == 0)
1310
- __begin_node() = __end_node();
1311
- else
1312
- {
1313
- __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node());
1314
- __t.__begin_node() = __t.__end_node();
1315
- __t.__end_node()->__left_ = nullptr;
1316
- __t.size() = 0;
1317
- }
1318
- }
1319
-
1320
- template <class _Tp, class _Compare, class _Allocator>
1321
- __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t, const allocator_type& __a)
1322
- : __pair1_(__node_allocator(__a)),
1323
- __pair3_(0, _VSTD::move(__t.value_comp()))
1324
- {
1325
- if (__a == __t.__alloc())
1326
- {
1327
- if (__t.size() == 0)
1328
- __begin_node() = __end_node();
1329
- else
1330
- {
1331
- __begin_node() = __t.__begin_node();
1332
- __end_node()->__left_ = __t.__end_node()->__left_;
1333
- __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node());
1334
- size() = __t.size();
1335
- __t.__begin_node() = __t.__end_node();
1336
- __t.__end_node()->__left_ = nullptr;
1337
- __t.size() = 0;
1338
- }
1339
- }
1340
- else
1341
- {
1342
- __begin_node() = __end_node();
1343
- }
1344
- }
1345
-
1346
- template <class _Tp, class _Compare, class _Allocator>
1347
- void
1348
- __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, true_type)
1349
- _NOEXCEPT_(is_nothrow_move_assignable<value_compare>::value &&
1350
- is_nothrow_move_assignable<__node_allocator>::value)
1351
- {
1352
- destroy(static_cast<__node_pointer>(__end_node()->__left_));
1353
- __begin_node_ = __t.__begin_node_;
1354
- __pair1_.first() = __t.__pair1_.first();
1355
- __move_assign_alloc(__t);
1356
- __pair3_ = _VSTD::move(__t.__pair3_);
1357
- if (size() == 0)
1358
- __begin_node() = __end_node();
1359
- else
1360
- {
1361
- __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node());
1362
- __t.__begin_node() = __t.__end_node();
1363
- __t.__end_node()->__left_ = nullptr;
1364
- __t.size() = 0;
1365
- }
1366
- }
1367
-
1368
- template <class _Tp, class _Compare, class _Allocator>
1369
- void
1370
- __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type)
1371
- {
1372
- if (__node_alloc() == __t.__node_alloc())
1373
- __move_assign(__t, true_type());
1374
- else
1375
- {
1376
- value_comp() = _VSTD::move(__t.value_comp());
1377
- const_iterator __e = end();
1378
- if (size() != 0)
1379
- {
1380
- __node_pointer __cache = __detach();
1381
- #ifndef _LIBCPP_NO_EXCEPTIONS
1382
- try
1383
- {
1384
- #endif // _LIBCPP_NO_EXCEPTIONS
1385
- while (__cache != nullptr && __t.size() != 0)
1386
- {
1387
- __cache->__value_ = _VSTD::move(__t.remove(__t.begin())->__value_);
1388
- __node_pointer __next = __detach(__cache);
1389
- __node_insert_multi(__cache);
1390
- __cache = __next;
1391
- }
1392
- #ifndef _LIBCPP_NO_EXCEPTIONS
1393
- }
1394
- catch (...)
1395
- {
1396
- while (__cache->__parent_ != nullptr)
1397
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1398
- destroy(__cache);
1399
- throw;
1400
- }
1401
- #endif // _LIBCPP_NO_EXCEPTIONS
1402
- if (__cache != nullptr)
1403
- {
1404
- while (__cache->__parent_ != nullptr)
1405
- __cache = static_cast<__node_pointer>(__cache->__parent_);
1406
- destroy(__cache);
1407
- }
1408
- }
1409
- while (__t.size() != 0)
1410
- __insert_multi(__e, _VSTD::move(__t.remove(__t.begin())->__value_));
1411
- }
1412
- }
1413
-
1414
- template <class _Tp, class _Compare, class _Allocator>
1415
- __tree<_Tp, _Compare, _Allocator>&
1416
- __tree<_Tp, _Compare, _Allocator>::operator=(__tree&& __t)
1417
- _NOEXCEPT_(
1418
- __node_traits::propagate_on_container_move_assignment::value &&
1419
- is_nothrow_move_assignable<value_compare>::value &&
1420
- is_nothrow_move_assignable<__node_allocator>::value)
1421
-
1422
- {
1423
- __move_assign(__t, integral_constant<bool,
1424
- __node_traits::propagate_on_container_move_assignment::value>());
1425
- return *this;
1426
- }
1427
-
1428
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1429
-
1430
- template <class _Tp, class _Compare, class _Allocator>
1431
- __tree<_Tp, _Compare, _Allocator>::~__tree()
1432
- {
1433
- destroy(__root());
1434
- }
1435
-
1436
- template <class _Tp, class _Compare, class _Allocator>
1437
- void
1438
- __tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT
1439
- {
1440
- if (__nd != nullptr)
1441
- {
1442
- destroy(static_cast<__node_pointer>(__nd->__left_));
1443
- destroy(static_cast<__node_pointer>(__nd->__right_));
1444
- __node_allocator& __na = __node_alloc();
1445
- __node_traits::destroy(__na, _VSTD::addressof(__nd->__value_));
1446
- __node_traits::deallocate(__na, __nd, 1);
1447
- }
1448
- }
1449
-
1450
- template <class _Tp, class _Compare, class _Allocator>
1451
- void
1452
- __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t)
1453
- _NOEXCEPT_(
1454
- __is_nothrow_swappable<value_compare>::value &&
1455
- (!__node_traits::propagate_on_container_swap::value ||
1456
- __is_nothrow_swappable<__node_allocator>::value))
1457
- {
1458
- using _VSTD::swap;
1459
- swap(__begin_node_, __t.__begin_node_);
1460
- swap(__pair1_.first(), __t.__pair1_.first());
1461
- __swap_alloc(__node_alloc(), __t.__node_alloc());
1462
- __pair3_.swap(__t.__pair3_);
1463
- if (size() == 0)
1464
- __begin_node() = __end_node();
1465
- else
1466
- __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node());
1467
- if (__t.size() == 0)
1468
- __t.__begin_node() = __t.__end_node();
1469
- else
1470
- __t.__end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__t.__end_node());
1471
- }
1472
-
1473
- template <class _Tp, class _Compare, class _Allocator>
1474
- void
1475
- __tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT
1476
- {
1477
- destroy(__root());
1478
- size() = 0;
1479
- __begin_node() = __end_node();
1480
- __end_node()->__left_ = nullptr;
1481
- }
1482
-
1483
- // Find lower_bound place to insert
1484
- // Set __parent to parent of null leaf
1485
- // Return reference to null leaf
1486
- template <class _Tp, class _Compare, class _Allocator>
1487
- typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer&
1488
- __tree<_Tp, _Compare, _Allocator>::__find_leaf_low(typename __node_base::pointer& __parent,
1489
- const value_type& __v)
1490
- {
1491
- __node_pointer __nd = __root();
1492
- if (__nd != nullptr)
1493
- {
1494
- while (true)
1495
- {
1496
- if (value_comp()(__nd->__value_, __v))
1497
- {
1498
- if (__nd->__right_ != nullptr)
1499
- __nd = static_cast<__node_pointer>(__nd->__right_);
1500
- else
1501
- {
1502
- __parent = static_cast<__node_base_pointer>(__nd);
1503
- return __parent->__right_;
1504
- }
1505
- }
1506
- else
1507
- {
1508
- if (__nd->__left_ != nullptr)
1509
- __nd = static_cast<__node_pointer>(__nd->__left_);
1510
- else
1511
- {
1512
- __parent = static_cast<__node_base_pointer>(__nd);
1513
- return __parent->__left_;
1514
- }
1515
- }
1516
- }
1517
- }
1518
- __parent = static_cast<__node_base_pointer>(__end_node());
1519
- return __parent->__left_;
1520
- }
1521
-
1522
- // Find upper_bound place to insert
1523
- // Set __parent to parent of null leaf
1524
- // Return reference to null leaf
1525
- template <class _Tp, class _Compare, class _Allocator>
1526
- typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer&
1527
- __tree<_Tp, _Compare, _Allocator>::__find_leaf_high(typename __node_base::pointer& __parent,
1528
- const value_type& __v)
1529
- {
1530
- __node_pointer __nd = __root();
1531
- if (__nd != nullptr)
1532
- {
1533
- while (true)
1534
- {
1535
- if (value_comp()(__v, __nd->__value_))
1536
- {
1537
- if (__nd->__left_ != nullptr)
1538
- __nd = static_cast<__node_pointer>(__nd->__left_);
1539
- else
1540
- {
1541
- __parent = static_cast<__node_base_pointer>(__nd);
1542
- return __parent->__left_;
1543
- }
1544
- }
1545
- else
1546
- {
1547
- if (__nd->__right_ != nullptr)
1548
- __nd = static_cast<__node_pointer>(__nd->__right_);
1549
- else
1550
- {
1551
- __parent = static_cast<__node_base_pointer>(__nd);
1552
- return __parent->__right_;
1553
- }
1554
- }
1555
- }
1556
- }
1557
- __parent = static_cast<__node_base_pointer>(__end_node());
1558
- return __parent->__left_;
1559
- }
1560
-
1561
- // Find leaf place to insert closest to __hint
1562
- // First check prior to __hint.
1563
- // Next check after __hint.
1564
- // Next do O(log N) search.
1565
- // Set __parent to parent of null leaf
1566
- // Return reference to null leaf
1567
- template <class _Tp, class _Compare, class _Allocator>
1568
- typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer&
1569
- __tree<_Tp, _Compare, _Allocator>::__find_leaf(const_iterator __hint,
1570
- typename __node_base::pointer& __parent,
1571
- const value_type& __v)
1572
- {
1573
- if (__hint == end() || !value_comp()(*__hint, __v)) // check before
1574
- {
1575
- // __v <= *__hint
1576
- const_iterator __prior = __hint;
1577
- if (__prior == begin() || !value_comp()(__v, *--__prior))
1578
- {
1579
- // *prev(__hint) <= __v <= *__hint
1580
- if (__hint.__ptr_->__left_ == nullptr)
1581
- {
1582
- __parent = static_cast<__node_base_pointer>(__hint.__ptr_);
1583
- return __parent->__left_;
1584
- }
1585
- else
1586
- {
1587
- __parent = static_cast<__node_base_pointer>(__prior.__ptr_);
1588
- return __parent->__right_;
1589
- }
1590
- }
1591
- // __v < *prev(__hint)
1592
- return __find_leaf_high(__parent, __v);
1593
- }
1594
- // else __v > *__hint
1595
- return __find_leaf_low(__parent, __v);
1596
- }
1597
-
1598
- // Find place to insert if __v doesn't exist
1599
- // Set __parent to parent of null leaf
1600
- // Return reference to null leaf
1601
- // If __v exists, set parent to node of __v and return reference to node of __v
1602
- template <class _Tp, class _Compare, class _Allocator>
1603
- template <class _Key>
1604
- typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer&
1605
- __tree<_Tp, _Compare, _Allocator>::__find_equal(typename __node_base::pointer& __parent,
1606
- const _Key& __v)
1607
- {
1608
- __node_pointer __nd = __root();
1609
- if (__nd != nullptr)
1610
- {
1611
- while (true)
1612
- {
1613
- if (value_comp()(__v, __nd->__value_))
1614
- {
1615
- if (__nd->__left_ != nullptr)
1616
- __nd = static_cast<__node_pointer>(__nd->__left_);
1617
- else
1618
- {
1619
- __parent = static_cast<__node_base_pointer>(__nd);
1620
- return __parent->__left_;
1621
- }
1622
- }
1623
- else if (value_comp()(__nd->__value_, __v))
1624
- {
1625
- if (__nd->__right_ != nullptr)
1626
- __nd = static_cast<__node_pointer>(__nd->__right_);
1627
- else
1628
- {
1629
- __parent = static_cast<__node_base_pointer>(__nd);
1630
- return __parent->__right_;
1631
- }
1632
- }
1633
- else
1634
- {
1635
- __parent = static_cast<__node_base_pointer>(__nd);
1636
- return __parent;
1637
- }
1638
- }
1639
- }
1640
- __parent = static_cast<__node_base_pointer>(__end_node());
1641
- return __parent->__left_;
1642
- }
1643
-
1644
- // Find place to insert if __v doesn't exist
1645
- // First check prior to __hint.
1646
- // Next check after __hint.
1647
- // Next do O(log N) search.
1648
- // Set __parent to parent of null leaf
1649
- // Return reference to null leaf
1650
- // If __v exists, set parent to node of __v and return reference to node of __v
1651
- template <class _Tp, class _Compare, class _Allocator>
1652
- template <class _Key>
1653
- typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer&
1654
- __tree<_Tp, _Compare, _Allocator>::__find_equal(const_iterator __hint,
1655
- typename __node_base::pointer& __parent,
1656
- const _Key& __v)
1657
- {
1658
- if (__hint == end() || value_comp()(__v, *__hint)) // check before
1659
- {
1660
- // __v < *__hint
1661
- const_iterator __prior = __hint;
1662
- if (__prior == begin() || value_comp()(*--__prior, __v))
1663
- {
1664
- // *prev(__hint) < __v < *__hint
1665
- if (__hint.__ptr_->__left_ == nullptr)
1666
- {
1667
- __parent = static_cast<__node_base_pointer>(__hint.__ptr_);
1668
- return __parent->__left_;
1669
- }
1670
- else
1671
- {
1672
- __parent = static_cast<__node_base_pointer>(__prior.__ptr_);
1673
- return __parent->__right_;
1674
- }
1675
- }
1676
- // __v <= *prev(__hint)
1677
- return __find_equal(__parent, __v);
1678
- }
1679
- else if (value_comp()(*__hint, __v)) // check after
1680
- {
1681
- // *__hint < __v
1682
- const_iterator __next = _VSTD::next(__hint);
1683
- if (__next == end() || value_comp()(__v, *__next))
1684
- {
1685
- // *__hint < __v < *_VSTD::next(__hint)
1686
- if (__hint.__ptr_->__right_ == nullptr)
1687
- {
1688
- __parent = static_cast<__node_base_pointer>(__hint.__ptr_);
1689
- return __parent->__right_;
1690
- }
1691
- else
1692
- {
1693
- __parent = static_cast<__node_base_pointer>(__next.__ptr_);
1694
- return __parent->__left_;
1695
- }
1696
- }
1697
- // *next(__hint) <= __v
1698
- return __find_equal(__parent, __v);
1699
- }
1700
- // else __v == *__hint
1701
- __parent = static_cast<__node_base_pointer>(__hint.__ptr_);
1702
- return __parent;
1703
- }
1704
-
1705
- template <class _Tp, class _Compare, class _Allocator>
1706
- void
1707
- __tree<_Tp, _Compare, _Allocator>::__insert_node_at(__node_base_pointer __parent,
1708
- __node_base_pointer& __child,
1709
- __node_base_pointer __new_node)
1710
- {
1711
- __new_node->__left_ = nullptr;
1712
- __new_node->__right_ = nullptr;
1713
- __new_node->__parent_ = __parent;
1714
- __child = __new_node;
1715
- if (__begin_node()->__left_ != nullptr)
1716
- __begin_node() = static_cast<__node_pointer>(__begin_node()->__left_);
1717
- __tree_balance_after_insert(__end_node()->__left_, __child);
1718
- ++size();
1719
- }
1720
-
1721
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1722
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1723
-
1724
- template <class _Tp, class _Compare, class _Allocator>
1725
- template <class ..._Args>
1726
- typename __tree<_Tp, _Compare, _Allocator>::__node_holder
1727
- __tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&& ...__args)
1728
- {
1729
- __node_allocator& __na = __node_alloc();
1730
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
1731
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_Args>(__args)...);
1732
- __h.get_deleter().__value_constructed = true;
1733
- return __h;
1734
- }
1735
-
1736
- template <class _Tp, class _Compare, class _Allocator>
1737
- template <class... _Args>
1738
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
1739
- __tree<_Tp, _Compare, _Allocator>::__emplace_unique(_Args&&... __args)
1740
- {
1741
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1742
- __node_base_pointer __parent;
1743
- __node_base_pointer& __child = __find_equal(__parent, __h->__value_);
1744
- __node_pointer __r = static_cast<__node_pointer>(__child);
1745
- bool __inserted = false;
1746
- if (__child == nullptr)
1747
- {
1748
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1749
- __r = __h.release();
1750
- __inserted = true;
1751
- }
1752
- return pair<iterator, bool>(iterator(__r), __inserted);
1753
- }
1754
-
1755
- template <class _Tp, class _Compare, class _Allocator>
1756
- template <class... _Args>
1757
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1758
- __tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique(const_iterator __p, _Args&&... __args)
1759
- {
1760
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1761
- __node_base_pointer __parent;
1762
- __node_base_pointer& __child = __find_equal(__p, __parent, __h->__value_);
1763
- __node_pointer __r = static_cast<__node_pointer>(__child);
1764
- if (__child == nullptr)
1765
- {
1766
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1767
- __r = __h.release();
1768
- }
1769
- return iterator(__r);
1770
- }
1771
-
1772
- template <class _Tp, class _Compare, class _Allocator>
1773
- template <class... _Args>
1774
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1775
- __tree<_Tp, _Compare, _Allocator>::__emplace_multi(_Args&&... __args)
1776
- {
1777
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1778
- __node_base_pointer __parent;
1779
- __node_base_pointer& __child = __find_leaf_high(__parent, __h->__value_);
1780
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1781
- return iterator(static_cast<__node_pointer>(__h.release()));
1782
- }
1783
-
1784
- template <class _Tp, class _Compare, class _Allocator>
1785
- template <class... _Args>
1786
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1787
- __tree<_Tp, _Compare, _Allocator>::__emplace_hint_multi(const_iterator __p,
1788
- _Args&&... __args)
1789
- {
1790
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1791
- __node_base_pointer __parent;
1792
- __node_base_pointer& __child = __find_leaf(__p, __parent, __h->__value_);
1793
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1794
- return iterator(static_cast<__node_pointer>(__h.release()));
1795
- }
1796
-
1797
- #endif // _LIBCPP_HAS_NO_VARIADICS
1798
-
1799
- template <class _Tp, class _Compare, class _Allocator>
1800
- template <class _Vp>
1801
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
1802
- __tree<_Tp, _Compare, _Allocator>::__insert_unique(_Vp&& __v)
1803
- {
1804
- __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v));
1805
- pair<iterator, bool> __r = __node_insert_unique(__h.get());
1806
- if (__r.second)
1807
- __h.release();
1808
- return __r;
1809
- }
1810
-
1811
- template <class _Tp, class _Compare, class _Allocator>
1812
- template <class _Vp>
1813
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1814
- __tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, _Vp&& __v)
1815
- {
1816
- __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v));
1817
- iterator __r = __node_insert_unique(__p, __h.get());
1818
- if (__r.__ptr_ == __h.get())
1819
- __h.release();
1820
- return __r;
1821
- }
1822
-
1823
- template <class _Tp, class _Compare, class _Allocator>
1824
- template <class _Vp>
1825
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1826
- __tree<_Tp, _Compare, _Allocator>::__insert_multi(_Vp&& __v)
1827
- {
1828
- __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v));
1829
- __node_base_pointer __parent;
1830
- __node_base_pointer& __child = __find_leaf_high(__parent, __h->__value_);
1831
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1832
- return iterator(__h.release());
1833
- }
1834
-
1835
- template <class _Tp, class _Compare, class _Allocator>
1836
- template <class _Vp>
1837
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1838
- __tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, _Vp&& __v)
1839
- {
1840
- __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v));
1841
- __node_base_pointer __parent;
1842
- __node_base_pointer& __child = __find_leaf(__p, __parent, __h->__value_);
1843
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1844
- return iterator(__h.release());
1845
- }
1846
-
1847
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1848
-
1849
- template <class _Tp, class _Compare, class _Allocator>
1850
- typename __tree<_Tp, _Compare, _Allocator>::__node_holder
1851
- __tree<_Tp, _Compare, _Allocator>::__construct_node(const value_type& __v)
1852
- {
1853
- __node_allocator& __na = __node_alloc();
1854
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
1855
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v);
1856
- __h.get_deleter().__value_constructed = true;
1857
- return _VSTD::move(__h); // explicitly moved for C++03
1858
- }
1859
-
1860
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1861
-
1862
- template <class _Tp, class _Compare, class _Allocator>
1863
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
1864
- __tree<_Tp, _Compare, _Allocator>::__insert_unique(const value_type& __v)
1865
- {
1866
- __node_base_pointer __parent;
1867
- __node_base_pointer& __child = __find_equal(__parent, __v);
1868
- __node_pointer __r = static_cast<__node_pointer>(__child);
1869
- bool __inserted = false;
1870
- if (__child == nullptr)
1871
- {
1872
- __node_holder __h = __construct_node(__v);
1873
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1874
- __r = __h.release();
1875
- __inserted = true;
1876
- }
1877
- return pair<iterator, bool>(iterator(__r), __inserted);
1878
- }
1879
-
1880
- template <class _Tp, class _Compare, class _Allocator>
1881
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1882
- __tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, const value_type& __v)
1883
- {
1884
- __node_base_pointer __parent;
1885
- __node_base_pointer& __child = __find_equal(__p, __parent, __v);
1886
- __node_pointer __r = static_cast<__node_pointer>(__child);
1887
- if (__child == nullptr)
1888
- {
1889
- __node_holder __h = __construct_node(__v);
1890
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1891
- __r = __h.release();
1892
- }
1893
- return iterator(__r);
1894
- }
1895
-
1896
- template <class _Tp, class _Compare, class _Allocator>
1897
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1898
- __tree<_Tp, _Compare, _Allocator>::__insert_multi(const value_type& __v)
1899
- {
1900
- __node_base_pointer __parent;
1901
- __node_base_pointer& __child = __find_leaf_high(__parent, __v);
1902
- __node_holder __h = __construct_node(__v);
1903
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1904
- return iterator(__h.release());
1905
- }
1906
-
1907
- template <class _Tp, class _Compare, class _Allocator>
1908
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1909
- __tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, const value_type& __v)
1910
- {
1911
- __node_base_pointer __parent;
1912
- __node_base_pointer& __child = __find_leaf(__p, __parent, __v);
1913
- __node_holder __h = __construct_node(__v);
1914
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));
1915
- return iterator(__h.release());
1916
- }
1917
-
1918
- template <class _Tp, class _Compare, class _Allocator>
1919
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
1920
- __tree<_Tp, _Compare, _Allocator>::__node_insert_unique(__node_pointer __nd)
1921
- {
1922
- __node_base_pointer __parent;
1923
- __node_base_pointer& __child = __find_equal(__parent, __nd->__value_);
1924
- __node_pointer __r = static_cast<__node_pointer>(__child);
1925
- bool __inserted = false;
1926
- if (__child == nullptr)
1927
- {
1928
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));
1929
- __r = __nd;
1930
- __inserted = true;
1931
- }
1932
- return pair<iterator, bool>(iterator(__r), __inserted);
1933
- }
1934
-
1935
- template <class _Tp, class _Compare, class _Allocator>
1936
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1937
- __tree<_Tp, _Compare, _Allocator>::__node_insert_unique(const_iterator __p,
1938
- __node_pointer __nd)
1939
- {
1940
- __node_base_pointer __parent;
1941
- __node_base_pointer& __child = __find_equal(__p, __parent, __nd->__value_);
1942
- __node_pointer __r = static_cast<__node_pointer>(__child);
1943
- if (__child == nullptr)
1944
- {
1945
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));
1946
- __r = __nd;
1947
- }
1948
- return iterator(__r);
1949
- }
1950
-
1951
- template <class _Tp, class _Compare, class _Allocator>
1952
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1953
- __tree<_Tp, _Compare, _Allocator>::__node_insert_multi(__node_pointer __nd)
1954
- {
1955
- __node_base_pointer __parent;
1956
- __node_base_pointer& __child = __find_leaf_high(__parent, __nd->__value_);
1957
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));
1958
- return iterator(__nd);
1959
- }
1960
-
1961
- template <class _Tp, class _Compare, class _Allocator>
1962
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1963
- __tree<_Tp, _Compare, _Allocator>::__node_insert_multi(const_iterator __p,
1964
- __node_pointer __nd)
1965
- {
1966
- __node_base_pointer __parent;
1967
- __node_base_pointer& __child = __find_leaf(__p, __parent, __nd->__value_);
1968
- __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));
1969
- return iterator(__nd);
1970
- }
1971
-
1972
- template <class _Tp, class _Compare, class _Allocator>
1973
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1974
- __tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p)
1975
- {
1976
- __node_pointer __np = __p.__ptr_;
1977
- iterator __r(__np);
1978
- ++__r;
1979
- if (__begin_node() == __np)
1980
- __begin_node() = __r.__ptr_;
1981
- --size();
1982
- __node_allocator& __na = __node_alloc();
1983
- __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
1984
- __tree_remove(__end_node()->__left_,
1985
- static_cast<__node_base_pointer>(__np));
1986
- __node_traits::deallocate(__na, __np, 1);
1987
- return __r;
1988
- }
1989
-
1990
- template <class _Tp, class _Compare, class _Allocator>
1991
- typename __tree<_Tp, _Compare, _Allocator>::iterator
1992
- __tree<_Tp, _Compare, _Allocator>::erase(const_iterator __f, const_iterator __l)
1993
- {
1994
- while (__f != __l)
1995
- __f = erase(__f);
1996
- return iterator(__l.__ptr_);
1997
- }
1998
-
1999
- template <class _Tp, class _Compare, class _Allocator>
2000
- template <class _Key>
2001
- typename __tree<_Tp, _Compare, _Allocator>::size_type
2002
- __tree<_Tp, _Compare, _Allocator>::__erase_unique(const _Key& __k)
2003
- {
2004
- iterator __i = find(__k);
2005
- if (__i == end())
2006
- return 0;
2007
- erase(__i);
2008
- return 1;
2009
- }
2010
-
2011
- template <class _Tp, class _Compare, class _Allocator>
2012
- template <class _Key>
2013
- typename __tree<_Tp, _Compare, _Allocator>::size_type
2014
- __tree<_Tp, _Compare, _Allocator>::__erase_multi(const _Key& __k)
2015
- {
2016
- pair<iterator, iterator> __p = __equal_range_multi(__k);
2017
- size_type __r = 0;
2018
- for (; __p.first != __p.second; ++__r)
2019
- __p.first = erase(__p.first);
2020
- return __r;
2021
- }
2022
-
2023
- template <class _Tp, class _Compare, class _Allocator>
2024
- template <class _Key>
2025
- typename __tree<_Tp, _Compare, _Allocator>::iterator
2026
- __tree<_Tp, _Compare, _Allocator>::find(const _Key& __v)
2027
- {
2028
- iterator __p = __lower_bound(__v, __root(), __end_node());
2029
- if (__p != end() && !value_comp()(__v, *__p))
2030
- return __p;
2031
- return end();
2032
- }
2033
-
2034
- template <class _Tp, class _Compare, class _Allocator>
2035
- template <class _Key>
2036
- typename __tree<_Tp, _Compare, _Allocator>::const_iterator
2037
- __tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) const
2038
- {
2039
- const_iterator __p = __lower_bound(__v, __root(), __end_node());
2040
- if (__p != end() && !value_comp()(__v, *__p))
2041
- return __p;
2042
- return end();
2043
- }
2044
-
2045
- template <class _Tp, class _Compare, class _Allocator>
2046
- template <class _Key>
2047
- typename __tree<_Tp, _Compare, _Allocator>::size_type
2048
- __tree<_Tp, _Compare, _Allocator>::__count_unique(const _Key& __k) const
2049
- {
2050
- __node_const_pointer __result = __end_node();
2051
- __node_const_pointer __rt = __root();
2052
- while (__rt != nullptr)
2053
- {
2054
- if (value_comp()(__k, __rt->__value_))
2055
- {
2056
- __result = __rt;
2057
- __rt = static_cast<__node_const_pointer>(__rt->__left_);
2058
- }
2059
- else if (value_comp()(__rt->__value_, __k))
2060
- __rt = static_cast<__node_const_pointer>(__rt->__right_);
2061
- else
2062
- return 1;
2063
- }
2064
- return 0;
2065
- }
2066
-
2067
- template <class _Tp, class _Compare, class _Allocator>
2068
- template <class _Key>
2069
- typename __tree<_Tp, _Compare, _Allocator>::size_type
2070
- __tree<_Tp, _Compare, _Allocator>::__count_multi(const _Key& __k) const
2071
- {
2072
- typedef pair<const_iterator, const_iterator> _Pp;
2073
- __node_const_pointer __result = __end_node();
2074
- __node_const_pointer __rt = __root();
2075
- while (__rt != nullptr)
2076
- {
2077
- if (value_comp()(__k, __rt->__value_))
2078
- {
2079
- __result = __rt;
2080
- __rt = static_cast<__node_const_pointer>(__rt->__left_);
2081
- }
2082
- else if (value_comp()(__rt->__value_, __k))
2083
- __rt = static_cast<__node_const_pointer>(__rt->__right_);
2084
- else
2085
- return _VSTD::distance(
2086
- __lower_bound(__k, static_cast<__node_const_pointer>(__rt->__left_), __rt),
2087
- __upper_bound(__k, static_cast<__node_const_pointer>(__rt->__right_), __result)
2088
- );
2089
- }
2090
- return 0;
2091
- }
2092
-
2093
- template <class _Tp, class _Compare, class _Allocator>
2094
- template <class _Key>
2095
- typename __tree<_Tp, _Compare, _Allocator>::iterator
2096
- __tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v,
2097
- __node_pointer __root,
2098
- __node_pointer __result)
2099
- {
2100
- while (__root != nullptr)
2101
- {
2102
- if (!value_comp()(__root->__value_, __v))
2103
- {
2104
- __result = __root;
2105
- __root = static_cast<__node_pointer>(__root->__left_);
2106
- }
2107
- else
2108
- __root = static_cast<__node_pointer>(__root->__right_);
2109
- }
2110
- return iterator(__result);
2111
- }
2112
-
2113
- template <class _Tp, class _Compare, class _Allocator>
2114
- template <class _Key>
2115
- typename __tree<_Tp, _Compare, _Allocator>::const_iterator
2116
- __tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v,
2117
- __node_const_pointer __root,
2118
- __node_const_pointer __result) const
2119
- {
2120
- while (__root != nullptr)
2121
- {
2122
- if (!value_comp()(__root->__value_, __v))
2123
- {
2124
- __result = __root;
2125
- __root = static_cast<__node_const_pointer>(__root->__left_);
2126
- }
2127
- else
2128
- __root = static_cast<__node_const_pointer>(__root->__right_);
2129
- }
2130
- return const_iterator(__result);
2131
- }
2132
-
2133
- template <class _Tp, class _Compare, class _Allocator>
2134
- template <class _Key>
2135
- typename __tree<_Tp, _Compare, _Allocator>::iterator
2136
- __tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v,
2137
- __node_pointer __root,
2138
- __node_pointer __result)
2139
- {
2140
- while (__root != nullptr)
2141
- {
2142
- if (value_comp()(__v, __root->__value_))
2143
- {
2144
- __result = __root;
2145
- __root = static_cast<__node_pointer>(__root->__left_);
2146
- }
2147
- else
2148
- __root = static_cast<__node_pointer>(__root->__right_);
2149
- }
2150
- return iterator(__result);
2151
- }
2152
-
2153
- template <class _Tp, class _Compare, class _Allocator>
2154
- template <class _Key>
2155
- typename __tree<_Tp, _Compare, _Allocator>::const_iterator
2156
- __tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v,
2157
- __node_const_pointer __root,
2158
- __node_const_pointer __result) const
2159
- {
2160
- while (__root != nullptr)
2161
- {
2162
- if (value_comp()(__v, __root->__value_))
2163
- {
2164
- __result = __root;
2165
- __root = static_cast<__node_const_pointer>(__root->__left_);
2166
- }
2167
- else
2168
- __root = static_cast<__node_const_pointer>(__root->__right_);
2169
- }
2170
- return const_iterator(__result);
2171
- }
2172
-
2173
- template <class _Tp, class _Compare, class _Allocator>
2174
- template <class _Key>
2175
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator,
2176
- typename __tree<_Tp, _Compare, _Allocator>::iterator>
2177
- __tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k)
2178
- {
2179
- typedef pair<iterator, iterator> _Pp;
2180
- __node_pointer __result = __end_node();
2181
- __node_pointer __rt = __root();
2182
- while (__rt != nullptr)
2183
- {
2184
- if (value_comp()(__k, __rt->__value_))
2185
- {
2186
- __result = __rt;
2187
- __rt = static_cast<__node_pointer>(__rt->__left_);
2188
- }
2189
- else if (value_comp()(__rt->__value_, __k))
2190
- __rt = static_cast<__node_pointer>(__rt->__right_);
2191
- else
2192
- return _Pp(iterator(__rt),
2193
- iterator(
2194
- __rt->__right_ != nullptr ?
2195
- static_cast<__node_pointer>(__tree_min(__rt->__right_))
2196
- : __result));
2197
- }
2198
- return _Pp(iterator(__result), iterator(__result));
2199
- }
2200
-
2201
- template <class _Tp, class _Compare, class _Allocator>
2202
- template <class _Key>
2203
- pair<typename __tree<_Tp, _Compare, _Allocator>::const_iterator,
2204
- typename __tree<_Tp, _Compare, _Allocator>::const_iterator>
2205
- __tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) const
2206
- {
2207
- typedef pair<const_iterator, const_iterator> _Pp;
2208
- __node_const_pointer __result = __end_node();
2209
- __node_const_pointer __rt = __root();
2210
- while (__rt != nullptr)
2211
- {
2212
- if (value_comp()(__k, __rt->__value_))
2213
- {
2214
- __result = __rt;
2215
- __rt = static_cast<__node_const_pointer>(__rt->__left_);
2216
- }
2217
- else if (value_comp()(__rt->__value_, __k))
2218
- __rt = static_cast<__node_const_pointer>(__rt->__right_);
2219
- else
2220
- return _Pp(const_iterator(__rt),
2221
- const_iterator(
2222
- __rt->__right_ != nullptr ?
2223
- static_cast<__node_const_pointer>(__tree_min(__rt->__right_))
2224
- : __result));
2225
- }
2226
- return _Pp(const_iterator(__result), const_iterator(__result));
2227
- }
2228
-
2229
- template <class _Tp, class _Compare, class _Allocator>
2230
- template <class _Key>
2231
- pair<typename __tree<_Tp, _Compare, _Allocator>::iterator,
2232
- typename __tree<_Tp, _Compare, _Allocator>::iterator>
2233
- __tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k)
2234
- {
2235
- typedef pair<iterator, iterator> _Pp;
2236
- __node_pointer __result = __end_node();
2237
- __node_pointer __rt = __root();
2238
- while (__rt != nullptr)
2239
- {
2240
- if (value_comp()(__k, __rt->__value_))
2241
- {
2242
- __result = __rt;
2243
- __rt = static_cast<__node_pointer>(__rt->__left_);
2244
- }
2245
- else if (value_comp()(__rt->__value_, __k))
2246
- __rt = static_cast<__node_pointer>(__rt->__right_);
2247
- else
2248
- return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), __rt),
2249
- __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result));
2250
- }
2251
- return _Pp(iterator(__result), iterator(__result));
2252
- }
2253
-
2254
- template <class _Tp, class _Compare, class _Allocator>
2255
- template <class _Key>
2256
- pair<typename __tree<_Tp, _Compare, _Allocator>::const_iterator,
2257
- typename __tree<_Tp, _Compare, _Allocator>::const_iterator>
2258
- __tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) const
2259
- {
2260
- typedef pair<const_iterator, const_iterator> _Pp;
2261
- __node_const_pointer __result = __end_node();
2262
- __node_const_pointer __rt = __root();
2263
- while (__rt != nullptr)
2264
- {
2265
- if (value_comp()(__k, __rt->__value_))
2266
- {
2267
- __result = __rt;
2268
- __rt = static_cast<__node_const_pointer>(__rt->__left_);
2269
- }
2270
- else if (value_comp()(__rt->__value_, __k))
2271
- __rt = static_cast<__node_const_pointer>(__rt->__right_);
2272
- else
2273
- return _Pp(__lower_bound(__k, static_cast<__node_const_pointer>(__rt->__left_), __rt),
2274
- __upper_bound(__k, static_cast<__node_const_pointer>(__rt->__right_), __result));
2275
- }
2276
- return _Pp(const_iterator(__result), const_iterator(__result));
2277
- }
2278
-
2279
- template <class _Tp, class _Compare, class _Allocator>
2280
- typename __tree<_Tp, _Compare, _Allocator>::__node_holder
2281
- __tree<_Tp, _Compare, _Allocator>::remove(const_iterator __p) _NOEXCEPT
2282
- {
2283
- __node_pointer __np = __p.__ptr_;
2284
- if (__begin_node() == __np)
2285
- {
2286
- if (__np->__right_ != nullptr)
2287
- __begin_node() = static_cast<__node_pointer>(__np->__right_);
2288
- else
2289
- __begin_node() = static_cast<__node_pointer>(__np->__parent_);
2290
- }
2291
- --size();
2292
- __tree_remove(__end_node()->__left_,
2293
- static_cast<__node_base_pointer>(__np));
2294
- return __node_holder(__np, _Dp(__node_alloc()));
2295
- }
2296
-
2297
- template <class _Tp, class _Compare, class _Allocator>
2298
- inline _LIBCPP_INLINE_VISIBILITY
2299
- void
2300
- swap(__tree<_Tp, _Compare, _Allocator>& __x,
2301
- __tree<_Tp, _Compare, _Allocator>& __y)
2302
- _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
2303
- {
2304
- __x.swap(__y);
2305
- }
2306
-
2307
- _LIBCPP_END_NAMESPACE_STD
2308
-
2309
- #endif // _LIBCPP___TREE