goscript 0.1.0 → 0.1.2
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/README.md +267 -255
- package/cmd/goscript/cmd-test.go +286 -0
- package/cmd/goscript/cmd-test_test.go +76 -0
- package/cmd/goscript/cmd_compile.go +9 -0
- package/cmd/goscript/main.go +1 -0
- package/compiler/build-flags.go +38 -0
- package/compiler/compile-request.go +33 -0
- package/compiler/compiler.go +1 -1
- package/compiler/compliance_test.go +0 -10
- package/compiler/config.go +2 -0
- package/compiler/gotest/owner.go +24 -0
- package/compiler/gotest/package-result.go +69 -0
- package/compiler/gotest/request.go +210 -0
- package/compiler/gotest/result.go +28 -0
- package/compiler/gotest/runner.go +1225 -0
- package/compiler/gotest/runner_test.go +1271 -0
- package/compiler/gotest/test.go +9 -0
- package/compiler/index.test.ts +1 -1
- package/compiler/lowered-program.go +80 -21
- package/compiler/lowering.go +6754 -602
- package/compiler/override-facts.go +357 -0
- package/compiler/override-registry.go +52 -190
- package/compiler/override-registry_test.go +182 -0
- package/compiler/package-graph.go +50 -27
- package/compiler/package-graph_test.go +99 -9
- package/compiler/package-test-function.go +9 -0
- package/compiler/package-test-graph-package.go +40 -0
- package/compiler/package-test-graph-variant.go +129 -0
- package/compiler/package-test-graph.go +112 -0
- package/compiler/package-test-graph_test.go +202 -0
- package/compiler/runtime-contract.go +229 -29
- package/compiler/runtime-contract_test.go +44 -30
- package/compiler/semantic-model-types.go +25 -6
- package/compiler/semantic-model.go +819 -74
- package/compiler/semantic-model_test.go +104 -0
- package/compiler/service.go +10 -4
- package/compiler/skeleton_test.go +2777 -524
- package/compiler/tsworkspace/owner-process-unix_test.go +72 -0
- package/compiler/tsworkspace/owner.go +342 -0
- package/compiler/tsworkspace/owner_test.go +93 -0
- package/compiler/tsworkspace/result.go +17 -0
- package/compiler/tsworkspace/tool-process-other.go +14 -0
- package/compiler/tsworkspace/tool-process-unix.go +19 -0
- package/compiler/typescript-emitter.go +576 -86
- package/compiler/wasm/compile.go +1 -1
- package/compiler/wasm/compile_test.go +61 -11
- package/compiler/wasm_api.go +172 -7
- package/dist/gs/builtin/builtin.d.ts +40 -3
- package/dist/gs/builtin/builtin.js +430 -22
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/channel.d.ts +32 -10
- package/dist/gs/builtin/channel.js +119 -25
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/defer.d.ts +1 -0
- package/dist/gs/builtin/defer.js +12 -2
- package/dist/gs/builtin/defer.js.map +1 -1
- package/dist/gs/builtin/hostio.d.ts +9 -0
- package/dist/gs/builtin/hostio.js +25 -0
- package/dist/gs/builtin/hostio.js.map +1 -1
- package/dist/gs/builtin/map.js +40 -6
- package/dist/gs/builtin/map.js.map +1 -1
- package/dist/gs/builtin/print.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +64 -10
- package/dist/gs/builtin/slice.js +619 -244
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +7 -2
- package/dist/gs/builtin/type.js +128 -29
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/builtin/varRef.d.ts +7 -0
- package/dist/gs/builtin/varRef.js +23 -0
- package/dist/gs/builtin/varRef.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.js +74 -70
- package/dist/gs/bytes/buffer.gs.js.map +1 -1
- package/dist/gs/bytes/iter.gs.js +13 -13
- package/dist/gs/bytes/iter.gs.js.map +1 -1
- package/dist/gs/bytes/reader.gs.js +20 -18
- package/dist/gs/bytes/reader.gs.js.map +1 -1
- package/dist/gs/compress/zlib/index.d.ts +26 -0
- package/dist/gs/compress/zlib/index.js +168 -0
- package/dist/gs/compress/zlib/index.js.map +1 -0
- package/dist/gs/context/context.d.ts +6 -5
- package/dist/gs/context/context.js +17 -12
- package/dist/gs/context/context.js.map +1 -1
- package/dist/gs/crypto/ecdh/index.d.ts +52 -0
- package/dist/gs/crypto/ecdh/index.js +226 -0
- package/dist/gs/crypto/ecdh/index.js.map +1 -0
- package/dist/gs/crypto/ed25519/index.d.ts +34 -0
- package/dist/gs/crypto/ed25519/index.js +160 -0
- package/dist/gs/crypto/ed25519/index.js.map +1 -0
- package/dist/gs/crypto/internal/constanttime/index.d.ts +4 -0
- package/dist/gs/crypto/internal/constanttime/index.js +18 -0
- package/dist/gs/crypto/internal/constanttime/index.js.map +1 -0
- package/dist/gs/crypto/internal/fips140deps/byteorder/index.d.ts +1 -0
- package/dist/gs/crypto/internal/fips140deps/byteorder/index.js +2 -0
- package/dist/gs/crypto/internal/fips140deps/byteorder/index.js.map +1 -0
- package/dist/gs/crypto/internal/fips140deps/godebug/index.d.ts +1 -0
- package/dist/gs/crypto/internal/fips140deps/godebug/index.js +2 -0
- package/dist/gs/crypto/internal/fips140deps/godebug/index.js.map +1 -0
- package/dist/gs/crypto/rand/index.d.ts +2 -0
- package/dist/gs/crypto/rand/index.js +85 -0
- package/dist/gs/crypto/rand/index.js.map +1 -1
- package/dist/gs/crypto/sha256/index.d.ts +8 -0
- package/dist/gs/crypto/sha256/index.js +118 -0
- package/dist/gs/crypto/sha256/index.js.map +1 -0
- package/dist/gs/crypto/sha512/index.d.ts +14 -0
- package/dist/gs/crypto/sha512/index.js +129 -0
- package/dist/gs/crypto/sha512/index.js.map +1 -0
- package/dist/gs/embed/index.d.ts +7 -0
- package/dist/gs/embed/index.js +16 -0
- package/dist/gs/embed/index.js.map +1 -0
- package/dist/gs/encoding/json/index.d.ts +4 -0
- package/dist/gs/encoding/json/index.js +33 -0
- package/dist/gs/encoding/json/index.js.map +1 -1
- package/dist/gs/errors/errors.d.ts +4 -0
- package/dist/gs/errors/errors.js +108 -4
- package/dist/gs/errors/errors.js.map +1 -1
- package/dist/gs/fmt/fmt.d.ts +4 -4
- package/dist/gs/fmt/fmt.js +42 -11
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +37 -2
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +245 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.d.ts +189 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js +861 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +217 -0
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +814 -0
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/util/conc/index.d.ts +20 -0
- package/dist/gs/github.com/aperturerobotics/util/conc/index.js +134 -0
- package/dist/gs/github.com/aperturerobotics/util/conc/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -1
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.d.ts +3 -0
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.js +50 -0
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.js.map +1 -0
- package/dist/gs/github.com/klauspost/compress/internal/le/index.d.ts +9 -0
- package/dist/gs/github.com/klauspost/compress/internal/le/index.js +72 -0
- package/dist/gs/github.com/klauspost/compress/internal/le/index.js.map +1 -0
- package/dist/gs/github.com/mr-tron/base58/base58/index.d.ts +27 -0
- package/dist/gs/github.com/mr-tron/base58/base58/index.js +172 -0
- package/dist/gs/github.com/mr-tron/base58/base58/index.js.map +1 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.d.ts +21 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.js +22 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.js.map +1 -0
- package/dist/gs/go/internal/scannerhooks/index.d.ts +3 -0
- package/dist/gs/go/internal/scannerhooks/index.js +5 -0
- package/dist/gs/go/internal/scannerhooks/index.js.map +1 -0
- package/dist/gs/go/scanner/index.d.ts +13 -0
- package/dist/gs/go/scanner/index.js +35 -0
- package/dist/gs/go/scanner/index.js.map +1 -1
- package/dist/gs/go/token/index.d.ts +156 -0
- package/dist/gs/go/token/index.js +507 -4
- package/dist/gs/go/token/index.js.map +1 -1
- package/dist/gs/hash/fnv/index.d.ts +57 -0
- package/dist/gs/hash/fnv/index.js +299 -0
- package/dist/gs/hash/fnv/index.js.map +1 -0
- package/dist/gs/hash/index.d.ts +17 -0
- package/dist/gs/hash/index.js +94 -0
- package/dist/gs/hash/index.js.map +1 -0
- package/dist/gs/internal/abi/index.d.ts +4 -0
- package/dist/gs/internal/abi/index.js +10 -0
- package/dist/gs/internal/abi/index.js.map +1 -1
- package/dist/gs/internal/bytealg/index.d.ts +2 -0
- package/dist/gs/internal/bytealg/index.js +14 -0
- package/dist/gs/internal/bytealg/index.js.map +1 -1
- package/dist/gs/internal/byteorder/index.d.ts +8 -2
- package/dist/gs/internal/byteorder/index.js +56 -25
- package/dist/gs/internal/byteorder/index.js.map +1 -1
- package/dist/gs/internal/godebug/index.d.ts +12 -0
- package/dist/gs/internal/godebug/index.js +30 -0
- package/dist/gs/internal/godebug/index.js.map +1 -0
- package/dist/gs/io/fs/index.d.ts +1 -0
- package/dist/gs/io/fs/index.js +1 -0
- package/dist/gs/io/fs/index.js.map +1 -1
- package/dist/gs/io/fs/readlink.d.ts +8 -0
- package/dist/gs/io/fs/readlink.js +60 -0
- package/dist/gs/io/fs/readlink.js.map +1 -0
- package/dist/gs/io/fs/walk.d.ts +3 -3
- package/dist/gs/io/fs/walk.js +7 -7
- package/dist/gs/io/fs/walk.js.map +1 -1
- package/dist/gs/io/io.d.ts +40 -6
- package/dist/gs/io/io.js +151 -26
- package/dist/gs/io/io.js.map +1 -1
- package/dist/gs/iter/iter.d.ts +3 -2
- package/dist/gs/iter/iter.js.map +1 -1
- package/dist/gs/maps/iter.d.ts +5 -5
- package/dist/gs/maps/iter.js +48 -21
- package/dist/gs/maps/iter.js.map +1 -1
- package/dist/gs/maps/maps.d.ts +6 -6
- package/dist/gs/maps/maps.js +1 -1
- package/dist/gs/maps/maps.js.map +1 -1
- package/dist/gs/math/bits/index.d.ts +13 -4
- package/dist/gs/math/bits/index.js +70 -48
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/math/const.gs.d.ts +5 -5
- package/dist/gs/math/const.gs.js +4 -4
- package/dist/gs/math/const.gs.js.map +1 -1
- package/dist/gs/mime/index.d.ts +1 -0
- package/dist/gs/mime/index.js +52 -0
- package/dist/gs/mime/index.js.map +1 -0
- package/dist/gs/net/http/httptest/index.d.ts +30 -0
- package/dist/gs/net/http/httptest/index.js +101 -0
- package/dist/gs/net/http/httptest/index.js.map +1 -0
- package/dist/gs/net/http/index.d.ts +131 -0
- package/dist/gs/net/http/index.js +307 -0
- package/dist/gs/net/http/index.js.map +1 -0
- package/dist/gs/net/http/pprof/index.d.ts +8 -0
- package/dist/gs/net/http/pprof/index.js +59 -0
- package/dist/gs/net/http/pprof/index.js.map +1 -0
- package/dist/gs/os/dir_unix.gs.js +2 -2
- package/dist/gs/os/dir_unix.gs.js.map +1 -1
- package/dist/gs/os/error.gs.js +9 -7
- package/dist/gs/os/error.gs.js.map +1 -1
- package/dist/gs/os/types_js.gs.js +95 -15
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/dist/gs/path/filepath/match.js +165 -3
- package/dist/gs/path/filepath/match.js.map +1 -1
- package/dist/gs/path/filepath/path.d.ts +8 -4
- package/dist/gs/path/filepath/path.js +192 -8
- package/dist/gs/path/filepath/path.js.map +1 -1
- package/dist/gs/path/path.d.ts +4 -1
- package/dist/gs/path/path.js +16 -4
- package/dist/gs/path/path.js.map +1 -1
- package/dist/gs/reflect/index.d.ts +4 -3
- package/dist/gs/reflect/index.js +3 -2
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/iter.js +2 -2
- package/dist/gs/reflect/iter.js.map +1 -1
- package/dist/gs/reflect/map.js +29 -0
- package/dist/gs/reflect/map.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +31 -9
- package/dist/gs/reflect/type.js +536 -43
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/reflect/types.d.ts +1 -0
- package/dist/gs/reflect/types.js +3 -1
- package/dist/gs/reflect/types.js.map +1 -1
- package/dist/gs/reflect/value.d.ts +4 -1
- package/dist/gs/reflect/value.js +39 -1
- package/dist/gs/reflect/value.js.map +1 -1
- package/dist/gs/reflect/visiblefields.js +1 -1
- package/dist/gs/reflect/visiblefields.js.map +1 -1
- package/dist/gs/runtime/debug/index.d.ts +41 -0
- package/dist/gs/runtime/debug/index.js +66 -0
- package/dist/gs/runtime/debug/index.js.map +1 -0
- package/dist/gs/runtime/pprof/index.d.ts +20 -0
- package/dist/gs/runtime/pprof/index.js +85 -0
- package/dist/gs/runtime/pprof/index.js.map +1 -0
- package/dist/gs/runtime/runtime.d.ts +35 -3
- package/dist/gs/runtime/runtime.js +72 -0
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/runtime/trace/index.d.ts +19 -0
- package/dist/gs/runtime/trace/index.js +64 -0
- package/dist/gs/runtime/trace/index.js.map +1 -0
- package/dist/gs/slices/slices.d.ts +42 -8
- package/dist/gs/slices/slices.js +425 -11
- package/dist/gs/slices/slices.js.map +1 -1
- package/dist/gs/sort/slice.gs.d.ts +5 -3
- package/dist/gs/sort/slice.gs.js +60 -22
- package/dist/gs/sort/slice.gs.js.map +1 -1
- package/dist/gs/sort/sort.gs.d.ts +4 -4
- package/dist/gs/sort/sort.gs.js +11 -8
- package/dist/gs/sort/sort.gs.js.map +1 -1
- package/dist/gs/strings/builder.d.ts +1 -1
- package/dist/gs/strings/builder.js +29 -19
- package/dist/gs/strings/builder.js.map +1 -1
- package/dist/gs/strings/iter.js +140 -75
- package/dist/gs/strings/iter.js.map +1 -1
- package/dist/gs/strings/replace.js +2 -2
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/strings.js +52 -6
- package/dist/gs/strings/strings.js.map +1 -1
- package/dist/gs/sync/atomic/type.gs.d.ts +9 -8
- package/dist/gs/sync/atomic/type.gs.js +0 -2
- package/dist/gs/sync/atomic/type.gs.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +8 -3
- package/dist/gs/sync/sync.js +66 -11
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/syscall/constants.d.ts +36 -24
- package/dist/gs/syscall/constants.js +12 -0
- package/dist/gs/syscall/constants.js.map +1 -1
- package/dist/gs/syscall/errors.d.ts +117 -111
- package/dist/gs/syscall/errors.js +45 -0
- package/dist/gs/syscall/errors.js.map +1 -1
- package/dist/gs/syscall/fs.d.ts +37 -0
- package/dist/gs/syscall/fs.js +102 -0
- package/dist/gs/syscall/fs.js.map +1 -1
- package/dist/gs/syscall/js/index.d.ts +90 -0
- package/dist/gs/syscall/js/index.js +383 -0
- package/dist/gs/syscall/js/index.js.map +1 -0
- package/dist/gs/syscall/types.d.ts +26 -1
- package/dist/gs/syscall/types.js +45 -1
- package/dist/gs/syscall/types.js.map +1 -1
- package/dist/gs/testing/index.d.ts +1 -0
- package/dist/gs/testing/index.js +2 -0
- package/dist/gs/testing/index.js.map +1 -0
- package/dist/gs/testing/testing.d.ts +78 -0
- package/dist/gs/testing/testing.js +318 -0
- package/dist/gs/testing/testing.js.map +1 -0
- package/dist/gs/time/time.d.ts +41 -4
- package/dist/gs/time/time.js +227 -36
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unicode/unicode.d.ts +23 -1
- package/dist/gs/unicode/unicode.js +79 -10
- package/dist/gs/unicode/unicode.js.map +1 -1
- package/dist/gs/unicode/utf8/utf8.d.ts +4 -4
- package/dist/gs/unicode/utf8/utf8.js +24 -11
- package/dist/gs/unicode/utf8/utf8.js.map +1 -1
- package/dist/gs/unique/index.d.ts +11 -0
- package/dist/gs/unique/index.js +76 -0
- package/dist/gs/unique/index.js.map +1 -0
- package/go.mod +8 -8
- package/go.sum +14 -14
- package/gs/builtin/builtin.ts +585 -27
- package/gs/builtin/channel.ts +183 -29
- package/gs/builtin/defer.ts +13 -2
- package/gs/builtin/hostio.test.ts +1 -0
- package/gs/builtin/hostio.ts +38 -0
- package/gs/builtin/map.ts +46 -6
- package/gs/builtin/print.ts +12 -3
- package/gs/builtin/runtime-contract.test.ts +383 -10
- package/gs/builtin/slice.test.ts +70 -0
- package/gs/builtin/slice.ts +785 -265
- package/gs/builtin/type.ts +160 -41
- package/gs/builtin/varRef.ts +40 -1
- package/gs/bytes/buffer.gs.ts +74 -70
- package/gs/bytes/iter.gs.ts +13 -14
- package/gs/bytes/meta.json +8 -3
- package/gs/bytes/reader.gs.ts +20 -19
- package/gs/compress/zlib/index.test.ts +28 -0
- package/gs/compress/zlib/index.ts +200 -0
- package/gs/compress/zlib/meta.json +3 -0
- package/gs/context/context.test.ts +71 -0
- package/gs/context/context.ts +30 -29
- package/gs/crypto/ecdh/index.test.ts +43 -0
- package/gs/crypto/ecdh/index.ts +274 -0
- package/gs/crypto/ed25519/index.test.ts +41 -0
- package/gs/crypto/ed25519/index.ts +238 -0
- package/gs/crypto/ed25519/meta.json +13 -0
- package/gs/crypto/internal/constanttime/index.test.ts +25 -0
- package/gs/crypto/internal/constanttime/index.ts +22 -0
- package/gs/crypto/internal/fips140deps/byteorder/index.ts +1 -0
- package/gs/crypto/internal/fips140deps/godebug/index.ts +1 -0
- package/gs/crypto/rand/index.test.ts +89 -1
- package/gs/crypto/rand/index.ts +103 -1
- package/gs/crypto/rand/meta.json +4 -1
- package/gs/crypto/sha256/index.test.ts +78 -0
- package/gs/crypto/sha256/index.ts +150 -0
- package/gs/crypto/sha256/meta.json +9 -0
- package/gs/crypto/sha512/index.test.ts +31 -0
- package/gs/crypto/sha512/index.ts +161 -0
- package/gs/crypto/sha512/meta.json +11 -0
- package/gs/embed/index.ts +20 -0
- package/gs/embed/meta.json +5 -0
- package/gs/encoding/json/index.test.ts +39 -3
- package/gs/encoding/json/index.ts +45 -3
- package/gs/errors/errors.test.ts +85 -0
- package/gs/errors/errors.ts +132 -4
- package/gs/fmt/fmt.test.ts +3 -1
- package/gs/fmt/fmt.ts +55 -19
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +128 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +342 -4
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +180 -0
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +1084 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/index.test.ts +31 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +1233 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +46 -0
- package/gs/github.com/aperturerobotics/util/conc/index.test.ts +30 -0
- package/gs/github.com/aperturerobotics/util/conc/index.ts +172 -0
- package/gs/github.com/aperturerobotics/util/conc/meta.json +9 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts +1 -4
- package/gs/github.com/hack-pad/safejs/internal/catch/index.test.ts +35 -0
- package/gs/github.com/hack-pad/safejs/internal/catch/index.ts +65 -0
- package/gs/github.com/hack-pad/safejs/internal/catch/meta.json +9 -0
- package/gs/github.com/klauspost/compress/internal/le/index.test.ts +37 -0
- package/gs/github.com/klauspost/compress/internal/le/index.ts +115 -0
- package/gs/github.com/mr-tron/base58/base58/index.test.ts +70 -0
- package/gs/github.com/mr-tron/base58/base58/index.ts +231 -0
- package/gs/github.com/mr-tron/base58/base58/meta.json +3 -0
- package/gs/github.com/zeebo/blake3/internal/consts/index.test.ts +46 -0
- package/gs/github.com/zeebo/blake3/internal/consts/index.ts +26 -0
- package/gs/go/internal/scannerhooks/index.test.ts +14 -0
- package/gs/go/internal/scannerhooks/index.ts +9 -0
- package/gs/go/scanner/index.test.ts +22 -0
- package/gs/go/scanner/index.ts +47 -0
- package/gs/go/token/index.test.ts +47 -1
- package/gs/go/token/index.ts +583 -4
- package/gs/hash/fnv/index.test.ts +67 -0
- package/gs/hash/fnv/index.ts +351 -0
- package/gs/hash/fnv/meta.json +3 -0
- package/gs/hash/index.test.ts +37 -0
- package/gs/hash/index.ts +118 -0
- package/gs/hash/meta.json +5 -0
- package/gs/internal/abi/index.test.ts +18 -0
- package/gs/internal/abi/index.ts +14 -0
- package/gs/internal/bytealg/index.test.ts +18 -0
- package/gs/internal/bytealg/index.ts +16 -0
- package/gs/internal/byteorder/index.test.ts +39 -0
- package/gs/internal/byteorder/index.ts +100 -27
- package/gs/internal/godebug/index.test.ts +16 -0
- package/gs/internal/godebug/index.ts +35 -0
- package/gs/io/fs/index.ts +1 -0
- package/gs/io/fs/meta.json +5 -0
- package/gs/io/fs/readlink.test.ts +43 -0
- package/gs/io/fs/readlink.ts +69 -0
- package/gs/io/fs/walk.test.ts +61 -0
- package/gs/io/fs/walk.ts +17 -9
- package/gs/io/io.ts +177 -31
- package/gs/io/meta.json +10 -2
- package/gs/iter/iter.ts +8 -2
- package/gs/maps/iter.ts +75 -26
- package/gs/maps/maps.test.ts +23 -0
- package/gs/maps/maps.ts +13 -11
- package/gs/math/bits/index.test.ts +20 -0
- package/gs/math/bits/index.ts +107 -64
- package/gs/math/const.gs.test.ts +11 -5
- package/gs/math/const.gs.ts +5 -6
- package/gs/mime/index.ts +60 -0
- package/gs/net/http/httptest/index.test.ts +53 -0
- package/gs/net/http/httptest/index.ts +120 -0
- package/gs/net/http/index.test.ts +148 -0
- package/gs/net/http/index.ts +432 -0
- package/gs/net/http/meta.json +6 -0
- package/gs/net/http/pprof/index.test.ts +47 -0
- package/gs/net/http/pprof/index.ts +65 -0
- package/gs/os/dir_unix.gs.ts +2 -3
- package/gs/os/error.gs.ts +9 -10
- package/gs/os/error.test.ts +41 -0
- package/gs/os/file_unix_js.test.ts +55 -0
- package/gs/os/tempfile.gs.test.ts +37 -10
- package/gs/os/types_js.gs.ts +96 -17
- package/gs/path/filepath/match.test.ts +31 -12
- package/gs/path/filepath/match.ts +181 -3
- package/gs/path/filepath/meta.json +6 -0
- package/gs/path/filepath/path.test.ts +80 -0
- package/gs/path/filepath/path.ts +244 -11
- package/gs/path/path.ts +20 -5
- package/gs/reflect/field.test.ts +63 -0
- package/gs/reflect/index.ts +5 -1
- package/gs/reflect/iter.ts +2 -2
- package/gs/reflect/map.test.ts +42 -1
- package/gs/reflect/map.ts +39 -0
- package/gs/reflect/type.ts +728 -65
- package/gs/reflect/typefor.test.ts +100 -0
- package/gs/reflect/types.ts +3 -1
- package/gs/reflect/value.ts +50 -1
- package/gs/reflect/visiblefields.ts +1 -1
- package/gs/runtime/debug/index.test.ts +45 -0
- package/gs/runtime/debug/index.ts +96 -0
- package/gs/runtime/pprof/index.test.ts +36 -0
- package/gs/runtime/pprof/index.ts +104 -0
- package/gs/runtime/pprof/meta.json +6 -0
- package/gs/runtime/runtime.test.ts +19 -0
- package/gs/runtime/runtime.ts +98 -3
- package/gs/runtime/trace/index.test.ts +45 -0
- package/gs/runtime/trace/index.ts +97 -0
- package/gs/runtime/trace/meta.json +7 -0
- package/gs/slices/meta.json +2 -1
- package/gs/slices/slices.test.ts +180 -0
- package/gs/slices/slices.ts +502 -15
- package/gs/sort/meta.json +7 -0
- package/gs/sort/slice.gs.ts +85 -26
- package/gs/sort/slice.test.ts +40 -0
- package/gs/sort/sort.gs.ts +16 -13
- package/gs/strings/builder.test.ts +8 -0
- package/gs/strings/builder.ts +33 -20
- package/gs/strings/iter.test.ts +5 -7
- package/gs/strings/iter.ts +146 -71
- package/gs/strings/replace.test.ts +1 -4
- package/gs/strings/replace.ts +6 -6
- package/gs/strings/strings.test.ts +4 -0
- package/gs/strings/strings.ts +54 -6
- package/gs/sync/atomic/type.gs.ts +13 -14
- package/gs/sync/meta.json +3 -1
- package/gs/sync/sync.test.ts +69 -1
- package/gs/sync/sync.ts +72 -13
- package/gs/syscall/constants.ts +39 -24
- package/gs/syscall/errors.ts +165 -112
- package/gs/syscall/fs.ts +195 -0
- package/gs/syscall/js/index.ts +485 -0
- package/gs/syscall/js/meta.json +4 -0
- package/gs/syscall/net.test.ts +111 -0
- package/gs/syscall/types.ts +63 -2
- package/gs/testing/index.ts +1 -0
- package/gs/testing/meta.json +5 -0
- package/gs/testing/testing.test.ts +146 -0
- package/gs/testing/testing.ts +399 -0
- package/gs/time/meta.json +2 -2
- package/gs/time/time.test.ts +110 -0
- package/gs/time/time.ts +309 -57
- package/gs/unicode/unicode.test.ts +36 -0
- package/gs/unicode/unicode.ts +115 -9
- package/gs/unicode/utf8/utf8.test.ts +13 -0
- package/gs/unicode/utf8/utf8.ts +28 -16
- package/gs/unique/index.ts +98 -0
- package/package.json +3 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as io from '@goscript/io/index.js';
|
|
3
|
+
type WriterArg = io.Writer | $.VarRef<io.Writer> | null | undefined;
|
|
4
|
+
export declare class Profile {
|
|
5
|
+
name: string;
|
|
6
|
+
constructor(name?: string);
|
|
7
|
+
Name(): string;
|
|
8
|
+
Count(): number;
|
|
9
|
+
WriteTo(w: WriterArg, debug: number): $.GoError;
|
|
10
|
+
}
|
|
11
|
+
export declare function Lookup(name: string): Profile | null;
|
|
12
|
+
export declare function Profiles(): $.Slice<Profile | null>;
|
|
13
|
+
export declare function StartCPUProfile(w: WriterArg): $.GoError;
|
|
14
|
+
export declare function StopCPUProfile(): void;
|
|
15
|
+
export declare function SetGoroutineLabels(_ctx: unknown): void;
|
|
16
|
+
export declare function Do(_ctx: unknown, _labels: unknown, fn: (() => void) | null): void;
|
|
17
|
+
export declare function ForLabels(_ctx: unknown, _f: unknown): void;
|
|
18
|
+
export declare function WithLabels(ctx: unknown, _labels: unknown): unknown;
|
|
19
|
+
export declare function Labels(...args: string[]): Map<string, string>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as errors from '@goscript/errors/index.js';
|
|
3
|
+
let activeCPUWriter = null;
|
|
4
|
+
export class Profile {
|
|
5
|
+
name;
|
|
6
|
+
constructor(name = '') {
|
|
7
|
+
this.name = name;
|
|
8
|
+
}
|
|
9
|
+
Name() {
|
|
10
|
+
return this.name;
|
|
11
|
+
}
|
|
12
|
+
Count() {
|
|
13
|
+
return this.name === '' ? 0 : 1;
|
|
14
|
+
}
|
|
15
|
+
WriteTo(w, debug) {
|
|
16
|
+
return writeProfile(w, `goscript pprof ${this.name} debug=${debug}\n`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function Lookup(name) {
|
|
20
|
+
switch (name) {
|
|
21
|
+
case 'heap':
|
|
22
|
+
case 'allocs':
|
|
23
|
+
case 'goroutine':
|
|
24
|
+
case 'threadcreate':
|
|
25
|
+
case 'block':
|
|
26
|
+
case 'mutex':
|
|
27
|
+
return new Profile(name);
|
|
28
|
+
default:
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function Profiles() {
|
|
33
|
+
return $.arrayToSlice([
|
|
34
|
+
new Profile('allocs'),
|
|
35
|
+
new Profile('block'),
|
|
36
|
+
new Profile('goroutine'),
|
|
37
|
+
new Profile('heap'),
|
|
38
|
+
new Profile('mutex'),
|
|
39
|
+
new Profile('threadcreate'),
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
export function StartCPUProfile(w) {
|
|
43
|
+
const writer = writerFromArg(w);
|
|
44
|
+
if (writer == null) {
|
|
45
|
+
return errors.New('runtime/pprof: nil profile writer');
|
|
46
|
+
}
|
|
47
|
+
if (activeCPUWriter != null) {
|
|
48
|
+
return errors.New('runtime/pprof: CPU profiling already active');
|
|
49
|
+
}
|
|
50
|
+
activeCPUWriter = writer;
|
|
51
|
+
return writeProfile(writer, 'goscript cpu profile start\n');
|
|
52
|
+
}
|
|
53
|
+
export function StopCPUProfile() {
|
|
54
|
+
if (activeCPUWriter != null) {
|
|
55
|
+
writeProfile(activeCPUWriter, 'goscript cpu profile stop\n');
|
|
56
|
+
activeCPUWriter = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export function SetGoroutineLabels(_ctx) { }
|
|
60
|
+
export function Do(_ctx, _labels, fn) {
|
|
61
|
+
fn?.();
|
|
62
|
+
}
|
|
63
|
+
export function ForLabels(_ctx, _f) { }
|
|
64
|
+
export function WithLabels(ctx, _labels) {
|
|
65
|
+
return ctx;
|
|
66
|
+
}
|
|
67
|
+
export function Labels(...args) {
|
|
68
|
+
const labels = new Map();
|
|
69
|
+
for (let i = 0; i + 1 < args.length; i += 2) {
|
|
70
|
+
labels.set(args[i], args[i + 1]);
|
|
71
|
+
}
|
|
72
|
+
return labels;
|
|
73
|
+
}
|
|
74
|
+
function writerFromArg(w) {
|
|
75
|
+
return $.pointerValueOrNil(w);
|
|
76
|
+
}
|
|
77
|
+
function writeProfile(w, text) {
|
|
78
|
+
const writer = writerFromArg(w);
|
|
79
|
+
if (writer == null) {
|
|
80
|
+
return errors.New('runtime/pprof: nil profile writer');
|
|
81
|
+
}
|
|
82
|
+
const [, err] = writer.Write($.stringToBytes(text));
|
|
83
|
+
return err;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/runtime/pprof/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAKnD,IAAI,eAAe,GAAqB,IAAI,CAAA;AAE5C,MAAM,OAAO,OAAO;IACX,IAAI,CAAQ;IAEnB,YAAY,IAAI,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,OAAO,CAAC,CAAY,EAAE,KAAa;QACxC,OAAO,YAAY,CAAC,CAAC,EAAE,kBAAkB,IAAI,CAAC,IAAI,UAAU,KAAK,IAAI,CAAC,CAAA;IACxE,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1B;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,CAAC,YAAY,CAAC;QACpB,IAAI,OAAO,CAAC,QAAQ,CAAC;QACrB,IAAI,OAAO,CAAC,OAAO,CAAC;QACpB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,CAAC;QACnB,IAAI,OAAO,CAAC,OAAO,CAAC;QACpB,IAAI,OAAO,CAAC,cAAc,CAAC;KAC5B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAY;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAA;IAClE,CAAC;IACD,eAAe,GAAG,MAAM,CAAA;IACxB,OAAO,YAAY,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,YAAY,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAA;QAC5D,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa,IAAS,CAAC;AAE1D,MAAM,UAAU,EAAE,CAAC,IAAa,EAAE,OAAgB,EAAE,EAAuB;IACzE,EAAE,EAAE,EAAE,CAAA;AACR,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,EAAW,IAAS,CAAC;AAE9D,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,OAAgB;IACvD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG,IAAc;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,CAAY;IACjC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,CAAY,EAAE,IAAY;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IACxD,CAAC;IACD,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
export declare const GOOS: string;
|
|
3
|
+
export declare const GOARCH: string;
|
|
4
|
+
export declare const Compiler: string;
|
|
5
|
+
export declare const GOVERSION: string;
|
|
4
6
|
export declare function Version(): string;
|
|
5
7
|
export declare function GOMAXPROCS(_n: number): number;
|
|
6
8
|
export declare function NumCPU(): number;
|
|
@@ -10,6 +12,31 @@ export declare function NumGoroutine(): number;
|
|
|
10
12
|
export declare function _incrementGoroutineCount(): void;
|
|
11
13
|
export declare function _decrementGoroutineCount(): void;
|
|
12
14
|
export declare function Caller(_skip: number): [number, string, number, boolean];
|
|
15
|
+
export declare class Func {
|
|
16
|
+
Entry(): number;
|
|
17
|
+
FileLine(_pc: number): [string, number];
|
|
18
|
+
Name(): string;
|
|
19
|
+
}
|
|
20
|
+
export declare function FuncForPC(_pc: number): Func | null;
|
|
21
|
+
export declare function StartTrace(): $.GoError;
|
|
22
|
+
export declare function StopTrace(): void;
|
|
23
|
+
export declare function ReadTrace(): $.Slice<number>;
|
|
24
|
+
export declare class Frame {
|
|
25
|
+
PC: number;
|
|
26
|
+
Func: Func | null;
|
|
27
|
+
Function: string;
|
|
28
|
+
File: string;
|
|
29
|
+
Line: number;
|
|
30
|
+
Entry: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class Frames {
|
|
33
|
+
private readonly frames;
|
|
34
|
+
private index;
|
|
35
|
+
constructor(frames?: Frame[]);
|
|
36
|
+
Next(): [Frame, boolean];
|
|
37
|
+
}
|
|
38
|
+
export declare function Callers(_skip: number, _pc: $.Slice<number>): number;
|
|
39
|
+
export declare function CallersFrames(_callers: $.Slice<number>): Frames;
|
|
13
40
|
export declare function Stack(): Uint8Array;
|
|
14
41
|
export declare class MemStats {
|
|
15
42
|
Alloc: number;
|
|
@@ -39,4 +66,9 @@ export declare class PanicError implements Error {
|
|
|
39
66
|
Error(): string;
|
|
40
67
|
}
|
|
41
68
|
export declare function SetFinalizer(_obj: object, _finalizer: ((obj: object) => void) | null): void;
|
|
69
|
+
export declare class Cleanup {
|
|
70
|
+
Stop(): void;
|
|
71
|
+
clone(): Cleanup;
|
|
72
|
+
}
|
|
73
|
+
export declare function AddCleanup<T, S>(_ptr: T, _cleanup: (arg: S) => void | Promise<void>, _arg: S): Cleanup;
|
|
42
74
|
export declare function KeepAlive(obj: any): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Runtime constants for the JavaScript/WebAssembly target
|
|
2
2
|
export const GOOS = 'js';
|
|
3
3
|
export const GOARCH = 'wasm';
|
|
4
|
+
export const Compiler = 'gc';
|
|
4
5
|
// Version returns the Go version as a string
|
|
5
6
|
export const GOVERSION = 'go1.25.3';
|
|
6
7
|
export function Version() {
|
|
@@ -68,6 +69,65 @@ export function Caller(_skip) {
|
|
|
68
69
|
const ok = false; // indicate we don't have real stack info
|
|
69
70
|
return [pc, file, line, ok];
|
|
70
71
|
}
|
|
72
|
+
// Func represents metadata for a function in a stack frame.
|
|
73
|
+
export class Func {
|
|
74
|
+
Entry() {
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
FileLine(_pc) {
|
|
78
|
+
return ['', 0];
|
|
79
|
+
}
|
|
80
|
+
Name() {
|
|
81
|
+
return '';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// FuncForPC returns function metadata for a program counter.
|
|
85
|
+
export function FuncForPC(_pc) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
// StartTrace enables execution tracing.
|
|
89
|
+
export function StartTrace() {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
// StopTrace stops execution tracing.
|
|
93
|
+
export function StopTrace() { }
|
|
94
|
+
// ReadTrace returns the next execution trace chunk.
|
|
95
|
+
export function ReadTrace() {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
// Frame represents a single call frame.
|
|
99
|
+
export class Frame {
|
|
100
|
+
PC = 0;
|
|
101
|
+
Func = null;
|
|
102
|
+
Function = '';
|
|
103
|
+
File = '';
|
|
104
|
+
Line = 0;
|
|
105
|
+
Entry = 0;
|
|
106
|
+
}
|
|
107
|
+
// Frames iterates over call frames.
|
|
108
|
+
export class Frames {
|
|
109
|
+
frames;
|
|
110
|
+
index = 0;
|
|
111
|
+
constructor(frames = []) {
|
|
112
|
+
this.frames = frames;
|
|
113
|
+
}
|
|
114
|
+
Next() {
|
|
115
|
+
if (this.index >= this.frames.length) {
|
|
116
|
+
return [new Frame(), false];
|
|
117
|
+
}
|
|
118
|
+
const frame = this.frames[this.index];
|
|
119
|
+
this.index++;
|
|
120
|
+
return [frame, this.index < this.frames.length];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Callers fills pc with return program counters from the current stack.
|
|
124
|
+
export function Callers(_skip, _pc) {
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
// CallersFrames returns an iterator over call frames for pcs.
|
|
128
|
+
export function CallersFrames(_callers) {
|
|
129
|
+
return new Frames();
|
|
130
|
+
}
|
|
71
131
|
// Stack returns a formatted stack trace of the calling goroutine.
|
|
72
132
|
// In JavaScript, we use Error.stack
|
|
73
133
|
export function Stack() {
|
|
@@ -143,6 +203,18 @@ export class PanicError {
|
|
|
143
203
|
export function SetFinalizer(_obj, _finalizer) {
|
|
144
204
|
throw new Error('runtime.SetFinalizer is not supported in goscript TypeScript environment');
|
|
145
205
|
}
|
|
206
|
+
// Cleanup is a handle to a cleanup call for a specific object.
|
|
207
|
+
export class Cleanup {
|
|
208
|
+
Stop() { }
|
|
209
|
+
clone() {
|
|
210
|
+
return new Cleanup();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// AddCleanup registers cleanup to run when ptr is no longer reachable.
|
|
214
|
+
export function AddCleanup(_ptr, _cleanup, _arg) {
|
|
215
|
+
// JavaScript runtimes do not provide Go's cleanup scheduling contract here.
|
|
216
|
+
return new Cleanup();
|
|
217
|
+
}
|
|
146
218
|
// KeepAlive keeps obj reachable until the point where KeepAlive is called
|
|
147
219
|
export function KeepAlive(obj) {
|
|
148
220
|
// In JavaScript, just accessing the object keeps it alive for this call
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as context from '@goscript/context/index.js';
|
|
3
|
+
import * as io from '@goscript/io/index.js';
|
|
4
|
+
export declare class Task {
|
|
5
|
+
id: number;
|
|
6
|
+
constructor(id?: number);
|
|
7
|
+
End(): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class Region {
|
|
10
|
+
End(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function NewTask(pctx: context.Context | null, _taskType: string): [context.Context | null, Task];
|
|
13
|
+
export declare function Log(_ctx: context.Context | null, category: string, message: string): void;
|
|
14
|
+
export declare function Logf(_ctx: context.Context | null, _category: string, _format: string, ..._args: unknown[]): void;
|
|
15
|
+
export declare function WithRegion(_ctx: context.Context | null, _regionType: string, fn: (() => void) | null): void;
|
|
16
|
+
export declare function StartRegion(_ctx: context.Context | null, _regionType: string): Region;
|
|
17
|
+
export declare function IsEnabled(): boolean;
|
|
18
|
+
export declare function Start(w: io.Writer | $.VarRef<io.Writer> | null): $.GoError;
|
|
19
|
+
export declare function Stop(): void;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as context from '@goscript/context/index.js';
|
|
3
|
+
import * as errors from '@goscript/errors/index.js';
|
|
4
|
+
class traceContextKey {
|
|
5
|
+
}
|
|
6
|
+
const traceState = {
|
|
7
|
+
activeWriter: null,
|
|
8
|
+
nextTaskID: 0,
|
|
9
|
+
};
|
|
10
|
+
export class Task {
|
|
11
|
+
id;
|
|
12
|
+
constructor(id = 0) {
|
|
13
|
+
this.id = id;
|
|
14
|
+
}
|
|
15
|
+
End() { }
|
|
16
|
+
}
|
|
17
|
+
export class Region {
|
|
18
|
+
End() { }
|
|
19
|
+
}
|
|
20
|
+
export function NewTask(pctx, _taskType) {
|
|
21
|
+
const parent = pctx ?? context.Background();
|
|
22
|
+
const task = new Task(++traceState.nextTaskID);
|
|
23
|
+
return [
|
|
24
|
+
context.WithValue(parent, $.interfaceValue(new traceContextKey(), 'trace.traceContextKey'), $.interfaceValue(task, '*trace.Task')),
|
|
25
|
+
task,
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
export function Log(_ctx, category, message) {
|
|
29
|
+
writeTrace(`log ${category} ${message}\n`);
|
|
30
|
+
}
|
|
31
|
+
export function Logf(_ctx, _category, _format, ..._args) { }
|
|
32
|
+
export function WithRegion(_ctx, _regionType, fn) {
|
|
33
|
+
fn?.();
|
|
34
|
+
}
|
|
35
|
+
export function StartRegion(_ctx, _regionType) {
|
|
36
|
+
return new Region();
|
|
37
|
+
}
|
|
38
|
+
export function IsEnabled() {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
export function Start(w) {
|
|
42
|
+
const writer = $.pointerValueOrNil(w);
|
|
43
|
+
if (writer == null) {
|
|
44
|
+
return errors.New('runtime/trace: nil trace writer');
|
|
45
|
+
}
|
|
46
|
+
if (traceState.activeWriter != null) {
|
|
47
|
+
return errors.New('runtime/trace: trace already active');
|
|
48
|
+
}
|
|
49
|
+
traceState.activeWriter = writer;
|
|
50
|
+
return writeTrace('goscript trace start\n');
|
|
51
|
+
}
|
|
52
|
+
export function Stop() {
|
|
53
|
+
writeTrace('goscript trace stop\n');
|
|
54
|
+
traceState.activeWriter = null;
|
|
55
|
+
}
|
|
56
|
+
function writeTrace(text) {
|
|
57
|
+
const writer = traceState.activeWriter;
|
|
58
|
+
if (writer == null) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const [, err] = writer.Write($.stringToBytes(text));
|
|
62
|
+
return err;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/runtime/trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAGnD,MAAM,eAAe;CAAG;AAExB,MAAM,UAAU,GAAG;IACjB,YAAY,EAAE,IAAwB;IACtC,UAAU,EAAE,CAAC;CACd,CAAA;AAED,MAAM,OAAO,IAAI;IACR,EAAE,CAAQ;IAEjB,YAAY,EAAE,GAAG,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAEM,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,OAAO,MAAM;IACV,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,UAAU,OAAO,CACrB,IAA4B,EAC5B,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAC9C,OAAO;QACL,OAAO,CAAC,SAAS,CACf,MAAM,EACN,CAAC,CAAC,cAAc,CAAC,IAAI,eAAe,EAAE,EAAE,uBAAuB,CAAC,EAChE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CACtC;QACD,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAA4B,EAAE,QAAgB,EAAE,OAAe;IACjF,UAAU,CAAC,OAAO,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,IAA4B,EAC5B,SAAiB,EACjB,OAAe,EACf,GAAG,KAAgB,IACZ,CAAC;AAEV,MAAM,UAAU,UAAU,CACxB,IAA4B,EAC5B,WAAmB,EACnB,EAAuB;IAEvB,EAAE,EAAE,EAAE,CAAA;AACR,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAA4B,EAC5B,WAAmB;IAEnB,OAAO,IAAI,MAAM,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAyC;IAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAC1D,CAAC;IACD,UAAU,CAAC,YAAY,GAAG,MAAM,CAAA;IAChC,OAAO,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,UAAU,CAAC,uBAAuB,CAAC,CAAA;IACnC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAA;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAA;IACtC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
import * as cmp from '../cmp/index.js';
|
|
3
|
+
import * as iter from '../iter/index.js';
|
|
4
|
+
type SyncCallbackResult<T> = T | globalThis.Promise<T>;
|
|
5
|
+
type CompareCallback<T, U = T> = ((v1: T, v2: U) => SyncCallbackResult<number>) | null;
|
|
6
|
+
type PredicateCallback<T> = ((value: T) => SyncCallbackResult<boolean>) | null;
|
|
7
|
+
type EqualCallback<T, U = T> = ((v1: T, v2: U) => SyncCallbackResult<boolean>) | null;
|
|
2
8
|
/**
|
|
3
9
|
* Compare compares the elements of s1 and s2 using cmp.Compare.
|
|
4
10
|
* The elements are compared sequentially, starting at index 0,
|
|
@@ -12,19 +18,30 @@ import * as $ from '@goscript/builtin/index.js';
|
|
|
12
18
|
* @returns -1, 0, or 1
|
|
13
19
|
*/
|
|
14
20
|
export declare function Compare<T extends string | number>(s1: $.Slice<T>, s2: $.Slice<T>): number;
|
|
21
|
+
export declare function CompareFunc<T, U>(s1: $.Slice<T>, s2: $.Slice<U>, compare: CompareCallback<T, U>): number;
|
|
22
|
+
/**
|
|
23
|
+
* Clone returns a shallow copy of s while preserving nilness.
|
|
24
|
+
* @param s The slice to clone
|
|
25
|
+
* @returns A new slice with the same elements, or null for a nil slice
|
|
26
|
+
*/
|
|
27
|
+
export declare function Clone<T>(s: $.Slice<T>): $.Slice<T>;
|
|
28
|
+
export declare function Concat<T>(...slices: $.Slice<T>[]): $.Slice<T>;
|
|
15
29
|
/**
|
|
16
30
|
* All returns an iterator over index-value pairs in the slice.
|
|
17
31
|
* This is equivalent to Go's slices.All function.
|
|
18
32
|
* @param s The slice to iterate over
|
|
19
33
|
* @returns An iterator function that yields index-value pairs
|
|
20
34
|
*/
|
|
21
|
-
export declare function All<T>(s: $.Slice<T>): (yieldFunc: (index: number, value: T) =>
|
|
22
|
-
|
|
23
|
-
* Sort sorts a slice in ascending order.
|
|
24
|
-
* This is equivalent to Go's slices.Sort function.
|
|
25
|
-
* @param s The slice to sort in place
|
|
26
|
-
*/
|
|
35
|
+
export declare function All<T>(s: $.Slice<T>): (yieldFunc: (index: number, value: T) => iter.YieldResult) => void | globalThis.Promise<void>;
|
|
36
|
+
export declare function Backward<T>(s: $.Slice<T>): (_yield: (index: number, value: T) => boolean | globalThis.Promise<boolean>) => void | globalThis.Promise<void>;
|
|
27
37
|
export declare function Sort<T extends string | number>(s: $.Slice<T>): void;
|
|
38
|
+
export declare function IsSorted<T extends string | number>(x: $.Slice<T>): boolean;
|
|
39
|
+
export declare function Max<T extends cmp.Ordered>(x: $.Slice<T>): T;
|
|
40
|
+
export declare function Min<T extends cmp.Ordered>(x: $.Slice<T>): T;
|
|
41
|
+
export declare function MaxFunc<T>(x: $.Slice<T>, compare: CompareCallback<T>): T;
|
|
42
|
+
export declare function MinFunc<T>(x: $.Slice<T>, compare: CompareCallback<T>): T;
|
|
43
|
+
export declare function Collect<T>(seq: iter.Seq<T>): $.Slice<T>;
|
|
44
|
+
export declare function Sorted<T extends string | number>(seq: iter.Seq<T>): $.Slice<T>;
|
|
28
45
|
/**
|
|
29
46
|
* Delete removes the elements s[i:j] from s, returning the modified slice.
|
|
30
47
|
* Delete panics if j > len(s) or s[i:j] is not a valid slice of s.
|
|
@@ -35,6 +52,19 @@ export declare function Sort<T extends string | number>(s: $.Slice<T>): void;
|
|
|
35
52
|
* @returns The modified slice
|
|
36
53
|
*/
|
|
37
54
|
export declare function Delete<T>(s: $.Slice<T>, i: number, j: number): $.Slice<T>;
|
|
55
|
+
export declare function DeleteFunc<T>(s: $.Slice<T>, del: PredicateCallback<T>): $.Slice<T>;
|
|
56
|
+
export declare function Replace<T>(s: $.Slice<T>, i: number, j: number, ...v: T[]): $.Slice<T>;
|
|
57
|
+
export declare function Compact<T>(s: $.Slice<T>): $.Slice<T>;
|
|
58
|
+
export declare function CompactFunc<T>(s: $.Slice<T>, eq: EqualCallback<T>): $.Slice<T>;
|
|
59
|
+
export declare function Clip<T>(s: $.Slice<T>): $.Slice<T>;
|
|
60
|
+
export declare function Equal<T>(s1: $.Slice<T>, s2: $.Slice<T>): boolean;
|
|
61
|
+
export declare function EqualFunc<T, U>(s1: $.Slice<T>, s2: $.Slice<U>, eq: EqualCallback<T, U>): boolean;
|
|
62
|
+
export declare function Index<T>(s: $.Slice<T>, v: T): number;
|
|
63
|
+
export declare function IndexFunc<T>(s: $.Slice<T>, f: PredicateCallback<T>): number;
|
|
64
|
+
export declare function Contains<T>(s: $.Slice<T>, v: T): boolean;
|
|
65
|
+
export declare function ContainsFunc<T>(s: $.Slice<T>, f: PredicateCallback<T>): boolean;
|
|
66
|
+
export declare function Insert<T>(s: $.Slice<T>, i: number, ...v: T[]): $.Slice<T>;
|
|
67
|
+
export declare function Reverse<T>(s: $.Slice<T>): void;
|
|
38
68
|
/**
|
|
39
69
|
* Grow increases the slice's capacity, if necessary, to guarantee space for
|
|
40
70
|
* another n elements. After Grow(n), at least n elements can be appended
|
|
@@ -53,7 +83,9 @@ export declare function Grow<T>(s: $.Slice<T>, n: number): $.Slice<T>;
|
|
|
53
83
|
* @param s The slice to sort in place
|
|
54
84
|
* @param cmp Comparison function
|
|
55
85
|
*/
|
|
56
|
-
export declare function SortFunc<T>(s: $.Slice<T>, cmp:
|
|
86
|
+
export declare function SortFunc<T>(s: $.Slice<T>, cmp: CompareCallback<T>): void;
|
|
87
|
+
export declare function IsSortedFunc<T>(x: $.Slice<T>, cmp: CompareCallback<T>): boolean;
|
|
88
|
+
export declare function SortStableFunc<T>(s: $.Slice<T>, cmp: CompareCallback<T>): void;
|
|
57
89
|
/**
|
|
58
90
|
* BinarySearchFunc works like BinarySearch, but uses a custom comparison function.
|
|
59
91
|
* The slice must be sorted in increasing order, where "increasing" is defined by cmp.
|
|
@@ -66,4 +98,6 @@ export declare function SortFunc<T>(s: $.Slice<T>, cmp: (a: T, b: T) => number):
|
|
|
66
98
|
* @param cmp Comparison function
|
|
67
99
|
* @returns A tuple of [index, found] where index is the position and found indicates if target was found
|
|
68
100
|
*/
|
|
69
|
-
export declare function BinarySearchFunc<E, T>(x: $.Slice<E>, target: T, cmp:
|
|
101
|
+
export declare function BinarySearchFunc<E, T>(x: $.Slice<E>, target: T, cmp: CompareCallback<E, T>): [number, boolean];
|
|
102
|
+
export declare function BinarySearch<T extends cmp.Ordered>(x: $.Slice<T>, target: T): [number, boolean];
|
|
103
|
+
export {};
|