webruby 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (518) hide show
  1. checksums.yaml +4 -4
  2. data/driver/driver.c +12 -0
  3. data/lib/webruby/config.rb +3 -3
  4. data/lib/webruby/environment.rb +1 -0
  5. data/lib/webruby/rake/files.rake +22 -22
  6. data/lib/webruby/rake/general.rake +0 -1
  7. data/lib/webruby/utility.rb +2 -0
  8. data/modules/emscripten/AUTHORS +12 -1
  9. data/modules/emscripten/cmake/Platform/Emscripten.cmake +152 -15
  10. data/modules/emscripten/em++ +2 -0
  11. data/modules/emscripten/em++.bat +1 -1
  12. data/modules/emscripten/em-config.bat +1 -1
  13. data/modules/emscripten/emar.bat +1 -1
  14. data/modules/emscripten/emcc +233 -95
  15. data/modules/emscripten/emcc.bat +1 -1
  16. data/modules/emscripten/emconfigure.bat +1 -1
  17. data/modules/emscripten/emmake.bat +1 -1
  18. data/modules/emscripten/emranlib.bat +1 -1
  19. data/modules/emscripten/emscripten.py +221 -217
  20. data/modules/emscripten/package.json +7 -0
  21. data/modules/emscripten/src/analyzer.js +1437 -1385
  22. data/modules/emscripten/src/compiler.js +30 -6
  23. data/modules/emscripten/src/compiler_phase.html +33 -0
  24. data/modules/emscripten/src/fastLong.js +6 -6
  25. data/modules/emscripten/src/headless.js +47 -656
  26. data/modules/emscripten/src/headlessCanvas.js +618 -0
  27. data/modules/emscripten/src/intertyper.js +1038 -899
  28. data/modules/emscripten/src/jsifier.js +818 -714
  29. data/modules/emscripten/src/library.js +1794 -2968
  30. data/modules/emscripten/src/library_browser.js +81 -16
  31. data/modules/emscripten/src/library_egl.js +9 -3
  32. data/modules/emscripten/src/library_fs.js +1585 -0
  33. data/modules/emscripten/src/library_gl.js +445 -202
  34. data/modules/emscripten/src/library_glfw.js +4 -1
  35. data/modules/emscripten/src/library_glut.js +61 -13
  36. data/modules/emscripten/src/library_idbfs.js +216 -0
  37. data/modules/emscripten/src/library_memfs.js +279 -0
  38. data/modules/emscripten/src/library_nodefs.js +234 -0
  39. data/modules/emscripten/src/library_openal.js +131 -150
  40. data/modules/emscripten/src/library_path.js +3 -0
  41. data/modules/emscripten/src/library_sdl.js +499 -229
  42. data/modules/emscripten/src/library_sockfs.js +576 -0
  43. data/modules/emscripten/src/library_tty.js +146 -0
  44. data/modules/emscripten/src/modules.js +30 -35
  45. data/modules/emscripten/src/parseTools.js +356 -161
  46. data/modules/emscripten/src/postamble.js +76 -31
  47. data/modules/emscripten/src/preamble.js +271 -41
  48. data/modules/emscripten/src/proxyClient.js +82 -0
  49. data/modules/emscripten/src/proxyWorker.js +143 -0
  50. data/modules/emscripten/src/relooper/Relooper.cpp +60 -24
  51. data/modules/emscripten/src/relooper/Relooper.h +3 -2
  52. data/modules/emscripten/src/relooper/emscripten/glue.js +20 -10
  53. data/modules/emscripten/src/relooper/fuzzer.py +19 -10
  54. data/modules/emscripten/src/relooper/test.cpp +50 -50
  55. data/modules/emscripten/src/relooper/test.txt +147 -30
  56. data/modules/emscripten/src/relooper/test2.c +13 -13
  57. data/modules/emscripten/src/relooper/test2.txt +17 -3
  58. data/modules/emscripten/src/relooper/test3.c +7 -7
  59. data/modules/emscripten/src/relooper/test3.txt +36 -7
  60. data/modules/emscripten/src/relooper/test4.cpp +7 -7
  61. data/modules/emscripten/src/relooper/test4.txt +28 -7
  62. data/modules/emscripten/src/relooper/test5.cpp +6 -6
  63. data/modules/emscripten/src/relooper/test5.txt +34 -10
  64. data/modules/emscripten/src/relooper/test6.cpp +4 -4
  65. data/modules/emscripten/src/relooper/test6.txt +17 -3
  66. data/modules/emscripten/src/relooper/test_dead.cpp +2 -2
  67. data/modules/emscripten/src/relooper/test_debug.cpp +4 -4
  68. data/modules/emscripten/src/relooper/test_debug.txt +17 -3
  69. data/modules/emscripten/src/relooper/test_fuzz1.cpp +9 -9
  70. data/modules/emscripten/src/relooper/test_fuzz1.txt +45 -5
  71. data/modules/emscripten/src/relooper/test_fuzz2.cpp +4 -4
  72. data/modules/emscripten/src/relooper/test_fuzz2.txt +18 -1
  73. data/modules/emscripten/src/relooper/test_fuzz3.cpp +5 -5
  74. data/modules/emscripten/src/relooper/test_fuzz3.txt +16 -0
  75. data/modules/emscripten/src/relooper/test_fuzz4.cpp +5 -5
  76. data/modules/emscripten/src/relooper/test_fuzz4.txt +25 -3
  77. data/modules/emscripten/src/relooper/test_fuzz5.cpp +10 -10
  78. data/modules/emscripten/src/relooper/test_fuzz5.txt +49 -15
  79. data/modules/emscripten/src/relooper/test_fuzz6.cpp +92 -92
  80. data/modules/emscripten/src/relooper/test_fuzz6.txt +201 -18
  81. data/modules/emscripten/src/relooper/test_inf.cpp +184 -184
  82. data/modules/emscripten/src/relooper/test_inf.txt +1078 -332
  83. data/modules/emscripten/src/runtime.js +69 -45
  84. data/modules/emscripten/src/settings.js +48 -919
  85. data/modules/emscripten/src/shell.html +1 -1
  86. data/modules/emscripten/src/shell.js +14 -8
  87. data/modules/emscripten/src/shell_sharedlib.js +18 -1
  88. data/modules/emscripten/src/simd.js +958 -0
  89. data/modules/emscripten/src/struct_info.json +1045 -0
  90. data/modules/emscripten/src/utility.js +11 -0
  91. data/modules/emscripten/system/bin/sdl-config +13 -0
  92. data/modules/emscripten/system/include/compat/ctype.h +17 -0
  93. data/modules/emscripten/system/include/compat/malloc.h +48 -0
  94. data/modules/emscripten/system/include/compat/math.h +14 -0
  95. data/modules/emscripten/system/include/compat/netdb.h +22 -0
  96. data/modules/emscripten/system/include/compat/stdarg.h +16 -0
  97. data/modules/emscripten/system/include/compat/stdlib.h +16 -0
  98. data/modules/emscripten/system/include/compat/string.h +17 -0
  99. data/modules/emscripten/system/include/compat/sys/socketvar.h +14 -0
  100. data/modules/emscripten/system/include/compat/sys/stat.h +20 -0
  101. data/modules/emscripten/system/include/{libc → compat}/sys/timeb.h +3 -7
  102. data/modules/emscripten/system/include/compat/time.h +18 -0
  103. data/modules/emscripten/system/include/compat/unistd.h +16 -0
  104. data/modules/emscripten/system/include/compat/xlocale.h +19 -0
  105. data/modules/emscripten/system/include/emscripten/emscripten.h +48 -7
  106. data/modules/emscripten/system/include/emscripten/vector.h +6 -0
  107. data/modules/emscripten/system/include/libc/aio.h +69 -0
  108. data/modules/emscripten/system/include/libc/alloca.h +13 -13
  109. data/modules/emscripten/system/include/libc/ar.h +19 -63
  110. data/modules/emscripten/system/include/libc/arpa/ftp.h +35 -0
  111. data/modules/emscripten/system/include/libc/arpa/inet.h +36 -0
  112. data/modules/emscripten/system/include/libc/arpa/nameser.h +467 -0
  113. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +2 -0
  114. data/modules/emscripten/system/include/libc/arpa/telnet.h +251 -0
  115. data/modules/emscripten/system/include/libc/arpa/tftp.h +31 -0
  116. data/modules/emscripten/system/include/libc/assert.h +9 -36
  117. data/modules/emscripten/system/include/libc/bits/alltypes.h +397 -0
  118. data/modules/emscripten/system/include/libc/bits/endian.h +1 -0
  119. data/modules/emscripten/system/include/libc/bits/errno.h +134 -0
  120. data/modules/emscripten/system/include/libc/bits/fcntl.h +38 -0
  121. data/modules/emscripten/system/include/libc/bits/fenv.h +34 -0
  122. data/modules/emscripten/system/include/libc/bits/float.h +17 -0
  123. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  124. data/modules/emscripten/system/include/libc/bits/ioctl.h +197 -0
  125. data/modules/emscripten/system/include/libc/bits/ipc.h +14 -0
  126. data/modules/emscripten/system/include/libc/bits/limits.h +8 -0
  127. data/modules/emscripten/system/include/libc/bits/mman.h +62 -0
  128. data/modules/emscripten/system/include/libc/bits/msg.h +16 -0
  129. data/modules/emscripten/system/include/libc/bits/posix.h +2 -0
  130. data/modules/emscripten/system/include/libc/bits/reg.h +19 -0
  131. data/modules/emscripten/system/include/libc/bits/setjmp.h +1 -0
  132. data/modules/emscripten/system/include/libc/bits/shm.h +18 -0
  133. data/modules/emscripten/system/include/libc/bits/signal.h +112 -0
  134. data/modules/emscripten/system/include/libc/bits/socket.h +17 -0
  135. data/modules/emscripten/system/include/libc/bits/stat.h +22 -0
  136. data/modules/emscripten/system/include/libc/bits/statfs.h +7 -0
  137. data/modules/emscripten/system/include/libc/bits/stdarg.h +4 -0
  138. data/modules/emscripten/system/include/libc/bits/stdint.h +20 -0
  139. data/modules/emscripten/system/include/libc/bits/syscall.h +696 -0
  140. data/modules/emscripten/system/include/libc/bits/termios.h +160 -0
  141. data/modules/emscripten/system/include/libc/bits/user.h +48 -0
  142. data/modules/emscripten/system/include/libc/byteswap.h +26 -0
  143. data/modules/emscripten/system/include/libc/complex.h +55 -54
  144. data/modules/emscripten/system/include/libc/cpio.h +29 -0
  145. data/modules/emscripten/system/include/libc/crypt.h +20 -0
  146. data/modules/emscripten/system/include/libc/ctype.h +58 -187
  147. data/modules/emscripten/system/include/libc/dirent.h +69 -6
  148. data/modules/emscripten/system/include/libc/dlfcn.h +42 -0
  149. data/modules/emscripten/system/include/libc/elf.h +2555 -0
  150. data/modules/emscripten/system/include/libc/endian.h +80 -1
  151. data/modules/emscripten/system/include/libc/err.h +25 -0
  152. data/modules/emscripten/system/include/libc/errno.h +23 -7
  153. data/modules/emscripten/system/include/libc/fcntl.h +175 -1
  154. data/modules/emscripten/system/include/libc/features.h +32 -0
  155. data/modules/emscripten/system/include/libc/fenv.h +28 -0
  156. data/modules/emscripten/system/include/libc/float.h +34 -0
  157. data/modules/emscripten/system/include/libc/fnmatch.h +24 -50
  158. data/modules/emscripten/system/include/libc/ftw.h +42 -0
  159. data/modules/emscripten/system/include/libc/getopt.h +22 -187
  160. data/modules/emscripten/system/include/libc/glob.h +42 -83
  161. data/modules/emscripten/system/include/libc/grp.h +37 -79
  162. data/modules/emscripten/system/include/libc/iconv.h +18 -56
  163. data/modules/emscripten/system/include/libc/ifaddrs.h +24 -53
  164. data/modules/emscripten/system/include/libc/inttypes.h +208 -271
  165. data/modules/emscripten/system/include/libc/iso646.h +5 -28
  166. data/modules/emscripten/system/include/libc/langinfo.h +88 -316
  167. data/modules/emscripten/system/include/libc/lastlog.h +1 -0
  168. data/modules/emscripten/system/include/libc/libgen.h +5 -13
  169. data/modules/emscripten/system/include/libc/libintl.h +25 -0
  170. data/modules/emscripten/system/include/libc/limits.h +140 -149
  171. data/modules/emscripten/system/include/libc/link.h +54 -0
  172. data/modules/emscripten/system/include/libc/locale.h +72 -70
  173. data/modules/emscripten/system/include/libc/malloc.h +0 -169
  174. data/modules/emscripten/system/include/libc/math.h +393 -573
  175. data/modules/emscripten/system/include/libc/memory.h +1 -0
  176. data/modules/emscripten/system/include/libc/mntent.h +44 -0
  177. data/modules/emscripten/system/include/libc/monetary.h +23 -0
  178. data/modules/emscripten/system/include/libc/mqueue.h +36 -0
  179. data/modules/emscripten/system/include/libc/net/ethernet.h +55 -0
  180. data/modules/emscripten/system/include/libc/net/if.h +135 -0
  181. data/modules/emscripten/system/include/libc/net/if_arp.h +133 -0
  182. data/modules/emscripten/system/include/libc/net/route.h +124 -0
  183. data/modules/emscripten/system/include/libc/netdb.h +161 -0
  184. data/modules/emscripten/system/include/libc/netinet/ether.h +14 -0
  185. data/modules/emscripten/system/include/libc/netinet/icmp6.h +305 -0
  186. data/modules/emscripten/system/include/libc/netinet/if_ether.h +126 -0
  187. data/modules/emscripten/system/include/libc/netinet/in.h +336 -0
  188. data/modules/emscripten/system/include/libc/netinet/in_systm.h +9 -0
  189. data/modules/emscripten/system/include/libc/netinet/ip.h +186 -0
  190. data/modules/emscripten/system/include/libc/netinet/ip6.h +142 -0
  191. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +192 -0
  192. data/modules/emscripten/system/include/libc/netinet/tcp.h +71 -0
  193. data/modules/emscripten/system/include/libc/netinet/udp.h +35 -0
  194. data/modules/emscripten/system/include/libc/netpacket/packet.h +44 -0
  195. data/modules/emscripten/system/include/libc/nl_types.h +22 -0
  196. data/modules/emscripten/system/include/libc/paths.h +30 -5
  197. data/modules/emscripten/system/include/libc/poll.h +46 -0
  198. data/modules/emscripten/system/include/libc/pthread.h +191 -331
  199. data/modules/emscripten/system/include/libc/pty.h +18 -0
  200. data/modules/emscripten/system/include/libc/pwd.h +33 -62
  201. data/modules/emscripten/system/include/libc/readme.txt +2 -2
  202. data/modules/emscripten/system/include/libc/regex.h +53 -93
  203. data/modules/emscripten/system/include/libc/resolv.h +144 -0
  204. data/modules/emscripten/system/include/libc/sched.h +124 -89
  205. data/modules/emscripten/system/include/libc/search.h +40 -48
  206. data/modules/emscripten/system/include/libc/semaphore.h +35 -0
  207. data/modules/emscripten/system/include/libc/setjmp.h +35 -13
  208. data/modules/emscripten/system/include/libc/shadow.h +44 -0
  209. data/modules/emscripten/system/include/libc/signal.h +245 -20
  210. data/modules/emscripten/system/include/libc/spawn.h +74 -0
  211. data/modules/emscripten/system/include/libc/stdalign.h +15 -0
  212. data/modules/emscripten/system/include/libc/stdarg.h +18 -43
  213. data/modules/emscripten/system/include/libc/stdbool.h +14 -0
  214. data/modules/emscripten/system/include/libc/stddef.h +12 -58
  215. data/modules/emscripten/system/include/libc/stdint.h +82 -458
  216. data/modules/emscripten/system/include/libc/stdio.h +184 -679
  217. data/modules/emscripten/system/include/libc/stdio_ext.h +34 -0
  218. data/modules/emscripten/system/include/libc/stdlib.h +146 -205
  219. data/modules/emscripten/system/include/libc/stdnoreturn.h +5 -0
  220. data/modules/emscripten/system/include/libc/string.h +86 -89
  221. data/modules/emscripten/system/include/libc/strings.h +27 -27
  222. data/modules/emscripten/system/include/libc/stropts.h +139 -0
  223. data/modules/emscripten/system/include/libc/sys/acct.h +75 -0
  224. data/modules/emscripten/system/include/libc/sys/cachectl.h +22 -0
  225. data/modules/emscripten/system/include/libc/sys/dir.h +0 -8
  226. data/modules/emscripten/system/include/libc/sys/epoll.h +67 -0
  227. data/modules/emscripten/system/include/libc/sys/errno.h +2 -190
  228. data/modules/emscripten/system/include/libc/sys/eventfd.h +26 -0
  229. data/modules/emscripten/system/include/libc/sys/fcntl.h +2 -4
  230. data/modules/emscripten/system/include/libc/sys/file.h +20 -1
  231. data/modules/emscripten/system/include/libc/sys/fsuid.h +20 -0
  232. data/modules/emscripten/system/include/libc/sys/inotify.h +57 -0
  233. data/modules/emscripten/system/include/libc/sys/io.h +17 -0
  234. data/modules/emscripten/system/include/libc/sys/ioctl.h +14 -0
  235. data/modules/emscripten/system/include/libc/sys/ipc.h +42 -0
  236. data/modules/emscripten/system/include/{sys/sysctl.h → libc/sys/klog.h} +4 -4
  237. data/modules/emscripten/system/include/libc/sys/mman.h +55 -0
  238. data/modules/emscripten/system/include/libc/sys/mount.h +72 -0
  239. data/modules/emscripten/system/include/libc/sys/msg.h +52 -0
  240. data/modules/emscripten/system/include/libc/sys/mtio.h +188 -0
  241. data/modules/emscripten/system/include/libc/sys/param.h +29 -19
  242. data/modules/emscripten/system/include/libc/sys/personality.h +46 -0
  243. data/modules/emscripten/system/include/libc/sys/poll.h +2 -0
  244. data/modules/emscripten/system/include/libc/sys/prctl.h +101 -0
  245. data/modules/emscripten/system/include/libc/sys/procfs.h +65 -0
  246. data/modules/emscripten/system/include/libc/sys/ptrace.h +96 -0
  247. data/modules/emscripten/system/include/libc/sys/reboot.h +20 -0
  248. data/modules/emscripten/system/include/libc/sys/reg.h +9 -0
  249. data/modules/emscripten/system/include/libc/sys/resource.h +89 -45
  250. data/modules/emscripten/system/include/libc/sys/select.h +42 -0
  251. data/modules/emscripten/system/include/libc/sys/sem.h +82 -0
  252. data/modules/emscripten/system/include/libc/sys/sendfile.h +22 -0
  253. data/modules/emscripten/system/include/libc/sys/shm.h +61 -0
  254. data/modules/emscripten/system/include/libc/sys/signal.h +1 -315
  255. data/modules/emscripten/system/include/libc/sys/signalfd.h +44 -0
  256. data/modules/emscripten/system/include/libc/sys/socket.h +299 -0
  257. data/modules/emscripten/system/include/libc/sys/stat.h +95 -204
  258. data/modules/emscripten/system/include/libc/sys/statfs.h +32 -0
  259. data/modules/emscripten/system/include/libc/sys/statvfs.h +57 -0
  260. data/modules/emscripten/system/include/libc/sys/stropts.h +1 -0
  261. data/modules/emscripten/system/include/libc/sys/swap.h +21 -0
  262. data/modules/emscripten/system/include/libc/sys/syscall.h +6 -0
  263. data/modules/emscripten/system/include/libc/sys/sysctl.h +17 -0
  264. data/modules/emscripten/system/include/libc/sys/sysinfo.h +36 -0
  265. data/modules/emscripten/system/include/libc/sys/syslog.h +1 -0
  266. data/modules/emscripten/system/include/libc/sys/sysmacros.h +15 -0
  267. data/modules/emscripten/system/include/libc/sys/termios.h +2 -280
  268. data/modules/emscripten/system/include/libc/sys/time.h +40 -68
  269. data/modules/emscripten/system/include/libc/sys/timerfd.h +24 -0
  270. data/modules/emscripten/system/include/libc/sys/times.h +14 -16
  271. data/modules/emscripten/system/include/libc/sys/timex.h +98 -0
  272. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +34 -92
  273. data/modules/emscripten/system/include/libc/sys/types.h +87 -481
  274. data/modules/emscripten/system/include/libc/sys/ucontext.h +1 -0
  275. data/modules/emscripten/system/include/libc/sys/uio.h +48 -0
  276. data/modules/emscripten/system/include/libc/sys/un.h +32 -0
  277. data/modules/emscripten/system/include/libc/sys/user.h +16 -0
  278. data/modules/emscripten/system/include/libc/sys/utsname.h +30 -0
  279. data/modules/emscripten/system/include/libc/sys/vfs.h +1 -0
  280. data/modules/emscripten/system/include/libc/sys/wait.h +41 -26
  281. data/modules/emscripten/system/include/libc/sys/xattr.h +30 -0
  282. data/modules/emscripten/system/include/libc/syscall.h +1 -0
  283. data/modules/emscripten/system/include/libc/sysexits.h +21 -0
  284. data/modules/emscripten/system/include/libc/syslog.h +104 -0
  285. data/modules/emscripten/system/include/libc/tar.h +27 -33
  286. data/modules/emscripten/system/include/libc/termios.h +40 -1
  287. data/modules/emscripten/system/include/libc/tgmath.h +270 -0
  288. data/modules/emscripten/system/include/libc/time.h +96 -237
  289. data/modules/emscripten/system/include/libc/ucontext.h +25 -0
  290. data/modules/emscripten/system/include/libc/ulimit.h +17 -0
  291. data/modules/emscripten/system/include/libc/unistd.h +517 -4
  292. data/modules/emscripten/system/include/libc/utime.h +15 -3
  293. data/modules/emscripten/system/include/libc/utmp.h +40 -1
  294. data/modules/emscripten/system/include/libc/utmpx.h +58 -0
  295. data/modules/emscripten/system/include/libc/values.h +39 -0
  296. data/modules/emscripten/system/include/libc/wchar.h +164 -175
  297. data/modules/emscripten/system/include/libc/wctype.h +67 -37
  298. data/modules/emscripten/system/include/libc/wordexp.h +31 -42
  299. data/modules/emscripten/system/include/libcxx/__locale +6 -6
  300. data/modules/emscripten/system/include/libcxx/locale +1 -1
  301. data/modules/emscripten/system/lib/libc/musl/readme.txt +9 -1
  302. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +5 -0
  303. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +92 -0
  304. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +1085 -0
  305. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +238 -0
  306. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +1836 -0
  307. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +390 -0
  308. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +454 -0
  309. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +6 -0
  310. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +6 -0
  311. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +6 -0
  312. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +6 -0
  313. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +9 -0
  314. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +6 -0
  315. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +6 -0
  316. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +6 -0
  317. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +6 -0
  318. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +6 -0
  319. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +6 -0
  320. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +6 -0
  321. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +6 -0
  322. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +550 -0
  323. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +640 -0
  324. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +39 -0
  325. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +101 -0
  326. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +18 -0
  327. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +6 -0
  328. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +9 -0
  329. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +9 -0
  330. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +16 -0
  331. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +6 -0
  332. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +21 -0
  333. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +6 -0
  334. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +6 -0
  335. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +9 -0
  336. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +13 -0
  337. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +14 -0
  338. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +361 -0
  339. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +53 -0
  340. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +7 -0
  341. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +13 -0
  342. data/modules/emscripten/system/lib/libcextra.symbols +44 -0
  343. data/modules/emscripten/system/lib/libcxx/exception.cpp +3 -3
  344. data/modules/emscripten/system/lib/libcxx/locale.cpp +12 -12
  345. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +1 -1
  346. data/modules/emscripten/tools/asm_module.py +2 -0
  347. data/modules/emscripten/tools/autodebugger.py +3 -1
  348. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -4835
  349. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -6495
  350. data/modules/emscripten/tools/file_packager.py +53 -56
  351. data/modules/emscripten/tools/find_bigfuncs.py +2 -2
  352. data/modules/emscripten/tools/find_bigvars.py +24 -0
  353. data/modules/emscripten/tools/gen_struct_info.py +509 -0
  354. data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
  355. data/modules/emscripten/tools/js-optimizer.js +177 -86
  356. data/modules/emscripten/tools/js_optimizer.py +54 -19
  357. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  358. data/modules/emscripten/tools/jsrun.py +17 -7
  359. data/modules/emscripten/tools/jsrun.pyc +0 -0
  360. data/modules/emscripten/tools/response_file.py +2 -2
  361. data/modules/emscripten/tools/response_file.pyc +0 -0
  362. data/modules/emscripten/tools/shared.py +257 -123
  363. data/modules/emscripten/tools/shared.pyc +0 -0
  364. data/modules/emscripten/tools/source-maps/sourcemapper.js +37 -6
  365. data/modules/emscripten/tools/tempfiles.py +1 -0
  366. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  367. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +2 -0
  368. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +8 -0
  369. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +412 -169
  370. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +88 -0
  371. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +311 -265
  372. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -20
  373. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -21
  374. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +2 -2
  375. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +8 -8
  376. data/modules/emscripten/tools/test-js-optimizer-regs.js +1 -1
  377. data/modules/emscripten/tools/validate_asmjs.py +82 -0
  378. data/modules/mruby/Rakefile +2 -2
  379. data/modules/mruby/include/mruby/class.h +2 -2
  380. data/modules/mruby/include/mruby/compile.h +12 -4
  381. data/modules/mruby/include/mruby/data.h +8 -3
  382. data/modules/mruby/include/mruby/debug.h +65 -0
  383. data/modules/mruby/include/mruby/dump.h +10 -2
  384. data/modules/mruby/include/mruby/irep.h +1 -0
  385. data/modules/mruby/include/mruby/string.h +2 -1
  386. data/modules/mruby/include/mruby/value.h +20 -13
  387. data/modules/mruby/include/mruby/variable.h +1 -0
  388. data/modules/mruby/include/mruby.h +5 -6
  389. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +6 -4
  390. data/modules/mruby/mrbgems/mruby-math/src/math.c +4 -0
  391. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
  392. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +1 -1
  393. data/modules/mruby/mrbgems/mruby-random/src/random.c +1 -4
  394. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +25 -16
  395. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +4 -0
  396. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
  397. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +51 -0
  398. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +22 -0
  399. data/modules/mruby/mrbgems/mruby-time/src/time.c +38 -60
  400. data/modules/mruby/mrblib/class.rb +2 -2
  401. data/modules/mruby/src/backtrace.c +96 -23
  402. data/modules/mruby/src/class.c +43 -41
  403. data/modules/mruby/src/codegen.c +52 -46
  404. data/modules/mruby/src/debug.c +214 -0
  405. data/modules/mruby/src/dump.c +245 -17
  406. data/modules/mruby/src/error.c +14 -6
  407. data/modules/mruby/src/etc.c +17 -10
  408. data/modules/mruby/src/gc.c +9 -9
  409. data/modules/mruby/src/kernel.c +1 -1
  410. data/modules/mruby/src/load.c +137 -1
  411. data/modules/mruby/src/object.c +1 -1
  412. data/modules/mruby/src/parse.y +162 -37
  413. data/modules/mruby/src/state.c +2 -0
  414. data/modules/mruby/src/string.c +28 -19
  415. data/modules/mruby/src/symbol.c +0 -1
  416. data/modules/mruby/src/variable.c +12 -15
  417. data/modules/mruby/src/vm.c +38 -22
  418. data/modules/mruby/tasks/mrbgem_spec.rake +6 -4
  419. data/modules/mruby/tasks/mrbgems_test.rake +9 -9
  420. data/modules/mruby/tasks/mruby_build_gem.rake +9 -0
  421. data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
  422. data/modules/mruby/test/driver.c +3 -3
  423. data/modules/mruby/test/t/array.rb +13 -0
  424. data/modules/mruby/test/t/class.rb +28 -0
  425. data/modules/mruby/test/t/exception.rb +10 -0
  426. data/modules/mruby/test/t/literals.rb +50 -0
  427. data/modules/mruby/test/t/module.rb +22 -0
  428. data/modules/mruby/test/t/proc.rb +37 -0
  429. data/modules/mruby/test/t/string.rb +20 -21
  430. data/modules/mruby/tools/mrbc/mrbc.c +2 -4
  431. data/scripts/gen_post.rb +1 -0
  432. data/scripts/gen_require.rb +107 -0
  433. data/templates/minimal/Rakefile +20 -0
  434. metadata +210 -88
  435. data/driver/main.c +0 -40
  436. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +0 -24
  437. data/modules/emscripten/emlibtool +0 -11
  438. data/modules/emscripten/emlibtool.bat +0 -2
  439. data/modules/emscripten/src/framework.js +0 -257
  440. data/modules/emscripten/system/include/bsd/float.h +0 -91
  441. data/modules/emscripten/system/include/bsd/readme.txt +0 -2
  442. data/modules/emscripten/system/include/bsd/sys/mman.h +0 -180
  443. data/modules/emscripten/system/include/bsd/sys/utsname.h +0 -70
  444. data/modules/emscripten/system/include/dlfcn.h +0 -31
  445. data/modules/emscripten/system/include/err.h +0 -95
  446. data/modules/emscripten/system/include/features.h +0 -3
  447. data/modules/emscripten/system/include/libc/_ansi.h +0 -135
  448. data/modules/emscripten/system/include/libc/_syslist.h +0 -40
  449. data/modules/emscripten/system/include/libc/argz.h +0 -33
  450. data/modules/emscripten/system/include/libc/envlock.h +0 -15
  451. data/modules/emscripten/system/include/libc/envz.h +0 -16
  452. data/modules/emscripten/system/include/libc/fastmath.h +0 -13
  453. data/modules/emscripten/system/include/libc/ieeefp.h +0 -256
  454. data/modules/emscripten/system/include/libc/machine/_default_types.h +0 -121
  455. data/modules/emscripten/system/include/libc/machine/_types.h +0 -8
  456. data/modules/emscripten/system/include/libc/machine/ansi.h +0 -1
  457. data/modules/emscripten/system/include/libc/machine/endian.h +0 -31
  458. data/modules/emscripten/system/include/libc/machine/fastmath.h +0 -100
  459. data/modules/emscripten/system/include/libc/machine/ieeefp.h +0 -376
  460. data/modules/emscripten/system/include/libc/machine/malloc.h +0 -8
  461. data/modules/emscripten/system/include/libc/machine/param.h +0 -1
  462. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +0 -43
  463. data/modules/emscripten/system/include/libc/machine/setjmp.h +0 -361
  464. data/modules/emscripten/system/include/libc/machine/stdlib.h +0 -8
  465. data/modules/emscripten/system/include/libc/machine/termios.h +0 -1
  466. data/modules/emscripten/system/include/libc/machine/time.h +0 -19
  467. data/modules/emscripten/system/include/libc/machine/types.h +0 -30
  468. data/modules/emscripten/system/include/libc/newlib.h +0 -2
  469. data/modules/emscripten/system/include/libc/process.h +0 -44
  470. data/modules/emscripten/system/include/libc/reent.h +0 -183
  471. data/modules/emscripten/system/include/libc/regdef.h +0 -7
  472. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +0 -223
  473. data/modules/emscripten/system/include/libc/sys/_types.h +0 -93
  474. data/modules/emscripten/system/include/libc/sys/cdefs.h +0 -123
  475. data/modules/emscripten/system/include/libc/sys/config.h +0 -255
  476. data/modules/emscripten/system/include/libc/sys/custom_file.h +0 -2
  477. data/modules/emscripten/system/include/libc/sys/dirent.h +0 -58
  478. data/modules/emscripten/system/include/libc/sys/features.h +0 -212
  479. data/modules/emscripten/system/include/libc/sys/iconvnls.h +0 -77
  480. data/modules/emscripten/system/include/libc/sys/lock.h +0 -24
  481. data/modules/emscripten/system/include/libc/sys/queue.h +0 -471
  482. data/modules/emscripten/system/include/libc/sys/reent.h +0 -843
  483. data/modules/emscripten/system/include/libc/sys/sched.h +0 -67
  484. data/modules/emscripten/system/include/libc/sys/stdio.h +0 -27
  485. data/modules/emscripten/system/include/libc/sys/string.h +0 -2
  486. data/modules/emscripten/system/include/libc/sys/syslimits.h +0 -65
  487. data/modules/emscripten/system/include/libc/sys/unistd.h +0 -514
  488. data/modules/emscripten/system/include/libc/sys/utime.h +0 -26
  489. data/modules/emscripten/system/include/libc/unctrl.h +0 -46
  490. data/modules/emscripten/system/include/memory.h +0 -10
  491. data/modules/emscripten/system/include/mntent.h +0 -23
  492. data/modules/emscripten/system/include/net/arpa/inet.h +0 -32
  493. data/modules/emscripten/system/include/net/arpa/nameser.h +0 -535
  494. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +0 -187
  495. data/modules/emscripten/system/include/net/if.h +0 -106
  496. data/modules/emscripten/system/include/net/netinet/in.h +0 -230
  497. data/modules/emscripten/system/include/net/netinet/tcp.h +0 -246
  498. data/modules/emscripten/system/include/net/resolv.h +0 -389
  499. data/modules/emscripten/system/include/netdb.h +0 -130
  500. data/modules/emscripten/system/include/nl_types.h +0 -19
  501. data/modules/emscripten/system/include/poll.h +0 -3
  502. data/modules/emscripten/system/include/pty.h +0 -6
  503. data/modules/emscripten/system/include/semaphore.h +0 -31
  504. data/modules/emscripten/system/include/spawn.h +0 -105
  505. data/modules/emscripten/system/include/stdbool.h +0 -16
  506. data/modules/emscripten/system/include/sys/bitypes.h +0 -3
  507. data/modules/emscripten/system/include/sys/io.h +0 -14
  508. data/modules/emscripten/system/include/sys/ioctl.h +0 -78
  509. data/modules/emscripten/system/include/sys/poll.h +0 -31
  510. data/modules/emscripten/system/include/sys/select.h +0 -16
  511. data/modules/emscripten/system/include/sys/sendfile.h +0 -16
  512. data/modules/emscripten/system/include/sys/socket.h +0 -247
  513. data/modules/emscripten/system/include/sys/socketvar.h +0 -3
  514. data/modules/emscripten/system/include/sys/statvfs.h +0 -32
  515. data/modules/emscripten/system/include/sys/uio.h +0 -22
  516. data/modules/emscripten/system/include/sys/un.h +0 -66
  517. data/modules/emscripten/system/include/sysexits.h +0 -108
  518. data/modules/emscripten/system/include/xlocale.h +0 -47
