webruby 0.2.7 → 0.9.1

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