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,2873 +0,0 @@
1
- // -*- C++ -*-
2
- //===---------------------------- deque -----------------------------------===//
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_DEQUE
12
- #define _LIBCPP_DEQUE
13
-
14
- /*
15
- deque synopsis
16
-
17
- namespace std
18
- {
19
-
20
- template <class T, class Allocator = allocator<T> >
21
- class deque
22
- {
23
- public:
24
- // types:
25
- typedef T value_type;
26
- typedef Allocator allocator_type;
27
-
28
- typedef typename allocator_type::reference reference;
29
- typedef typename allocator_type::const_reference const_reference;
30
- typedef implementation-defined iterator;
31
- typedef implementation-defined const_iterator;
32
- typedef typename allocator_type::size_type size_type;
33
- typedef typename allocator_type::difference_type difference_type;
34
-
35
- typedef typename allocator_type::pointer pointer;
36
- typedef typename allocator_type::const_pointer const_pointer;
37
- typedef std::reverse_iterator<iterator> reverse_iterator;
38
- typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
39
-
40
- // construct/copy/destroy:
41
- deque() noexcept(is_nothrow_default_constructible<allocator_type>::value);
42
- explicit deque(const allocator_type& a);
43
- explicit deque(size_type n);
44
- explicit deque(size_type n, const allocator_type& a); // C++14
45
- deque(size_type n, const value_type& v);
46
- deque(size_type n, const value_type& v, const allocator_type& a);
47
- template <class InputIterator>
48
- deque(InputIterator f, InputIterator l);
49
- template <class InputIterator>
50
- deque(InputIterator f, InputIterator l, const allocator_type& a);
51
- deque(const deque& c);
52
- deque(deque&& c)
53
- noexcept(is_nothrow_move_constructible<allocator_type>::value);
54
- deque(initializer_list<value_type> il, const Allocator& a = allocator_type());
55
- deque(const deque& c, const allocator_type& a);
56
- deque(deque&& c, const allocator_type& a);
57
- ~deque();
58
-
59
- deque& operator=(const deque& c);
60
- deque& operator=(deque&& c)
61
- noexcept(
62
- allocator_type::propagate_on_container_move_assignment::value &&
63
- is_nothrow_move_assignable<allocator_type>::value);
64
- deque& operator=(initializer_list<value_type> il);
65
-
66
- template <class InputIterator>
67
- void assign(InputIterator f, InputIterator l);
68
- void assign(size_type n, const value_type& v);
69
- void assign(initializer_list<value_type> il);
70
-
71
- allocator_type get_allocator() const noexcept;
72
-
73
- // iterators:
74
-
75
- iterator begin() noexcept;
76
- const_iterator begin() const noexcept;
77
- iterator end() noexcept;
78
- const_iterator end() const noexcept;
79
-
80
- reverse_iterator rbegin() noexcept;
81
- const_reverse_iterator rbegin() const noexcept;
82
- reverse_iterator rend() noexcept;
83
- const_reverse_iterator rend() const noexcept;
84
-
85
- const_iterator cbegin() const noexcept;
86
- const_iterator cend() const noexcept;
87
- const_reverse_iterator crbegin() const noexcept;
88
- const_reverse_iterator crend() const noexcept;
89
-
90
- // capacity:
91
- size_type size() const noexcept;
92
- size_type max_size() const noexcept;
93
- void resize(size_type n);
94
- void resize(size_type n, const value_type& v);
95
- void shrink_to_fit();
96
- bool empty() const noexcept;
97
-
98
- // element access:
99
- reference operator[](size_type i);
100
- const_reference operator[](size_type i) const;
101
- reference at(size_type i);
102
- const_reference at(size_type i) const;
103
- reference front();
104
- const_reference front() const;
105
- reference back();
106
- const_reference back() const;
107
-
108
- // modifiers:
109
- void push_front(const value_type& v);
110
- void push_front(value_type&& v);
111
- void push_back(const value_type& v);
112
- void push_back(value_type&& v);
113
- template <class... Args> void emplace_front(Args&&... args);
114
- template <class... Args> void emplace_back(Args&&... args);
115
- template <class... Args> iterator emplace(const_iterator p, Args&&... args);
116
- iterator insert(const_iterator p, const value_type& v);
117
- iterator insert(const_iterator p, value_type&& v);
118
- iterator insert(const_iterator p, size_type n, const value_type& v);
119
- template <class InputIterator>
120
- iterator insert (const_iterator p, InputIterator f, InputIterator l);
121
- iterator insert(const_iterator p, initializer_list<value_type> il);
122
- void pop_front();
123
- void pop_back();
124
- iterator erase(const_iterator p);
125
- iterator erase(const_iterator f, const_iterator l);
126
- void swap(deque& c)
127
- noexcept(!allocator_type::propagate_on_container_swap::value ||
128
- __is_nothrow_swappable<allocator_type>::value);
129
- void clear() noexcept;
130
- };
131
-
132
- template <class T, class Allocator>
133
- bool operator==(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
134
- template <class T, class Allocator>
135
- bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
136
- template <class T, class Allocator>
137
- bool operator!=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
138
- template <class T, class Allocator>
139
- bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
140
- template <class T, class Allocator>
141
- bool operator>=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
142
- template <class T, class Allocator>
143
- bool operator<=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
144
-
145
- // specialized algorithms:
146
- template <class T, class Allocator>
147
- void swap(deque<T,Allocator>& x, deque<T,Allocator>& y)
148
- noexcept(noexcept(x.swap(y)));
149
-
150
- } // std
151
-
152
- */
153
-
154
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
155
- #pragma GCC system_header
156
- #endif
157
-
158
- #include <__config>
159
- #include <__split_buffer>
160
- #include <type_traits>
161
- #include <initializer_list>
162
- #include <iterator>
163
- #include <algorithm>
164
- #include <stdexcept>
165
-
166
- #include <__undef_min_max>
167
-
168
- _LIBCPP_BEGIN_NAMESPACE_STD
169
-
170
- template <class _Tp, class _Allocator> class __deque_base;
171
-
172
- template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
173
- class _DiffType, _DiffType _BlockSize>
174
- class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
175
-
176
- template <class _RAIter,
177
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
178
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
179
- copy(_RAIter __f,
180
- _RAIter __l,
181
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
182
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
183
-
184
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
185
- class _OutputIterator>
186
- _OutputIterator
187
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
188
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
189
- _OutputIterator __r);
190
-
191
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
192
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
193
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
194
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
195
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
196
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
197
-
198
- template <class _RAIter,
199
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
200
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
201
- copy_backward(_RAIter __f,
202
- _RAIter __l,
203
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
204
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
205
-
206
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
207
- class _OutputIterator>
208
- _OutputIterator
209
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
210
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
211
- _OutputIterator __r);
212
-
213
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
214
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
215
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
216
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
217
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
218
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
219
-
220
- template <class _RAIter,
221
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
222
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
223
- move(_RAIter __f,
224
- _RAIter __l,
225
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
226
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
227
-
228
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
229
- class _OutputIterator>
230
- _OutputIterator
231
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
232
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
233
- _OutputIterator __r);
234
-
235
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
236
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
237
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
238
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
239
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
240
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
241
-
242
- template <class _RAIter,
243
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
244
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
245
- move_backward(_RAIter __f,
246
- _RAIter __l,
247
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
248
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
249
-
250
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
251
- class _OutputIterator>
252
- _OutputIterator
253
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
254
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
255
- _OutputIterator __r);
256
-
257
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
258
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
259
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
260
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
261
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
262
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
263
-
264
- template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
265
- class _DiffType, _DiffType _BlockSize>
266
- class _LIBCPP_TYPE_VIS_ONLY __deque_iterator
267
- {
268
- typedef _MapPointer __map_iterator;
269
- public:
270
- typedef _Pointer pointer;
271
- typedef _DiffType difference_type;
272
- private:
273
- __map_iterator __m_iter_;
274
- pointer __ptr_;
275
-
276
- static const difference_type __block_size = _BlockSize;
277
- public:
278
- typedef _ValueType value_type;
279
- typedef random_access_iterator_tag iterator_category;
280
- typedef _Reference reference;
281
-
282
- _LIBCPP_INLINE_VISIBILITY __deque_iterator() _NOEXCEPT
283
- #if _LIBCPP_STD_VER > 11
284
- : __m_iter_(nullptr), __ptr_(nullptr)
285
- #endif
286
- {}
287
-
288
- template <class _Pp, class _Rp, class _MP>
289
- _LIBCPP_INLINE_VISIBILITY
290
- __deque_iterator(const __deque_iterator<value_type, _Pp, _Rp, _MP, difference_type, __block_size>& __it,
291
- typename enable_if<is_convertible<_Pp, pointer>::value>::type* = 0) _NOEXCEPT
292
- : __m_iter_(__it.__m_iter_), __ptr_(__it.__ptr_) {}
293
-
294
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *__ptr_;}
295
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return __ptr_;}
296
-
297
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator++()
298
- {
299
- if (++__ptr_ - *__m_iter_ == __block_size)
300
- {
301
- ++__m_iter_;
302
- __ptr_ = *__m_iter_;
303
- }
304
- return *this;
305
- }
306
-
307
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator++(int)
308
- {
309
- __deque_iterator __tmp = *this;
310
- ++(*this);
311
- return __tmp;
312
- }
313
-
314
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator--()
315
- {
316
- if (__ptr_ == *__m_iter_)
317
- {
318
- --__m_iter_;
319
- __ptr_ = *__m_iter_ + __block_size;
320
- }
321
- --__ptr_;
322
- return *this;
323
- }
324
-
325
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator--(int)
326
- {
327
- __deque_iterator __tmp = *this;
328
- --(*this);
329
- return __tmp;
330
- }
331
-
332
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator+=(difference_type __n)
333
- {
334
- if (__n != 0)
335
- {
336
- __n += __ptr_ - *__m_iter_;
337
- if (__n > 0)
338
- {
339
- __m_iter_ += __n / __block_size;
340
- __ptr_ = *__m_iter_ + __n % __block_size;
341
- }
342
- else // (__n < 0)
343
- {
344
- difference_type __z = __block_size - 1 - __n;
345
- __m_iter_ -= __z / __block_size;
346
- __ptr_ = *__m_iter_ + (__block_size - 1 - __z % __block_size);
347
- }
348
- }
349
- return *this;
350
- }
351
-
352
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator-=(difference_type __n)
353
- {
354
- return *this += -__n;
355
- }
356
-
357
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator+(difference_type __n) const
358
- {
359
- __deque_iterator __t(*this);
360
- __t += __n;
361
- return __t;
362
- }
363
-
364
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator-(difference_type __n) const
365
- {
366
- __deque_iterator __t(*this);
367
- __t -= __n;
368
- return __t;
369
- }
370
-
371
- _LIBCPP_INLINE_VISIBILITY
372
- friend __deque_iterator operator+(difference_type __n, const __deque_iterator& __it)
373
- {return __it + __n;}
374
-
375
- _LIBCPP_INLINE_VISIBILITY
376
- friend difference_type operator-(const __deque_iterator& __x, const __deque_iterator& __y)
377
- {
378
- if (__x != __y)
379
- return (__x.__m_iter_ - __y.__m_iter_) * __block_size
380
- + (__x.__ptr_ - *__x.__m_iter_)
381
- - (__y.__ptr_ - *__y.__m_iter_);
382
- return 0;
383
- }
384
-
385
- _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const
386
- {return *(*this + __n);}
387
-
388
- _LIBCPP_INLINE_VISIBILITY friend
389
- bool operator==(const __deque_iterator& __x, const __deque_iterator& __y)
390
- {return __x.__ptr_ == __y.__ptr_;}
391
-
392
- _LIBCPP_INLINE_VISIBILITY friend
393
- bool operator!=(const __deque_iterator& __x, const __deque_iterator& __y)
394
- {return !(__x == __y);}
395
-
396
- _LIBCPP_INLINE_VISIBILITY friend
397
- bool operator<(const __deque_iterator& __x, const __deque_iterator& __y)
398
- {return __x.__m_iter_ < __y.__m_iter_ ||
399
- (__x.__m_iter_ == __y.__m_iter_ && __x.__ptr_ < __y.__ptr_);}
400
-
401
- _LIBCPP_INLINE_VISIBILITY friend
402
- bool operator>(const __deque_iterator& __x, const __deque_iterator& __y)
403
- {return __y < __x;}
404
-
405
- _LIBCPP_INLINE_VISIBILITY friend
406
- bool operator<=(const __deque_iterator& __x, const __deque_iterator& __y)
407
- {return !(__y < __x);}
408
-
409
- _LIBCPP_INLINE_VISIBILITY friend
410
- bool operator>=(const __deque_iterator& __x, const __deque_iterator& __y)
411
- {return !(__x < __y);}
412
-
413
- private:
414
- _LIBCPP_INLINE_VISIBILITY __deque_iterator(__map_iterator __m, pointer __p) _NOEXCEPT
415
- : __m_iter_(__m), __ptr_(__p) {}
416
-
417
- template <class _Tp, class _Ap> friend class __deque_base;
418
- template <class _Tp, class _Ap> friend class _LIBCPP_TYPE_VIS_ONLY deque;
419
- template <class _Vp, class _Pp, class _Rp, class _MP, class _Dp, _Dp>
420
- friend class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
421
-
422
- template <class _RAIter,
423
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
424
- friend
425
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
426
- copy(_RAIter __f,
427
- _RAIter __l,
428
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
429
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
430
-
431
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
432
- class _OutputIterator>
433
- friend
434
- _OutputIterator
435
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
436
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
437
- _OutputIterator __r);
438
-
439
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
440
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
441
- friend
442
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
443
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
444
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
445
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
446
-
447
- template <class _RAIter,
448
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
449
- friend
450
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
451
- copy_backward(_RAIter __f,
452
- _RAIter __l,
453
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
454
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
455
-
456
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
457
- class _OutputIterator>
458
- friend
459
- _OutputIterator
460
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
461
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
462
- _OutputIterator __r);
463
-
464
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
465
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
466
- friend
467
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
468
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
469
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
470
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
471
-
472
- template <class _RAIter,
473
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
474
- friend
475
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
476
- move(_RAIter __f,
477
- _RAIter __l,
478
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
479
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
480
-
481
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
482
- class _OutputIterator>
483
- friend
484
- _OutputIterator
485
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
486
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
487
- _OutputIterator __r);
488
-
489
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
490
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
491
- friend
492
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
493
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
494
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
495
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
496
-
497
- template <class _RAIter,
498
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
499
- friend
500
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
501
- move_backward(_RAIter __f,
502
- _RAIter __l,
503
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
504
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
505
-
506
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
507
- class _OutputIterator>
508
- friend
509
- _OutputIterator
510
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
511
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
512
- _OutputIterator __r);
513
-
514
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
515
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
516
- friend
517
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
518
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
519
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
520
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
521
- };
522
-
523
- // copy
524
-
525
- template <class _RAIter,
526
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
527
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
528
- copy(_RAIter __f,
529
- _RAIter __l,
530
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
531
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
532
- {
533
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
534
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
535
- while (__f != __l)
536
- {
537
- pointer __rb = __r.__ptr_;
538
- pointer __re = *__r.__m_iter_ + _B2;
539
- difference_type __bs = __re - __rb;
540
- difference_type __n = __l - __f;
541
- _RAIter __m = __l;
542
- if (__n > __bs)
543
- {
544
- __n = __bs;
545
- __m = __f + __n;
546
- }
547
- _VSTD::copy(__f, __m, __rb);
548
- __f = __m;
549
- __r += __n;
550
- }
551
- return __r;
552
- }
553
-
554
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
555
- class _OutputIterator>
556
- _OutputIterator
557
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
558
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
559
- _OutputIterator __r)
560
- {
561
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
562
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
563
- difference_type __n = __l - __f;
564
- while (__n > 0)
565
- {
566
- pointer __fb = __f.__ptr_;
567
- pointer __fe = *__f.__m_iter_ + _B1;
568
- difference_type __bs = __fe - __fb;
569
- if (__bs > __n)
570
- {
571
- __bs = __n;
572
- __fe = __fb + __bs;
573
- }
574
- __r = _VSTD::copy(__fb, __fe, __r);
575
- __n -= __bs;
576
- __f += __bs;
577
- }
578
- return __r;
579
- }
580
-
581
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
582
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
583
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
584
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
585
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
586
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
587
- {
588
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
589
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
590
- difference_type __n = __l - __f;
591
- while (__n > 0)
592
- {
593
- pointer __fb = __f.__ptr_;
594
- pointer __fe = *__f.__m_iter_ + _B1;
595
- difference_type __bs = __fe - __fb;
596
- if (__bs > __n)
597
- {
598
- __bs = __n;
599
- __fe = __fb + __bs;
600
- }
601
- __r = _VSTD::copy(__fb, __fe, __r);
602
- __n -= __bs;
603
- __f += __bs;
604
- }
605
- return __r;
606
- }
607
-
608
- // copy_backward
609
-
610
- template <class _RAIter,
611
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
612
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
613
- copy_backward(_RAIter __f,
614
- _RAIter __l,
615
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
616
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
617
- {
618
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
619
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
620
- while (__f != __l)
621
- {
622
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);
623
- pointer __rb = *__rp.__m_iter_;
624
- pointer __re = __rp.__ptr_ + 1;
625
- difference_type __bs = __re - __rb;
626
- difference_type __n = __l - __f;
627
- _RAIter __m = __f;
628
- if (__n > __bs)
629
- {
630
- __n = __bs;
631
- __m = __l - __n;
632
- }
633
- _VSTD::copy_backward(__m, __l, __re);
634
- __l = __m;
635
- __r -= __n;
636
- }
637
- return __r;
638
- }
639
-
640
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
641
- class _OutputIterator>
642
- _OutputIterator
643
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
644
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
645
- _OutputIterator __r)
646
- {
647
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
648
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
649
- difference_type __n = __l - __f;
650
- while (__n > 0)
651
- {
652
- --__l;
653
- pointer __lb = *__l.__m_iter_;
654
- pointer __le = __l.__ptr_ + 1;
655
- difference_type __bs = __le - __lb;
656
- if (__bs > __n)
657
- {
658
- __bs = __n;
659
- __lb = __le - __bs;
660
- }
661
- __r = _VSTD::copy_backward(__lb, __le, __r);
662
- __n -= __bs;
663
- __l -= __bs - 1;
664
- }
665
- return __r;
666
- }
667
-
668
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
669
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
670
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
671
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
672
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
673
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
674
- {
675
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
676
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
677
- difference_type __n = __l - __f;
678
- while (__n > 0)
679
- {
680
- --__l;
681
- pointer __lb = *__l.__m_iter_;
682
- pointer __le = __l.__ptr_ + 1;
683
- difference_type __bs = __le - __lb;
684
- if (__bs > __n)
685
- {
686
- __bs = __n;
687
- __lb = __le - __bs;
688
- }
689
- __r = _VSTD::copy_backward(__lb, __le, __r);
690
- __n -= __bs;
691
- __l -= __bs - 1;
692
- }
693
- return __r;
694
- }
695
-
696
- // move
697
-
698
- template <class _RAIter,
699
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
700
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
701
- move(_RAIter __f,
702
- _RAIter __l,
703
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
704
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
705
- {
706
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
707
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
708
- while (__f != __l)
709
- {
710
- pointer __rb = __r.__ptr_;
711
- pointer __re = *__r.__m_iter_ + _B2;
712
- difference_type __bs = __re - __rb;
713
- difference_type __n = __l - __f;
714
- _RAIter __m = __l;
715
- if (__n > __bs)
716
- {
717
- __n = __bs;
718
- __m = __f + __n;
719
- }
720
- _VSTD::move(__f, __m, __rb);
721
- __f = __m;
722
- __r += __n;
723
- }
724
- return __r;
725
- }
726
-
727
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
728
- class _OutputIterator>
729
- _OutputIterator
730
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
731
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
732
- _OutputIterator __r)
733
- {
734
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
735
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
736
- difference_type __n = __l - __f;
737
- while (__n > 0)
738
- {
739
- pointer __fb = __f.__ptr_;
740
- pointer __fe = *__f.__m_iter_ + _B1;
741
- difference_type __bs = __fe - __fb;
742
- if (__bs > __n)
743
- {
744
- __bs = __n;
745
- __fe = __fb + __bs;
746
- }
747
- __r = _VSTD::move(__fb, __fe, __r);
748
- __n -= __bs;
749
- __f += __bs;
750
- }
751
- return __r;
752
- }
753
-
754
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
755
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
756
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
757
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
758
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
759
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
760
- {
761
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
762
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
763
- difference_type __n = __l - __f;
764
- while (__n > 0)
765
- {
766
- pointer __fb = __f.__ptr_;
767
- pointer __fe = *__f.__m_iter_ + _B1;
768
- difference_type __bs = __fe - __fb;
769
- if (__bs > __n)
770
- {
771
- __bs = __n;
772
- __fe = __fb + __bs;
773
- }
774
- __r = _VSTD::move(__fb, __fe, __r);
775
- __n -= __bs;
776
- __f += __bs;
777
- }
778
- return __r;
779
- }
780
-
781
- // move_backward
782
-
783
- template <class _RAIter,
784
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
785
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
786
- move_backward(_RAIter __f,
787
- _RAIter __l,
788
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
789
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
790
- {
791
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
792
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
793
- while (__f != __l)
794
- {
795
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);
796
- pointer __rb = *__rp.__m_iter_;
797
- pointer __re = __rp.__ptr_ + 1;
798
- difference_type __bs = __re - __rb;
799
- difference_type __n = __l - __f;
800
- _RAIter __m = __f;
801
- if (__n > __bs)
802
- {
803
- __n = __bs;
804
- __m = __l - __n;
805
- }
806
- _VSTD::move_backward(__m, __l, __re);
807
- __l = __m;
808
- __r -= __n;
809
- }
810
- return __r;
811
- }
812
-
813
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
814
- class _OutputIterator>
815
- _OutputIterator
816
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
817
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
818
- _OutputIterator __r)
819
- {
820
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
821
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
822
- difference_type __n = __l - __f;
823
- while (__n > 0)
824
- {
825
- --__l;
826
- pointer __lb = *__l.__m_iter_;
827
- pointer __le = __l.__ptr_ + 1;
828
- difference_type __bs = __le - __lb;
829
- if (__bs > __n)
830
- {
831
- __bs = __n;
832
- __lb = __le - __bs;
833
- }
834
- __r = _VSTD::move_backward(__lb, __le, __r);
835
- __n -= __bs;
836
- __l -= __bs - 1;
837
- }
838
- return __r;
839
- }
840
-
841
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
842
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
843
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
844
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
845
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
846
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
847
- {
848
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
849
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
850
- difference_type __n = __l - __f;
851
- while (__n > 0)
852
- {
853
- --__l;
854
- pointer __lb = *__l.__m_iter_;
855
- pointer __le = __l.__ptr_ + 1;
856
- difference_type __bs = __le - __lb;
857
- if (__bs > __n)
858
- {
859
- __bs = __n;
860
- __lb = __le - __bs;
861
- }
862
- __r = _VSTD::move_backward(__lb, __le, __r);
863
- __n -= __bs;
864
- __l -= __bs - 1;
865
- }
866
- return __r;
867
- }
868
-
869
- template <bool>
870
- class __deque_base_common
871
- {
872
- protected:
873
- void __throw_length_error() const;
874
- void __throw_out_of_range() const;
875
- };
876
-
877
- template <bool __b>
878
- void
879
- __deque_base_common<__b>::__throw_length_error() const
880
- {
881
- #ifndef _LIBCPP_NO_EXCEPTIONS
882
- throw length_error("deque");
883
- #endif
884
- }
885
-
886
- template <bool __b>
887
- void
888
- __deque_base_common<__b>::__throw_out_of_range() const
889
- {
890
- #ifndef _LIBCPP_NO_EXCEPTIONS
891
- throw out_of_range("deque");
892
- #endif
893
- }
894
-
895
- template <class _Tp, class _Allocator>
896
- class __deque_base
897
- : protected __deque_base_common<true>
898
- {
899
- __deque_base(const __deque_base& __c);
900
- __deque_base& operator=(const __deque_base& __c);
901
- protected:
902
- typedef _Tp value_type;
903
- typedef _Allocator allocator_type;
904
- typedef allocator_traits<allocator_type> __alloc_traits;
905
- typedef value_type& reference;
906
- typedef const value_type& const_reference;
907
- typedef typename __alloc_traits::size_type size_type;
908
- typedef typename __alloc_traits::difference_type difference_type;
909
- typedef typename __alloc_traits::pointer pointer;
910
- typedef typename __alloc_traits::const_pointer const_pointer;
911
-
912
- static const difference_type __block_size = sizeof(value_type) < 256 ? 4096 / sizeof(value_type) : 16;
913
-
914
- typedef typename __alloc_traits::template
915
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
916
- rebind_alloc<pointer>
917
- #else
918
- rebind_alloc<pointer>::other
919
- #endif
920
- __pointer_allocator;
921
- typedef allocator_traits<__pointer_allocator> __map_traits;
922
- typedef typename __map_traits::pointer __map_pointer;
923
- typedef typename __alloc_traits::template
924
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
925
- rebind_alloc<const_pointer>
926
- #else
927
- rebind_alloc<const_pointer>::other
928
- #endif
929
- __const_pointer_allocator;
930
- typedef typename allocator_traits<__const_pointer_allocator>::const_pointer __map_const_pointer;
931
- typedef __split_buffer<pointer, __pointer_allocator> __map;
932
-
933
- typedef __deque_iterator<value_type, pointer, reference, __map_pointer,
934
- difference_type, __block_size> iterator;
935
- typedef __deque_iterator<value_type, const_pointer, const_reference, __map_const_pointer,
936
- difference_type, __block_size> const_iterator;
937
-
938
- __map __map_;
939
- size_type __start_;
940
- __compressed_pair<size_type, allocator_type> __size_;
941
-
942
- iterator begin() _NOEXCEPT;
943
- const_iterator begin() const _NOEXCEPT;
944
- iterator end() _NOEXCEPT;
945
- const_iterator end() const _NOEXCEPT;
946
-
947
- _LIBCPP_INLINE_VISIBILITY size_type& size() {return __size_.first();}
948
- _LIBCPP_INLINE_VISIBILITY
949
- const size_type& size() const _NOEXCEPT {return __size_.first();}
950
- _LIBCPP_INLINE_VISIBILITY allocator_type& __alloc() {return __size_.second();}
951
- _LIBCPP_INLINE_VISIBILITY
952
- const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();}
953
-
954
- __deque_base()
955
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
956
- explicit __deque_base(const allocator_type& __a);
957
- public:
958
- ~__deque_base();
959
-
960
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
961
-
962
- __deque_base(__deque_base&& __c)
963
- _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
964
- __deque_base(__deque_base&& __c, const allocator_type& __a);
965
-
966
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
967
- void swap(__deque_base& __c)
968
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
969
- __is_nothrow_swappable<allocator_type>::value);
970
- protected:
971
- void clear() _NOEXCEPT;
972
-
973
- bool __invariants() const;
974
-
975
- _LIBCPP_INLINE_VISIBILITY
976
- void __move_assign(__deque_base& __c)
977
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
978
- is_nothrow_move_assignable<allocator_type>::value)
979
- {
980
- __map_ = _VSTD::move(__c.__map_);
981
- __start_ = __c.__start_;
982
- size() = __c.size();
983
- __move_assign_alloc(__c);
984
- __c.__start_ = __c.size() = 0;
985
- }
986
-
987
- _LIBCPP_INLINE_VISIBILITY
988
- void __move_assign_alloc(__deque_base& __c)
989
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_move_assignment::value ||
990
- is_nothrow_move_assignable<allocator_type>::value)
991
- {__move_assign_alloc(__c, integral_constant<bool,
992
- __alloc_traits::propagate_on_container_move_assignment::value>());}
993
-
994
- private:
995
- _LIBCPP_INLINE_VISIBILITY
996
- void __move_assign_alloc(__deque_base& __c, true_type)
997
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)
998
- {
999
- __alloc() = _VSTD::move(__c.__alloc());
1000
- }
1001
-
1002
- _LIBCPP_INLINE_VISIBILITY
1003
- void __move_assign_alloc(__deque_base&, false_type) _NOEXCEPT
1004
- {}
1005
-
1006
- _LIBCPP_INLINE_VISIBILITY
1007
- static void __swap_alloc(allocator_type& __x, allocator_type& __y)
1008
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
1009
- __is_nothrow_swappable<allocator_type>::value)
1010
- {__swap_alloc(__x, __y, integral_constant<bool,
1011
- __alloc_traits::propagate_on_container_swap::value>());}
1012
-
1013
- _LIBCPP_INLINE_VISIBILITY
1014
- static void __swap_alloc(allocator_type& __x, allocator_type& __y, true_type)
1015
- _NOEXCEPT_(__is_nothrow_swappable<allocator_type>::value)
1016
- {
1017
- using _VSTD::swap;
1018
- swap(__x, __y);
1019
- }
1020
-
1021
- _LIBCPP_INLINE_VISIBILITY
1022
- static void __swap_alloc(allocator_type&, allocator_type&, false_type)
1023
- _NOEXCEPT
1024
- {}
1025
- };
1026
-
1027
- template <class _Tp, class _Allocator>
1028
- bool
1029
- __deque_base<_Tp, _Allocator>::__invariants() const
1030
- {
1031
- if (!__map_.__invariants())
1032
- return false;
1033
- if (__map_.size() >= size_type(-1) / __block_size)
1034
- return false;
1035
- for (typename __map::const_iterator __i = __map_.begin(), __e = __map_.end();
1036
- __i != __e; ++__i)
1037
- if (*__i == nullptr)
1038
- return false;
1039
- if (__map_.size() != 0)
1040
- {
1041
- if (size() >= __map_.size() * __block_size)
1042
- return false;
1043
- if (__start_ >= __map_.size() * __block_size - size())
1044
- return false;
1045
- }
1046
- else
1047
- {
1048
- if (size() != 0)
1049
- return false;
1050
- if (__start_ != 0)
1051
- return false;
1052
- }
1053
- return true;
1054
- }
1055
-
1056
- template <class _Tp, class _Allocator>
1057
- typename __deque_base<_Tp, _Allocator>::iterator
1058
- __deque_base<_Tp, _Allocator>::begin() _NOEXCEPT
1059
- {
1060
- __map_pointer __mp = __map_.begin() + __start_ / __block_size;
1061
- return iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);
1062
- }
1063
-
1064
- template <class _Tp, class _Allocator>
1065
- typename __deque_base<_Tp, _Allocator>::const_iterator
1066
- __deque_base<_Tp, _Allocator>::begin() const _NOEXCEPT
1067
- {
1068
- __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __start_ / __block_size);
1069
- return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);
1070
- }
1071
-
1072
- template <class _Tp, class _Allocator>
1073
- typename __deque_base<_Tp, _Allocator>::iterator
1074
- __deque_base<_Tp, _Allocator>::end() _NOEXCEPT
1075
- {
1076
- size_type __p = size() + __start_;
1077
- __map_pointer __mp = __map_.begin() + __p / __block_size;
1078
- return iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);
1079
- }
1080
-
1081
- template <class _Tp, class _Allocator>
1082
- typename __deque_base<_Tp, _Allocator>::const_iterator
1083
- __deque_base<_Tp, _Allocator>::end() const _NOEXCEPT
1084
- {
1085
- size_type __p = size() + __start_;
1086
- __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __p / __block_size);
1087
- return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);
1088
- }
1089
-
1090
- template <class _Tp, class _Allocator>
1091
- inline _LIBCPP_INLINE_VISIBILITY
1092
- __deque_base<_Tp, _Allocator>::__deque_base()
1093
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
1094
- : __start_(0), __size_(0) {}
1095
-
1096
- template <class _Tp, class _Allocator>
1097
- inline _LIBCPP_INLINE_VISIBILITY
1098
- __deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a)
1099
- : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {}
1100
-
1101
- template <class _Tp, class _Allocator>
1102
- __deque_base<_Tp, _Allocator>::~__deque_base()
1103
- {
1104
- clear();
1105
- typename __map::iterator __i = __map_.begin();
1106
- typename __map::iterator __e = __map_.end();
1107
- for (; __i != __e; ++__i)
1108
- __alloc_traits::deallocate(__alloc(), *__i, __block_size);
1109
- }
1110
-
1111
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1112
-
1113
- template <class _Tp, class _Allocator>
1114
- __deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c)
1115
- _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
1116
- : __map_(_VSTD::move(__c.__map_)),
1117
- __start_(_VSTD::move(__c.__start_)),
1118
- __size_(_VSTD::move(__c.__size_))
1119
- {
1120
- __c.__start_ = 0;
1121
- __c.size() = 0;
1122
- }
1123
-
1124
- template <class _Tp, class _Allocator>
1125
- __deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c, const allocator_type& __a)
1126
- : __map_(_VSTD::move(__c.__map_), __pointer_allocator(__a)),
1127
- __start_(_VSTD::move(__c.__start_)),
1128
- __size_(_VSTD::move(__c.size()), __a)
1129
- {
1130
- if (__a == __c.__alloc())
1131
- {
1132
- __c.__start_ = 0;
1133
- __c.size() = 0;
1134
- }
1135
- else
1136
- {
1137
- __map_.clear();
1138
- __start_ = 0;
1139
- size() = 0;
1140
- }
1141
- }
1142
-
1143
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1144
-
1145
- template <class _Tp, class _Allocator>
1146
- void
1147
- __deque_base<_Tp, _Allocator>::swap(__deque_base& __c)
1148
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value||
1149
- __is_nothrow_swappable<allocator_type>::value)
1150
- {
1151
- __map_.swap(__c.__map_);
1152
- _VSTD::swap(__start_, __c.__start_);
1153
- _VSTD::swap(size(), __c.size());
1154
- __swap_alloc(__alloc(), __c.__alloc());
1155
- }
1156
-
1157
- template <class _Tp, class _Allocator>
1158
- void
1159
- __deque_base<_Tp, _Allocator>::clear() _NOEXCEPT
1160
- {
1161
- allocator_type& __a = __alloc();
1162
- for (iterator __i = begin(), __e = end(); __i != __e; ++__i)
1163
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
1164
- size() = 0;
1165
- while (__map_.size() > 2)
1166
- {
1167
- __alloc_traits::deallocate(__a, __map_.front(), __block_size);
1168
- __map_.pop_front();
1169
- }
1170
- switch (__map_.size())
1171
- {
1172
- case 1:
1173
- __start_ = __block_size / 2;
1174
- break;
1175
- case 2:
1176
- __start_ = __block_size;
1177
- break;
1178
- }
1179
- }
1180
-
1181
- template <class _Tp, class _Allocator = allocator<_Tp> >
1182
- class _LIBCPP_TYPE_VIS_ONLY deque
1183
- : private __deque_base<_Tp, _Allocator>
1184
- {
1185
- public:
1186
- // types:
1187
-
1188
- typedef _Tp value_type;
1189
- typedef _Allocator allocator_type;
1190
-
1191
- typedef __deque_base<value_type, allocator_type> __base;
1192
-
1193
- typedef typename __base::__alloc_traits __alloc_traits;
1194
- typedef typename __base::reference reference;
1195
- typedef typename __base::const_reference const_reference;
1196
- typedef typename __base::iterator iterator;
1197
- typedef typename __base::const_iterator const_iterator;
1198
- typedef typename __base::size_type size_type;
1199
- typedef typename __base::difference_type difference_type;
1200
-
1201
- typedef typename __base::pointer pointer;
1202
- typedef typename __base::const_pointer const_pointer;
1203
- typedef _VSTD::reverse_iterator<iterator> reverse_iterator;
1204
- typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
1205
-
1206
- // construct/copy/destroy:
1207
- _LIBCPP_INLINE_VISIBILITY
1208
- deque()
1209
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
1210
- {}
1211
- _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
1212
- explicit deque(size_type __n);
1213
- #if _LIBCPP_STD_VER > 11
1214
- explicit deque(size_type __n, const _Allocator& __a);
1215
- #endif
1216
- deque(size_type __n, const value_type& __v);
1217
- deque(size_type __n, const value_type& __v, const allocator_type& __a);
1218
- template <class _InputIter>
1219
- deque(_InputIter __f, _InputIter __l,
1220
- typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1221
- template <class _InputIter>
1222
- deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1223
- typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1224
- deque(const deque& __c);
1225
- deque(const deque& __c, const allocator_type& __a);
1226
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1227
- deque(initializer_list<value_type> __il);
1228
- deque(initializer_list<value_type> __il, const allocator_type& __a);
1229
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1230
-
1231
- deque& operator=(const deque& __c);
1232
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1233
- _LIBCPP_INLINE_VISIBILITY
1234
- deque& operator=(initializer_list<value_type> __il) {assign(__il); return *this;}
1235
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1236
-
1237
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1238
- deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value);
1239
- deque(deque&& __c, const allocator_type& __a);
1240
- deque& operator=(deque&& __c)
1241
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
1242
- is_nothrow_move_assignable<allocator_type>::value);
1243
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1244
-
1245
- template <class _InputIter>
1246
- void assign(_InputIter __f, _InputIter __l,
1247
- typename enable_if<__is_input_iterator<_InputIter>::value &&
1248
- !__is_random_access_iterator<_InputIter>::value>::type* = 0);
1249
- template <class _RAIter>
1250
- void assign(_RAIter __f, _RAIter __l,
1251
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
1252
- void assign(size_type __n, const value_type& __v);
1253
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1254
- _LIBCPP_INLINE_VISIBILITY
1255
- void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}
1256
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1257
-
1258
- allocator_type get_allocator() const _NOEXCEPT;
1259
-
1260
- // iterators:
1261
-
1262
- _LIBCPP_INLINE_VISIBILITY
1263
- iterator begin() _NOEXCEPT {return __base::begin();}
1264
- _LIBCPP_INLINE_VISIBILITY
1265
- const_iterator begin() const _NOEXCEPT {return __base::begin();}
1266
- _LIBCPP_INLINE_VISIBILITY
1267
- iterator end() _NOEXCEPT {return __base::end();}
1268
- _LIBCPP_INLINE_VISIBILITY
1269
- const_iterator end() const _NOEXCEPT {return __base::end();}
1270
-
1271
- _LIBCPP_INLINE_VISIBILITY
1272
- reverse_iterator rbegin() _NOEXCEPT
1273
- {return reverse_iterator(__base::end());}
1274
- _LIBCPP_INLINE_VISIBILITY
1275
- const_reverse_iterator rbegin() const _NOEXCEPT
1276
- {return const_reverse_iterator(__base::end());}
1277
- _LIBCPP_INLINE_VISIBILITY
1278
- reverse_iterator rend() _NOEXCEPT
1279
- {return reverse_iterator(__base::begin());}
1280
- _LIBCPP_INLINE_VISIBILITY
1281
- const_reverse_iterator rend() const _NOEXCEPT
1282
- {return const_reverse_iterator(__base::begin());}
1283
-
1284
- _LIBCPP_INLINE_VISIBILITY
1285
- const_iterator cbegin() const _NOEXCEPT
1286
- {return __base::begin();}
1287
- _LIBCPP_INLINE_VISIBILITY
1288
- const_iterator cend() const _NOEXCEPT
1289
- {return __base::end();}
1290
- _LIBCPP_INLINE_VISIBILITY
1291
- const_reverse_iterator crbegin() const _NOEXCEPT
1292
- {return const_reverse_iterator(__base::end());}
1293
- _LIBCPP_INLINE_VISIBILITY
1294
- const_reverse_iterator crend() const _NOEXCEPT
1295
- {return const_reverse_iterator(__base::begin());}
1296
-
1297
- // capacity:
1298
- _LIBCPP_INLINE_VISIBILITY
1299
- size_type size() const _NOEXCEPT {return __base::size();}
1300
- _LIBCPP_INLINE_VISIBILITY
1301
- size_type max_size() const _NOEXCEPT
1302
- {return __alloc_traits::max_size(__base::__alloc());}
1303
- void resize(size_type __n);
1304
- void resize(size_type __n, const value_type& __v);
1305
- void shrink_to_fit() _NOEXCEPT;
1306
- _LIBCPP_INLINE_VISIBILITY
1307
- bool empty() const _NOEXCEPT {return __base::size() == 0;}
1308
-
1309
- // element access:
1310
- reference operator[](size_type __i);
1311
- const_reference operator[](size_type __i) const;
1312
- reference at(size_type __i);
1313
- const_reference at(size_type __i) const;
1314
- reference front();
1315
- const_reference front() const;
1316
- reference back();
1317
- const_reference back() const;
1318
-
1319
- // 23.2.2.3 modifiers:
1320
- void push_front(const value_type& __v);
1321
- void push_back(const value_type& __v);
1322
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1323
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1324
- template <class... _Args> void emplace_front(_Args&&... __args);
1325
- template <class... _Args> void emplace_back(_Args&&... __args);
1326
- template <class... _Args> iterator emplace(const_iterator __p, _Args&&... __args);
1327
- #endif // _LIBCPP_HAS_NO_VARIADICS
1328
- void push_front(value_type&& __v);
1329
- void push_back(value_type&& __v);
1330
- iterator insert(const_iterator __p, value_type&& __v);
1331
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1332
- iterator insert(const_iterator __p, const value_type& __v);
1333
- iterator insert(const_iterator __p, size_type __n, const value_type& __v);
1334
- template <class _InputIter>
1335
- iterator insert (const_iterator __p, _InputIter __f, _InputIter __l,
1336
- typename enable_if<__is_input_iterator<_InputIter>::value
1337
- &&!__is_bidirectional_iterator<_InputIter>::value>::type* = 0);
1338
- template <class _BiIter>
1339
- iterator insert (const_iterator __p, _BiIter __f, _BiIter __l,
1340
- typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0);
1341
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1342
- _LIBCPP_INLINE_VISIBILITY
1343
- iterator insert(const_iterator __p, initializer_list<value_type> __il)
1344
- {return insert(__p, __il.begin(), __il.end());}
1345
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1346
- void pop_front();
1347
- void pop_back();
1348
- iterator erase(const_iterator __p);
1349
- iterator erase(const_iterator __f, const_iterator __l);
1350
-
1351
- void swap(deque& __c)
1352
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
1353
- __is_nothrow_swappable<allocator_type>::value);
1354
- void clear() _NOEXCEPT;
1355
-
1356
- _LIBCPP_INLINE_VISIBILITY
1357
- bool __invariants() const {return __base::__invariants();}
1358
- private:
1359
- typedef typename __base::__map_const_pointer __map_const_pointer;
1360
-
1361
- _LIBCPP_INLINE_VISIBILITY
1362
- static size_type __recommend_blocks(size_type __n)
1363
- {
1364
- return __n / __base::__block_size + (__n % __base::__block_size != 0);
1365
- }
1366
- _LIBCPP_INLINE_VISIBILITY
1367
- size_type __capacity() const
1368
- {
1369
- return __base::__map_.size() == 0 ? 0 : __base::__map_.size() * __base::__block_size - 1;
1370
- }
1371
- _LIBCPP_INLINE_VISIBILITY
1372
- size_type __front_spare() const
1373
- {
1374
- return __base::__start_;
1375
- }
1376
- _LIBCPP_INLINE_VISIBILITY
1377
- size_type __back_spare() const
1378
- {
1379
- return __capacity() - (__base::__start_ + __base::size());
1380
- }
1381
-
1382
- template <class _InpIter>
1383
- void __append(_InpIter __f, _InpIter __l,
1384
- typename enable_if<__is_input_iterator<_InpIter>::value &&
1385
- !__is_forward_iterator<_InpIter>::value>::type* = 0);
1386
- template <class _ForIter>
1387
- void __append(_ForIter __f, _ForIter __l,
1388
- typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0);
1389
- void __append(size_type __n);
1390
- void __append(size_type __n, const value_type& __v);
1391
- void __erase_to_end(const_iterator __f);
1392
- void __add_front_capacity();
1393
- void __add_front_capacity(size_type __n);
1394
- void __add_back_capacity();
1395
- void __add_back_capacity(size_type __n);
1396
- iterator __move_and_check(iterator __f, iterator __l, iterator __r,
1397
- const_pointer& __vt);
1398
- iterator __move_backward_and_check(iterator __f, iterator __l, iterator __r,
1399
- const_pointer& __vt);
1400
- void __move_construct_and_check(iterator __f, iterator __l,
1401
- iterator __r, const_pointer& __vt);
1402
- void __move_construct_backward_and_check(iterator __f, iterator __l,
1403
- iterator __r, const_pointer& __vt);
1404
-
1405
- _LIBCPP_INLINE_VISIBILITY
1406
- void __copy_assign_alloc(const deque& __c)
1407
- {__copy_assign_alloc(__c, integral_constant<bool,
1408
- __alloc_traits::propagate_on_container_copy_assignment::value>());}
1409
-
1410
- _LIBCPP_INLINE_VISIBILITY
1411
- void __copy_assign_alloc(const deque& __c, true_type)
1412
- {
1413
- if (__base::__alloc() != __c.__alloc())
1414
- {
1415
- clear();
1416
- shrink_to_fit();
1417
- }
1418
- __base::__alloc() = __c.__alloc();
1419
- __base::__map_.__alloc() = __c.__map_.__alloc();
1420
- }
1421
-
1422
- _LIBCPP_INLINE_VISIBILITY
1423
- void __copy_assign_alloc(const deque&, false_type)
1424
- {}
1425
-
1426
- void __move_assign(deque& __c, true_type)
1427
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);
1428
- void __move_assign(deque& __c, false_type);
1429
- };
1430
-
1431
- template <class _Tp, class _Allocator>
1432
- deque<_Tp, _Allocator>::deque(size_type __n)
1433
- {
1434
- if (__n > 0)
1435
- __append(__n);
1436
- }
1437
-
1438
- #if _LIBCPP_STD_VER > 11
1439
- template <class _Tp, class _Allocator>
1440
- deque<_Tp, _Allocator>::deque(size_type __n, const _Allocator& __a)
1441
- : __base(__a)
1442
- {
1443
- if (__n > 0)
1444
- __append(__n);
1445
- }
1446
- #endif
1447
-
1448
- template <class _Tp, class _Allocator>
1449
- deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v)
1450
- {
1451
- if (__n > 0)
1452
- __append(__n, __v);
1453
- }
1454
-
1455
- template <class _Tp, class _Allocator>
1456
- deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const allocator_type& __a)
1457
- : __base(__a)
1458
- {
1459
- if (__n > 0)
1460
- __append(__n, __v);
1461
- }
1462
-
1463
- template <class _Tp, class _Allocator>
1464
- template <class _InputIter>
1465
- deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l,
1466
- typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1467
- {
1468
- __append(__f, __l);
1469
- }
1470
-
1471
- template <class _Tp, class _Allocator>
1472
- template <class _InputIter>
1473
- deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1474
- typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1475
- : __base(__a)
1476
- {
1477
- __append(__f, __l);
1478
- }
1479
-
1480
- template <class _Tp, class _Allocator>
1481
- deque<_Tp, _Allocator>::deque(const deque& __c)
1482
- : __base(__alloc_traits::select_on_container_copy_construction(__c.__alloc()))
1483
- {
1484
- __append(__c.begin(), __c.end());
1485
- }
1486
-
1487
- template <class _Tp, class _Allocator>
1488
- deque<_Tp, _Allocator>::deque(const deque& __c, const allocator_type& __a)
1489
- : __base(__a)
1490
- {
1491
- __append(__c.begin(), __c.end());
1492
- }
1493
-
1494
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1495
-
1496
- template <class _Tp, class _Allocator>
1497
- deque<_Tp, _Allocator>::deque(initializer_list<value_type> __il)
1498
- {
1499
- __append(__il.begin(), __il.end());
1500
- }
1501
-
1502
- template <class _Tp, class _Allocator>
1503
- deque<_Tp, _Allocator>::deque(initializer_list<value_type> __il, const allocator_type& __a)
1504
- : __base(__a)
1505
- {
1506
- __append(__il.begin(), __il.end());
1507
- }
1508
-
1509
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1510
-
1511
- template <class _Tp, class _Allocator>
1512
- deque<_Tp, _Allocator>&
1513
- deque<_Tp, _Allocator>::operator=(const deque& __c)
1514
- {
1515
- if (this != &__c)
1516
- {
1517
- __copy_assign_alloc(__c);
1518
- assign(__c.begin(), __c.end());
1519
- }
1520
- return *this;
1521
- }
1522
-
1523
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1524
-
1525
- template <class _Tp, class _Allocator>
1526
- inline _LIBCPP_INLINE_VISIBILITY
1527
- deque<_Tp, _Allocator>::deque(deque&& __c)
1528
- _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)
1529
- : __base(_VSTD::move(__c))
1530
- {
1531
- }
1532
-
1533
- template <class _Tp, class _Allocator>
1534
- inline _LIBCPP_INLINE_VISIBILITY
1535
- deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)
1536
- : __base(_VSTD::move(__c), __a)
1537
- {
1538
- if (__a != __c.__alloc())
1539
- {
1540
- typedef move_iterator<iterator> _Ip;
1541
- assign(_Ip(__c.begin()), _Ip(__c.end()));
1542
- }
1543
- }
1544
-
1545
- template <class _Tp, class _Allocator>
1546
- inline _LIBCPP_INLINE_VISIBILITY
1547
- deque<_Tp, _Allocator>&
1548
- deque<_Tp, _Allocator>::operator=(deque&& __c)
1549
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
1550
- is_nothrow_move_assignable<allocator_type>::value)
1551
- {
1552
- __move_assign(__c, integral_constant<bool,
1553
- __alloc_traits::propagate_on_container_move_assignment::value>());
1554
- return *this;
1555
- }
1556
-
1557
- template <class _Tp, class _Allocator>
1558
- void
1559
- deque<_Tp, _Allocator>::__move_assign(deque& __c, false_type)
1560
- {
1561
- if (__base::__alloc() != __c.__alloc())
1562
- {
1563
- typedef move_iterator<iterator> _Ip;
1564
- assign(_Ip(__c.begin()), _Ip(__c.end()));
1565
- }
1566
- else
1567
- __move_assign(__c, true_type());
1568
- }
1569
-
1570
- template <class _Tp, class _Allocator>
1571
- void
1572
- deque<_Tp, _Allocator>::__move_assign(deque& __c, true_type)
1573
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)
1574
- {
1575
- clear();
1576
- shrink_to_fit();
1577
- __base::__move_assign(__c);
1578
- }
1579
-
1580
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1581
-
1582
- template <class _Tp, class _Allocator>
1583
- template <class _InputIter>
1584
- void
1585
- deque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l,
1586
- typename enable_if<__is_input_iterator<_InputIter>::value &&
1587
- !__is_random_access_iterator<_InputIter>::value>::type*)
1588
- {
1589
- iterator __i = __base::begin();
1590
- iterator __e = __base::end();
1591
- for (; __f != __l && __i != __e; ++__f, ++__i)
1592
- *__i = *__f;
1593
- if (__f != __l)
1594
- __append(__f, __l);
1595
- else
1596
- __erase_to_end(__i);
1597
- }
1598
-
1599
- template <class _Tp, class _Allocator>
1600
- template <class _RAIter>
1601
- void
1602
- deque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l,
1603
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
1604
- {
1605
- if (static_cast<size_type>(__l - __f) > __base::size())
1606
- {
1607
- _RAIter __m = __f + __base::size();
1608
- _VSTD::copy(__f, __m, __base::begin());
1609
- __append(__m, __l);
1610
- }
1611
- else
1612
- __erase_to_end(_VSTD::copy(__f, __l, __base::begin()));
1613
- }
1614
-
1615
- template <class _Tp, class _Allocator>
1616
- void
1617
- deque<_Tp, _Allocator>::assign(size_type __n, const value_type& __v)
1618
- {
1619
- if (__n > __base::size())
1620
- {
1621
- _VSTD::fill_n(__base::begin(), __base::size(), __v);
1622
- __n -= __base::size();
1623
- __append(__n, __v);
1624
- }
1625
- else
1626
- __erase_to_end(_VSTD::fill_n(__base::begin(), __n, __v));
1627
- }
1628
-
1629
- template <class _Tp, class _Allocator>
1630
- inline _LIBCPP_INLINE_VISIBILITY
1631
- _Allocator
1632
- deque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT
1633
- {
1634
- return __base::__alloc();
1635
- }
1636
-
1637
- template <class _Tp, class _Allocator>
1638
- void
1639
- deque<_Tp, _Allocator>::resize(size_type __n)
1640
- {
1641
- if (__n > __base::size())
1642
- __append(__n - __base::size());
1643
- else if (__n < __base::size())
1644
- __erase_to_end(__base::begin() + __n);
1645
- }
1646
-
1647
- template <class _Tp, class _Allocator>
1648
- void
1649
- deque<_Tp, _Allocator>::resize(size_type __n, const value_type& __v)
1650
- {
1651
- if (__n > __base::size())
1652
- __append(__n - __base::size(), __v);
1653
- else if (__n < __base::size())
1654
- __erase_to_end(__base::begin() + __n);
1655
- }
1656
-
1657
- template <class _Tp, class _Allocator>
1658
- void
1659
- deque<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT
1660
- {
1661
- allocator_type& __a = __base::__alloc();
1662
- if (empty())
1663
- {
1664
- while (__base::__map_.size() > 0)
1665
- {
1666
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
1667
- __base::__map_.pop_back();
1668
- }
1669
- __base::__start_ = 0;
1670
- }
1671
- else
1672
- {
1673
- if (__front_spare() >= __base::__block_size)
1674
- {
1675
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
1676
- __base::__map_.pop_front();
1677
- __base::__start_ -= __base::__block_size;
1678
- }
1679
- if (__back_spare() >= __base::__block_size)
1680
- {
1681
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
1682
- __base::__map_.pop_back();
1683
- }
1684
- }
1685
- __base::__map_.shrink_to_fit();
1686
- }
1687
-
1688
- template <class _Tp, class _Allocator>
1689
- inline _LIBCPP_INLINE_VISIBILITY
1690
- typename deque<_Tp, _Allocator>::reference
1691
- deque<_Tp, _Allocator>::operator[](size_type __i)
1692
- {
1693
- size_type __p = __base::__start_ + __i;
1694
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1695
- }
1696
-
1697
- template <class _Tp, class _Allocator>
1698
- inline _LIBCPP_INLINE_VISIBILITY
1699
- typename deque<_Tp, _Allocator>::const_reference
1700
- deque<_Tp, _Allocator>::operator[](size_type __i) const
1701
- {
1702
- size_type __p = __base::__start_ + __i;
1703
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1704
- }
1705
-
1706
- template <class _Tp, class _Allocator>
1707
- inline _LIBCPP_INLINE_VISIBILITY
1708
- typename deque<_Tp, _Allocator>::reference
1709
- deque<_Tp, _Allocator>::at(size_type __i)
1710
- {
1711
- if (__i >= __base::size())
1712
- __base::__throw_out_of_range();
1713
- size_type __p = __base::__start_ + __i;
1714
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1715
- }
1716
-
1717
- template <class _Tp, class _Allocator>
1718
- inline _LIBCPP_INLINE_VISIBILITY
1719
- typename deque<_Tp, _Allocator>::const_reference
1720
- deque<_Tp, _Allocator>::at(size_type __i) const
1721
- {
1722
- if (__i >= __base::size())
1723
- __base::__throw_out_of_range();
1724
- size_type __p = __base::__start_ + __i;
1725
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1726
- }
1727
-
1728
- template <class _Tp, class _Allocator>
1729
- inline _LIBCPP_INLINE_VISIBILITY
1730
- typename deque<_Tp, _Allocator>::reference
1731
- deque<_Tp, _Allocator>::front()
1732
- {
1733
- return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)
1734
- + __base::__start_ % __base::__block_size);
1735
- }
1736
-
1737
- template <class _Tp, class _Allocator>
1738
- inline _LIBCPP_INLINE_VISIBILITY
1739
- typename deque<_Tp, _Allocator>::const_reference
1740
- deque<_Tp, _Allocator>::front() const
1741
- {
1742
- return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)
1743
- + __base::__start_ % __base::__block_size);
1744
- }
1745
-
1746
- template <class _Tp, class _Allocator>
1747
- inline _LIBCPP_INLINE_VISIBILITY
1748
- typename deque<_Tp, _Allocator>::reference
1749
- deque<_Tp, _Allocator>::back()
1750
- {
1751
- size_type __p = __base::size() + __base::__start_ - 1;
1752
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1753
- }
1754
-
1755
- template <class _Tp, class _Allocator>
1756
- inline _LIBCPP_INLINE_VISIBILITY
1757
- typename deque<_Tp, _Allocator>::const_reference
1758
- deque<_Tp, _Allocator>::back() const
1759
- {
1760
- size_type __p = __base::size() + __base::__start_ - 1;
1761
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1762
- }
1763
-
1764
- template <class _Tp, class _Allocator>
1765
- void
1766
- deque<_Tp, _Allocator>::push_back(const value_type& __v)
1767
- {
1768
- allocator_type& __a = __base::__alloc();
1769
- if (__back_spare() == 0)
1770
- __add_back_capacity();
1771
- // __back_spare() >= 1
1772
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);
1773
- ++__base::size();
1774
- }
1775
-
1776
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1777
-
1778
- template <class _Tp, class _Allocator>
1779
- void
1780
- deque<_Tp, _Allocator>::push_back(value_type&& __v)
1781
- {
1782
- allocator_type& __a = __base::__alloc();
1783
- if (__back_spare() == 0)
1784
- __add_back_capacity();
1785
- // __back_spare() >= 1
1786
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));
1787
- ++__base::size();
1788
- }
1789
-
1790
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1791
-
1792
- template <class _Tp, class _Allocator>
1793
- template <class... _Args>
1794
- void
1795
- deque<_Tp, _Allocator>::emplace_back(_Args&&... __args)
1796
- {
1797
- allocator_type& __a = __base::__alloc();
1798
- if (__back_spare() == 0)
1799
- __add_back_capacity();
1800
- // __back_spare() >= 1
1801
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...);
1802
- ++__base::size();
1803
- }
1804
-
1805
- #endif // _LIBCPP_HAS_NO_VARIADICS
1806
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1807
-
1808
- template <class _Tp, class _Allocator>
1809
- void
1810
- deque<_Tp, _Allocator>::push_front(const value_type& __v)
1811
- {
1812
- allocator_type& __a = __base::__alloc();
1813
- if (__front_spare() == 0)
1814
- __add_front_capacity();
1815
- // __front_spare() >= 1
1816
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);
1817
- --__base::__start_;
1818
- ++__base::size();
1819
- }
1820
-
1821
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1822
-
1823
- template <class _Tp, class _Allocator>
1824
- void
1825
- deque<_Tp, _Allocator>::push_front(value_type&& __v)
1826
- {
1827
- allocator_type& __a = __base::__alloc();
1828
- if (__front_spare() == 0)
1829
- __add_front_capacity();
1830
- // __front_spare() >= 1
1831
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));
1832
- --__base::__start_;
1833
- ++__base::size();
1834
- }
1835
-
1836
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1837
-
1838
- template <class _Tp, class _Allocator>
1839
- template <class... _Args>
1840
- void
1841
- deque<_Tp, _Allocator>::emplace_front(_Args&&... __args)
1842
- {
1843
- allocator_type& __a = __base::__alloc();
1844
- if (__front_spare() == 0)
1845
- __add_front_capacity();
1846
- // __front_spare() >= 1
1847
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);
1848
- --__base::__start_;
1849
- ++__base::size();
1850
- }
1851
-
1852
- #endif // _LIBCPP_HAS_NO_VARIADICS
1853
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1854
-
1855
- template <class _Tp, class _Allocator>
1856
- typename deque<_Tp, _Allocator>::iterator
1857
- deque<_Tp, _Allocator>::insert(const_iterator __p, const value_type& __v)
1858
- {
1859
- size_type __pos = __p - __base::begin();
1860
- size_type __to_end = __base::size() - __pos;
1861
- allocator_type& __a = __base::__alloc();
1862
- if (__pos < __to_end)
1863
- { // insert by shifting things backward
1864
- if (__front_spare() == 0)
1865
- __add_front_capacity();
1866
- // __front_spare() >= 1
1867
- if (__pos == 0)
1868
- {
1869
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);
1870
- --__base::__start_;
1871
- ++__base::size();
1872
- }
1873
- else
1874
- {
1875
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
1876
- iterator __b = __base::begin();
1877
- iterator __bm1 = _VSTD::prev(__b);
1878
- if (__vt == pointer_traits<const_pointer>::pointer_to(*__b))
1879
- __vt = pointer_traits<const_pointer>::pointer_to(*__bm1);
1880
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
1881
- --__base::__start_;
1882
- ++__base::size();
1883
- if (__pos > 1)
1884
- __b = __move_and_check(_VSTD::next(__b), __b + __pos, __b, __vt);
1885
- *__b = *__vt;
1886
- }
1887
- }
1888
- else
1889
- { // insert by shifting things forward
1890
- if (__back_spare() == 0)
1891
- __add_back_capacity();
1892
- // __back_capacity >= 1
1893
- size_type __de = __base::size() - __pos;
1894
- if (__de == 0)
1895
- {
1896
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);
1897
- ++__base::size();
1898
- }
1899
- else
1900
- {
1901
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
1902
- iterator __e = __base::end();
1903
- iterator __em1 = _VSTD::prev(__e);
1904
- if (__vt == pointer_traits<const_pointer>::pointer_to(*__em1))
1905
- __vt = pointer_traits<const_pointer>::pointer_to(*__e);
1906
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
1907
- ++__base::size();
1908
- if (__de > 1)
1909
- __e = __move_backward_and_check(__e - __de, __em1, __e, __vt);
1910
- *--__e = *__vt;
1911
- }
1912
- }
1913
- return __base::begin() + __pos;
1914
- }
1915
-
1916
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1917
-
1918
- template <class _Tp, class _Allocator>
1919
- typename deque<_Tp, _Allocator>::iterator
1920
- deque<_Tp, _Allocator>::insert(const_iterator __p, value_type&& __v)
1921
- {
1922
- size_type __pos = __p - __base::begin();
1923
- size_type __to_end = __base::size() - __pos;
1924
- allocator_type& __a = __base::__alloc();
1925
- if (__pos < __to_end)
1926
- { // insert by shifting things backward
1927
- if (__front_spare() == 0)
1928
- __add_front_capacity();
1929
- // __front_spare() >= 1
1930
- if (__pos == 0)
1931
- {
1932
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));
1933
- --__base::__start_;
1934
- ++__base::size();
1935
- }
1936
- else
1937
- {
1938
- iterator __b = __base::begin();
1939
- iterator __bm1 = _VSTD::prev(__b);
1940
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
1941
- --__base::__start_;
1942
- ++__base::size();
1943
- if (__pos > 1)
1944
- __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);
1945
- *__b = _VSTD::move(__v);
1946
- }
1947
- }
1948
- else
1949
- { // insert by shifting things forward
1950
- if (__back_spare() == 0)
1951
- __add_back_capacity();
1952
- // __back_capacity >= 1
1953
- size_type __de = __base::size() - __pos;
1954
- if (__de == 0)
1955
- {
1956
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));
1957
- ++__base::size();
1958
- }
1959
- else
1960
- {
1961
- iterator __e = __base::end();
1962
- iterator __em1 = _VSTD::prev(__e);
1963
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
1964
- ++__base::size();
1965
- if (__de > 1)
1966
- __e = _VSTD::move_backward(__e - __de, __em1, __e);
1967
- *--__e = _VSTD::move(__v);
1968
- }
1969
- }
1970
- return __base::begin() + __pos;
1971
- }
1972
-
1973
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1974
-
1975
- template <class _Tp, class _Allocator>
1976
- template <class... _Args>
1977
- typename deque<_Tp, _Allocator>::iterator
1978
- deque<_Tp, _Allocator>::emplace(const_iterator __p, _Args&&... __args)
1979
- {
1980
- size_type __pos = __p - __base::begin();
1981
- size_type __to_end = __base::size() - __pos;
1982
- allocator_type& __a = __base::__alloc();
1983
- if (__pos < __to_end)
1984
- { // insert by shifting things backward
1985
- if (__front_spare() == 0)
1986
- __add_front_capacity();
1987
- // __front_spare() >= 1
1988
- if (__pos == 0)
1989
- {
1990
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);
1991
- --__base::__start_;
1992
- ++__base::size();
1993
- }
1994
- else
1995
- {
1996
- value_type __tmp(_VSTD::forward<_Args>(__args)...);
1997
- iterator __b = __base::begin();
1998
- iterator __bm1 = _VSTD::prev(__b);
1999
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
2000
- --__base::__start_;
2001
- ++__base::size();
2002
- if (__pos > 1)
2003
- __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);
2004
- *__b = _VSTD::move(__tmp);
2005
- }
2006
- }
2007
- else
2008
- { // insert by shifting things forward
2009
- if (__back_spare() == 0)
2010
- __add_back_capacity();
2011
- // __back_capacity >= 1
2012
- size_type __de = __base::size() - __pos;
2013
- if (__de == 0)
2014
- {
2015
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...);
2016
- ++__base::size();
2017
- }
2018
- else
2019
- {
2020
- value_type __tmp(_VSTD::forward<_Args>(__args)...);
2021
- iterator __e = __base::end();
2022
- iterator __em1 = _VSTD::prev(__e);
2023
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
2024
- ++__base::size();
2025
- if (__de > 1)
2026
- __e = _VSTD::move_backward(__e - __de, __em1, __e);
2027
- *--__e = _VSTD::move(__tmp);
2028
- }
2029
- }
2030
- return __base::begin() + __pos;
2031
- }
2032
-
2033
- #endif // _LIBCPP_HAS_NO_VARIADICS
2034
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2035
-
2036
- template <class _Tp, class _Allocator>
2037
- typename deque<_Tp, _Allocator>::iterator
2038
- deque<_Tp, _Allocator>::insert(const_iterator __p, size_type __n, const value_type& __v)
2039
- {
2040
- size_type __pos = __p - __base::begin();
2041
- size_type __to_end = __base::size() - __pos;
2042
- allocator_type& __a = __base::__alloc();
2043
- if (__pos < __to_end)
2044
- { // insert by shifting things backward
2045
- if (__n > __front_spare())
2046
- __add_front_capacity(__n - __front_spare());
2047
- // __n <= __front_spare()
2048
- size_type __old_n = __n;
2049
- iterator __old_begin = __base::begin();
2050
- iterator __i = __old_begin;
2051
- if (__n > __pos)
2052
- {
2053
- for (size_type __m = __n - __pos; __m; --__m, --__base::__start_, ++__base::size())
2054
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), __v);
2055
- __n = __pos;
2056
- }
2057
- if (__n > 0)
2058
- {
2059
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
2060
- iterator __obn = __old_begin + __n;
2061
- __move_construct_backward_and_check(__old_begin, __obn, __i, __vt);
2062
- if (__n < __pos)
2063
- __old_begin = __move_and_check(__obn, __old_begin + __pos, __old_begin, __vt);
2064
- _VSTD::fill_n(__old_begin, __n, *__vt);
2065
- }
2066
- }
2067
- else
2068
- { // insert by shifting things forward
2069
- size_type __back_capacity = __back_spare();
2070
- if (__n > __back_capacity)
2071
- __add_back_capacity(__n - __back_capacity);
2072
- // __n <= __back_capacity
2073
- size_type __old_n = __n;
2074
- iterator __old_end = __base::end();
2075
- iterator __i = __old_end;
2076
- size_type __de = __base::size() - __pos;
2077
- if (__n > __de)
2078
- {
2079
- for (size_type __m = __n - __de; __m; --__m, ++__i, ++__base::size())
2080
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);
2081
- __n = __de;
2082
- }
2083
- if (__n > 0)
2084
- {
2085
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
2086
- iterator __oen = __old_end - __n;
2087
- __move_construct_and_check(__oen, __old_end, __i, __vt);
2088
- if (__n < __de)
2089
- __old_end = __move_backward_and_check(__old_end - __de, __oen, __old_end, __vt);
2090
- _VSTD::fill_n(__old_end - __n, __n, *__vt);
2091
- }
2092
- }
2093
- return __base::begin() + __pos;
2094
- }
2095
-
2096
- template <class _Tp, class _Allocator>
2097
- template <class _InputIter>
2098
- typename deque<_Tp, _Allocator>::iterator
2099
- deque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l,
2100
- typename enable_if<__is_input_iterator<_InputIter>::value
2101
- &&!__is_bidirectional_iterator<_InputIter>::value>::type*)
2102
- {
2103
- __split_buffer<value_type, allocator_type&> __buf(__base::__alloc());
2104
- __buf.__construct_at_end(__f, __l);
2105
- typedef typename __split_buffer<value_type, allocator_type&>::iterator __bi;
2106
- return insert(__p, move_iterator<__bi>(__buf.begin()), move_iterator<__bi>(__buf.end()));
2107
- }
2108
-
2109
- template <class _Tp, class _Allocator>
2110
- template <class _BiIter>
2111
- typename deque<_Tp, _Allocator>::iterator
2112
- deque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l,
2113
- typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*)
2114
- {
2115
- size_type __n = _VSTD::distance(__f, __l);
2116
- size_type __pos = __p - __base::begin();
2117
- size_type __to_end = __base::size() - __pos;
2118
- allocator_type& __a = __base::__alloc();
2119
- if (__pos < __to_end)
2120
- { // insert by shifting things backward
2121
- if (__n > __front_spare())
2122
- __add_front_capacity(__n - __front_spare());
2123
- // __n <= __front_spare()
2124
- size_type __old_n = __n;
2125
- iterator __old_begin = __base::begin();
2126
- iterator __i = __old_begin;
2127
- _BiIter __m = __f;
2128
- if (__n > __pos)
2129
- {
2130
- __m = __pos < __n / 2 ? _VSTD::prev(__l, __pos) : _VSTD::next(__f, __n - __pos);
2131
- for (_BiIter __j = __m; __j != __f; --__base::__start_, ++__base::size())
2132
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), *--__j);
2133
- __n = __pos;
2134
- }
2135
- if (__n > 0)
2136
- {
2137
- iterator __obn = __old_begin + __n;
2138
- for (iterator __j = __obn; __j != __old_begin;)
2139
- {
2140
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), _VSTD::move(*--__j));
2141
- --__base::__start_;
2142
- ++__base::size();
2143
- }
2144
- if (__n < __pos)
2145
- __old_begin = _VSTD::move(__obn, __old_begin + __pos, __old_begin);
2146
- _VSTD::copy(__m, __l, __old_begin);
2147
- }
2148
- }
2149
- else
2150
- { // insert by shifting things forward
2151
- size_type __back_capacity = __back_spare();
2152
- if (__n > __back_capacity)
2153
- __add_back_capacity(__n - __back_capacity);
2154
- // __n <= __back_capacity
2155
- size_type __old_n = __n;
2156
- iterator __old_end = __base::end();
2157
- iterator __i = __old_end;
2158
- _BiIter __m = __l;
2159
- size_type __de = __base::size() - __pos;
2160
- if (__n > __de)
2161
- {
2162
- __m = __de < __n / 2 ? _VSTD::next(__f, __de) : _VSTD::prev(__l, __n - __de);
2163
- for (_BiIter __j = __m; __j != __l; ++__i, ++__j, ++__base::size())
2164
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__j);
2165
- __n = __de;
2166
- }
2167
- if (__n > 0)
2168
- {
2169
- iterator __oen = __old_end - __n;
2170
- for (iterator __j = __oen; __j != __old_end; ++__i, ++__j, ++__base::size())
2171
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), _VSTD::move(*__j));
2172
- if (__n < __de)
2173
- __old_end = _VSTD::move_backward(__old_end - __de, __oen, __old_end);
2174
- _VSTD::copy_backward(__f, __m, __old_end);
2175
- }
2176
- }
2177
- return __base::begin() + __pos;
2178
- }
2179
-
2180
- template <class _Tp, class _Allocator>
2181
- template <class _InpIter>
2182
- void
2183
- deque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l,
2184
- typename enable_if<__is_input_iterator<_InpIter>::value &&
2185
- !__is_forward_iterator<_InpIter>::value>::type*)
2186
- {
2187
- for (; __f != __l; ++__f)
2188
- push_back(*__f);
2189
- }
2190
-
2191
- template <class _Tp, class _Allocator>
2192
- template <class _ForIter>
2193
- void
2194
- deque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l,
2195
- typename enable_if<__is_forward_iterator<_ForIter>::value>::type*)
2196
- {
2197
- size_type __n = _VSTD::distance(__f, __l);
2198
- allocator_type& __a = __base::__alloc();
2199
- size_type __back_capacity = __back_spare();
2200
- if (__n > __back_capacity)
2201
- __add_back_capacity(__n - __back_capacity);
2202
- // __n <= __back_capacity
2203
- for (iterator __i = __base::end(); __f != __l; ++__i, ++__f, ++__base::size())
2204
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__f);
2205
- }
2206
-
2207
- template <class _Tp, class _Allocator>
2208
- void
2209
- deque<_Tp, _Allocator>::__append(size_type __n)
2210
- {
2211
- allocator_type& __a = __base::__alloc();
2212
- size_type __back_capacity = __back_spare();
2213
- if (__n > __back_capacity)
2214
- __add_back_capacity(__n - __back_capacity);
2215
- // __n <= __back_capacity
2216
- for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())
2217
- __alloc_traits::construct(__a, _VSTD::addressof(*__i));
2218
- }
2219
-
2220
- template <class _Tp, class _Allocator>
2221
- void
2222
- deque<_Tp, _Allocator>::__append(size_type __n, const value_type& __v)
2223
- {
2224
- allocator_type& __a = __base::__alloc();
2225
- size_type __back_capacity = __back_spare();
2226
- if (__n > __back_capacity)
2227
- __add_back_capacity(__n - __back_capacity);
2228
- // __n <= __back_capacity
2229
- for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())
2230
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);
2231
- }
2232
-
2233
- // Create front capacity for one block of elements.
2234
- // Strong guarantee. Either do it or don't touch anything.
2235
- template <class _Tp, class _Allocator>
2236
- void
2237
- deque<_Tp, _Allocator>::__add_front_capacity()
2238
- {
2239
- allocator_type& __a = __base::__alloc();
2240
- if (__back_spare() >= __base::__block_size)
2241
- {
2242
- __base::__start_ += __base::__block_size;
2243
- pointer __pt = __base::__map_.back();
2244
- __base::__map_.pop_back();
2245
- __base::__map_.push_front(__pt);
2246
- }
2247
- // Else if __base::__map_.size() < __base::__map_.capacity() then we need to allocate 1 buffer
2248
- else if (__base::__map_.size() < __base::__map_.capacity())
2249
- { // we can put the new buffer into the map, but don't shift things around
2250
- // until all buffers are allocated. If we throw, we don't need to fix
2251
- // anything up (any added buffers are undetectible)
2252
- if (__base::__map_.__front_spare() > 0)
2253
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2254
- else
2255
- {
2256
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2257
- // Done allocating, reorder capacity
2258
- pointer __pt = __base::__map_.back();
2259
- __base::__map_.pop_back();
2260
- __base::__map_.push_front(__pt);
2261
- }
2262
- __base::__start_ = __base::__map_.size() == 1 ?
2263
- __base::__block_size / 2 :
2264
- __base::__start_ + __base::__block_size;
2265
- }
2266
- // Else need to allocate 1 buffer, *and* we need to reallocate __map_.
2267
- else
2268
- {
2269
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2270
- __buf(max<size_type>(2 * __base::__map_.capacity(), 1),
2271
- 0, __base::__map_.__alloc());
2272
- #ifndef _LIBCPP_NO_EXCEPTIONS
2273
- try
2274
- {
2275
- #endif // _LIBCPP_NO_EXCEPTIONS
2276
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2277
- #ifndef _LIBCPP_NO_EXCEPTIONS
2278
- }
2279
- catch (...)
2280
- {
2281
- __alloc_traits::deallocate(__a, __buf.front(), __base::__block_size);
2282
- throw;
2283
- }
2284
- #endif // _LIBCPP_NO_EXCEPTIONS
2285
- for (typename __base::__map_pointer __i = __base::__map_.begin();
2286
- __i != __base::__map_.end(); ++__i)
2287
- __buf.push_back(*__i);
2288
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2289
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2290
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2291
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2292
- __base::__start_ = __base::__map_.size() == 1 ?
2293
- __base::__block_size / 2 :
2294
- __base::__start_ + __base::__block_size;
2295
- }
2296
- }
2297
-
2298
- // Create front capacity for __n elements.
2299
- // Strong guarantee. Either do it or don't touch anything.
2300
- template <class _Tp, class _Allocator>
2301
- void
2302
- deque<_Tp, _Allocator>::__add_front_capacity(size_type __n)
2303
- {
2304
- allocator_type& __a = __base::__alloc();
2305
- size_type __nb = __recommend_blocks(__n + __base::__map_.empty());
2306
- // Number of unused blocks at back:
2307
- size_type __back_capacity = __back_spare() / __base::__block_size;
2308
- __back_capacity = _VSTD::min(__back_capacity, __nb); // don't take more than you need
2309
- __nb -= __back_capacity; // number of blocks need to allocate
2310
- // If __nb == 0, then we have sufficient capacity.
2311
- if (__nb == 0)
2312
- {
2313
- __base::__start_ += __base::__block_size * __back_capacity;
2314
- for (; __back_capacity > 0; --__back_capacity)
2315
- {
2316
- pointer __pt = __base::__map_.back();
2317
- __base::__map_.pop_back();
2318
- __base::__map_.push_front(__pt);
2319
- }
2320
- }
2321
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2322
- else if (__nb <= __base::__map_.capacity() - __base::__map_.size())
2323
- { // we can put the new buffers into the map, but don't shift things around
2324
- // until all buffers are allocated. If we throw, we don't need to fix
2325
- // anything up (any added buffers are undetectible)
2326
- for (; __nb > 0; --__nb, __base::__start_ += __base::__block_size - (__base::__map_.size() == 1))
2327
- {
2328
- if (__base::__map_.__front_spare() == 0)
2329
- break;
2330
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2331
- }
2332
- for (; __nb > 0; --__nb, ++__back_capacity)
2333
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2334
- // Done allocating, reorder capacity
2335
- __base::__start_ += __back_capacity * __base::__block_size;
2336
- for (; __back_capacity > 0; --__back_capacity)
2337
- {
2338
- pointer __pt = __base::__map_.back();
2339
- __base::__map_.pop_back();
2340
- __base::__map_.push_front(__pt);
2341
- }
2342
- }
2343
- // Else need to allocate __nb buffers, *and* we need to reallocate __map_.
2344
- else
2345
- {
2346
- size_type __ds = (__nb + __back_capacity) * __base::__block_size - __base::__map_.empty();
2347
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2348
- __buf(max<size_type>(2* __base::__map_.capacity(),
2349
- __nb + __base::__map_.size()),
2350
- 0, __base::__map_.__alloc());
2351
- #ifndef _LIBCPP_NO_EXCEPTIONS
2352
- try
2353
- {
2354
- #endif // _LIBCPP_NO_EXCEPTIONS
2355
- for (; __nb > 0; --__nb)
2356
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2357
- #ifndef _LIBCPP_NO_EXCEPTIONS
2358
- }
2359
- catch (...)
2360
- {
2361
- for (typename __base::__map_pointer __i = __buf.begin();
2362
- __i != __buf.end(); ++__i)
2363
- __alloc_traits::deallocate(__a, *__i, __base::__block_size);
2364
- throw;
2365
- }
2366
- #endif // _LIBCPP_NO_EXCEPTIONS
2367
- for (; __back_capacity > 0; --__back_capacity)
2368
- {
2369
- __buf.push_back(__base::__map_.back());
2370
- __base::__map_.pop_back();
2371
- }
2372
- for (typename __base::__map_pointer __i = __base::__map_.begin();
2373
- __i != __base::__map_.end(); ++__i)
2374
- __buf.push_back(*__i);
2375
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2376
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2377
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2378
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2379
- __base::__start_ += __ds;
2380
- }
2381
- }
2382
-
2383
- // Create back capacity for one block of elements.
2384
- // Strong guarantee. Either do it or don't touch anything.
2385
- template <class _Tp, class _Allocator>
2386
- void
2387
- deque<_Tp, _Allocator>::__add_back_capacity()
2388
- {
2389
- allocator_type& __a = __base::__alloc();
2390
- if (__front_spare() >= __base::__block_size)
2391
- {
2392
- __base::__start_ -= __base::__block_size;
2393
- pointer __pt = __base::__map_.front();
2394
- __base::__map_.pop_front();
2395
- __base::__map_.push_back(__pt);
2396
- }
2397
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2398
- else if (__base::__map_.size() < __base::__map_.capacity())
2399
- { // we can put the new buffer into the map, but don't shift things around
2400
- // until it is allocated. If we throw, we don't need to fix
2401
- // anything up (any added buffers are undetectible)
2402
- if (__base::__map_.__back_spare() != 0)
2403
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2404
- else
2405
- {
2406
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2407
- // Done allocating, reorder capacity
2408
- pointer __pt = __base::__map_.front();
2409
- __base::__map_.pop_front();
2410
- __base::__map_.push_back(__pt);
2411
- }
2412
- }
2413
- // Else need to allocate 1 buffer, *and* we need to reallocate __map_.
2414
- else
2415
- {
2416
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2417
- __buf(max<size_type>(2* __base::__map_.capacity(), 1),
2418
- __base::__map_.size(),
2419
- __base::__map_.__alloc());
2420
- #ifndef _LIBCPP_NO_EXCEPTIONS
2421
- try
2422
- {
2423
- #endif // _LIBCPP_NO_EXCEPTIONS
2424
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2425
- #ifndef _LIBCPP_NO_EXCEPTIONS
2426
- }
2427
- catch (...)
2428
- {
2429
- __alloc_traits::deallocate(__a, __buf.back(), __base::__block_size);
2430
- throw;
2431
- }
2432
- #endif // _LIBCPP_NO_EXCEPTIONS
2433
- for (typename __base::__map_pointer __i = __base::__map_.end();
2434
- __i != __base::__map_.begin();)
2435
- __buf.push_front(*--__i);
2436
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2437
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2438
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2439
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2440
- }
2441
- }
2442
-
2443
- // Create back capacity for __n elements.
2444
- // Strong guarantee. Either do it or don't touch anything.
2445
- template <class _Tp, class _Allocator>
2446
- void
2447
- deque<_Tp, _Allocator>::__add_back_capacity(size_type __n)
2448
- {
2449
- allocator_type& __a = __base::__alloc();
2450
- size_type __nb = __recommend_blocks(__n + __base::__map_.empty());
2451
- // Number of unused blocks at front:
2452
- size_type __front_capacity = __front_spare() / __base::__block_size;
2453
- __front_capacity = _VSTD::min(__front_capacity, __nb); // don't take more than you need
2454
- __nb -= __front_capacity; // number of blocks need to allocate
2455
- // If __nb == 0, then we have sufficient capacity.
2456
- if (__nb == 0)
2457
- {
2458
- __base::__start_ -= __base::__block_size * __front_capacity;
2459
- for (; __front_capacity > 0; --__front_capacity)
2460
- {
2461
- pointer __pt = __base::__map_.front();
2462
- __base::__map_.pop_front();
2463
- __base::__map_.push_back(__pt);
2464
- }
2465
- }
2466
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2467
- else if (__nb <= __base::__map_.capacity() - __base::__map_.size())
2468
- { // we can put the new buffers into the map, but don't shift things around
2469
- // until all buffers are allocated. If we throw, we don't need to fix
2470
- // anything up (any added buffers are undetectible)
2471
- for (; __nb > 0; --__nb)
2472
- {
2473
- if (__base::__map_.__back_spare() == 0)
2474
- break;
2475
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2476
- }
2477
- for (; __nb > 0; --__nb, ++__front_capacity, __base::__start_ +=
2478
- __base::__block_size - (__base::__map_.size() == 1))
2479
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2480
- // Done allocating, reorder capacity
2481
- __base::__start_ -= __base::__block_size * __front_capacity;
2482
- for (; __front_capacity > 0; --__front_capacity)
2483
- {
2484
- pointer __pt = __base::__map_.front();
2485
- __base::__map_.pop_front();
2486
- __base::__map_.push_back(__pt);
2487
- }
2488
- }
2489
- // Else need to allocate __nb buffers, *and* we need to reallocate __map_.
2490
- else
2491
- {
2492
- size_type __ds = __front_capacity * __base::__block_size;
2493
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2494
- __buf(max<size_type>(2* __base::__map_.capacity(),
2495
- __nb + __base::__map_.size()),
2496
- __base::__map_.size() - __front_capacity,
2497
- __base::__map_.__alloc());
2498
- #ifndef _LIBCPP_NO_EXCEPTIONS
2499
- try
2500
- {
2501
- #endif // _LIBCPP_NO_EXCEPTIONS
2502
- for (; __nb > 0; --__nb)
2503
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2504
- #ifndef _LIBCPP_NO_EXCEPTIONS
2505
- }
2506
- catch (...)
2507
- {
2508
- for (typename __base::__map_pointer __i = __buf.begin();
2509
- __i != __buf.end(); ++__i)
2510
- __alloc_traits::deallocate(__a, *__i, __base::__block_size);
2511
- throw;
2512
- }
2513
- #endif // _LIBCPP_NO_EXCEPTIONS
2514
- for (; __front_capacity > 0; --__front_capacity)
2515
- {
2516
- __buf.push_back(__base::__map_.front());
2517
- __base::__map_.pop_front();
2518
- }
2519
- for (typename __base::__map_pointer __i = __base::__map_.end();
2520
- __i != __base::__map_.begin();)
2521
- __buf.push_front(*--__i);
2522
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2523
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2524
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2525
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2526
- __base::__start_ -= __ds;
2527
- }
2528
- }
2529
-
2530
- template <class _Tp, class _Allocator>
2531
- void
2532
- deque<_Tp, _Allocator>::pop_front()
2533
- {
2534
- allocator_type& __a = __base::__alloc();
2535
- __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +
2536
- __base::__start_ / __base::__block_size) +
2537
- __base::__start_ % __base::__block_size));
2538
- --__base::size();
2539
- if (++__base::__start_ >= 2 * __base::__block_size)
2540
- {
2541
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2542
- __base::__map_.pop_front();
2543
- __base::__start_ -= __base::__block_size;
2544
- }
2545
- }
2546
-
2547
- template <class _Tp, class _Allocator>
2548
- void
2549
- deque<_Tp, _Allocator>::pop_back()
2550
- {
2551
- allocator_type& __a = __base::__alloc();
2552
- size_type __p = __base::size() + __base::__start_ - 1;
2553
- __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +
2554
- __p / __base::__block_size) +
2555
- __p % __base::__block_size));
2556
- --__base::size();
2557
- if (__back_spare() >= 2 * __base::__block_size)
2558
- {
2559
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2560
- __base::__map_.pop_back();
2561
- }
2562
- }
2563
-
2564
- // move assign [__f, __l) to [__r, __r + (__l-__f)).
2565
- // If __vt points into [__f, __l), then subtract (__f - __r) from __vt.
2566
- template <class _Tp, class _Allocator>
2567
- typename deque<_Tp, _Allocator>::iterator
2568
- deque<_Tp, _Allocator>::__move_and_check(iterator __f, iterator __l, iterator __r,
2569
- const_pointer& __vt)
2570
- {
2571
- // as if
2572
- // for (; __f != __l; ++__f, ++__r)
2573
- // *__r = _VSTD::move(*__f);
2574
- difference_type __n = __l - __f;
2575
- while (__n > 0)
2576
- {
2577
- pointer __fb = __f.__ptr_;
2578
- pointer __fe = *__f.__m_iter_ + __base::__block_size;
2579
- difference_type __bs = __fe - __fb;
2580
- if (__bs > __n)
2581
- {
2582
- __bs = __n;
2583
- __fe = __fb + __bs;
2584
- }
2585
- if (__fb <= __vt && __vt < __fe)
2586
- __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) -= __f - __r).__ptr_;
2587
- __r = _VSTD::move(__fb, __fe, __r);
2588
- __n -= __bs;
2589
- __f += __bs;
2590
- }
2591
- return __r;
2592
- }
2593
-
2594
- // move assign [__f, __l) to [__r - (__l-__f), __r) backwards.
2595
- // If __vt points into [__f, __l), then add (__r - __l) to __vt.
2596
- template <class _Tp, class _Allocator>
2597
- typename deque<_Tp, _Allocator>::iterator
2598
- deque<_Tp, _Allocator>::__move_backward_and_check(iterator __f, iterator __l, iterator __r,
2599
- const_pointer& __vt)
2600
- {
2601
- // as if
2602
- // while (__f != __l)
2603
- // *--__r = _VSTD::move(*--__l);
2604
- difference_type __n = __l - __f;
2605
- while (__n > 0)
2606
- {
2607
- --__l;
2608
- pointer __lb = *__l.__m_iter_;
2609
- pointer __le = __l.__ptr_ + 1;
2610
- difference_type __bs = __le - __lb;
2611
- if (__bs > __n)
2612
- {
2613
- __bs = __n;
2614
- __lb = __le - __bs;
2615
- }
2616
- if (__lb <= __vt && __vt < __le)
2617
- __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) += __r - __l - 1).__ptr_;
2618
- __r = _VSTD::move_backward(__lb, __le, __r);
2619
- __n -= __bs;
2620
- __l -= __bs - 1;
2621
- }
2622
- return __r;
2623
- }
2624
-
2625
- // move construct [__f, __l) to [__r, __r + (__l-__f)).
2626
- // If __vt points into [__f, __l), then add (__r - __f) to __vt.
2627
- template <class _Tp, class _Allocator>
2628
- void
2629
- deque<_Tp, _Allocator>::__move_construct_and_check(iterator __f, iterator __l,
2630
- iterator __r, const_pointer& __vt)
2631
- {
2632
- allocator_type& __a = __base::__alloc();
2633
- // as if
2634
- // for (; __f != __l; ++__r, ++__f, ++__base::size())
2635
- // __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__f));
2636
- difference_type __n = __l - __f;
2637
- while (__n > 0)
2638
- {
2639
- pointer __fb = __f.__ptr_;
2640
- pointer __fe = *__f.__m_iter_ + __base::__block_size;
2641
- difference_type __bs = __fe - __fb;
2642
- if (__bs > __n)
2643
- {
2644
- __bs = __n;
2645
- __fe = __fb + __bs;
2646
- }
2647
- if (__fb <= __vt && __vt < __fe)
2648
- __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) += __r - __f).__ptr_;
2649
- for (; __fb != __fe; ++__fb, ++__r, ++__base::size())
2650
- __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__fb));
2651
- __n -= __bs;
2652
- __f += __bs;
2653
- }
2654
- }
2655
-
2656
- // move construct [__f, __l) to [__r - (__l-__f), __r) backwards.
2657
- // If __vt points into [__f, __l), then subtract (__l - __r) from __vt.
2658
- template <class _Tp, class _Allocator>
2659
- void
2660
- deque<_Tp, _Allocator>::__move_construct_backward_and_check(iterator __f, iterator __l,
2661
- iterator __r, const_pointer& __vt)
2662
- {
2663
- allocator_type& __a = __base::__alloc();
2664
- // as if
2665
- // for (iterator __j = __l; __j != __f;)
2666
- // {
2667
- // __alloc_traitsconstruct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__j));
2668
- // --__base::__start_;
2669
- // ++__base::size();
2670
- // }
2671
- difference_type __n = __l - __f;
2672
- while (__n > 0)
2673
- {
2674
- --__l;
2675
- pointer __lb = *__l.__m_iter_;
2676
- pointer __le = __l.__ptr_ + 1;
2677
- difference_type __bs = __le - __lb;
2678
- if (__bs > __n)
2679
- {
2680
- __bs = __n;
2681
- __lb = __le - __bs;
2682
- }
2683
- if (__lb <= __vt && __vt < __le)
2684
- __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) -= __l - __r + 1).__ptr_;
2685
- while (__le != __lb)
2686
- {
2687
- __alloc_traits::construct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__le));
2688
- --__base::__start_;
2689
- ++__base::size();
2690
- }
2691
- __n -= __bs;
2692
- __l -= __bs - 1;
2693
- }
2694
- }
2695
-
2696
- template <class _Tp, class _Allocator>
2697
- typename deque<_Tp, _Allocator>::iterator
2698
- deque<_Tp, _Allocator>::erase(const_iterator __f)
2699
- {
2700
- difference_type __n = 1;
2701
- iterator __b = __base::begin();
2702
- difference_type __pos = __f - __b;
2703
- iterator __p = __b + __pos;
2704
- allocator_type& __a = __base::__alloc();
2705
- if (__pos < (__base::size() - 1) / 2)
2706
- { // erase from front
2707
- _VSTD::move_backward(__b, __p, _VSTD::next(__p));
2708
- __alloc_traits::destroy(__a, _VSTD::addressof(*__b));
2709
- --__base::size();
2710
- ++__base::__start_;
2711
- if (__front_spare() >= 2 * __base::__block_size)
2712
- {
2713
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2714
- __base::__map_.pop_front();
2715
- __base::__start_ -= __base::__block_size;
2716
- }
2717
- }
2718
- else
2719
- { // erase from back
2720
- iterator __i = _VSTD::move(_VSTD::next(__p), __base::end(), __p);
2721
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
2722
- --__base::size();
2723
- if (__back_spare() >= 2 * __base::__block_size)
2724
- {
2725
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2726
- __base::__map_.pop_back();
2727
- }
2728
- }
2729
- return __base::begin() + __pos;
2730
- }
2731
-
2732
- template <class _Tp, class _Allocator>
2733
- typename deque<_Tp, _Allocator>::iterator
2734
- deque<_Tp, _Allocator>::erase(const_iterator __f, const_iterator __l)
2735
- {
2736
- difference_type __n = __l - __f;
2737
- iterator __b = __base::begin();
2738
- difference_type __pos = __f - __b;
2739
- iterator __p = __b + __pos;
2740
- if (__n > 0)
2741
- {
2742
- allocator_type& __a = __base::__alloc();
2743
- if (__pos < (__base::size() - __n) / 2)
2744
- { // erase from front
2745
- iterator __i = _VSTD::move_backward(__b, __p, __p + __n);
2746
- for (; __b != __i; ++__b)
2747
- __alloc_traits::destroy(__a, _VSTD::addressof(*__b));
2748
- __base::size() -= __n;
2749
- __base::__start_ += __n;
2750
- while (__front_spare() >= 2 * __base::__block_size)
2751
- {
2752
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2753
- __base::__map_.pop_front();
2754
- __base::__start_ -= __base::__block_size;
2755
- }
2756
- }
2757
- else
2758
- { // erase from back
2759
- iterator __i = _VSTD::move(__p + __n, __base::end(), __p);
2760
- for (iterator __e = __base::end(); __i != __e; ++__i)
2761
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
2762
- __base::size() -= __n;
2763
- while (__back_spare() >= 2 * __base::__block_size)
2764
- {
2765
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2766
- __base::__map_.pop_back();
2767
- }
2768
- }
2769
- }
2770
- return __base::begin() + __pos;
2771
- }
2772
-
2773
- template <class _Tp, class _Allocator>
2774
- void
2775
- deque<_Tp, _Allocator>::__erase_to_end(const_iterator __f)
2776
- {
2777
- iterator __e = __base::end();
2778
- difference_type __n = __e - __f;
2779
- if (__n > 0)
2780
- {
2781
- allocator_type& __a = __base::__alloc();
2782
- iterator __b = __base::begin();
2783
- difference_type __pos = __f - __b;
2784
- for (iterator __p = __b + __pos; __p != __e; ++__p)
2785
- __alloc_traits::destroy(__a, _VSTD::addressof(*__p));
2786
- __base::size() -= __n;
2787
- while (__back_spare() >= 2 * __base::__block_size)
2788
- {
2789
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2790
- __base::__map_.pop_back();
2791
- }
2792
- }
2793
- }
2794
-
2795
- template <class _Tp, class _Allocator>
2796
- inline _LIBCPP_INLINE_VISIBILITY
2797
- void
2798
- deque<_Tp, _Allocator>::swap(deque& __c)
2799
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
2800
- __is_nothrow_swappable<allocator_type>::value)
2801
- {
2802
- __base::swap(__c);
2803
- }
2804
-
2805
- template <class _Tp, class _Allocator>
2806
- inline _LIBCPP_INLINE_VISIBILITY
2807
- void
2808
- deque<_Tp, _Allocator>::clear() _NOEXCEPT
2809
- {
2810
- __base::clear();
2811
- }
2812
-
2813
- template <class _Tp, class _Allocator>
2814
- inline _LIBCPP_INLINE_VISIBILITY
2815
- bool
2816
- operator==(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2817
- {
2818
- const typename deque<_Tp, _Allocator>::size_type __sz = __x.size();
2819
- return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());
2820
- }
2821
-
2822
- template <class _Tp, class _Allocator>
2823
- inline _LIBCPP_INLINE_VISIBILITY
2824
- bool
2825
- operator!=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2826
- {
2827
- return !(__x == __y);
2828
- }
2829
-
2830
- template <class _Tp, class _Allocator>
2831
- inline _LIBCPP_INLINE_VISIBILITY
2832
- bool
2833
- operator< (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2834
- {
2835
- return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());
2836
- }
2837
-
2838
- template <class _Tp, class _Allocator>
2839
- inline _LIBCPP_INLINE_VISIBILITY
2840
- bool
2841
- operator> (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2842
- {
2843
- return __y < __x;
2844
- }
2845
-
2846
- template <class _Tp, class _Allocator>
2847
- inline _LIBCPP_INLINE_VISIBILITY
2848
- bool
2849
- operator>=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2850
- {
2851
- return !(__x < __y);
2852
- }
2853
-
2854
- template <class _Tp, class _Allocator>
2855
- inline _LIBCPP_INLINE_VISIBILITY
2856
- bool
2857
- operator<=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2858
- {
2859
- return !(__y < __x);
2860
- }
2861
-
2862
- template <class _Tp, class _Allocator>
2863
- inline _LIBCPP_INLINE_VISIBILITY
2864
- void
2865
- swap(deque<_Tp, _Allocator>& __x, deque<_Tp, _Allocator>& __y)
2866
- _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
2867
- {
2868
- __x.swap(__y);
2869
- }
2870
-
2871
- _LIBCPP_END_NAMESPACE_STD
2872
-
2873
- #endif // _LIBCPP_DEQUE