@@ -0,0 +1,234 @@
1
+ mergeInto(LibraryManager.library, {
2
+ $NODEFS__deps: ['$FS', '$PATH'],
3
+ $NODEFS__postset: 'if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); }',
4
+ $NODEFS: {
5
+ mount: function (mount) {
6
+ assert(ENVIRONMENT_IS_NODE);
7
+ return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
8
+ },
9
+ createNode: function (parent, name, mode, dev) {
10
+ if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
11
+ throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
12
+ }
13
+ var node = FS.createNode(parent, name, mode);
14
+ node.node_ops = NODEFS.node_ops;
15
+ node.stream_ops = NODEFS.stream_ops;
16
+ return node;
17
+ },
18
+ getMode: function (path) {
19
+ var stat;
20
+ try {
21
+ stat = fs.lstatSync(path);
22
+ } catch (e) {
23
+ if (!e.code) throw e;
24
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
25
+ }
26
+ return stat.mode;
27
+ },
28
+ realPath: function (node) {
29
+ var parts = [];
30
+ while (node.parent !== node) {
31
+ parts.push(node.name);
32
+ node = node.parent;
33
+ }
34
+ parts.push(node.mount.opts.root);
35
+ parts.reverse();
36
+ return PATH.join.apply(null, parts);
37
+ },
38
+ node_ops: {
39
+ getattr: function(node) {
40
+ var path = NODEFS.realPath(node);
41
+ var stat;
42
+ try {
43
+ stat = fs.lstatSync(path);
44
+ } catch (e) {
45
+ if (!e.code) throw e;
46
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
47
+ }
48
+ return {
49
+ dev: stat.dev,
50
+ ino: stat.ino,
51
+ mode: stat.mode,
52
+ nlink: stat.nlink,
53
+ uid: stat.uid,
54
+ gid: stat.gid,
55
+ rdev: stat.rdev,
56
+ size: stat.size,
57
+ atime: stat.atime,
58
+ mtime: stat.mtime,
59
+ ctime: stat.ctime,
60
+ blksize: stat.blksize,
61
+ blocks: stat.blocks
62
+ };
63
+ },
64
+ setattr: function(node, attr) {
65
+ var path = NODEFS.realPath(node);
66
+ try {
67
+ if (attr.mode !== undefined) {
68
+ fs.chmodSync(path, attr.mode);
69
+ // update the common node structure mode as well
70
+ node.mode = attr.mode;
71
+ }
72
+ if (attr.timestamp !== undefined) {
73
+ var date = new Date(attr.timestamp);
74
+ fs.utimesSync(path, date, date);
75
+ }
76
+ if (attr.size !== undefined) {
77
+ fs.truncateSync(path, attr.size);
78
+ }
79
+ } catch (e) {
80
+ if (!e.code) throw e;
81
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
82
+ }
83
+ },
84
+ lookup: function (parent, name) {
85
+ var path = PATH.join(NODEFS.realPath(parent), name);
86
+ var mode = NODEFS.getMode(path);
87
+ return NODEFS.createNode(parent, name, mode);
88
+ },
89
+ mknod: function (parent, name, mode, dev) {
90
+ var node = NODEFS.createNode(parent, name, mode, dev);
91
+ // create the backing node for this in the fs root as well
92
+ var path = NODEFS.realPath(node);
93
+ try {
94
+ if (FS.isDir(node.mode)) {
95
+ fs.mkdirSync(path, node.mode);
96
+ } else {
97
+ fs.writeFileSync(path, '', { mode: node.mode });
98
+ }
99
+ } catch (e) {
100
+ if (!e.code) throw e;
101
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
102
+ }
103
+ return node;
104
+ },
105
+ rename: function (oldNode, newDir, newName) {
106
+ var oldPath = NODEFS.realPath(oldNode);
107
+ var newPath = PATH.join(NODEFS.realPath(newDir), newName);
108
+ try {
109
+ fs.renameSync(oldPath, newPath);
110
+ } catch (e) {
111
+ if (!e.code) throw e;
112
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
113
+ }
114
+ },
115
+ unlink: function(parent, name) {
116
+ var path = PATH.join(NODEFS.realPath(parent), name);
117
+ try {
118
+ fs.unlinkSync(path);
119
+ } catch (e) {
120
+ if (!e.code) throw e;
121
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
122
+ }
123
+ },
124
+ rmdir: function(parent, name) {
125
+ var path = PATH.join(NODEFS.realPath(parent), name);
126
+ try {
127
+ fs.rmdirSync(path);
128
+ } catch (e) {
129
+ if (!e.code) throw e;
130
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
131
+ }
132
+ },
133
+ readdir: function(node) {
134
+ var path = NODEFS.realPath(node);
135
+ try {
136
+ return fs.readdirSync(path);
137
+ } catch (e) {
138
+ if (!e.code) throw e;
139
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
140
+ }
141
+ },
142
+ symlink: function(parent, newName, oldPath) {
143
+ var newPath = PATH.join(NODEFS.realPath(parent), newName);
144
+ try {
145
+ fs.symlinkSync(oldPath, newPath);
146
+ } catch (e) {
147
+ if (!e.code) throw e;
148
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
149
+ }
150
+ },
151
+ readlink: function(node) {
152
+ var path = NODEFS.realPath(node);
153
+ try {
154
+ return fs.readlinkSync(path);
155
+ } catch (e) {
156
+ if (!e.code) throw e;
157
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
158
+ }
159
+ },
160
+ },
161
+ stream_ops: {
162
+ open: function (stream) {
163
+ var path = NODEFS.realPath(stream.node);
164
+ try {
165
+ if (FS.isFile(stream.node.mode)) {
166
+ stream.nfd = fs.openSync(path, stream.flags);
167
+ }
168
+ } catch (e) {
169
+ if (!e.code) throw e;
170
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
171
+ }
172
+ },
173
+ close: function (stream) {
174
+ try {
175
+ if (FS.isFile(stream.node.mode)) {
176
+ fs.closeSync(stream.nfd);
177
+ }
178
+ } catch (e) {
179
+ if (!e.code) throw e;
180
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
181
+ }
182
+ },
183
+ read: function (stream, buffer, offset, length, position) {
184
+ // FIXME this is terrible.
185
+ var nbuffer = new Buffer(length);
186
+ var res;
187
+ try {
188
+ res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
189
+ } catch (e) {
190
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
191
+ }
192
+ if (res > 0) {
193
+ for (var i = 0; i < res; i++) {
194
+ buffer[offset + i] = nbuffer[i];
195
+ }
196
+ }
197
+ return res;
198
+ },
199
+ write: function (stream, buffer, offset, length, position) {
200
+ // FIXME this is terrible.
201
+ var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
202
+ var res;
203
+ try {
204
+ res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
205
+ } catch (e) {
206
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
207
+ }
208
+ return res;
209
+ },
210
+ llseek: function (stream, offset, whence) {
211
+ var position = offset;
212
+ if (whence === 1) { // SEEK_CUR.
213
+ position += stream.position;
214
+ } else if (whence === 2) { // SEEK_END.
215
+ if (FS.isFile(stream.node.mode)) {
216
+ try {
217
+ var stat = fs.fstatSync(stream.nfd);
218
+ position += stat.size;
219
+ } catch (e) {
220
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
221
+ }
222
+ }
223
+ }
224
+
225
+ if (position < 0) {
226
+ throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
227
+ }
228
+
229
+ stream.position = position;
230
+ return position;
231
+ }
232
+ }
233
+ }
234
+ });
@@ -6,7 +6,128 @@ var LibraryOpenAL = {
6
6
  contexts: [],
7
7
  currentContext: null,
8
8
  QUEUE_INTERVAL: 25,
9
- QUEUE_LOOKAHEAD: 100
9
+ QUEUE_LOOKAHEAD: 100,
10
+
11
+ updateSources: function(context) {
12
+ for (var i = 0; i < context.src.length; i++) {
13
+ AL.updateSource(context.src[i]);
14
+ }
15
+ },
16
+
17
+ updateSource: function(src) {
18
+ #if OPENAL_DEBUG
19
+ var idx = AL.currentContext.src.indexOf(src);
20
+ #endif
21
+ if (src.state !== 0x1012 /* AL_PLAYING */) {
22
+ return;
23
+ }
24
+
25
+ var currentTime = AL.currentContext.ctx.currentTime;
26
+ var startTime = src.bufferPosition;
27
+
28
+ for (var i = src.buffersPlayed; i < src.queue.length; i++) {
29
+ var entry = src.queue[i];
30
+
31
+ var startOffset = startTime - currentTime;
32
+ var endTime = startTime + entry.buffer.duration;
33
+
34
+ // Clean up old buffers.
35
+ if (currentTime >= endTime) {
36
+ // Update our location in the queue.
37
+ src.bufferPosition = endTime;
38
+ src.buffersPlayed = i + 1;
39
+
40
+ // Stop / restart the source when we hit the end.
41
+ if (src.buffersPlayed >= src.queue.length) {
42
+ if (src.loop) {
43
+ AL.setSourceState(src, 0x1012 /* AL_PLAYING */);
44
+ } else {
45
+ AL.setSourceState(src, 0x1014 /* AL_STOPPED */);
46
+ }
47
+ }
48
+ }
49
+ // Process all buffers that'll be played before the next tick.
50
+ else if (startOffset < (AL.QUEUE_LOOKAHEAD / 1000) && !entry.src) {
51
+ // If the start offset is negative, we need to offset the actual buffer.
52
+ var offset = Math.abs(Math.min(startOffset, 0));
53
+
54
+ entry.src = AL.currentContext.ctx.createBufferSource();
55
+ entry.src.buffer = entry.buffer;
56
+ entry.src.connect(src.gain);
57
+ entry.src.start(startTime, offset);
58
+
59
+ #if OPENAL_DEBUG
60
+ console.log('updateSource queuing buffer ' + i + ' for source ' + idx + ' at ' + startTime + ' (offset by ' + offset + ')');
61
+ #endif
62
+ }
63
+
64
+ startTime = endTime;
65
+ }
66
+ },
67
+
68
+ setSourceState: function(src, state) {
69
+ #if OPENAL_DEBUG
70
+ var idx = AL.currentContext.src.indexOf(src);
71
+ #endif
72
+ if (state === 0x1012 /* AL_PLAYING */) {
73
+ if (src.state !== 0x1013 /* AL_PAUSED */) {
74
+ src.state = 0x1012 /* AL_PLAYING */;
75
+ // Reset our position.
76
+ src.bufferPosition = AL.currentContext.ctx.currentTime;
77
+ src.buffersPlayed = 0;
78
+ #if OPENAL_DEBUG
79
+ console.log('setSourceState resetting and playing source ' + idx);
80
+ #endif
81
+ } else {
82
+ src.state = 0x1012 /* AL_PLAYING */;
83
+ // Use the current offset from src.bufferPosition to resume at the correct point.
84
+ src.bufferPosition = AL.currentContext.ctx.currentTime - src.bufferPosition;
85
+ #if OPENAL_DEBUG
86
+ console.log('setSourceState resuming source ' + idx + ' at ' + src.bufferPosition.toFixed(4));
87
+ #endif
88
+ }
89
+ AL.stopSourceQueue(src);
90
+ AL.updateSource(src);
91
+ } else if (state === 0x1013 /* AL_PAUSED */) {
92
+ if (src.state === 0x1012 /* AL_PLAYING */) {
93
+ src.state = 0x1013 /* AL_PAUSED */;
94
+ // Store off the current offset to restore with on resume.
95
+ src.bufferPosition = AL.currentContext.ctx.currentTime - src.bufferPosition;
96
+ AL.stopSourceQueue(src);
97
+ #if OPENAL_DEBUG
98
+ console.log('setSourceState pausing source ' + idx + ' at ' + src.bufferPosition.toFixed(4));
99
+ #endif
100
+ }
101
+ } else if (state === 0x1014 /* AL_STOPPED */) {
102
+ if (src.state !== 0x1011 /* AL_INITIAL */) {
103
+ src.state = 0x1014 /* AL_STOPPED */;
104
+ src.buffersPlayed = src.queue.length;
105
+ AL.stopSourceQueue(src);
106
+ #if OPENAL_DEBUG
107
+ console.log('setSourceState stopping source ' + idx);
108
+ #endif
109
+ }
110
+ } else if (state == 0x1011 /* AL_INITIAL */) {
111
+ if (src.state !== 0x1011 /* AL_INITIAL */) {
112
+ src.state = 0x1011 /* AL_INITIAL */;
113
+ src.bufferPosition = 0;
114
+ src.buffersPlayed = 0;
115
+ #if OPENAL_DEBUG
116
+ console.log('setSourceState initializing source ' + idx);
117
+ #endif
118
+ }
119
+ }
120
+ },
121
+
122
+ stopSourceQueue: function(src) {
123
+ for (var i = 0; i < src.queue.length; i++) {
124
+ var entry = src.queue[i];
125
+ if (entry.src) {
126
+ entry.src.stop(0);
127
+ entry.src = null;
128
+ }
129
+ }
130
+ }
10
131
  },
