webruby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/webruby +36 -0
  3. data/driver/driver.c +50 -0
  4. data/driver/main.c +40 -0
  5. data/lib/webruby/app.rb +13 -0
  6. data/lib/webruby/config.rb +61 -0
  7. data/lib/webruby/environment.rb +32 -0
  8. data/lib/webruby/rake/files.rake +66 -0
  9. data/lib/webruby/rake/general.rake +22 -0
  10. data/lib/webruby/rake/mruby.rake +44 -0
  11. data/lib/webruby/utility.rb +132 -0
  12. data/lib/webruby.rb +10 -0
  13. data/modules/emscripten/AUTHORS +89 -0
  14. data/modules/emscripten/LICENSE +68 -0
  15. data/modules/emscripten/README.markdown +14 -0
  16. data/modules/emscripten/cmake/Platform/Emscripten.cmake +61 -0
  17. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +24 -0
  18. data/modules/emscripten/em++ +12 -0
  19. data/modules/emscripten/em++.bat +2 -0
  20. data/modules/emscripten/em-config +24 -0
  21. data/modules/emscripten/em-config.bat +2 -0
  22. data/modules/emscripten/emar +24 -0
  23. data/modules/emscripten/emar.bat +2 -0
  24. data/modules/emscripten/emcc +1744 -0
  25. data/modules/emscripten/emcc.bat +2 -0
  26. data/modules/emscripten/emcc.py +5 -0
  27. data/modules/emscripten/emconfigure +27 -0
  28. data/modules/emscripten/emconfigure.bat +2 -0
  29. data/modules/emscripten/emlibtool +11 -0
  30. data/modules/emscripten/emlibtool.bat +2 -0
  31. data/modules/emscripten/emlink.py +293 -0
  32. data/modules/emscripten/emmake +29 -0
  33. data/modules/emscripten/emmake.bat +2 -0
  34. data/modules/emscripten/emranlib +9 -0
  35. data/modules/emscripten/emranlib.bat +2 -0
  36. data/modules/emscripten/emscons +20 -0
  37. data/modules/emscripten/emscripten.py +835 -0
  38. data/modules/emscripten/patches/README +4 -0
  39. data/modules/emscripten/patches/series +2 -0
  40. data/modules/emscripten/scons-tools/closure.py +28 -0
  41. data/modules/emscripten/scons-tools/emscripten.py +359 -0
  42. data/modules/emscripten/scons-tools/llvm.py +33 -0
  43. data/modules/emscripten/src/analyzer.js +1695 -0
  44. data/modules/emscripten/src/compiler.html +48 -0
  45. data/modules/emscripten/src/compiler.js +298 -0
  46. data/modules/emscripten/src/corruptionCheck.js +98 -0
  47. data/modules/emscripten/src/determinstic.js +20 -0
  48. data/modules/emscripten/src/embind/embind.js +1677 -0
  49. data/modules/emscripten/src/embind/emval.js +283 -0
  50. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +97 -0
  51. data/modules/emscripten/src/experimental/batching.diff +44 -0
  52. data/modules/emscripten/src/experimental/functypeopt.diff +113 -0
  53. data/modules/emscripten/src/experimental/multiple_heaps.diff +175 -0
  54. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +197 -0
  55. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +124 -0
  56. data/modules/emscripten/src/experimental/remove__label__s.diff +140 -0
  57. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +99 -0
  58. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +57 -0
  59. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +336 -0
  60. data/modules/emscripten/src/experimental/stringCache.diff +147 -0
  61. data/modules/emscripten/src/fastLong.js +299 -0
  62. data/modules/emscripten/src/framework.js +257 -0
  63. data/modules/emscripten/src/gl-matrix.js +1952 -0
  64. data/modules/emscripten/src/headless.js +904 -0
  65. data/modules/emscripten/src/intertyper.js +1050 -0
  66. data/modules/emscripten/src/jsifier.js +1827 -0
  67. data/modules/emscripten/src/library.js +8270 -0
  68. data/modules/emscripten/src/library_browser.js +911 -0
  69. data/modules/emscripten/src/library_egl.js +491 -0
  70. data/modules/emscripten/src/library_gc.js +236 -0
  71. data/modules/emscripten/src/library_gl.js +4452 -0
  72. data/modules/emscripten/src/library_glfw.js +576 -0
  73. data/modules/emscripten/src/library_glut.js +449 -0
  74. data/modules/emscripten/src/library_jansson.js +320 -0
  75. data/modules/emscripten/src/library_openal.js +602 -0
  76. data/modules/emscripten/src/library_sdl.js +2024 -0
  77. data/modules/emscripten/src/library_strtok_r.c +97 -0
  78. data/modules/emscripten/src/library_xlib.js +23 -0
  79. data/modules/emscripten/src/long.js +1609 -0
  80. data/modules/emscripten/src/modules.js +491 -0
  81. data/modules/emscripten/src/parseTools.js +2474 -0
  82. data/modules/emscripten/src/postamble.js +170 -0
  83. data/modules/emscripten/src/postamble_sharedlib.js +16 -0
  84. data/modules/emscripten/src/preamble.js +914 -0
  85. data/modules/emscripten/src/preamble_sharedlib.js +25 -0
  86. data/modules/emscripten/src/relooper/README.markdown +14 -0
  87. data/modules/emscripten/src/relooper/Relooper.cpp +1236 -0
  88. data/modules/emscripten/src/relooper/Relooper.h +250 -0
  89. data/modules/emscripten/src/relooper/doit.sh +70 -0
  90. data/modules/emscripten/src/relooper/emscripten/glue.js +57 -0
  91. data/modules/emscripten/src/relooper/emscripten/test.js +44 -0
  92. data/modules/emscripten/src/relooper/fuzzer.py +116 -0
  93. data/modules/emscripten/src/relooper/ministring.h +35 -0
  94. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  95. data/modules/emscripten/src/relooper/test.cpp +262 -0
  96. data/modules/emscripten/src/relooper/test.txt +155 -0
  97. data/modules/emscripten/src/relooper/test2.c +44 -0
  98. data/modules/emscripten/src/relooper/test2.txt +12 -0
  99. data/modules/emscripten/src/relooper/test3.c +42 -0
  100. data/modules/emscripten/src/relooper/test3.txt +27 -0
  101. data/modules/emscripten/src/relooper/test4.cpp +40 -0
  102. data/modules/emscripten/src/relooper/test4.txt +23 -0
  103. data/modules/emscripten/src/relooper/test5.cpp +40 -0
  104. data/modules/emscripten/src/relooper/test5.txt +32 -0
  105. data/modules/emscripten/src/relooper/test6.cpp +31 -0
  106. data/modules/emscripten/src/relooper/test6.txt +12 -0
  107. data/modules/emscripten/src/relooper/test_dead.cpp +28 -0
  108. data/modules/emscripten/src/relooper/test_dead.txt +9 -0
  109. data/modules/emscripten/src/relooper/test_debug.cpp +30 -0
  110. data/modules/emscripten/src/relooper/test_debug.txt +128 -0
  111. data/modules/emscripten/src/relooper/test_fuzz1.cpp +52 -0
  112. data/modules/emscripten/src/relooper/test_fuzz1.txt +32 -0
  113. data/modules/emscripten/src/relooper/test_fuzz2.cpp +34 -0
  114. data/modules/emscripten/src/relooper/test_fuzz2.txt +13 -0
  115. data/modules/emscripten/src/relooper/test_fuzz3.cpp +36 -0
  116. data/modules/emscripten/src/relooper/test_fuzz3.txt +9 -0
  117. data/modules/emscripten/src/relooper/test_fuzz4.cpp +38 -0
  118. data/modules/emscripten/src/relooper/test_fuzz4.txt +19 -0
  119. data/modules/emscripten/src/relooper/test_fuzz5.cpp +57 -0
  120. data/modules/emscripten/src/relooper/test_fuzz5.txt +52 -0
  121. data/modules/emscripten/src/relooper/test_fuzz6.cpp +322 -0
  122. data/modules/emscripten/src/relooper/test_fuzz6.txt +108 -0
  123. data/modules/emscripten/src/relooper/test_inf.cpp +813 -0
  124. data/modules/emscripten/src/relooper/test_inf.txt +385 -0
  125. data/modules/emscripten/src/relooper/testit.sh +62 -0
  126. data/modules/emscripten/src/relooper/updateit.sh +17 -0
  127. data/modules/emscripten/src/relooper.js +11516 -0
  128. data/modules/emscripten/src/relooper.js.raw.js +11511 -0
  129. data/modules/emscripten/src/runtime.js +546 -0
  130. data/modules/emscripten/src/settings.js +1284 -0
  131. data/modules/emscripten/src/shell.html +92 -0
  132. data/modules/emscripten/src/shell.js +153 -0
  133. data/modules/emscripten/src/shell_sharedlib.js +12 -0
  134. data/modules/emscripten/src/socket.io.js +3870 -0
  135. data/modules/emscripten/src/utility.js +379 -0
  136. data/modules/emscripten/src/wrtcp.js +821 -0
  137. data/modules/emscripten/system/include/AL/al.h +172 -0
  138. data/modules/emscripten/system/include/AL/alc.h +84 -0
  139. data/modules/emscripten/system/include/EGL/egl.h +329 -0
  140. data/modules/emscripten/system/include/EGL/eglext.h +398 -0
  141. data/modules/emscripten/system/include/EGL/eglplatform.h +141 -0
  142. data/modules/emscripten/system/include/GL/freeglut_std.h +628 -0
  143. data/modules/emscripten/system/include/GL/gl.h +2241 -0
  144. data/modules/emscripten/system/include/GL/glew.h +6 -0
  145. data/modules/emscripten/system/include/GL/glext.h +11127 -0
  146. data/modules/emscripten/system/include/GL/glfw.h +518 -0
  147. data/modules/emscripten/system/include/GL/glu.h +353 -0
  148. data/modules/emscripten/system/include/GL/glut.h +21 -0
  149. data/modules/emscripten/system/include/GLES/gl.h +770 -0
  150. data/modules/emscripten/system/include/GLES/glext.h +1278 -0
  151. data/modules/emscripten/system/include/GLES/glplatform.h +30 -0
  152. data/modules/emscripten/system/include/GLES2/gl2.h +621 -0
  153. data/modules/emscripten/system/include/GLES2/gl2ext.h +803 -0
  154. data/modules/emscripten/system/include/GLES2/gl2platform.h +30 -0
  155. data/modules/emscripten/system/include/KHR/khrplatform.h +277 -0
  156. data/modules/emscripten/system/include/SDL/COPYING +19 -0
  157. data/modules/emscripten/system/include/SDL/SDL.h +162 -0
  158. data/modules/emscripten/system/include/SDL/SDL_assert.h +241 -0
  159. data/modules/emscripten/system/include/SDL/SDL_atomic.h +318 -0
  160. data/modules/emscripten/system/include/SDL/SDL_audio.h +509 -0
  161. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +60 -0
  162. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +75 -0
  163. data/modules/emscripten/system/include/SDL/SDL_compat.h +365 -0
  164. data/modules/emscripten/system/include/SDL/SDL_config.h +48 -0
  165. data/modules/emscripten/system/include/SDL/SDL_config.h.in +297 -0
  166. data/modules/emscripten/system/include/SDL/SDL_config_android.h +133 -0
  167. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +148 -0
  168. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +172 -0
  169. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +74 -0
  170. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +129 -0
  171. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +125 -0
  172. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +207 -0
  173. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +119 -0
  174. data/modules/emscripten/system/include/SDL/SDL_copying.h +20 -0
  175. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +150 -0
  176. data/modules/emscripten/system/include/SDL/SDL_endian.h +248 -0
  177. data/modules/emscripten/system/include/SDL/SDL_error.h +77 -0
  178. data/modules/emscripten/system/include/SDL/SDL_events.h +639 -0
  179. data/modules/emscripten/system/include/SDL/SDL_gesture.h +91 -0
  180. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +246 -0
  181. data/modules/emscripten/system/include/SDL/SDL_haptic.h +1200 -0
  182. data/modules/emscripten/system/include/SDL/SDL_hints.h +206 -0
  183. data/modules/emscripten/system/include/SDL/SDL_image.h +138 -0
  184. data/modules/emscripten/system/include/SDL/SDL_input.h +87 -0
  185. data/modules/emscripten/system/include/SDL/SDL_joystick.h +208 -0
  186. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +169 -0
  187. data/modules/emscripten/system/include/SDL/SDL_keycode.h +344 -0
  188. data/modules/emscripten/system/include/SDL/SDL_loadso.h +85 -0
  189. data/modules/emscripten/system/include/SDL/SDL_log.h +211 -0
  190. data/modules/emscripten/system/include/SDL/SDL_main.h +98 -0
  191. data/modules/emscripten/system/include/SDL/SDL_mixer.h +634 -0
  192. data/modules/emscripten/system/include/SDL/SDL_mouse.h +213 -0
  193. data/modules/emscripten/system/include/SDL/SDL_mutex.h +248 -0
  194. data/modules/emscripten/system/include/SDL/SDL_name.h +11 -0
  195. data/modules/emscripten/system/include/SDL/SDL_opengl.h +11116 -0
  196. data/modules/emscripten/system/include/SDL/SDL_opengles.h +38 -0
  197. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +38 -0
  198. data/modules/emscripten/system/include/SDL/SDL_pixels.h +423 -0
  199. data/modules/emscripten/system/include/SDL/SDL_platform.h +160 -0
  200. data/modules/emscripten/system/include/SDL/SDL_power.h +79 -0
  201. data/modules/emscripten/system/include/SDL/SDL_quit.h +58 -0
  202. data/modules/emscripten/system/include/SDL/SDL_rect.h +136 -0
  203. data/modules/emscripten/system/include/SDL/SDL_render.h +615 -0
  204. data/modules/emscripten/system/include/SDL/SDL_revision.h +2 -0
  205. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +2 -0
  206. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +123 -0
  207. data/modules/emscripten/system/include/SDL/SDL_rwops.h +220 -0
  208. data/modules/emscripten/system/include/SDL/SDL_scancode.h +398 -0
  209. data/modules/emscripten/system/include/SDL/SDL_shape.h +147 -0
  210. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +764 -0
  211. data/modules/emscripten/system/include/SDL/SDL_surface.h +499 -0
  212. data/modules/emscripten/system/include/SDL/SDL_syswm.h +241 -0
  213. data/modules/emscripten/system/include/SDL/SDL_thread.h +182 -0
  214. data/modules/emscripten/system/include/SDL/SDL_timer.h +108 -0
  215. data/modules/emscripten/system/include/SDL/SDL_touch.h +124 -0
  216. data/modules/emscripten/system/include/SDL/SDL_ttf.h +249 -0
  217. data/modules/emscripten/system/include/SDL/SDL_types.h +29 -0
  218. data/modules/emscripten/system/include/SDL/SDL_version.h +166 -0
  219. data/modules/emscripten/system/include/SDL/SDL_video.h +820 -0
  220. data/modules/emscripten/system/include/SDL/begin_code.h +135 -0
  221. data/modules/emscripten/system/include/SDL/close_code.h +37 -0
  222. data/modules/emscripten/system/include/X11/X.h +717 -0
  223. data/modules/emscripten/system/include/X11/Xatom.h +79 -0
  224. data/modules/emscripten/system/include/X11/Xfuncproto.h +127 -0
  225. data/modules/emscripten/system/include/X11/Xlib.h +4023 -0
  226. data/modules/emscripten/system/include/X11/Xosdefs.h +116 -0
  227. data/modules/emscripten/system/include/X11/Xutil.h +826 -0
  228. data/modules/emscripten/system/include/X11/keysym.h +73 -0
  229. data/modules/emscripten/system/include/X11/keysymdef.h +2389 -0
  230. data/modules/emscripten/system/include/bsd/float.h +91 -0
  231. data/modules/emscripten/system/include/bsd/readme.txt +2 -0
  232. data/modules/emscripten/system/include/bsd/sys/mman.h +180 -0
  233. data/modules/emscripten/system/include/bsd/sys/utsname.h +70 -0
  234. data/modules/emscripten/system/include/dlfcn.h +31 -0
  235. data/modules/emscripten/system/include/emscripten/bind.h +1210 -0
  236. data/modules/emscripten/system/include/emscripten/emscripten.h +388 -0
  237. data/modules/emscripten/system/include/emscripten/val.h +311 -0
  238. data/modules/emscripten/system/include/emscripten/wire.h +393 -0
  239. data/modules/emscripten/system/include/err.h +95 -0
  240. data/modules/emscripten/system/include/execinfo.h +44 -0
  241. data/modules/emscripten/system/include/features.h +3 -0
  242. data/modules/emscripten/system/include/gc.h +70 -0
  243. data/modules/emscripten/system/include/gfx/png.h +3798 -0
  244. data/modules/emscripten/system/include/gfx/pngconf.h +1665 -0
  245. data/modules/emscripten/system/include/gfx/tiff.h +654 -0
  246. data/modules/emscripten/system/include/gfx/tiffconf.h +104 -0
  247. data/modules/emscripten/system/include/gfx/tiffio.h +526 -0
  248. data/modules/emscripten/system/include/gfx/tiffvers.h +9 -0
  249. data/modules/emscripten/system/include/jansson.h +323 -0
  250. data/modules/emscripten/system/include/jansson_config.h +54 -0
  251. data/modules/emscripten/system/include/libc/_ansi.h +135 -0
  252. data/modules/emscripten/system/include/libc/_syslist.h +40 -0
  253. data/modules/emscripten/system/include/libc/alloca.h +21 -0
  254. data/modules/emscripten/system/include/libc/ar.h +69 -0
  255. data/modules/emscripten/system/include/libc/argz.h +33 -0
  256. data/modules/emscripten/system/include/libc/assert.h +46 -0
  257. data/modules/emscripten/system/include/libc/complex.h +124 -0
  258. data/modules/emscripten/system/include/libc/ctype.h +196 -0
  259. data/modules/emscripten/system/include/libc/dirent.h +16 -0
  260. data/modules/emscripten/system/include/libc/endian.h +3 -0
  261. data/modules/emscripten/system/include/libc/envlock.h +15 -0
  262. data/modules/emscripten/system/include/libc/envz.h +16 -0
  263. data/modules/emscripten/system/include/libc/errno.h +11 -0
  264. data/modules/emscripten/system/include/libc/fastmath.h +13 -0
  265. data/modules/emscripten/system/include/libc/fcntl.h +1 -0
  266. data/modules/emscripten/system/include/libc/fnmatch.h +55 -0
  267. data/modules/emscripten/system/include/libc/getopt.h +196 -0
  268. data/modules/emscripten/system/include/libc/glob.h +89 -0
  269. data/modules/emscripten/system/include/libc/grp.h +94 -0
  270. data/modules/emscripten/system/include/libc/iconv.h +62 -0
  271. data/modules/emscripten/system/include/libc/ieeefp.h +256 -0
  272. data/modules/emscripten/system/include/libc/ifaddrs.h +64 -0
  273. data/modules/emscripten/system/include/libc/inttypes.h +290 -0
  274. data/modules/emscripten/system/include/libc/iso646.h +43 -0
  275. data/modules/emscripten/system/include/libc/langinfo.h +316 -0
  276. data/modules/emscripten/system/include/libc/libgen.h +23 -0
  277. data/modules/emscripten/system/include/libc/limits.h +155 -0
  278. data/modules/emscripten/system/include/libc/locale.h +80 -0
  279. data/modules/emscripten/system/include/libc/machine/_default_types.h +121 -0
  280. data/modules/emscripten/system/include/libc/machine/_types.h +8 -0
  281. data/modules/emscripten/system/include/libc/machine/ansi.h +1 -0
  282. data/modules/emscripten/system/include/libc/machine/endian.h +31 -0
  283. data/modules/emscripten/system/include/libc/machine/fastmath.h +100 -0
  284. data/modules/emscripten/system/include/libc/machine/ieeefp.h +376 -0
  285. data/modules/emscripten/system/include/libc/machine/malloc.h +8 -0
  286. data/modules/emscripten/system/include/libc/machine/param.h +1 -0
  287. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +43 -0
  288. data/modules/emscripten/system/include/libc/machine/setjmp.h +361 -0
  289. data/modules/emscripten/system/include/libc/machine/stdlib.h +8 -0
  290. data/modules/emscripten/system/include/libc/machine/termios.h +1 -0
  291. data/modules/emscripten/system/include/libc/machine/time.h +19 -0
  292. data/modules/emscripten/system/include/libc/machine/types.h +30 -0
  293. data/modules/emscripten/system/include/libc/malloc.h +169 -0
  294. data/modules/emscripten/system/include/libc/math.h +594 -0
  295. data/modules/emscripten/system/include/libc/newlib.h +2 -0
  296. data/modules/emscripten/system/include/libc/paths.h +7 -0
  297. data/modules/emscripten/system/include/libc/process.h +44 -0
  298. data/modules/emscripten/system/include/libc/pthread.h +362 -0
  299. data/modules/emscripten/system/include/libc/pwd.h +78 -0
  300. data/modules/emscripten/system/include/libc/readme.txt +3 -0
  301. data/modules/emscripten/system/include/libc/reent.h +183 -0
  302. data/modules/emscripten/system/include/libc/regdef.h +7 -0
  303. data/modules/emscripten/system/include/libc/regex.h +102 -0
  304. data/modules/emscripten/system/include/libc/sched.h +97 -0
  305. data/modules/emscripten/system/include/libc/search.h +59 -0
  306. data/modules/emscripten/system/include/libc/setjmp.h +20 -0
  307. data/modules/emscripten/system/include/libc/signal.h +30 -0
  308. data/modules/emscripten/system/include/libc/stdarg.h +50 -0
  309. data/modules/emscripten/system/include/libc/stddef.h +64 -0
  310. data/modules/emscripten/system/include/libc/stdint.h +493 -0
  311. data/modules/emscripten/system/include/libc/stdio.h +694 -0
  312. data/modules/emscripten/system/include/libc/stdlib.h +230 -0
  313. data/modules/emscripten/system/include/libc/string.h +105 -0
  314. data/modules/emscripten/system/include/libc/strings.h +35 -0
  315. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +223 -0
  316. data/modules/emscripten/system/include/libc/sys/_types.h +93 -0
  317. data/modules/emscripten/system/include/libc/sys/cdefs.h +123 -0
  318. data/modules/emscripten/system/include/libc/sys/config.h +255 -0
  319. data/modules/emscripten/system/include/libc/sys/custom_file.h +2 -0
  320. data/modules/emscripten/system/include/libc/sys/dir.h +10 -0
  321. data/modules/emscripten/system/include/libc/sys/dirent.h +58 -0
  322. data/modules/emscripten/system/include/libc/sys/errno.h +190 -0
  323. data/modules/emscripten/system/include/libc/sys/fcntl.h +4 -0
  324. data/modules/emscripten/system/include/libc/sys/features.h +212 -0
  325. data/modules/emscripten/system/include/libc/sys/file.h +2 -0
  326. data/modules/emscripten/system/include/libc/sys/iconvnls.h +77 -0
  327. data/modules/emscripten/system/include/libc/sys/lock.h +24 -0
  328. data/modules/emscripten/system/include/libc/sys/param.h +25 -0
  329. data/modules/emscripten/system/include/libc/sys/queue.h +471 -0
  330. data/modules/emscripten/system/include/libc/sys/reent.h +843 -0
  331. data/modules/emscripten/system/include/libc/sys/resource.h +59 -0
  332. data/modules/emscripten/system/include/libc/sys/sched.h +67 -0
  333. data/modules/emscripten/system/include/libc/sys/signal.h +314 -0
  334. data/modules/emscripten/system/include/libc/sys/stat.h +222 -0
  335. data/modules/emscripten/system/include/libc/sys/stdio.h +27 -0
  336. data/modules/emscripten/system/include/libc/sys/string.h +2 -0
  337. data/modules/emscripten/system/include/libc/sys/syslimits.h +65 -0
  338. data/modules/emscripten/system/include/libc/sys/termios.h +280 -0
  339. data/modules/emscripten/system/include/libc/sys/time.h +85 -0
  340. data/modules/emscripten/system/include/libc/sys/timeb.h +39 -0
  341. data/modules/emscripten/system/include/libc/sys/times.h +28 -0
  342. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +97 -0
  343. data/modules/emscripten/system/include/libc/sys/types.h +481 -0
  344. data/modules/emscripten/system/include/libc/sys/unistd.h +514 -0
  345. data/modules/emscripten/system/include/libc/sys/utime.h +26 -0
  346. data/modules/emscripten/system/include/libc/sys/wait.h +40 -0
  347. data/modules/emscripten/system/include/libc/tar.h +39 -0
  348. data/modules/emscripten/system/include/libc/termios.h +7 -0
  349. data/modules/emscripten/system/include/libc/time.h +273 -0
  350. data/modules/emscripten/system/include/libc/unctrl.h +46 -0
  351. data/modules/emscripten/system/include/libc/unistd.h +6 -0
  352. data/modules/emscripten/system/include/libc/utime.h +12 -0
  353. data/modules/emscripten/system/include/libc/utmp.h +8 -0
  354. data/modules/emscripten/system/include/libc/wchar.h +194 -0
  355. data/modules/emscripten/system/include/libc/wctype.h +47 -0
  356. data/modules/emscripten/system/include/libc/wordexp.h +53 -0
  357. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +91 -0
  358. data/modules/emscripten/system/include/libcxx/LICENSE.txt +76 -0
  359. data/modules/emscripten/system/include/libcxx/__bit_reference +1268 -0
  360. data/modules/emscripten/system/include/libcxx/__config +485 -0
  361. data/modules/emscripten/system/include/libcxx/__debug +193 -0
  362. data/modules/emscripten/system/include/libcxx/__functional_03 +2130 -0
  363. data/modules/emscripten/system/include/libcxx/__functional_base +437 -0
  364. data/modules/emscripten/system/include/libcxx/__functional_base_03 +1087 -0
  365. data/modules/emscripten/system/include/libcxx/__hash_table +1945 -0
  366. data/modules/emscripten/system/include/libcxx/__locale +1435 -0
  367. data/modules/emscripten/system/include/libcxx/__mutex_base +438 -0
  368. data/modules/emscripten/system/include/libcxx/__split_buffer +654 -0
  369. data/modules/emscripten/system/include/libcxx/__sso_allocator +77 -0
  370. data/modules/emscripten/system/include/libcxx/__std_stream +317 -0
  371. data/modules/emscripten/system/include/libcxx/__tree +2293 -0
  372. data/modules/emscripten/system/include/libcxx/__tuple +305 -0
  373. data/modules/emscripten/system/include/libcxx/__tuple_03 +27 -0
  374. data/modules/emscripten/system/include/libcxx/__undef_min_max +19 -0
  375. data/modules/emscripten/system/include/libcxx/algorithm +5458 -0
  376. data/modules/emscripten/system/include/libcxx/array +341 -0
  377. data/modules/emscripten/system/include/libcxx/atomic +1521 -0
  378. data/modules/emscripten/system/include/libcxx/bitset +1081 -0
  379. data/modules/emscripten/system/include/libcxx/cassert +25 -0
  380. data/modules/emscripten/system/include/libcxx/ccomplex +29 -0
  381. data/modules/emscripten/system/include/libcxx/cctype +164 -0
  382. data/modules/emscripten/system/include/libcxx/cerrno +393 -0
  383. data/modules/emscripten/system/include/libcxx/cfenv +82 -0
  384. data/modules/emscripten/system/include/libcxx/cfloat +78 -0
  385. data/modules/emscripten/system/include/libcxx/chrono +898 -0
  386. data/modules/emscripten/system/include/libcxx/cinttypes +259 -0
  387. data/modules/emscripten/system/include/libcxx/ciso646 +25 -0
  388. data/modules/emscripten/system/include/libcxx/climits +48 -0
  389. data/modules/emscripten/system/include/libcxx/clocale +53 -0
  390. data/modules/emscripten/system/include/libcxx/cmath +1683 -0
  391. data/modules/emscripten/system/include/libcxx/codecvt +547 -0
  392. data/modules/emscripten/system/include/libcxx/complex +1526 -0
  393. data/modules/emscripten/system/include/libcxx/complex.h +35 -0
  394. data/modules/emscripten/system/include/libcxx/condition_variable +256 -0
  395. data/modules/emscripten/system/include/libcxx/csetjmp +52 -0
  396. data/modules/emscripten/system/include/libcxx/csignal +58 -0
  397. data/modules/emscripten/system/include/libcxx/cstdarg +48 -0
  398. data/modules/emscripten/system/include/libcxx/cstdbool +32 -0
  399. data/modules/emscripten/system/include/libcxx/cstddef +103 -0
  400. data/modules/emscripten/system/include/libcxx/cstdint +191 -0
  401. data/modules/emscripten/system/include/libcxx/cstdio +175 -0
  402. data/modules/emscripten/system/include/libcxx/cstdlib +172 -0
  403. data/modules/emscripten/system/include/libcxx/cstring +112 -0
  404. data/modules/emscripten/system/include/libcxx/ctgmath +29 -0
  405. data/modules/emscripten/system/include/libcxx/ctime +72 -0
  406. data/modules/emscripten/system/include/libcxx/cwchar +208 -0
  407. data/modules/emscripten/system/include/libcxx/cwctype +213 -0
  408. data/modules/emscripten/system/include/libcxx/deque +2846 -0
  409. data/modules/emscripten/system/include/libcxx/exception +250 -0
  410. data/modules/emscripten/system/include/libcxx/ext/__hash +46 -0
  411. data/modules/emscripten/system/include/libcxx/ext/hash_map +1003 -0
  412. data/modules/emscripten/system/include/libcxx/ext/hash_set +657 -0
  413. data/modules/emscripten/system/include/libcxx/forward_list +1636 -0
  414. data/modules/emscripten/system/include/libcxx/fstream +1415 -0
  415. data/modules/emscripten/system/include/libcxx/functional +2063 -0
  416. data/modules/emscripten/system/include/libcxx/future +2505 -0
  417. data/modules/emscripten/system/include/libcxx/initializer_list +105 -0
  418. data/modules/emscripten/system/include/libcxx/iomanip +504 -0
  419. data/modules/emscripten/system/include/libcxx/ios +988 -0
  420. data/modules/emscripten/system/include/libcxx/iosfwd +194 -0
  421. data/modules/emscripten/system/include/libcxx/iostream +60 -0
  422. data/modules/emscripten/system/include/libcxx/istream +1713 -0
  423. data/modules/emscripten/system/include/libcxx/iterator +1869 -0
  424. data/modules/emscripten/system/include/libcxx/limits +809 -0
  425. data/modules/emscripten/system/include/libcxx/list +2275 -0
  426. data/modules/emscripten/system/include/libcxx/locale +4591 -0
  427. data/modules/emscripten/system/include/libcxx/map +1924 -0
  428. data/modules/emscripten/system/include/libcxx/memory +5437 -0
  429. data/modules/emscripten/system/include/libcxx/mutex +566 -0
  430. data/modules/emscripten/system/include/libcxx/new +117 -0
  431. data/modules/emscripten/system/include/libcxx/numeric +197 -0
  432. data/modules/emscripten/system/include/libcxx/ostream +1286 -0
  433. data/modules/emscripten/system/include/libcxx/queue +717 -0
  434. data/modules/emscripten/system/include/libcxx/random +6750 -0
  435. data/modules/emscripten/system/include/libcxx/ratio +487 -0
  436. data/modules/emscripten/system/include/libcxx/readme.txt +1 -0
  437. data/modules/emscripten/system/include/libcxx/regex +6439 -0
  438. data/modules/emscripten/system/include/libcxx/scoped_allocator +578 -0
  439. data/modules/emscripten/system/include/libcxx/set +1025 -0
  440. data/modules/emscripten/system/include/libcxx/sstream +888 -0
  441. data/modules/emscripten/system/include/libcxx/stack +292 -0
  442. data/modules/emscripten/system/include/libcxx/stdexcept +162 -0
  443. data/modules/emscripten/system/include/libcxx/streambuf +564 -0
  444. data/modules/emscripten/system/include/libcxx/string +3987 -0
  445. data/modules/emscripten/system/include/libcxx/strstream +400 -0
  446. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +5 -0
  447. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +38 -0
  448. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +146 -0
  449. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +79 -0
  450. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +116 -0
  451. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +113 -0
  452. data/modules/emscripten/system/include/libcxx/support/win32/support.h +115 -0
  453. data/modules/emscripten/system/include/libcxx/system_error +636 -0
  454. data/modules/emscripten/system/include/libcxx/tgmath.h +29 -0
  455. data/modules/emscripten/system/include/libcxx/thread +459 -0
  456. data/modules/emscripten/system/include/libcxx/tuple +1092 -0
  457. data/modules/emscripten/system/include/libcxx/type_traits +3040 -0
  458. data/modules/emscripten/system/include/libcxx/typeindex +103 -0
  459. data/modules/emscripten/system/include/libcxx/typeinfo +124 -0
  460. data/modules/emscripten/system/include/libcxx/unordered_map +1864 -0
  461. data/modules/emscripten/system/include/libcxx/unordered_set +1144 -0
  462. data/modules/emscripten/system/include/libcxx/utility +583 -0
  463. data/modules/emscripten/system/include/libcxx/valarray +4779 -0
  464. data/modules/emscripten/system/include/libcxx/vector +3228 -0
  465. data/modules/emscripten/system/include/memory.h +10 -0
  466. data/modules/emscripten/system/include/mntent.h +23 -0
  467. data/modules/emscripten/system/include/net/arpa/inet.h +32 -0
  468. data/modules/emscripten/system/include/net/arpa/nameser.h +535 -0
  469. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +187 -0
  470. data/modules/emscripten/system/include/net/if.h +87 -0
  471. data/modules/emscripten/system/include/net/netinet/in.h +166 -0
  472. data/modules/emscripten/system/include/net/netinet/tcp.h +246 -0
  473. data/modules/emscripten/system/include/net/resolv.h +389 -0
  474. data/modules/emscripten/system/include/netdb.h +94 -0
  475. data/modules/emscripten/system/include/nl_types.h +19 -0
  476. data/modules/emscripten/system/include/poll.h +3 -0
  477. data/modules/emscripten/system/include/pty.h +6 -0
  478. data/modules/emscripten/system/include/semaphore.h +31 -0
  479. data/modules/emscripten/system/include/spawn.h +105 -0
  480. data/modules/emscripten/system/include/stdbool.h +16 -0
  481. data/modules/emscripten/system/include/sys/bitypes.h +3 -0
  482. data/modules/emscripten/system/include/sys/io.h +14 -0
  483. data/modules/emscripten/system/include/sys/ioctl.h +26 -0
  484. data/modules/emscripten/system/include/sys/poll.h +31 -0
  485. data/modules/emscripten/system/include/sys/select.h +14 -0
  486. data/modules/emscripten/system/include/sys/socket.h +101 -0
  487. data/modules/emscripten/system/include/sys/socketvar.h +3 -0
  488. data/modules/emscripten/system/include/sys/statvfs.h +32 -0
  489. data/modules/emscripten/system/include/sys/sysctl.h +14 -0
  490. data/modules/emscripten/system/include/sys/uio.h +22 -0
  491. data/modules/emscripten/system/include/sys/un.h +66 -0
  492. data/modules/emscripten/system/include/sysexits.h +108 -0
  493. data/modules/emscripten/system/include/unwind.h +154 -0
  494. data/modules/emscripten/system/include/xlocale.h +47 -0
  495. data/modules/emscripten/system/include/zconf.h +428 -0
  496. data/modules/emscripten/system/include/zlib.h +1613 -0
  497. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +97 -0
  498. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +47 -0
  499. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +116 -0
  500. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +46 -0
  501. data/modules/emscripten/system/lib/compiler-rt/int_math.h +67 -0
  502. data/modules/emscripten/system/lib/compiler-rt/int_types.h +140 -0
  503. data/modules/emscripten/system/lib/compiler-rt/int_util.h +29 -0
  504. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +56 -0
  505. data/modules/emscripten/system/lib/compiler-rt/readme.txt +20 -0
  506. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +36 -0
  507. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +251 -0
  508. data/modules/emscripten/system/lib/debugging.cpp +24 -0
  509. data/modules/emscripten/system/lib/dlmalloc.c +6299 -0
  510. data/modules/emscripten/system/lib/embind/bind.cpp +63 -0
  511. data/modules/emscripten/system/lib/libc/gen/err.c +49 -0
  512. data/modules/emscripten/system/lib/libc/gen/errx.c +49 -0
  513. data/modules/emscripten/system/lib/libc/gen/verr.c +58 -0
  514. data/modules/emscripten/system/lib/libc/gen/verrx.c +51 -0
  515. data/modules/emscripten/system/lib/libc/gen/vwarn.c +55 -0
  516. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +48 -0
  517. data/modules/emscripten/system/lib/libc/gen/warn.c +49 -0
  518. data/modules/emscripten/system/lib/libc/gen/warnx.c +49 -0
  519. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +92 -0
  520. data/modules/emscripten/system/lib/libc/musl/readme.txt +1 -0
  521. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +125 -0
  522. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +7 -0
  523. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +14 -0
  524. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +8 -0
  525. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +10 -0
  526. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +63 -0
  527. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +9 -0
  528. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +7 -0
  529. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +6 -0
  530. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +19 -0
  531. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +12 -0
  532. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +19 -0
  533. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +6 -0
  534. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +7 -0
  535. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +62 -0
  536. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +109 -0
  537. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +268 -0
  538. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +8 -0
  539. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +16 -0
  540. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +29 -0
  541. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +42 -0
  542. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +22 -0
  543. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +71 -0
  544. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +7 -0
  545. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +38 -0
  546. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +22 -0
  547. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +17 -0
  548. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +18 -0
  549. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +57 -0
  550. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +17 -0
  551. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +65 -0
  552. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +100 -0
  553. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +7 -0
  554. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +53 -0
  555. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +38 -0
  556. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +52 -0
  557. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +58 -0
  558. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +7 -0
  559. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +8 -0
  560. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +18 -0
  561. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +6 -0
  562. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +6 -0
  563. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +7 -0
  564. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +6 -0
  565. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +7 -0
  566. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +8 -0
  567. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +7 -0
  568. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +8 -0
  569. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +10 -0
  570. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +11 -0
  571. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +8 -0
  572. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +9 -0
  573. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +6 -0
  574. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +10 -0
  575. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +7 -0
  576. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +9 -0
  577. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +8 -0
  578. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +7 -0
  579. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +8 -0
  580. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +8 -0
  581. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +108 -0
  582. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +12 -0
  583. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +6 -0
  584. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +8 -0
  585. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +8 -0
  586. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +9 -0
  587. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +12 -0
  588. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +9 -0
  589. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +511 -0
  590. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +305 -0
  591. data/modules/emscripten/system/lib/libc.symbols +81 -0
  592. data/modules/emscripten/system/lib/libcextra.symbols +61 -0
  593. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +91 -0
  594. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +76 -0
  595. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +83 -0
  596. data/modules/emscripten/system/lib/libcxx/bind.cpp +30 -0
  597. data/modules/emscripten/system/lib/libcxx/chrono.cpp +132 -0
  598. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +81 -0
  599. data/modules/emscripten/system/lib/libcxx/debug.cpp +504 -0
  600. data/modules/emscripten/system/lib/libcxx/exception.cpp +226 -0
  601. data/modules/emscripten/system/lib/libcxx/future.cpp +285 -0
  602. data/modules/emscripten/system/lib/libcxx/hash.cpp +564 -0
  603. data/modules/emscripten/system/lib/libcxx/ios.cpp +455 -0
  604. data/modules/emscripten/system/lib/libcxx/iostream.cpp +68 -0
  605. data/modules/emscripten/system/lib/libcxx/locale.cpp +6093 -0
  606. data/modules/emscripten/system/lib/libcxx/memory.cpp +223 -0
  607. data/modules/emscripten/system/lib/libcxx/mutex.cpp +250 -0
  608. data/modules/emscripten/system/lib/libcxx/new.cpp +205 -0
  609. data/modules/emscripten/system/lib/libcxx/random.cpp +48 -0
  610. data/modules/emscripten/system/lib/libcxx/readme.txt +1 -0
  611. data/modules/emscripten/system/lib/libcxx/regex.cpp +325 -0
  612. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +196 -0
  613. data/modules/emscripten/system/lib/libcxx/string.cpp +687 -0
  614. data/modules/emscripten/system/lib/libcxx/strstream.cpp +329 -0
  615. data/modules/emscripten/system/lib/libcxx/support/solaris/README +4 -0
  616. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +76 -0
  617. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +93 -0
  618. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +245 -0
  619. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +94 -0
  620. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +70 -0
  621. data/modules/emscripten/system/lib/libcxx/symbols +2927 -0
  622. data/modules/emscripten/system/lib/libcxx/system_error.cpp +201 -0
  623. data/modules/emscripten/system/lib/libcxx/thread.cpp +208 -0
  624. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +60 -0
  625. data/modules/emscripten/system/lib/libcxx/utility.cpp +17 -0
  626. data/modules/emscripten/system/lib/libcxx/valarray.cpp +54 -0
  627. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +38 -0
  628. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +76 -0
  629. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +167 -0
  630. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +175 -0
  631. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +99 -0
  632. data/modules/emscripten/system/lib/libcxxabi/readme.txt +1 -0
  633. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +50 -0
  634. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +33 -0
  635. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +34 -0
  636. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +11036 -0
  637. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +622 -0
  638. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +123 -0
  639. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +91 -0
  640. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +231 -0
  641. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +125 -0
  642. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +54 -0
  643. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +242 -0
  644. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +1055 -0
  645. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +27 -0
  646. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +367 -0
  647. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +31 -0
  648. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +41 -0
  649. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +174 -0
  650. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +1146 -0
  651. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +248 -0
  652. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +169 -0
  653. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +53 -0
  654. data/modules/emscripten/system/lib/libcxxabi/symbols +236 -0
  655. data/modules/emscripten/system/lib/sdl.cpp +13 -0
  656. data/modules/emscripten/system/lib/sdl.symbols +1 -0
  657. data/modules/emscripten/tests/hello_world.js +92 -0
  658. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +2347 -0
  659. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +4 -0
  660. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +657 -0
  661. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +147 -0
  662. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +74 -0
  663. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +249 -0
  664. data/modules/emscripten/third_party/CppHeaderParser/README.html +544 -0
  665. data/modules/emscripten/third_party/CppHeaderParser/README.txt +226 -0
  666. data/modules/emscripten/third_party/CppHeaderParser/setup.py +43 -0
  667. data/modules/emscripten/third_party/ansidecl.h +371 -0
  668. data/modules/emscripten/third_party/closure-compiler/COPYING +202 -0
  669. data/modules/emscripten/third_party/closure-compiler/README +292 -0
  670. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  671. data/modules/emscripten/third_party/closure-compiler/readme.txt +3 -0
  672. data/modules/emscripten/third_party/cp-demangle.h +161 -0
  673. data/modules/emscripten/third_party/demangle.h +549 -0
  674. data/modules/emscripten/third_party/demangler.py +49 -0
  675. data/modules/emscripten/third_party/gcc_demangler.c +4226 -0
  676. data/modules/emscripten/third_party/gcc_demangler.js +21282 -0
  677. data/modules/emscripten/third_party/jni/emjvm.cpp +133 -0
  678. data/modules/emscripten/third_party/jni/emjvm.h +8 -0
  679. data/modules/emscripten/third_party/jni/emjvm.js +185 -0
  680. data/modules/emscripten/third_party/jni/jni.h +1154 -0
  681. data/modules/emscripten/third_party/libiberty.h +634 -0
  682. data/modules/emscripten/third_party/lzma.js/README.markdown +37 -0
  683. data/modules/emscripten/third_party/lzma.js/doit.sh +37 -0
  684. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +7 -0
  685. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +676 -0
  686. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +201 -0
  687. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +56 -0
  688. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +160 -0
  689. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +138 -0
  690. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +22 -0
  691. data/modules/emscripten/third_party/lzma.js/lzip/README +77 -0
  692. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +204 -0
  693. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +106 -0
  694. data/modules/emscripten/third_party/lzma.js/lzip/configure +192 -0
  695. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +252 -0
  696. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +268 -0
  697. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +643 -0
  698. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +582 -0
  699. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +378 -0
  700. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +171 -0
  701. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +264 -0
  702. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +545 -0
  703. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +27 -0
  704. data/modules/emscripten/third_party/lzma.js/lzma-full.js +27 -0
  705. data/modules/emscripten/third_party/lzma.js/native_test.sh +5 -0
  706. data/modules/emscripten/third_party/lzma.js/post.js +13 -0
  707. data/modules/emscripten/third_party/lzma.js/pre.js +13 -0
  708. data/modules/emscripten/third_party/lzma.js/test-decoder.js +39 -0
  709. data/modules/emscripten/third_party/lzma.js/test-full.html +9 -0
  710. data/modules/emscripten/third_party/lzma.js/test-full.js +78 -0
  711. data/modules/emscripten/third_party/ply/ANNOUNCE +40 -0
  712. data/modules/emscripten/third_party/ply/CHANGES +1093 -0
  713. data/modules/emscripten/third_party/ply/PKG-INFO +22 -0
  714. data/modules/emscripten/third_party/ply/README +271 -0
  715. data/modules/emscripten/third_party/ply/TODO +16 -0
  716. data/modules/emscripten/third_party/ply/doc/internal.html +874 -0
  717. data/modules/emscripten/third_party/ply/doc/makedoc.py +194 -0
  718. data/modules/emscripten/third_party/ply/doc/ply.html +3262 -0
  719. data/modules/emscripten/third_party/ply/example/BASIC/README +79 -0
  720. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +71 -0
  721. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +74 -0
  722. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +79 -0
  723. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +441 -0
  724. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +424 -0
  725. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +14 -0
  726. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +5 -0
  727. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +22 -0
  728. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +13 -0
  729. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +4 -0
  730. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +17 -0
  731. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +12 -0
  732. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +13 -0
  733. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +4 -0
  734. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +20 -0
  735. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +18 -0
  736. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +5 -0
  737. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +4 -0
  738. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +709 -0
  739. data/modules/emscripten/third_party/ply/example/GardenSnake/README +5 -0
  740. data/modules/emscripten/third_party/ply/example/README +10 -0
  741. data/modules/emscripten/third_party/ply/example/ansic/README +2 -0
  742. data/modules/emscripten/third_party/ply/example/ansic/clex.py +164 -0
  743. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +863 -0
  744. data/modules/emscripten/third_party/ply/example/calc/calc.py +107 -0
  745. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +113 -0
  746. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +157 -0
  747. data/modules/emscripten/third_party/ply/example/cleanup.sh +2 -0
  748. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +130 -0
  749. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +48 -0
  750. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +160 -0
  751. data/modules/emscripten/third_party/ply/example/optcalc/README +9 -0
  752. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +119 -0
  753. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +117 -0
  754. data/modules/emscripten/third_party/ply/example/yply/README +41 -0
  755. data/modules/emscripten/third_party/ply/example/yply/ylex.py +112 -0
  756. data/modules/emscripten/third_party/ply/example/yply/yparse.py +217 -0
  757. data/modules/emscripten/third_party/ply/example/yply/yply.py +53 -0
  758. data/modules/emscripten/third_party/ply/ply/__init__.py +4 -0
  759. data/modules/emscripten/third_party/ply/ply/cpp.py +898 -0
  760. data/modules/emscripten/third_party/ply/ply/ctokens.py +133 -0
  761. data/modules/emscripten/third_party/ply/ply/lex.py +1058 -0
  762. data/modules/emscripten/third_party/ply/ply/yacc.py +3276 -0
  763. data/modules/emscripten/third_party/ply/setup.py +31 -0
  764. data/modules/emscripten/third_party/ply/test/README +7 -0
  765. data/modules/emscripten/third_party/ply/test/calclex.py +49 -0
  766. data/modules/emscripten/third_party/ply/test/cleanup.sh +4 -0
  767. data/modules/emscripten/third_party/ply/test/lex_closure.py +54 -0
  768. data/modules/emscripten/third_party/ply/test/lex_doc1.py +26 -0
  769. data/modules/emscripten/third_party/ply/test/lex_dup1.py +29 -0
  770. data/modules/emscripten/third_party/ply/test/lex_dup2.py +33 -0
  771. data/modules/emscripten/third_party/ply/test/lex_dup3.py +31 -0
  772. data/modules/emscripten/third_party/ply/test/lex_empty.py +20 -0
  773. data/modules/emscripten/third_party/ply/test/lex_error1.py +24 -0
  774. data/modules/emscripten/third_party/ply/test/lex_error2.py +26 -0
  775. data/modules/emscripten/third_party/ply/test/lex_error3.py +27 -0
  776. data/modules/emscripten/third_party/ply/test/lex_error4.py +27 -0
  777. data/modules/emscripten/third_party/ply/test/lex_hedit.py +47 -0
  778. data/modules/emscripten/third_party/ply/test/lex_ignore.py +31 -0
  779. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +29 -0
  780. data/modules/emscripten/third_party/ply/test/lex_literal1.py +25 -0
  781. data/modules/emscripten/third_party/ply/test/lex_literal2.py +25 -0
  782. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +27 -0
  783. data/modules/emscripten/third_party/ply/test/lex_module.py +10 -0
  784. data/modules/emscripten/third_party/ply/test/lex_module_import.py +42 -0
  785. data/modules/emscripten/third_party/ply/test/lex_object.py +55 -0
  786. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +54 -0
  787. data/modules/emscripten/third_party/ply/test/lex_optimize.py +50 -0
  788. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +50 -0
  789. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +52 -0
  790. data/modules/emscripten/third_party/ply/test/lex_re1.py +27 -0
  791. data/modules/emscripten/third_party/ply/test/lex_re2.py +27 -0
  792. data/modules/emscripten/third_party/ply/test/lex_re3.py +29 -0
  793. data/modules/emscripten/third_party/ply/test/lex_rule1.py +27 -0
  794. data/modules/emscripten/third_party/ply/test/lex_rule2.py +29 -0
  795. data/modules/emscripten/third_party/ply/test/lex_rule3.py +27 -0
  796. data/modules/emscripten/third_party/ply/test/lex_state1.py +40 -0
  797. data/modules/emscripten/third_party/ply/test/lex_state2.py +40 -0
  798. data/modules/emscripten/third_party/ply/test/lex_state3.py +42 -0
  799. data/modules/emscripten/third_party/ply/test/lex_state4.py +41 -0
  800. data/modules/emscripten/third_party/ply/test/lex_state5.py +40 -0
  801. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +39 -0
  802. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +40 -0
  803. data/modules/emscripten/third_party/ply/test/lex_state_try.py +45 -0
  804. data/modules/emscripten/third_party/ply/test/lex_token1.py +19 -0
  805. data/modules/emscripten/third_party/ply/test/lex_token2.py +22 -0
  806. data/modules/emscripten/third_party/ply/test/lex_token3.py +24 -0
  807. data/modules/emscripten/third_party/ply/test/lex_token4.py +26 -0
  808. data/modules/emscripten/third_party/ply/test/lex_token5.py +31 -0
  809. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +29 -0
  810. data/modules/emscripten/third_party/ply/test/testlex.py +606 -0
  811. data/modules/emscripten/third_party/ply/test/testyacc.py +347 -0
  812. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +68 -0
  813. data/modules/emscripten/third_party/ply/test/yacc_badid.py +77 -0
  814. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +64 -0
  815. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +68 -0
  816. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +68 -0
  817. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +68 -0
  818. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +68 -0
  819. data/modules/emscripten/third_party/ply/test/yacc_dup.py +68 -0
  820. data/modules/emscripten/third_party/ply/test/yacc_error1.py +68 -0
  821. data/modules/emscripten/third_party/ply/test/yacc_error2.py +68 -0
  822. data/modules/emscripten/third_party/ply/test/yacc_error3.py +67 -0
  823. data/modules/emscripten/third_party/ply/test/yacc_error4.py +72 -0
  824. data/modules/emscripten/third_party/ply/test/yacc_inf.py +56 -0
  825. data/modules/emscripten/third_party/ply/test/yacc_literal.py +69 -0
  826. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +68 -0
  827. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +68 -0
  828. data/modules/emscripten/third_party/ply/test/yacc_nested.py +33 -0
  829. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +67 -0
  830. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +66 -0
  831. data/modules/emscripten/third_party/ply/test/yacc_nop.py +68 -0
  832. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +66 -0
  833. data/modules/emscripten/third_party/ply/test/yacc_notok.py +67 -0
  834. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +68 -0
  835. data/modules/emscripten/third_party/ply/test/yacc_rr.py +72 -0
  836. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +30 -0
  837. data/modules/emscripten/third_party/ply/test/yacc_simple.py +68 -0
  838. data/modules/emscripten/third_party/ply/test/yacc_sr.py +63 -0
  839. data/modules/emscripten/third_party/ply/test/yacc_term1.py +68 -0
  840. data/modules/emscripten/third_party/ply/test/yacc_unused.py +77 -0
  841. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +72 -0
  842. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +63 -0
  843. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +63 -0
  844. data/modules/emscripten/third_party/readme.txt +7 -0
  845. data/modules/emscripten/third_party/websockify/CHANGES.txt +23 -0
  846. data/modules/emscripten/third_party/websockify/LICENSE.txt +16 -0
  847. data/modules/emscripten/third_party/websockify/MANIFEST.in +1 -0
  848. data/modules/emscripten/third_party/websockify/Makefile +11 -0
  849. data/modules/emscripten/third_party/websockify/README.md +168 -0
  850. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +39 -0
  851. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +24 -0
  852. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +61 -0
  853. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +19 -0
  854. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +129 -0
  855. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +36 -0
  856. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +37 -0
  857. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +41 -0
  858. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +75 -0
  859. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +20 -0
  860. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +621 -0
  861. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +165 -0
  862. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +373 -0
  863. data/modules/emscripten/third_party/websockify/docs/TODO +9 -0
  864. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +4 -0
  865. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +114 -0
  866. data/modules/emscripten/third_party/websockify/docs/notes +17 -0
  867. data/modules/emscripten/third_party/websockify/docs/release.txt +9 -0
  868. data/modules/emscripten/third_party/websockify/docs/websockify.1 +110 -0
  869. data/modules/emscripten/third_party/websockify/include/VT100.js +919 -0
  870. data/modules/emscripten/third_party/websockify/include/base64.js +114 -0
  871. data/modules/emscripten/third_party/websockify/include/keysym.js +99 -0
  872. data/modules/emscripten/third_party/websockify/include/util.js +359 -0
  873. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +109 -0
  874. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  875. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +4 -0
  876. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +391 -0
  877. data/modules/emscripten/third_party/websockify/include/websock.js +422 -0
  878. data/modules/emscripten/third_party/websockify/include/webutil.js +216 -0
  879. data/modules/emscripten/third_party/websockify/include/wsirc.js +235 -0
  880. data/modules/emscripten/third_party/websockify/include/wstelnet.js +335 -0
  881. data/modules/emscripten/third_party/websockify/other/Makefile +14 -0
  882. data/modules/emscripten/third_party/websockify/other/README.md +51 -0
  883. data/modules/emscripten/third_party/websockify/other/launch.sh +108 -0
  884. data/modules/emscripten/third_party/websockify/other/project.clj +13 -0
  885. data/modules/emscripten/third_party/websockify/other/websocket.c +802 -0
  886. data/modules/emscripten/third_party/websockify/other/websocket.h +84 -0
  887. data/modules/emscripten/third_party/websockify/other/websocket.rb +456 -0
  888. data/modules/emscripten/third_party/websockify/other/websockify.c +385 -0
  889. data/modules/emscripten/third_party/websockify/other/websockify.clj +233 -0
  890. data/modules/emscripten/third_party/websockify/other/websockify.js +196 -0
  891. data/modules/emscripten/third_party/websockify/other/websockify.rb +171 -0
  892. data/modules/emscripten/third_party/websockify/other/wswrap +22 -0
  893. data/modules/emscripten/third_party/websockify/rebind +18 -0
  894. data/modules/emscripten/third_party/websockify/rebind.c +94 -0
  895. data/modules/emscripten/third_party/websockify/run +5 -0
  896. data/modules/emscripten/third_party/websockify/setup.py +30 -0
  897. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +29 -0
  898. data/modules/emscripten/third_party/websockify/tests/base64.html +91 -0
  899. data/modules/emscripten/third_party/websockify/tests/base64.js +12 -0
  900. data/modules/emscripten/third_party/websockify/tests/echo.html +148 -0
  901. data/modules/emscripten/third_party/websockify/tests/echo.py +75 -0
  902. data/modules/emscripten/third_party/websockify/tests/echo.rb +62 -0
  903. data/modules/emscripten/third_party/websockify/tests/latency.html +290 -0
  904. data/modules/emscripten/third_party/websockify/tests/latency.py +75 -0
  905. data/modules/emscripten/third_party/websockify/tests/load.html +250 -0
  906. data/modules/emscripten/third_party/websockify/tests/load.py +167 -0
  907. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +168 -0
  908. data/modules/emscripten/third_party/websockify/tests/simple.html +68 -0
  909. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +22 -0
  910. data/modules/emscripten/third_party/websockify/websockify/__init__.py +2 -0
  911. data/modules/emscripten/third_party/websockify/websockify/websocket.py +982 -0
  912. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +393 -0
  913. data/modules/emscripten/third_party/websockify/websockify.py +5 -0
  914. data/modules/emscripten/third_party/websockify/wsirc.html +99 -0
  915. data/modules/emscripten/third_party/websockify/wstelnet.html +74 -0
  916. data/modules/emscripten/tools/__init__.py +0 -0
  917. data/modules/emscripten/tools/__init__.pyc +0 -0
  918. data/modules/emscripten/tools/autodebugger.py +289 -0
  919. data/modules/emscripten/tools/autodebugger_c.py +37 -0
  920. data/modules/emscripten/tools/autodebugger_indenter.py +18 -0
  921. data/modules/emscripten/tools/autodebugger_js.py +47 -0
  922. data/modules/emscripten/tools/autodediffer.py +60 -0
  923. data/modules/emscripten/tools/bindings_generator.py +832 -0
  924. data/modules/emscripten/tools/bisect_pair.py +88 -0
  925. data/modules/emscripten/tools/cache.py +198 -0
  926. data/modules/emscripten/tools/cache.pyc +0 -0
  927. data/modules/emscripten/tools/clean_webconsole.py +34 -0
  928. data/modules/emscripten/tools/crunch-worker.js +124 -0
  929. data/modules/emscripten/tools/diff_autodebugger.py +15 -0
  930. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +5129 -0
  931. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +6861 -0
  932. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +6122 -0
  933. data/modules/emscripten/tools/eliminator/eliminator-test.js +8856 -0
  934. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +888 -0
  935. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +463 -0
  936. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +317 -0
  937. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +75 -0
  938. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +75 -0
  939. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +1363 -0
  940. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +2005 -0
  941. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  942. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +22 -0
  943. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +28 -0
  944. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +402 -0
  945. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  946. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  947. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  948. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  949. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  950. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  951. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  952. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  953. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  954. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  955. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  956. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  957. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  958. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  959. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  960. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  961. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  962. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  963. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  964. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  965. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  966. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  967. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  968. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  969. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  970. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  971. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  972. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  973. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  974. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  975. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  976. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  977. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  978. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  979. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  980. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  981. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  982. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  983. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  984. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  985. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  986. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  987. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  988. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  989. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  990. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  991. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  992. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  993. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  994. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  995. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  996. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  997. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  998. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  999. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1000. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1001. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1002. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1003. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1004. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1005. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1006. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1007. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1008. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1009. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1010. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1011. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1012. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1013. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1014. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1015. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1016. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1017. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1018. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1019. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1020. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1021. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1022. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +33 -0
  1023. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +97 -0
  1024. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +138 -0
  1025. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +16 -0
  1026. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +17 -0
  1027. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +85 -0
  1028. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +103 -0
  1029. data/modules/emscripten/tools/emconfiguren.py +19 -0
  1030. data/modules/emscripten/tools/emmaken.py +230 -0
  1031. data/modules/emscripten/tools/emmakenxx.py +18 -0
  1032. data/modules/emscripten/tools/exec_llvm.py +50 -0
  1033. data/modules/emscripten/tools/file2json.py +49 -0
  1034. data/modules/emscripten/tools/file_packager.py +649 -0
  1035. data/modules/emscripten/tools/find_bigfuncs.py +23 -0
  1036. data/modules/emscripten/tools/find_bigis.py +18 -0
  1037. data/modules/emscripten/tools/fix_closure.py +88 -0
  1038. data/modules/emscripten/tools/ie7_fix.py +14 -0
  1039. data/modules/emscripten/tools/js-optimizer.js +3440 -0
  1040. data/modules/emscripten/tools/js_optimizer.py +341 -0
  1041. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  1042. data/modules/emscripten/tools/jsrun.py +27 -0
  1043. data/modules/emscripten/tools/jsrun.pyc +0 -0
  1044. data/modules/emscripten/tools/ll-strip.py +56 -0
  1045. data/modules/emscripten/tools/make_file.py +19 -0
  1046. data/modules/emscripten/tools/make_minigzip.py +13 -0
  1047. data/modules/emscripten/tools/namespacer.py +95 -0
  1048. data/modules/emscripten/tools/nativize_llvm.py +34 -0
  1049. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +58 -0
  1050. data/modules/emscripten/tools/node_modules/source-map/LICENSE +28 -0
  1051. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +166 -0
  1052. data/modules/emscripten/tools/node_modules/source-map/README.md +347 -0
  1053. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +56 -0
  1054. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +152 -0
  1055. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1056. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1057. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +8 -0
  1058. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1059. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1060. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +8 -0
  1061. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +3 -0
  1062. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1063. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1064. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +42 -0
  1065. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1066. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +430 -0
  1067. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1068. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1069. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +117 -0
  1070. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +8 -0
  1071. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1072. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1073. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1074. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  1075. data/modules/emscripten/tools/node_modules/source-map/package.json +74 -0
  1076. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +73 -0
  1077. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +26 -0
  1078. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1079. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1080. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1081. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1082. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1083. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +306 -0
  1084. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1085. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1086. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +152 -0
  1087. data/modules/emscripten/tools/reproduceriter.js +216 -0
  1088. data/modules/emscripten/tools/reproduceriter.py +160 -0
  1089. data/modules/emscripten/tools/response_file.py +28 -0
  1090. data/modules/emscripten/tools/response_file.pyc +0 -0
  1091. data/modules/emscripten/tools/scan_js.py +20 -0
  1092. data/modules/emscripten/tools/scan_ll.py +18 -0
  1093. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +3 -0
  1094. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +46 -0
  1095. data/modules/emscripten/tools/settings_template_readonly.py +47 -0
  1096. data/modules/emscripten/tools/shared.py +1437 -0
  1097. data/modules/emscripten/tools/shared.pyc +0 -0
  1098. data/modules/emscripten/tools/source-maps/sourcemap2json.js +15 -0
  1099. data/modules/emscripten/tools/source-maps/sourcemapper.js +177 -0
  1100. data/modules/emscripten/tools/split.py +97 -0
  1101. data/modules/emscripten/tools/tempfiles.py +40 -0
  1102. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  1103. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +75 -0
  1104. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +91 -0
  1105. data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +570 -0
  1106. data/modules/emscripten/tools/test-js-optimizer-asm-outline.js +606 -0
  1107. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +540 -0
  1108. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +550 -0
  1109. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +36 -0
  1110. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +37 -0
  1111. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +106 -0
  1112. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +110 -0
  1113. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +9 -0
  1114. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +12 -0
  1115. data/modules/emscripten/tools/test-js-optimizer-output.js +291 -0
  1116. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +232 -0
  1117. data/modules/emscripten/tools/test-js-optimizer-regs.js +237 -0
  1118. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +91 -0
  1119. data/modules/emscripten/tools/test-js-optimizer-t2.js +92 -0
  1120. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +17 -0
  1121. data/modules/emscripten/tools/test-js-optimizer-t2c.js +18 -0
  1122. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +49 -0
  1123. data/modules/emscripten/tools/test-js-optimizer-t3.js +50 -0
  1124. data/modules/emscripten/tools/test-js-optimizer.js +401 -0
  1125. data/modules/mruby/AUTHORS +18 -0
  1126. data/modules/mruby/CONTRIBUTING.md +65 -0
  1127. data/modules/mruby/ChangeLog +15 -0
  1128. data/modules/mruby/INSTALL +29 -0
  1129. data/modules/mruby/LEGAL +6 -0
  1130. data/modules/mruby/MITL +20 -0
  1131. data/modules/mruby/Makefile +18 -0
  1132. data/modules/mruby/NEWS +13 -0
  1133. data/modules/mruby/README.md +116 -0
  1134. data/modules/mruby/Rakefile +114 -0
  1135. data/modules/mruby/TODO +11 -0
  1136. data/modules/mruby/benchmark/ao-render.rb +315 -0
  1137. data/modules/mruby/benchmark/bm_so_lists.rb +47 -0
  1138. data/modules/mruby/benchmark/fib39.rb +8 -0
  1139. data/modules/mruby/build_config.rb +88 -0
  1140. data/modules/mruby/doc/compile/README.md +376 -0
  1141. data/modules/mruby/doc/mrbgems/README.md +254 -0
  1142. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  1143. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  1144. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  1145. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  1146. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  1147. data/modules/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  1148. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  1149. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  1150. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  1151. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  1152. data/modules/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  1153. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +23 -0
  1154. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  1155. data/modules/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  1156. data/modules/mruby/examples/targets/ArduinoDue.rb +65 -0
  1157. data/modules/mruby/examples/targets/chipKitMax32.rb +68 -0
  1158. data/modules/mruby/include/mrbconf.h +87 -0
  1159. data/modules/mruby/include/mruby/array.h +63 -0
  1160. data/modules/mruby/include/mruby/class.h +75 -0
  1161. data/modules/mruby/include/mruby/compile.h +176 -0
  1162. data/modules/mruby/include/mruby/data.h +53 -0
  1163. data/modules/mruby/include/mruby/dump.h +151 -0
  1164. data/modules/mruby/include/mruby/gc.h +17 -0
  1165. data/modules/mruby/include/mruby/hash.h +54 -0
  1166. data/modules/mruby/include/mruby/irep.h +40 -0
  1167. data/modules/mruby/include/mruby/khash.h +257 -0
  1168. data/modules/mruby/include/mruby/numeric.h +32 -0
  1169. data/modules/mruby/include/mruby/proc.h +62 -0
  1170. data/modules/mruby/include/mruby/range.h +35 -0
  1171. data/modules/mruby/include/mruby/string.h +78 -0
  1172. data/modules/mruby/include/mruby/value.h +483 -0
  1173. data/modules/mruby/include/mruby/variable.h +78 -0
  1174. data/modules/mruby/include/mruby.h +388 -0
  1175. data/modules/mruby/minirake +477 -0
  1176. data/modules/mruby/mrbgems/default.gembox +61 -0
  1177. data/modules/mruby/mrbgems/full-core.gembox +9 -0
  1178. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +4 -0
  1179. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +204 -0
  1180. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +140 -0
  1181. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +109 -0
  1182. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +5 -0
  1183. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +365 -0
  1184. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +5 -0
  1185. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +243 -0
  1186. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +4 -0
  1187. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +164 -0
  1188. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +44 -0
  1189. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +4 -0
  1190. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +23 -0
  1191. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +4 -0
  1192. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +251 -0
  1193. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +64 -0
  1194. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +4 -0
  1195. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +13 -0
  1196. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +62 -0
  1197. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +26 -0
  1198. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +4 -0
  1199. data/modules/mruby/mrbgems/mruby-math/src/math.c +685 -0
  1200. data/modules/mruby/mrbgems/mruby-math/test/math.rb +136 -0
  1201. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +4 -0
  1202. data/modules/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +31 -0
  1203. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +10 -0
  1204. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +4 -0
  1205. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +108 -0
  1206. data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  1207. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +9 -0
  1208. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +4 -0
  1209. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +117 -0
  1210. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +38 -0
  1211. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +4 -0
  1212. data/modules/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  1213. data/modules/mruby/mrbgems/mruby-print/src/print.c +44 -0
  1214. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +4 -0
  1215. data/modules/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +40 -0
  1216. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +97 -0
  1217. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +41 -0
  1218. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +4 -0
  1219. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +193 -0
  1220. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +48 -0
  1221. data/modules/mruby/mrbgems/mruby-random/src/random.c +231 -0
  1222. data/modules/mruby/mrbgems/mruby-random/src/random.h +12 -0
  1223. data/modules/mruby/mrbgems/mruby-random/test/random.rb +32 -0
  1224. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +4 -0
  1225. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +141 -0
  1226. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +20 -0
  1227. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +4 -0
  1228. data/modules/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  1229. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1102 -0
  1230. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +3 -0
  1231. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +4 -0
  1232. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +52 -0
  1233. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +175 -0
  1234. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +112 -0
  1235. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +4 -0
  1236. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +50 -0
  1237. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +818 -0
  1238. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +77 -0
  1239. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +4 -0
  1240. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +9 -0
  1241. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +55 -0
  1242. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +12 -0
  1243. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +4 -0
  1244. data/modules/mruby/mrbgems/mruby-time/src/time.c +749 -0
  1245. data/modules/mruby/mrbgems/mruby-time/test/time.rb +201 -0
  1246. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +4 -0
  1247. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  1248. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  1249. data/modules/mruby/mrblib/array.rb +111 -0
  1250. data/modules/mruby/mrblib/class.rb +26 -0
  1251. data/modules/mruby/mrblib/compar.rb +104 -0
  1252. data/modules/mruby/mrblib/enum.rb +398 -0
  1253. data/modules/mruby/mrblib/error.rb +66 -0
  1254. data/modules/mruby/mrblib/hash.rb +193 -0
  1255. data/modules/mruby/mrblib/init_mrblib.c +14 -0
  1256. data/modules/mruby/mrblib/kernel.rb +46 -0
  1257. data/modules/mruby/mrblib/mrblib.rake +18 -0
  1258. data/modules/mruby/mrblib/numeric.rb +101 -0
  1259. data/modules/mruby/mrblib/print.rb +18 -0
  1260. data/modules/mruby/mrblib/range.rb +40 -0
  1261. data/modules/mruby/mrblib/string.rb +145 -0
  1262. data/modules/mruby/src/array.c +1150 -0
  1263. data/modules/mruby/src/backtrace.c +73 -0
  1264. data/modules/mruby/src/class.c +1942 -0
  1265. data/modules/mruby/src/codegen.c +2864 -0
  1266. data/modules/mruby/src/compar.c +13 -0
  1267. data/modules/mruby/src/crc.c +38 -0
  1268. data/modules/mruby/src/dump.c +542 -0
  1269. data/modules/mruby/src/enum.c +14 -0
  1270. data/modules/mruby/src/error.c +454 -0
  1271. data/modules/mruby/src/error.h +18 -0
  1272. data/modules/mruby/src/etc.c +204 -0
  1273. data/modules/mruby/src/gc.c +1542 -0
  1274. data/modules/mruby/src/hash.c +1261 -0
  1275. data/modules/mruby/src/init.c +62 -0
  1276. data/modules/mruby/src/kernel.c +1105 -0
  1277. data/modules/mruby/src/keywords +50 -0
  1278. data/modules/mruby/src/lex.def +212 -0
  1279. data/modules/mruby/src/load.c +629 -0
  1280. data/modules/mruby/src/mruby_core.rake +28 -0
  1281. data/modules/mruby/src/node.h +117 -0
  1282. data/modules/mruby/src/numeric.c +1418 -0
  1283. data/modules/mruby/src/object.c +593 -0
  1284. data/modules/mruby/src/opcode.h +160 -0
  1285. data/modules/mruby/src/parse.y +6050 -0
  1286. data/modules/mruby/src/pool.c +190 -0
  1287. data/modules/mruby/src/print.c +71 -0
  1288. data/modules/mruby/src/proc.c +209 -0
  1289. data/modules/mruby/src/range.c +442 -0
  1290. data/modules/mruby/src/re.h +13 -0
  1291. data/modules/mruby/src/state.c +200 -0
  1292. data/modules/mruby/src/string.c +2580 -0
  1293. data/modules/mruby/src/symbol.c +456 -0
  1294. data/modules/mruby/src/value_array.h +27 -0
  1295. data/modules/mruby/src/variable.c +1147 -0
  1296. data/modules/mruby/src/vm.c +2129 -0
  1297. data/modules/mruby/tasks/libmruby.rake +18 -0
  1298. data/modules/mruby/tasks/mrbgem_spec.rake +297 -0
  1299. data/modules/mruby/tasks/mrbgems.rake +85 -0
  1300. data/modules/mruby/tasks/mrbgems_test.rake +88 -0
  1301. data/modules/mruby/tasks/mruby_build.rake +211 -0
  1302. data/modules/mruby/tasks/mruby_build_commands.rake +287 -0
  1303. data/modules/mruby/tasks/mruby_build_gem.rake +67 -0
  1304. data/modules/mruby/tasks/ruby_ext.rake +70 -0
  1305. data/modules/mruby/tasks/toolchains/androideabi.rake +126 -0
  1306. data/modules/mruby/tasks/toolchains/clang.rake +8 -0
  1307. data/modules/mruby/tasks/toolchains/gcc.rake +21 -0
  1308. data/modules/mruby/tasks/toolchains/vs2010.rake +3 -0
  1309. data/modules/mruby/tasks/toolchains/vs2012.rake +44 -0
  1310. data/modules/mruby/test/README.md +7 -0
  1311. data/modules/mruby/test/assert.rb +238 -0
  1312. data/modules/mruby/test/driver.c +118 -0
  1313. data/modules/mruby/test/init_mrbtest.c +24 -0
  1314. data/modules/mruby/test/mrbtest.rake +47 -0
  1315. data/modules/mruby/test/report.rb +4 -0
  1316. data/modules/mruby/test/t/argumenterror.rb +21 -0
  1317. data/modules/mruby/test/t/array.rb +309 -0
  1318. data/modules/mruby/test/t/basicobject.rb +11 -0
  1319. data/modules/mruby/test/t/bs_block.rb +489 -0
  1320. data/modules/mruby/test/t/bs_literal.rb +38 -0
  1321. data/modules/mruby/test/t/class.rb +219 -0
  1322. data/modules/mruby/test/t/comparable.rb +72 -0
  1323. data/modules/mruby/test/t/enumerable.rb +108 -0
  1324. data/modules/mruby/test/t/exception.rb +337 -0
  1325. data/modules/mruby/test/t/false.rb +33 -0
  1326. data/modules/mruby/test/t/float.rb +145 -0
  1327. data/modules/mruby/test/t/gc.rb +45 -0
  1328. data/modules/mruby/test/t/hash.rb +310 -0
  1329. data/modules/mruby/test/t/indexerror.rb +10 -0
  1330. data/modules/mruby/test/t/integer.rb +222 -0
  1331. data/modules/mruby/test/t/kernel.rb +425 -0
  1332. data/modules/mruby/test/t/literals.rb +287 -0
  1333. data/modules/mruby/test/t/localjumperror.rb +13 -0
  1334. data/modules/mruby/test/t/methods.rb +109 -0
  1335. data/modules/mruby/test/t/module.rb +344 -0
  1336. data/modules/mruby/test/t/nameerror.rb +32 -0
  1337. data/modules/mruby/test/t/nil.rb +29 -0
  1338. data/modules/mruby/test/t/nomethoderror.rb +13 -0
  1339. data/modules/mruby/test/t/numeric.rb +29 -0
  1340. data/modules/mruby/test/t/object.rb +11 -0
  1341. data/modules/mruby/test/t/proc.rb +56 -0
  1342. data/modules/mruby/test/t/range.rb +82 -0
  1343. data/modules/mruby/test/t/rangeerror.rb +10 -0
  1344. data/modules/mruby/test/t/regexperror.rb +4 -0
  1345. data/modules/mruby/test/t/runtimeerror.rb +6 -0
  1346. data/modules/mruby/test/t/standarderror.rb +10 -0
  1347. data/modules/mruby/test/t/string.rb +483 -0
  1348. data/modules/mruby/test/t/symbol.rb +27 -0
  1349. data/modules/mruby/test/t/syntax.rb +67 -0
  1350. data/modules/mruby/test/t/true.rb +33 -0
  1351. data/modules/mruby/test/t/typeerror.rb +11 -0
  1352. data/modules/mruby/tools/mrbc/mrbc.c +318 -0
  1353. data/modules/mruby/tools/mrbc/mrbc.rake +14 -0
  1354. data/modules/mruby/travis_config.rb +6 -0
  1355. data/modules/mrubymix/LICENSE +21 -0
  1356. data/modules/mrubymix/README.md +6 -0
  1357. data/modules/mrubymix/bin/mrubymix +29 -0
  1358. data/modules/mrubymix/lib/mrubymix.rb +93 -0
  1359. data/modules/mrubymix/mrubymix.gemspec +13 -0
  1360. data/scripts/gen_gems_config.rb +185 -0
  1361. data/scripts/gen_post.rb +104 -0
  1362. data/templates/minimal/Rakefile +36 -0
  1363. data/templates/minimal/app/app.rb +3 -0
  1364. metadata +1408 -0
