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,958 @@
1
+ /*
2
+ Copyright (C) 2013
3
+
4
+ This software is provided 'as-is', without any express or implied
5
+ warranty. In no event will the authors be held liable for any damages
6
+ arising from the use of this software.
7
+
8
+ Permission is granted to anyone to use this software for any purpose,
9
+ including commercial applications, and to alter it and redistribute it
10
+ freely, subject to the following restrictions:
11
+
12
+ 1. The origin of this software must not be misrepresented; you must not
13
+ claim that you wrote the original software. If you use this software
14
+ in a product, an acknowledgment in the product documentation would be
15
+ appreciated but is not required.
16
+ 2. Altered source versions must be plainly marked as such, and must not be
17
+ misrepresented as being the original software.
18
+ 3. This notice may not be removed or altered from any source distribution.
19
+
20
+ https://github.com/johnmccutchan/ecmascript_simd/blob/master/src/ecmascript_simd.js
21
+ */
22
+
23
+ /**
24
+ * Construct a new instance of a float32x4 number.
25
+ * @param {double} value used for x lane.
26
+ * @param {double} value used for y lane.
27
+ * @param {double} value used for z lane.
28
+ * @param {double} value used for w lane.
29
+ * @constructor
30
+ */
31
+ function float32x4(x, y, z, w) {
32
+ if (!(this instanceof float32x4)) {
33
+ return new float32x4(x, y, z, w);
34
+ }
35
+ this.storage_ = new Float32Array(4);
36
+ this.storage_[0] = x;
37
+ this.storage_[1] = y;
38
+ this.storage_[2] = z;
39
+ this.storage_[3] = w;
40
+ }
41
+
42
+ /**
43
+ * Construct a new instance of a float32x4 number with 0.0 in all lanes.
44
+ * @constructor
45
+ */
46
+ float32x4.zero = function() {
47
+ return float32x4(0.0, 0.0, 0.0, 0.0);
48
+ }
49
+
50
+ /**
51
+ * Construct a new instance of a float32x4 number with the same value
52
+ * in all lanes.
53
+ * @param {double} value used for all lanes.
54
+ * @constructor
55
+ */
56
+ float32x4.splat = function(s) {
57
+ return float32x4(s, s, s, s);
58
+ }
59
+
60
+ Object.defineProperty(float32x4.prototype, 'x', {
61
+ get: function() { return this.storage_[0]; }
62
+ });
63
+
64
+ Object.defineProperty(float32x4.prototype, 'y', {
65
+ get: function() { return this.storage_[1]; }
66
+ });
67
+
68
+ Object.defineProperty(float32x4.prototype, 'z', {
69
+ get: function() { return this.storage_[2]; }
70
+ });
71
+
72
+ Object.defineProperty(float32x4.prototype, 'w',
73
+ { get: function() { return this.storage_[3]; }
74
+ });
75
+
76
+ /**
77
+ * Extract the sign bit from each lane return them in the first 4 bits.
78
+ */
79
+ Object.defineProperty(float32x4.prototype, 'signMask', {
80
+ get: function() {
81
+ var mx = this.x < 0.0 ? 1 : 0;
82
+ var my = this.y < 0.0 ? 1 : 0;
83
+ var mz = this.z < 0.0 ? 1 : 0;
84
+ var mw = this.w < 0.0 ? 1 : 0;
85
+ return mx | my << 1 | mz << 2 | mw << 3;
86
+ }
87
+ });
88
+
89
+ /**
90
+ * Construct a new instance of a uint32x4 number.
91
+ * @param {integer} 32-bit unsigned value used for x lane.
92
+ * @param {integer} 32-bit unsigned value used for y lane.
93
+ * @param {integer} 32-bit unsigned value used for z lane.
94
+ * @param {integer} 32-bit unsigned value used for w lane.
95
+ * @constructor
96
+ */
97
+ function uint32x4(x, y, z, w) {
98
+ if (!(this instanceof uint32x4)) {
99
+ return new uint32x4(x, y, z, w);
100
+ }
101
+ this.storage_ = new Uint32Array(4);
102
+ this.storage_[0] = x;
103
+ this.storage_[1] = y;
104
+ this.storage_[2] = z;
105
+ this.storage_[3] = w;
106
+ }
107
+
108
+ /**
109
+ * Construct a new instance of a uint32x4 number with 0xFFFFFFFF or 0x0 in each
110
+ * lane, depending on the truth value in x, y, z, and w.
111
+ * @param {boolean} flag used for x lane.
112
+ * @param {boolean} flag used for y lane.
113
+ * @param {boolean} flag used for z lane.
114
+ * @param {boolean} flag used for w lane.
115
+ * @constructor
116
+ */
117
+ uint32x4.bool = function(x, y, z, w) {
118
+ return uint32x4(x ? 0xFFFFFFFF : 0x0,
119
+ y ? 0xFFFFFFFF : 0x0,
120
+ z ? 0xFFFFFFFF : 0x0,
121
+ w ? 0xFFFFFFFF : 0x0);
122
+ }
123
+
124
+ /**
125
+ * Construct a new instance of a uint32x4 number with the same value
126
+ * in all lanes.
127
+ * @param {integer} value used for all lanes.
128
+ * @constructor
129
+ */
130
+ uint32x4.splat = function(s) {
131
+ return uint32x4(s, s, s, s);
132
+ }
133
+
134
+ Object.defineProperty(uint32x4.prototype, 'x', {
135
+ get: function() { return this.storage_[0]; }
136
+ });
137
+
138
+ Object.defineProperty(uint32x4.prototype, 'y', {
139
+ get: function() { return this.storage_[1]; }
140
+ });
141
+
142
+ Object.defineProperty(uint32x4.prototype, 'z', {
143
+ get: function() { return this.storage_[2]; }
144
+ });
145
+
146
+ Object.defineProperty(uint32x4.prototype, 'w',
147
+ { get: function() { return this.storage_[3]; }
148
+ });
149
+
150
+ Object.defineProperty(uint32x4.prototype, 'flagX', {
151
+ get: function() { return this.storage_[0] != 0x0; }
152
+ });
153
+
154
+ Object.defineProperty(uint32x4.prototype, 'flagY', {
155
+ get: function() { return this.storage_[1] != 0x0; }
156
+ });
157
+
158
+ Object.defineProperty(uint32x4.prototype, 'flagZ', {
159
+ get: function() { return this.storage_[2] != 0x0; }
160
+ });
161
+
162
+ Object.defineProperty(uint32x4.prototype, 'flagW',
163
+ { get: function() { return this.storage_[3] != 0x0; }
164
+ });
165
+
166
+ /**
167
+ * Extract the sign bit from each lane return them in the first 4 bits.
168
+ */
169
+ Object.defineProperty(uint32x4.prototype, 'signMask', {
170
+ get: function() {
171
+ var mx = (this.storage_[0] & 0x80000000) >>> 31;
172
+ var my = (this.storage_[1] & 0x80000000) >>> 31;
173
+ var mz = (this.storage_[2] & 0x80000000) >>> 31;
174
+ var mw = (this.storage_[3] & 0x80000000) >>> 31;
175
+ return mx | my << 1 | mz << 2 | mw << 3;
176
+ }
177
+ });
178
+
179
+ function isNumber(o) {
180
+ return typeof o == "number" || (typeof o == "object" && o.constructor === Number);
181
+ }
182
+
183
+ function isTypedArray(o) {
184
+ return (o instanceof Int8Array) ||
185
+ (o instanceof Uint8Array) ||
186
+ (o instanceof Uint8ClampedArray) ||
187
+ (o instanceof Int16Array) ||
188
+ (o instanceof Uint16Array) ||
189
+ (o instanceof Int32Array) ||
190
+ (o instanceof Uint32Array) ||
191
+ (o instanceof Float32Array) ||
192
+ (o instanceof Float64Array) ||
193
+ (o instanceof Float32x4Array);
194
+ }
195
+
196
+ function isArrayBuffer(o) {
197
+ return (o instanceof ArrayBuffer);
198
+ }
199
+
200
+ function Float32x4Array(a, b, c) {
201
+ if (isNumber(a)) {
202
+ this.storage_ = new Float32Array(a*4);
203
+ this.length_ = a;
204
+ this.byteOffset_ = 0;
205
+ return;
206
+ } else if (isTypedArray(a)) {
207
+ if (!(a instanceof Float32x4Array)) {
208
+ throw "Copying typed array of non-Float32x4Array is unimplemented.";
209
+ }
210
+ this.storage_ = new Float32Array(a.length * 4);
211
+ this.length_ = a.length;
212
+ this.byteOffset_ = 0;
213
+ // Copy floats.
214
+ for (var i = 0; i < a.length*4; i++) {
215
+ this.storage_[i] = a.storage_[i];
216
+ }
217
+ } else if (isArrayBuffer(a)) {
218
+ if ((b != undefined) && (b % Float32x4Array.BYTES_PER_ELEMENT) != 0) {
219
+ throw "byteOffset must be a multiple of 16.";
220
+ }
221
+ if (c != undefined) {
222
+ c *= 4;
223
+ this.storage_ = new Float32Array(a, b, c);
224
+ }
225
+ else {
226
+ // Note: new Float32Array(a, b) is NOT equivalent to new Float32Array(a, b, undefined)
227
+ this.storage_ = new Float32Array(a, b);
228
+ }
229
+ this.length_ = this.storage_.length / 4;
230
+ this.byteOffset_ = b != undefined ? b : 0;
231
+ } else {
232
+ throw "Unknown type of first argument.";
233
+ }
234
+ }
235
+
236
+ Object.defineProperty(Float32x4Array.prototype, 'length',
237
+ { get: function() { return this.length_; }
238
+ });
239
+
240
+ Object.defineProperty(Float32x4Array.prototype, 'byteLength',
241
+ { get: function() { return this.length_ * Float32x4Array.BYTES_PER_ELEMENT; }
242
+ });
243
+
244
+ Object.defineProperty(Float32x4Array, 'BYTES_PER_ELEMENT',
245
+ { get: function() { return 16; }
246
+ });
247
+
248
+ Object.defineProperty(Float32x4Array.prototype, 'BYTES_PER_ELEMENT',
249
+ { get: function() { return 16; }
250
+ });
251
+
252
+ Object.defineProperty(Float32x4Array.prototype, 'byteOffset',
253
+ { get: function() { return this.byteOffset_; }
254
+ });
255
+
256
+ Object.defineProperty(Float32x4Array.prototype, 'buffer',
257
+ { get: function() { return this.storage_.buffer; }
258
+ });
259
+
260
+ Float32x4Array.prototype.getAt = function(i) {
261
+ if (i < 0) {
262
+ throw "Index must be >= 0.";
263
+ }
264
+ if (i >= this.length) {
265
+ throw "Index out of bounds.";
266
+ }
267
+ var x = this.storage_[i*4+0];
268
+ var y = this.storage_[i*4+1];
269
+ var z = this.storage_[i*4+2];
270
+ var w = this.storage_[i*4+3];
271
+ return float32x4(x, y, z, w);
272
+ }
273
+
274
+ Float32x4Array.prototype.setAt = function(i, v) {
275
+ if (i < 0) {
276
+ throw "Index must be >= 0.";
277
+ }
278
+ if (i >= this.length) {
279
+ throw "Index out of bounds.";
280
+ }
281
+ if (!(v instanceof float32x4)) {
282
+ throw "Value is not a float32x4.";
283
+ }
284
+ this.storage_[i*4+0] = v.x;
285
+ this.storage_[i*4+1] = v.y;
286
+ this.storage_[i*4+2] = v.z;
287
+ this.storage_[i*4+3] = v.w;
288
+ }
289
+
290
+ var SIMD = (function () {
291
+ return {
292
+ /**
293
+ * @return {float32x4} New instance of float32x4 with absolute values of
294
+ * t.
295
+ */
296
+ abs: function(t) {
297
+ return new float32x4(Math.abs(t.x), Math.abs(t.y), Math.abs(t.z),
298
+ Math.abs(t.w));
299
+ },
300
+ /**
301
+ * @return {float32x4} New instance of float32x4 with negated values of
302
+ * t.
303
+ */
304
+ neg: function(t) {
305
+ return new float32x4(-t.x, -t.y, -t.z, -t.w);
306
+ },
307
+ /**
308
+ * @return {float32x4} New instance of float32x4 with a + b.
309
+ */
310
+ add: function(a, b) {
311
+ return new float32x4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
312
+ },
313
+ /**
314
+ * @return {float32x4} New instance of float32x4 with a - b.
315
+ */
316
+ sub: function(a, b) {
317
+ return new float32x4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
318
+ },
319
+ /**
320
+ * @return {float32x4} New instance of float32x4 with a * b.
321
+ */
322
+ mul: function(a, b) {
323
+ return new float32x4(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
324
+ },
325
+ /**
326
+ * @return {float32x4} New instance of float32x4 with a / b.
327
+ */
328
+ div: function(a, b) {
329
+ return new float32x4(a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w);
330
+ },
331
+ /**
332
+ * @return {float32x4} New instance of float32x4 with t's values clamped
333
+ * between lowerLimit and upperLimit.
334
+ */
335
+ clamp: function(t, lowerLimit, upperLimit) {
336
+ var cx = t.x < lowerLimit.x ? lowerLimit.x : t.x;
337
+ var cy = t.y < lowerLimit.y ? lowerLimit.y : t.y;
338
+ var cz = t.z < lowerLimit.z ? lowerLimit.z : t.z;
339
+ var cw = t.w < lowerLimit.w ? lowerLimit.w : t.w;
340
+ cx = cx > upperLimit.x ? upperLimit.x : cx;
341
+ cy = cy > upperLimit.y ? upperLimit.y : cy;
342
+ cz = cz > upperLimit.z ? upperLimit.z : cz;
343
+ cw = cw > upperLimit.w ? upperLimit.w : cw;
344
+ return new float32x4(cx, cy, cz, cw);
345
+ },
346
+ /**
347
+ * @return {float32x4} New instance of float32x4 with the minimum value of
348
+ * t and other.
349
+ */
350
+ min: function(t, other) {
351
+ var cx = t.x > other.x ? other.x : t.x;
352
+ var cy = t.y > other.y ? other.y : t.y;
353
+ var cz = t.z > other.z ? other.z : t.z;
354
+ var cw = t.w > other.w ? other.w : t.w;
355
+ return new float32x4(cx, cy, cz, cw);
356
+ },
357
+ /**
358
+ * @return {float32x4} New instance of float32x4 with the maximum value of
359
+ * t and other.
360
+ */
361
+ max: function(t, other) {
362
+ var cx = t.x < other.x ? other.x : t.x;
363
+ var cy = t.y < other.y ? other.y : t.y;
364
+ var cz = t.z < other.z ? other.z : t.z;
365
+ var cw = t.w < other.w ? other.w : t.w;
366
+ return new float32x4(cx, cy, cz, cw);
367
+ },
368
+ /**
369
+ * @return {float32x4} New instance of float32x4 with reciprocal value of
370
+ * t.
371
+ */
372
+ reciprocal: function(t) {
373
+ return new float32x4(1.0 / t.x, 1.0 / t.y, 1.0 / t.z, 1.0 / t.w);
374
+ },
375
+ /**
376
+ * @return {float32x4} New instance of float32x4 with square root of the
377
+ * reciprocal value of t.
378
+ */
379
+ reciprocalSqrt: function(t) {
380
+ return new float32x4(Math.sqrt(1.0 / t.x), Math.sqrt(1.0 / t.y),
381
+ Math.sqrt(1.0 / t.z), Math.sqrt(1.0 / t.w));
382
+ },
383
+ /**
384
+ * @return {float32x4} New instance of float32x4 with values of t
385
+ * scaled by s.
386
+ */
387
+ scale: function(t, s) {
388
+ return new float32x4(s * t.x, s * t.y, s * t.z, s * t.w);
389
+ },
390
+ /**
391
+ * @return {float32x4} New instance of float32x4 with square root of
392
+ * values of t.
393
+ */
394
+ sqrt: function(t) {
395
+ return new float32x4(Math.sqrt(t.x), Math.sqrt(t.y),
396
+ Math.sqrt(t.z), Math.sqrt(t.w));
397
+ },
398
+ /**
399
+ * @param {float32x4} t An instance of float32x4 to be shuffled.
400
+ * @param {integer} mask One of the 256 shuffle masks, for example, SIMD.XXXX.
401
+ * @return {float32x4} New instance of float32x4 with lanes shuffled.
402
+ */
403
+ shuffle: function(t, mask) {
404
+ var _x = (mask) & 0x3;
405
+ var _y = (mask >> 2) & 0x3;
406
+ var _z = (mask >> 4) & 0x3;
407
+ var _w = (mask >> 6) & 0x3;
408
+ return new float32x4(t.storage_[_x], t.storage_[_y], t.storage_[_z],
409
+ t.storage_[_w]);
410
+ },
411
+ /**
412
+ * @param {double} value used for x lane.
413
+ * @return {float32x4} New instance of float32x4 with the values in t and
414
+ * x replaced with {x}.
415
+ */
416
+ withX: function(t, x) {
417
+ return new float32x4(x, t.y, t.z, t.w);
418
+ },
419
+ /**
420
+ * @param {double} value used for y lane.
421
+ * @return {float32x4} New instance of float32x4 with the values in t and
422
+ * y replaced with {y}.
423
+ */
424
+ withY: function(t, y) {
425
+ return new float32x4(t.x, y, t.z, t.w);
426
+ },
427
+ /**
428
+ * @param {double} value used for z lane.
429
+ * @return {float32x4} New instance of float32x4 with the values in t and
430
+ * z replaced with {z}.
431
+ */
432
+ withZ: function(t, z) {
433
+ return new float32x4(t.x, t.y, z, t.w);
434
+ },
435
+ /**
436
+ * @param {double} value used for w lane.
437
+ * @return {float32x4} New instance of float32x4 with the values in t and
438
+ * w replaced with {w}.
439
+ */
440
+ withW: function(t, w) {
441
+ return new float32x4(t.x, t.y, t.z, w);
442
+ },
443
+ /**
444
+ * @param {float32x4} t An instance of a float32x4.
445
+ * @param {float32x4} other An instance of a float32x4.
446
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
447
+ * the result of t < other.
448
+ */
449
+ lessThan: function(t, other) {
450
+ var cx = t.x < other.x;
451
+ var cy = t.y < other.y;
452
+ var cz = t.z < other.z;
453
+ var cw = t.w < other.w;
454
+ return uint32x4.bool(cx, cy, cz, cw);
455
+ },
456
+ /**
457
+ * @param {float32x4} t An instance of a float32x4.
458
+ * @param {float32x4} other An instance of a float32x4.
459
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
460
+ * the result of t <= other.
461
+ */
462
+ lessThanOrEqual: function(t, other) {
463
+ var cx = t.x <= other.x;
464
+ var cy = t.y <= other.y;
465
+ var cz = t.z <= other.z;
466
+ var cw = t.w <= other.w;
467
+ return uint32x4.bool(cx, cy, cz, cw);
468
+ },
469
+ /**
470
+ * @param {float32x4} t An instance of a float32x4.
471
+ * @param {float32x4} other An instance of a float32x4.
472
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
473
+ * the result of t == other.
474
+ */
475
+ equal: function(t, other) {
476
+ var cx = t.x == other.x;
477
+ var cy = t.y == other.y;
478
+ var cz = t.z == other.z;
479
+ var cw = t.w == other.w;
480
+ return uint32x4.bool(cx, cy, cz, cw);
481
+ },
482
+ /**
483
+ * @param {float32x4} t An instance of a float32x4.
484
+ * @param {float32x4} other An instance of a float32x4.
485
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
486
+ * the result of t != other.
487
+ */
488
+ notEqual: function(t, other) {
489
+ var cx = t.x != other.x;
490
+ var cy = t.y != other.y;
491
+ var cz = t.z != other.z;
492
+ var cw = t.w != other.w;
493
+ return uint32x4.bool(cx, cy, cz, cw);
494
+ },
495
+ /**
496
+ * @param {float32x4} t An instance of a float32x4.
497
+ * @param {float32x4} other An instance of a float32x4.
498
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
499
+ * the result of t >= other.
500
+ */
501
+ greaterThanOrEqual: function(t, other) {
502
+ var cx = t.x >= other.x;
503
+ var cy = t.y >= other.y;
504
+ var cz = t.z >= other.z;
505
+ var cw = t.w >= other.w;
506
+ return uint32x4.bool(cx, cy, cz, cw);
507
+ },
508
+ /**
509
+ * @param {float32x4} t An instance of a float32x4.
510
+ * @param {float32x4} other An instance of a float32x4.
511
+ * @return {uint32x4} 0xFFFFFFFF or 0x0 in each lane depending on
512
+ * the result of t > other.
513
+ */
514
+ greaterThan: function(t, other) {
515
+ var cx = t.x > other.x;
516
+ var cy = t.y > other.y;
517
+ var cz = t.z > other.z;
518
+ var cw = t.w > other.w;
519
+ return uint32x4.bool(cx, cy, cz, cw);
520
+ },
521
+ /**
522
+ * @param {uint32x4} a An instance of a uint32x4.
523
+ * @param {uint32x4} b An instance of a uint32x4.
524
+ * @return {uint32x4} New instance of uint32x4 with values of a & b.
525
+ */
526
+ and: function(a, b) {
527
+ return new uint32x4(a.x & b.x, a.y & b.y, a.z & b.z, a.w & b.w);
528
+ },
529
+ /**
530
+ * @param {uint32x4} a An instance of a uint32x4.
531
+ * @param {uint32x4} b An instance of a uint32x4.
532
+ * @return {uint32x4} New instance of uint32x4 with values of a | b.
533
+ */
534
+ or: function(a, b) {
535
+ return new uint32x4(a.x | b.x, a.y | b.y, a.z | b.z, a.w | b.w);
536
+ },
537
+ /**
538
+ * @param {uint32x4} a An instance of a uint32x4.
539
+ * @param {uint32x4} b An instance of a uint32x4.
540
+ * @return {uint32x4} New instance of uint32x4 with values of a ^ b.
541
+ */
542
+ xor: function(a, b) {
543
+ return new uint32x4(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z, a.w ^ b.w);
544
+ },
545
+ /**
546
+ * @param {uint32x4} t An instance of a uint32x4.
547
+ * @return {uint32x4} New instance of uint32x4 with values of ~a
548
+ */
549
+ negu32: function(t) {
550
+ return new uint32x4(~t.x, ~t.y, ~t.z, ~t.w);
551
+ },
552
+ /**
553
+ * @param {uint32x4} a An instance of uint32x4.
554
+ * @param {uint32x4} b An instance of uint32x4.
555
+ * @return {uint32x4} New instance of uint32x4 with values of a + b.
556
+ */
557
+ addu32: function(a, b) {
558
+ return new uint32x4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
559
+ },
560
+ /**
561
+ * @param {uint32x4} a An instance of uint32x4.
562
+ * @param {uint32x4} b An instance of uint32x4.
563
+ * @return {uint32x4} New instance of uint32x4 with values of a - b.
564
+ */
565
+ subu32: function(a, b) {
566
+ return new uint32x4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
567
+ },
568
+ /**
569
+ * @param {uint32x4} a An instance of uint32x4.
570
+ * @param {uint32x4} b An instance of uint32x4.
571
+ * @return {uint32x4} New instance of uint32x4 with values of a * b.
572
+ */
573
+ mulu32: function(a, b) {
574
+ return new uint32x4(Math.imul(a.x, b.x), Math.imul(a.y, b.y),
575
+ Math.imul(a.z, b.z), Math.imul(a.w, b.w));
576
+ },
577
+ /**
578
+ * @param {float32x4}
579
+ */
580
+ select: function(t, trueValue, falseValue) {
581
+ var tv = SIMD.float32x4BitsToUint32x4(trueValue);
582
+ var fv = SIMD.float32x4BitsToUint32x4(falseValue);
583
+ var tr = SIMD.and(t, tv);
584
+ var fr = SIMD.and(SIMD.negu32(t), fv);
585
+ return SIMD.uint32x4BitsToFloat32x4(SIMD.or(tr, fr));
586
+ },
587
+ /**
588
+ * @param {uint32x4} t An instance of a uint32x4.
589
+ * @param {integer} 32-bit value used for x lane.
590
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
591
+ * x lane replaced with {x}.
592
+ */
593
+ withXu32: function(t, x) {
594
+ return new uint32x4(x, t.y, t.z, t.w);
595
+ },
596
+ /**
597
+ * param {uint32x4} t An instance of a uint32x4.
598
+ * @param {integer} 32-bit value used for y lane.
599
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
600
+ * y lane replaced with {y}.
601
+ */
602
+ withYu32: function(t, y) {
603
+ return new uint32x4(t.x, y, t.z, t.w);
604
+ },
605
+ /**
606
+ * @param {uint32x4} t An instance of a uint32x4.
607
+ * @param {integer} 32-bit value used for z lane.
608
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
609
+ * z lane replaced with {z}.
610
+ */
611
+ withZu32: function(t, z) {
612
+ return new uint32x4(t.x, t.y, z, t.w);
613
+ },
614
+ /**
615
+ * @param {integer} 32-bit value used for w lane.
616
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
617
+ * w lane replaced with {w}.
618
+ */
619
+ withWu32: function(t, w) {
620
+ return new uint32x4(t.x, t.y, t.z, w);
621
+ },
622
+ /**
623
+ * @param {uint32x4} t An instance of a uint32x4.
624
+ * @param {boolean} x flag used for x lane.
625
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
626
+ * x lane replaced with {x}.
627
+ */
628
+ withFlagX: function(t, flagX) {
629
+ var x = flagX ? 0xFFFFFFFF : 0x0;
630
+ return new uint32x4(x, t.y, t.z, t.w);
631
+ },
632
+ /**
633
+ * @param {uint32x4} t An instance of a uint32x4.
634
+ * @param {boolean} y flag used for y lane.
635
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
636
+ * y lane replaced with {y}.
637
+ */
638
+ withFlagY: function(t, flagY) {
639
+ var y = flagY ? 0xFFFFFFFF : 0x0;
640
+ return new uint32x4(t.x, y, t.z, t.w);
641
+ },
642
+ /**
643
+ * @param {uint32x4} t An instance of a uint32x4.
644
+ * @param {boolean} z flag used for z lane.
645
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
646
+ * z lane replaced with {z}.
647
+ */
648
+ withFlagZ: function(t, flagZ) {
649
+ var z = flagZ ? 0xFFFFFFFF : 0x0;
650
+ return new uint32x4(t.x, t.y, z, t.w);
651
+ },
652
+ /**
653
+ * @param {uint32x4} t An instance of a uint32x4.
654
+ * @param {boolean} w flag used for w lane.
655
+ * @return {uint32x4} New instance of uint32x4 with the values in t and
656
+ * w lane replaced with {w}.
657
+ */
658
+ withFlagW: function(t, flagW) {
659
+ var w = flagW ? 0xFFFFFFFF : 0x0;
660
+ return new uint32x4(t.x, t.y, t.z, w);
661
+ },
662
+ /**
663
+ * @param {float32x4} t An instance of a float32x4.
664
+ * @return {uint32x4} a bit-wise copy of t as a uint32x4.
665
+ */
666
+ float32x4BitsToUint32x4: function(t) {
667
+ var alias = new Uint32Array(t.storage_.buffer);
668
+ return new uint32x4(alias[0], alias[1], alias[2], alias[3]);
669
+ },
670
+ /**
671
+ * @param {uint32x4} t An instance of a uint32x4.
672
+ * @return {float32x4} a bit-wise copy of t as a float32x4.
673
+ */
674
+ uint32x4BitsToFloat32x4: function(t) {
675
+ var alias = new Float32Array(t.storage_.buffer);
676
+ return new float32x4(alias[0], alias[1], alias[2], alias[3]);
677
+ },
678
+ /**
679
+ * @param {uint32x4} t An instance of a uint32x4.
680
+ * @return {float32x4} with a float to integer conversion copy of t.
681
+ */
682
+ uint32x4ToFloat32x4: function(t) {
683
+ var a = float32x4.zero();
684
+ a.storage_[0] = t.storage_[0];
685
+ a.storage_[1] = t.storage_[1];
686
+ a.storage_[2] = t.storage_[2];
687
+ a.storage_[3] = t.storage_[3];
688
+ return a;
689
+ },
690
+ /**
691
+ * @param {float32x4} t An instance of a float32x4.
692
+ * @return {uint32x4} with a integer to float conversion of t.
693
+ */
694
+ float32x4ToUint32x4: function(t) {
695
+ var a = new uint32x4(t.storage_[0], t.storage_[1], t.storage_[2],
696
+ t.storage_[3]);
697
+ return a;
698
+ }
699
+ }
700
+ })();
701
+
702
+ Object.defineProperty(SIMD, 'XXXX', { get: function() { return 0x0; } });
703
+ Object.defineProperty(SIMD, 'XXXY', { get: function() { return 0x40; } });
704
+ Object.defineProperty(SIMD, 'XXXZ', { get: function() { return 0x80; } });
705
+ Object.defineProperty(SIMD, 'XXXW', { get: function() { return 0xC0; } });
706
+ Object.defineProperty(SIMD, 'XXYX', { get: function() { return 0x10; } });
707
+ Object.defineProperty(SIMD, 'XXYY', { get: function() { return 0x50; } });
708
+ Object.defineProperty(SIMD, 'XXYZ', { get: function() { return 0x90; } });
709
+ Object.defineProperty(SIMD, 'XXYW', { get: function() { return 0xD0; } });
710
+ Object.defineProperty(SIMD, 'XXZX', { get: function() { return 0x20; } });
711
+ Object.defineProperty(SIMD, 'XXZY', { get: function() { return 0x60; } });
712
+ Object.defineProperty(SIMD, 'XXZZ', { get: function() { return 0xA0; } });
713
+ Object.defineProperty(SIMD, 'XXZW', { get: function() { return 0xE0; } });
714
+ Object.defineProperty(SIMD, 'XXWX', { get: function() { return 0x30; } });
715
+ Object.defineProperty(SIMD, 'XXWY', { get: function() { return 0x70; } });
716
+ Object.defineProperty(SIMD, 'XXWZ', { get: function() { return 0xB0; } });
717
+ Object.defineProperty(SIMD, 'XXWW', { get: function() { return 0xF0; } });
718
+ Object.defineProperty(SIMD, 'XYXX', { get: function() { return 0x4; } });
719
+ Object.defineProperty(SIMD, 'XYXY', { get: function() { return 0x44; } });
720
+ Object.defineProperty(SIMD, 'XYXZ', { get: function() { return 0x84; } });
721
+ Object.defineProperty(SIMD, 'XYXW', { get: function() { return 0xC4; } });
722
+ Object.defineProperty(SIMD, 'XYYX', { get: function() { return 0x14; } });
723
+ Object.defineProperty(SIMD, 'XYYY', { get: function() { return 0x54; } });
724
+ Object.defineProperty(SIMD, 'XYYZ', { get: function() { return 0x94; } });
725
+ Object.defineProperty(SIMD, 'XYYW', { get: function() { return 0xD4; } });
726
+ Object.defineProperty(SIMD, 'XYZX', { get: function() { return 0x24; } });
727
+ Object.defineProperty(SIMD, 'XYZY', { get: function() { return 0x64; } });
728
+ Object.defineProperty(SIMD, 'XYZZ', { get: function() { return 0xA4; } });
729
+ Object.defineProperty(SIMD, 'XYZW', { get: function() { return 0xE4; } });
730
+ Object.defineProperty(SIMD, 'XYWX', { get: function() { return 0x34; } });
731
+ Object.defineProperty(SIMD, 'XYWY', { get: function() { return 0x74; } });
732
+ Object.defineProperty(SIMD, 'XYWZ', { get: function() { return 0xB4; } });
733
+ Object.defineProperty(SIMD, 'XYWW', { get: function() { return 0xF4; } });
734
+ Object.defineProperty(SIMD, 'XZXX', { get: function() { return 0x8; } });
735
+ Object.defineProperty(SIMD, 'XZXY', { get: function() { return 0x48; } });
736
+ Object.defineProperty(SIMD, 'XZXZ', { get: function() { return 0x88; } });
737
+ Object.defineProperty(SIMD, 'XZXW', { get: function() { return 0xC8; } });
738
+ Object.defineProperty(SIMD, 'XZYX', { get: function() { return 0x18; } });
739
+ Object.defineProperty(SIMD, 'XZYY', { get: function() { return 0x58; } });
740
+ Object.defineProperty(SIMD, 'XZYZ', { get: function() { return 0x98; } });
741
+ Object.defineProperty(SIMD, 'XZYW', { get: function() { return 0xD8; } });
742
+ Object.defineProperty(SIMD, 'XZZX', { get: function() { return 0x28; } });
743
+ Object.defineProperty(SIMD, 'XZZY', { get: function() { return 0x68; } });
744
+ Object.defineProperty(SIMD, 'XZZZ', { get: function() { return 0xA8; } });
745
+ Object.defineProperty(SIMD, 'XZZW', { get: function() { return 0xE8; } });
746
+ Object.defineProperty(SIMD, 'XZWX', { get: function() { return 0x38; } });
747
+ Object.defineProperty(SIMD, 'XZWY', { get: function() { return 0x78; } });
748
+ Object.defineProperty(SIMD, 'XZWZ', { get: function() { return 0xB8; } });
749
+ Object.defineProperty(SIMD, 'XZWW', { get: function() { return 0xF8; } });
750
+ Object.defineProperty(SIMD, 'XWXX', { get: function() { return 0xC; } });
751
+ Object.defineProperty(SIMD, 'XWXY', { get: function() { return 0x4C; } });
752
+ Object.defineProperty(SIMD, 'XWXZ', { get: function() { return 0x8C; } });
753
+ Object.defineProperty(SIMD, 'XWXW', { get: function() { return 0xCC; } });
754
+ Object.defineProperty(SIMD, 'XWYX', { get: function() { return 0x1C; } });
755
+ Object.defineProperty(SIMD, 'XWYY', { get: function() { return 0x5C; } });
756
+ Object.defineProperty(SIMD, 'XWYZ', { get: function() { return 0x9C; } });
757
+ Object.defineProperty(SIMD, 'XWYW', { get: function() { return 0xDC; } });
758
+ Object.defineProperty(SIMD, 'XWZX', { get: function() { return 0x2C; } });
759
+ Object.defineProperty(SIMD, 'XWZY', { get: function() { return 0x6C; } });
760
+ Object.defineProperty(SIMD, 'XWZZ', { get: function() { return 0xAC; } });
761
+ Object.defineProperty(SIMD, 'XWZW', { get: function() { return 0xEC; } });
762
+ Object.defineProperty(SIMD, 'XWWX', { get: function() { return 0x3C; } });
763
+ Object.defineProperty(SIMD, 'XWWY', { get: function() { return 0x7C; } });
764
+ Object.defineProperty(SIMD, 'XWWZ', { get: function() { return 0xBC; } });
765
+ Object.defineProperty(SIMD, 'XWWW', { get: function() { return 0xFC; } });
766
+ Object.defineProperty(SIMD, 'YXXX', { get: function() { return 0x1; } });
767
+ Object.defineProperty(SIMD, 'YXXY', { get: function() { return 0x41; } });
768
+ Object.defineProperty(SIMD, 'YXXZ', { get: function() { return 0x81; } });
769
+ Object.defineProperty(SIMD, 'YXXW', { get: function() { return 0xC1; } });
770
+ Object.defineProperty(SIMD, 'YXYX', { get: function() { return 0x11; } });
771
+ Object.defineProperty(SIMD, 'YXYY', { get: function() { return 0x51; } });
772
+ Object.defineProperty(SIMD, 'YXYZ', { get: function() { return 0x91; } });
773
+ Object.defineProperty(SIMD, 'YXYW', { get: function() { return 0xD1; } });
774
+ Object.defineProperty(SIMD, 'YXZX', { get: function() { return 0x21; } });
775
+ Object.defineProperty(SIMD, 'YXZY', { get: function() { return 0x61; } });
776
+ Object.defineProperty(SIMD, 'YXZZ', { get: function() { return 0xA1; } });
777
+ Object.defineProperty(SIMD, 'YXZW', { get: function() { return 0xE1; } });
778
+ Object.defineProperty(SIMD, 'YXWX', { get: function() { return 0x31; } });
779
+ Object.defineProperty(SIMD, 'YXWY', { get: function() { return 0x71; } });
780
+ Object.defineProperty(SIMD, 'YXWZ', { get: function() { return 0xB1; } });
781
+ Object.defineProperty(SIMD, 'YXWW', { get: function() { return 0xF1; } });
782
+ Object.defineProperty(SIMD, 'YYXX', { get: function() { return 0x5; } });
783
+ Object.defineProperty(SIMD, 'YYXY', { get: function() { return 0x45; } });
784
+ Object.defineProperty(SIMD, 'YYXZ', { get: function() { return 0x85; } });
785
+ Object.defineProperty(SIMD, 'YYXW', { get: function() { return 0xC5; } });
786
+ Object.defineProperty(SIMD, 'YYYX', { get: function() { return 0x15; } });
787
+ Object.defineProperty(SIMD, 'YYYY', { get: function() { return 0x55; } });
788
+ Object.defineProperty(SIMD, 'YYYZ', { get: function() { return 0x95; } });
789
+ Object.defineProperty(SIMD, 'YYYW', { get: function() { return 0xD5; } });
790
+ Object.defineProperty(SIMD, 'YYZX', { get: function() { return 0x25; } });
791
+ Object.defineProperty(SIMD, 'YYZY', { get: function() { return 0x65; } });
792
+ Object.defineProperty(SIMD, 'YYZZ', { get: function() { return 0xA5; } });
793
+ Object.defineProperty(SIMD, 'YYZW', { get: function() { return 0xE5; } });
794
+ Object.defineProperty(SIMD, 'YYWX', { get: function() { return 0x35; } });
795
+ Object.defineProperty(SIMD, 'YYWY', { get: function() { return 0x75; } });
796
+ Object.defineProperty(SIMD, 'YYWZ', { get: function() { return 0xB5; } });
797
+ Object.defineProperty(SIMD, 'YYWW', { get: function() { return 0xF5; } });
798
+ Object.defineProperty(SIMD, 'YZXX', { get: function() { return 0x9; } });
799
+ Object.defineProperty(SIMD, 'YZXY', { get: function() { return 0x49; } });
800
+ Object.defineProperty(SIMD, 'YZXZ', { get: function() { return 0x89; } });
801
+ Object.defineProperty(SIMD, 'YZXW', { get: function() { return 0xC9; } });
802
+ Object.defineProperty(SIMD, 'YZYX', { get: function() { return 0x19; } });
803
+ Object.defineProperty(SIMD, 'YZYY', { get: function() { return 0x59; } });
804
+ Object.defineProperty(SIMD, 'YZYZ', { get: function() { return 0x99; } });
805
+ Object.defineProperty(SIMD, 'YZYW', { get: function() { return 0xD9; } });
806
+ Object.defineProperty(SIMD, 'YZZX', { get: function() { return 0x29; } });
807
+ Object.defineProperty(SIMD, 'YZZY', { get: function() { return 0x69; } });
808
+ Object.defineProperty(SIMD, 'YZZZ', { get: function() { return 0xA9; } });
809
+ Object.defineProperty(SIMD, 'YZZW', { get: function() { return 0xE9; } });
810
+ Object.defineProperty(SIMD, 'YZWX', { get: function() { return 0x39; } });
811
+ Object.defineProperty(SIMD, 'YZWY', { get: function() { return 0x79; } });
812
+ Object.defineProperty(SIMD, 'YZWZ', { get: function() { return 0xB9; } });
813
+ Object.defineProperty(SIMD, 'YZWW', { get: function() { return 0xF9; } });
814
+ Object.defineProperty(SIMD, 'YWXX', { get: function() { return 0xD; } });
815
+ Object.defineProperty(SIMD, 'YWXY', { get: function() { return 0x4D; } });
816
+ Object.defineProperty(SIMD, 'YWXZ', { get: function() { return 0x8D; } });
817
+ Object.defineProperty(SIMD, 'YWXW', { get: function() { return 0xCD; } });
818
+ Object.defineProperty(SIMD, 'YWYX', { get: function() { return 0x1D; } });
819
+ Object.defineProperty(SIMD, 'YWYY', { get: function() { return 0x5D; } });
820
+ Object.defineProperty(SIMD, 'YWYZ', { get: function() { return 0x9D; } });
821
+ Object.defineProperty(SIMD, 'YWYW', { get: function() { return 0xDD; } });
822
+ Object.defineProperty(SIMD, 'YWZX', { get: function() { return 0x2D; } });
823
+ Object.defineProperty(SIMD, 'YWZY', { get: function() { return 0x6D; } });
824
+ Object.defineProperty(SIMD, 'YWZZ', { get: function() { return 0xAD; } });
825
+ Object.defineProperty(SIMD, 'YWZW', { get: function() { return 0xED; } });
826
+ Object.defineProperty(SIMD, 'YWWX', { get: function() { return 0x3D; } });
827
+ Object.defineProperty(SIMD, 'YWWY', { get: function() { return 0x7D; } });
828
+ Object.defineProperty(SIMD, 'YWWZ', { get: function() { return 0xBD; } });
829
+ Object.defineProperty(SIMD, 'YWWW', { get: function() { return 0xFD; } });
830
+ Object.defineProperty(SIMD, 'ZXXX', { get: function() { return 0x2; } });
831
+ Object.defineProperty(SIMD, 'ZXXY', { get: function() { return 0x42; } });
832
+ Object.defineProperty(SIMD, 'ZXXZ', { get: function() { return 0x82; } });
833
+ Object.defineProperty(SIMD, 'ZXXW', { get: function() { return 0xC2; } });
834
+ Object.defineProperty(SIMD, 'ZXYX', { get: function() { return 0x12; } });
835
+ Object.defineProperty(SIMD, 'ZXYY', { get: function() { return 0x52; } });
836
+ Object.defineProperty(SIMD, 'ZXYZ', { get: function() { return 0x92; } });
837
+ Object.defineProperty(SIMD, 'ZXYW', { get: function() { return 0xD2; } });
838
+ Object.defineProperty(SIMD, 'ZXZX', { get: function() { return 0x22; } });
839
+ Object.defineProperty(SIMD, 'ZXZY', { get: function() { return 0x62; } });
840
+ Object.defineProperty(SIMD, 'ZXZZ', { get: function() { return 0xA2; } });
841
+ Object.defineProperty(SIMD, 'ZXZW', { get: function() { return 0xE2; } });
842
+ Object.defineProperty(SIMD, 'ZXWX', { get: function() { return 0x32; } });
843
+ Object.defineProperty(SIMD, 'ZXWY', { get: function() { return 0x72; } });
844
+ Object.defineProperty(SIMD, 'ZXWZ', { get: function() { return 0xB2; } });
845
+ Object.defineProperty(SIMD, 'ZXWW', { get: function() { return 0xF2; } });
846
+ Object.defineProperty(SIMD, 'ZYXX', { get: function() { return 0x6; } });
847
+ Object.defineProperty(SIMD, 'ZYXY', { get: function() { return 0x46; } });
848
+ Object.defineProperty(SIMD, 'ZYXZ', { get: function() { return 0x86; } });
849
+ Object.defineProperty(SIMD, 'ZYXW', { get: function() { return 0xC6; } });
850
+ Object.defineProperty(SIMD, 'ZYYX', { get: function() { return 0x16; } });
851
+ Object.defineProperty(SIMD, 'ZYYY', { get: function() { return 0x56; } });
852
+ Object.defineProperty(SIMD, 'ZYYZ', { get: function() { return 0x96; } });
853
+ Object.defineProperty(SIMD, 'ZYYW', { get: function() { return 0xD6; } });
854
+ Object.defineProperty(SIMD, 'ZYZX', { get: function() { return 0x26; } });
855
+ Object.defineProperty(SIMD, 'ZYZY', { get: function() { return 0x66; } });
856
+ Object.defineProperty(SIMD, 'ZYZZ', { get: function() { return 0xA6; } });
857
+ Object.defineProperty(SIMD, 'ZYZW', { get: function() { return 0xE6; } });
858
+ Object.defineProperty(SIMD, 'ZYWX', { get: function() { return 0x36; } });
859
+ Object.defineProperty(SIMD, 'ZYWY', { get: function() { return 0x76; } });
860
+ Object.defineProperty(SIMD, 'ZYWZ', { get: function() { return 0xB6; } });
861
+ Object.defineProperty(SIMD, 'ZYWW', { get: function() { return 0xF6; } });
862
+ Object.defineProperty(SIMD, 'ZZXX', { get: function() { return 0xA; } });
863
+ Object.defineProperty(SIMD, 'ZZXY', { get: function() { return 0x4A; } });
864
+ Object.defineProperty(SIMD, 'ZZXZ', { get: function() { return 0x8A; } });
865
+ Object.defineProperty(SIMD, 'ZZXW', { get: function() { return 0xCA; } });
866
+ Object.defineProperty(SIMD, 'ZZYX', { get: function() { return 0x1A; } });
867
+ Object.defineProperty(SIMD, 'ZZYY', { get: function() { return 0x5A; } });
868
+ Object.defineProperty(SIMD, 'ZZYZ', { get: function() { return 0x9A; } });
869
+ Object.defineProperty(SIMD, 'ZZYW', { get: function() { return 0xDA; } });
870
+ Object.defineProperty(SIMD, 'ZZZX', { get: function() { return 0x2A; } });
871
+ Object.defineProperty(SIMD, 'ZZZY', { get: function() { return 0x6A; } });
872
+ Object.defineProperty(SIMD, 'ZZZZ', { get: function() { return 0xAA; } });
873
+ Object.defineProperty(SIMD, 'ZZZW', { get: function() { return 0xEA; } });
874
+ Object.defineProperty(SIMD, 'ZZWX', { get: function() { return 0x3A; } });
875
+ Object.defineProperty(SIMD, 'ZZWY', { get: function() { return 0x7A; } });
876
+ Object.defineProperty(SIMD, 'ZZWZ', { get: function() { return 0xBA; } });
877
+ Object.defineProperty(SIMD, 'ZZWW', { get: function() { return 0xFA; } });
878
+ Object.defineProperty(SIMD, 'ZWXX', { get: function() { return 0xE; } });
879
+ Object.defineProperty(SIMD, 'ZWXY', { get: function() { return 0x4E; } });
880
+ Object.defineProperty(SIMD, 'ZWXZ', { get: function() { return 0x8E; } });
881
+ Object.defineProperty(SIMD, 'ZWXW', { get: function() { return 0xCE; } });
882
+ Object.defineProperty(SIMD, 'ZWYX', { get: function() { return 0x1E; } });
883
+ Object.defineProperty(SIMD, 'ZWYY', { get: function() { return 0x5E; } });
884
+ Object.defineProperty(SIMD, 'ZWYZ', { get: function() { return 0x9E; } });
885
+ Object.defineProperty(SIMD, 'ZWYW', { get: function() { return 0xDE; } });
886
+ Object.defineProperty(SIMD, 'ZWZX', { get: function() { return 0x2E; } });
887
+ Object.defineProperty(SIMD, 'ZWZY', { get: function() { return 0x6E; } });
888
+ Object.defineProperty(SIMD, 'ZWZZ', { get: function() { return 0xAE; } });
889
+ Object.defineProperty(SIMD, 'ZWZW', { get: function() { return 0xEE; } });
890
+ Object.defineProperty(SIMD, 'ZWWX', { get: function() { return 0x3E; } });
891
+ Object.defineProperty(SIMD, 'ZWWY', { get: function() { return 0x7E; } });
892
+ Object.defineProperty(SIMD, 'ZWWZ', { get: function() { return 0xBE; } });
893
+ Object.defineProperty(SIMD, 'ZWWW', { get: function() { return 0xFE; } });
894
+ Object.defineProperty(SIMD, 'WXXX', { get: function() { return 0x3; } });
895
+ Object.defineProperty(SIMD, 'WXXY', { get: function() { return 0x43; } });
896
+ Object.defineProperty(SIMD, 'WXXZ', { get: function() { return 0x83; } });
897
+ Object.defineProperty(SIMD, 'WXXW', { get: function() { return 0xC3; } });
898
+ Object.defineProperty(SIMD, 'WXYX', { get: function() { return 0x13; } });
899
+ Object.defineProperty(SIMD, 'WXYY', { get: function() { return 0x53; } });
900
+ Object.defineProperty(SIMD, 'WXYZ', { get: function() { return 0x93; } });
901
+ Object.defineProperty(SIMD, 'WXYW', { get: function() { return 0xD3; } });
902
+ Object.defineProperty(SIMD, 'WXZX', { get: function() { return 0x23; } });
903
+ Object.defineProperty(SIMD, 'WXZY', { get: function() { return 0x63; } });
904
+ Object.defineProperty(SIMD, 'WXZZ', { get: function() { return 0xA3; } });
905
+ Object.defineProperty(SIMD, 'WXZW', { get: function() { return 0xE3; } });
906
+ Object.defineProperty(SIMD, 'WXWX', { get: function() { return 0x33; } });
907
+ Object.defineProperty(SIMD, 'WXWY', { get: function() { return 0x73; } });
908
+ Object.defineProperty(SIMD, 'WXWZ', { get: function() { return 0xB3; } });
909
+ Object.defineProperty(SIMD, 'WXWW', { get: function() { return 0xF3; } });
910
+ Object.defineProperty(SIMD, 'WYXX', { get: function() { return 0x7; } });
911
+ Object.defineProperty(SIMD, 'WYXY', { get: function() { return 0x47; } });
912
+ Object.defineProperty(SIMD, 'WYXZ', { get: function() { return 0x87; } });
913
+ Object.defineProperty(SIMD, 'WYXW', { get: function() { return 0xC7; } });
914
+ Object.defineProperty(SIMD, 'WYYX', { get: function() { return 0x17; } });
915
+ Object.defineProperty(SIMD, 'WYYY', { get: function() { return 0x57; } });
916
+ Object.defineProperty(SIMD, 'WYYZ', { get: function() { return 0x97; } });
917
+ Object.defineProperty(SIMD, 'WYYW', { get: function() { return 0xD7; } });
918
+ Object.defineProperty(SIMD, 'WYZX', { get: function() { return 0x27; } });
919
+ Object.defineProperty(SIMD, 'WYZY', { get: function() { return 0x67; } });
920
+ Object.defineProperty(SIMD, 'WYZZ', { get: function() { return 0xA7; } });
921
+ Object.defineProperty(SIMD, 'WYZW', { get: function() { return 0xE7; } });
922
+ Object.defineProperty(SIMD, 'WYWX', { get: function() { return 0x37; } });
923
+ Object.defineProperty(SIMD, 'WYWY', { get: function() { return 0x77; } });
924
+ Object.defineProperty(SIMD, 'WYWZ', { get: function() { return 0xB7; } });
925
+ Object.defineProperty(SIMD, 'WYWW', { get: function() { return 0xF7; } });
926
+ Object.defineProperty(SIMD, 'WZXX', { get: function() { return 0xB; } });
927
+ Object.defineProperty(SIMD, 'WZXY', { get: function() { return 0x4B; } });
928
+ Object.defineProperty(SIMD, 'WZXZ', { get: function() { return 0x8B; } });
929
+ Object.defineProperty(SIMD, 'WZXW', { get: function() { return 0xCB; } });
930
+ Object.defineProperty(SIMD, 'WZYX', { get: function() { return 0x1B; } });
931
+ Object.defineProperty(SIMD, 'WZYY', { get: function() { return 0x5B; } });
932
+ Object.defineProperty(SIMD, 'WZYZ', { get: function() { return 0x9B; } });
933
+ Object.defineProperty(SIMD, 'WZYW', { get: function() { return 0xDB; } });
934
+ Object.defineProperty(SIMD, 'WZZX', { get: function() { return 0x2B; } });
935
+ Object.defineProperty(SIMD, 'WZZY', { get: function() { return 0x6B; } });
936
+ Object.defineProperty(SIMD, 'WZZZ', { get: function() { return 0xAB; } });
937
+ Object.defineProperty(SIMD, 'WZZW', { get: function() { return 0xEB; } });
938
+ Object.defineProperty(SIMD, 'WZWX', { get: function() { return 0x3B; } });
939
+ Object.defineProperty(SIMD, 'WZWY', { get: function() { return 0x7B; } });
940
+ Object.defineProperty(SIMD, 'WZWZ', { get: function() { return 0xBB; } });
941
+ Object.defineProperty(SIMD, 'WZWW', { get: function() { return 0xFB; } });
942
+ Object.defineProperty(SIMD, 'WWXX', { get: function() { return 0xF; } });
943
+ Object.defineProperty(SIMD, 'WWXY', { get: function() { return 0x4F; } });
944
+ Object.defineProperty(SIMD, 'WWXZ', { get: function() { return 0x8F; } });
945
+ Object.defineProperty(SIMD, 'WWXW', { get: function() { return 0xCF; } });
946
+ Object.defineProperty(SIMD, 'WWYX', { get: function() { return 0x1F; } });
947
+ Object.defineProperty(SIMD, 'WWYY', { get: function() { return 0x5F; } });
948
+ Object.defineProperty(SIMD, 'WWYZ', { get: function() { return 0x9F; } });
949
+ Object.defineProperty(SIMD, 'WWYW', { get: function() { return 0xDF; } });
950
+ Object.defineProperty(SIMD, 'WWZX', { get: function() { return 0x2F; } });
951
+ Object.defineProperty(SIMD, 'WWZY', { get: function() { return 0x6F; } });
952
+ Object.defineProperty(SIMD, 'WWZZ', { get: function() { return 0xAF; } });
953
+ Object.defineProperty(SIMD, 'WWZW', { get: function() { return 0xEF; } });
954
+ Object.defineProperty(SIMD, 'WWWX', { get: function() { return 0x3F; } });
955
+ Object.defineProperty(SIMD, 'WWWY', { get: function() { return 0x7F; } });
956
+ Object.defineProperty(SIMD, 'WWWZ', { get: function() { return 0xBF; } });
957
+ Object.defineProperty(SIMD, 'WWWW', { get: function() { return 0xFF; } });
958
+