webruby 0.1.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/driver/driver.c +12 -0
- data/lib/webruby/config.rb +3 -3
- data/lib/webruby/environment.rb +1 -0
- data/lib/webruby/rake/files.rake +22 -22
- data/lib/webruby/rake/general.rake +0 -1
- data/lib/webruby/utility.rb +2 -0
- data/modules/emscripten/AUTHORS +12 -1
- data/modules/emscripten/cmake/Platform/Emscripten.cmake +152 -15
- data/modules/emscripten/em++ +2 -0
- data/modules/emscripten/em++.bat +1 -1
- data/modules/emscripten/em-config.bat +1 -1
- data/modules/emscripten/emar.bat +1 -1
- data/modules/emscripten/emcc +233 -95
- data/modules/emscripten/emcc.bat +1 -1
- data/modules/emscripten/emconfigure.bat +1 -1
- data/modules/emscripten/emmake.bat +1 -1
- data/modules/emscripten/emranlib.bat +1 -1
- data/modules/emscripten/emscripten.py +221 -217
- data/modules/emscripten/package.json +7 -0
- data/modules/emscripten/src/analyzer.js +1437 -1385
- data/modules/emscripten/src/compiler.js +30 -6
- data/modules/emscripten/src/compiler_phase.html +33 -0
- data/modules/emscripten/src/fastLong.js +6 -6
- data/modules/emscripten/src/headless.js +47 -656
- data/modules/emscripten/src/headlessCanvas.js +618 -0
- data/modules/emscripten/src/intertyper.js +1038 -899
- data/modules/emscripten/src/jsifier.js +818 -714
- data/modules/emscripten/src/library.js +1794 -2968
- data/modules/emscripten/src/library_browser.js +81 -16
- data/modules/emscripten/src/library_egl.js +9 -3
- data/modules/emscripten/src/library_fs.js +1585 -0
- data/modules/emscripten/src/library_gl.js +445 -202
- data/modules/emscripten/src/library_glfw.js +4 -1
- data/modules/emscripten/src/library_glut.js +61 -13
- data/modules/emscripten/src/library_idbfs.js +216 -0
- data/modules/emscripten/src/library_memfs.js +279 -0
- data/modules/emscripten/src/library_nodefs.js +234 -0
- data/modules/emscripten/src/library_openal.js +131 -150
- data/modules/emscripten/src/library_path.js +3 -0
- data/modules/emscripten/src/library_sdl.js +499 -229
- data/modules/emscripten/src/library_sockfs.js +576 -0
- data/modules/emscripten/src/library_tty.js +146 -0
- data/modules/emscripten/src/modules.js +30 -35
- data/modules/emscripten/src/parseTools.js +356 -161
- data/modules/emscripten/src/postamble.js +76 -31
- data/modules/emscripten/src/preamble.js +271 -41
- data/modules/emscripten/src/proxyClient.js +82 -0
- data/modules/emscripten/src/proxyWorker.js +143 -0
- data/modules/emscripten/src/relooper/Relooper.cpp +60 -24
- data/modules/emscripten/src/relooper/Relooper.h +3 -2
- data/modules/emscripten/src/relooper/emscripten/glue.js +20 -10
- data/modules/emscripten/src/relooper/fuzzer.py +19 -10
- data/modules/emscripten/src/relooper/test.cpp +50 -50
- data/modules/emscripten/src/relooper/test.txt +147 -30
- data/modules/emscripten/src/relooper/test2.c +13 -13
- data/modules/emscripten/src/relooper/test2.txt +17 -3
- data/modules/emscripten/src/relooper/test3.c +7 -7
- data/modules/emscripten/src/relooper/test3.txt +36 -7
- data/modules/emscripten/src/relooper/test4.cpp +7 -7
- data/modules/emscripten/src/relooper/test4.txt +28 -7
- data/modules/emscripten/src/relooper/test5.cpp +6 -6
- data/modules/emscripten/src/relooper/test5.txt +34 -10
- data/modules/emscripten/src/relooper/test6.cpp +4 -4
- data/modules/emscripten/src/relooper/test6.txt +17 -3
- data/modules/emscripten/src/relooper/test_dead.cpp +2 -2
- data/modules/emscripten/src/relooper/test_debug.cpp +4 -4
- data/modules/emscripten/src/relooper/test_debug.txt +17 -3
- data/modules/emscripten/src/relooper/test_fuzz1.cpp +9 -9
- data/modules/emscripten/src/relooper/test_fuzz1.txt +45 -5
- data/modules/emscripten/src/relooper/test_fuzz2.cpp +4 -4
- data/modules/emscripten/src/relooper/test_fuzz2.txt +18 -1
- data/modules/emscripten/src/relooper/test_fuzz3.cpp +5 -5
- data/modules/emscripten/src/relooper/test_fuzz3.txt +16 -0
- data/modules/emscripten/src/relooper/test_fuzz4.cpp +5 -5
- data/modules/emscripten/src/relooper/test_fuzz4.txt +25 -3
- data/modules/emscripten/src/relooper/test_fuzz5.cpp +10 -10
- data/modules/emscripten/src/relooper/test_fuzz5.txt +49 -15
- data/modules/emscripten/src/relooper/test_fuzz6.cpp +92 -92
- data/modules/emscripten/src/relooper/test_fuzz6.txt +201 -18
- data/modules/emscripten/src/relooper/test_inf.cpp +184 -184
- data/modules/emscripten/src/relooper/test_inf.txt +1078 -332
- data/modules/emscripten/src/runtime.js +69 -45
- data/modules/emscripten/src/settings.js +48 -919
- data/modules/emscripten/src/shell.html +1 -1
- data/modules/emscripten/src/shell.js +14 -8
- data/modules/emscripten/src/shell_sharedlib.js +18 -1
- data/modules/emscripten/src/simd.js +958 -0
- data/modules/emscripten/src/struct_info.json +1045 -0
- data/modules/emscripten/src/utility.js +11 -0
- data/modules/emscripten/system/bin/sdl-config +13 -0
- data/modules/emscripten/system/include/compat/ctype.h +17 -0
- data/modules/emscripten/system/include/compat/malloc.h +48 -0
- data/modules/emscripten/system/include/compat/math.h +14 -0
- data/modules/emscripten/system/include/compat/netdb.h +22 -0
- data/modules/emscripten/system/include/compat/stdarg.h +16 -0
- data/modules/emscripten/system/include/compat/stdlib.h +16 -0
- data/modules/emscripten/system/include/compat/string.h +17 -0
- data/modules/emscripten/system/include/compat/sys/socketvar.h +14 -0
- data/modules/emscripten/system/include/compat/sys/stat.h +20 -0
- data/modules/emscripten/system/include/{libc → compat}/sys/timeb.h +3 -7
- data/modules/emscripten/system/include/compat/time.h +18 -0
- data/modules/emscripten/system/include/compat/unistd.h +16 -0
- data/modules/emscripten/system/include/compat/xlocale.h +19 -0
- data/modules/emscripten/system/include/emscripten/emscripten.h +48 -7
- data/modules/emscripten/system/include/emscripten/vector.h +6 -0
- data/modules/emscripten/system/include/libc/aio.h +69 -0
- data/modules/emscripten/system/include/libc/alloca.h +13 -13
- data/modules/emscripten/system/include/libc/ar.h +19 -63
- data/modules/emscripten/system/include/libc/arpa/ftp.h +35 -0
- data/modules/emscripten/system/include/libc/arpa/inet.h +36 -0
- data/modules/emscripten/system/include/libc/arpa/nameser.h +467 -0
- data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +2 -0
- data/modules/emscripten/system/include/libc/arpa/telnet.h +251 -0
- data/modules/emscripten/system/include/libc/arpa/tftp.h +31 -0
- data/modules/emscripten/system/include/libc/assert.h +9 -36
- data/modules/emscripten/system/include/libc/bits/alltypes.h +397 -0
- data/modules/emscripten/system/include/libc/bits/endian.h +1 -0
- data/modules/emscripten/system/include/libc/bits/errno.h +134 -0
- data/modules/emscripten/system/include/libc/bits/fcntl.h +38 -0
- data/modules/emscripten/system/include/libc/bits/fenv.h +34 -0
- data/modules/emscripten/system/include/libc/bits/float.h +17 -0
- data/modules/emscripten/system/include/libc/bits/io.h +0 -0
- data/modules/emscripten/system/include/libc/bits/ioctl.h +197 -0
- data/modules/emscripten/system/include/libc/bits/ipc.h +14 -0
- data/modules/emscripten/system/include/libc/bits/limits.h +8 -0
- data/modules/emscripten/system/include/libc/bits/mman.h +62 -0
- data/modules/emscripten/system/include/libc/bits/msg.h +16 -0
- data/modules/emscripten/system/include/libc/bits/posix.h +2 -0
- data/modules/emscripten/system/include/libc/bits/reg.h +19 -0
- data/modules/emscripten/system/include/libc/bits/setjmp.h +1 -0
- data/modules/emscripten/system/include/libc/bits/shm.h +18 -0
- data/modules/emscripten/system/include/libc/bits/signal.h +112 -0
- data/modules/emscripten/system/include/libc/bits/socket.h +17 -0
- data/modules/emscripten/system/include/libc/bits/stat.h +22 -0
- data/modules/emscripten/system/include/libc/bits/statfs.h +7 -0
- data/modules/emscripten/system/include/libc/bits/stdarg.h +4 -0
- data/modules/emscripten/system/include/libc/bits/stdint.h +20 -0
- data/modules/emscripten/system/include/libc/bits/syscall.h +696 -0
- data/modules/emscripten/system/include/libc/bits/termios.h +160 -0
- data/modules/emscripten/system/include/libc/bits/user.h +48 -0
- data/modules/emscripten/system/include/libc/byteswap.h +26 -0
- data/modules/emscripten/system/include/libc/complex.h +55 -54
- data/modules/emscripten/system/include/libc/cpio.h +29 -0
- data/modules/emscripten/system/include/libc/crypt.h +20 -0
- data/modules/emscripten/system/include/libc/ctype.h +58 -187
- data/modules/emscripten/system/include/libc/dirent.h +69 -6
- data/modules/emscripten/system/include/libc/dlfcn.h +42 -0
- data/modules/emscripten/system/include/libc/elf.h +2555 -0
- data/modules/emscripten/system/include/libc/endian.h +80 -1
- data/modules/emscripten/system/include/libc/err.h +25 -0
- data/modules/emscripten/system/include/libc/errno.h +23 -7
- data/modules/emscripten/system/include/libc/fcntl.h +175 -1
- data/modules/emscripten/system/include/libc/features.h +32 -0
- data/modules/emscripten/system/include/libc/fenv.h +28 -0
- data/modules/emscripten/system/include/libc/float.h +34 -0
- data/modules/emscripten/system/include/libc/fnmatch.h +24 -50
- data/modules/emscripten/system/include/libc/ftw.h +42 -0
- data/modules/emscripten/system/include/libc/getopt.h +22 -187
- data/modules/emscripten/system/include/libc/glob.h +42 -83
- data/modules/emscripten/system/include/libc/grp.h +37 -79
- data/modules/emscripten/system/include/libc/iconv.h +18 -56
- data/modules/emscripten/system/include/libc/ifaddrs.h +24 -53
- data/modules/emscripten/system/include/libc/inttypes.h +208 -271
- data/modules/emscripten/system/include/libc/iso646.h +5 -28
- data/modules/emscripten/system/include/libc/langinfo.h +88 -316
- data/modules/emscripten/system/include/libc/lastlog.h +1 -0
- data/modules/emscripten/system/include/libc/libgen.h +5 -13
- data/modules/emscripten/system/include/libc/libintl.h +25 -0
- data/modules/emscripten/system/include/libc/limits.h +140 -149
- data/modules/emscripten/system/include/libc/link.h +54 -0
- data/modules/emscripten/system/include/libc/locale.h +72 -70
- data/modules/emscripten/system/include/libc/malloc.h +0 -169
- data/modules/emscripten/system/include/libc/math.h +393 -573
- data/modules/emscripten/system/include/libc/memory.h +1 -0
- data/modules/emscripten/system/include/libc/mntent.h +44 -0
- data/modules/emscripten/system/include/libc/monetary.h +23 -0
- data/modules/emscripten/system/include/libc/mqueue.h +36 -0
- data/modules/emscripten/system/include/libc/net/ethernet.h +55 -0
- data/modules/emscripten/system/include/libc/net/if.h +135 -0
- data/modules/emscripten/system/include/libc/net/if_arp.h +133 -0
- data/modules/emscripten/system/include/libc/net/route.h +124 -0
- data/modules/emscripten/system/include/libc/netdb.h +161 -0
- data/modules/emscripten/system/include/libc/netinet/ether.h +14 -0
- data/modules/emscripten/system/include/libc/netinet/icmp6.h +305 -0
- data/modules/emscripten/system/include/libc/netinet/if_ether.h +126 -0
- data/modules/emscripten/system/include/libc/netinet/in.h +336 -0
- data/modules/emscripten/system/include/libc/netinet/in_systm.h +9 -0
- data/modules/emscripten/system/include/libc/netinet/ip.h +186 -0
- data/modules/emscripten/system/include/libc/netinet/ip6.h +142 -0
- data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +192 -0
- data/modules/emscripten/system/include/libc/netinet/tcp.h +71 -0
- data/modules/emscripten/system/include/libc/netinet/udp.h +35 -0
- data/modules/emscripten/system/include/libc/netpacket/packet.h +44 -0
- data/modules/emscripten/system/include/libc/nl_types.h +22 -0
- data/modules/emscripten/system/include/libc/paths.h +30 -5
- data/modules/emscripten/system/include/libc/poll.h +46 -0
- data/modules/emscripten/system/include/libc/pthread.h +191 -331
- data/modules/emscripten/system/include/libc/pty.h +18 -0
- data/modules/emscripten/system/include/libc/pwd.h +33 -62
- data/modules/emscripten/system/include/libc/readme.txt +2 -2
- data/modules/emscripten/system/include/libc/regex.h +53 -93
- data/modules/emscripten/system/include/libc/resolv.h +144 -0
- data/modules/emscripten/system/include/libc/sched.h +124 -89
- data/modules/emscripten/system/include/libc/search.h +40 -48
- data/modules/emscripten/system/include/libc/semaphore.h +35 -0
- data/modules/emscripten/system/include/libc/setjmp.h +35 -13
- data/modules/emscripten/system/include/libc/shadow.h +44 -0
- data/modules/emscripten/system/include/libc/signal.h +245 -20
- data/modules/emscripten/system/include/libc/spawn.h +74 -0
- data/modules/emscripten/system/include/libc/stdalign.h +15 -0
- data/modules/emscripten/system/include/libc/stdarg.h +18 -43
- data/modules/emscripten/system/include/libc/stdbool.h +14 -0
- data/modules/emscripten/system/include/libc/stddef.h +12 -58
- data/modules/emscripten/system/include/libc/stdint.h +82 -458
- data/modules/emscripten/system/include/libc/stdio.h +184 -679
- data/modules/emscripten/system/include/libc/stdio_ext.h +34 -0
- data/modules/emscripten/system/include/libc/stdlib.h +146 -205
- data/modules/emscripten/system/include/libc/stdnoreturn.h +5 -0
- data/modules/emscripten/system/include/libc/string.h +86 -89
- data/modules/emscripten/system/include/libc/strings.h +27 -27
- data/modules/emscripten/system/include/libc/stropts.h +139 -0
- data/modules/emscripten/system/include/libc/sys/acct.h +75 -0
- data/modules/emscripten/system/include/libc/sys/cachectl.h +22 -0
- data/modules/emscripten/system/include/libc/sys/dir.h +0 -8
- data/modules/emscripten/system/include/libc/sys/epoll.h +67 -0
- data/modules/emscripten/system/include/libc/sys/errno.h +2 -190
- data/modules/emscripten/system/include/libc/sys/eventfd.h +26 -0
- data/modules/emscripten/system/include/libc/sys/fcntl.h +2 -4
- data/modules/emscripten/system/include/libc/sys/file.h +20 -1
- data/modules/emscripten/system/include/libc/sys/fsuid.h +20 -0
- data/modules/emscripten/system/include/libc/sys/inotify.h +57 -0
- data/modules/emscripten/system/include/libc/sys/io.h +17 -0
- data/modules/emscripten/system/include/libc/sys/ioctl.h +14 -0
- data/modules/emscripten/system/include/libc/sys/ipc.h +42 -0
- data/modules/emscripten/system/include/{sys/sysctl.h → libc/sys/klog.h} +4 -4
- data/modules/emscripten/system/include/libc/sys/mman.h +55 -0
- data/modules/emscripten/system/include/libc/sys/mount.h +72 -0
- data/modules/emscripten/system/include/libc/sys/msg.h +52 -0
- data/modules/emscripten/system/include/libc/sys/mtio.h +188 -0
- data/modules/emscripten/system/include/libc/sys/param.h +29 -19
- data/modules/emscripten/system/include/libc/sys/personality.h +46 -0
- data/modules/emscripten/system/include/libc/sys/poll.h +2 -0
- data/modules/emscripten/system/include/libc/sys/prctl.h +101 -0
- data/modules/emscripten/system/include/libc/sys/procfs.h +65 -0
- data/modules/emscripten/system/include/libc/sys/ptrace.h +96 -0
- data/modules/emscripten/system/include/libc/sys/reboot.h +20 -0
- data/modules/emscripten/system/include/libc/sys/reg.h +9 -0
- data/modules/emscripten/system/include/libc/sys/resource.h +89 -45
- data/modules/emscripten/system/include/libc/sys/select.h +42 -0
- data/modules/emscripten/system/include/libc/sys/sem.h +82 -0
- data/modules/emscripten/system/include/libc/sys/sendfile.h +22 -0
- data/modules/emscripten/system/include/libc/sys/shm.h +61 -0
- data/modules/emscripten/system/include/libc/sys/signal.h +1 -315
- data/modules/emscripten/system/include/libc/sys/signalfd.h +44 -0
- data/modules/emscripten/system/include/libc/sys/socket.h +299 -0
- data/modules/emscripten/system/include/libc/sys/stat.h +95 -204
- data/modules/emscripten/system/include/libc/sys/statfs.h +32 -0
- data/modules/emscripten/system/include/libc/sys/statvfs.h +57 -0
- data/modules/emscripten/system/include/libc/sys/stropts.h +1 -0
- data/modules/emscripten/system/include/libc/sys/swap.h +21 -0
- data/modules/emscripten/system/include/libc/sys/syscall.h +6 -0
- data/modules/emscripten/system/include/libc/sys/sysctl.h +17 -0
- data/modules/emscripten/system/include/libc/sys/sysinfo.h +36 -0
- data/modules/emscripten/system/include/libc/sys/syslog.h +1 -0
- data/modules/emscripten/system/include/libc/sys/sysmacros.h +15 -0
- data/modules/emscripten/system/include/libc/sys/termios.h +2 -280
- data/modules/emscripten/system/include/libc/sys/time.h +40 -68
- data/modules/emscripten/system/include/libc/sys/timerfd.h +24 -0
- data/modules/emscripten/system/include/libc/sys/times.h +14 -16
- data/modules/emscripten/system/include/libc/sys/timex.h +98 -0
- data/modules/emscripten/system/include/libc/sys/ttydefaults.h +34 -92
- data/modules/emscripten/system/include/libc/sys/types.h +87 -481
- data/modules/emscripten/system/include/libc/sys/ucontext.h +1 -0
- data/modules/emscripten/system/include/libc/sys/uio.h +48 -0
- data/modules/emscripten/system/include/libc/sys/un.h +32 -0
- data/modules/emscripten/system/include/libc/sys/user.h +16 -0
- data/modules/emscripten/system/include/libc/sys/utsname.h +30 -0
- data/modules/emscripten/system/include/libc/sys/vfs.h +1 -0
- data/modules/emscripten/system/include/libc/sys/wait.h +41 -26
- data/modules/emscripten/system/include/libc/sys/xattr.h +30 -0
- data/modules/emscripten/system/include/libc/syscall.h +1 -0
- data/modules/emscripten/system/include/libc/sysexits.h +21 -0
- data/modules/emscripten/system/include/libc/syslog.h +104 -0
- data/modules/emscripten/system/include/libc/tar.h +27 -33
- data/modules/emscripten/system/include/libc/termios.h +40 -1
- data/modules/emscripten/system/include/libc/tgmath.h +270 -0
- data/modules/emscripten/system/include/libc/time.h +96 -237
- data/modules/emscripten/system/include/libc/ucontext.h +25 -0
- data/modules/emscripten/system/include/libc/ulimit.h +17 -0
- data/modules/emscripten/system/include/libc/unistd.h +517 -4
- data/modules/emscripten/system/include/libc/utime.h +15 -3
- data/modules/emscripten/system/include/libc/utmp.h +40 -1
- data/modules/emscripten/system/include/libc/utmpx.h +58 -0
- data/modules/emscripten/system/include/libc/values.h +39 -0
- data/modules/emscripten/system/include/libc/wchar.h +164 -175
- data/modules/emscripten/system/include/libc/wctype.h +67 -37
- data/modules/emscripten/system/include/libc/wordexp.h +31 -42
- data/modules/emscripten/system/include/libcxx/__locale +6 -6
- data/modules/emscripten/system/include/libcxx/locale +1 -1
- data/modules/emscripten/system/lib/libc/musl/readme.txt +9 -1
- data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +5 -0
- data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +92 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +1085 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +238 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +1836 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +390 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +454 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +550 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +640 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +39 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +101 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +18 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +16 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +21 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +13 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +14 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +361 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +53 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +7 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +13 -0
- data/modules/emscripten/system/lib/libcextra.symbols +44 -0
- data/modules/emscripten/system/lib/libcxx/exception.cpp +3 -3
- data/modules/emscripten/system/lib/libcxx/locale.cpp +12 -12
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +1 -1
- data/modules/emscripten/tools/asm_module.py +2 -0
- data/modules/emscripten/tools/autodebugger.py +3 -1
- data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -4835
- data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -6495
- data/modules/emscripten/tools/file_packager.py +53 -56
- data/modules/emscripten/tools/find_bigfuncs.py +2 -2
- data/modules/emscripten/tools/find_bigvars.py +24 -0
- data/modules/emscripten/tools/gen_struct_info.py +509 -0
- data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
- data/modules/emscripten/tools/js-optimizer.js +177 -86
- data/modules/emscripten/tools/js_optimizer.py +54 -19
- data/modules/emscripten/tools/js_optimizer.pyc +0 -0
- data/modules/emscripten/tools/jsrun.py +17 -7
- data/modules/emscripten/tools/jsrun.pyc +0 -0
- data/modules/emscripten/tools/response_file.py +2 -2
- data/modules/emscripten/tools/response_file.pyc +0 -0
- data/modules/emscripten/tools/shared.py +257 -123
- data/modules/emscripten/tools/shared.pyc +0 -0
- data/modules/emscripten/tools/source-maps/sourcemapper.js +37 -6
- data/modules/emscripten/tools/tempfiles.py +1 -0
- data/modules/emscripten/tools/tempfiles.pyc +0 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +2 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +8 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +412 -169
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +88 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +311 -265
- data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -20
- data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -21
- data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +2 -2
- data/modules/emscripten/tools/test-js-optimizer-regs-output.js +8 -8
- data/modules/emscripten/tools/test-js-optimizer-regs.js +1 -1
- data/modules/emscripten/tools/validate_asmjs.py +82 -0
- data/modules/mruby/Rakefile +2 -2
- data/modules/mruby/include/mruby/class.h +2 -2
- data/modules/mruby/include/mruby/compile.h +12 -4
- data/modules/mruby/include/mruby/data.h +8 -3
- data/modules/mruby/include/mruby/debug.h +65 -0
- data/modules/mruby/include/mruby/dump.h +10 -2
- data/modules/mruby/include/mruby/irep.h +1 -0
- data/modules/mruby/include/mruby/string.h +2 -1
- data/modules/mruby/include/mruby/value.h +20 -13
- data/modules/mruby/include/mruby/variable.h +1 -0
- data/modules/mruby/include/mruby.h +5 -6
- data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +6 -4
- data/modules/mruby/mrbgems/mruby-math/src/math.c +4 -0
- data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
- data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +1 -1
- data/modules/mruby/mrbgems/mruby-random/src/random.c +1 -4
- data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +25 -16
- data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +4 -0
- data/modules/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
- data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +51 -0
- data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +22 -0
- data/modules/mruby/mrbgems/mruby-time/src/time.c +38 -60
- data/modules/mruby/mrblib/class.rb +2 -2
- data/modules/mruby/src/backtrace.c +96 -23
- data/modules/mruby/src/class.c +43 -41
- data/modules/mruby/src/codegen.c +52 -46
- data/modules/mruby/src/debug.c +214 -0
- data/modules/mruby/src/dump.c +245 -17
- data/modules/mruby/src/error.c +14 -6
- data/modules/mruby/src/etc.c +17 -10
- data/modules/mruby/src/gc.c +9 -9
- data/modules/mruby/src/kernel.c +1 -1
- data/modules/mruby/src/load.c +137 -1
- data/modules/mruby/src/object.c +1 -1
- data/modules/mruby/src/parse.y +162 -37
- data/modules/mruby/src/state.c +2 -0
- data/modules/mruby/src/string.c +28 -19
- data/modules/mruby/src/symbol.c +0 -1
- data/modules/mruby/src/variable.c +12 -15
- data/modules/mruby/src/vm.c +38 -22
- data/modules/mruby/tasks/mrbgem_spec.rake +6 -4
- data/modules/mruby/tasks/mrbgems_test.rake +9 -9
- data/modules/mruby/tasks/mruby_build_gem.rake +9 -0
- data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
- data/modules/mruby/test/driver.c +3 -3
- data/modules/mruby/test/t/array.rb +13 -0
- data/modules/mruby/test/t/class.rb +28 -0
- data/modules/mruby/test/t/exception.rb +10 -0
- data/modules/mruby/test/t/literals.rb +50 -0
- data/modules/mruby/test/t/module.rb +22 -0
- data/modules/mruby/test/t/proc.rb +37 -0
- data/modules/mruby/test/t/string.rb +20 -21
- data/modules/mruby/tools/mrbc/mrbc.c +2 -4
- data/scripts/gen_post.rb +1 -0
- data/scripts/gen_require.rb +107 -0
- data/templates/minimal/Rakefile +20 -0
- metadata +210 -88
- data/driver/main.c +0 -40
- data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +0 -24
- data/modules/emscripten/emlibtool +0 -11
- data/modules/emscripten/emlibtool.bat +0 -2
- data/modules/emscripten/src/framework.js +0 -257
- data/modules/emscripten/system/include/bsd/float.h +0 -91
- data/modules/emscripten/system/include/bsd/readme.txt +0 -2
- data/modules/emscripten/system/include/bsd/sys/mman.h +0 -180
- data/modules/emscripten/system/include/bsd/sys/utsname.h +0 -70
- data/modules/emscripten/system/include/dlfcn.h +0 -31
- data/modules/emscripten/system/include/err.h +0 -95
- data/modules/emscripten/system/include/features.h +0 -3
- data/modules/emscripten/system/include/libc/_ansi.h +0 -135
- data/modules/emscripten/system/include/libc/_syslist.h +0 -40
- data/modules/emscripten/system/include/libc/argz.h +0 -33
- data/modules/emscripten/system/include/libc/envlock.h +0 -15
- data/modules/emscripten/system/include/libc/envz.h +0 -16
- data/modules/emscripten/system/include/libc/fastmath.h +0 -13
- data/modules/emscripten/system/include/libc/ieeefp.h +0 -256
- data/modules/emscripten/system/include/libc/machine/_default_types.h +0 -121
- data/modules/emscripten/system/include/libc/machine/_types.h +0 -8
- data/modules/emscripten/system/include/libc/machine/ansi.h +0 -1
- data/modules/emscripten/system/include/libc/machine/endian.h +0 -31
- data/modules/emscripten/system/include/libc/machine/fastmath.h +0 -100
- data/modules/emscripten/system/include/libc/machine/ieeefp.h +0 -376
- data/modules/emscripten/system/include/libc/machine/malloc.h +0 -8
- data/modules/emscripten/system/include/libc/machine/param.h +0 -1
- data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +0 -43
- data/modules/emscripten/system/include/libc/machine/setjmp.h +0 -361
- data/modules/emscripten/system/include/libc/machine/stdlib.h +0 -8
- data/modules/emscripten/system/include/libc/machine/termios.h +0 -1
- data/modules/emscripten/system/include/libc/machine/time.h +0 -19
- data/modules/emscripten/system/include/libc/machine/types.h +0 -30
- data/modules/emscripten/system/include/libc/newlib.h +0 -2
- data/modules/emscripten/system/include/libc/process.h +0 -44
- data/modules/emscripten/system/include/libc/reent.h +0 -183
- data/modules/emscripten/system/include/libc/regdef.h +0 -7
- data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +0 -223
- data/modules/emscripten/system/include/libc/sys/_types.h +0 -93
- data/modules/emscripten/system/include/libc/sys/cdefs.h +0 -123
- data/modules/emscripten/system/include/libc/sys/config.h +0 -255
- data/modules/emscripten/system/include/libc/sys/custom_file.h +0 -2
- data/modules/emscripten/system/include/libc/sys/dirent.h +0 -58
- data/modules/emscripten/system/include/libc/sys/features.h +0 -212
- data/modules/emscripten/system/include/libc/sys/iconvnls.h +0 -77
- data/modules/emscripten/system/include/libc/sys/lock.h +0 -24
- data/modules/emscripten/system/include/libc/sys/queue.h +0 -471
- data/modules/emscripten/system/include/libc/sys/reent.h +0 -843
- data/modules/emscripten/system/include/libc/sys/sched.h +0 -67
- data/modules/emscripten/system/include/libc/sys/stdio.h +0 -27
- data/modules/emscripten/system/include/libc/sys/string.h +0 -2
- data/modules/emscripten/system/include/libc/sys/syslimits.h +0 -65
- data/modules/emscripten/system/include/libc/sys/unistd.h +0 -514
- data/modules/emscripten/system/include/libc/sys/utime.h +0 -26
- data/modules/emscripten/system/include/libc/unctrl.h +0 -46
- data/modules/emscripten/system/include/memory.h +0 -10
- data/modules/emscripten/system/include/mntent.h +0 -23
- data/modules/emscripten/system/include/net/arpa/inet.h +0 -32
- data/modules/emscripten/system/include/net/arpa/nameser.h +0 -535
- data/modules/emscripten/system/include/net/arpa/nameser_compat.h +0 -187
- data/modules/emscripten/system/include/net/if.h +0 -106
- data/modules/emscripten/system/include/net/netinet/in.h +0 -230
- data/modules/emscripten/system/include/net/netinet/tcp.h +0 -246
- data/modules/emscripten/system/include/net/resolv.h +0 -389
- data/modules/emscripten/system/include/netdb.h +0 -130
- data/modules/emscripten/system/include/nl_types.h +0 -19
- data/modules/emscripten/system/include/poll.h +0 -3
- data/modules/emscripten/system/include/pty.h +0 -6
- data/modules/emscripten/system/include/semaphore.h +0 -31
- data/modules/emscripten/system/include/spawn.h +0 -105
- data/modules/emscripten/system/include/stdbool.h +0 -16
- data/modules/emscripten/system/include/sys/bitypes.h +0 -3
- data/modules/emscripten/system/include/sys/io.h +0 -14
- data/modules/emscripten/system/include/sys/ioctl.h +0 -78
- data/modules/emscripten/system/include/sys/poll.h +0 -31
- data/modules/emscripten/system/include/sys/select.h +0 -16
- data/modules/emscripten/system/include/sys/sendfile.h +0 -16
- data/modules/emscripten/system/include/sys/socket.h +0 -247
- data/modules/emscripten/system/include/sys/socketvar.h +0 -3
- data/modules/emscripten/system/include/sys/statvfs.h +0 -32
- data/modules/emscripten/system/include/sys/uio.h +0 -22
- data/modules/emscripten/system/include/sys/un.h +0 -66
- data/modules/emscripten/system/include/sysexits.h +0 -108
- 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() {
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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) {
|