@@ -0,0 +1,2130 @@
1
+ // -*- C++ -*-
2
+ //===----------------------------------------------------------------------===//
3
+ //
4
+ // The LLVM Compiler Infrastructure
5
+ //
6
+ // This file is dual licensed under the MIT and the University of Illinois Open
7
+ // Source Licenses. See LICENSE.TXT for details.
8
+ //
9
+ //===----------------------------------------------------------------------===//
10
+
11
+ #ifndef _LIBCPP_FUNCTIONAL_03
12
+ #define _LIBCPP_FUNCTIONAL_03
13
+
14
+ // manual variadic expansion for <functional>
15
+
16
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
17
+ #pragma GCC system_header
18
+ #endif
19
+
20
+ template <class _Tp>
21
+ class __mem_fn
22
+ : public __weak_result_type<_Tp>
23
+ {
24
+ public:
25
+ // types
26
+ typedef _Tp type;
27
+ private:
28
+ type __f_;
29
+
30
+ public:
31
+ _LIBCPP_INLINE_VISIBILITY __mem_fn(type __f) : __f_(__f) {}
32
+
33
+ // invoke
34
+
35
+ typename __invoke_return<type>::type
36
+ operator() ()
37
+ {
38
+ return __invoke(__f_);
39
+ }
40
+
41
+ template <class _A0>
42
+ typename __invoke_return0<type, _A0>::type
43
+ operator() (_A0& __a0)
44
+ {
45
+ return __invoke(__f_, __a0);
46
+ }
47
+
48
+ template <class _A0, class _A1>
49
+ typename __invoke_return1<type, _A0, _A1>::type
50
+ operator() (_A0& __a0, _A1& __a1)
51
+ {
52
+ return __invoke(__f_, __a0, __a1);
53
+ }
54
+
55
+ template <class _A0, class _A1, class _A2>
56
+ typename __invoke_return2<type, _A0, _A1, _A2>::type
57
+ operator() (_A0& __a0, _A1& __a1, _A2& __a2)
58
+ {
59
+ return __invoke(__f_, __a0, __a1, __a2);
60
+ }
61
+ };
62
+
63
+ template<class _Rp, class _Tp>
64
+ inline _LIBCPP_INLINE_VISIBILITY
65
+ __mem_fn<_Rp _Tp::*>
66
+ mem_fn(_Rp _Tp::* __pm)
67
+ {
68
+ return __mem_fn<_Rp _Tp::*>(__pm);
69
+ }
70
+
71
+ template<class _Rp, class _Tp>
72
+ inline _LIBCPP_INLINE_VISIBILITY
73
+ __mem_fn<_Rp (_Tp::*)()>
74
+ mem_fn(_Rp (_Tp::* __pm)())
75
+ {
76
+ return __mem_fn<_Rp (_Tp::*)()>(__pm);
77
+ }
78
+
79
+ template<class _Rp, class _Tp, class _A0>
80
+ inline _LIBCPP_INLINE_VISIBILITY
81
+ __mem_fn<_Rp (_Tp::*)(_A0)>
82
+ mem_fn(_Rp (_Tp::* __pm)(_A0))
83
+ {
84
+ return __mem_fn<_Rp (_Tp::*)(_A0)>(__pm);
85
+ }
86
+
87
+ template<class _Rp, class _Tp, class _A0, class _A1>
88
+ inline _LIBCPP_INLINE_VISIBILITY
89
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1)>
90
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1))
91
+ {
92
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1)>(__pm);
93
+ }
94
+
95
+ template<class _Rp, class _Tp, class _A0, class _A1, class _A2>
96
+ inline _LIBCPP_INLINE_VISIBILITY
97
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>
98
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1, _A2))
99
+ {
100
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>(__pm);
101
+ }
102
+
103
+ template<class _Rp, class _Tp>
104
+ inline _LIBCPP_INLINE_VISIBILITY
105
+ __mem_fn<_Rp (_Tp::*)()>
106
+ mem_fn(_Rp (_Tp::* __pm)() const)
107
+ {
108
+ return __mem_fn<_Rp (_Tp::*)()>(__pm);
109
+ }
110
+
111
+ template<class _Rp, class _Tp, class _A0>
112
+ inline _LIBCPP_INLINE_VISIBILITY
113
+ __mem_fn<_Rp (_Tp::*)(_A0)>
114
+ mem_fn(_Rp (_Tp::* __pm)(_A0) const)
115
+ {
116
+ return __mem_fn<_Rp (_Tp::*)(_A0)>(__pm);
117
+ }
118
+
119
+ template<class _Rp, class _Tp, class _A0, class _A1>
120
+ inline _LIBCPP_INLINE_VISIBILITY
121
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1)>
122
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1) const)
123
+ {
124
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1)>(__pm);
125
+ }
126
+
127
+ template<class _Rp, class _Tp, class _A0, class _A1, class _A2>
128
+ inline _LIBCPP_INLINE_VISIBILITY
129
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>
130
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1, _A2) const)
131
+ {
132
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>(__pm);
133
+ }
134
+
135
+ template<class _Rp, class _Tp>
136
+ inline _LIBCPP_INLINE_VISIBILITY
137
+ __mem_fn<_Rp (_Tp::*)()>
138
+ mem_fn(_Rp (_Tp::* __pm)() volatile)
139
+ {
140
+ return __mem_fn<_Rp (_Tp::*)()>(__pm);
141
+ }
142
+
143
+ template<class _Rp, class _Tp, class _A0>
144
+ inline _LIBCPP_INLINE_VISIBILITY
145
+ __mem_fn<_Rp (_Tp::*)(_A0)>
146
+ mem_fn(_Rp (_Tp::* __pm)(_A0) volatile)
147
+ {
148
+ return __mem_fn<_Rp (_Tp::*)(_A0)>(__pm);
149
+ }
150
+
151
+ template<class _Rp, class _Tp, class _A0, class _A1>
152
+ inline _LIBCPP_INLINE_VISIBILITY
153
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1)>
154
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1) volatile)
155
+ {
156
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1)>(__pm);
157
+ }
158
+
159
+ template<class _Rp, class _Tp, class _A0, class _A1, class _A2>
160
+ inline _LIBCPP_INLINE_VISIBILITY
161
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>
162
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1, _A2) volatile)
163
+ {
164
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>(__pm);
165
+ }
166
+
167
+ template<class _Rp, class _Tp>
168
+ inline _LIBCPP_INLINE_VISIBILITY
169
+ __mem_fn<_Rp (_Tp::*)()>
170
+ mem_fn(_Rp (_Tp::* __pm)() const volatile)
171
+ {
172
+ return __mem_fn<_Rp (_Tp::*)()>(__pm);
173
+ }
174
+
175
+ template<class _Rp, class _Tp, class _A0>
176
+ inline _LIBCPP_INLINE_VISIBILITY
177
+ __mem_fn<_Rp (_Tp::*)(_A0)>
178
+ mem_fn(_Rp (_Tp::* __pm)(_A0) const volatile)
179
+ {
180
+ return __mem_fn<_Rp (_Tp::*)(_A0)>(__pm);
181
+ }
182
+
183
+ template<class _Rp, class _Tp, class _A0, class _A1>
184
+ inline _LIBCPP_INLINE_VISIBILITY
185
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1)>
186
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1) const volatile)
187
+ {
188
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1)>(__pm);
189
+ }
190
+
191
+ template<class _Rp, class _Tp, class _A0, class _A1, class _A2>
192
+ inline _LIBCPP_INLINE_VISIBILITY
193
+ __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>
194
+ mem_fn(_Rp (_Tp::* __pm)(_A0, _A1, _A2) const volatile)
195
+ {
196
+ return __mem_fn<_Rp (_Tp::*)(_A0, _A1, _A2)>(__pm);
197
+ }
198
+
199
+ // bad_function_call
200
+
201
+ class _LIBCPP_EXCEPTION_ABI bad_function_call
202
+ : public exception
203
+ {
204
+ };
205
+
206
+ template<class _Fp> class _LIBCPP_TYPE_VIS function; // undefined
207
+
208
+ namespace __function
209
+ {
210
+
211
+ template<class _Fp>
212
+ struct __maybe_derive_from_unary_function
213
+ {
214
+ };
215
+
216
+ template<class _Rp, class _A1>
217
+ struct __maybe_derive_from_unary_function<_Rp(_A1)>
218
+ : public unary_function<_A1, _Rp>
219
+ {
220
+ };
221
+
222
+ template<class _Fp>
223
+ struct __maybe_derive_from_binary_function
224
+ {
225
+ };
226
+
227
+ template<class _Rp, class _A1, class _A2>
228
+ struct __maybe_derive_from_binary_function<_Rp(_A1, _A2)>
229
+ : public binary_function<_A1, _A2, _Rp>
230
+ {
231
+ };
232
+
233
+ template<class _Fp> class __base;
234
+
235
+ template<class _Rp>
236
+ class __base<_Rp()>
237
+ {
238
+ __base(const __base&);
239
+ __base& operator=(const __base&);
240
+ public:
241
+ __base() {}
242
+ virtual ~__base() {}
243
+ virtual __base* __clone() const = 0;
244
+ virtual void __clone(__base*) const = 0;
245
+ virtual void destroy() = 0;
246
+ virtual void destroy_deallocate() = 0;
247
+ virtual _Rp operator()() = 0;
248
+ #ifndef _LIBCPP_NO_RTTI
249
+ virtual const void* target(const type_info&) const = 0;
250
+ virtual const std::type_info& target_type() const = 0;
251
+ #endif // _LIBCPP_NO_RTTI
252
+ };
253
+
254
+ template<class _Rp, class _A0>
255
+ class __base<_Rp(_A0)>
256
+ {
257
+ __base(const __base&);
258
+ __base& operator=(const __base&);
259
+ public:
260
+ __base() {}
261
+ virtual ~__base() {}
262
+ virtual __base* __clone() const = 0;
263
+ virtual void __clone(__base*) const = 0;
264
+ virtual void destroy() = 0;
265
+ virtual void destroy_deallocate() = 0;
266
+ virtual _Rp operator()(_A0) = 0;
267
+ #ifndef _LIBCPP_NO_RTTI
268
+ virtual const void* target(const type_info&) const = 0;
269
+ virtual const std::type_info& target_type() const = 0;
270
+ #endif // _LIBCPP_NO_RTTI
271
+ };
272
+
273
+ template<class _Rp, class _A0, class _A1>
274
+ class __base<_Rp(_A0, _A1)>
275
+ {
276
+ __base(const __base&);
277
+ __base& operator=(const __base&);
278
+ public:
279
+ __base() {}
280
+ virtual ~__base() {}
281
+ virtual __base* __clone() const = 0;
282
+ virtual void __clone(__base*) const = 0;
283
+ virtual void destroy() = 0;
284
+ virtual void destroy_deallocate() = 0;
285
+ virtual _Rp operator()(_A0, _A1) = 0;
286
+ #ifndef _LIBCPP_NO_RTTI
287
+ virtual const void* target(const type_info&) const = 0;
288
+ virtual const std::type_info& target_type() const = 0;
289
+ #endif // _LIBCPP_NO_RTTI
290
+ };
291
+
292
+ template<class _Rp, class _A0, class _A1, class _A2>
293
+ class __base<_Rp(_A0, _A1, _A2)>
294
+ {
295
+ __base(const __base&);
296
+ __base& operator=(const __base&);
297
+ public:
298
+ __base() {}
299
+ virtual ~__base() {}
300
+ virtual __base* __clone() const = 0;
301
+ virtual void __clone(__base*) const = 0;
302
+ virtual void destroy() = 0;
303
+ virtual void destroy_deallocate() = 0;
304
+ virtual _Rp operator()(_A0, _A1, _A2) = 0;
305
+ #ifndef _LIBCPP_NO_RTTI
306
+ virtual const void* target(const type_info&) const = 0;
307
+ virtual const std::type_info& target_type() const = 0;
308
+ #endif // _LIBCPP_NO_RTTI
309
+ };
310
+
311
+ template<class _FD, class _Alloc, class _FB> class __func;
312
+
313
+ template<class _Fp, class _Alloc, class _Rp>
314
+ class __func<_Fp, _Alloc, _Rp()>
315
+ : public __base<_Rp()>
316
+ {
317
+ __compressed_pair<_Fp, _Alloc> __f_;
318
+ public:
319
+ explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}
320
+ explicit __func(_Fp __f, _Alloc __a) : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}
321
+ virtual __base<_Rp()>* __clone() const;
322
+ virtual void __clone(__base<_Rp()>*) const;
323
+ virtual void destroy();
324
+ virtual void destroy_deallocate();
325
+ virtual _Rp operator()();
326
+ #ifndef _LIBCPP_NO_RTTI
327
+ virtual const void* target(const type_info&) const;
328
+ virtual const std::type_info& target_type() const;
329
+ #endif // _LIBCPP_NO_RTTI
330
+ };
331
+
332
+ template<class _Fp, class _Alloc, class _Rp>
333
+ __base<_Rp()>*
334
+ __func<_Fp, _Alloc, _Rp()>::__clone() const
335
+ {
336
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
337
+ _Ap __a(__f_.second());
338
+ typedef __allocator_destructor<_Ap> _Dp;
339
+ unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
340
+ ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));
341
+ return __hold.release();
342
+ }
343
+
344
+ template<class _Fp, class _Alloc, class _Rp>
345
+ void
346
+ __func<_Fp, _Alloc, _Rp()>::__clone(__base<_Rp()>* __p) const
347
+ {
348
+ ::new (__p) __func(__f_.first(), __f_.second());
349
+ }
350
+
351
+ template<class _Fp, class _Alloc, class _Rp>
352
+ void
353
+ __func<_Fp, _Alloc, _Rp()>::destroy()
354
+ {
355
+ __f_.~__compressed_pair<_Fp, _Alloc>();
356
+ }
357
+
358
+ template<class _Fp, class _Alloc, class _Rp>
359
+ void
360
+ __func<_Fp, _Alloc, _Rp()>::destroy_deallocate()
361
+ {
362
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
363
+ _Ap __a(__f_.second());
364
+ __f_.~__compressed_pair<_Fp, _Alloc>();
365
+ __a.deallocate(this, 1);
366
+ }
367
+
368
+ template<class _Fp, class _Alloc, class _Rp>
369
+ _Rp
370
+ __func<_Fp, _Alloc, _Rp()>::operator()()
371
+ {
372
+ return __invoke(__f_.first());
373
+ }
374
+
375
+ #ifndef _LIBCPP_NO_RTTI
376
+
377
+ template<class _Fp, class _Alloc, class _Rp>
378
+ const void*
379
+ __func<_Fp, _Alloc, _Rp()>::target(const type_info& __ti) const
380
+ {
381
+ if (__ti == typeid(_Fp))
382
+ return &__f_.first();
383
+ return (const void*)0;
384
+ }
385
+
386
+ template<class _Fp, class _Alloc, class _Rp>
387
+ const std::type_info&
388
+ __func<_Fp, _Alloc, _Rp()>::target_type() const
389
+ {
390
+ return typeid(_Fp);
391
+ }
392
+
393
+ #endif // _LIBCPP_NO_RTTI
394
+
395
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
396
+ class __func<_Fp, _Alloc, _Rp(_A0)>
397
+ : public __base<_Rp(_A0)>
398
+ {
399
+ __compressed_pair<_Fp, _Alloc> __f_;
400
+ public:
401
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}
402
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)
403
+ : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}
404
+ virtual __base<_Rp(_A0)>* __clone() const;
405
+ virtual void __clone(__base<_Rp(_A0)>*) const;
406
+ virtual void destroy();
407
+ virtual void destroy_deallocate();
408
+ virtual _Rp operator()(_A0);
409
+ #ifndef _LIBCPP_NO_RTTI
410
+ virtual const void* target(const type_info&) const;
411
+ virtual const std::type_info& target_type() const;
412
+ #endif // _LIBCPP_NO_RTTI
413
+ };
414
+
415
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
416
+ __base<_Rp(_A0)>*
417
+ __func<_Fp, _Alloc, _Rp(_A0)>::__clone() const
418
+ {
419
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
420
+ _Ap __a(__f_.second());
421
+ typedef __allocator_destructor<_Ap> _Dp;
422
+ unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
423
+ ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));
424
+ return __hold.release();
425
+ }
426
+
427
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
428
+ void
429
+ __func<_Fp, _Alloc, _Rp(_A0)>::__clone(__base<_Rp(_A0)>* __p) const
430
+ {
431
+ ::new (__p) __func(__f_.first(), __f_.second());
432
+ }
433
+
434
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
435
+ void
436
+ __func<_Fp, _Alloc, _Rp(_A0)>::destroy()
437
+ {
438
+ __f_.~__compressed_pair<_Fp, _Alloc>();
439
+ }
440
+
441
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
442
+ void
443
+ __func<_Fp, _Alloc, _Rp(_A0)>::destroy_deallocate()
444
+ {
445
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
446
+ _Ap __a(__f_.second());
447
+ __f_.~__compressed_pair<_Fp, _Alloc>();
448
+ __a.deallocate(this, 1);
449
+ }
450
+
451
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
452
+ _Rp
453
+ __func<_Fp, _Alloc, _Rp(_A0)>::operator()(_A0 __a0)
454
+ {
455
+ return __invoke(__f_.first(), __a0);
456
+ }
457
+
458
+ #ifndef _LIBCPP_NO_RTTI
459
+
460
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
461
+ const void*
462
+ __func<_Fp, _Alloc, _Rp(_A0)>::target(const type_info& __ti) const
463
+ {
464
+ if (__ti == typeid(_Fp))
465
+ return &__f_.first();
466
+ return (const void*)0;
467
+ }
468
+
469
+ template<class _Fp, class _Alloc, class _Rp, class _A0>
470
+ const std::type_info&
471
+ __func<_Fp, _Alloc, _Rp(_A0)>::target_type() const
472
+ {
473
+ return typeid(_Fp);
474
+ }
475
+
476
+ #endif // _LIBCPP_NO_RTTI
477
+
478
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
479
+ class __func<_Fp, _Alloc, _Rp(_A0, _A1)>
480
+ : public __base<_Rp(_A0, _A1)>
481
+ {
482
+ __compressed_pair<_Fp, _Alloc> __f_;
483
+ public:
484
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}
485
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)
486
+ : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}
487
+ virtual __base<_Rp(_A0, _A1)>* __clone() const;
488
+ virtual void __clone(__base<_Rp(_A0, _A1)>*) const;
489
+ virtual void destroy();
490
+ virtual void destroy_deallocate();
491
+ virtual _Rp operator()(_A0, _A1);
492
+ #ifndef _LIBCPP_NO_RTTI
493
+ virtual const void* target(const type_info&) const;
494
+ virtual const std::type_info& target_type() const;
495
+ #endif // _LIBCPP_NO_RTTI
496
+ };
497
+
498
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
499
+ __base<_Rp(_A0, _A1)>*
500
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone() const
501
+ {
502
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
503
+ _Ap __a(__f_.second());
504
+ typedef __allocator_destructor<_Ap> _Dp;
505
+ unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
506
+ ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));
507
+ return __hold.release();
508
+ }
509
+
510
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
511
+ void
512
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone(__base<_Rp(_A0, _A1)>* __p) const
513
+ {
514
+ ::new (__p) __func(__f_.first(), __f_.second());
515
+ }
516
+
517
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
518
+ void
519
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy()
520
+ {
521
+ __f_.~__compressed_pair<_Fp, _Alloc>();
522
+ }
523
+
524
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
525
+ void
526
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy_deallocate()
527
+ {
528
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
529
+ _Ap __a(__f_.second());
530
+ __f_.~__compressed_pair<_Fp, _Alloc>();
531
+ __a.deallocate(this, 1);
532
+ }
533
+
534
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
535
+ _Rp
536
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1)
537
+ {
538
+ return __invoke(__f_.first(), __a0, __a1);
539
+ }
540
+
541
+ #ifndef _LIBCPP_NO_RTTI
542
+
543
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
544
+ const void*
545
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::target(const type_info& __ti) const
546
+ {
547
+ if (__ti == typeid(_Fp))
548
+ return &__f_.first();
549
+ return (const void*)0;
550
+ }
551
+
552
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>
553
+ const std::type_info&
554
+ __func<_Fp, _Alloc, _Rp(_A0, _A1)>::target_type() const
555
+ {
556
+ return typeid(_Fp);
557
+ }
558
+
559
+ #endif // _LIBCPP_NO_RTTI
560
+
561
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
562
+ class __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>
563
+ : public __base<_Rp(_A0, _A1, _A2)>
564
+ {
565
+ __compressed_pair<_Fp, _Alloc> __f_;
566
+ public:
567
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}
568
+ _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)
569
+ : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}
570
+ virtual __base<_Rp(_A0, _A1, _A2)>* __clone() const;
571
+ virtual void __clone(__base<_Rp(_A0, _A1, _A2)>*) const;
572
+ virtual void destroy();
573
+ virtual void destroy_deallocate();
574
+ virtual _Rp operator()(_A0, _A1, _A2);
575
+ #ifndef _LIBCPP_NO_RTTI
576
+ virtual const void* target(const type_info&) const;
577
+ virtual const std::type_info& target_type() const;
578
+ #endif // _LIBCPP_NO_RTTI
579
+ };
580
+
581
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
582
+ __base<_Rp(_A0, _A1, _A2)>*
583
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone() const
584
+ {
585
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
586
+ _Ap __a(__f_.second());
587
+ typedef __allocator_destructor<_Ap> _Dp;
588
+ unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
589
+ ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));
590
+ return __hold.release();
591
+ }
592
+
593
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
594
+ void
595
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone(__base<_Rp(_A0, _A1, _A2)>* __p) const
596
+ {
597
+ ::new (__p) __func(__f_.first(), __f_.second());
598
+ }
599
+
600
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
601
+ void
602
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy()
603
+ {
604
+ __f_.~__compressed_pair<_Fp, _Alloc>();
605
+ }
606
+
607
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
608
+ void
609
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy_deallocate()
610
+ {
611
+ typedef typename _Alloc::template rebind<__func>::other _Ap;
612
+ _Ap __a(__f_.second());
613
+ __f_.~__compressed_pair<_Fp, _Alloc>();
614
+ __a.deallocate(this, 1);
615
+ }
616
+
617
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
618
+ _Rp
619
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2)
620
+ {
621
+ return __invoke(__f_.first(), __a0, __a1, __a2);
622
+ }
623
+
624
+ #ifndef _LIBCPP_NO_RTTI
625
+
626
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
627
+ const void*
628
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target(const type_info& __ti) const
629
+ {
630
+ if (__ti == typeid(_Fp))
631
+ return &__f_.first();
632
+ return (const void*)0;
633
+ }
634
+
635
+ template<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>
636
+ const std::type_info&
637
+ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target_type() const
638
+ {
639
+ return typeid(_Fp);
640
+ }
641
+
642
+ #endif // _LIBCPP_NO_RTTI
643
+
644
+ } // __function
645
+
646
+ template<class _Rp>
647
+ class _LIBCPP_TYPE_VIS function<_Rp()>
648
+ {
649
+ typedef __function::__base<_Rp()> __base;
650
+ aligned_storage<3*sizeof(void*)>::type __buf_;
651
+ __base* __f_;
652
+
653
+ template <class _Fp>
654
+ static bool __not_null(const _Fp&) {return true;}
655
+ template <class _R2>
656
+ static bool __not_null(const function<_Rp()>& __p) {return __p;}
657
+ public:
658
+ typedef _Rp result_type;
659
+
660
+ // 20.7.16.2.1, construct/copy/destroy:
661
+ _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}
662
+ _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}
663
+ function(const function&);
664
+ template<class _Fp>
665
+ function(_Fp,
666
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
667
+
668
+ template<class _Alloc>
669
+ _LIBCPP_INLINE_VISIBILITY
670
+ function(allocator_arg_t, const _Alloc&) : __f_(0) {}
671
+ template<class _Alloc>
672
+ _LIBCPP_INLINE_VISIBILITY
673
+ function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}
674
+ template<class _Alloc>
675
+ function(allocator_arg_t, const _Alloc&, const function&);
676
+ template<class _Fp, class _Alloc>
677
+ function(allocator_arg_t, const _Alloc& __a, _Fp __f,
678
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
679
+
680
+ function& operator=(const function&);
681
+ function& operator=(nullptr_t);
682
+ template<class _Fp>
683
+ typename enable_if
684
+ <
685
+ !is_integral<_Fp>::value,
686
+ function&
687
+ >::type
688
+ operator=(_Fp);
689
+
690
+ ~function();
691
+
692
+ // 20.7.16.2.2, function modifiers:
693
+ void swap(function&);
694
+ template<class _Fp, class _Alloc>
695
+ _LIBCPP_INLINE_VISIBILITY
696
+ void assign(_Fp __f, const _Alloc& __a)
697
+ {function(allocator_arg, __a, __f).swap(*this);}
698
+
699
+ // 20.7.16.2.3, function capacity:
700
+ _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}
701
+
702
+ private:
703
+ // deleted overloads close possible hole in the type system
704
+ template<class _R2>
705
+ bool operator==(const function<_R2()>&) const;// = delete;
706
+ template<class _R2>
707
+ bool operator!=(const function<_R2()>&) const;// = delete;
708
+ public:
709
+ // 20.7.16.2.4, function invocation:
710
+ _Rp operator()() const;
711
+
712
+ #ifndef _LIBCPP_NO_RTTI
713
+ // 20.7.16.2.5, function target access:
714
+ const std::type_info& target_type() const;
715
+ template <typename _Tp> _Tp* target();
716
+ template <typename _Tp> const _Tp* target() const;
717
+ #endif // _LIBCPP_NO_RTTI
718
+ };
719
+
720
+ template<class _Rp>
721
+ function<_Rp()>::function(const function& __f)
722
+ {
723
+ if (__f.__f_ == 0)
724
+ __f_ = 0;
725
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
726
+ {
727
+ __f_ = (__base*)&__buf_;
728
+ __f.__f_->__clone(__f_);
729
+ }
730
+ else
731
+ __f_ = __f.__f_->__clone();
732
+ }
733
+
734
+ template<class _Rp>
735
+ template<class _Alloc>
736
+ function<_Rp()>::function(allocator_arg_t, const _Alloc&, const function& __f)
737
+ {
738
+ if (__f.__f_ == 0)
739
+ __f_ = 0;
740
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
741
+ {
742
+ __f_ = (__base*)&__buf_;
743
+ __f.__f_->__clone(__f_);
744
+ }
745
+ else
746
+ __f_ = __f.__f_->__clone();
747
+ }
748
+
749
+ template<class _Rp>
750
+ template <class _Fp>
751
+ function<_Rp()>::function(_Fp __f,
752
+ typename enable_if<!is_integral<_Fp>::value>::type*)
753
+ : __f_(0)
754
+ {
755
+ if (__not_null(__f))
756
+ {
757
+ typedef __function::__func<_Fp, allocator<_Fp>, _Rp()> _FF;
758
+ if (sizeof(_FF) <= sizeof(__buf_))
759
+ {
760
+ __f_ = (__base*)&__buf_;
761
+ ::new (__f_) _FF(__f);
762
+ }
763
+ else
764
+ {
765
+ typedef allocator<_FF> _Ap;
766
+ _Ap __a;
767
+ typedef __allocator_destructor<_Ap> _Dp;
768
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
769
+ ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));
770
+ __f_ = __hold.release();
771
+ }
772
+ }
773
+ }
774
+
775
+ template<class _Rp>
776
+ template <class _Fp, class _Alloc>
777
+ function<_Rp()>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,
778
+ typename enable_if<!is_integral<_Fp>::value>::type*)
779
+ : __f_(0)
780
+ {
781
+ typedef allocator_traits<_Alloc> __alloc_traits;
782
+ if (__not_null(__f))
783
+ {
784
+ typedef __function::__func<_Fp, _Alloc, _Rp()> _FF;
785
+ if (sizeof(_FF) <= sizeof(__buf_))
786
+ {
787
+ __f_ = (__base*)&__buf_;
788
+ ::new (__f_) _FF(__f);
789
+ }
790
+ else
791
+ {
792
+ typedef typename __alloc_traits::template
793
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
794
+ rebind_alloc<_FF>
795
+ #else
796
+ rebind_alloc<_FF>::other
797
+ #endif
798
+ _Ap;
799
+ _Ap __a(__a0);
800
+ typedef __allocator_destructor<_Ap> _Dp;
801
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
802
+ ::new (__hold.get()) _FF(__f, _Alloc(__a));
803
+ __f_ = __hold.release();
804
+ }
805
+ }
806
+ }
807
+
808
+ template<class _Rp>
809
+ function<_Rp()>&
810
+ function<_Rp()>::operator=(const function& __f)
811
+ {
812
+ function(__f).swap(*this);
813
+ return *this;
814
+ }
815
+
816
+ template<class _Rp>
817
+ function<_Rp()>&
818
+ function<_Rp()>::operator=(nullptr_t)
819
+ {
820
+ if (__f_ == (__base*)&__buf_)
821
+ __f_->destroy();
822
+ else if (__f_)
823
+ __f_->destroy_deallocate();
824
+ __f_ = 0;
825
+ }
826
+
827
+ template<class _Rp>
828
+ template <class _Fp>
829
+ typename enable_if
830
+ <
831
+ !is_integral<_Fp>::value,
832
+ function<_Rp()>&
833
+ >::type
834
+ function<_Rp()>::operator=(_Fp __f)
835
+ {
836
+ function(_VSTD::move(__f)).swap(*this);
837
+ return *this;
838
+ }
839
+
840
+ template<class _Rp>
841
+ function<_Rp()>::~function()
842
+ {
843
+ if (__f_ == (__base*)&__buf_)
844
+ __f_->destroy();
845
+ else if (__f_)
846
+ __f_->destroy_deallocate();
847
+ }
848
+
849
+ template<class _Rp>
850
+ void
851
+ function<_Rp()>::swap(function& __f)
852
+ {
853
+ if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)
854
+ {
855
+ typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
856
+ __base* __t = (__base*)&__tempbuf;
857
+ __f_->__clone(__t);
858
+ __f_->destroy();
859
+ __f_ = 0;
860
+ __f.__f_->__clone((__base*)&__buf_);
861
+ __f.__f_->destroy();
862
+ __f.__f_ = 0;
863
+ __f_ = (__base*)&__buf_;
864
+ __t->__clone((__base*)&__f.__buf_);
865
+ __t->destroy();
866
+ __f.__f_ = (__base*)&__f.__buf_;
867
+ }
868
+ else if (__f_ == (__base*)&__buf_)
869
+ {
870
+ __f_->__clone((__base*)&__f.__buf_);
871
+ __f_->destroy();
872
+ __f_ = __f.__f_;
873
+ __f.__f_ = (__base*)&__f.__buf_;
874
+ }
875
+ else if (__f.__f_ == (__base*)&__f.__buf_)
876
+ {
877
+ __f.__f_->__clone((__base*)&__buf_);
878
+ __f.__f_->destroy();
879
+ __f.__f_ = __f_;
880
+ __f_ = (__base*)&__buf_;
881
+ }
882
+ else
883
+ _VSTD::swap(__f_, __f.__f_);
884
+ }
885
+
886
+ template<class _Rp>
887
+ _Rp
888
+ function<_Rp()>::operator()() const
889
+ {
890
+ #ifndef _LIBCPP_NO_EXCEPTIONS
891
+ if (__f_ == 0)
892
+ throw bad_function_call();
893
+ #endif // _LIBCPP_NO_EXCEPTIONS
894
+ return (*__f_)();
895
+ }
896
+
897
+ #ifndef _LIBCPP_NO_RTTI
898
+
899
+ template<class _Rp>
900
+ const std::type_info&
901
+ function<_Rp()>::target_type() const
902
+ {
903
+ if (__f_ == 0)
904
+ return typeid(void);
905
+ return __f_->target_type();
906
+ }
907
+
908
+ template<class _Rp>
909
+ template <typename _Tp>
910
+ _Tp*
911
+ function<_Rp()>::target()
912
+ {
913
+ if (__f_ == 0)
914
+ return (_Tp*)0;
915
+ return (_Tp*)__f_->target(typeid(_Tp));
916
+ }
917
+
918
+ template<class _Rp>
919
+ template <typename _Tp>
920
+ const _Tp*
921
+ function<_Rp()>::target() const
922
+ {
923
+ if (__f_ == 0)
924
+ return (const _Tp*)0;
925
+ return (const _Tp*)__f_->target(typeid(_Tp));
926
+ }
927
+
928
+ #endif // _LIBCPP_NO_RTTI
929
+
930
+ template<class _Rp, class _A0>
931
+ class _LIBCPP_TYPE_VIS function<_Rp(_A0)>
932
+ : public unary_function<_A0, _Rp>
933
+ {
934
+ typedef __function::__base<_Rp(_A0)> __base;
935
+ aligned_storage<3*sizeof(void*)>::type __buf_;
936
+ __base* __f_;
937
+
938
+ template <class _Fp>
939
+ _LIBCPP_INLINE_VISIBILITY
940
+ static bool __not_null(const _Fp&) {return true;}
941
+ template <class _R2, class _B0>
942
+ _LIBCPP_INLINE_VISIBILITY
943
+ static bool __not_null(_R2 (*__p)(_B0)) {return __p;}
944
+ template <class _R2, class _Cp>
945
+ _LIBCPP_INLINE_VISIBILITY
946
+ static bool __not_null(_R2 (_Cp::*__p)()) {return __p;}
947
+ template <class _R2, class _Cp>
948
+ _LIBCPP_INLINE_VISIBILITY
949
+ static bool __not_null(_R2 (_Cp::*__p)() const) {return __p;}
950
+ template <class _R2, class _Cp>
951
+ _LIBCPP_INLINE_VISIBILITY
952
+ static bool __not_null(_R2 (_Cp::*__p)() volatile) {return __p;}
953
+ template <class _R2, class _Cp>
954
+ _LIBCPP_INLINE_VISIBILITY
955
+ static bool __not_null(_R2 (_Cp::*__p)() const volatile) {return __p;}
956
+ template <class _R2, class _B0>
957
+ _LIBCPP_INLINE_VISIBILITY
958
+ static bool __not_null(const function<_Rp(_B0)>& __p) {return __p;}
959
+ public:
960
+ typedef _Rp result_type;
961
+
962
+ // 20.7.16.2.1, construct/copy/destroy:
963
+ _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}
964
+ _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}
965
+ function(const function&);
966
+ template<class _Fp>
967
+ function(_Fp,
968
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
969
+
970
+ template<class _Alloc>
971
+ _LIBCPP_INLINE_VISIBILITY
972
+ function(allocator_arg_t, const _Alloc&) : __f_(0) {}
973
+ template<class _Alloc>
974
+ _LIBCPP_INLINE_VISIBILITY
975
+ function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}
976
+ template<class _Alloc>
977
+ function(allocator_arg_t, const _Alloc&, const function&);
978
+ template<class _Fp, class _Alloc>
979
+ function(allocator_arg_t, const _Alloc& __a, _Fp __f,
980
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
981
+
982
+ function& operator=(const function&);
983
+ function& operator=(nullptr_t);
984
+ template<class _Fp>
985
+ typename enable_if
986
+ <
987
+ !is_integral<_Fp>::value,
988
+ function&
989
+ >::type
990
+ operator=(_Fp);
991
+
992
+ ~function();
993
+
994
+ // 20.7.16.2.2, function modifiers:
995
+ void swap(function&);
996
+ template<class _Fp, class _Alloc>
997
+ _LIBCPP_INLINE_VISIBILITY
998
+ void assign(_Fp __f, const _Alloc& __a)
999
+ {function(allocator_arg, __a, __f).swap(*this);}
1000
+
1001
+ // 20.7.16.2.3, function capacity:
1002
+ _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}
1003
+
1004
+ private:
1005
+ // deleted overloads close possible hole in the type system
1006
+ template<class _R2, class _B0>
1007
+ bool operator==(const function<_R2(_B0)>&) const;// = delete;
1008
+ template<class _R2, class _B0>
1009
+ bool operator!=(const function<_R2(_B0)>&) const;// = delete;
1010
+ public:
1011
+ // 20.7.16.2.4, function invocation:
1012
+ _Rp operator()(_A0) const;
1013
+
1014
+ #ifndef _LIBCPP_NO_RTTI
1015
+ // 20.7.16.2.5, function target access:
1016
+ const std::type_info& target_type() const;
1017
+ template <typename _Tp> _Tp* target();
1018
+ template <typename _Tp> const _Tp* target() const;
1019
+ #endif // _LIBCPP_NO_RTTI
1020
+ };
1021
+
1022
+ template<class _Rp, class _A0>
1023
+ function<_Rp(_A0)>::function(const function& __f)
1024
+ {
1025
+ if (__f.__f_ == 0)
1026
+ __f_ = 0;
1027
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1028
+ {
1029
+ __f_ = (__base*)&__buf_;
1030
+ __f.__f_->__clone(__f_);
1031
+ }
1032
+ else
1033
+ __f_ = __f.__f_->__clone();
1034
+ }
1035
+
1036
+ template<class _Rp, class _A0>
1037
+ template<class _Alloc>
1038
+ function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc&, const function& __f)
1039
+ {
1040
+ if (__f.__f_ == 0)
1041
+ __f_ = 0;
1042
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1043
+ {
1044
+ __f_ = (__base*)&__buf_;
1045
+ __f.__f_->__clone(__f_);
1046
+ }
1047
+ else
1048
+ __f_ = __f.__f_->__clone();
1049
+ }
1050
+
1051
+ template<class _Rp, class _A0>
1052
+ template <class _Fp>
1053
+ function<_Rp(_A0)>::function(_Fp __f,
1054
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1055
+ : __f_(0)
1056
+ {
1057
+ if (__not_null(__f))
1058
+ {
1059
+ typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0)> _FF;
1060
+ if (sizeof(_FF) <= sizeof(__buf_))
1061
+ {
1062
+ __f_ = (__base*)&__buf_;
1063
+ ::new (__f_) _FF(__f);
1064
+ }
1065
+ else
1066
+ {
1067
+ typedef allocator<_FF> _Ap;
1068
+ _Ap __a;
1069
+ typedef __allocator_destructor<_Ap> _Dp;
1070
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1071
+ ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));
1072
+ __f_ = __hold.release();
1073
+ }
1074
+ }
1075
+ }
1076
+
1077
+ template<class _Rp, class _A0>
1078
+ template <class _Fp, class _Alloc>
1079
+ function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,
1080
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1081
+ : __f_(0)
1082
+ {
1083
+ typedef allocator_traits<_Alloc> __alloc_traits;
1084
+ if (__not_null(__f))
1085
+ {
1086
+ typedef __function::__func<_Fp, _Alloc, _Rp(_A0)> _FF;
1087
+ if (sizeof(_FF) <= sizeof(__buf_))
1088
+ {
1089
+ __f_ = (__base*)&__buf_;
1090
+ ::new (__f_) _FF(__f);
1091
+ }
1092
+ else
1093
+ {
1094
+ typedef typename __alloc_traits::template
1095
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
1096
+ rebind_alloc<_FF>
1097
+ #else
1098
+ rebind_alloc<_FF>::other
1099
+ #endif
1100
+ _Ap;
1101
+ _Ap __a(__a0);
1102
+ typedef __allocator_destructor<_Ap> _Dp;
1103
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1104
+ ::new (__hold.get()) _FF(__f, _Alloc(__a));
1105
+ __f_ = __hold.release();
1106
+ }
1107
+ }
1108
+ }
1109
+
1110
+ template<class _Rp, class _A0>
1111
+ function<_Rp(_A0)>&
1112
+ function<_Rp(_A0)>::operator=(const function& __f)
1113
+ {
1114
+ function(__f).swap(*this);
1115
+ return *this;
1116
+ }
1117
+
1118
+ template<class _Rp, class _A0>
1119
+ function<_Rp(_A0)>&
1120
+ function<_Rp(_A0)>::operator=(nullptr_t)
1121
+ {
1122
+ if (__f_ == (__base*)&__buf_)
1123
+ __f_->destroy();
1124
+ else if (__f_)
1125
+ __f_->destroy_deallocate();
1126
+ __f_ = 0;
1127
+ }
1128
+
1129
+ template<class _Rp, class _A0>
1130
+ template <class _Fp>
1131
+ typename enable_if
1132
+ <
1133
+ !is_integral<_Fp>::value,
1134
+ function<_Rp(_A0)>&
1135
+ >::type
1136
+ function<_Rp(_A0)>::operator=(_Fp __f)
1137
+ {
1138
+ function(_VSTD::move(__f)).swap(*this);
1139
+ return *this;
1140
+ }
1141
+
1142
+ template<class _Rp, class _A0>
1143
+ function<_Rp(_A0)>::~function()
1144
+ {
1145
+ if (__f_ == (__base*)&__buf_)
1146
+ __f_->destroy();
1147
+ else if (__f_)
1148
+ __f_->destroy_deallocate();
1149
+ }
1150
+
1151
+ template<class _Rp, class _A0>
1152
+ void
1153
+ function<_Rp(_A0)>::swap(function& __f)
1154
+ {
1155
+ if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)
1156
+ {
1157
+ typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
1158
+ __base* __t = (__base*)&__tempbuf;
1159
+ __f_->__clone(__t);
1160
+ __f_->destroy();
1161
+ __f_ = 0;
1162
+ __f.__f_->__clone((__base*)&__buf_);
1163
+ __f.__f_->destroy();
1164
+ __f.__f_ = 0;
1165
+ __f_ = (__base*)&__buf_;
1166
+ __t->__clone((__base*)&__f.__buf_);
1167
+ __t->destroy();
1168
+ __f.__f_ = (__base*)&__f.__buf_;
1169
+ }
1170
+ else if (__f_ == (__base*)&__buf_)
1171
+ {
1172
+ __f_->__clone((__base*)&__f.__buf_);
1173
+ __f_->destroy();
1174
+ __f_ = __f.__f_;
1175
+ __f.__f_ = (__base*)&__f.__buf_;
1176
+ }
1177
+ else if (__f.__f_ == (__base*)&__f.__buf_)
1178
+ {
1179
+ __f.__f_->__clone((__base*)&__buf_);
1180
+ __f.__f_->destroy();
1181
+ __f.__f_ = __f_;
1182
+ __f_ = (__base*)&__buf_;
1183
+ }
1184
+ else
1185
+ _VSTD::swap(__f_, __f.__f_);
1186
+ }
1187
+
1188
+ template<class _Rp, class _A0>
1189
+ _Rp
1190
+ function<_Rp(_A0)>::operator()(_A0 __a0) const
1191
+ {
1192
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1193
+ if (__f_ == 0)
1194
+ throw bad_function_call();
1195
+ #endif // _LIBCPP_NO_EXCEPTIONS
1196
+ return (*__f_)(__a0);
1197
+ }
1198
+
1199
+ #ifndef _LIBCPP_NO_RTTI
1200
+
1201
+ template<class _Rp, class _A0>
1202
+ const std::type_info&
1203
+ function<_Rp(_A0)>::target_type() const
1204
+ {
1205
+ if (__f_ == 0)
1206
+ return typeid(void);
1207
+ return __f_->target_type();
1208
+ }
1209
+
1210
+ template<class _Rp, class _A0>
1211
+ template <typename _Tp>
1212
+ _Tp*
1213
+ function<_Rp(_A0)>::target()
1214
+ {
1215
+ if (__f_ == 0)
1216
+ return (_Tp*)0;
1217
+ return (_Tp*)__f_->target(typeid(_Tp));
1218
+ }
1219
+
1220
+ template<class _Rp, class _A0>
1221
+ template <typename _Tp>
1222
+ const _Tp*
1223
+ function<_Rp(_A0)>::target() const
1224
+ {
1225
+ if (__f_ == 0)
1226
+ return (const _Tp*)0;
1227
+ return (const _Tp*)__f_->target(typeid(_Tp));
1228
+ }
1229
+
1230
+ #endif // _LIBCPP_NO_RTTI
1231
+
1232
+ template<class _Rp, class _A0, class _A1>
1233
+ class _LIBCPP_TYPE_VIS function<_Rp(_A0, _A1)>
1234
+ : public binary_function<_A0, _A1, _Rp>
1235
+ {
1236
+ typedef __function::__base<_Rp(_A0, _A1)> __base;
1237
+ aligned_storage<3*sizeof(void*)>::type __buf_;
1238
+ __base* __f_;
1239
+
1240
+ template <class _Fp>
1241
+ _LIBCPP_INLINE_VISIBILITY
1242
+ static bool __not_null(const _Fp&) {return true;}
1243
+ template <class _R2, class _B0, class _B1>
1244
+ _LIBCPP_INLINE_VISIBILITY
1245
+ static bool __not_null(_R2 (*__p)(_B0, _B1)) {return __p;}
1246
+ template <class _R2, class _Cp, class _B1>
1247
+ _LIBCPP_INLINE_VISIBILITY
1248
+ static bool __not_null(_R2 (_Cp::*__p)(_B1)) {return __p;}
1249
+ template <class _R2, class _Cp, class _B1>
1250
+ _LIBCPP_INLINE_VISIBILITY
1251
+ static bool __not_null(_R2 (_Cp::*__p)(_B1) const) {return __p;}
1252
+ template <class _R2, class _Cp, class _B1>
1253
+ _LIBCPP_INLINE_VISIBILITY
1254
+ static bool __not_null(_R2 (_Cp::*__p)(_B1) volatile) {return __p;}
1255
+ template <class _R2, class _Cp, class _B1>
1256
+ _LIBCPP_INLINE_VISIBILITY
1257
+ static bool __not_null(_R2 (_Cp::*__p)(_B1) const volatile) {return __p;}
1258
+ template <class _R2, class _B0, class _B1>
1259
+ _LIBCPP_INLINE_VISIBILITY
1260
+ static bool __not_null(const function<_Rp(_B0, _B1)>& __p) {return __p;}
1261
+ public:
1262
+ typedef _Rp result_type;
1263
+
1264
+ // 20.7.16.2.1, construct/copy/destroy:
1265
+ _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}
1266
+ _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}
1267
+ function(const function&);
1268
+ template<class _Fp>
1269
+ function(_Fp,
1270
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
1271
+
1272
+ template<class _Alloc>
1273
+ _LIBCPP_INLINE_VISIBILITY
1274
+ function(allocator_arg_t, const _Alloc&) : __f_(0) {}
1275
+ template<class _Alloc>
1276
+ _LIBCPP_INLINE_VISIBILITY
1277
+ function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}
1278
+ template<class _Alloc>
1279
+ function(allocator_arg_t, const _Alloc&, const function&);
1280
+ template<class _Fp, class _Alloc>
1281
+ function(allocator_arg_t, const _Alloc& __a, _Fp __f,
1282
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
1283
+
1284
+ function& operator=(const function&);
1285
+ function& operator=(nullptr_t);
1286
+ template<class _Fp>
1287
+ typename enable_if
1288
+ <
1289
+ !is_integral<_Fp>::value,
1290
+ function&
1291
+ >::type
1292
+ operator=(_Fp);
1293
+
1294
+ ~function();
1295
+
1296
+ // 20.7.16.2.2, function modifiers:
1297
+ void swap(function&);
1298
+ template<class _Fp, class _Alloc>
1299
+ _LIBCPP_INLINE_VISIBILITY
1300
+ void assign(_Fp __f, const _Alloc& __a)
1301
+ {function(allocator_arg, __a, __f).swap(*this);}
1302
+
1303
+ // 20.7.16.2.3, function capacity:
1304
+ operator bool() const {return __f_;}
1305
+
1306
+ private:
1307
+ // deleted overloads close possible hole in the type system
1308
+ template<class _R2, class _B0, class _B1>
1309
+ bool operator==(const function<_R2(_B0, _B1)>&) const;// = delete;
1310
+ template<class _R2, class _B0, class _B1>
1311
+ bool operator!=(const function<_R2(_B0, _B1)>&) const;// = delete;
1312
+ public:
1313
+ // 20.7.16.2.4, function invocation:
1314
+ _Rp operator()(_A0, _A1) const;
1315
+
1316
+ #ifndef _LIBCPP_NO_RTTI
1317
+ // 20.7.16.2.5, function target access:
1318
+ const std::type_info& target_type() const;
1319
+ template <typename _Tp> _Tp* target();
1320
+ template <typename _Tp> const _Tp* target() const;
1321
+ #endif // _LIBCPP_NO_RTTI
1322
+ };
1323
+
1324
+ template<class _Rp, class _A0, class _A1>
1325
+ function<_Rp(_A0, _A1)>::function(const function& __f)
1326
+ {
1327
+ if (__f.__f_ == 0)
1328
+ __f_ = 0;
1329
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1330
+ {
1331
+ __f_ = (__base*)&__buf_;
1332
+ __f.__f_->__clone(__f_);
1333
+ }
1334
+ else
1335
+ __f_ = __f.__f_->__clone();
1336
+ }
1337
+
1338
+ template<class _Rp, class _A0, class _A1>
1339
+ template<class _Alloc>
1340
+ function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc&, const function& __f)
1341
+ {
1342
+ if (__f.__f_ == 0)
1343
+ __f_ = 0;
1344
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1345
+ {
1346
+ __f_ = (__base*)&__buf_;
1347
+ __f.__f_->__clone(__f_);
1348
+ }
1349
+ else
1350
+ __f_ = __f.__f_->__clone();
1351
+ }
1352
+
1353
+ template<class _Rp, class _A0, class _A1>
1354
+ template <class _Fp>
1355
+ function<_Rp(_A0, _A1)>::function(_Fp __f,
1356
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1357
+ : __f_(0)
1358
+ {
1359
+ if (__not_null(__f))
1360
+ {
1361
+ typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1)> _FF;
1362
+ if (sizeof(_FF) <= sizeof(__buf_))
1363
+ {
1364
+ __f_ = (__base*)&__buf_;
1365
+ ::new (__f_) _FF(__f);
1366
+ }
1367
+ else
1368
+ {
1369
+ typedef allocator<_FF> _Ap;
1370
+ _Ap __a;
1371
+ typedef __allocator_destructor<_Ap> _Dp;
1372
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1373
+ ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));
1374
+ __f_ = __hold.release();
1375
+ }
1376
+ }
1377
+ }
1378
+
1379
+ template<class _Rp, class _A0, class _A1>
1380
+ template <class _Fp, class _Alloc>
1381
+ function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,
1382
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1383
+ : __f_(0)
1384
+ {
1385
+ typedef allocator_traits<_Alloc> __alloc_traits;
1386
+ if (__not_null(__f))
1387
+ {
1388
+ typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1)> _FF;
1389
+ if (sizeof(_FF) <= sizeof(__buf_))
1390
+ {
1391
+ __f_ = (__base*)&__buf_;
1392
+ ::new (__f_) _FF(__f);
1393
+ }
1394
+ else
1395
+ {
1396
+ typedef typename __alloc_traits::template
1397
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
1398
+ rebind_alloc<_FF>
1399
+ #else
1400
+ rebind_alloc<_FF>::other
1401
+ #endif
1402
+ _Ap;
1403
+ _Ap __a(__a0);
1404
+ typedef __allocator_destructor<_Ap> _Dp;
1405
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1406
+ ::new (__hold.get()) _FF(__f, _Alloc(__a));
1407
+ __f_ = __hold.release();
1408
+ }
1409
+ }
1410
+ }
1411
+
1412
+ template<class _Rp, class _A0, class _A1>
1413
+ function<_Rp(_A0, _A1)>&
1414
+ function<_Rp(_A0, _A1)>::operator=(const function& __f)
1415
+ {
1416
+ function(__f).swap(*this);
1417
+ return *this;
1418
+ }
1419
+
1420
+ template<class _Rp, class _A0, class _A1>
1421
+ function<_Rp(_A0, _A1)>&
1422
+ function<_Rp(_A0, _A1)>::operator=(nullptr_t)
1423
+ {
1424
+ if (__f_ == (__base*)&__buf_)
1425
+ __f_->destroy();
1426
+ else if (__f_)
1427
+ __f_->destroy_deallocate();
1428
+ __f_ = 0;
1429
+ }
1430
+
1431
+ template<class _Rp, class _A0, class _A1>
1432
+ template <class _Fp>
1433
+ typename enable_if
1434
+ <
1435
+ !is_integral<_Fp>::value,
1436
+ function<_Rp(_A0, _A1)>&
1437
+ >::type
1438
+ function<_Rp(_A0, _A1)>::operator=(_Fp __f)
1439
+ {
1440
+ function(_VSTD::move(__f)).swap(*this);
1441
+ return *this;
1442
+ }
1443
+
1444
+ template<class _Rp, class _A0, class _A1>
1445
+ function<_Rp(_A0, _A1)>::~function()
1446
+ {
1447
+ if (__f_ == (__base*)&__buf_)
1448
+ __f_->destroy();
1449
+ else if (__f_)
1450
+ __f_->destroy_deallocate();
1451
+ }
1452
+
1453
+ template<class _Rp, class _A0, class _A1>
1454
+ void
1455
+ function<_Rp(_A0, _A1)>::swap(function& __f)
1456
+ {
1457
+ if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)
1458
+ {
1459
+ typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
1460
+ __base* __t = (__base*)&__tempbuf;
1461
+ __f_->__clone(__t);
1462
+ __f_->destroy();
1463
+ __f_ = 0;
1464
+ __f.__f_->__clone((__base*)&__buf_);
1465
+ __f.__f_->destroy();
1466
+ __f.__f_ = 0;
1467
+ __f_ = (__base*)&__buf_;
1468
+ __t->__clone((__base*)&__f.__buf_);
1469
+ __t->destroy();
1470
+ __f.__f_ = (__base*)&__f.__buf_;
1471
+ }
1472
+ else if (__f_ == (__base*)&__buf_)
1473
+ {
1474
+ __f_->__clone((__base*)&__f.__buf_);
1475
+ __f_->destroy();
1476
+ __f_ = __f.__f_;
1477
+ __f.__f_ = (__base*)&__f.__buf_;
1478
+ }
1479
+ else if (__f.__f_ == (__base*)&__f.__buf_)
1480
+ {
1481
+ __f.__f_->__clone((__base*)&__buf_);
1482
+ __f.__f_->destroy();
1483
+ __f.__f_ = __f_;
1484
+ __f_ = (__base*)&__buf_;
1485
+ }
1486
+ else
1487
+ _VSTD::swap(__f_, __f.__f_);
1488
+ }
1489
+
1490
+ template<class _Rp, class _A0, class _A1>
1491
+ _Rp
1492
+ function<_Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) const
1493
+ {
1494
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1495
+ if (__f_ == 0)
1496
+ throw bad_function_call();
1497
+ #endif // _LIBCPP_NO_EXCEPTIONS
1498
+ return (*__f_)(__a0, __a1);
1499
+ }
1500
+
1501
+ #ifndef _LIBCPP_NO_RTTI
1502
+
1503
+ template<class _Rp, class _A0, class _A1>
1504
+ const std::type_info&
1505
+ function<_Rp(_A0, _A1)>::target_type() const
1506
+ {
1507
+ if (__f_ == 0)
1508
+ return typeid(void);
1509
+ return __f_->target_type();
1510
+ }
1511
+
1512
+ template<class _Rp, class _A0, class _A1>
1513
+ template <typename _Tp>
1514
+ _Tp*
1515
+ function<_Rp(_A0, _A1)>::target()
1516
+ {
1517
+ if (__f_ == 0)
1518
+ return (_Tp*)0;
1519
+ return (_Tp*)__f_->target(typeid(_Tp));
1520
+ }
1521
+
1522
+ template<class _Rp, class _A0, class _A1>
1523
+ template <typename _Tp>
1524
+ const _Tp*
1525
+ function<_Rp(_A0, _A1)>::target() const
1526
+ {
1527
+ if (__f_ == 0)
1528
+ return (const _Tp*)0;
1529
+ return (const _Tp*)__f_->target(typeid(_Tp));
1530
+ }
1531
+
1532
+ #endif // _LIBCPP_NO_RTTI
1533
+
1534
+ template<class _Rp, class _A0, class _A1, class _A2>
1535
+ class _LIBCPP_TYPE_VIS function<_Rp(_A0, _A1, _A2)>
1536
+ {
1537
+ typedef __function::__base<_Rp(_A0, _A1, _A2)> __base;
1538
+ aligned_storage<3*sizeof(void*)>::type __buf_;
1539
+ __base* __f_;
1540
+
1541
+ template <class _Fp>
1542
+ _LIBCPP_INLINE_VISIBILITY
1543
+ static bool __not_null(const _Fp&) {return true;}
1544
+ template <class _R2, class _B0, class _B1, class _B2>
1545
+ _LIBCPP_INLINE_VISIBILITY
1546
+ static bool __not_null(_R2 (*__p)(_B0, _B1, _B2)) {return __p;}
1547
+ template <class _R2, class _Cp, class _B1, class _B2>
1548
+ _LIBCPP_INLINE_VISIBILITY
1549
+ static bool __not_null(_R2 (_Cp::*__p)(_B1, _B2)) {return __p;}
1550
+ template <class _R2, class _Cp, class _B1, class _B2>
1551
+ _LIBCPP_INLINE_VISIBILITY
1552
+ static bool __not_null(_R2 (_Cp::*__p)(_B1, _B2) const) {return __p;}
1553
+ template <class _R2, class _Cp, class _B1, class _B2>
1554
+ _LIBCPP_INLINE_VISIBILITY
1555
+ static bool __not_null(_R2 (_Cp::*__p)(_B1, _B2) volatile) {return __p;}
1556
+ template <class _R2, class _Cp, class _B1, class _B2>
1557
+ _LIBCPP_INLINE_VISIBILITY
1558
+ static bool __not_null(_R2 (_Cp::*__p)(_B1, _B2) const volatile) {return __p;}
1559
+ template <class _R2, class _B0, class _B1, class _B2>
1560
+ _LIBCPP_INLINE_VISIBILITY
1561
+ static bool __not_null(const function<_Rp(_B0, _B1, _B2)>& __p) {return __p;}
1562
+ public:
1563
+ typedef _Rp result_type;
1564
+
1565
+ // 20.7.16.2.1, construct/copy/destroy:
1566
+ _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}
1567
+ _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}
1568
+ function(const function&);
1569
+ template<class _Fp>
1570
+ function(_Fp,
1571
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
1572
+
1573
+ template<class _Alloc>
1574
+ _LIBCPP_INLINE_VISIBILITY
1575
+ function(allocator_arg_t, const _Alloc&) : __f_(0) {}
1576
+ template<class _Alloc>
1577
+ _LIBCPP_INLINE_VISIBILITY
1578
+ function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}
1579
+ template<class _Alloc>
1580
+ function(allocator_arg_t, const _Alloc&, const function&);
1581
+ template<class _Fp, class _Alloc>
1582
+ function(allocator_arg_t, const _Alloc& __a, _Fp __f,
1583
+ typename enable_if<!is_integral<_Fp>::value>::type* = 0);
1584
+
1585
+ function& operator=(const function&);
1586
+ function& operator=(nullptr_t);
1587
+ template<class _Fp>
1588
+ typename enable_if
1589
+ <
1590
+ !is_integral<_Fp>::value,
1591
+ function&
1592
+ >::type
1593
+ operator=(_Fp);
1594
+
1595
+ ~function();
1596
+
1597
+ // 20.7.16.2.2, function modifiers:
1598
+ void swap(function&);
1599
+ template<class _Fp, class _Alloc>
1600
+ _LIBCPP_INLINE_VISIBILITY
1601
+ void assign(_Fp __f, const _Alloc& __a)
1602
+ {function(allocator_arg, __a, __f).swap(*this);}
1603
+
1604
+ // 20.7.16.2.3, function capacity:
1605
+ _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}
1606
+
1607
+ private:
1608
+ // deleted overloads close possible hole in the type system
1609
+ template<class _R2, class _B0, class _B1, class _B2>
1610
+ bool operator==(const function<_R2(_B0, _B1, _B2)>&) const;// = delete;
1611
+ template<class _R2, class _B0, class _B1, class _B2>
1612
+ bool operator!=(const function<_R2(_B0, _B1, _B2)>&) const;// = delete;
1613
+ public:
1614
+ // 20.7.16.2.4, function invocation:
1615
+ _Rp operator()(_A0, _A1, _A2) const;
1616
+
1617
+ #ifndef _LIBCPP_NO_RTTI
1618
+ // 20.7.16.2.5, function target access:
1619
+ const std::type_info& target_type() const;
1620
+ template <typename _Tp> _Tp* target();
1621
+ template <typename _Tp> const _Tp* target() const;
1622
+ #endif // _LIBCPP_NO_RTTI
1623
+ };
1624
+
1625
+ template<class _Rp, class _A0, class _A1, class _A2>
1626
+ function<_Rp(_A0, _A1, _A2)>::function(const function& __f)
1627
+ {
1628
+ if (__f.__f_ == 0)
1629
+ __f_ = 0;
1630
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1631
+ {
1632
+ __f_ = (__base*)&__buf_;
1633
+ __f.__f_->__clone(__f_);
1634
+ }
1635
+ else
1636
+ __f_ = __f.__f_->__clone();
1637
+ }
1638
+
1639
+ template<class _Rp, class _A0, class _A1, class _A2>
1640
+ template<class _Alloc>
1641
+ function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc&,
1642
+ const function& __f)
1643
+ {
1644
+ if (__f.__f_ == 0)
1645
+ __f_ = 0;
1646
+ else if (__f.__f_ == (const __base*)&__f.__buf_)
1647
+ {
1648
+ __f_ = (__base*)&__buf_;
1649
+ __f.__f_->__clone(__f_);
1650
+ }
1651
+ else
1652
+ __f_ = __f.__f_->__clone();
1653
+ }
1654
+
1655
+ template<class _Rp, class _A0, class _A1, class _A2>
1656
+ template <class _Fp>
1657
+ function<_Rp(_A0, _A1, _A2)>::function(_Fp __f,
1658
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1659
+ : __f_(0)
1660
+ {
1661
+ if (__not_null(__f))
1662
+ {
1663
+ typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1, _A2)> _FF;
1664
+ if (sizeof(_FF) <= sizeof(__buf_))
1665
+ {
1666
+ __f_ = (__base*)&__buf_;
1667
+ ::new (__f_) _FF(__f);
1668
+ }
1669
+ else
1670
+ {
1671
+ typedef allocator<_FF> _Ap;
1672
+ _Ap __a;
1673
+ typedef __allocator_destructor<_Ap> _Dp;
1674
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1675
+ ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));
1676
+ __f_ = __hold.release();
1677
+ }
1678
+ }
1679
+ }
1680
+
1681
+ template<class _Rp, class _A0, class _A1, class _A2>
1682
+ template <class _Fp, class _Alloc>
1683
+ function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,
1684
+ typename enable_if<!is_integral<_Fp>::value>::type*)
1685
+ : __f_(0)
1686
+ {
1687
+ typedef allocator_traits<_Alloc> __alloc_traits;
1688
+ if (__not_null(__f))
1689
+ {
1690
+ typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> _FF;
1691
+ if (sizeof(_FF) <= sizeof(__buf_))
1692
+ {
1693
+ __f_ = (__base*)&__buf_;
1694
+ ::new (__f_) _FF(__f);
1695
+ }
1696
+ else
1697
+ {
1698
+ typedef typename __alloc_traits::template
1699
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
1700
+ rebind_alloc<_FF>
1701
+ #else
1702
+ rebind_alloc<_FF>::other
1703
+ #endif
1704
+ _Ap;
1705
+ _Ap __a(__a0);
1706
+ typedef __allocator_destructor<_Ap> _Dp;
1707
+ unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
1708
+ ::new (__hold.get()) _FF(__f, _Alloc(__a));
1709
+ __f_ = __hold.release();
1710
+ }
1711
+ }
1712
+ }
1713
+
1714
+ template<class _Rp, class _A0, class _A1, class _A2>
1715
+ function<_Rp(_A0, _A1, _A2)>&
1716
+ function<_Rp(_A0, _A1, _A2)>::operator=(const function& __f)
1717
+ {
1718
+ function(__f).swap(*this);
1719
+ return *this;
1720
+ }
1721
+
1722
+ template<class _Rp, class _A0, class _A1, class _A2>
1723
+ function<_Rp(_A0, _A1, _A2)>&
1724
+ function<_Rp(_A0, _A1, _A2)>::operator=(nullptr_t)
1725
+ {
1726
+ if (__f_ == (__base*)&__buf_)
1727
+ __f_->destroy();
1728
+ else if (__f_)
1729
+ __f_->destroy_deallocate();
1730
+ __f_ = 0;
1731
+ }
1732
+
1733
+ template<class _Rp, class _A0, class _A1, class _A2>
1734
+ template <class _Fp>
1735
+ typename enable_if
1736
+ <
1737
+ !is_integral<_Fp>::value,
1738
+ function<_Rp(_A0, _A1, _A2)>&
1739
+ >::type
1740
+ function<_Rp(_A0, _A1, _A2)>::operator=(_Fp __f)
1741
+ {
1742
+ function(_VSTD::move(__f)).swap(*this);
1743
+ return *this;
1744
+ }
1745
+
1746
+ template<class _Rp, class _A0, class _A1, class _A2>
1747
+ function<_Rp(_A0, _A1, _A2)>::~function()
1748
+ {
1749
+ if (__f_ == (__base*)&__buf_)
1750
+ __f_->destroy();
1751
+ else if (__f_)
1752
+ __f_->destroy_deallocate();
1753
+ }
1754
+
1755
+ template<class _Rp, class _A0, class _A1, class _A2>
1756
+ void
1757
+ function<_Rp(_A0, _A1, _A2)>::swap(function& __f)
1758
+ {
1759
+ if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)
1760
+ {
1761
+ typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
1762
+ __base* __t = (__base*)&__tempbuf;
1763
+ __f_->__clone(__t);
1764
+ __f_->destroy();
1765
+ __f_ = 0;
1766
+ __f.__f_->__clone((__base*)&__buf_);
1767
+ __f.__f_->destroy();
1768
+ __f.__f_ = 0;
1769
+ __f_ = (__base*)&__buf_;
1770
+ __t->__clone((__base*)&__f.__buf_);
1771
+ __t->destroy();
1772
+ __f.__f_ = (__base*)&__f.__buf_;
1773
+ }
1774
+ else if (__f_ == (__base*)&__buf_)
1775
+ {
1776
+ __f_->__clone((__base*)&__f.__buf_);
1777
+ __f_->destroy();
1778
+ __f_ = __f.__f_;
1779
+ __f.__f_ = (__base*)&__f.__buf_;
1780
+ }
1781
+ else if (__f.__f_ == (__base*)&__f.__buf_)
1782
+ {
1783
+ __f.__f_->__clone((__base*)&__buf_);
1784
+ __f.__f_->destroy();
1785
+ __f.__f_ = __f_;
1786
+ __f_ = (__base*)&__buf_;
1787
+ }
1788
+ else
1789
+ _VSTD::swap(__f_, __f.__f_);
1790
+ }
1791
+
1792
+ template<class _Rp, class _A0, class _A1, class _A2>
1793
+ _Rp
1794
+ function<_Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) const
1795
+ {
1796
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1797
+ if (__f_ == 0)
1798
+ throw bad_function_call();
1799
+ #endif // _LIBCPP_NO_EXCEPTIONS
1800
+ return (*__f_)(__a0, __a1, __a2);
1801
+ }
1802
+
1803
+ #ifndef _LIBCPP_NO_RTTI
1804
+
1805
+ template<class _Rp, class _A0, class _A1, class _A2>
1806
+ const std::type_info&
1807
+ function<_Rp(_A0, _A1, _A2)>::target_type() const
1808
+ {
1809
+ if (__f_ == 0)
1810
+ return typeid(void);
1811
+ return __f_->target_type();
1812
+ }
1813
+
1814
+ template<class _Rp, class _A0, class _A1, class _A2>
1815
+ template <typename _Tp>
1816
+ _Tp*
1817
+ function<_Rp(_A0, _A1, _A2)>::target()
1818
+ {
1819
+ if (__f_ == 0)
1820
+ return (_Tp*)0;
1821
+ return (_Tp*)__f_->target(typeid(_Tp));
1822
+ }
1823
+
1824
+ template<class _Rp, class _A0, class _A1, class _A2>
1825
+ template <typename _Tp>
1826
+ const _Tp*
1827
+ function<_Rp(_A0, _A1, _A2)>::target() const
1828
+ {
1829
+ if (__f_ == 0)
1830
+ return (const _Tp*)0;
1831
+ return (const _Tp*)__f_->target(typeid(_Tp));
1832
+ }
1833
+
1834
+ #endif // _LIBCPP_NO_RTTI
1835
+
1836
+ template <class _Fp>
1837
+ inline _LIBCPP_INLINE_VISIBILITY
1838
+ bool
1839
+ operator==(const function<_Fp>& __f, nullptr_t) {return !__f;}
1840
+
1841
+ template <class _Fp>
1842
+ inline _LIBCPP_INLINE_VISIBILITY
1843
+ bool
1844
+ operator==(nullptr_t, const function<_Fp>& __f) {return !__f;}
1845
+
1846
+ template <class _Fp>
1847
+ inline _LIBCPP_INLINE_VISIBILITY
1848
+ bool
1849
+ operator!=(const function<_Fp>& __f, nullptr_t) {return (bool)__f;}
1850
+
1851
+ template <class _Fp>
1852
+ inline _LIBCPP_INLINE_VISIBILITY
1853
+ bool
1854
+ operator!=(nullptr_t, const function<_Fp>& __f) {return (bool)__f;}
1855
+
1856
+ template <class _Fp>
1857
+ inline _LIBCPP_INLINE_VISIBILITY
1858
+ void
1859
+ swap(function<_Fp>& __x, function<_Fp>& __y)
1860
+ {return __x.swap(__y);}
1861
+
1862
+ template<class _Tp> struct __is_bind_expression : public false_type {};
1863
+ template<class _Tp> struct _LIBCPP_TYPE_VIS is_bind_expression
1864
+ : public __is_bind_expression<typename remove_cv<_Tp>::type> {};
1865
+
1866
+ template<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {};
1867
+ template<class _Tp> struct _LIBCPP_TYPE_VIS is_placeholder
1868
+ : public __is_placeholder<typename remove_cv<_Tp>::type> {};
1869
+
1870
+ namespace placeholders
1871
+ {
1872
+
1873
+ template <int _Np> struct __ph {};
1874
+
1875
+ extern __ph<1> _1;
1876
+ extern __ph<2> _2;
1877
+ extern __ph<3> _3;
1878
+ extern __ph<4> _4;
1879
+ extern __ph<5> _5;
1880
+ extern __ph<6> _6;
1881
+ extern __ph<7> _7;
1882
+ extern __ph<8> _8;
1883
+ extern __ph<9> _9;
1884
+ extern __ph<10> _10;
1885
+
1886
+ } // placeholders
1887
+
1888
+ template<int _Np>
1889
+ struct __is_placeholder<placeholders::__ph<_Np> >
1890
+ : public integral_constant<int, _Np> {};
1891
+
1892
+ template <class _Tp, class _Uj>
1893
+ inline _LIBCPP_INLINE_VISIBILITY
1894
+ _Tp&
1895
+ __mu(reference_wrapper<_Tp> __t, _Uj&)
1896
+ {
1897
+ return __t.get();
1898
+ }
1899
+ /*
1900
+ template <bool _IsBindExpr, class _Ti, class ..._Uj>
1901
+ struct __mu_return1 {};
1902
+
1903
+ template <class _Ti, class ..._Uj>
1904
+ struct __mu_return1<true, _Ti, _Uj...>
1905
+ {
1906
+ typedef typename result_of<_Ti(_Uj...)>::type type;
1907
+ };
1908
+
1909
+ template <class _Ti, class ..._Uj, size_t ..._Indx>
1910
+ inline _LIBCPP_INLINE_VISIBILITY
1911
+ typename __mu_return1<true, _Ti, _Uj...>::type
1912
+ __mu_expand(_Ti& __ti, tuple<_Uj...>&& __uj, __tuple_indices<_Indx...>)
1913
+ {
1914
+ __ti(_VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj))...);
1915
+ }
1916
+
1917
+ template <class _Ti, class ..._Uj>
1918
+ inline _LIBCPP_INLINE_VISIBILITY
1919
+ typename enable_if
1920
+ <
1921
+ is_bind_expression<_Ti>::value,
1922
+ typename __mu_return1<is_bind_expression<_Ti>::value, _Ti, _Uj...>::type
1923
+ >::type
1924
+ __mu(_Ti& __ti, tuple<_Uj...>& __uj)
1925
+ {
1926
+ typedef typename __make_tuple_indices<sizeof...(_Uj)>::type __indices;
1927
+ return __mu_expand(__ti, __uj, __indices());
1928
+ }
1929
+
1930
+ template <bool IsPh, class _Ti, class _Uj>
1931
+ struct __mu_return2 {};
1932
+
1933
+ template <class _Ti, class _Uj>
1934
+ struct __mu_return2<true, _Ti, _Uj>
1935
+ {
1936
+ typedef typename tuple_element<is_placeholder<_Ti>::value - 1, _Uj>::type type;
1937
+ };
1938
+
1939
+ template <class _Ti, class _Uj>
1940
+ inline _LIBCPP_INLINE_VISIBILITY
1941
+ typename enable_if
1942
+ <
1943
+ 0 < is_placeholder<_Ti>::value,
1944
+ typename __mu_return2<0 < is_placeholder<_Ti>::value, _Ti, _Uj>::type
1945
+ >::type
1946
+ __mu(_Ti&, _Uj& __uj)
1947
+ {
1948
+ const size_t _Indx = is_placeholder<_Ti>::value - 1;
1949
+ // compiler bug workaround
1950
+ typename tuple_element<_Indx, _Uj>::type __t = get<_Indx>(__uj);
1951
+ return __t;
1952
+ // return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
1953
+ }
1954
+
1955
+ template <class _Ti, class _Uj>
1956
+ inline _LIBCPP_INLINE_VISIBILITY
1957
+ typename enable_if
1958
+ <
1959
+ !is_bind_expression<_Ti>::value &&
1960
+ is_placeholder<_Ti>::value == 0 &&
1961
+ !__is_reference_wrapper<_Ti>::value,
1962
+ _Ti&
1963
+ >::type
1964
+ __mu(_Ti& __ti, _Uj& __uj)
1965
+ {
1966
+ return __ti;
1967
+ }
1968
+
1969
+ template <class _Ti, bool IsBindEx, bool IsPh, class _TupleUj>
1970
+ struct ____mu_return;
1971
+
1972
+ template <class _Ti, class ..._Uj>
1973
+ struct ____mu_return<_Ti, true, false, tuple<_Uj...> >
1974
+ {
1975
+ typedef typename result_of<_Ti(_Uj...)>::type type;
1976
+ };
1977
+
1978
+ template <class _Ti, class _TupleUj>
1979
+ struct ____mu_return<_Ti, false, true, _TupleUj>
1980
+ {
1981
+ typedef typename tuple_element<is_placeholder<_Ti>::value - 1,
1982
+ _TupleUj>::type&& type;
1983
+ };
1984
+
1985
+ template <class _Ti, class _TupleUj>
1986
+ struct ____mu_return<_Ti, false, false, _TupleUj>
1987
+ {
1988
+ typedef _Ti& type;
1989
+ };
1990
+
1991
+ template <class _Ti, class _TupleUj>
1992
+ struct __mu_return
1993
+ : public ____mu_return<_Ti,
1994
+ is_bind_expression<_Ti>::value,
1995
+ 0 < is_placeholder<_Ti>::value,
1996
+ _TupleUj>
1997
+ {
1998
+ };
1999
+
2000
+ template <class _Ti, class _TupleUj>
2001
+ struct __mu_return<reference_wrapper<_Ti>, _TupleUj>
2002
+ {
2003
+ typedef _Ti& type;
2004
+ };
2005
+
2006
+ template <class _Fp, class _BoundArgs, class _TupleUj>
2007
+ struct __bind_return;
2008
+
2009
+ template <class _Fp, class ..._BoundArgs, class _TupleUj>
2010
+ struct __bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj>
2011
+ {
2012
+ typedef typename __ref_return
2013
+ <
2014
+ _Fp&,
2015
+ typename __mu_return
2016
+ <
2017
+ _BoundArgs,
2018
+ _TupleUj
2019
+ >::type...
2020
+ >::type type;
2021
+ };
2022
+
2023
+ template <class _Fp, class ..._BoundArgs, class _TupleUj>
2024
+ struct __bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj>
2025
+ {
2026
+ typedef typename __ref_return
2027
+ <
2028
+ _Fp&,
2029
+ typename __mu_return
2030
+ <
2031
+ const _BoundArgs,
2032
+ _TupleUj
2033
+ >::type...
2034
+ >::type type;
2035
+ };
2036
+
2037
+ template <class _Fp, class _BoundArgs, size_t ..._Indx, class _Args>
2038
+ inline _LIBCPP_INLINE_VISIBILITY
2039
+ typename __bind_return<_Fp, _BoundArgs, _Args>::type
2040
+ __apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,
2041
+ _Args&& __args)
2042
+ {
2043
+ return __invoke(__f, __mu(get<_Indx>(__bound_args), __args)...);
2044
+ }
2045
+
2046
+ template<class _Fp, class ..._BoundArgs>
2047
+ class __bind
2048
+ {
2049
+ _Fp __f_;
2050
+ tuple<_BoundArgs...> __bound_args_;
2051
+
2052
+ typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;
2053
+ public:
2054
+ template <class _Gp, class ..._BA>
2055
+ explicit __bind(_Gp&& __f, _BA&& ...__bound_args)
2056
+ : __f_(_VSTD::forward<_Gp>(__f)),
2057
+ __bound_args_(_VSTD::forward<_BA>(__bound_args)...) {}
2058
+
2059
+ template <class ..._Args>
2060
+ typename __bind_return<_Fp, tuple<_BoundArgs...>, tuple<_Args&&...> >::type
2061
+ operator()(_Args&& ...__args)
2062
+ {
2063
+ // compiler bug workaround
2064
+ return __apply_functor(__f_, __bound_args_, __indices(),
2065
+ tuple<_Args&&...>(__args...));
2066
+ }
2067
+
2068
+ template <class ..._Args>
2069
+ typename __bind_return<_Fp, tuple<_BoundArgs...>, tuple<_Args&&...> >::type
2070
+ operator()(_Args&& ...__args) const
2071
+ {
2072
+ return __apply_functor(__f_, __bound_args_, __indices(),
2073
+ tuple<_Args&&...>(__args...));
2074
+ }
2075
+ };
2076
+
2077
+ template<class _Fp, class ..._BoundArgs>
2078
+ struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {};
2079
+
2080
+ template<class _Rp, class _Fp, class ..._BoundArgs>
2081
+ class __bind_r
2082
+ : public __bind<_Fp, _BoundArgs...>
2083
+ {
2084
+ typedef __bind<_Fp, _BoundArgs...> base;
2085
+ public:
2086
+ typedef _Rp result_type;
2087
+
2088
+ template <class _Gp, class ..._BA>
2089
+ explicit __bind_r(_Gp&& __f, _BA&& ...__bound_args)
2090
+ : base(_VSTD::forward<_Gp>(__f),
2091
+ _VSTD::forward<_BA>(__bound_args)...) {}
2092
+
2093
+ template <class ..._Args>
2094
+ result_type
2095
+ operator()(_Args&& ...__args)
2096
+ {
2097
+ return base::operator()(_VSTD::forward<_Args>(__args)...);
2098
+ }
2099
+
2100
+ template <class ..._Args>
2101
+ result_type
2102
+ operator()(_Args&& ...__args) const
2103
+ {
2104
+ return base::operator()(_VSTD::forward<_Args>(__args)...);
2105
+ }
2106
+ };
2107
+
2108
+ template<class _Rp, class _Fp, class ..._BoundArgs>
2109
+ struct __is_bind_expression<__bind_r<_Rp, _Fp, _BoundArgs...> > : public true_type {};
2110
+
2111
+ template<class _Fp, class ..._BoundArgs>
2112
+ inline _LIBCPP_INLINE_VISIBILITY
2113
+ __bind<typename decay<_Fp>::type, typename decay<_BoundArgs>::type...>
2114
+ bind(_Fp&& __f, _BoundArgs&&... __bound_args)
2115
+ {
2116
+ typedef __bind<typename decay<_Fp>::type, typename decay<_BoundArgs>::type...> type;
2117
+ return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...);
2118
+ }
2119
+
2120
+ template<class _Rp, class _Fp, class ..._BoundArgs>
2121
+ inline _LIBCPP_INLINE_VISIBILITY
2122
+ __bind_r<_Rp, typename decay<_Fp>::type, typename decay<_BoundArgs>::type...>
2123
+ bind(_Fp&& __f, _BoundArgs&&... __bound_args)
2124
+ {
2125
+ typedef __bind_r<_Rp, typename decay<_Fp>::type, typename decay<_BoundArgs>::type...> type;
2126
+ return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...);
2127
+ }
2128
+ */
2129
+
2130
+ #endif // _LIBCPP_FUNCTIONAL_03