@scriptc/cli-darwin-arm64 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/dist/THIRD_PARTY_NOTICES +1 -1
  2. package/dist/bin/scriptc +0 -0
  3. package/dist/bin/scriptc.json +1 -1
  4. package/dist/lib/declarations/scriptc-node-fallback.d.ts +57 -30
  5. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  6. package/dist/lib/llvm/package.json +1 -1
  7. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
  8. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  9. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
  10. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  11. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  12. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
  13. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  14. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
  15. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
  16. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  17. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  18. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
  19. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
  20. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  21. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  22. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  23. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  24. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
  25. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  26. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
  27. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
  28. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
  29. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  30. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  31. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
  32. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  33. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
  34. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  35. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
  36. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
  37. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
  38. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
  39. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
  40. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
  41. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
  42. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
  43. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
  44. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
  45. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
  46. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
  47. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
  48. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
  49. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
  50. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
  51. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
  52. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
  53. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
  54. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
  55. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
  56. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
  57. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
  58. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
  59. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
  60. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
  61. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
  62. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
  63. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
  64. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
  65. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
  66. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
  67. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
  68. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
  69. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
  70. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
  71. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
  72. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  73. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
  74. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
  75. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
  76. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
  77. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
  78. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
  79. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
  80. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
  81. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
  82. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
  83. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
  84. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
  85. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
  86. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
  87. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
  88. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
  89. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
  90. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
  91. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
  92. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
  93. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
  94. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
  95. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
  96. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
  97. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  98. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  99. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  100. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  101. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  102. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  103. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  104. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  105. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
  106. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  107. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  108. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  109. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  110. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  111. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  112. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  113. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  114. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  115. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  116. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  117. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  118. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  119. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  120. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  121. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
  122. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  123. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  124. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  125. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  126. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  127. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  128. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  129. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
  130. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
  131. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
  132. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
  133. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  134. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  135. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  136. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  137. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  138. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
  139. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  140. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
  141. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
  142. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  143. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  144. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  145. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  146. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  147. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  148. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  149. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
  150. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  151. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  152. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  153. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  154. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  155. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  156. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  157. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  158. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
  159. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  160. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  161. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  162. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  163. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  164. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  165. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  166. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  167. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  168. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  169. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
  170. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  171. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  172. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  173. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  174. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  175. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  176. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  177. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  178. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  179. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
  180. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  181. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  182. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  183. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  184. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  185. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  186. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  187. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  188. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  189. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  190. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  191. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  192. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
  193. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  194. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  195. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  196. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  197. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  198. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  199. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  200. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  201. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  202. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  203. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
  204. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  205. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  206. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  207. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  208. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  209. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  210. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  211. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  212. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  213. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  214. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  215. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  216. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
  217. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  218. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  219. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  220. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  221. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
  222. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
  223. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
  224. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  225. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  226. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
  227. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
  228. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
  229. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
  230. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  231. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  232. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
  233. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
  234. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  235. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
  236. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  237. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  238. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
  239. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
  240. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
  241. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
  242. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
  243. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
  244. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
  245. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
  246. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
  247. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
  248. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
  249. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
  250. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
  251. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
  252. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
  253. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
  254. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
  255. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
  256. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
  257. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
  258. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
  259. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
  260. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
  261. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
  262. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
  263. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
  264. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
  265. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
  266. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
  267. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
  268. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
  269. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
  270. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
  271. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
  272. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
  273. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
  274. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
  275. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
  276. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
  277. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
  278. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
  279. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
  280. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
  281. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
  282. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
  283. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
  284. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
  285. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
  286. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  287. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
  288. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
  289. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
  290. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
  291. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
  292. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
  293. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
  294. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
  295. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
  296. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
  297. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
  298. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
  299. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
  300. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
  301. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
  302. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
  303. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
  304. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
  305. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
  306. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
  307. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
  308. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
  309. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
  310. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
  311. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  312. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  313. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  314. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  315. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  316. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  317. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  318. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  319. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
  320. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  321. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  322. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  323. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  324. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  325. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  326. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  327. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  328. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  329. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  330. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  331. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  332. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  333. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  334. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  335. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
  336. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  337. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  338. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  339. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  340. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  341. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  342. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  343. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
  344. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
  345. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
  346. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
  347. package/dist/lib/runtime-darwin-arm64/package.json +1 -1
  348. package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3300 -772
  349. package/dist/lib/runtime-sources/package.json +1 -1
  350. package/dist/lib/runtime-sources/src/scr_array.c +212 -40
  351. package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
  352. package/dist/lib/runtime-sources/src/scr_async.c +401 -71
  353. package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
  354. package/dist/lib/runtime-sources/src/scr_bytes.c +50 -5
  355. package/dist/lib/runtime-sources/src/scr_bytes_io.c +47 -32
  356. package/dist/lib/runtime-sources/src/scr_child.c +48 -30
  357. package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
  358. package/dist/lib/runtime-sources/src/scr_console.c +27 -5
  359. package/dist/lib/runtime-sources/src/scr_context.c +167 -0
  360. package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
  361. package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
  362. package/dist/lib/runtime-sources/src/scr_copying.c +1 -0
  363. package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
  364. package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
  365. package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
  366. package/dist/lib/runtime-sources/src/scr_error.c +26 -14
  367. package/dist/lib/runtime-sources/src/scr_events.c +45 -31
  368. package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
  369. package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
  370. package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
  371. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
  372. package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
  373. package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
  374. package/dist/lib/runtime-sources/src/scr_http.c +20 -16
  375. package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
  376. package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
  377. package/dist/lib/runtime-sources/src/scr_island.c +1 -1
  378. package/dist/lib/runtime-sources/src/scr_json.c +179 -45
  379. package/dist/lib/runtime-sources/src/scr_json.test.c +16 -0
  380. package/dist/lib/runtime-sources/src/scr_json.test.ts +1 -0
  381. package/dist/lib/runtime-sources/src/scr_key.h +28 -4
  382. package/dist/lib/runtime-sources/src/scr_lib.c +124 -63
  383. package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
  384. package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
  385. package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
  386. package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
  387. package/dist/lib/runtime-sources/src/scr_map.c +195 -46
  388. package/dist/lib/runtime-sources/src/scr_message.c +443 -0
  389. package/dist/lib/runtime-sources/src/scr_message.h +14 -0
  390. package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
  391. package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
  392. package/dist/lib/runtime-sources/src/scr_net.c +14 -12
  393. package/dist/lib/runtime-sources/src/scr_number.c +34 -0
  394. package/dist/lib/runtime-sources/src/scr_object.c +9 -4
  395. package/dist/lib/runtime-sources/src/scr_path.c +1 -1
  396. package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
  397. package/dist/lib/runtime-sources/src/scr_regex.c +113 -0
  398. package/dist/lib/runtime-sources/src/scr_runtime.h +170 -28
  399. package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
  400. package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
  401. package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
  402. package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
  403. package/dist/lib/runtime-sources/src/scr_string.c +224 -113
  404. package/dist/lib/runtime-sources/src/scr_test.c +8 -8
  405. package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
  406. package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
  407. package/dist/lib/runtime-sources/src/scr_union.c +10 -5
  408. package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
  409. package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
  410. package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
  411. package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
  412. package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
  413. package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
  414. package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
  415. package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
  416. package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
  417. package/package.json +1 -1