11
132
 
12
133
  alcProcessContext: function(context) {},
@@ -41,7 +162,7 @@ var LibraryOpenAL = {
41
162
 
42
163
  alcDestroyContext: function(context) {
43
164
  // Stop playback, etc
44
- clearInterval(context.interval);
165
+ clearInterval(AL.contexts[context - 1].interval);
45
166
  },
46
167
 
47
168
  alcCloseDevice: function(device) {
@@ -85,7 +206,7 @@ var LibraryOpenAL = {
85
206
  err: 0,
86
207
  src: [],
87
208
  buf: [],
88
- interval: setInterval(function() { _updateSources(context); }, AL.QUEUE_INTERVAL)
209
+ interval: setInterval(function() { AL.updateSources(context); }, AL.QUEUE_INTERVAL)
89
210
  };
90
211
  AL.contexts.push(context);
91
212
  return AL.contexts.length;
@@ -94,130 +215,6 @@ var LibraryOpenAL = {
94
215
  }
95
216
  },
96
217
 
97
- updateSources__deps: ['updateSource'],
98
- updateSources: function(context) {
99
- for (var i = 0; i < context.src.length; i++) {
100
- _updateSource(context.src[i]);
101
- }
102
- },
103
-
104
- updateSource__deps: ['setSourceState'],
105
- updateSource: function(src) {
106
- #if OPENAL_DEBUG
107
- var idx = AL.currentContext.src.indexOf(src);
108
- #endif
109
- if (src.state !== 0x1012 /* AL_PLAYING */) {
110
- return;
111
- }
112
-
113
- var currentTime = AL.currentContext.ctx.currentTime;
114
- var startTime = src.bufferPosition;
115
-
116
- for (var i = src.buffersPlayed; i < src.queue.length; i++) {
117
- var entry = src.queue[i];
118
-
119
- var startOffset = startTime - currentTime;
120
- var endTime = startTime + entry.buffer.duration;
121
-
122
- // Clean up old buffers.
123
- if (currentTime >= endTime) {
124
- // Update our location in the queue.
125
- src.bufferPosition = endTime;
126
- src.buffersPlayed = i + 1;
127
-
128
- // Stop / restart the source when we hit the end.
129
- if (src.buffersPlayed >= src.queue.length) {
130
- if (src.loop) {
131
- _setSourceState(src, 0x1012 /* AL_PLAYING */);
132
- } else {
133
- _setSourceState(src, 0x1014 /* AL_STOPPED */);
134
- }
135
- }
136
- }
137
- // Process all buffers that'll be played before the next tick.
138
- else if (startOffset < (AL.QUEUE_LOOKAHEAD / 1000) && !entry.src) {
139
- // If the start offset is negative, we need to offset the actual buffer.
140
- var offset = Math.abs(Math.min(startOffset, 0));
141
-
142
- entry.src = AL.currentContext.ctx.createBufferSource();
143
- entry.src.buffer = entry.buffer;
144
- entry.src.connect(src.gain);
145
- entry.src.start(startTime, offset);
146
-
147
- #if OPENAL_DEBUG
148
- console.log('updateSource queuing buffer ' + i + ' for source ' + idx + ' at ' + startTime + ' (offset by ' + offset + ')');
149
- #endif
150
- }
151
-
152
- startTime = endTime;
153
- }
154
- },
155
-
156
- setSourceState__deps: ['updateSource', 'stopSourceQueue'],
157
- setSourceState: function(src, state) {
158
- #if OPENAL_DEBUG
159
- var idx = AL.currentContext.src.indexOf(src);
160
- #endif
161
- if (state === 0x1012 /* AL_PLAYING */) {
162
- if (src.state !== 0x1013 /* AL_PAUSED */) {
163
- src.state = 0x1012 /* AL_PLAYING */;
164
- // Reset our position.
165
- src.bufferPosition = AL.currentContext.ctx.currentTime;
166
- src.buffersPlayed = 0;
167
- #if OPENAL_DEBUG
168
- console.log('setSourceState resetting and playing source ' + idx);
169
- #endif
170
- } else {
171
- src.state = 0x1012 /* AL_PLAYING */;
172
- // Use the current offset from src.bufferPosition to resume at the correct point.
173
- src.bufferPosition = AL.currentContext.ctx.currentTime - src.bufferPosition;
174
- #if OPENAL_DEBUG
175
- console.log('setSourceState resuming source ' + idx + ' at ' + src.bufferPosition.toFixed(4));
176
- #endif
177
- }
178
- _stopSourceQueue(src);
179
- _updateSource(src);
180
- } else if (state === 0x1013 /* AL_PAUSED */) {
181
- if (src.state === 0x1012 /* AL_PLAYING */) {
182
- src.state = 0x1013 /* AL_PAUSED */;
183
- // Store off the current offset to restore with on resume.
184
- src.bufferPosition = AL.currentContext.ctx.currentTime - src.bufferPosition;
185
- _stopSourceQueue(src);
186
- #if OPENAL_DEBUG
187
- console.log('setSourceState pausing source ' + idx + ' at ' + src.bufferPosition.toFixed(4));
188
- #endif
189
- }
190
- } else if (state === 0x1014 /* AL_STOPPED */) {
191
- if (src.state !== 0x1011 /* AL_INITIAL */) {
192
- src.state = 0x1014 /* AL_STOPPED */;
193
- src.buffersPlayed = src.queue.length;
194
- _stopSourceQueue(src);
195
- #if OPENAL_DEBUG
196
- console.log('setSourceState stopping source ' + idx);
197
- #endif
198
- }
199
- } else if (state == 0x1011 /* AL_INITIAL */) {
200
- if (src.state !== 0x1011 /* AL_INITIAL */) {
201
- src.state = 0x1011 /* AL_INITIAL */;
202
- src.bufferPosition = 0;
203
- src.buffersPlayed = 0;
204
- #if OPENAL_DEBUG
205
- console.log('setSourceState initializing source ' + idx);
206
- #endif
207
- }
208
- }
209
- },
210
-
211
- stopSourceQueue: function(src) {
212
- for (var i = 0; i < src.queue.length; i++) {
213
- var entry = src.queue[i];
214
- if (entry.src) {
215
- entry.src.stop(0);
216
- entry.src = null;
217
- }
218
- }
219
- },
220
-
221
218
  alGetError: function() {
222
219
  if (!AL.currentContext) {
223
220
  return 0xA004 /* AL_INVALID_OPERATION */;
@@ -240,7 +237,6 @@ var LibraryOpenAL = {
240
237
  #if OPENAL_DEBUG
241
238
  console.error("alDeleteSources called without a valid context");
242
239
  #endif
243
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
244
240
  return;
245
241
  }
246
242
  for (var i = 0; i < count; ++i) {
@@ -254,7 +250,6 @@ var LibraryOpenAL = {
254
250
  #if OPENAL_DEBUG
255
251
  console.error("alGenSources called without a valid context");
256
252
  #endif
257
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
258
253
  return;
259
254
  }
260
255
  for (var i = 0; i < count; ++i) {
@@ -314,7 +309,6 @@ var LibraryOpenAL = {
314
309
  #if OPENAL_DEBUG
315
310
  console.error("alSourcei called without a valid context");
316
311
  #endif
317
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
318
312
  return;
319
313
  }
320
314
  var src = AL.currentContext.src[source - 1];
@@ -336,7 +330,7 @@ var LibraryOpenAL = {
336
330
  } else {
337
331
  src.queue = [{ buffer: buffer }];
338
332
  }
339
- _updateSource(src);
333
+ AL.updateSource(src);
340
334
  break;
341
335
  case 0x202 /* AL_SOURCE_RELATIVE */:
342
336
  if (value === 1 /* AL_TRUE */) {
@@ -383,7 +377,6 @@ var LibraryOpenAL = {
383
377
  #if OPENAL_DEBUG
384
378
  console.error("alSourcef called without a valid context");
385
379
  #endif
386
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
387
380
  return;
388
381
  }
389
382
  var src = AL.currentContext.src[source - 1];
@@ -436,7 +429,6 @@ var LibraryOpenAL = {
436
429
  #if OPENAL_DEBUG
437
430
  console.error("alSource3f called without a valid context");
438
431
  #endif
439
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
440
432
  return;
441
433
  }
442
434
  var src = AL.currentContext.src[source - 1];
@@ -477,7 +469,6 @@ var LibraryOpenAL = {
477
469
  #if OPENAL_DEBUG
478
470
  console.error("alSourceQueueBuffers called without a valid context");
479
471
  #endif
480
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
481
472
  return;
482
473
  }
483
474
  var src = AL.currentContext.src[source - 1];
@@ -505,7 +496,7 @@ var LibraryOpenAL = {
505
496
  src.queue.push({ buffer: buffer, src: null });
506
497
  }
507
498
 
508
- _updateSource(src);
499
+ AL.updateSource(src);
509
500
  },
510
501
 
511
502
  alSourceUnqueueBuffers__deps: ["updateSource"],
@@ -514,7 +505,6 @@ var LibraryOpenAL = {
514
505
  #if OPENAL_DEBUG
515
506
  console.error("alSourceUnqueueBuffers called without a valid context");
516
507
  #endif
517
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
518
508
  return;
519
509
  }
520
510
  var src = AL.currentContext.src[source - 1];
@@ -544,7 +534,7 @@ var LibraryOpenAL = {
544
534
  src.buffersPlayed--;
545
535
  }
546
536
 
547
- _updateSource(src);
537
+ AL.updateSource(src);
548
538
  },
549
539
 
550
540
  alDeleteBuffers: function(count, buffers)
@@ -553,7 +543,6 @@ var LibraryOpenAL = {
553
543
  #if OPENAL_DEBUG
554
544
  console.error("alDeleteBuffers called without a valid context");
555
545
  #endif
556
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
557
546
  return;
558
547
  }
559
548
  if (count > AL.currentContext.buf.length) {
@@ -597,7 +586,6 @@ var LibraryOpenAL = {
597
586
  #if OPENAL_DEBUG
598
587
  console.error("alGenBuffers called without a valid context");
599
588
  #endif
600
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
601
589
  return;
602
590
  }
603
591
  for (var i = 0; i < count; ++i) {
@@ -611,7 +599,6 @@ var LibraryOpenAL = {
611
599
  #if OPENAL_DEBUG
612
600
  console.error("alBufferData called without a valid context");
613
601
  #endif
614
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
615
602
  return;
616
603
  }
617
604
  if (buffer > AL.currentContext.buf.length) {
@@ -676,7 +663,6 @@ var LibraryOpenAL = {
676
663
  #if OPENAL_DEBUG
677
664
  console.error("alSourcePlay called without a valid context");
678
665
  #endif
679
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
680
666
  return;
681
667
  }
682
668
  var src = AL.currentContext.src[source - 1];
@@ -687,7 +673,7 @@ var LibraryOpenAL = {
687
673
  AL.currentContext.err = 0xA001 /* AL_INVALID_NAME */;
688
674
  return;
689
675
  }
690
- _setSourceState(src, 0x1012 /* AL_PLAYING */);
676
+ AL.setSourceState(src, 0x1012 /* AL_PLAYING */);
691
677
  },
692
678
 
693
679
  alSourceStop__deps: ['setSourceState'],
@@ -696,7 +682,6 @@ var LibraryOpenAL = {
696
682
  #if OPENAL_DEBUG
697
683
  console.error("alSourceStop called without a valid context");
698
684
  #endif
699
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
700
685
  return;
701
686
  }
702
687
  var src = AL.currentContext.src[source - 1];
@@ -707,7 +692,7 @@ var LibraryOpenAL = {
707
692
  AL.currentContext.err = 0xA001 /* AL_INVALID_NAME */;
708
693
  return;
709
694
  }
710
- _setSourceState(src, 0x1014 /* AL_STOPPED */);
695
+ AL.setSourceState(src, 0x1014 /* AL_STOPPED */);
711
696
  },
712
697
 
713
698
  alSourcePause__deps: ['setSourceState'],
@@ -716,7 +701,6 @@ var LibraryOpenAL = {
716
701
  #if OPENAL_DEBUG
717
702
  console.error("alSourcePause called without a valid context");
718
703
  #endif
719
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
720
704
  return;
721
705
  }
722
706
  var src = AL.currentContext.src[source - 1];
@@ -727,7 +711,7 @@ var LibraryOpenAL = {
727
711
  AL.currentContext.err = 0xA001 /* AL_INVALID_NAME */;
728
712
  return;
729
713
  }
730
- _setSourceState(src, 0x1013 /* AL_PAUSED */);
714
+ AL.setSourceState(src, 0x1013 /* AL_PAUSED */);
731
715
  },
732
716
 
733
717
  alGetSourcei__deps: ['updateSource'],
@@ -736,7 +720,6 @@ var LibraryOpenAL = {
736
720
  #if OPENAL_DEBUG
737
721
  console.error("alGetSourcei called without a valid context");
738
722
  #endif
739
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
740
723
  return;
741
724
  }
742
725
  var src = AL.currentContext.src[source - 1];
@@ -754,7 +737,7 @@ var LibraryOpenAL = {
754
737
  // so we also forcefully update the source when alGetSourcei is queried
755
738
  // to aid in the common scenario of application calling alGetSourcei(AL_BUFFERS_PROCESSED)
756
739
  // to recycle buffers.
757
- _updateSource(src);
740
+ AL.updateSource(src);
758
741
 
759
742
  switch (param) {
760
743
  case 0x202 /* AL_SOURCE_RELATIVE */:
@@ -800,7 +783,6 @@ var LibraryOpenAL = {
800
783
  #if OPENAL_DEBUG
801
784
  console.error("alGetSourcef called without a valid context");
802
785
  #endif
803
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
804
786
  return;
805
787
  }
806
788
  var src = AL.currentContext.src[source - 1];
@@ -861,7 +843,6 @@ var LibraryOpenAL = {
861
843
  #if OPENAL_DEBUG
862
844
  console.error("alListenerfv called without a valid context");
863
845
  #endif
864
- AL.currentContext.err = 0xA004 /* AL_INVALID_OPERATION */;
865
846
  return;
866
847
  }
867
848
  switch (param) {
@@ -68,6 +68,9 @@ mergeInto(LibraryManager.library, {
68
68
  }
69
69
  return f;
70
70
  },
71
+ extname: function(path) {
72
+ return PATH.splitPath(path)[3];
73
+ },
71
74
  join: function() {
72
75
  var paths = Array.prototype.slice.call(arguments, 0);
73
76
  return PATH.normalize(paths.filter(function(p, index) {