@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.
- package/dist/THIRD_PARTY_NOTICES +1 -1
- package/dist/bin/scriptc +0 -0
- package/dist/bin/scriptc.json +1 -1
- package/dist/lib/declarations/scriptc-node-fallback.d.ts +57 -30
- package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
- package/dist/lib/llvm/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3300 -772
- package/dist/lib/runtime-sources/package.json +1 -1
- package/dist/lib/runtime-sources/src/scr_array.c +212 -40
- package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
- package/dist/lib/runtime-sources/src/scr_async.c +401 -71
- package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
- package/dist/lib/runtime-sources/src/scr_bytes.c +50 -5
- package/dist/lib/runtime-sources/src/scr_bytes_io.c +47 -32
- package/dist/lib/runtime-sources/src/scr_child.c +48 -30
- package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
- package/dist/lib/runtime-sources/src/scr_console.c +27 -5
- package/dist/lib/runtime-sources/src/scr_context.c +167 -0
- package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
- package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
- package/dist/lib/runtime-sources/src/scr_copying.c +1 -0
- package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
- package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
- package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
- package/dist/lib/runtime-sources/src/scr_error.c +26 -14
- package/dist/lib/runtime-sources/src/scr_events.c +45 -31
- package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
- package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
- package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
- package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
- package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
- package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
- package/dist/lib/runtime-sources/src/scr_http.c +20 -16
- package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
- package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
- package/dist/lib/runtime-sources/src/scr_island.c +1 -1
- package/dist/lib/runtime-sources/src/scr_json.c +179 -45
- package/dist/lib/runtime-sources/src/scr_json.test.c +16 -0
- package/dist/lib/runtime-sources/src/scr_json.test.ts +1 -0
- package/dist/lib/runtime-sources/src/scr_key.h +28 -4
- package/dist/lib/runtime-sources/src/scr_lib.c +124 -63
- package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
- package/dist/lib/runtime-sources/src/scr_map.c +195 -46
- package/dist/lib/runtime-sources/src/scr_message.c +443 -0
- package/dist/lib/runtime-sources/src/scr_message.h +14 -0
- package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
- package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
- package/dist/lib/runtime-sources/src/scr_net.c +14 -12
- package/dist/lib/runtime-sources/src/scr_number.c +34 -0
- package/dist/lib/runtime-sources/src/scr_object.c +9 -4
- package/dist/lib/runtime-sources/src/scr_path.c +1 -1
- package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
- package/dist/lib/runtime-sources/src/scr_regex.c +113 -0
- package/dist/lib/runtime-sources/src/scr_runtime.h +170 -28
- package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
- package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
- package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
- package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
- package/dist/lib/runtime-sources/src/scr_string.c +224 -113
- package/dist/lib/runtime-sources/src/scr_test.c +8 -8
- package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
- package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
- package/dist/lib/runtime-sources/src/scr_union.c +10 -5
- package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
- package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
- package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
- package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
- package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
- package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
- package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
- package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
- package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
- package/package.json +1 -1
|
@@ -38,28 +38,28 @@ static ScrAlsCtx *scr_als_ctx_alloc(size_t len) {
|
|
|
38
38
|
return c;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
static double scr_als_counter = 0;
|
|
41
|
+
static SCR_TL double scr_als_counter = 0;
|
|
42
42
|
|
|
43
43
|
/* Main-slot teardown (atexit, LIFO after scr_init's audit registration —
|
|
44
44
|
* the dc-registry precedent): a top-level enterWith leaves a context in
|
|
45
45
|
* the main slot at exit; release it before the RC audit counts. */
|
|
46
46
|
static void scr_als_teardown(void) {
|
|
47
47
|
/* atexit runs on the main context — the active slot IS main's. */
|
|
48
|
-
scr_als_ctx_release(*
|
|
49
|
-
*
|
|
48
|
+
scr_als_ctx_release(*SCR_ALS_SLOT());
|
|
49
|
+
*SCR_ALS_SLOT() = NULL;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
double scr_als_new(void) {
|
|
53
|
-
static bool teardown_registered = false;
|
|
53
|
+
static SCR_TL bool teardown_registered = false;
|
|
54
54
|
if (!teardown_registered) {
|
|
55
55
|
teardown_registered = true;
|
|
56
|
-
|
|
56
|
+
scr_atexit(scr_als_teardown);
|
|
57
57
|
}
|
|
58
58
|
return ++scr_als_counter;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
ScrDyn *scr_als_get(double id) {
|
|
62
|
-
const ScrAlsCtx *c = *
|
|
62
|
+
const ScrAlsCtx *c = *SCR_ALS_SLOT();
|
|
63
63
|
if (c) {
|
|
64
64
|
for (size_t i = 0; i < c->len; i++) {
|
|
65
65
|
if (c->entries[i].id == id) return scr_dyn_retain(c->entries[i].value);
|
|
@@ -72,7 +72,7 @@ ScrDyn *scr_als_get(double id) {
|
|
|
72
72
|
* retained in), installed as the active context; the PREVIOUS snapshot
|
|
73
73
|
* returns (ownership moves out) for scr_als_restore. */
|
|
74
74
|
ScrAlsCtx *scr_als_enter(double id, ScrDyn *value) {
|
|
75
|
-
ScrAlsCtx *prev = *
|
|
75
|
+
ScrAlsCtx *prev = *SCR_ALS_SLOT();
|
|
76
76
|
size_t n = prev ? prev->len : 0;
|
|
77
77
|
bool have = false;
|
|
78
78
|
for (size_t i = 0; i < n; i++) {
|
|
@@ -88,13 +88,13 @@ ScrAlsCtx *scr_als_enter(double id, ScrDyn *value) {
|
|
|
88
88
|
}
|
|
89
89
|
next->entries[w].id = id;
|
|
90
90
|
next->entries[w].value = scr_dyn_retain(value);
|
|
91
|
-
*
|
|
91
|
+
*SCR_ALS_SLOT() = next;
|
|
92
92
|
return prev; /* ownership moves to the caller */
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/* The exit() arm: the id REMOVED from the snapshot. */
|
|
96
96
|
ScrAlsCtx *scr_als_enter_absent(double id) {
|
|
97
|
-
ScrAlsCtx *prev = *
|
|
97
|
+
ScrAlsCtx *prev = *SCR_ALS_SLOT();
|
|
98
98
|
size_t n = prev ? prev->len : 0;
|
|
99
99
|
size_t keep = 0;
|
|
100
100
|
for (size_t i = 0; i < n; i++) {
|
|
@@ -108,13 +108,13 @@ ScrAlsCtx *scr_als_enter_absent(double id) {
|
|
|
108
108
|
next->entries[w].value = scr_dyn_retain(prev->entries[i].value);
|
|
109
109
|
w++;
|
|
110
110
|
}
|
|
111
|
-
*
|
|
111
|
+
*SCR_ALS_SLOT() = next;
|
|
112
112
|
return prev;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
void scr_als_restore(ScrAlsCtx *prev) {
|
|
116
|
-
scr_als_ctx_release(*
|
|
117
|
-
*
|
|
116
|
+
scr_als_ctx_release(*SCR_ALS_SLOT());
|
|
117
|
+
*SCR_ALS_SLOT() = prev; /* ownership moves back in */
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
void scr_als_enter_with(double id, ScrDyn *value) {
|
|
@@ -166,12 +166,12 @@ static void scr_rej_release(ScrRejListener *l) {
|
|
|
166
166
|
if (--l->state->refs == 0) free(l->state);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
static uint64_t scr_rej_id = 0;
|
|
169
|
+
static SCR_TL uint64_t scr_rej_id = 0;
|
|
170
170
|
|
|
171
|
-
static ScrRejListener *scr_urj_listeners = NULL;
|
|
172
|
-
static size_t scr_nurj = 0, scr_urj_cap = 0;
|
|
173
|
-
static ScrRejListener *scr_rjh_listeners = NULL;
|
|
174
|
-
static size_t scr_nrjh = 0, scr_rjh_cap = 0;
|
|
171
|
+
static SCR_TL ScrRejListener *scr_urj_listeners = NULL;
|
|
172
|
+
static SCR_TL size_t scr_nurj = 0, scr_urj_cap = 0;
|
|
173
|
+
static SCR_TL ScrRejListener *scr_rjh_listeners = NULL;
|
|
174
|
+
static SCR_TL size_t scr_nrjh = 0, scr_rjh_cap = 0;
|
|
175
175
|
|
|
176
176
|
static void scr_urj_teardown(void) {
|
|
177
177
|
for (size_t i = 0; i < scr_nurj; i++) scr_rej_release(&scr_urj_listeners[i]);
|
|
@@ -239,10 +239,10 @@ static void scr_rjh_sync_hook(void) {
|
|
|
239
239
|
|
|
240
240
|
void scr_process_on_unhandled_rejection(ScrDyn *fn, bool once) {
|
|
241
241
|
if (!scr_rej_check_listener(fn)) return;
|
|
242
|
-
static bool teardown_armed = false;
|
|
242
|
+
static SCR_TL bool teardown_armed = false;
|
|
243
243
|
if (!teardown_armed) {
|
|
244
244
|
teardown_armed = true;
|
|
245
|
-
|
|
245
|
+
scr_atexit(scr_urj_teardown);
|
|
246
246
|
}
|
|
247
247
|
scr_rej_push(&scr_urj_listeners, &scr_nurj, &scr_urj_cap, fn, once);
|
|
248
248
|
scr_urj_sync_hook();
|
|
@@ -255,10 +255,10 @@ void scr_process_off_unhandled_rejection(ScrDyn *fn) {
|
|
|
255
255
|
|
|
256
256
|
void scr_process_on_rejection_handled(ScrDyn *fn, bool once) {
|
|
257
257
|
if (!scr_rej_check_listener(fn)) return;
|
|
258
|
-
static bool teardown_armed = false;
|
|
258
|
+
static SCR_TL bool teardown_armed = false;
|
|
259
259
|
if (!teardown_armed) {
|
|
260
260
|
teardown_armed = true;
|
|
261
|
-
|
|
261
|
+
scr_atexit(scr_rjh_teardown);
|
|
262
262
|
}
|
|
263
263
|
scr_rej_push(&scr_rjh_listeners, &scr_nrjh, &scr_rjh_cap, fn, once);
|
|
264
264
|
scr_rjh_sync_hook();
|
|
@@ -307,8 +307,8 @@ static bool scr_rej_fire(ScrRejListener **list, size_t *n, ScrDyn **args, size_t
|
|
|
307
307
|
|
|
308
308
|
/* Uncaught exception listeners share the checked-dynamic callback ABI.
|
|
309
309
|
* Monitors run first but do not handle the exception by themselves. */
|
|
310
|
-
static ScrRejListener *scr_uncaught_ls[2];
|
|
311
|
-
static size_t scr_uncaught_n[2], scr_uncaught_cap[2];
|
|
310
|
+
static SCR_TL ScrRejListener *scr_uncaught_ls[2];
|
|
311
|
+
static SCR_TL size_t scr_uncaught_n[2], scr_uncaught_cap[2];
|
|
312
312
|
static int scr_uncaught_dispatch(bool from_promise);
|
|
313
313
|
|
|
314
314
|
static void scr_uncaught_sync_hook(void) {
|
|
@@ -327,8 +327,8 @@ static void scr_uncaught_teardown(void) {
|
|
|
327
327
|
|
|
328
328
|
void scr_process_on_uncaught_exception(ScrDyn *fn, bool once, bool monitor) {
|
|
329
329
|
if (!scr_rej_check_listener(fn)) return;
|
|
330
|
-
static bool armed = false;
|
|
331
|
-
if (!armed) { armed = true;
|
|
330
|
+
static SCR_TL bool armed = false;
|
|
331
|
+
if (!armed) { armed = true; scr_atexit(scr_uncaught_teardown); }
|
|
332
332
|
size_t k = monitor ? 1 : 0;
|
|
333
333
|
scr_rej_push(&scr_uncaught_ls[k], &scr_uncaught_n[k], &scr_uncaught_cap[k], fn, once);
|
|
334
334
|
scr_uncaught_sync_hook();
|
|
@@ -605,8 +605,8 @@ ScrDyn *scr_await_dyn_value_settled(ScrDyn *value) {
|
|
|
605
605
|
* an ScrError (identity-cached, so a listener comparing two deliveries
|
|
606
606
|
* of one warning sees one object); a string `detail` joins the dyn node
|
|
607
607
|
* and the report's second line, exactly Node. */
|
|
608
|
-
static ScrDyn **scr_warn_listeners = NULL;
|
|
609
|
-
static size_t scr_nwarn = 0, scr_warn_cap = 0;
|
|
608
|
+
static SCR_TL ScrDyn **scr_warn_listeners = NULL;
|
|
609
|
+
static SCR_TL size_t scr_nwarn = 0, scr_warn_cap = 0;
|
|
610
610
|
|
|
611
611
|
static void scr_warn_teardown(void) {
|
|
612
612
|
for (size_t i = 0; i < scr_nwarn; i++) scr_dyn_release(scr_warn_listeners[i]);
|
|
@@ -629,7 +629,7 @@ void scr_process_on_warning(ScrDyn *fn) {
|
|
|
629
629
|
abort();
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
|
-
if (scr_nwarn == 0)
|
|
632
|
+
if (scr_nwarn == 0) scr_atexit(scr_warn_teardown);
|
|
633
633
|
scr_warn_listeners[scr_nwarn++] = scr_dyn_retain(fn);
|
|
634
634
|
}
|
|
635
635
|
|
|
@@ -671,7 +671,7 @@ static void scr_warning_dispatch(ScrDyn *w) {
|
|
|
671
671
|
if (ed && ed->kind == SCR_DYN_STR) fprintf(stderr, "\n%s", ed->v.str->data);
|
|
672
672
|
fputc('\n', stderr);
|
|
673
673
|
/* Node's one-time trace hint, after the first report. */
|
|
674
|
-
static bool hinted = false;
|
|
674
|
+
static SCR_TL bool hinted = false;
|
|
675
675
|
if (!hinted) {
|
|
676
676
|
hinted = true;
|
|
677
677
|
fputs("(Use `node --trace-warnings ...` to show where the warning was created)\n", stderr);
|
|
@@ -850,7 +850,7 @@ ScrDyn *scr_promise_reason_dyn(const ScrPromise *p) {
|
|
|
850
850
|
* promise<dyn> directly and every other inner type through the adapting
|
|
851
851
|
* constructor below. */
|
|
852
852
|
|
|
853
|
-
extern bool (*scr_dyn_promise_identity_fn)(ScrPromise *, ScrPromise *);
|
|
853
|
+
SCR_TL extern bool (*scr_dyn_promise_identity_fn)(ScrPromise *, ScrPromise *);
|
|
854
854
|
|
|
855
855
|
ScrDyn *scr_dyn_new_promise(ScrPromise *p) {
|
|
856
856
|
scr_dyn_promise_identity_fn = scr_promise_identity_equal;
|
|
@@ -132,6 +132,7 @@ ScrBytes *scr_bytes_take_data(uint8_t *data, size_t len) {
|
|
|
132
132
|
b->is_buffer = false;
|
|
133
133
|
b->is_data_view = false;
|
|
134
134
|
b->external = false;
|
|
135
|
+
b->shared = NULL;
|
|
135
136
|
#ifdef SCR_RC_AUDIT
|
|
136
137
|
scr_live_bytes++;
|
|
137
138
|
#endif
|
|
@@ -199,6 +200,7 @@ ScrBytes *scr_bytes_from_data(const uint8_t *data, size_t len) {
|
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
ScrBytes *scr_bytes_copy(const ScrBytes *src) {
|
|
203
|
+
SCR_SHARED_GUARD(src, NULL);
|
|
202
204
|
ScrBytes *b = scr_bytes_alloc_private(src->elem, src->len);
|
|
203
205
|
memcpy(b->data, src->data, src->len * scr_bytes_elem_size(src->elem));
|
|
204
206
|
return b;
|
|
@@ -221,6 +223,8 @@ void scr_bytes_release(ScrBytes *b) {
|
|
|
221
223
|
scr_weak_dispose(b);
|
|
222
224
|
if (b->backing) {
|
|
223
225
|
scr_bytes_release(b->backing); /* a view: data points into the owner */
|
|
226
|
+
} else if (b->shared) {
|
|
227
|
+
scr_shared_release(b->shared);
|
|
224
228
|
} else if (!b->external) {
|
|
225
229
|
free(b->data);
|
|
226
230
|
}
|
|
@@ -237,6 +241,7 @@ void scr_bytes_release_v(void *b) { scr_bytes_release((ScrBytes *)b); }
|
|
|
237
241
|
double scr_bytes_len(const ScrBytes *b) { return (double)b->len; }
|
|
238
242
|
|
|
239
243
|
void scr_bytes_copy_contents(ScrBytes *dst, const ScrBytes *src) {
|
|
244
|
+
SCR_SHARED_GUARD(dst, src);
|
|
240
245
|
if (dst->elem != src->elem || dst->len != src->len) {
|
|
241
246
|
scr_trap("scriptc: typed array snapshot shape changed\n");
|
|
242
247
|
}
|
|
@@ -268,6 +273,7 @@ static uint32_t scr_bytes_to_u32(double v) {
|
|
|
268
273
|
}
|
|
269
274
|
|
|
270
275
|
double scr_bytes_get(const ScrBytes *b, double i) {
|
|
276
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
271
277
|
size_t idx = scr_bytes_check_index(b, i);
|
|
272
278
|
switch (b->elem) {
|
|
273
279
|
case SCR_BYTES_U8: case SCR_BYTES_U8C:
|
|
@@ -312,6 +318,7 @@ double scr_bytes_get(const ScrBytes *b, double i) {
|
|
|
312
318
|
}
|
|
313
319
|
|
|
314
320
|
void scr_bytes_set(ScrBytes *b, double i, double v) {
|
|
321
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
315
322
|
if (!(i >= 0) || i != trunc(i) || i >= (double)b->len) return;
|
|
316
323
|
size_t idx = (size_t)i;
|
|
317
324
|
switch (b->elem) {
|
|
@@ -424,6 +431,7 @@ static void scr_bytes_convert_span(uint8_t *dst, ScrBytesElem dest_elem,
|
|
|
424
431
|
}
|
|
425
432
|
|
|
426
433
|
ScrBytes *scr_bytes_convert(ScrBytesElem elem, const ScrBytes *src) {
|
|
434
|
+
SCR_SHARED_GUARD(src, NULL);
|
|
427
435
|
if (elem == src->elem) return scr_bytes_copy(src);
|
|
428
436
|
ScrBytes *out = scr_bytes_alloc_private(elem, src->len);
|
|
429
437
|
scr_bytes_convert_span(out->data, elem, src->data, src->elem, src->len);
|
|
@@ -443,6 +451,7 @@ static size_t scr_bytes_rel_index(double i, size_t len) {
|
|
|
443
451
|
}
|
|
444
452
|
|
|
445
453
|
ScrBytes *scr_bytes_slice(const ScrBytes *b, double start, double end) {
|
|
454
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
446
455
|
size_t s = scr_bytes_rel_index(start, b->len);
|
|
447
456
|
size_t e = scr_bytes_rel_index(end, b->len);
|
|
448
457
|
size_t count = e > s ? e - s : 0;
|
|
@@ -453,6 +462,7 @@ ScrBytes *scr_bytes_slice(const ScrBytes *b, double start, double end) {
|
|
|
453
462
|
}
|
|
454
463
|
|
|
455
464
|
ScrBytes *scr_bytes_copy_within(ScrBytes *b, double target, double start, double end) {
|
|
465
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
456
466
|
size_t t = scr_bytes_rel_index(target, b->len);
|
|
457
467
|
size_t s = scr_bytes_rel_index(start, b->len);
|
|
458
468
|
size_t e = scr_bytes_rel_index(end, b->len);
|
|
@@ -468,6 +478,7 @@ ScrBytes *scr_bytes_copy_within(ScrBytes *b, double target, double start, double
|
|
|
468
478
|
* rounding), slice-clamped relative indices; answers the receiver +1
|
|
469
479
|
* (chaining). Never throws — Buffer's throwing fill family is separate. */
|
|
470
480
|
ScrBytes *scr_bytes_fill_elem(ScrBytes *b, double v, double start, double end) {
|
|
481
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
471
482
|
size_t s = scr_bytes_rel_index(start, b->len);
|
|
472
483
|
size_t e = scr_bytes_rel_index(end, b->len);
|
|
473
484
|
if (e > s) {
|
|
@@ -511,6 +522,7 @@ ScrBytes *scr_bytes_subarray(ScrBytes *b, double start, double end) {
|
|
|
511
522
|
v->is_buffer = b->is_buffer;
|
|
512
523
|
v->is_data_view = false;
|
|
513
524
|
v->external = false;
|
|
525
|
+
v->shared = owner->shared;
|
|
514
526
|
#ifdef SCR_RC_AUDIT
|
|
515
527
|
scr_live_bytes++;
|
|
516
528
|
#endif
|
|
@@ -518,6 +530,7 @@ ScrBytes *scr_bytes_subarray(ScrBytes *b, double start, double end) {
|
|
|
518
530
|
}
|
|
519
531
|
|
|
520
532
|
void scr_bytes_set_from(ScrBytes *dst, const ScrBytes *src, double offset) {
|
|
533
|
+
SCR_SHARED_GUARD(dst, src);
|
|
521
534
|
double t = (offset != offset) ? 0 : trunc(offset);
|
|
522
535
|
if (!(t >= 0) || (double)src->len + t > (double)dst->len) {
|
|
523
536
|
static const char msg[] = "offset is out of bounds";
|
|
@@ -625,7 +638,7 @@ ScrBytes *scr_bytes_from_dyn(ScrBytesElem elem, const ScrDyn *value, bool from)
|
|
|
625
638
|
return out;
|
|
626
639
|
}
|
|
627
640
|
if (value->kind == SCR_DYN_BYTES) return scr_bytes_convert(elem, value->v.bytes);
|
|
628
|
-
if (!from &&
|
|
641
|
+
if (!from && scr_buffer_storage_is(value)) return scr_array_buffer_view(elem, value, scr_dyn_undefined(), scr_dyn_undefined());
|
|
629
642
|
if (!from && (value->kind == SCR_DYN_NUM || value->kind == SCR_DYN_BOOL ||
|
|
630
643
|
value->kind == SCR_DYN_STR || value->kind == SCR_DYN_NULL || value->kind == SCR_DYN_UNDEF)) {
|
|
631
644
|
double number;
|
|
@@ -736,6 +749,7 @@ ScrBytes *scr_dataview_new(ScrBytes *src, double byte_off, bool has_len, double
|
|
|
736
749
|
v->is_buffer = false;
|
|
737
750
|
v->is_data_view = true;
|
|
738
751
|
v->external = false;
|
|
752
|
+
v->shared = owner->shared;
|
|
739
753
|
#ifdef SCR_RC_AUDIT
|
|
740
754
|
scr_live_bytes++;
|
|
741
755
|
#endif
|
|
@@ -784,6 +798,7 @@ static size_t scr_dataview_get_size(ScrDataViewGet kind) {
|
|
|
784
798
|
}
|
|
785
799
|
|
|
786
800
|
double scr_dataview_get(const ScrBytes *b, double byte_off, ScrDataViewGet kind, bool le) {
|
|
801
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
787
802
|
size_t width = scr_dataview_get_size(kind);
|
|
788
803
|
/* ToIndex, then the view-relative bounds check — Node's ONE constant
|
|
789
804
|
* message for every failure mode (negative, NaN is fine, too large). */
|
|
@@ -832,6 +847,7 @@ double scr_dataview_get(const ScrBytes *b, double byte_off, ScrDataViewGet kind,
|
|
|
832
847
|
}
|
|
833
848
|
|
|
834
849
|
void scr_dataview_set(ScrBytes *b, double byte_off, double value, ScrDataViewGet kind, bool le) {
|
|
850
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
835
851
|
size_t width = scr_dataview_get_size(kind);
|
|
836
852
|
/* ToIndex + the view-relative bounds check — the getters' ONE message. */
|
|
837
853
|
double off = (byte_off != byte_off) ? 0 : trunc(byte_off);
|
|
@@ -982,6 +998,7 @@ ScrStr *scr_str_from_utf8_lossy(const uint8_t *bytes, size_t len) {
|
|
|
982
998
|
* difference — a leading UTF-8 BOM is stripped (ignoreBOM defaults to
|
|
983
999
|
* false in the spec; Buffer.toString keeps the BOM as U+FEFF). */
|
|
984
1000
|
ScrStr *scr_text_decode_options(const ScrBytes *b, bool fatal, bool ignore_bom) {
|
|
1001
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
985
1002
|
const uint8_t *in = b->data;
|
|
986
1003
|
size_t n = b->len;
|
|
987
1004
|
if (!ignore_bom && n >= 3 && in[0] == 0xef && in[1] == 0xbb && in[2] == 0xbf) {
|
|
@@ -1004,7 +1021,7 @@ ScrBytes *scr_bytes_buffer_source(const ScrDyn *value) {
|
|
|
1004
1021
|
ScrBytes *bytes = value->v.bytes;
|
|
1005
1022
|
return scr_bytes_buffer_view(bytes, SCR_BYTES_U8, scr_bytes_byte_offset(bytes), true, scr_bytes_byte_len(bytes));
|
|
1006
1023
|
}
|
|
1007
|
-
if (
|
|
1024
|
+
if (scr_buffer_storage_is(value)) {
|
|
1008
1025
|
return scr_array_buffer_view(SCR_BYTES_U8, value, scr_dyn_undefined(), scr_dyn_undefined());
|
|
1009
1026
|
}
|
|
1010
1027
|
static const char message[] = "The input argument must be an instance of SharedArrayBuffer, ArrayBuffer or ArrayBufferView.";
|
|
@@ -1175,12 +1192,14 @@ static ScrStr *scr_strdec_step(const ScrStr *enc, double pending, const ScrBytes
|
|
|
1175
1192
|
|
|
1176
1193
|
/* decoder.write(chunk): the decoded complete prefix (+1). */
|
|
1177
1194
|
ScrStr *scr_strdec_write(const ScrStr *enc, double pending, const ScrBytes *chunk) {
|
|
1195
|
+
SCR_SHARED_GUARD(chunk, NULL);
|
|
1178
1196
|
double hold;
|
|
1179
1197
|
return scr_strdec_step(enc, pending, chunk, true, &hold);
|
|
1180
1198
|
}
|
|
1181
1199
|
|
|
1182
1200
|
/* The decoder state AFTER a write: the packed trailing partial sequence. */
|
|
1183
1201
|
double scr_strdec_next(const ScrStr *enc, double pending, const ScrBytes *chunk) {
|
|
1202
|
+
SCR_SHARED_GUARD(chunk, NULL);
|
|
1184
1203
|
double hold = 0;
|
|
1185
1204
|
scr_strdec_step(enc, pending, chunk, false, &hold);
|
|
1186
1205
|
return hold;
|
|
@@ -1221,6 +1240,7 @@ static void scr_bytes_to_str_bounds(const ScrBytes *b, double start, double end,
|
|
|
1221
1240
|
* form). Delegates to the whole-buffer decoder
|
|
1222
1241
|
* through a stack view — no allocation, no rc traffic. */
|
|
1223
1242
|
ScrStr *scr_bytes_to_str_range(const ScrBytes *b, const ScrStr *enc, double start, double end) {
|
|
1243
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
1224
1244
|
size_t s0, e0;
|
|
1225
1245
|
scr_bytes_to_str_bounds(b, start, end, &s0, &e0);
|
|
1226
1246
|
ScrBytes view = { .rc = 1, .len = e0 - s0, .elem = b->elem, .data = b->data + s0, .backing = NULL };
|
|
@@ -1823,6 +1843,7 @@ static ScrStr *scr_td_iso_2022_jp_decode(const ScrBytes *b, bool fatal) {
|
|
|
1823
1843
|
}
|
|
1824
1844
|
|
|
1825
1845
|
ScrStr *scr_text_decode_legacy_options(const ScrBytes *b, double encoding_value, bool fatal, bool ignore_bom) {
|
|
1846
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
1826
1847
|
unsigned encoding = (unsigned)encoding_value;
|
|
1827
1848
|
if (encoding == 36) encoding = 7; /* ISO-8859-8-I */
|
|
1828
1849
|
if (encoding == 37) encoding = SCR_TD_GB18030; /* GBK */
|
|
@@ -1863,6 +1884,7 @@ static size_t scr_td_utf8_tail(const uint8_t *bytes, size_t n) {
|
|
|
1863
1884
|
|
|
1864
1885
|
ScrStr *scr_text_decode_stream(ScrDyn *state, const ScrBytes *input,
|
|
1865
1886
|
double encoding, bool fatal, bool ignore_bom, bool stream) {
|
|
1887
|
+
SCR_SHARED_GUARD(input, NULL);
|
|
1866
1888
|
if (encoding == 36) encoding = 7; /* ISO-8859-8-I is a single-byte decoder. */
|
|
1867
1889
|
ScrDyn *saved = scr_dyn_obj_read(state, "pending", 7);
|
|
1868
1890
|
size_t pending = saved->kind == SCR_DYN_BYTES ? saved->v.bytes->len : 0;
|
|
@@ -1950,6 +1972,7 @@ ScrDyn *scr_text_encode_into(const ScrDyn *source, const ScrDyn *destination) {
|
|
|
1950
1972
|
}
|
|
1951
1973
|
const ScrStr *text = source->v.str;
|
|
1952
1974
|
ScrBytes *dest = destination->v.bytes;
|
|
1975
|
+
SCR_SHARED_GUARD(dest, NULL);
|
|
1953
1976
|
size_t read = 0, written = 0;
|
|
1954
1977
|
size_t limit = text->len < dest->len ? text->len : dest->len;
|
|
1955
1978
|
while (written < limit) {
|
|
@@ -1971,7 +1994,7 @@ ScrDyn *scr_text_encode_into(const ScrDyn *source, const ScrDyn *destination) {
|
|
|
1971
1994
|
}
|
|
1972
1995
|
|
|
1973
1996
|
static ScrBytes *scr_buffer_validation_input(const ScrDyn *input) {
|
|
1974
|
-
if ((input->kind == SCR_DYN_BYTES && !input->v.bytes->is_data_view) ||
|
|
1997
|
+
if ((input->kind == SCR_DYN_BYTES && !input->v.bytes->is_data_view) || scr_buffer_storage_is(input)) {
|
|
1975
1998
|
return scr_bytes_buffer_source(input);
|
|
1976
1999
|
}
|
|
1977
2000
|
scr_dyn_arg_type_fail("input", "an instance of ArrayBuffer, Buffer, or TypedArray", input);
|
|
@@ -1986,6 +2009,7 @@ static bool scr_buffer_utf8_valid(const uint8_t *data, size_t len) {
|
|
|
1986
2009
|
bool scr_buffer_is_ascii(const ScrDyn *input) {
|
|
1987
2010
|
ScrBytes *bytes = scr_buffer_validation_input(input);
|
|
1988
2011
|
if (!bytes) return false;
|
|
2012
|
+
SCR_SHARED_GUARD(bytes, NULL);
|
|
1989
2013
|
bool result = scr_bytes_ascii_prefix(bytes->data, bytes->len) == bytes->len;
|
|
1990
2014
|
scr_bytes_release(bytes);
|
|
1991
2015
|
return result;
|
|
@@ -1994,6 +2018,7 @@ bool scr_buffer_is_ascii(const ScrDyn *input) {
|
|
|
1994
2018
|
bool scr_buffer_is_utf8(const ScrDyn *input) {
|
|
1995
2019
|
ScrBytes *bytes = scr_buffer_validation_input(input);
|
|
1996
2020
|
if (!bytes) return false;
|
|
2021
|
+
SCR_SHARED_GUARD(bytes, NULL);
|
|
1997
2022
|
bool result = scr_buffer_utf8_valid(bytes->data, bytes->len);
|
|
1998
2023
|
scr_bytes_release(bytes);
|
|
1999
2024
|
return result;
|
|
@@ -2084,6 +2109,7 @@ ScrBytes *scr_buffer_transcode(const ScrDyn *source, const ScrDyn *from, const S
|
|
|
2084
2109
|
return NULL;
|
|
2085
2110
|
}
|
|
2086
2111
|
const ScrBytes *input = source->v.bytes;
|
|
2112
|
+
SCR_BYTES_SNAPSHOT(input);
|
|
2087
2113
|
size_t len = input->len;
|
|
2088
2114
|
if (!len) { ScrBytes *empty = scr_bytes_alloc(SCR_BYTES_U8, 0); empty->is_buffer = true; return empty; }
|
|
2089
2115
|
int from_encoding = scr_transcode_encoding(from), to_encoding = scr_transcode_encoding(to);
|
|
@@ -2167,6 +2193,7 @@ static ScrStr *scr_bytes_decode_utf16le(const uint8_t *in, size_t n) {
|
|
|
2167
2193
|
}
|
|
2168
2194
|
|
|
2169
2195
|
ScrStr *scr_bytes_to_str(const ScrBytes *b, const ScrStr *enc) {
|
|
2196
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2170
2197
|
const uint8_t *in = b->data;
|
|
2171
2198
|
size_t n = b->len; /* u8: len == byte length */
|
|
2172
2199
|
/* Implicit native string/number coercions have no encoding argument. */
|
|
@@ -2496,6 +2523,7 @@ bool scr_bytes_validate_off(const char *name, double value, double max) {
|
|
|
2496
2523
|
}
|
|
2497
2524
|
|
|
2498
2525
|
bool scr_bytes_equals(const ScrBytes *a, const ScrBytes *b) {
|
|
2526
|
+
SCR_SHARED_GUARD(a, b);
|
|
2499
2527
|
return a->len == b->len && memcmp(a->data, b->data, a->len) == 0;
|
|
2500
2528
|
}
|
|
2501
2529
|
|
|
@@ -2505,6 +2533,7 @@ bool scr_bytes_equals(const ScrBytes *a, const ScrBytes *b) {
|
|
|
2505
2533
|
* Node's exactly. */
|
|
2506
2534
|
double scr_bytes_compare(const ScrBytes *src, const ScrBytes *target, double nargs,
|
|
2507
2535
|
double ts, double te, double ss, double se) {
|
|
2536
|
+
SCR_SHARED_GUARD(src, target);
|
|
2508
2537
|
size_t n = (size_t)nargs;
|
|
2509
2538
|
if (n < 1) ts = 0;
|
|
2510
2539
|
else if (!scr_bytes_validate_off("targetStart", ts, 9007199254740991.0)) return 0;
|
|
@@ -2533,6 +2562,7 @@ double scr_bytes_compare(const ScrBytes *src, const ScrBytes *target, double nar
|
|
|
2533
2562
|
* count from the end, and a still-negative backward search answers -1),
|
|
2534
2563
|
* and the utf16le alignment stride. */
|
|
2535
2564
|
double scr_bytes_index_of(const ScrBytes *b, const ScrBytes *needle, double off, double align, bool fwd) {
|
|
2565
|
+
SCR_SHARED_GUARD(b, needle);
|
|
2536
2566
|
size_t len = b->len, nlen = needle->len;
|
|
2537
2567
|
size_t step = align == 2 ? 2 : 1;
|
|
2538
2568
|
double o = (off != off) ? (fwd ? 0 : (double)len) : trunc(off);
|
|
@@ -2563,6 +2593,7 @@ double scr_bytes_index_of(const ScrBytes *b, const ScrBytes *needle, double off,
|
|
|
2563
2593
|
}
|
|
2564
2594
|
|
|
2565
2595
|
double scr_bytes_index_of_num(const ScrBytes *b, double v, double off, bool fwd) {
|
|
2596
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2566
2597
|
uint8_t byte = (uint8_t)scr_bytes_to_u32(v);
|
|
2567
2598
|
ScrBytes needle = { .rc = 1, .len = 1, .elem = SCR_BYTES_U8, .data = &byte, .backing = NULL };
|
|
2568
2599
|
return scr_bytes_index_of(b, &needle, off, 1, fwd);
|
|
@@ -2599,16 +2630,19 @@ static ScrBytes *scr_bytes_fill_core(ScrBytes *b, const uint8_t *pat, size_t pat
|
|
|
2599
2630
|
}
|
|
2600
2631
|
|
|
2601
2632
|
ScrBytes *scr_bytes_fill(ScrBytes *b, const ScrBytes *pattern, double nargs, double offset, double end) {
|
|
2633
|
+
SCR_SHARED_GUARD(b, pattern);
|
|
2602
2634
|
return scr_bytes_fill_core(b, pattern->data, pattern->len, false, nargs, offset, end);
|
|
2603
2635
|
}
|
|
2604
2636
|
|
|
2605
2637
|
ScrBytes *scr_bytes_fill_num(ScrBytes *b, double v, double nargs, double offset, double end) {
|
|
2638
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2606
2639
|
uint8_t byte = (uint8_t)scr_bytes_to_u32(v);
|
|
2607
2640
|
return scr_bytes_fill_core(b, &byte, 1, false, nargs, offset, end);
|
|
2608
2641
|
}
|
|
2609
2642
|
|
|
2610
2643
|
ScrBytes *scr_bytes_fill_str(ScrBytes *b, const ScrStr *s, const ScrStr *enc,
|
|
2611
2644
|
double nargs, double offset, double end) {
|
|
2645
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2612
2646
|
ScrBytes *pat = scr_bytes_from_str(s, enc);
|
|
2613
2647
|
ScrBytes *r = scr_bytes_fill_core(b, pat->data, pat->len, true, nargs, offset, end);
|
|
2614
2648
|
scr_bytes_release(pat);
|
|
@@ -2621,6 +2655,7 @@ ScrBytes *scr_bytes_fill_str(ScrBytes *b, const ScrStr *s, const ScrStr *enc,
|
|
|
2621
2655
|
* bounded by the source length. Returns the byte count copied. */
|
|
2622
2656
|
double scr_bytes_copy_into(const ScrBytes *src, ScrBytes *dst, double nargs,
|
|
2623
2657
|
double ts, double ss, double se) {
|
|
2658
|
+
SCR_SHARED_GUARD(src, dst);
|
|
2624
2659
|
size_t n = (size_t)nargs;
|
|
2625
2660
|
ts = n < 1 ? 0 : trunc(ts);
|
|
2626
2661
|
ss = n < 2 ? 0 : trunc(ss);
|
|
@@ -2643,6 +2678,7 @@ double scr_bytes_copy_into(const ScrBytes *src, ScrBytes *dst, double nargs,
|
|
|
2643
2678
|
* (+1, chaining like fill). A length off the width is Node's constant
|
|
2644
2679
|
* ERR_INVALID_BUFFER_SIZE RangeError. */
|
|
2645
2680
|
ScrBytes *scr_bytes_swap(ScrBytes *b, double width) {
|
|
2681
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2646
2682
|
size_t w = (size_t)width;
|
|
2647
2683
|
if (b->len % w != 0) {
|
|
2648
2684
|
char msg[64];
|
|
@@ -2668,6 +2704,7 @@ ScrBytes *scr_bytes_swap(ScrBytes *b, double width) {
|
|
|
2668
2704
|
* lone lead), byte-level for the rest. Returns the bytes written. */
|
|
2669
2705
|
double scr_bytes_write_str(ScrBytes *b, const ScrStr *s, const ScrStr *enc,
|
|
2670
2706
|
double offset, double len, bool has_len) {
|
|
2707
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2671
2708
|
if (!scr_bytes_validate_off("offset", offset, (double)b->len)) return 0;
|
|
2672
2709
|
size_t o = (size_t)offset;
|
|
2673
2710
|
size_t remaining = b->len - o;
|
|
@@ -2771,7 +2808,7 @@ ScrBytes *scr_bytes_concat_len(const ScrArr *list, double total) {
|
|
|
2771
2808
|
return NULL;
|
|
2772
2809
|
}
|
|
2773
2810
|
size_t take = part->len < b->len - o ? part->len : b->len - o;
|
|
2774
|
-
|
|
2811
|
+
scr_bytes_read(part, 0, b->data + o, take);
|
|
2775
2812
|
o += take;
|
|
2776
2813
|
scr_bytes_release(part);
|
|
2777
2814
|
}
|
|
@@ -2837,7 +2874,7 @@ ScrBytes *scr_bytes_concat(const ScrArr *list) {
|
|
|
2837
2874
|
scr_bytes_release(b);
|
|
2838
2875
|
return NULL;
|
|
2839
2876
|
}
|
|
2840
|
-
|
|
2877
|
+
scr_bytes_read(part, 0, b->data + o, part->len);
|
|
2841
2878
|
o += part->len;
|
|
2842
2879
|
scr_bytes_release(part);
|
|
2843
2880
|
}
|
|
@@ -2968,6 +3005,7 @@ static size_t scr_bytes_num_width(ScrBytesNumKind kind) {
|
|
|
2968
3005
|
}
|
|
2969
3006
|
|
|
2970
3007
|
double scr_bytes_read_num(const ScrBytes *b, double offset, ScrBytesNumKind kind, bool le) {
|
|
3008
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
2971
3009
|
size_t width = scr_bytes_num_width(kind);
|
|
2972
3010
|
if (!scr_bytes_rw_check(b, offset, width)) return 0;
|
|
2973
3011
|
const uint8_t *p = b->data + (size_t)offset;
|
|
@@ -3002,6 +3040,7 @@ double scr_bytes_read_num(const ScrBytes *b, double offset, ScrBytesNumKind kind
|
|
|
3002
3040
|
}
|
|
3003
3041
|
|
|
3004
3042
|
double scr_bytes_write_num(ScrBytes *b, double value, double offset, ScrBytesNumKind kind, bool le) {
|
|
3043
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3005
3044
|
size_t width = scr_bytes_num_width(kind);
|
|
3006
3045
|
uint64_t u;
|
|
3007
3046
|
if (kind == SCR_BN_F32 || kind == SCR_BN_F64) {
|
|
@@ -3033,6 +3072,7 @@ double scr_bytes_write_num(ScrBytes *b, double value, double offset, ScrBytesNum
|
|
|
3033
3072
|
/* readUIntLE/BE / readIntLE/BE — the variable-width family: byteLength
|
|
3034
3073
|
* validates FIRST (1-6, its own error ladder), then the offset gate. */
|
|
3035
3074
|
double scr_bytes_read_var(const ScrBytes *b, double offset, double byte_length, bool sign, bool le) {
|
|
3075
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3036
3076
|
if (floor(byte_length) != byte_length || byte_length < 1 || byte_length > 6) {
|
|
3037
3077
|
scr_bytes_bounds_error(byte_length, 6, "byteLength");
|
|
3038
3078
|
return 0;
|
|
@@ -3053,6 +3093,7 @@ double scr_bytes_read_var(const ScrBytes *b, double offset, double byte_length,
|
|
|
3053
3093
|
/* writeUIntLE/BE / writeIntLE/BE: byteLength, then value, then offset —
|
|
3054
3094
|
* Node's exact check order. Returns offset + byteLength. */
|
|
3055
3095
|
double scr_bytes_write_var(ScrBytes *b, double value, double offset, double byte_length, bool sign, bool le) {
|
|
3096
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3056
3097
|
if (floor(byte_length) != byte_length || byte_length < 1 || byte_length > 6) {
|
|
3057
3098
|
scr_bytes_bounds_error(byte_length, 6, "byteLength");
|
|
3058
3099
|
return 0;
|
|
@@ -3070,6 +3111,7 @@ double scr_bytes_write_var(ScrBytes *b, double value, double offset, double byte
|
|
|
3070
3111
|
}
|
|
3071
3112
|
|
|
3072
3113
|
bool scr_bytes_read_u64_raw(const ScrBytes *b, double offset, bool le, uint64_t *out) {
|
|
3114
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3073
3115
|
if (!scr_bytes_rw_check(b, offset, 8)) return false;
|
|
3074
3116
|
const uint8_t *p = b->data + (size_t)offset;
|
|
3075
3117
|
uint64_t value = 0;
|
|
@@ -3079,6 +3121,7 @@ bool scr_bytes_read_u64_raw(const ScrBytes *b, double offset, bool le, uint64_t
|
|
|
3079
3121
|
}
|
|
3080
3122
|
|
|
3081
3123
|
bool scr_bytes_write_u64_raw(ScrBytes *b, double offset, bool le, uint64_t value) {
|
|
3124
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3082
3125
|
if (!scr_bytes_rw_check(b, offset, 8)) return false;
|
|
3083
3126
|
uint8_t *p = b->data + (size_t)offset;
|
|
3084
3127
|
for (size_t i = 0; i < 8; i++) p[le ? i : 7 - i] = (uint8_t)(value >> (8 * i));
|
|
@@ -3096,6 +3139,7 @@ static bool scr_dataview_u64_check(const ScrBytes *b, double byte_off) {
|
|
|
3096
3139
|
}
|
|
3097
3140
|
|
|
3098
3141
|
bool scr_dataview_read_u64_raw(const ScrBytes *b, double offset, bool le, uint64_t *out) {
|
|
3142
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3099
3143
|
double off = (offset != offset) ? 0 : trunc(offset);
|
|
3100
3144
|
if (!scr_dataview_u64_check(b, offset)) return false;
|
|
3101
3145
|
const uint8_t *p = b->data + (size_t)off;
|
|
@@ -3106,6 +3150,7 @@ bool scr_dataview_read_u64_raw(const ScrBytes *b, double offset, bool le, uint64
|
|
|
3106
3150
|
}
|
|
3107
3151
|
|
|
3108
3152
|
bool scr_dataview_write_u64_raw(ScrBytes *b, double offset, bool le, uint64_t value) {
|
|
3153
|
+
SCR_SHARED_GUARD(b, NULL);
|
|
3109
3154
|
double off = (offset != offset) ? 0 : trunc(offset);
|
|
3110
3155
|
if (!scr_dataview_u64_check(b, offset)) return false;
|
|
3111
3156
|
uint8_t *p = b->data + (size_t)off;
|