@@ -0,0 +1,443 @@
1
+ #include "scr_message.h"
2
+
3
+ #include <stdlib.h>
4
+
5
+ typedef enum {
6
+ SCR_MESSAGE_UNDEFINED,
7
+ SCR_MESSAGE_NULL,
8
+ SCR_MESSAGE_BOOL,
9
+ SCR_MESSAGE_NUMBER,
10
+ SCR_MESSAGE_STRING,
11
+ SCR_MESSAGE_BIGINT,
12
+ SCR_MESSAGE_ARRAY,
13
+ SCR_MESSAGE_OBJECT,
14
+ SCR_MESSAGE_STORAGE,
15
+ SCR_MESSAGE_BYTES,
16
+ SCR_MESSAGE_ARRAY_BUFFER,
17
+ SCR_MESSAGE_ERROR,
18
+ } ScrMessageKind;
19
+
20
+ typedef struct {
21
+ char *key;
22
+ size_t length;
23
+ size_t value;
24
+ } ScrMessageProperty;
25
+
26
+ typedef struct {
27
+ ScrMessageKind kind;
28
+ double number;
29
+ unsigned char *data;
30
+ ScrSharedBytes *shared;
31
+ size_t length;
32
+ ScrMessageProperty *properties;
33
+ size_t count;
34
+ size_t capacity;
35
+ size_t storage;
36
+ size_t offset;
37
+ ScrBytesElem element;
38
+ bool data_view;
39
+ } ScrMessageNode;
40
+
41
+ struct ScrMessage {
42
+ ScrMessageNode *nodes;
43
+ size_t count;
44
+ size_t capacity;
45
+ };
46
+
47
+ typedef struct {
48
+ const ScrDyn *input;
49
+ ScrDyn *view;
50
+ ScrDyn *keys;
51
+ size_t cursor;
52
+ } ScrMessageVisit;
53
+
54
+ typedef struct {
55
+ const void *identity;
56
+ unsigned domain;
57
+ size_t node;
58
+ } ScrMessageIdentity;
59
+
60
+ typedef struct {
61
+ ScrMessage *message;
62
+ ScrMessageVisit *visits;
63
+ ScrMessageIdentity *identities;
64
+ size_t identity_count;
65
+ size_t identity_capacity;
66
+ size_t *stack;
67
+ size_t depth;
68
+ size_t stack_capacity;
69
+ } ScrMessageEncoder;
70
+
71
+ static void *scr_message_alloc(size_t count, size_t size) {
72
+ if (count > SIZE_MAX / size) scr_trap("scriptc: message too large\n");
73
+ void *data = calloc(count ? count : 1, size);
74
+ if (!data) scr_trap("scriptc: out of memory\n");
75
+ return data;
76
+ }
77
+
78
+ static size_t scr_message_grow(size_t capacity) {
79
+ if (capacity > SIZE_MAX / 2) scr_trap("scriptc: message too large\n");
80
+ return capacity ? capacity * 2 : 16;
81
+ }
82
+
83
+ static unsigned char *scr_message_copy(const void *data, size_t length) {
84
+ if (length == SIZE_MAX) scr_trap("scriptc: message too large\n");
85
+ unsigned char *copy = scr_message_alloc(length + 1, 1);
86
+ if (length) memcpy(copy, data, length);
87
+ return copy;
88
+ }
89
+
90
+ static size_t scr_message_node(ScrMessageEncoder *encoder) {
91
+ ScrMessage *message = encoder->message;
92
+ if (message->count == message->capacity) {
93
+ size_t capacity = scr_message_grow(message->capacity);
94
+ ScrMessageNode *nodes = scr_message_alloc(capacity, sizeof(*nodes));
95
+ ScrMessageVisit *visits = scr_message_alloc(capacity, sizeof(*visits));
96
+ if (message->count) {
97
+ memcpy(nodes, message->nodes, message->count * sizeof(*nodes));
98
+ memcpy(visits, encoder->visits, message->count * sizeof(*visits));
99
+ }
100
+ free(message->nodes);
101
+ free(encoder->visits);
102
+ message->nodes = nodes;
103
+ encoder->visits = visits;
104
+ message->capacity = capacity;
105
+ }
106
+ return message->count++;
107
+ }
108
+
109
+ static size_t scr_message_hash(const void *identity, unsigned domain) {
110
+ uintptr_t value = (uintptr_t)identity;
111
+ value ^= value >> 16;
112
+ value *= (uintptr_t)0x45d9f3b;
113
+ value ^= value >> 16;
114
+ return (size_t)value ^ domain;
115
+ }
116
+
117
+ static size_t scr_message_find(const ScrMessageEncoder *encoder, const void *identity,
118
+ unsigned domain) {
119
+ if (!identity || !encoder->identity_capacity) return SIZE_MAX;
120
+ size_t slot = scr_message_hash(identity, domain) & (encoder->identity_capacity - 1);
121
+ while (encoder->identities[slot].identity) {
122
+ const ScrMessageIdentity *entry = &encoder->identities[slot];
123
+ if (entry->identity == identity && entry->domain == domain) return entry->node;
124
+ slot = (slot + 1) & (encoder->identity_capacity - 1);
125
+ }
126
+ return SIZE_MAX;
127
+ }
128
+
129
+ static void scr_message_identify(ScrMessageEncoder *encoder, const void *identity,
130
+ unsigned domain, size_t node) {
131
+ if (!identity) return;
132
+ if (encoder->identity_count >= encoder->identity_capacity / 2) {
133
+ size_t capacity = scr_message_grow(encoder->identity_capacity);
134
+ ScrMessageIdentity *entries = scr_message_alloc(capacity, sizeof(*entries));
135
+ for (size_t i = 0; i < encoder->identity_capacity; i++) {
136
+ ScrMessageIdentity entry = encoder->identities[i];
137
+ if (!entry.identity) continue;
138
+ size_t slot = scr_message_hash(entry.identity, entry.domain) & (capacity - 1);
139
+ while (entries[slot].identity) slot = (slot + 1) & (capacity - 1);
140
+ entries[slot] = entry;
141
+ }
142
+ free(encoder->identities);
143
+ encoder->identities = entries;
144
+ encoder->identity_capacity = capacity;
145
+ }
146
+ size_t slot = scr_message_hash(identity, domain) & (encoder->identity_capacity - 1);
147
+ while (encoder->identities[slot].identity) slot = (slot + 1) & (encoder->identity_capacity - 1);
148
+ encoder->identities[slot] = (ScrMessageIdentity){identity, domain, node};
149
+ encoder->identity_count++;
150
+ }
151
+
152
+ static void scr_message_push(ScrMessageEncoder *encoder, size_t node) {
153
+ if (encoder->depth == encoder->stack_capacity) {
154
+ size_t capacity = scr_message_grow(encoder->stack_capacity);
155
+ size_t *stack = scr_message_alloc(capacity, sizeof(*stack));
156
+ if (encoder->depth) memcpy(stack, encoder->stack, encoder->depth * sizeof(*stack));
157
+ free(encoder->stack);
158
+ encoder->stack = stack;
159
+ encoder->stack_capacity = capacity;
160
+ }
161
+ encoder->stack[encoder->depth++] = node;
162
+ }
163
+
164
+ static size_t scr_message_storage(ScrMessageEncoder *encoder, const ScrBytes *bytes) {
165
+ const ScrBytes *owner = bytes->backing ? bytes->backing : bytes;
166
+ size_t found = scr_message_find(encoder, owner, SCR_MESSAGE_STORAGE + 1);
167
+ if (found != SIZE_MAX) return found;
168
+ size_t node = scr_message_node(encoder);
169
+ scr_message_identify(encoder, owner, SCR_MESSAGE_STORAGE + 1, node);
170
+ ScrMessageNode *storage = &encoder->message->nodes[node];
171
+ storage->kind = SCR_MESSAGE_STORAGE;
172
+ size_t size = scr_bytes_elem_size(owner->elem);
173
+ if (owner->len > SIZE_MAX / size) scr_trap("scriptc: message too large\n");
174
+ storage->length = owner->len * size;
175
+ if (owner->shared) storage->shared = scr_shared_retain(owner->shared);
176
+ else storage->data = scr_message_copy(owner->data, storage->length);
177
+ return node;
178
+ }
179
+
180
+ static size_t scr_message_value(ScrMessageEncoder *encoder, const ScrDyn *input) {
181
+ const void *identity = NULL;
182
+ unsigned domain = 0;
183
+ switch (input->kind) {
184
+ case SCR_DYN_TYPED_REF: identity = input->v.typed_ref.ptr; domain = 1; break;
185
+ case SCR_DYN_OBJ:
186
+ identity = input->v.obj.source_identity ? input->v.obj.source_identity : input;
187
+ domain = input->v.obj.source_identity ? 1 : 2;
188
+ break;
189
+ case SCR_DYN_ARR: identity = input; domain = 2; break;
190
+ case SCR_DYN_BYTES: identity = input->v.bytes; domain = 3; break;
191
+ case SCR_DYN_HANDLE: identity = input->v.handle.ptr; domain = 4; break;
192
+ default: break;
193
+ }
194
+ size_t found = scr_message_find(encoder, identity, domain);
195
+ if (found != SIZE_MAX) return found;
196
+ size_t id = scr_message_node(encoder);
197
+ scr_message_identify(encoder, identity, domain, id);
198
+ encoder->visits[id].input = scr_dyn_retain((ScrDyn *)input);
199
+ ScrDyn *value = input->kind == SCR_DYN_TYPED_REF
200
+ ? scr_dyn_typed_ref_materialize(input) : (ScrDyn *)input;
201
+ encoder->visits[id].view = value;
202
+ if (!value || scr_exc_pending()) return SIZE_MAX;
203
+ ScrMessageNode *node = &encoder->message->nodes[id];
204
+ ScrError *error = scr_errdyn_err_of(input);
205
+ if (!error && value != input) error = scr_errdyn_err_of(value);
206
+ if (error) {
207
+ node->kind = SCR_MESSAGE_ERROR;
208
+ node->number = SCR_ERR_ERROR;
209
+ static const char *const names[] = {
210
+ "Error", "TypeError", "RangeError", "SyntaxError", "ReferenceError", "EvalError", "URIError",
211
+ };
212
+ static const int kinds[] = {
213
+ SCR_ERR_ERROR, SCR_ERR_TYPE, SCR_ERR_RANGE, SCR_ERR_SYNTAX, SCR_ERR_REFERENCE, SCR_ERR_EVAL, SCR_ERR_URI,
214
+ };
215
+ for (size_t i = 0; i < sizeof names / sizeof names[0]; i++)
216
+ if (error->name->len == strlen(names[i]) && !memcmp(error->name->data, names[i], error->name->len))
217
+ node->number = kinds[i];
218
+ ScrDyn *keys = scr_dyn_new_arr();
219
+ static const char *const fields[] = {"message", "stack", "cause"};
220
+ for (size_t i = 0; i < sizeof fields / sizeof fields[0]; i++) {
221
+ if (!scr_dyn_obj_get(value, fields[i], strlen(fields[i]))) continue;
222
+ ScrStr *key = scr_str_new(fields[i], strlen(fields[i]));
223
+ scr_dyn_arr_push(keys, scr_dyn_new_str(key));
224
+ scr_str_release(key);
225
+ }
226
+ encoder->visits[id].keys = keys;
227
+ scr_error_release(error);
228
+ scr_message_push(encoder, id);
229
+ return id;
230
+ }
231
+ switch (value->kind) {
232
+ case SCR_DYN_UNDEF: node->kind = SCR_MESSAGE_UNDEFINED; break;
233
+ case SCR_DYN_NULL: node->kind = SCR_MESSAGE_NULL; break;
234
+ case SCR_DYN_BOOL: node->kind = SCR_MESSAGE_BOOL; node->number = value->v.b; break;
235
+ case SCR_DYN_NUM: node->kind = SCR_MESSAGE_NUMBER; node->number = value->v.num; break;
236
+ case SCR_DYN_STR:
237
+ node->kind = SCR_MESSAGE_STRING;
238
+ node->length = value->v.str->len;
239
+ node->data = scr_message_copy(value->v.str->data, node->length);
240
+ break;
241
+ case SCR_DYN_BIGINT: {
242
+ ScrStr *text = scr_bigint_to_string(value->v.bigint, 10);
243
+ if (!text) return SIZE_MAX;
244
+ node->kind = SCR_MESSAGE_BIGINT;
245
+ node->length = text->len;
246
+ node->data = scr_message_copy(text->data, text->len);
247
+ scr_str_release(text);
248
+ break;
249
+ }
250
+ case SCR_DYN_ARR:
251
+ case SCR_DYN_OBJ:
252
+ node->kind = value->kind == SCR_DYN_ARR ? SCR_MESSAGE_ARRAY : SCR_MESSAGE_OBJECT;
253
+ node->length = value->kind == SCR_DYN_ARR ? value->v.arr.len : 0;
254
+ encoder->visits[id].keys = scr_dyn_own_keys(value);
255
+ if (!encoder->visits[id].keys) return SIZE_MAX;
256
+ scr_message_push(encoder, id);
257
+ break;
258
+ case SCR_DYN_BYTES:
259
+ case SCR_DYN_HANDLE: {
260
+ bool buffer = scr_buffer_storage_is(value);
261
+ if (value->kind == SCR_DYN_HANDLE && !buffer) goto unsupported;
262
+ const ScrBytes *bytes = buffer ? value->v.handle.ptr : value->v.bytes;
263
+ size_t storage = scr_message_storage(encoder, bytes);
264
+ /* Adding the storage node can reallocate the node array. */
265
+ node = &encoder->message->nodes[id];
266
+ node->kind = buffer ? SCR_MESSAGE_ARRAY_BUFFER : SCR_MESSAGE_BYTES;
267
+ node->storage = storage;
268
+ node->element = bytes->elem;
269
+ node->length = bytes->len;
270
+ node->offset = (size_t)(bytes->data - (bytes->backing ? bytes->backing : bytes)->data);
271
+ node->data_view = bytes->is_data_view;
272
+ break;
273
+ }
274
+ default:
275
+ unsupported:
276
+ scr_throw_domex("DataCloneError", "The value could not be cloned.");
277
+ return SIZE_MAX;
278
+ }
279
+ return id;
280
+ }
281
+
282
+ static void scr_message_property(ScrMessageEncoder *encoder, size_t id,
283
+ const ScrStr *key, size_t value) {
284
+ ScrMessageNode *node = &encoder->message->nodes[id];
285
+ if (node->count == node->capacity) {
286
+ size_t capacity = scr_message_grow(node->capacity);
287
+ ScrMessageProperty *properties = scr_message_alloc(capacity, sizeof(*properties));
288
+ if (node->count) memcpy(properties, node->properties, node->count * sizeof(*properties));
289
+ free(node->properties);
290
+ node->properties = properties;
291
+ node->capacity = capacity;
292
+ }
293
+ node->properties[node->count++] = (ScrMessageProperty){
294
+ (char *)scr_message_copy(key->data, key->len), key->len, value,
295
+ };
296
+ }
297
+
298
+ ScrMessage *scr_message_encode(const ScrDyn *value) {
299
+ ScrMessage *message = scr_message_alloc(1, sizeof(*message));
300
+ ScrMessageEncoder encoder = {.message = message};
301
+ if (scr_message_value(&encoder, value) == SIZE_MAX) goto done;
302
+ while (encoder.depth && !scr_exc_pending()) {
303
+ size_t id = encoder.stack[encoder.depth - 1];
304
+ ScrMessageVisit *visit = &encoder.visits[id];
305
+ if (visit->cursor == visit->keys->v.arr.len) { encoder.depth--; continue; }
306
+ ScrDyn *key = visit->keys->v.arr.items[visit->cursor++];
307
+ if (key->kind != SCR_DYN_STR ||
308
+ (message->nodes[id].kind != SCR_MESSAGE_ERROR && !scr_dyn_property_is_enumerable(visit->view, key->v.str))) continue;
309
+ ScrDyn *child = scr_dyn_bag_get(visit->view, key->v.str, visit->view);
310
+ if (!child || scr_exc_pending()) { scr_dyn_release(child); break; }
311
+ size_t next = scr_message_value(&encoder, child);
312
+ scr_dyn_release(child);
313
+ if (next == SIZE_MAX) break;
314
+ scr_message_property(&encoder, id, key->v.str, next);
315
+ }
316
+ done:
317
+ for (size_t i = 0; i < message->count; i++) {
318
+ ScrMessageVisit *visit = &encoder.visits[i];
319
+ scr_dyn_release(visit->keys);
320
+ if (visit->view != visit->input) scr_dyn_release(visit->view);
321
+ scr_dyn_release((ScrDyn *)visit->input);
322
+ }
323
+ free(encoder.visits);
324
+ free(encoder.identities);
325
+ free(encoder.stack);
326
+ if (scr_exc_pending()) { scr_message_free(message); return NULL; }
327
+ return message;
328
+ }
329
+
330
+ static size_t scr_message_array_index(const char *key, size_t length, size_t limit) {
331
+ if (!length || (length > 1 && key[0] == '0')) return SIZE_MAX;
332
+ size_t index = 0;
333
+ for (size_t i = 0; i < length; i++) {
334
+ unsigned digit = (unsigned char)key[i] - '0';
335
+ if (digit > 9 || index > (SIZE_MAX - digit) / 10) return SIZE_MAX;
336
+ index = index * 10 + digit;
337
+ }
338
+ return index < limit ? index : SIZE_MAX;
339
+ }
340
+
341
+ ScrDyn *scr_message_decode(const ScrMessage *message) {
342
+ ScrDyn **values = scr_message_alloc(message->count, sizeof(*values));
343
+ ScrBytes **storage = scr_message_alloc(message->count, sizeof(*storage));
344
+ for (size_t i = 0; i < message->count; i++) {
345
+ const ScrMessageNode *node = &message->nodes[i];
346
+ if (node->kind != SCR_MESSAGE_STORAGE) continue;
347
+ storage[i] = node->shared ? scr_shared_wrap(node->shared) : scr_bytes_new(SCR_BYTES_U8, (double)node->length);
348
+ if (!storage[i]) goto done;
349
+ if (!node->shared && node->length) memcpy(storage[i]->data, node->data, node->length);
350
+ }
351
+ for (size_t i = 0; i < message->count; i++) {
352
+ const ScrMessageNode *node = &message->nodes[i];
353
+ switch (node->kind) {
354
+ case SCR_MESSAGE_UNDEFINED: values[i] = scr_dyn_retain(scr_dyn_undefined()); break;
355
+ case SCR_MESSAGE_NULL: values[i] = scr_dyn_new_null(); break;
356
+ case SCR_MESSAGE_BOOL: values[i] = scr_dyn_new_bool(node->number != 0); break;
357
+ case SCR_MESSAGE_NUMBER: values[i] = scr_dyn_new_num(node->number); break;
358
+ case SCR_MESSAGE_STRING:
359
+ case SCR_MESSAGE_BIGINT: {
360
+ ScrStr *text = scr_str_new((const char *)node->data, node->length);
361
+ if (node->kind == SCR_MESSAGE_STRING) values[i] = scr_dyn_new_str(text);
362
+ else {
363
+ ScrBigInt *integer = scr_bigint_parse(text);
364
+ if (integer) { values[i] = scr_dyn_new_bigint(integer); scr_bigint_release(integer); }
365
+ }
366
+ scr_str_release(text);
367
+ break;
368
+ }
369
+ case SCR_MESSAGE_ARRAY:
370
+ values[i] = scr_dyn_new_arr();
371
+ for (size_t j = 0; j < node->length; j++) scr_dyn_arr_push_hole(values[i]);
372
+ break;
373
+ case SCR_MESSAGE_OBJECT: values[i] = scr_dyn_new_obj(); break;
374
+ case SCR_MESSAGE_ERROR: {
375
+ scr_error_set_traced();
376
+ ScrError *error = scr_error_new((int)node->number, NULL);
377
+ values[i] = scr_dyn_from_error(error);
378
+ scr_error_release(error);
379
+ break;
380
+ }
381
+ case SCR_MESSAGE_BYTES: {
382
+ ScrBytes *bytes = scr_bytes_buffer_view(storage[node->storage], node->element,
383
+ (double)node->offset, true, (double)node->length);
384
+ if (bytes) {
385
+ bytes->is_data_view = node->data_view;
386
+ values[i] = scr_dyn_new_bytes(bytes);
387
+ scr_bytes_release(bytes);
388
+ }
389
+ break;
390
+ }
391
+ case SCR_MESSAGE_ARRAY_BUFFER:
392
+ values[i] = scr_array_buffer_from_bytes(storage[node->storage]);
393
+ break;
394
+ case SCR_MESSAGE_STORAGE: continue;
395
+ }
396
+ if (!values[i] || scr_exc_pending()) goto done;
397
+ }
398
+ for (size_t i = 0; i < message->count; i++) {
399
+ const ScrMessageNode *node = &message->nodes[i];
400
+ for (size_t j = 0; j < node->count; j++) {
401
+ const ScrMessageProperty *property = &node->properties[j];
402
+ ScrDyn *value = scr_dyn_retain(values[property->value]);
403
+ if (node->kind == SCR_MESSAGE_ARRAY) {
404
+ size_t index = scr_message_array_index(property->key, property->length, node->length);
405
+ if (index != SIZE_MAX) {
406
+ values[i]->v.arr.items[index] = value;
407
+ values[i]->v.arr.presence[index] = 1;
408
+ continue;
409
+ }
410
+ if (!values[i]->v.arr.properties) values[i]->v.arr.properties = scr_dyn_new_obj();
411
+ scr_dyn_obj_set(values[i]->v.arr.properties, property->key, property->length, value);
412
+ } else scr_dyn_obj_set(values[i], property->key, property->length, value);
413
+ }
414
+ if (node->kind == SCR_MESSAGE_ERROR) {
415
+ for (size_t j = 0; j < values[i]->v.obj.len; j++) values[i]->v.obj.entries[j].enumerable = false;
416
+ ScrError *error = scr_errdyn_err_of(values[i]);
417
+ scr_error_commit_dyn(error, values[i]);
418
+ scr_error_release(error);
419
+ }
420
+ }
421
+ done:;
422
+ ScrDyn *result = !scr_exc_pending() ? scr_dyn_retain(values[0]) : NULL;
423
+ for (size_t i = 0; i < message->count; i++) {
424
+ scr_dyn_release(values[i]);
425
+ scr_bytes_release(storage[i]);
426
+ }
427
+ free(values);
428
+ free(storage);
429
+ return result;
430
+ }
431
+
432
+ void scr_message_free(ScrMessage *message) {
433
+ if (!message) return;
434
+ for (size_t i = 0; i < message->count; i++) {
435
+ ScrMessageNode *node = &message->nodes[i];
436
+ for (size_t j = 0; j < node->count; j++) free(node->properties[j].key);
437
+ free(node->properties);
438
+ free(node->data);
439
+ scr_shared_release(node->shared);
440
+ }
441
+ free(message->nodes);
442
+ free(message);
443
+ }
@@ -0,0 +1,14 @@
1
+ #ifndef SCR_MESSAGE_H
2
+ #define SCR_MESSAGE_H
3
+
4
+ #include "scr_runtime.h"
5
+
6
+ /* Queues own messages independently of either runtime heap. Encoding may
7
+ * invoke getters and throw on the sender. Decoding creates recipient-local
8
+ * values; release the message separately after delivery or cancellation. */
9
+ typedef struct ScrMessage ScrMessage;
10
+ ScrMessage *scr_message_encode(const ScrDyn *value);
11
+ ScrDyn *scr_message_decode(const ScrMessage *message);
12
+ void scr_message_free(ScrMessage *message);
13
+
14
+ #endif
@@ -0,0 +1,152 @@
1
+ #undef NDEBUG
2
+ #include "scr_message.h"
3
+ #include <assert.h>
4
+ #include <math.h>
5
+ #include <pthread.h>
6
+ #include <stdio.h>
7
+
8
+ static void put_number(ScrDyn *object, const char *key, double value) {
9
+ scr_dyn_obj_set(object, key, strlen(key), scr_dyn_new_num(value));
10
+ }
11
+
12
+ static ScrDyn *make_graph(void) {
13
+ ScrDyn *root = scr_dyn_new_obj();
14
+ ScrDyn *shared = scr_dyn_new_obj();
15
+ put_number(shared, "value", 17);
16
+ scr_dyn_obj_set(root, "first", 5, scr_dyn_retain(shared));
17
+ scr_dyn_obj_set(root, "second", 6, shared);
18
+ scr_dyn_obj_set(root, "self", 4, scr_dyn_retain(root));
19
+ put_number(root, "negativeZero", -0.0);
20
+ put_number(root, "nan", NAN);
21
+ put_number(root, "infinity", INFINITY);
22
+ ScrStr *text = scr_str_new("a\0\xf0\x9f\x98\x80", 6);
23
+ scr_dyn_obj_set(root, "text", 4, scr_dyn_new_str(text));
24
+ scr_str_release(text);
25
+ text = scr_str_new("123456789012345678901234567890", 30);
26
+ ScrBigInt *integer = scr_bigint_parse(text);
27
+ scr_str_release(text);
28
+ scr_dyn_obj_set(root, "integer", 7, scr_dyn_new_bigint(integer));
29
+ scr_bigint_release(integer);
30
+
31
+ ScrDyn *array = scr_dyn_new_arr();
32
+ scr_dyn_arr_push_hole(array);
33
+ scr_dyn_arr_push(array, scr_dyn_retain(scr_dyn_undefined()));
34
+ scr_dyn_arr_push_hole(array);
35
+ scr_dyn_arr_push(array, scr_dyn_retain(shared));
36
+ scr_dyn_obj_set(root, "array", 5, array);
37
+
38
+ ScrBytes *bytes = scr_bytes_new(SCR_BYTES_U8, 16);
39
+ for (size_t i = 0; i < bytes->len; i++) bytes->data[i] = (unsigned char)i;
40
+ ScrBytes *view = scr_bytes_buffer_view(bytes, SCR_BYTES_U16, 4, true, 3);
41
+ scr_dyn_obj_set(root, "bytes", 5, scr_dyn_new_bytes(view));
42
+ scr_dyn_obj_set(root, "again", 5, scr_dyn_new_bytes(view));
43
+ scr_dyn_obj_set(root, "buffer", 6, scr_array_buffer_from_bytes(bytes));
44
+ scr_bytes_release(view);
45
+ scr_bytes_release(bytes);
46
+ return root;
47
+ }
48
+
49
+ static void *receive_graph(void *data) {
50
+ scr_context_enter(1);
51
+ scr_init();
52
+ scr_lib_init(0, NULL);
53
+ ScrDyn *root = scr_message_decode(data);
54
+ assert(root && !scr_exc_pending());
55
+ ScrDyn *first = scr_dyn_obj_get(root, "first", 5);
56
+ assert(first == scr_dyn_obj_get(root, "second", 6));
57
+ assert(root == scr_dyn_obj_get(root, "self", 4));
58
+ assert(signbit(scr_dyn_obj_get(root, "negativeZero", 12)->v.num));
59
+ assert(isnan(scr_dyn_obj_get(root, "nan", 3)->v.num));
60
+ assert(isinf(scr_dyn_obj_get(root, "infinity", 8)->v.num));
61
+ ScrStr *text = scr_dyn_obj_get(root, "text", 4)->v.str;
62
+ assert(text->len == 6 && !memcmp(text->data, "a\0\xf0\x9f\x98\x80", 6));
63
+ text = scr_bigint_to_string(scr_dyn_obj_get(root, "integer", 7)->v.bigint, 10);
64
+ assert(text->len == 30 && !memcmp(text->data, "123456789012345678901234567890", 30));
65
+ scr_str_release(text);
66
+ ScrDyn *array = scr_dyn_obj_get(root, "array", 5);
67
+ assert(array->v.arr.len == 4);
68
+ assert(!scr_dyn_arr_has_index(array, 0) && scr_dyn_arr_has_index(array, 1));
69
+ assert(!scr_dyn_arr_has_index(array, 2) && scr_dyn_arr_has_index(array, 3));
70
+ assert(array->v.arr.items[3] == first);
71
+ ScrDyn *bytes = scr_dyn_obj_get(root, "bytes", 5);
72
+ assert(bytes == scr_dyn_obj_get(root, "again", 5));
73
+ assert(bytes->v.bytes->elem == SCR_BYTES_U16 && bytes->v.bytes->len == 3);
74
+ assert(scr_bytes_byte_offset(bytes->v.bytes) == 4);
75
+ ScrBytes *buffer = scr_dyn_obj_get(root, "buffer", 6)->v.handle.ptr;
76
+ assert(bytes->v.bytes->backing == buffer && buffer->len == 16);
77
+ bytes->v.bytes->data[0] = 91;
78
+ assert(buffer->data[4] == 91);
79
+ scr_dyn_release(root);
80
+ scr_context_cleanup();
81
+ return NULL;
82
+ }
83
+
84
+ static SCR_TL char getters[4];
85
+ static SCR_TL size_t getter_count;
86
+ static ScrDyn *read_getter(ScrClosure *closure, ScrDyn *const *args, size_t argc) {
87
+ (void)args; (void)argc;
88
+ double value = scr_box_get_f64(closure->caps[0]);
89
+ getters[getter_count++] = (char)value;
90
+ return scr_dyn_new_num(value);
91
+ }
92
+
93
+ static void define_getter(ScrDyn *object, const char *key, char marker) {
94
+ ScrClosure *closure = scr_closure_new(NULL, 1);
95
+ closure->caps[0] = scr_box_new(SCR_BOX_F64);
96
+ scr_box_set_f64(closure->caps[0], marker);
97
+ ScrDyn *descriptor = scr_dyn_new_obj();
98
+ scr_dyn_obj_set(descriptor, "get", 3, scr_dyn_new_func(closure, read_getter, 0, "", ""));
99
+ scr_dyn_obj_set(descriptor, "enumerable", 10, scr_dyn_new_bool(true));
100
+ ScrStr *name = scr_str_new(key, strlen(key));
101
+ ScrDyn *name_value = scr_dyn_new_str(name);
102
+ ScrDyn *result = scr_dyn_define_property(object, name_value, descriptor);
103
+ assert(result && !scr_exc_pending());
104
+ scr_dyn_release(result);
105
+ scr_dyn_release(name_value);
106
+ scr_dyn_release(descriptor);
107
+ scr_str_release(name);
108
+ }
109
+
110
+ static void check_getters(void) {
111
+ ScrDyn *root = scr_dyn_new_obj();
112
+ ScrDyn *nested = scr_dyn_new_obj();
113
+ define_getter(nested, "inner", 'a');
114
+ scr_dyn_obj_set(root, "first", 5, nested);
115
+ define_getter(root, "last", 'b');
116
+ ScrMessage *message = scr_message_encode(root);
117
+ assert(message && !scr_exc_pending());
118
+ assert(getter_count == 2 && !memcmp(getters, "ab", 2));
119
+ scr_message_free(message);
120
+ scr_dyn_release(root);
121
+ scr_collect_cycles();
122
+ }
123
+
124
+ static void check_rejection(void) {
125
+ ScrDyn *root = scr_dyn_new_obj();
126
+ ScrClosure *closure = scr_closure_new(NULL, 0);
127
+ ScrDyn *function = scr_dyn_new_func(closure, read_getter, 0, "", "");
128
+ scr_dyn_obj_set(root, "function", 8, function);
129
+ assert(!scr_message_encode(root) && scr_exc_pending());
130
+ scr_exc_clear();
131
+ scr_dyn_release(root);
132
+ scr_collect_cycles();
133
+ }
134
+
135
+ int main(void) {
136
+ scr_init();
137
+ scr_lib_init(0, NULL);
138
+ ScrDyn *source = make_graph();
139
+ ScrMessage *message = scr_message_encode(source);
140
+ assert(message && !scr_exc_pending());
141
+ scr_dyn_release(source);
142
+ /* The sender's graph is gone before any recipient starts decoding. */
143
+ scr_collect_cycles();
144
+ pthread_t receiver;
145
+ assert(pthread_create(&receiver, NULL, receive_graph, message) == 0);
146
+ assert(pthread_join(receiver, NULL) == 0);
147
+ scr_message_free(message);
148
+ check_getters();
149
+ check_rejection();
150
+ scr_context_cleanup();
151
+ puts("message graphs preserve identity, sparse values, byte aliases and getter order");
152
+ }
@@ -0,0 +1,44 @@
1
+ import { execFile } from "node:child_process";
2
+ import { mkdtemp, rm } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { promisify } from "node:util";
6
+ import { expect, test } from "vitest";
7
+ import { EXECUTABLE_RUNTIME_SOURCES } from "../../compiler/src/backend/native-toolchain.js";
8
+
9
+ const exec = promisify(execFile);
10
+
11
+ test.skipIf(process.platform === "win32")(
12
+ "message data outlives its sender and decodes into a separate runtime heap",
13
+ async () => {
14
+ const dir = await mkdtemp(join(tmpdir(), "scriptc-message-"));
15
+ try {
16
+ const bin = join(dir, "messages");
17
+ await exec("clang", [
18
+ "-std=c11",
19
+ "-O1",
20
+ "-pthread",
21
+ "-DSCR_WORKERS",
22
+ "-DSCR_RC_AUDIT",
23
+ "-fsanitize=address,undefined",
24
+ "-Wno-deprecated-declarations",
25
+ ...(process.platform === "linux" ? ["-D_GNU_SOURCE"] : []),
26
+ join(import.meta.dirname, "scr_message.test.c"),
27
+ join(import.meta.dirname, "scr_message.c"),
28
+ ...EXECUTABLE_RUNTIME_SOURCES.map((name) => join(import.meta.dirname, name)),
29
+ ...(process.platform === "linux" ? ["-lm"] : []),
30
+ "-o",
31
+ bin,
32
+ ]);
33
+ const result = await exec(bin, [], {
34
+ env: { ...process.env, UBSAN_OPTIONS: "halt_on_error=1" },
35
+ });
36
+ expect(result.stdout).toBe(
37
+ "message graphs preserve identity, sparse values, byte aliases and getter order\n",
38
+ );
39
+ expect(result.stderr).toBe("");
40
+ } finally {
41
+ await rm(dir, { recursive: true, force: true });
42
+ }
43
+ },
44
+ );