@scriptc/cli-darwin-x64 0.0.0 → 0.2.1
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/LICENSE +202 -0
- package/dist/THIRD_PARTY_NOTICES +4 -0
- package/dist/bin/scriptc +0 -0
- package/dist/bin/scriptc.json +21 -0
- package/dist/lib/declarations/scriptc-node-fallback.d.ts +3857 -0
- package/dist/lib/declarations/scriptc-overrides.d.ts +92 -0
- package/dist/lib/declarations/scriptc.d.ts +98 -0
- package/dist/lib/llvm/LICENSE +1 -0
- package/dist/lib/llvm/SCRIPTC_LICENSE +1 -0
- package/dist/lib/llvm/THIRD_PARTY_NOTICES +1 -0
- package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
- package/dist/lib/llvm/package.json +35 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_inspect_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_net_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_web.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_zlib_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_library.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_library.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_library.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_library.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/mbedtls.txt +553 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/quickjs-ng.txt +24 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/ryu.txt +23 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/scriptc-runtime.txt +202 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/unicode.txt +39 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/v8-number-radix.txt +61 -0
- package/dist/lib/runtime-darwin-x64/artifacts/licenses/zlib.txt +22 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_inspect_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_net_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_web.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_zlib_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/vendor/libregexp/libscriptc-libregexp.a +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/vendor/mbedtls/libscriptc-mbedtls.a +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/vendor/quickjs/libscriptc-quickjs.a +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/vendor/zlib/libscriptc-zlib.a +0 -0
- package/dist/lib/runtime-darwin-x64/package.json +24 -0
- package/dist/lib/runtime-darwin-x64/runtime-pack.json +5762 -0
- package/dist/lib/runtime-sources/LICENSE +202 -0
- package/dist/lib/runtime-sources/package.json +22 -0
- package/dist/lib/runtime-sources/src/scr_array.c +1460 -0
- package/dist/lib/runtime-sources/src/scr_assert.c +1538 -0
- package/dist/lib/runtime-sources/src/scr_async.c +3945 -0
- package/dist/lib/runtime-sources/src/scr_async.test.c +134 -0
- package/dist/lib/runtime-sources/src/scr_async.test.ts +34 -0
- package/dist/lib/runtime-sources/src/scr_async_dyn.c +877 -0
- package/dist/lib/runtime-sources/src/scr_bigint.c +898 -0
- package/dist/lib/runtime-sources/src/scr_bigint_assert.c +22 -0
- package/dist/lib/runtime-sources/src/scr_bytes.c +2682 -0
- package/dist/lib/runtime-sources/src/scr_bytes_io.c +1324 -0
- package/dist/lib/runtime-sources/src/scr_child.c +6335 -0
- package/dist/lib/runtime-sources/src/scr_closure.c +213 -0
- package/dist/lib/runtime-sources/src/scr_console.c +259 -0
- package/dist/lib/runtime-sources/src/scr_console_native.c +95 -0
- package/dist/lib/runtime-sources/src/scr_copying.c +146 -0
- package/dist/lib/runtime-sources/src/scr_crypto_async.c +24 -0
- package/dist/lib/runtime-sources/src/scr_cycle.c +565 -0
- package/dist/lib/runtime-sources/src/scr_dc.c +814 -0
- package/dist/lib/runtime-sources/src/scr_dgram.c +1182 -0
- package/dist/lib/runtime-sources/src/scr_dyn_handle.c +96 -0
- package/dist/lib/runtime-sources/src/scr_dyn_invoke.c +1759 -0
- package/dist/lib/runtime-sources/src/scr_error.c +419 -0
- package/dist/lib/runtime-sources/src/scr_events.c +1222 -0
- package/dist/lib/runtime-sources/src/scr_events_emitter.c +842 -0
- package/dist/lib/runtime-sources/src/scr_exception.c +484 -0
- package/dist/lib/runtime-sources/src/scr_fetch.c +7479 -0
- package/dist/lib/runtime-sources/src/scr_fetch_curl.c +666 -0
- package/dist/lib/runtime-sources/src/scr_ffi.c +143 -0
- package/dist/lib/runtime-sources/src/scr_ffi_queue.c +379 -0
- package/dist/lib/runtime-sources/src/scr_file_handle.c +562 -0
- package/dist/lib/runtime-sources/src/scr_grapheme.c +203 -0
- package/dist/lib/runtime-sources/src/scr_grapheme_data.h +842 -0
- package/dist/lib/runtime-sources/src/scr_http.c +5811 -0
- package/dist/lib/runtime-sources/src/scr_http2.c +3243 -0
- package/dist/lib/runtime-sources/src/scr_inspect.c +923 -0
- package/dist/lib/runtime-sources/src/scr_inspect_island.c +51 -0
- package/dist/lib/runtime-sources/src/scr_island.c +10012 -0
- package/dist/lib/runtime-sources/src/scr_island_manifest.h +153 -0
- package/dist/lib/runtime-sources/src/scr_json.c +8986 -0
- package/dist/lib/runtime-sources/src/scr_json.test.c +182 -0
- package/dist/lib/runtime-sources/src/scr_json.test.ts +33 -0
- package/dist/lib/runtime-sources/src/scr_lib.c +6304 -0
- package/dist/lib/runtime-sources/src/scr_library.c +444 -0
- package/dist/lib/runtime-sources/src/scr_loop_epoll.c +241 -0
- package/dist/lib/runtime-sources/src/scr_loop_kqueue.c +121 -0
- package/dist/lib/runtime-sources/src/scr_loop_wsapoll.c +208 -0
- package/dist/lib/runtime-sources/src/scr_map.c +752 -0
- package/dist/lib/runtime-sources/src/scr_musl.c +438 -0
- package/dist/lib/runtime-sources/src/scr_net.c +3708 -0
- package/dist/lib/runtime-sources/src/scr_net_island.c +458 -0
- package/dist/lib/runtime-sources/src/scr_node_builtin.c +291 -0
- package/dist/lib/runtime-sources/src/scr_number.c +192 -0
- package/dist/lib/runtime-sources/src/scr_object.c +91 -0
- package/dist/lib/runtime-sources/src/scr_path.c +1281 -0
- package/dist/lib/runtime-sources/src/scr_platform.h +119 -0
- package/dist/lib/runtime-sources/src/scr_qs.c +496 -0
- package/dist/lib/runtime-sources/src/scr_readline.c +288 -0
- package/dist/lib/runtime-sources/src/scr_regex.c +1313 -0
- package/dist/lib/runtime-sources/src/scr_runtime.h +7364 -0
- package/dist/lib/runtime-sources/src/scr_stream.c +3346 -0
- package/dist/lib/runtime-sources/src/scr_string.c +1864 -0
- package/dist/lib/runtime-sources/src/scr_symbol.c +239 -0
- package/dist/lib/runtime-sources/src/scr_test.c +662 -0
- package/dist/lib/runtime-sources/src/scr_text_decoder_data.h +7389 -0
- package/dist/lib/runtime-sources/src/scr_text_decoder_labels.h +225 -0
- package/dist/lib/runtime-sources/src/scr_tls.c +1806 -0
- package/dist/lib/runtime-sources/src/scr_tls_ca.c +433 -0
- package/dist/lib/runtime-sources/src/scr_union.c +105 -0
- package/dist/lib/runtime-sources/src/scr_url.c +1400 -0
- package/dist/lib/runtime-sources/src/scr_url_internal.h +29 -0
- package/dist/lib/runtime-sources/src/scr_url_params.c +526 -0
- package/dist/lib/runtime-sources/src/scr_util.c +984 -0
- package/dist/lib/runtime-sources/src/scr_watch.c +568 -0
- package/dist/lib/runtime-sources/src/scr_web.c +1854 -0
- package/dist/lib/runtime-sources/src/scr_win.c +231 -0
- package/dist/lib/runtime-sources/src/scr_win_stats.h +23 -0
- package/dist/lib/runtime-sources/src/scr_zlib.c +358 -0
- package/dist/lib/runtime-sources/src/scr_zlib_island.c +15 -0
- package/dist/lib/runtime-sources/vendor/README.md +60 -0
- package/dist/lib/runtime-sources/vendor/curl/COPYRIGHT +534 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/curl.h +3214 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/curlver.h +79 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/easy.h +125 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/header.h +74 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/mprintf.h +52 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/multi.h +460 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/options.h +70 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/stdcheaders.h +35 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/system.h +508 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/typecheck-gcc.h +716 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/urlapi.h +149 -0
- package/dist/lib/runtime-sources/vendor/curl/include/curl/websockets.h +84 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/LICENSE +553 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/CMakeLists.txt +22 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/aes.h +631 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/aria.h +343 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/base64.h +82 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/debug.h +156 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/des.h +385 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/error.h +201 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/lms.h +440 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/md.h +526 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/md5.h +190 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/oid.h +727 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pem.h +160 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform.h +516 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/threading.h +167 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/timing.h +94 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/version.h +78 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509.h +500 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/build_info.h +20 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto.h +4998 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_config.h +145 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_types.h +508 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aes.c +2294 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aesce.c +624 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aesce.h +136 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aesni.c +846 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aesni.h +162 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/alignment.h +704 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/aria.c +969 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/asn1parse.c +468 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/asn1write.c +440 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/base64.c +322 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/base64_internal.h +45 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum.c +2583 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core.c +1240 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core.h +872 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_internal.h +122 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod.c +394 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod.h +452 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/block_cipher.c +207 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/block_cipher_internal.h +99 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/bn_mul.h +1094 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/camellia.c +1058 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ccm.c +777 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/chacha20.c +563 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/chacha20_internal.h +23 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/chachapoly.c +487 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/check_crypto_config.h +136 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher.c +1712 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_invasive.h +28 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_wrap.c +2482 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/cipher_wrap.h +178 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/cmac.c +1067 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/common.h +487 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time.c +247 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time_impl.h +541 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/constant_time_internal.h +579 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ctr.h +35 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ctr_drbg.c +1016 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/debug.c +475 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/debug_internal.h +185 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/des.c +1042 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/dhm.c +700 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecdh.c +696 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecdsa.c +858 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecjpake.c +1216 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp.c +3674 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_curves.c +6125 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_curves_new.c +9 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ecp_invasive.h +305 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy.c +680 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy_poll.c +233 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/entropy_poll.h +64 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/error.c +878 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/gcm.c +1330 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/hkdf.c +161 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/hmac_drbg.c +633 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/lmots.c +789 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/lmots.h +288 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/lms.c +778 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/md.c +1108 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/md5.c +426 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/md_psa.h +26 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/md_wrap.h +46 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_common.h +181 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_error.h +89 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_reader.c +538 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_reader.h +366 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_trace.c +112 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/mps_trace.h +154 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/net_sockets.c +694 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/nist_kw.c +729 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/oid.c +1166 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/padlock.c +157 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/padlock.h +111 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pem.c +554 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pk.c +1602 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_ecc.c +261 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_internal.h +241 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_wrap.c +1618 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pk_wrap.h +138 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs12.c +437 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs5.c +500 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkcs7.c +787 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkparse.c +1392 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkwrite.c +631 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/pkwrite.h +121 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/platform.c +402 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/platform_util.c +258 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/poly1305.c +492 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto.c +9532 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_client.c +22 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_core.h +983 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_its.h +131 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random.c +181 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random.h +72 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_se.c +373 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_se.h +192 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_its_file.c +254 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_util.c +614 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/psa_util_internal.h +100 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ripemd160.c +490 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa.c +3121 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/rsa_internal.h +188 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/sha1.c +480 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/sha256.c +983 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/sha3.c +721 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/sha512.c +1115 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_cache.c +410 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_client.c +1023 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_client.h +22 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_cookie.c +384 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_misc.h +3198 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_msg.c +6619 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_ticket.c +556 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls.c +10234 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/threading.c +193 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/threading_internal.h +28 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/timing.c +152 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/version.c +32 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/version_features.c +856 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509.c +1776 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_create.c +570 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_crl.c +708 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_crt.c +3311 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_csr.c +648 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509_internal.h +101 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write.c +174 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write_crt.c +688 -0
- package/dist/lib/runtime-sources/vendor/mbedtls/library/x509write_csr.c +336 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/CMakeLists.txt +566 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/LICENSE +24 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/README.md +24 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/api-test.c +1195 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/cutils.h +1998 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/dtoa.c +1619 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/dtoa.h +87 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/function_source.c +81 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/hello.c +53 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/hello_module.c +106 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/repl.c +3036 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/standalone.c +323 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/gen/test_fib.c +81 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp-opcode.h +73 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp.c +3474 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libregexp.h +101 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode-table.h +5173 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode.c +2069 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/libunicode.h +172 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/list.h +107 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/lre-test.c +52 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/qjs.c +762 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/qjsc.c +673 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-atom.h +280 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-libc.c +5037 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-libc.h +87 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs-opcode.h +377 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs.c +64041 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/quickjs.h +1447 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/run-test262.c +2374 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/unicode_gen.c +3121 -0
- package/dist/lib/runtime-sources/vendor/quickjs-ng/unicode_gen_def.h +310 -0
- package/dist/lib/runtime-sources/vendor/ryu/LICENSE-Boost +23 -0
- package/dist/lib/runtime-sources/vendor/ryu/common.h +114 -0
- package/dist/lib/runtime-sources/vendor/ryu/d2s.c +509 -0
- package/dist/lib/runtime-sources/vendor/ryu/d2s_full_table.h +367 -0
- package/dist/lib/runtime-sources/vendor/ryu/d2s_intrinsics.h +357 -0
- package/dist/lib/runtime-sources/vendor/ryu/d2s_small_table.h +186 -0
- package/dist/lib/runtime-sources/vendor/ryu/digit_table.h +35 -0
- package/dist/lib/runtime-sources/vendor/ryu/ryu.h +46 -0
- package/dist/lib/runtime-sources/vendor/unicode/LICENSE +39 -0
- package/dist/lib/runtime-sources/vendor/v8-number-radix/LICENSE +61 -0
- package/dist/lib/runtime-sources/vendor/zlib/LICENSE +22 -0
- package/dist/lib/runtime-sources/vendor/zlib/adler32.c +164 -0
- package/dist/lib/runtime-sources/vendor/zlib/compress.c +75 -0
- package/dist/lib/runtime-sources/vendor/zlib/crc32.c +1049 -0
- package/dist/lib/runtime-sources/vendor/zlib/crc32.h +9446 -0
- package/dist/lib/runtime-sources/vendor/zlib/deflate.c +2139 -0
- package/dist/lib/runtime-sources/vendor/zlib/deflate.h +377 -0
- package/dist/lib/runtime-sources/vendor/zlib/gzclose.c +23 -0
- package/dist/lib/runtime-sources/vendor/zlib/gzguts.h +214 -0
- package/dist/lib/runtime-sources/vendor/zlib/gzlib.c +582 -0
- package/dist/lib/runtime-sources/vendor/zlib/gzread.c +602 -0
- package/dist/lib/runtime-sources/vendor/zlib/gzwrite.c +631 -0
- package/dist/lib/runtime-sources/vendor/zlib/infback.c +628 -0
- package/dist/lib/runtime-sources/vendor/zlib/inffast.c +320 -0
- package/dist/lib/runtime-sources/vendor/zlib/inffast.h +11 -0
- package/dist/lib/runtime-sources/vendor/zlib/inffixed.h +94 -0
- package/dist/lib/runtime-sources/vendor/zlib/inflate.c +1526 -0
- package/dist/lib/runtime-sources/vendor/zlib/inflate.h +126 -0
- package/dist/lib/runtime-sources/vendor/zlib/inftrees.c +299 -0
- package/dist/lib/runtime-sources/vendor/zlib/inftrees.h +62 -0
- package/dist/lib/runtime-sources/vendor/zlib/trees.c +1117 -0
- package/dist/lib/runtime-sources/vendor/zlib/trees.h +128 -0
- package/dist/lib/runtime-sources/vendor/zlib/uncompr.c +85 -0
- package/dist/lib/runtime-sources/vendor/zlib/zconf.h +543 -0
- package/dist/lib/runtime-sources/vendor/zlib/zlib.h +1938 -0
- package/dist/lib/runtime-sources/vendor/zlib/zutil.c +299 -0
- package/dist/lib/runtime-sources/vendor/zlib/zutil.h +254 -0
- package/dist/lib/scriptc-comptime +0 -0
- package/dist/lib/typescript/LICENSE +55 -0
- package/dist/lib/typescript/NOTICE.txt +436 -0
- package/dist/lib/typescript/lib/lib.d.ts +20 -0
- package/dist/lib/typescript/lib/lib.decorators.d.ts +382 -0
- package/dist/lib/typescript/lib/lib.decorators.legacy.d.ts +20 -0
- package/dist/lib/typescript/lib/lib.dom.asynciterable.d.ts +18 -0
- package/dist/lib/typescript/lib/lib.dom.d.ts +45125 -0
- package/dist/lib/typescript/lib/lib.dom.iterable.d.ts +18 -0
- package/dist/lib/typescript/lib/lib.es2015.collection.d.ts +159 -0
- package/dist/lib/typescript/lib/lib.es2015.core.d.ts +595 -0
- package/dist/lib/typescript/lib/lib.es2015.d.ts +26 -0
- package/dist/lib/typescript/lib/lib.es2015.generator.d.ts +75 -0
- package/dist/lib/typescript/lib/lib.es2015.iterable.d.ts +603 -0
- package/dist/lib/typescript/lib/lib.es2015.promise.d.ts +79 -0
- package/dist/lib/typescript/lib/lib.es2015.proxy.d.ts +126 -0
- package/dist/lib/typescript/lib/lib.es2015.reflect.d.ts +142 -0
- package/dist/lib/typescript/lib/lib.es2015.symbol.d.ts +44 -0
- package/dist/lib/typescript/lib/lib.es2015.symbol.wellknown.d.ts +324 -0
- package/dist/lib/typescript/lib/lib.es2016.array.include.d.ts +114 -0
- package/dist/lib/typescript/lib/lib.es2016.d.ts +19 -0
- package/dist/lib/typescript/lib/lib.es2016.full.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.es2016.intl.d.ts +29 -0
- package/dist/lib/typescript/lib/lib.es2017.arraybuffer.d.ts +19 -0
- package/dist/lib/typescript/lib/lib.es2017.d.ts +24 -0
- package/dist/lib/typescript/lib/lib.es2017.date.d.ts +29 -0
- package/dist/lib/typescript/lib/lib.es2017.full.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.es2017.intl.d.ts +42 -0
- package/dist/lib/typescript/lib/lib.es2017.object.d.ts +47 -0
- package/dist/lib/typescript/lib/lib.es2017.sharedmemory.d.ts +133 -0
- package/dist/lib/typescript/lib/lib.es2017.string.d.ts +47 -0
- package/dist/lib/typescript/lib/lib.es2017.typedarrays.d.ts +51 -0
- package/dist/lib/typescript/lib/lib.es2018.asyncgenerator.d.ts +75 -0
- package/dist/lib/typescript/lib/lib.es2018.asynciterable.d.ts +51 -0
- package/dist/lib/typescript/lib/lib.es2018.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2018.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2018.intl.d.ts +81 -0
- package/dist/lib/typescript/lib/lib.es2018.promise.d.ts +28 -0
- package/dist/lib/typescript/lib/lib.es2018.regexp.d.ts +35 -0
- package/dist/lib/typescript/lib/lib.es2019.array.d.ts +77 -0
- package/dist/lib/typescript/lib/lib.es2019.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2019.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2019.intl.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.es2019.object.d.ts +31 -0
- package/dist/lib/typescript/lib/lib.es2019.string.d.ts +35 -0
- package/dist/lib/typescript/lib/lib.es2019.symbol.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2020.bigint.d.ts +763 -0
- package/dist/lib/typescript/lib/lib.es2020.d.ts +25 -0
- package/dist/lib/typescript/lib/lib.es2020.date.d.ts +40 -0
- package/dist/lib/typescript/lib/lib.es2020.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2020.intl.d.ts +472 -0
- package/dist/lib/typescript/lib/lib.es2020.number.d.ts +26 -0
- package/dist/lib/typescript/lib/lib.es2020.promise.d.ts +45 -0
- package/dist/lib/typescript/lib/lib.es2020.sharedmemory.d.ts +97 -0
- package/dist/lib/typescript/lib/lib.es2020.string.d.ts +42 -0
- package/dist/lib/typescript/lib/lib.es2020.symbol.wellknown.d.ts +39 -0
- package/dist/lib/typescript/lib/lib.es2021.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.es2021.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2021.intl.d.ts +164 -0
- package/dist/lib/typescript/lib/lib.es2021.promise.d.ts +46 -0
- package/dist/lib/typescript/lib/lib.es2021.string.d.ts +31 -0
- package/dist/lib/typescript/lib/lib.es2021.weakref.d.ts +76 -0
- package/dist/lib/typescript/lib/lib.es2022.array.d.ts +119 -0
- package/dist/lib/typescript/lib/lib.es2022.d.ts +23 -0
- package/dist/lib/typescript/lib/lib.es2022.error.d.ts +73 -0
- package/dist/lib/typescript/lib/lib.es2022.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2022.intl.d.ts +143 -0
- package/dist/lib/typescript/lib/lib.es2022.object.d.ts +24 -0
- package/dist/lib/typescript/lib/lib.es2022.regexp.d.ts +37 -0
- package/dist/lib/typescript/lib/lib.es2022.string.d.ts +23 -0
- package/dist/lib/typescript/lib/lib.es2023.array.d.ts +922 -0
- package/dist/lib/typescript/lib/lib.es2023.collection.d.ts +19 -0
- package/dist/lib/typescript/lib/lib.es2023.d.ts +20 -0
- package/dist/lib/typescript/lib/lib.es2023.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2023.intl.d.ts +62 -0
- package/dist/lib/typescript/lib/lib.es2024.arraybuffer.d.ts +63 -0
- package/dist/lib/typescript/lib/lib.es2024.collection.d.ts +27 -0
- package/dist/lib/typescript/lib/lib.es2024.d.ts +24 -0
- package/dist/lib/typescript/lib/lib.es2024.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2024.object.d.ts +27 -0
- package/dist/lib/typescript/lib/lib.es2024.promise.d.ts +33 -0
- package/dist/lib/typescript/lib/lib.es2024.regexp.d.ts +23 -0
- package/dist/lib/typescript/lib/lib.es2024.sharedmemory.d.ts +66 -0
- package/dist/lib/typescript/lib/lib.es2024.string.d.ts +27 -0
- package/dist/lib/typescript/lib/lib.es2025.collection.d.ts +94 -0
- package/dist/lib/typescript/lib/lib.es2025.d.ts +23 -0
- package/dist/lib/typescript/lib/lib.es2025.float16.d.ts +443 -0
- package/dist/lib/typescript/lib/lib.es2025.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.es2025.intl.d.ts +200 -0
- package/dist/lib/typescript/lib/lib.es2025.iterator.d.ts +146 -0
- package/dist/lib/typescript/lib/lib.es2025.promise.d.ts +32 -0
- package/dist/lib/typescript/lib/lib.es2025.regexp.d.ts +30 -0
- package/dist/lib/typescript/lib/lib.es5.d.ts +4599 -0
- package/dist/lib/typescript/lib/lib.es6.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.esnext.array.d.ts +33 -0
- package/dist/lib/typescript/lib/lib.esnext.collection.d.ts +47 -0
- package/dist/lib/typescript/lib/lib.esnext.d.ts +27 -0
- package/dist/lib/typescript/lib/lib.esnext.date.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.esnext.decorators.d.ts +26 -0
- package/dist/lib/typescript/lib/lib.esnext.disposable.d.ts +191 -0
- package/dist/lib/typescript/lib/lib.esnext.error.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.esnext.full.d.ts +22 -0
- package/dist/lib/typescript/lib/lib.esnext.intl.d.ts +107 -0
- package/dist/lib/typescript/lib/lib.esnext.sharedmemory.d.ts +23 -0
- package/dist/lib/typescript/lib/lib.esnext.temporal.d.ts +485 -0
- package/dist/lib/typescript/lib/lib.esnext.typedarrays.d.ts +90 -0
- package/dist/lib/typescript/lib/lib.scripthost.d.ts +320 -0
- package/dist/lib/typescript/lib/lib.webworker.asynciterable.d.ts +18 -0
- package/dist/lib/typescript/lib/lib.webworker.d.ts +15606 -0
- package/dist/lib/typescript/lib/lib.webworker.importscripts.d.ts +21 -0
- package/dist/lib/typescript/lib/lib.webworker.iterable.d.ts +18 -0
- package/dist/lib/typescript/lib/tsc +0 -0
- package/dist/lib/typescript/package.json +45 -0
- package/dist/lib/wasi/cli/wasi-paths.js +41 -0
- package/dist/lib/wasi/cli/wasi-runner.js +28 -0
- package/dist/lib/wasi/package.json +1 -0
- package/dist/lib/wasi/wasi-paths.js +25 -0
- package/package.json +22 -6
- package/README.md +0 -3
- package/index.js +0 -2
|
@@ -0,0 +1,1313 @@
|
|
|
1
|
+
/* Regular expressions (see scr_runtime.h for the API contract).
|
|
2
|
+
*
|
|
3
|
+
* The engine is quickjs-ng's libregexp — the exact ECMAScript regex
|
|
4
|
+
* implementation the dynamic island uses — compiled standalone (libregexp.c
|
|
5
|
+
* + libunicode.c; cutils is header-only) and linked ONLY into programs that
|
|
6
|
+
* contain a regex literal. This file is likewise regex-only: it is NOT in
|
|
7
|
+
* the always-compiled runtime source list (see native-toolchain.ts), so regex-free
|
|
8
|
+
* programs keep a byte-identical link line.
|
|
9
|
+
*
|
|
10
|
+
* - Each literal evaluation creates a refcounted regex with fresh state.
|
|
11
|
+
* Instances share an immortal template per (pattern, flags) pair. The
|
|
12
|
+
* template compiles and caches bytecode LAZILY on first use; a pattern
|
|
13
|
+
* lre_compile rejects aborts with a clear
|
|
14
|
+
* message (Node throws SyntaxError at parse time — documented divergence;
|
|
15
|
+
* rare, since tsc's parser has already syntax-checked the literal).
|
|
16
|
+
* - Subjects are matched as UTF-16: lre_exec runs over a per-call
|
|
17
|
+
* conversion of the UTF-8 subject (cbuf_type 1), so every index libregexp
|
|
18
|
+
* reports is a UTF-16 code-unit index — .length/slice/charCodeAt exact,
|
|
19
|
+
* like Node. Correctness-first: the conversion is O(n) per call.
|
|
20
|
+
* - Match loops mirror quickjs.c's own (JS_RegExpDelete /
|
|
21
|
+
* js_regexp_Symbol_replace): capture buffers are sized by
|
|
22
|
+
* lre_get_alloc_count (NOT capture_count*2 — the executor writes
|
|
23
|
+
* temporary registers past the capture slots), unmatched groups leave
|
|
24
|
+
* NULL pointers, and zero-length matches advance by one code unit — or by
|
|
25
|
+
* a whole surrogate pair under /u (AdvanceStringIndex).
|
|
26
|
+
* - Global and sticky exec/test use numeric lastIndex and update or reset
|
|
27
|
+
* it after matching. String matching/replacement follows its own state
|
|
28
|
+
* rules; matchAll, search, and split preserve the original regex state.
|
|
29
|
+
*/
|
|
30
|
+
#include "scr_runtime.h"
|
|
31
|
+
|
|
32
|
+
#include <stdio.h>
|
|
33
|
+
#include <math.h>
|
|
34
|
+
#include <stdlib.h>
|
|
35
|
+
#include <string.h>
|
|
36
|
+
|
|
37
|
+
#include "libregexp.h"
|
|
38
|
+
|
|
39
|
+
static void scr_regex_oom(void) {
|
|
40
|
+
scr_trap("scriptc: out of memory\n");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* ── libregexp host hooks ─────────────────────────────────────────────
|
|
44
|
+
* Static builds provide the minimal hooks (malloc-backed, no interrupt,
|
|
45
|
+
* no stack guard — patterns come from source literals and the executor's
|
|
46
|
+
* backtrack stack is heap-allocated). --dynamic builds MUST NOT define
|
|
47
|
+
* them: the engine archive's quickjs.c already does, with the opaque
|
|
48
|
+
* interpreted as the island's JSContext — so under SCR_DYNAMIC every
|
|
49
|
+
* lre_compile/lre_exec call here passes the island's context instead
|
|
50
|
+
* (forcing lazy engine init on first regex use).
|
|
51
|
+
*/
|
|
52
|
+
#ifdef SCR_DYNAMIC
|
|
53
|
+
static void *lre_opaque(void) { return scr_island_lre_opaque(); }
|
|
54
|
+
#else
|
|
55
|
+
static void *lre_opaque(void) { return NULL; }
|
|
56
|
+
|
|
57
|
+
bool lre_check_stack_overflow(void *opaque, size_t alloca_size) {
|
|
58
|
+
(void)opaque;
|
|
59
|
+
(void)alloca_size;
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
int lre_check_timeout(void *opaque) {
|
|
64
|
+
(void)opaque;
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
void *lre_realloc(void *opaque, void *ptr, size_t size) {
|
|
69
|
+
(void)opaque;
|
|
70
|
+
if (size == 0) {
|
|
71
|
+
free(ptr);
|
|
72
|
+
return NULL;
|
|
73
|
+
}
|
|
74
|
+
return realloc(ptr, size);
|
|
75
|
+
}
|
|
76
|
+
#endif /* SCR_DYNAMIC */
|
|
77
|
+
|
|
78
|
+
/* ── lazy compilation ─────────────────────────────────────────────────
|
|
79
|
+
* Compiled bytecodes are cached on the immortal ScrRegex statics and freed
|
|
80
|
+
* at exit through lre_realloc (registered AFTER the first compile, so under
|
|
81
|
+
* --dynamic it runs before the LIFO-later island teardown and the island's
|
|
82
|
+
* allocation audit sees the bytecode gone).
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
static SCR_TL ScrRegex **scr_compiled = NULL;
|
|
86
|
+
static SCR_TL size_t scr_compiled_len = 0, scr_compiled_cap = 0;
|
|
87
|
+
|
|
88
|
+
static void scr_regex_free_bytecodes(void) {
|
|
89
|
+
for (size_t i = 0; i < scr_compiled_len; i++) {
|
|
90
|
+
lre_realloc(lre_opaque(), scr_compiled[i]->bc, 0);
|
|
91
|
+
scr_compiled[i]->bc = NULL;
|
|
92
|
+
}
|
|
93
|
+
free(scr_compiled);
|
|
94
|
+
scr_compiled = NULL;
|
|
95
|
+
scr_compiled_len = scr_compiled_cap = 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static void scr_note_compiled(ScrRegex *re) {
|
|
99
|
+
if (scr_compiled_len == scr_compiled_cap) {
|
|
100
|
+
scr_compiled_cap = scr_compiled_cap ? scr_compiled_cap * 2 : 8;
|
|
101
|
+
scr_compiled = realloc(scr_compiled, scr_compiled_cap * sizeof *scr_compiled);
|
|
102
|
+
if (!scr_compiled) scr_regex_oom();
|
|
103
|
+
}
|
|
104
|
+
if (scr_compiled_len == 0) scr_atexit(scr_regex_free_bytecodes);
|
|
105
|
+
scr_compiled[scr_compiled_len++] = re;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Flags string → LRE_FLAG_* mask. The frontend fences the flag alphabet to
|
|
109
|
+
* g/i/m/s/u/y, so anything else here is a compiler bug. */
|
|
110
|
+
static int scr_lre_flags(const ScrStr *flags) {
|
|
111
|
+
int mask = 0;
|
|
112
|
+
for (size_t i = 0; i < flags->len; i++) {
|
|
113
|
+
switch (flags->data[i]) {
|
|
114
|
+
case 'g': mask |= LRE_FLAG_GLOBAL; break;
|
|
115
|
+
case 'i': mask |= LRE_FLAG_IGNORECASE; break;
|
|
116
|
+
case 'm': mask |= LRE_FLAG_MULTILINE; break;
|
|
117
|
+
case 's': mask |= LRE_FLAG_DOTALL; break;
|
|
118
|
+
case 'u': mask |= LRE_FLAG_UNICODE; break;
|
|
119
|
+
case 'y': mask |= LRE_FLAG_STICKY; break;
|
|
120
|
+
default:
|
|
121
|
+
scr_trap_fmt("scriptc: internal error: unexpected regex flag '%c'\n",
|
|
122
|
+
flags->data[i]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return mask;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Without /u, JS treats the pattern itself as UTF-16 code units: an astral
|
|
129
|
+
* character in the pattern SOURCE is two separate surrogate units.
|
|
130
|
+
* libregexp expects that spelled as CESU-8 (quickjs feeds it
|
|
131
|
+
* JS_ToCStringLen2(cesu8=true) for non-unicode patterns), so a non-/u
|
|
132
|
+
* pattern containing a 4-byte UTF-8 sequence is re-encoded: each astral
|
|
133
|
+
* code point becomes two 3-byte surrogate encodings. Returns NULL when the
|
|
134
|
+
* pattern needs no re-encoding (the common case — no copy). */
|
|
135
|
+
static char *scr_pattern_cesu8(const ScrStr *src, size_t *plen) {
|
|
136
|
+
bool has_astral = false;
|
|
137
|
+
for (size_t i = 0; i < src->len; i++) {
|
|
138
|
+
if ((unsigned char)src->data[i] >= 0xF0) {
|
|
139
|
+
has_astral = true;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (!has_astral) return NULL;
|
|
144
|
+
char *out = malloc(src->len / 2 * 3 + src->len + 1); /* 4 bytes → 6 worst case */
|
|
145
|
+
if (!out) scr_regex_oom();
|
|
146
|
+
size_t o = 0;
|
|
147
|
+
for (size_t i = 0; i < src->len;) {
|
|
148
|
+
unsigned char c = (unsigned char)src->data[i];
|
|
149
|
+
if (c < 0xF0) {
|
|
150
|
+
out[o++] = src->data[i++];
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
uint32_t cp = ((uint32_t)(c & 0x07) << 18) |
|
|
154
|
+
((uint32_t)((unsigned char)src->data[i + 1] & 0x3F) << 12) |
|
|
155
|
+
((uint32_t)((unsigned char)src->data[i + 2] & 0x3F) << 6) |
|
|
156
|
+
((unsigned char)src->data[i + 3] & 0x3F);
|
|
157
|
+
i += 4;
|
|
158
|
+
uint32_t hi = 0xD800 + ((cp - 0x10000) >> 10);
|
|
159
|
+
uint32_t lo = 0xDC00 + ((cp - 0x10000) & 0x3FF);
|
|
160
|
+
out[o++] = (char)(0xE0 | (hi >> 12));
|
|
161
|
+
out[o++] = (char)(0x80 | ((hi >> 6) & 0x3F));
|
|
162
|
+
out[o++] = (char)(0x80 | (hi & 0x3F));
|
|
163
|
+
out[o++] = (char)(0xE0 | (lo >> 12));
|
|
164
|
+
out[o++] = (char)(0x80 | ((lo >> 6) & 0x3F));
|
|
165
|
+
out[o++] = (char)(0x80 | (lo & 0x3F));
|
|
166
|
+
}
|
|
167
|
+
/* lre_compile needs the NUL sentinel in ADDITION to buf_len: quickjs
|
|
168
|
+
* always hands it NUL-terminated C strings, and the parser reads *p
|
|
169
|
+
* against '\0' at end-of-pattern (found the hard way — an unterminated
|
|
170
|
+
* buffer reports "extraneous characters at the end"). */
|
|
171
|
+
out[o] = '\0';
|
|
172
|
+
*plen = o;
|
|
173
|
+
return out;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* The compiled bytecode, compiling (and caching) on first use. */
|
|
177
|
+
static uint8_t *scr_regex_bc(ScrRegex *re) {
|
|
178
|
+
if (re->bc) return re->bc;
|
|
179
|
+
if (re->literal) return re->bc = scr_regex_bc(re->literal);
|
|
180
|
+
int flags = scr_lre_flags(re->flags);
|
|
181
|
+
const char *pat = re->source->data;
|
|
182
|
+
size_t pat_len = re->source->len;
|
|
183
|
+
char *cesu = NULL;
|
|
184
|
+
if (!(flags & LRE_FLAG_UNICODE)) {
|
|
185
|
+
cesu = scr_pattern_cesu8(re->source, &pat_len);
|
|
186
|
+
if (cesu) pat = cesu;
|
|
187
|
+
}
|
|
188
|
+
char error_msg[64];
|
|
189
|
+
int bc_len;
|
|
190
|
+
uint8_t *bc = lre_compile(&bc_len, error_msg, sizeof error_msg, pat, pat_len,
|
|
191
|
+
flags, lre_opaque());
|
|
192
|
+
free(cesu);
|
|
193
|
+
if (!bc) {
|
|
194
|
+
/* Node rejects the pattern with a SyntaxError at PARSE time; scriptc
|
|
195
|
+
* compiles lazily, so the failure lands here (documented divergence —
|
|
196
|
+
* tsc's parser has already caught plain syntax errors, so this is
|
|
197
|
+
* rare). */
|
|
198
|
+
fflush(stdout);
|
|
199
|
+
scr_trap_fmt("scriptc: SyntaxError: Invalid regular expression: /%s/%s: %s\n",
|
|
200
|
+
re->source->data, re->flags->data, error_msg);
|
|
201
|
+
}
|
|
202
|
+
re->bc = bc;
|
|
203
|
+
scr_note_compiled(re);
|
|
204
|
+
return bc;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* ── RC entry points ──────────────────────────────────────────────────
|
|
208
|
+
* Literal instances borrow bytecode from their immortal templates;
|
|
209
|
+
* constructed regexes own their compiled bytecode. */
|
|
210
|
+
|
|
211
|
+
void scr_regex_release(ScrRegex *re) {
|
|
212
|
+
if (!re || re->rc == SIZE_MAX) return;
|
|
213
|
+
if (--re->rc == 0) {
|
|
214
|
+
scr_str_release(re->source);
|
|
215
|
+
scr_str_release(re->flags);
|
|
216
|
+
if (re->bc && !re->literal) lre_realloc(lre_opaque(), re->bc, 0);
|
|
217
|
+
free(re);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
void *scr_regex_retain_v(void *re) { return scr_regex_retain(re); }
|
|
222
|
+
void scr_regex_release_v(void *re) { scr_regex_release(re); }
|
|
223
|
+
|
|
224
|
+
ScrRegex *scr_regex_literal(ScrRegex *literal) {
|
|
225
|
+
ScrRegex *re = calloc(1, sizeof *re);
|
|
226
|
+
if (!re) scr_regex_oom();
|
|
227
|
+
re->rc = 1;
|
|
228
|
+
re->source = scr_str_retain(literal->source);
|
|
229
|
+
re->flags = scr_str_retain(literal->flags);
|
|
230
|
+
re->literal = literal;
|
|
231
|
+
return re;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
double scr_regex_last_index(ScrRegex *re) { return re->last_index; }
|
|
235
|
+
|
|
236
|
+
ScrStr *scr_regex_source(ScrRegex *re) { return scr_str_retain(re->source); }
|
|
237
|
+
ScrStr *scr_regex_flags(ScrRegex *re) { return scr_str_retain(re->flags); }
|
|
238
|
+
ScrStr *scr_regex_to_string(ScrRegex *re) {
|
|
239
|
+
const char *source = re->source->data;
|
|
240
|
+
size_t len = re->source->len;
|
|
241
|
+
size_t escaped = 0;
|
|
242
|
+
bool in_class = false;
|
|
243
|
+
bool quoted = false;
|
|
244
|
+
for (size_t i = 0; i < len; i++) {
|
|
245
|
+
char c = source[i];
|
|
246
|
+
bool line_separator = i + 2 < len && (unsigned char)c == 0xE2 &&
|
|
247
|
+
(unsigned char)source[i + 1] == 0x80 &&
|
|
248
|
+
((unsigned char)source[i + 2] == 0xA8 ||
|
|
249
|
+
(unsigned char)source[i + 2] == 0xA9);
|
|
250
|
+
if (!quoted && c == '/' && !in_class) escaped++;
|
|
251
|
+
if (!quoted && (c == '\n' || c == '\r')) escaped++;
|
|
252
|
+
if (!quoted && line_separator) escaped += 3;
|
|
253
|
+
if (!quoted && c == '[') in_class = true;
|
|
254
|
+
else if (!quoted && c == ']') in_class = false;
|
|
255
|
+
if (c == '\\') quoted = !quoted;
|
|
256
|
+
else quoted = false;
|
|
257
|
+
}
|
|
258
|
+
size_t total = 2 + len + escaped + re->flags->len;
|
|
259
|
+
char *buf = malloc(total + 1);
|
|
260
|
+
if (!buf) scr_regex_oom();
|
|
261
|
+
size_t pos = 0;
|
|
262
|
+
buf[pos++] = '/';
|
|
263
|
+
in_class = false;
|
|
264
|
+
quoted = false;
|
|
265
|
+
for (size_t i = 0; i < len; i++) {
|
|
266
|
+
char c = source[i];
|
|
267
|
+
bool line_separator = i + 2 < len && (unsigned char)c == 0xE2 &&
|
|
268
|
+
(unsigned char)source[i + 1] == 0x80 &&
|
|
269
|
+
((unsigned char)source[i + 2] == 0xA8 ||
|
|
270
|
+
(unsigned char)source[i + 2] == 0xA9);
|
|
271
|
+
if (!quoted && c == '/' && !in_class) buf[pos++] = '\\';
|
|
272
|
+
if (!quoted && line_separator) {
|
|
273
|
+
buf[pos++] = '\\';
|
|
274
|
+
buf[pos++] = 'u';
|
|
275
|
+
buf[pos++] = '2';
|
|
276
|
+
buf[pos++] = '0';
|
|
277
|
+
buf[pos++] = '2';
|
|
278
|
+
buf[pos++] = source[i + 2] == (char)0xA8 ? '8' : '9';
|
|
279
|
+
i += 2;
|
|
280
|
+
quoted = false;
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
if (!quoted && (c == '\n' || c == '\r')) {
|
|
284
|
+
buf[pos++] = '\\';
|
|
285
|
+
c = c == '\n' ? 'n' : 'r';
|
|
286
|
+
}
|
|
287
|
+
buf[pos++] = c;
|
|
288
|
+
if (!quoted && c == '[') in_class = true;
|
|
289
|
+
else if (!quoted && c == ']') in_class = false;
|
|
290
|
+
if (source[i] == '\\') quoted = !quoted;
|
|
291
|
+
else quoted = false;
|
|
292
|
+
}
|
|
293
|
+
buf[pos++] = '/';
|
|
294
|
+
memcpy(buf + pos, re->flags->data, re->flags->len);
|
|
295
|
+
pos += re->flags->len;
|
|
296
|
+
buf[pos] = '\0';
|
|
297
|
+
ScrStr *out = scr_str_new(buf, pos);
|
|
298
|
+
free(buf);
|
|
299
|
+
return out;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/* ── UTF-8 ⇄ UTF-16 (the exec buffer strategy) ──────────────────────── */
|
|
303
|
+
|
|
304
|
+
/* Subject as freshly-malloc'd UTF-16 code units (strings are well-formed
|
|
305
|
+
* UTF-8, so no validation). Unit count ≤ byte count. */
|
|
306
|
+
static uint16_t *scr_to_utf16(const ScrStr *s, int *plen) {
|
|
307
|
+
uint16_t *u = malloc((s->len ? s->len : 1) * sizeof(uint16_t));
|
|
308
|
+
if (!u) scr_regex_oom();
|
|
309
|
+
int n = 0;
|
|
310
|
+
for (size_t i = 0; i < s->len;) {
|
|
311
|
+
unsigned char c = (unsigned char)s->data[i];
|
|
312
|
+
uint32_t cp;
|
|
313
|
+
if (c < 0x80) {
|
|
314
|
+
cp = c;
|
|
315
|
+
i += 1;
|
|
316
|
+
} else if (c < 0xE0) {
|
|
317
|
+
cp = ((uint32_t)(c & 0x1F) << 6) | ((unsigned char)s->data[i + 1] & 0x3F);
|
|
318
|
+
i += 2;
|
|
319
|
+
} else if (c < 0xF0) {
|
|
320
|
+
cp = ((uint32_t)(c & 0x0F) << 12) |
|
|
321
|
+
((uint32_t)((unsigned char)s->data[i + 1] & 0x3F) << 6) |
|
|
322
|
+
((unsigned char)s->data[i + 2] & 0x3F);
|
|
323
|
+
i += 3;
|
|
324
|
+
} else {
|
|
325
|
+
cp = ((uint32_t)(c & 0x07) << 18) |
|
|
326
|
+
((uint32_t)((unsigned char)s->data[i + 1] & 0x3F) << 12) |
|
|
327
|
+
((uint32_t)((unsigned char)s->data[i + 2] & 0x3F) << 6) |
|
|
328
|
+
((unsigned char)s->data[i + 3] & 0x3F);
|
|
329
|
+
i += 4;
|
|
330
|
+
}
|
|
331
|
+
if (cp >= 0x10000) {
|
|
332
|
+
u[n++] = (uint16_t)(0xD800 + ((cp - 0x10000) >> 10));
|
|
333
|
+
u[n++] = (uint16_t)(0xDC00 + ((cp - 0x10000) & 0x3FF));
|
|
334
|
+
} else {
|
|
335
|
+
u[n++] = (uint16_t)cp;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
*plen = n;
|
|
339
|
+
return u;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* Append u[start..end) as UTF-8. A lone surrogate (a non-/u match boundary
|
|
343
|
+
* split an astral pair) becomes U+FFFD — the house rule for JS results that
|
|
344
|
+
* are not well-formed UTF-16 (same divergence class as charAt/slice,
|
|
345
|
+
* SEMANTICS.md). */
|
|
346
|
+
static void scr_jb_put_utf16(ScrJsonBuf *b, const uint16_t *u, int start, int end) {
|
|
347
|
+
for (int i = start; i < end; i++) {
|
|
348
|
+
uint32_t cp = u[i];
|
|
349
|
+
if (cp >= 0xD800 && cp < 0xDC00 && i + 1 < end && u[i + 1] >= 0xDC00 &&
|
|
350
|
+
u[i + 1] < 0xE000) {
|
|
351
|
+
cp = 0x10000 + ((cp - 0xD800) << 10) + (u[i + 1] - 0xDC00);
|
|
352
|
+
i++;
|
|
353
|
+
} else if (cp >= 0xD800 && cp < 0xE000) {
|
|
354
|
+
cp = 0xFFFD;
|
|
355
|
+
}
|
|
356
|
+
if (cp < 0x80) {
|
|
357
|
+
scr_jb_putc(b, (char)cp);
|
|
358
|
+
} else if (cp < 0x800) {
|
|
359
|
+
scr_jb_putc(b, (char)(0xC0 | (cp >> 6)));
|
|
360
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
361
|
+
} else if (cp < 0x10000) {
|
|
362
|
+
scr_jb_putc(b, (char)(0xE0 | (cp >> 12)));
|
|
363
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 6) & 0x3F)));
|
|
364
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
365
|
+
} else {
|
|
366
|
+
scr_jb_putc(b, (char)(0xF0 | (cp >> 18)));
|
|
367
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 12) & 0x3F)));
|
|
368
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 6) & 0x3F)));
|
|
369
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
static ScrStr *scr_str_from_utf16(const uint16_t *u, int start, int end) {
|
|
375
|
+
ScrJsonBuf b;
|
|
376
|
+
scr_jb_init(&b);
|
|
377
|
+
scr_jb_put_utf16(&b, u, start, end);
|
|
378
|
+
return scr_jb_finish(&b);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/* ── exec plumbing ────────────────────────────────────────────────────── */
|
|
382
|
+
|
|
383
|
+
/* One lre_exec over the UTF-16 subject. Returns 1 (match), 0 (no match);
|
|
384
|
+
* engine-level failures (OOM, corrupt bytecode — no timeout handler is
|
|
385
|
+
* installed) abort like every runtime OOM. */
|
|
386
|
+
static int scr_exec(uint8_t **capture, const uint8_t *bc, const uint16_t *u,
|
|
387
|
+
int index, int len) {
|
|
388
|
+
int rc = lre_exec(capture, bc, (const uint8_t *)u, index, len, 1, lre_opaque());
|
|
389
|
+
if (rc < 0) {
|
|
390
|
+
fflush(stdout);
|
|
391
|
+
scr_trap("scriptc: regular expression execution failed\n");
|
|
392
|
+
}
|
|
393
|
+
return rc;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/* Capture buffer sized by lre_get_alloc_count: the register-based executor
|
|
397
|
+
* writes temporary registers past the capture pairs (quickjs.c documents
|
|
398
|
+
* sizing by capture_count*2 as a silent heap overflow). */
|
|
399
|
+
static uint8_t **scr_capture_alloc(const uint8_t *bc) {
|
|
400
|
+
int n = lre_get_alloc_count(bc);
|
|
401
|
+
uint8_t **cap = malloc((n > 0 ? (size_t)n : 1) * sizeof *cap);
|
|
402
|
+
if (!cap) scr_regex_oom();
|
|
403
|
+
return cap;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* ECMA-262 AdvanceStringIndex: past a whole surrogate pair under /u, one
|
|
407
|
+
* code unit otherwise — the rule that keeps zero-length matches from
|
|
408
|
+
* looping forever. */
|
|
409
|
+
static int scr_advance(const uint16_t *u, int len, int i, bool unicode) {
|
|
410
|
+
if (unicode && i + 1 < len && u[i] >= 0xD800 && u[i] < 0xDC00 &&
|
|
411
|
+
u[i + 1] >= 0xDC00 && u[i + 1] < 0xE000) {
|
|
412
|
+
return i + 2;
|
|
413
|
+
}
|
|
414
|
+
return i + 1;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/* ── test ─────────────────────────────────────────────────────────────── */
|
|
418
|
+
|
|
419
|
+
void scr_regex_reset_last_index(ScrRegex *re, double index) {
|
|
420
|
+
re->last_index = index;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
bool scr_regex_test(ScrRegex *re, ScrStr *s) {
|
|
424
|
+
ScrArr *result = scr_regex_exec(s, re);
|
|
425
|
+
bool matched = result != NULL;
|
|
426
|
+
scr_arr_release(result);
|
|
427
|
+
return matched;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
static int scr_regex_start(ScrRegex *re, int len) {
|
|
431
|
+
double index = re->last_index;
|
|
432
|
+
if (isnan(index) || index <= 0) return 0;
|
|
433
|
+
if (index > len) return -1;
|
|
434
|
+
return (int)floor(index);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/* ── match ────────────────────────────────────────────────────────────── */
|
|
438
|
+
|
|
439
|
+
/* re.exec(s): a fresh string[] of [whole match, ...captures], or NULL
|
|
440
|
+
* for no match (the compiler wraps the `string[] | null` union). Global
|
|
441
|
+
* and sticky regexes start at lastIndex, set it to the match end, and
|
|
442
|
+
* reset it on failure. Nonparticipating captures retain the documented
|
|
443
|
+
* empty-string representation. */
|
|
444
|
+
ScrArr *scr_regex_exec(ScrStr *s, ScrRegex *re) {
|
|
445
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
446
|
+
bool stateful = (lre_get_flags(bc) & (LRE_FLAG_GLOBAL | LRE_FLAG_STICKY)) != 0;
|
|
447
|
+
int len;
|
|
448
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
449
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
450
|
+
int pos = stateful ? scr_regex_start(re, len) : 0;
|
|
451
|
+
int rc = pos < 0 ? 0 : scr_exec(capture, bc, u, pos, len);
|
|
452
|
+
if (stateful) re->last_index = rc == 1
|
|
453
|
+
? (double)((capture[1] - (const uint8_t *)u) >> 1) : 0;
|
|
454
|
+
ScrArr *out = NULL;
|
|
455
|
+
if (rc == 1) {
|
|
456
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
457
|
+
int count = lre_get_capture_count(bc);
|
|
458
|
+
out = scr_arr_new(SCR_ELEM_STR, (size_t)count);
|
|
459
|
+
out->metadata = scr_dyn_new_obj();
|
|
460
|
+
scr_dyn_obj_set(out->metadata, "index", 5, scr_dyn_new_num((double)((capture[0] - ubase) >> 1)));
|
|
461
|
+
scr_dyn_obj_set(out->metadata, "input", 5, scr_dyn_new_str(s));
|
|
462
|
+
for (int k = 0; k < count; k++) {
|
|
463
|
+
const uint8_t *cs = capture[2 * k], *ce = capture[2 * k + 1];
|
|
464
|
+
if (cs == NULL || ce == NULL) {
|
|
465
|
+
scr_arr_push_ref(out, scr_str_new("", 0));
|
|
466
|
+
} else {
|
|
467
|
+
scr_arr_push_ref(
|
|
468
|
+
out, scr_str_from_utf16(u, (int)((cs - ubase) >> 1), (int)((ce - ubase) >> 1)));
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
free(capture);
|
|
473
|
+
free(u);
|
|
474
|
+
return out; /* +1, or NULL (no match) */
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/* Global Symbol.match always starts at zero and drains whole matches,
|
|
478
|
+
* ignoring capture groups. Its terminating failed exec resets lastIndex
|
|
479
|
+
* to zero, so no state escapes this internal iteration. Sticky globals
|
|
480
|
+
* stop at the first gap; empty matches advance by a Unicode code point
|
|
481
|
+
* under /u and by one UTF-16 unit otherwise. */
|
|
482
|
+
ScrArr *scr_regex_match(ScrStr *s, ScrRegex *re) {
|
|
483
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
484
|
+
int flags = lre_get_flags(bc);
|
|
485
|
+
if (!(flags & LRE_FLAG_GLOBAL)) return scr_regex_exec(s, re);
|
|
486
|
+
re->last_index = 0;
|
|
487
|
+
bool unicode = (flags & (LRE_FLAG_UNICODE | LRE_FLAG_UNICODE_SETS)) != 0;
|
|
488
|
+
int len;
|
|
489
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
490
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
491
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
492
|
+
ScrArr *out = NULL;
|
|
493
|
+
int pos = scr_regex_start(re, len);
|
|
494
|
+
if (pos < 0) pos = len + 1;
|
|
495
|
+
while (pos <= len && scr_exec(capture, bc, u, pos, len) == 1) {
|
|
496
|
+
int start = (int)((capture[0] - ubase) >> 1);
|
|
497
|
+
int end = (int)((capture[1] - ubase) >> 1);
|
|
498
|
+
if (!out) out = scr_arr_new(SCR_ELEM_STR, 4);
|
|
499
|
+
scr_arr_push_ref(out, scr_str_from_utf16(u, start, end));
|
|
500
|
+
pos = start == end ? scr_advance(u, len, end, unicode) : end;
|
|
501
|
+
}
|
|
502
|
+
free(capture);
|
|
503
|
+
free(u);
|
|
504
|
+
return out;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/* ── search ───────────────────────────────────────────────────────────── */
|
|
508
|
+
|
|
509
|
+
/* s.search(re): the first match's UTF-16 index, or -1 — Symbol.search's
|
|
510
|
+
* fresh exec from position 0. lastIndex is neither read nor written in JS
|
|
511
|
+
* (the spec saves and restores it): /g is irrelevant and /y anchors at 0
|
|
512
|
+
* (libregexp's sticky
|
|
513
|
+
* bytecode omits the implicit forward scan) — exactly Node. */
|
|
514
|
+
double scr_regex_search(ScrStr *s, ScrRegex *re) {
|
|
515
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
516
|
+
int len;
|
|
517
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
518
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
519
|
+
int rc = scr_exec(capture, bc, u, 0, len);
|
|
520
|
+
double out = -1;
|
|
521
|
+
if (rc == 1) out = (double)((capture[0] - (const uint8_t *)u) >> 1);
|
|
522
|
+
free(capture);
|
|
523
|
+
free(u);
|
|
524
|
+
return out;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/* matchAll(re): every match as its honest slice string[] (whole match +
|
|
528
|
+
* captures, nonparticipating = "" — match()'s rule) drained EAGERLY into
|
|
529
|
+
* a fresh string[][]. The lazy iterator is unobservable across the
|
|
530
|
+
* lowered surface: strings are immutable and the spec clones the regex at
|
|
531
|
+
* the call, so nothing can perturb the drain. Non-global regexes throw
|
|
532
|
+
* Node's exact TypeError (catchable — replaceAll's stance). Empty matches
|
|
533
|
+
* advance one unit, unicode-aware (AdvanceStringIndex). `indices`, when
|
|
534
|
+
* non-NULL, receives each match's UTF-16 start index (the row's .index —
|
|
535
|
+
* the companion array the for-of-over-matchAll desugar reads). */
|
|
536
|
+
static ScrArr *scr_regex_match_all_core(ScrStr *s, ScrRegex *re, ScrArr *indices) {
|
|
537
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
538
|
+
int re_flags = lre_get_flags(bc);
|
|
539
|
+
if (!(re_flags & LRE_FLAG_GLOBAL)) {
|
|
540
|
+
static const char msg[] =
|
|
541
|
+
"String.prototype.matchAll called with a non-global RegExp argument";
|
|
542
|
+
scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
|
|
543
|
+
return NULL; /* callers are compiler-emitted pending checks */
|
|
544
|
+
}
|
|
545
|
+
bool unicode = (re_flags & (LRE_FLAG_UNICODE | LRE_FLAG_UNICODE_SETS)) != 0;
|
|
546
|
+
int capture_count = lre_get_capture_count(bc);
|
|
547
|
+
int len;
|
|
548
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
549
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
550
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
551
|
+
ScrArr *out = scr_arr_new(SCR_ELEM_ARR, 4);
|
|
552
|
+
int pos = scr_regex_start(re, len);
|
|
553
|
+
if (pos < 0) pos = len + 1;
|
|
554
|
+
while (pos <= len) {
|
|
555
|
+
if (scr_exec(capture, bc, u, pos, len) != 1) break;
|
|
556
|
+
int start = (int)((capture[0] - ubase) >> 1);
|
|
557
|
+
int end = (int)((capture[1] - ubase) >> 1);
|
|
558
|
+
ScrArr *row = scr_arr_new(SCR_ELEM_STR, (size_t)capture_count);
|
|
559
|
+
for (int k = 0; k < capture_count; k++) {
|
|
560
|
+
const uint8_t *cs = capture[2 * k], *ce = capture[2 * k + 1];
|
|
561
|
+
if (cs == NULL || ce == NULL) {
|
|
562
|
+
scr_arr_push_ref(row, scr_str_new("", 0));
|
|
563
|
+
} else {
|
|
564
|
+
scr_arr_push_ref(
|
|
565
|
+
row, scr_str_from_utf16(u, (int)((cs - ubase) >> 1), (int)((ce - ubase) >> 1)));
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
scr_arr_push_ref(out, row);
|
|
569
|
+
if (indices != NULL) scr_arr_push_f64(indices, (double)start);
|
|
570
|
+
pos = end == start ? scr_advance(u, len, end, unicode) : end;
|
|
571
|
+
}
|
|
572
|
+
free(capture);
|
|
573
|
+
free(u);
|
|
574
|
+
return out; /* +1 (possibly empty — Node's no-match drain is []) */
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
ScrArr *scr_regex_match_all(ScrStr *s, ScrRegex *re) {
|
|
578
|
+
return scr_regex_match_all_core(s, re, NULL);
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
ScrArr *scr_regex_match_all_into(ScrStr *s, ScrRegex *re, ScrArr *indices) {
|
|
582
|
+
return scr_regex_match_all_core(s, re, indices);
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/* ── replace / replaceAll ─────────────────────────────────────────────── */
|
|
586
|
+
|
|
587
|
+
/* ECMA-262 GetSubstitution over the replacement TEMPLATE (function
|
|
588
|
+
* replacements are frontend-fenced): $$, $&, $` and $', $1..$99 (two digits
|
|
589
|
+
* win when in range — the refined ES2019 rule quickjs implements), with
|
|
590
|
+
* out-of-range references left literal and unmatched groups substituting
|
|
591
|
+
* empty. $<name> resolves against the pattern's named capture groups
|
|
592
|
+
* (lre_get_groupnames — one NUL-terminated name per capture, "" for
|
|
593
|
+
* unnamed): the first PARTICIPATING capture with that name substitutes
|
|
594
|
+
* (ES2025 duplicates live in distinct alternatives, so at most one
|
|
595
|
+
* participates); a nonexistent or nonparticipating name substitutes
|
|
596
|
+
* empty (the spec's Get→undefined→"" path, Node-exact). When the pattern
|
|
597
|
+
* has NO named groups, namedCaptures is undefined and '$<' stays literal
|
|
598
|
+
* — also Node's unterminated-'$<name' answer either way. The template is
|
|
599
|
+
* scanned byte-wise: every '$' directive is ASCII, and UTF-8 continuation
|
|
600
|
+
* bytes can never alias it. */
|
|
601
|
+
static void scr_put_substitution(ScrJsonBuf *b, const uint16_t *u, int len,
|
|
602
|
+
int start, int end, uint8_t **capture,
|
|
603
|
+
int capture_count, const char *groupnames,
|
|
604
|
+
const ScrStr *rep) {
|
|
605
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
606
|
+
size_t i = 0;
|
|
607
|
+
while (i < rep->len) {
|
|
608
|
+
char c = rep->data[i];
|
|
609
|
+
if (c != '$' || i + 1 >= rep->len) {
|
|
610
|
+
scr_jb_putc(b, c);
|
|
611
|
+
i++;
|
|
612
|
+
continue;
|
|
613
|
+
}
|
|
614
|
+
char c1 = rep->data[i + 1];
|
|
615
|
+
if (c1 == '$') {
|
|
616
|
+
scr_jb_putc(b, '$');
|
|
617
|
+
i += 2;
|
|
618
|
+
} else if (c1 == '&') {
|
|
619
|
+
scr_jb_put_utf16(b, u, start, end);
|
|
620
|
+
i += 2;
|
|
621
|
+
} else if (c1 == '`') {
|
|
622
|
+
scr_jb_put_utf16(b, u, 0, start);
|
|
623
|
+
i += 2;
|
|
624
|
+
} else if (c1 == '\'') {
|
|
625
|
+
scr_jb_put_utf16(b, u, end, len);
|
|
626
|
+
i += 2;
|
|
627
|
+
} else if (c1 >= '0' && c1 <= '9') {
|
|
628
|
+
int k = c1 - '0';
|
|
629
|
+
size_t adv = 2;
|
|
630
|
+
if (i + 2 < rep->len && rep->data[i + 2] >= '0' && rep->data[i + 2] <= '9') {
|
|
631
|
+
int k1 = k * 10 + (rep->data[i + 2] - '0');
|
|
632
|
+
if (k1 >= 1 && k1 < capture_count) {
|
|
633
|
+
k = k1;
|
|
634
|
+
adv = 3;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
if (k >= 1 && k < capture_count) {
|
|
638
|
+
const uint8_t *cs = capture[2 * k], *ce = capture[2 * k + 1];
|
|
639
|
+
if (cs && ce) {
|
|
640
|
+
scr_jb_put_utf16(b, u, (int)((cs - ubase) >> 1), (int)((ce - ubase) >> 1));
|
|
641
|
+
}
|
|
642
|
+
i += adv;
|
|
643
|
+
} else {
|
|
644
|
+
/* Out of range: the '$' is literal (the digits re-scan verbatim). */
|
|
645
|
+
scr_jb_putc(b, '$');
|
|
646
|
+
i++;
|
|
647
|
+
}
|
|
648
|
+
} else if (c1 == '<' && groupnames != NULL) {
|
|
649
|
+
/* $<name>: scan for '>'; absent, the '$' is literal (the rest
|
|
650
|
+
* re-scans verbatim — GetSubstitution's not-found answer). */
|
|
651
|
+
size_t gt = i + 2;
|
|
652
|
+
while (gt < rep->len && rep->data[gt] != '>') gt++;
|
|
653
|
+
if (gt >= rep->len) {
|
|
654
|
+
scr_jb_putc(b, '$');
|
|
655
|
+
i++;
|
|
656
|
+
continue;
|
|
657
|
+
}
|
|
658
|
+
const char *name = rep->data + i + 2;
|
|
659
|
+
size_t name_len = gt - (i + 2);
|
|
660
|
+
const char *p = groupnames; /* capture_count-1 entries: name NUL scope */
|
|
661
|
+
for (int k = 1; k < capture_count; k++) {
|
|
662
|
+
size_t glen = strlen(p);
|
|
663
|
+
if (glen == name_len && memcmp(p, name, name_len) == 0) {
|
|
664
|
+
const uint8_t *cs = capture[2 * k], *ce = capture[2 * k + 1];
|
|
665
|
+
if (cs && ce) {
|
|
666
|
+
scr_jb_put_utf16(b, u, (int)((cs - ubase) >> 1), (int)((ce - ubase) >> 1));
|
|
667
|
+
break; /* at most one duplicate participates */
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
p += glen + LRE_GROUP_NAME_TRAILER_LEN;
|
|
671
|
+
}
|
|
672
|
+
i = gt + 1;
|
|
673
|
+
} else {
|
|
674
|
+
scr_jb_putc(b, '$');
|
|
675
|
+
i++;
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
/* The shared match loop (the shape of quickjs's JS_RegExpDelete): search
|
|
681
|
+
* from `pos`, copy the gap, emit the substitution, continue from the match
|
|
682
|
+
* end when global — advancing zero-length matches per AdvanceStringIndex. */
|
|
683
|
+
static ScrStr *scr_replace_impl(ScrStr *s, ScrRegex *re, ScrStr *rep) {
|
|
684
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
685
|
+
int re_flags = lre_get_flags(bc);
|
|
686
|
+
bool global = (re_flags & LRE_FLAG_GLOBAL) != 0;
|
|
687
|
+
bool sticky = (re_flags & LRE_FLAG_STICKY) != 0;
|
|
688
|
+
bool unicode = (re_flags & (LRE_FLAG_UNICODE | LRE_FLAG_UNICODE_SETS)) != 0;
|
|
689
|
+
int capture_count = lre_get_capture_count(bc);
|
|
690
|
+
const char *groupnames = lre_get_groupnames(bc);
|
|
691
|
+
int len;
|
|
692
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
693
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
694
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
695
|
+
ScrJsonBuf b;
|
|
696
|
+
scr_jb_init(&b);
|
|
697
|
+
if (global) re->last_index = 0;
|
|
698
|
+
int next = 0, pos = sticky ? scr_regex_start(re, len) : 0;
|
|
699
|
+
if (pos < 0) pos = len + 1;
|
|
700
|
+
if (sticky && !global) re->last_index = 0;
|
|
701
|
+
while (pos <= len) {
|
|
702
|
+
if (scr_exec(capture, bc, u, pos, len) != 1) break;
|
|
703
|
+
int start = (int)((capture[0] - ubase) >> 1);
|
|
704
|
+
int end = (int)((capture[1] - ubase) >> 1);
|
|
705
|
+
if (sticky && !global) re->last_index = end;
|
|
706
|
+
scr_jb_put_utf16(&b, u, next, start);
|
|
707
|
+
scr_put_substitution(&b, u, len, start, end, capture, capture_count, groupnames, rep);
|
|
708
|
+
next = end;
|
|
709
|
+
if (!global) break;
|
|
710
|
+
pos = end == start ? scr_advance(u, len, end, unicode) : end;
|
|
711
|
+
}
|
|
712
|
+
scr_jb_put_utf16(&b, u, next, len);
|
|
713
|
+
free(capture);
|
|
714
|
+
free(u);
|
|
715
|
+
return scr_jb_finish(&b);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
ScrStr *scr_regex_replace(ScrStr *s, ScrRegex *re, ScrStr *rep) {
|
|
719
|
+
return scr_replace_impl(s, re, rep);
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
ScrStr *scr_regex_replace_all(ScrStr *s, ScrRegex *re, ScrStr *rep) {
|
|
723
|
+
if (!(lre_get_flags(scr_regex_bc(re)) & LRE_FLAG_GLOBAL)) {
|
|
724
|
+
/* Node's exact TypeError — a real instance now: catch bindings narrow
|
|
725
|
+
* it and e.message carries V8's text byte-for-byte. */
|
|
726
|
+
static const char msg[] =
|
|
727
|
+
"String.prototype.replaceAll called with a non-global RegExp argument";
|
|
728
|
+
scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1);
|
|
729
|
+
return NULL; /* callers are compiler-emitted pending checks */
|
|
730
|
+
}
|
|
731
|
+
return scr_replace_impl(s, re, rep);
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
/* ── split ────────────────────────────────────────────────────────────── */
|
|
735
|
+
|
|
736
|
+
ScrArr *scr_regex_split_limit(ScrStr *s, ScrRegex *re, double limit_num) {
|
|
737
|
+
uint8_t *bc = scr_regex_bc(re);
|
|
738
|
+
uint32_t limit = scr_to_uint32(limit_num);
|
|
739
|
+
if (limit == 0) return scr_arr_new(SCR_ELEM_STR, 0);
|
|
740
|
+
int capture_count = lre_get_capture_count(bc);
|
|
741
|
+
int re_flags = lre_get_flags(bc);
|
|
742
|
+
bool unicode = (re_flags & (LRE_FLAG_UNICODE | LRE_FLAG_UNICODE_SETS)) != 0;
|
|
743
|
+
bool sticky = (re_flags & LRE_FLAG_STICKY) != 0;
|
|
744
|
+
int len;
|
|
745
|
+
uint16_t *u = scr_to_utf16(s, &len);
|
|
746
|
+
uint8_t **capture = scr_capture_alloc(bc);
|
|
747
|
+
const uint8_t *ubase = (const uint8_t *)u;
|
|
748
|
+
ScrArr *out = scr_arr_new(SCR_ELEM_STR, 0);
|
|
749
|
+
|
|
750
|
+
/* ECMA-262 22.2.6.14 (Symbol.split). The spec probes every
|
|
751
|
+
* position with a sticky matcher; for non-sticky patterns a forward
|
|
752
|
+
* SEARCH from q is equivalent (the earliest match position >= q is the
|
|
753
|
+
* first probe that would succeed) and one exec replaces the per-position
|
|
754
|
+
* loop. A genuinely sticky pattern keeps the spec's probe-and-advance. */
|
|
755
|
+
if (len == 0) {
|
|
756
|
+
/* Empty subject: one probe — a match yields [], no match yields [""]. */
|
|
757
|
+
if (scr_exec(capture, bc, u, 0, len) != 1) {
|
|
758
|
+
scr_arr_push_ref(out, scr_str_new("", 0));
|
|
759
|
+
}
|
|
760
|
+
free(capture);
|
|
761
|
+
free(u);
|
|
762
|
+
return out;
|
|
763
|
+
}
|
|
764
|
+
int p = 0, q = 0;
|
|
765
|
+
while (q < len) {
|
|
766
|
+
if (scr_exec(capture, bc, u, q, len) != 1) {
|
|
767
|
+
if (!sticky) break; /* no match anywhere right of q */
|
|
768
|
+
q = scr_advance(u, len, q, unicode);
|
|
769
|
+
continue;
|
|
770
|
+
}
|
|
771
|
+
int start = (int)((capture[0] - ubase) >> 1);
|
|
772
|
+
int end = (int)((capture[1] - ubase) >> 1);
|
|
773
|
+
/* The sticky algorithm never probes the position after the subject.
|
|
774
|
+
* A forward search can find a zero-width match there; exclude it. */
|
|
775
|
+
if (start == len) break;
|
|
776
|
+
if (end == p) {
|
|
777
|
+
/* Zero-length match adjacent to the previous split point: advance
|
|
778
|
+
* (start == q == p here — the search cannot skip a match). */
|
|
779
|
+
q = scr_advance(u, len, start, unicode);
|
|
780
|
+
} else {
|
|
781
|
+
scr_arr_push_ref(out, scr_str_from_utf16(u, p, start));
|
|
782
|
+
if (out->len == limit) goto done;
|
|
783
|
+
for (int group = 1; group < capture_count; group++) {
|
|
784
|
+
const uint8_t *from = capture[2 * group];
|
|
785
|
+
const uint8_t *to = capture[2 * group + 1];
|
|
786
|
+
if (from == NULL || to == NULL) {
|
|
787
|
+
// Nonparticipating captures are present undefined elements,
|
|
788
|
+
// distinct from both empty strings and holes.
|
|
789
|
+
scr_arr_set_undefined(out, (double)out->len);
|
|
790
|
+
} else {
|
|
791
|
+
scr_arr_push_ref(out, scr_str_from_utf16(u,
|
|
792
|
+
(int)((from - ubase) >> 1), (int)((to - ubase) >> 1)));
|
|
793
|
+
}
|
|
794
|
+
if (out->len == limit) goto done;
|
|
795
|
+
}
|
|
796
|
+
p = end;
|
|
797
|
+
q = p;
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
scr_arr_push_ref(out, scr_str_from_utf16(u, p, len));
|
|
801
|
+
done:
|
|
802
|
+
free(capture);
|
|
803
|
+
free(u);
|
|
804
|
+
return out;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
ScrArr *scr_regex_split(ScrStr *s, ScrRegex *re) {
|
|
808
|
+
return scr_regex_split_limit(s, re, 4294967295.0);
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
/* ── String.prototype.toLowerCase / toUpperCase (the static path) ──────
|
|
812
|
+
* ECMA-262 Default Case Conversion via the vendored libunicode's
|
|
813
|
+
* lre_case_conv — the exact tables and algorithm the engine's own
|
|
814
|
+
* String.prototype methods run (quickjs.c's js_string_toLowerCase), the
|
|
815
|
+
* context-sensitive Greek final-sigma rule included. Lives HERE, not in
|
|
816
|
+
* scr_string.c, because it needs libunicode: the compiler sets the lre
|
|
817
|
+
* link flag for case-conversion sites exactly like regex nodes, so
|
|
818
|
+
* case-free (and regex-free) programs keep their historical link line.
|
|
819
|
+
* Node runs full ICU case mapping, but for the locale-independent
|
|
820
|
+
* toLowerCase/toUpperCase the two agree — ICU's locale tailorings
|
|
821
|
+
* (Turkish/Azeri dotted I, Lithuanian accent handling) apply only to
|
|
822
|
+
* toLocaleLowerCase with an explicit locale, which stays fenced. The
|
|
823
|
+
* receiver is BORROWED; the result is a fresh +1 string. */
|
|
824
|
+
|
|
825
|
+
/* Decode the code point at p (well-formed UTF-8); *adv gets the length. */
|
|
826
|
+
static uint32_t scr_case_decode(const char *p, size_t *adv) {
|
|
827
|
+
unsigned char c = (unsigned char)p[0];
|
|
828
|
+
if (c < 0x80) {
|
|
829
|
+
*adv = 1;
|
|
830
|
+
return c;
|
|
831
|
+
}
|
|
832
|
+
if (c < 0xE0) {
|
|
833
|
+
*adv = 2;
|
|
834
|
+
return ((uint32_t)(c & 0x1F) << 6) | ((unsigned char)p[1] & 0x3F);
|
|
835
|
+
}
|
|
836
|
+
if (c < 0xF0) {
|
|
837
|
+
*adv = 3;
|
|
838
|
+
return ((uint32_t)(c & 0x0F) << 12) |
|
|
839
|
+
((uint32_t)((unsigned char)p[1] & 0x3F) << 6) |
|
|
840
|
+
((unsigned char)p[2] & 0x3F);
|
|
841
|
+
}
|
|
842
|
+
*adv = 4;
|
|
843
|
+
return ((uint32_t)(c & 0x07) << 18) |
|
|
844
|
+
((uint32_t)((unsigned char)p[1] & 0x3F) << 12) |
|
|
845
|
+
((uint32_t)((unsigned char)p[2] & 0x3F) << 6) |
|
|
846
|
+
((unsigned char)p[3] & 0x3F);
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
/* Step back one code point from *off (> 0) and decode it. */
|
|
850
|
+
static uint32_t scr_case_prev(const ScrStr *s, size_t *off) {
|
|
851
|
+
size_t i = *off;
|
|
852
|
+
do {
|
|
853
|
+
i--;
|
|
854
|
+
} while (i > 0 && ((unsigned char)s->data[i] & 0xC0) == 0x80);
|
|
855
|
+
*off = i;
|
|
856
|
+
size_t adv;
|
|
857
|
+
return scr_case_decode(s->data + i, &adv);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
/* Unicode Final_Sigma: Σ is preceded by a cased letter (after skipping
|
|
861
|
+
* case-ignorable characters) and NOT followed by one — quickjs.c's
|
|
862
|
+
* test_final_sigma over the UTF-8 storage. `next_off` is the byte offset
|
|
863
|
+
* just past the sigma. */
|
|
864
|
+
static bool scr_final_sigma(const ScrStr *s, size_t sigma_off, size_t next_off) {
|
|
865
|
+
size_t k = sigma_off;
|
|
866
|
+
uint32_t c1;
|
|
867
|
+
for (;;) {
|
|
868
|
+
if (k == 0) return false; /* nothing cased before C */
|
|
869
|
+
c1 = scr_case_prev(s, &k);
|
|
870
|
+
if (!lre_is_case_ignorable(c1)) break;
|
|
871
|
+
}
|
|
872
|
+
if (!lre_is_cased(c1)) return false;
|
|
873
|
+
k = next_off;
|
|
874
|
+
for (;;) {
|
|
875
|
+
if (k >= s->len) return true;
|
|
876
|
+
size_t adv;
|
|
877
|
+
c1 = scr_case_decode(s->data + k, &adv);
|
|
878
|
+
k += adv;
|
|
879
|
+
if (!lre_is_case_ignorable(c1)) break;
|
|
880
|
+
}
|
|
881
|
+
return !lre_is_cased(c1);
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/* Append one code point as UTF-8 (case results never mint surrogates). */
|
|
885
|
+
static void scr_case_put_cp(ScrJsonBuf *b, uint32_t cp) {
|
|
886
|
+
if (cp < 0x80) {
|
|
887
|
+
scr_jb_putc(b, (char)cp);
|
|
888
|
+
} else if (cp < 0x800) {
|
|
889
|
+
scr_jb_putc(b, (char)(0xC0 | (cp >> 6)));
|
|
890
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
891
|
+
} else if (cp < 0x10000) {
|
|
892
|
+
scr_jb_putc(b, (char)(0xE0 | (cp >> 12)));
|
|
893
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 6) & 0x3F)));
|
|
894
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
895
|
+
} else {
|
|
896
|
+
scr_jb_putc(b, (char)(0xF0 | (cp >> 18)));
|
|
897
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 12) & 0x3F)));
|
|
898
|
+
scr_jb_putc(b, (char)(0x80 | ((cp >> 6) & 0x3F)));
|
|
899
|
+
scr_jb_putc(b, (char)(0x80 | (cp & 0x3F)));
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
static ScrStr *scr_str_case_conv(const ScrStr *s, int to_lower) {
|
|
904
|
+
ScrJsonBuf b;
|
|
905
|
+
scr_jb_init(&b);
|
|
906
|
+
uint32_t res[LRE_CC_RES_LEN_MAX];
|
|
907
|
+
for (size_t i = 0; i < s->len;) {
|
|
908
|
+
size_t adv;
|
|
909
|
+
uint32_t c = scr_case_decode(s->data + i, &adv);
|
|
910
|
+
int l;
|
|
911
|
+
if (c == 0x3a3 && to_lower && scr_final_sigma(s, i, i + adv)) {
|
|
912
|
+
res[0] = 0x3c2; /* final sigma */
|
|
913
|
+
l = 1;
|
|
914
|
+
} else {
|
|
915
|
+
l = lre_case_conv(res, c, to_lower);
|
|
916
|
+
}
|
|
917
|
+
i += adv;
|
|
918
|
+
for (int j = 0; j < l; j++) scr_case_put_cp(&b, res[j]);
|
|
919
|
+
}
|
|
920
|
+
return scr_jb_finish(&b);
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
ScrStr *scr_str_to_lower(const ScrStr *s) { return scr_str_case_conv(s, 1); }
|
|
924
|
+
ScrStr *scr_str_to_upper(const ScrStr *s) { return scr_str_case_conv(s, 0); }
|
|
925
|
+
|
|
926
|
+
/* ── assert.match / assert.doesNotMatch ──────────────────────────────────
|
|
927
|
+
* Lives here because it needs the matcher. Assertion matching follows
|
|
928
|
+
* RegExp.test, including global and sticky lastIndex transitions. */
|
|
929
|
+
static bool scr_assert_regex_hits(ScrRegex *re, ScrStr *s) {
|
|
930
|
+
return scr_regex_test(re, s);
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
/* The regex's own inspection — /source/ + FLAGS IN GETTER ORDER
|
|
934
|
+
* (dgimsuvy), not source order. +1. */
|
|
935
|
+
static ScrStr *scr_assert_regex_render(ScrRegex *re) {
|
|
936
|
+
size_t cap = re->source->len + re->flags->len + 2;
|
|
937
|
+
char *buf = malloc(cap);
|
|
938
|
+
if (!buf) scr_trap("scriptc: out of memory\n");
|
|
939
|
+
size_t n = 0;
|
|
940
|
+
buf[n++] = '/';
|
|
941
|
+
memcpy(buf + n, re->source->data, re->source->len);
|
|
942
|
+
n += re->source->len;
|
|
943
|
+
buf[n++] = '/';
|
|
944
|
+
for (const char *f = "dgimsuvy"; *f; f++) {
|
|
945
|
+
for (size_t i = 0; i < re->flags->len; i++) {
|
|
946
|
+
if (re->flags->data[i] == *f) buf[n++] = *f;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
ScrStr *out = scr_str_new(buf, n);
|
|
950
|
+
free(buf);
|
|
951
|
+
return out;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
/* Node's regex-mismatch AssertionError: 'The input did not match the
|
|
955
|
+
* regular expression /re/flags. Input:\n\n<inspect(input)>\n' (the
|
|
956
|
+
* was-expected-to-not-match head when negated). Always throws. */
|
|
957
|
+
static void scr_assert_regex_input_fail(bool negated, ScrRegex *re, ScrStr *input) {
|
|
958
|
+
ScrStr *insp = scr_assert_inspect_str(input);
|
|
959
|
+
ScrStr *rre = scr_assert_regex_render(re);
|
|
960
|
+
const char *head = negated
|
|
961
|
+
? "The input was expected to not match the regular expression "
|
|
962
|
+
: "The input did not match the regular expression ";
|
|
963
|
+
const char *mid = ". Input:\n\n";
|
|
964
|
+
size_t cap = strlen(head) + rre->len + strlen(mid) + insp->len + 1;
|
|
965
|
+
char *buf = malloc(cap);
|
|
966
|
+
if (!buf) scr_trap("scriptc: out of memory\n");
|
|
967
|
+
size_t n = 0;
|
|
968
|
+
memcpy(buf + n, head, strlen(head));
|
|
969
|
+
n += strlen(head);
|
|
970
|
+
memcpy(buf + n, rre->data, rre->len);
|
|
971
|
+
n += rre->len;
|
|
972
|
+
memcpy(buf + n, mid, strlen(mid));
|
|
973
|
+
n += strlen(mid);
|
|
974
|
+
memcpy(buf + n, insp->data, insp->len);
|
|
975
|
+
n += insp->len;
|
|
976
|
+
buf[n++] = '\n';
|
|
977
|
+
scr_str_release(insp);
|
|
978
|
+
scr_str_release(rre);
|
|
979
|
+
ScrStr *message = scr_str_new(buf, n);
|
|
980
|
+
free(buf);
|
|
981
|
+
scr_assert_fail_msg(message);
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
void scr_assert_match(ScrStr *s, ScrRegex *re, bool negated, ScrStr *msg,
|
|
985
|
+
bool has_msg) {
|
|
986
|
+
bool matched = scr_assert_regex_hits(re, s);
|
|
987
|
+
if (negated ? !matched : matched) return;
|
|
988
|
+
if (has_msg) {
|
|
989
|
+
scr_assert_fail_msg(scr_str_retain(msg));
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
scr_assert_regex_input_fail(negated, re, s);
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
/* assert.throws(fn, /re/) whose thrown Error did not satisfy the regex:
|
|
996
|
+
* Node tests String(actual) — Error.prototype.toString's "Name: message"
|
|
997
|
+
* — and reports the mismatch with that string inspected. */
|
|
998
|
+
void scr_assert_throws_regex(ScrRegex *re, ScrError *err, ScrStr *msg, bool has_msg) {
|
|
999
|
+
ScrStr *str = scr_error_to_string(err);
|
|
1000
|
+
bool matched = scr_assert_regex_hits(re, str);
|
|
1001
|
+
if (matched) {
|
|
1002
|
+
scr_str_release(str);
|
|
1003
|
+
return;
|
|
1004
|
+
}
|
|
1005
|
+
if (has_msg) {
|
|
1006
|
+
scr_str_release(str);
|
|
1007
|
+
scr_assert_fail_msg(scr_str_retain(msg));
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
scr_assert_regex_input_fail(false, re, str);
|
|
1011
|
+
scr_str_release(str);
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
/* assert.doesNotReject's regex predicate: does String(error) satisfy the
|
|
1015
|
+
* regex? Never throws — the caller inverts the verdict into either the
|
|
1016
|
+
* unwanted-rejection AssertionError or a rethrow of the original. */
|
|
1017
|
+
bool scr_assert_regex_err_test(ScrRegex *re, ScrError *err) {
|
|
1018
|
+
ScrStr *str = scr_error_to_string(err);
|
|
1019
|
+
bool matched = scr_assert_regex_hits(re, str);
|
|
1020
|
+
scr_str_release(str);
|
|
1021
|
+
return matched;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
/* The regex-valued shape slot (assert.throws(fn, {message: /re/})):
|
|
1025
|
+
* test the stashed actual key eagerly and store verdict + rendering, so
|
|
1026
|
+
* scr_assert.c's comparison and diff stay libregexp-free. An absent
|
|
1027
|
+
* actual key (NULL code) is a mismatch — Node's `key in actual` test. */
|
|
1028
|
+
void scr_assert_shape_re(int key, ScrRegex *re) {
|
|
1029
|
+
ScrStr *actual = scr_assert_shape_actual(key);
|
|
1030
|
+
bool matched = actual != NULL && scr_assert_regex_hits(re, actual);
|
|
1031
|
+
scr_assert_shape_slot_re(key, matched, scr_assert_regex_render(re));
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
/* ── new RegExp(pattern, flags) — runtime construction ────────────────
|
|
1035
|
+
* A heap ScrRegex (rc 1) over the same engine the literals use. The
|
|
1036
|
+
* pattern compiles EAGERLY so an invalid pattern throws Node's catchable
|
|
1037
|
+
* SyntaxError at construction (Node: "Invalid regular expression:
|
|
1038
|
+
* /pat/: detail" — the detail text is libregexp's, approximate fidelity
|
|
1039
|
+
* by design; e.name is exact). Unknown flag letters throw Node's
|
|
1040
|
+
* "Invalid flags supplied to RegExp constructor 'x'". An empty pattern
|
|
1041
|
+
* stores the spec's "(?:)" source, like Node. Borrows both; +1. */
|
|
1042
|
+
ScrRegex *scr_regex_new(ScrStr *pattern, ScrStr *flags) {
|
|
1043
|
+
unsigned seen_flags = 0;
|
|
1044
|
+
for (size_t i = 0; i < flags->len; i++) {
|
|
1045
|
+
unsigned flag = 0;
|
|
1046
|
+
switch (flags->data[i]) {
|
|
1047
|
+
case 'g': flag = 1u << 0; break;
|
|
1048
|
+
case 'i': flag = 1u << 1; break;
|
|
1049
|
+
case 'm': flag = 1u << 2; break;
|
|
1050
|
+
case 's': flag = 1u << 3; break;
|
|
1051
|
+
case 'u': flag = 1u << 4; break;
|
|
1052
|
+
case 'y': flag = 1u << 5; break;
|
|
1053
|
+
default: break;
|
|
1054
|
+
}
|
|
1055
|
+
if (!flag || (seen_flags & flag)) {
|
|
1056
|
+
char msg[80];
|
|
1057
|
+
int n = snprintf(msg, sizeof msg,
|
|
1058
|
+
"Invalid flags supplied to RegExp constructor '%.20s'",
|
|
1059
|
+
flags->data);
|
|
1060
|
+
scr_throw_error_msg(SCR_ERR_SYNTAX, msg, (size_t)n);
|
|
1061
|
+
return NULL;
|
|
1062
|
+
}
|
|
1063
|
+
seen_flags |= flag;
|
|
1064
|
+
}
|
|
1065
|
+
ScrRegex *re = calloc(1, sizeof *re);
|
|
1066
|
+
if (!re) {
|
|
1067
|
+
scr_trap("scriptc: out of memory\n");
|
|
1068
|
+
}
|
|
1069
|
+
re->rc = 1;
|
|
1070
|
+
re->source = pattern->len > 0 ? scr_str_retain(pattern) : scr_str_new("(?:)", 4);
|
|
1071
|
+
re->flags = scr_str_retain(flags);
|
|
1072
|
+
/* Eager compile — the literal path stays lazy (its failure is an
|
|
1073
|
+
* abort; tsc already parsed those patterns). */
|
|
1074
|
+
int lre_flags = scr_lre_flags(re->flags);
|
|
1075
|
+
const char *pat = re->source->data;
|
|
1076
|
+
size_t pat_len = re->source->len;
|
|
1077
|
+
char *cesu = NULL;
|
|
1078
|
+
if (!(lre_flags & LRE_FLAG_UNICODE)) {
|
|
1079
|
+
cesu = scr_pattern_cesu8(re->source, &pat_len);
|
|
1080
|
+
if (cesu) pat = cesu;
|
|
1081
|
+
}
|
|
1082
|
+
char error_msg[64];
|
|
1083
|
+
int bc_len;
|
|
1084
|
+
uint8_t *bc = lre_compile(&bc_len, error_msg, sizeof error_msg, pat, pat_len,
|
|
1085
|
+
lre_flags, lre_opaque());
|
|
1086
|
+
free(cesu);
|
|
1087
|
+
if (!bc) {
|
|
1088
|
+
char msg[192];
|
|
1089
|
+
int n = snprintf(msg, sizeof msg, "Invalid regular expression: /%.64s/%.8s: %s",
|
|
1090
|
+
re->source->data, re->flags->data, error_msg);
|
|
1091
|
+
scr_str_release(re->source);
|
|
1092
|
+
scr_str_release(re->flags);
|
|
1093
|
+
free(re);
|
|
1094
|
+
scr_throw_error_msg(SCR_ERR_SYNTAX, msg, (size_t)n);
|
|
1095
|
+
return NULL;
|
|
1096
|
+
}
|
|
1097
|
+
re->bc = bc;
|
|
1098
|
+
return re;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
/* Decode the code point at p (well-formed UTF-8 by the string
|
|
1102
|
+
* invariant); *adv gets the byte length of the sequence. */
|
|
1103
|
+
static uint32_t scr_re_utf8_decode(const char *p, size_t *adv) {
|
|
1104
|
+
unsigned char c = (unsigned char)p[0];
|
|
1105
|
+
if (c < 0x80) { *adv = 1; return c; }
|
|
1106
|
+
if (c < 0xE0) { *adv = 2; return ((uint32_t)(c & 0x1F) << 6) | ((unsigned char)p[1] & 0x3F); }
|
|
1107
|
+
if (c < 0xF0) {
|
|
1108
|
+
*adv = 3;
|
|
1109
|
+
return ((uint32_t)(c & 0x0F) << 12) | ((uint32_t)((unsigned char)p[1] & 0x3F) << 6) | ((unsigned char)p[2] & 0x3F);
|
|
1110
|
+
}
|
|
1111
|
+
*adv = 4;
|
|
1112
|
+
return ((uint32_t)(c & 0x07) << 18) | ((uint32_t)((unsigned char)p[1] & 0x3F) << 12) |
|
|
1113
|
+
((uint32_t)((unsigned char)p[2] & 0x3F) << 6) | ((unsigned char)p[3] & 0x3F);
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
/* ── RegExp.escape ────────────────────────────────────────────────────
|
|
1117
|
+
* ECMA-262 (ES2025) RegExp.escape over the UTF-8 storage. Per-code-point
|
|
1118
|
+
* EncodeForRegExpEscape: a LEADING ASCII letter/digit hex-escapes (so a
|
|
1119
|
+
* concatenation can't extend a token), SyntaxCharacters and '/' take a
|
|
1120
|
+
* backslash, the "other punctuators" ∪ WhiteSpace ∪ LineTerminator set
|
|
1121
|
+
* hex-escapes (\xNN below U+0100, \uNNNN above — lowercase hex, per
|
|
1122
|
+
* spec), and everything else passes through. The spec's surrogate arm is
|
|
1123
|
+
* unreachable over well-formed storage (SEMANTICS.md 2). Borrows s;
|
|
1124
|
+
* result +1. */
|
|
1125
|
+
static bool scr_regexp_syntax_char(uint32_t cp) {
|
|
1126
|
+
switch (cp) {
|
|
1127
|
+
case '^': case '$': case '\\': case '.': case '*': case '+': case '?':
|
|
1128
|
+
case '(': case ')': case '[': case ']': case '{': case '}': case '|':
|
|
1129
|
+
case '/':
|
|
1130
|
+
return true;
|
|
1131
|
+
default:
|
|
1132
|
+
return false;
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
/* The ControlEscape arm: TAB/LF/VT/FF/CR escape as \t \n \v \f \r (the
|
|
1137
|
+
* spec maps them through ControlEscape before the hex arm). Returns the
|
|
1138
|
+
* escape letter, or 0 when cp isn't one of the five. */
|
|
1139
|
+
static char scr_regexp_control_escape(uint32_t cp) {
|
|
1140
|
+
switch (cp) {
|
|
1141
|
+
case 0x09: return 't';
|
|
1142
|
+
case 0x0A: return 'n';
|
|
1143
|
+
case 0x0B: return 'v';
|
|
1144
|
+
case 0x0C: return 'f';
|
|
1145
|
+
case 0x0D: return 'r';
|
|
1146
|
+
default: return 0;
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
static bool scr_regexp_hex_escaped(uint32_t cp) {
|
|
1151
|
+
switch (cp) {
|
|
1152
|
+
/* other punctuators */
|
|
1153
|
+
case ',': case '-': case '=': case '<': case '>': case '#': case '&':
|
|
1154
|
+
case '!': case '%': case ':': case ';': case '@': case '~': case '\'':
|
|
1155
|
+
case '`': case '"':
|
|
1156
|
+
return true;
|
|
1157
|
+
/* WhiteSpace ∪ LineTerminator less the ControlEscape five */
|
|
1158
|
+
case 0x20: case 0xA0: case 0x1680: case 0x2028: case 0x2029:
|
|
1159
|
+
case 0x202F: case 0x205F: case 0x3000: case 0xFEFF:
|
|
1160
|
+
return true;
|
|
1161
|
+
default:
|
|
1162
|
+
return cp >= 0x2000 && cp <= 0x200A;
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
/* Encoded byte length of cp at position `first` (raw = its UTF-8 length). */
|
|
1167
|
+
static size_t scr_regexp_escape_len(uint32_t cp, bool first, size_t raw) {
|
|
1168
|
+
if (first && ((cp >= '0' && cp <= '9') || (cp >= 'A' && cp <= 'Z') || (cp >= 'a' && cp <= 'z'))) return 4;
|
|
1169
|
+
if (scr_regexp_syntax_char(cp) || scr_regexp_control_escape(cp) != 0) return 2;
|
|
1170
|
+
if (scr_regexp_hex_escaped(cp)) return cp < 0x100 ? 4 : 6;
|
|
1171
|
+
return raw;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
ScrStr *scr_regexp_escape(ScrStr *s) {
|
|
1175
|
+
static const char hex[] = "0123456789abcdef";
|
|
1176
|
+
size_t out_len = 0;
|
|
1177
|
+
bool first = true;
|
|
1178
|
+
for (size_t i = 0; i < s->len;) {
|
|
1179
|
+
size_t adv;
|
|
1180
|
+
uint32_t cp = scr_re_utf8_decode(s->data + i, &adv);
|
|
1181
|
+
out_len += scr_regexp_escape_len(cp, first, adv);
|
|
1182
|
+
first = false;
|
|
1183
|
+
i += adv;
|
|
1184
|
+
}
|
|
1185
|
+
if (out_len == s->len) return scr_str_retain(s); /* nothing escapes — share */
|
|
1186
|
+
ScrStr *out = scr_str_alloc_raw(out_len, out_len);
|
|
1187
|
+
char *w = out->data;
|
|
1188
|
+
first = true;
|
|
1189
|
+
for (size_t i = 0; i < s->len;) {
|
|
1190
|
+
size_t adv;
|
|
1191
|
+
uint32_t cp = scr_re_utf8_decode(s->data + i, &adv);
|
|
1192
|
+
size_t enc = scr_regexp_escape_len(cp, first, adv);
|
|
1193
|
+
if (enc == adv) { /* pass-through: an escape's length never matches raw */
|
|
1194
|
+
memcpy(w, s->data + i, adv);
|
|
1195
|
+
w += adv;
|
|
1196
|
+
} else if (enc == 2) {
|
|
1197
|
+
char ctl = scr_regexp_control_escape(cp);
|
|
1198
|
+
*w++ = '\\';
|
|
1199
|
+
*w++ = ctl != 0 ? ctl : (char)cp;
|
|
1200
|
+
} else if (enc == 4) {
|
|
1201
|
+
*w++ = '\\';
|
|
1202
|
+
*w++ = 'x';
|
|
1203
|
+
*w++ = hex[(cp >> 4) & 0xF];
|
|
1204
|
+
*w++ = hex[cp & 0xF];
|
|
1205
|
+
} else {
|
|
1206
|
+
*w++ = '\\';
|
|
1207
|
+
*w++ = 'u';
|
|
1208
|
+
*w++ = hex[(cp >> 12) & 0xF];
|
|
1209
|
+
*w++ = hex[(cp >> 8) & 0xF];
|
|
1210
|
+
*w++ = hex[(cp >> 4) & 0xF];
|
|
1211
|
+
*w++ = hex[cp & 0xF];
|
|
1212
|
+
}
|
|
1213
|
+
first = false;
|
|
1214
|
+
i += adv;
|
|
1215
|
+
}
|
|
1216
|
+
out->len = out_len;
|
|
1217
|
+
out->data[out_len] = '\0';
|
|
1218
|
+
return out;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
/* Checked storage retains the native pattern; no JavaScript engine is needed. */
|
|
1222
|
+
bool scr_dyn_native_regex_is(const ScrDyn *value) {
|
|
1223
|
+
return value && value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_REGEXP;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
ScrRegex *scr_dyn_native_regex_check(const ScrDyn *value, const ScrDynPath *path) {
|
|
1227
|
+
if (!scr_dyn_native_regex_is(value)) { scr_dyn_check_fail(path, "RegExp", value); return NULL; }
|
|
1228
|
+
return scr_regex_retain(value->v.handle.ptr);
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
static ScrDyn *scr_native_regex_string(ScrStr *text) {
|
|
1232
|
+
if (!text) return NULL;
|
|
1233
|
+
ScrDyn *out = scr_dyn_new_str(text);
|
|
1234
|
+
scr_str_release(text);
|
|
1235
|
+
return out;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
static ScrDyn *scr_native_regex_get(void *ptr, const char *key, size_t len) {
|
|
1239
|
+
ScrRegex *re = ptr;
|
|
1240
|
+
if (len == 6 && memcmp(key, "source", 6) == 0) return scr_native_regex_string(scr_regex_source(re));
|
|
1241
|
+
if (len == 5 && memcmp(key, "flags", 5) == 0) return scr_native_regex_string(scr_regex_flags(re));
|
|
1242
|
+
if (len == 9 && memcmp(key, "lastIndex", 9) == 0) return scr_dyn_new_num(re->last_index);
|
|
1243
|
+
static const struct { const char *name; char flag; } flags[] = {
|
|
1244
|
+
{"global", 'g'}, {"ignoreCase", 'i'}, {"multiline", 'm'}, {"dotAll", 's'},
|
|
1245
|
+
{"unicode", 'u'}, {"sticky", 'y'}, {"hasIndices", 'd'}, {"unicodeSets", 'v'},
|
|
1246
|
+
};
|
|
1247
|
+
for (size_t i = 0; i < sizeof flags / sizeof flags[0]; i++) {
|
|
1248
|
+
if (strlen(flags[i].name) == len && memcmp(key, flags[i].name, len) == 0)
|
|
1249
|
+
return scr_dyn_new_bool(memchr(re->flags->data, flags[i].flag, re->flags->len) != NULL);
|
|
1250
|
+
}
|
|
1251
|
+
static const char *const methods[] = {"test", "exec", "toString", "compile"};
|
|
1252
|
+
for (size_t i = 0; i < sizeof methods / sizeof methods[0]; i++) {
|
|
1253
|
+
if (strlen(methods[i]) == len && memcmp(key, methods[i], len) == 0) {
|
|
1254
|
+
static const char message[] = "Native RegExp method values have no lowering";
|
|
1255
|
+
scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
|
|
1256
|
+
break;
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
return NULL;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
static bool scr_native_regex_set(void *ptr, const char *key, size_t len, const ScrDyn *value) {
|
|
1263
|
+
if (len == 9 && memcmp(key, "lastIndex", 9) == 0) {
|
|
1264
|
+
if (value->kind != SCR_DYN_NUM) {
|
|
1265
|
+
static const char message[] = "Non-numeric RegExp.lastIndex values have no native lowering";
|
|
1266
|
+
scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
|
|
1267
|
+
return true;
|
|
1268
|
+
}
|
|
1269
|
+
((ScrRegex *)ptr)->last_index = value->v.num;
|
|
1270
|
+
return true;
|
|
1271
|
+
}
|
|
1272
|
+
return false;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
static ScrDyn *scr_native_regex_invoke(void *ptr, ScrDyn *self, const char *method,
|
|
1276
|
+
ScrDyn *const *args, size_t argc, const char *what) {
|
|
1277
|
+
(void)self; (void)what;
|
|
1278
|
+
ScrRegex *re = ptr;
|
|
1279
|
+
if (strcmp(method, "toString") == 0) return scr_native_regex_string(scr_regex_to_string(re));
|
|
1280
|
+
if (strcmp(method, "test") == 0) {
|
|
1281
|
+
ScrStr *subject = scr_dyn_string_coerce_js(argc ? args[0] : scr_dyn_undefined());
|
|
1282
|
+
if (!subject) return NULL;
|
|
1283
|
+
bool matches = scr_regex_test(re, subject);
|
|
1284
|
+
scr_str_release(subject);
|
|
1285
|
+
return scr_exc_pending() ? NULL : scr_dyn_new_bool(matches);
|
|
1286
|
+
}
|
|
1287
|
+
static const char message[] = "Native RegExp method has no lowering";
|
|
1288
|
+
scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020");
|
|
1289
|
+
return NULL;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
ScrDyn *scr_dyn_native_regex(ScrRegex *value) {
|
|
1293
|
+
static const ScrDynHandleOps ops = {
|
|
1294
|
+
"RegExp", &scr_regex_retain_v, &scr_regex_release_v, &scr_native_regex_invoke,
|
|
1295
|
+
&scr_native_regex_get, &scr_native_regex_set, NULL, NULL,
|
|
1296
|
+
};
|
|
1297
|
+
scr_dyn_handle_install(SCR_DYNH_REGEXP, &ops);
|
|
1298
|
+
return scr_dyn_new_handle(value, SCR_DYNH_REGEXP);
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
ScrRegex *scr_regex_new_checked(const ScrDyn *pattern, const ScrDyn *flags) {
|
|
1302
|
+
ScrRegex *original = scr_dyn_native_regex_is(pattern) ? pattern->v.handle.ptr : NULL;
|
|
1303
|
+
ScrStr *source = original ? scr_regex_source(original)
|
|
1304
|
+
: pattern->kind == SCR_DYN_UNDEF ? scr_str_new("", 0) : scr_dyn_string_coerce_js(pattern);
|
|
1305
|
+
if (!source) return NULL;
|
|
1306
|
+
ScrStr *options = flags->kind == SCR_DYN_UNDEF
|
|
1307
|
+
? original ? scr_regex_flags(original) : scr_str_new("", 0)
|
|
1308
|
+
: scr_dyn_string_coerce_js(flags);
|
|
1309
|
+
ScrRegex *result = options ? scr_regex_new(source, options) : NULL;
|
|
1310
|
+
scr_str_release(source);
|
|
1311
|
+
scr_str_release(options);
|
|
1312
|
+
return result;
|
|
1313
|
+
}
|