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
|
@@ -25,10 +25,10 @@ export declare class StringSlice {
|
|
|
25
25
|
Less(i: number, j: number): boolean;
|
|
26
26
|
Swap(i: number, j: number): void;
|
|
27
27
|
}
|
|
28
|
-
export declare function Sort(data: Interface): void;
|
|
29
|
-
export declare function Stable(data: Interface): void;
|
|
30
|
-
export declare function IsSorted(data: Interface): boolean;
|
|
31
|
-
export declare function Reverse(data: Interface): Interface;
|
|
28
|
+
export declare function Sort(data: Interface | null): void;
|
|
29
|
+
export declare function Stable(data: Interface | null): void;
|
|
30
|
+
export declare function IsSorted(data: Interface | null): boolean;
|
|
31
|
+
export declare function Reverse(data: Interface | null): Interface;
|
|
32
32
|
export declare function Ints(x: $.Slice<number>): void;
|
|
33
33
|
export declare function IntsAreSorted(x: $.Slice<number>): boolean;
|
|
34
34
|
export declare function Float64s(x: $.Slice<number>): void;
|
package/dist/gs/sort/sort.gs.js
CHANGED
|
@@ -79,11 +79,12 @@ export class StringSlice {
|
|
|
79
79
|
}
|
|
80
80
|
// Sort sorts data in ascending order as determined by the Less method
|
|
81
81
|
export function Sort(data) {
|
|
82
|
+
const sortData = $.pointerValue(data);
|
|
82
83
|
// Use a simple insertion sort for now - can be optimized later
|
|
83
|
-
const n =
|
|
84
|
+
const n = sortData.Len();
|
|
84
85
|
for (let i = 1; i < n; i++) {
|
|
85
|
-
for (let j = i; j > 0 &&
|
|
86
|
-
|
|
86
|
+
for (let j = i; j > 0 && sortData.Less(j, j - 1); j--) {
|
|
87
|
+
sortData.Swap(j, j - 1);
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
}
|
|
@@ -94,9 +95,10 @@ export function Stable(data) {
|
|
|
94
95
|
}
|
|
95
96
|
// IsSorted reports whether data is sorted
|
|
96
97
|
export function IsSorted(data) {
|
|
97
|
-
const
|
|
98
|
+
const sortData = $.pointerValue(data);
|
|
99
|
+
const n = sortData.Len();
|
|
98
100
|
for (let i = n - 1; i > 0; i--) {
|
|
99
|
-
if (
|
|
101
|
+
if (sortData.Less(i, i - 1)) {
|
|
100
102
|
return false;
|
|
101
103
|
}
|
|
102
104
|
}
|
|
@@ -104,10 +106,11 @@ export function IsSorted(data) {
|
|
|
104
106
|
}
|
|
105
107
|
// Reverse returns the reverse order for data
|
|
106
108
|
export function Reverse(data) {
|
|
109
|
+
const sortData = $.pointerValue(data);
|
|
107
110
|
return {
|
|
108
|
-
Len: () =>
|
|
109
|
-
Less: (i, j) =>
|
|
110
|
-
Swap: (i, j) =>
|
|
111
|
+
Len: () => sortData.Len(),
|
|
112
|
+
Less: (i, j) => sortData.Less(j, i),
|
|
113
|
+
Swap: (i, j) => sortData.Swap(i, j)
|
|
111
114
|
};
|
|
112
115
|
}
|
|
113
116
|
// Helper function to swap elements in a slice
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.gs.js","sourceRoot":"","sources":["../../../gs/sort/sort.gs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sort.gs.js","sourceRoot":"","sources":["../../../gs/sort/sort.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAiB/C,qCAAqC;AACrC,MAAM,OAAO,QAAQ;IACC,MAAM;IAA1B,YAAoB,MAAuB;sBAAvB,MAAM;IAAoB,CAAC;IAE/C,GAAG;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,OAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,CAAA;IAClF,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAClD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvF,MAAM,IAAI,GAAI,IAAI,CAAC,MAAc,CAAC,QAAiC,CAAA;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAED,yCAAyC;AACzC,MAAM,OAAO,YAAY;IACH,MAAM;IAA1B,YAAoB,MAAuB;sBAAvB,MAAM;IAAoB,CAAC;IAE/C,GAAG;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,OAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,CAAA;IAClF,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAClD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvF,MAAM,IAAI,GAAI,IAAI,CAAC,MAAc,CAAC,QAAiC,CAAA;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAED,uCAAuC;AACvC,MAAM,OAAO,WAAW;IACF,MAAM;IAA1B,YAAoB,MAAuB;sBAAvB,MAAM;IAAoB,CAAC;IAE/C,GAAG;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,OAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAY,CAAA;IAClF,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAClD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvF,MAAM,IAAI,GAAI,IAAI,CAAC,MAAc,CAAC,QAAiC,CAAA;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAW,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,UAAU,IAAI,CAAC,IAAsB;IACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,MAAM,CAAC,IAAsB;IAC3C,4DAA4D;IAC5D,IAAI,CAAC,IAAI,CAAC,CAAA;AACZ,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,QAAQ,CAAC,IAAsB;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,OAAO,CAAC,IAAsB;IAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,IAAI,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KACpD,CAAA;AACH,CAAC;AAED,8CAA8C;AAC9C,SAAS,WAAW,CAAI,KAAiB,EAAE,CAAS,EAAE,CAAS;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAA;QAClB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAU,CAAA;QACrB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAU,CAAA;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAI,KAAa,CAAC,QAA4B,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAM,CAAA;QACjD,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAS,CAAA;IACtC,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,IAAI,CAAC,CAAkB;IACrC,IAAI,CAAC,CAAC;QAAE,OAAM;IAEd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACxF,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,CAAkB;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,QAAQ,CAAC,CAAkB;IACzC,IAAI,CAAC,CAAC;QAAE,OAAM;IAEd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACxF,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,CAAkB;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,CAAkB;IACxC,IAAI,CAAC,CAAC;QAAE,OAAM;IAEd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACxF,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,CAAkB;IACjD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAY,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAY,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare class Builder {
|
|
|
10
10
|
Cap(): number;
|
|
11
11
|
Reset(): void;
|
|
12
12
|
Grow(n: number): void;
|
|
13
|
-
Write(p:
|
|
13
|
+
Write(p: $.Bytes): [number, $.GoError];
|
|
14
14
|
WriteByte(c: number): $.GoError;
|
|
15
15
|
WriteRune(r: number): [number, $.GoError];
|
|
16
16
|
WriteString(s: string): [number, $.GoError];
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
function builderValue(builder) {
|
|
3
|
+
return $.pointerValue(builder);
|
|
4
|
+
}
|
|
2
5
|
export class Builder {
|
|
3
6
|
_content = '';
|
|
4
7
|
_addr = null;
|
|
@@ -12,38 +15,40 @@ export class Builder {
|
|
|
12
15
|
return cloned;
|
|
13
16
|
}
|
|
14
17
|
copyCheck() {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
const builder = builderValue(this);
|
|
19
|
+
if (builder._addr == null) {
|
|
20
|
+
builder._addr = builder;
|
|
17
21
|
}
|
|
18
|
-
else if (
|
|
22
|
+
else if (builder._addr !== builder) {
|
|
19
23
|
$.panic('strings: illegal use of non-zero Builder copied by value');
|
|
20
24
|
}
|
|
21
25
|
}
|
|
22
26
|
// String returns the accumulated string.
|
|
23
27
|
String() {
|
|
24
|
-
return this._content;
|
|
28
|
+
return builderValue(this)._content;
|
|
25
29
|
}
|
|
26
30
|
// Len returns the number of accumulated bytes; b.Len() == len(b.String()).
|
|
27
31
|
Len() {
|
|
28
|
-
return this._content.length;
|
|
32
|
+
return builderValue(this)._content.length;
|
|
29
33
|
}
|
|
30
34
|
// Cap returns the capacity of the builder's underlying byte slice. It is the
|
|
31
35
|
// total space allocated for the string being built and includes any bytes
|
|
32
36
|
// already written.
|
|
33
37
|
Cap() {
|
|
34
38
|
// For simplicity, return the current length since JavaScript strings are dynamic
|
|
35
|
-
return this._content.length;
|
|
39
|
+
return builderValue(this)._content.length;
|
|
36
40
|
}
|
|
37
41
|
// Reset resets the Builder to be empty.
|
|
38
42
|
Reset() {
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
const builder = builderValue(this);
|
|
44
|
+
builder._addr = null;
|
|
45
|
+
builder._content = '';
|
|
41
46
|
}
|
|
42
47
|
// Grow grows b's capacity, if necessary, to guarantee space for
|
|
43
48
|
// another n bytes. After Grow(n), at least n bytes can be written to b
|
|
44
49
|
// without another allocation. If n is negative, Grow panics.
|
|
45
50
|
Grow(n) {
|
|
46
|
-
this.copyCheck();
|
|
51
|
+
builderValue(this).copyCheck();
|
|
47
52
|
if (n < 0) {
|
|
48
53
|
$.panic('strings.Builder.Grow: negative count');
|
|
49
54
|
}
|
|
@@ -52,25 +57,29 @@ export class Builder {
|
|
|
52
57
|
// Write appends the contents of p to b's buffer.
|
|
53
58
|
// Write always returns len(p), nil.
|
|
54
59
|
Write(p) {
|
|
55
|
-
this.copyCheck();
|
|
60
|
+
builderValue(this).copyCheck();
|
|
61
|
+
const builder = builderValue(this);
|
|
56
62
|
// Convert byte array to string
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
const bytes = $.bytesToUint8Array(p);
|
|
64
|
+
const str = new TextDecoder('utf-8').decode(bytes);
|
|
65
|
+
builder._content += str;
|
|
66
|
+
return [$.len(p), null];
|
|
60
67
|
}
|
|
61
68
|
// WriteByte appends the byte c to b's buffer.
|
|
62
69
|
// The returned error is always nil.
|
|
63
70
|
WriteByte(c) {
|
|
64
|
-
this.copyCheck();
|
|
65
|
-
|
|
71
|
+
builderValue(this).copyCheck();
|
|
72
|
+
const builder = builderValue(this);
|
|
73
|
+
builder._content += String.fromCharCode(c);
|
|
66
74
|
return null;
|
|
67
75
|
}
|
|
68
76
|
// WriteRune appends the UTF-8 encoding of Unicode code point r to b's buffer.
|
|
69
77
|
// It returns the length of r and a nil error.
|
|
70
78
|
WriteRune(r) {
|
|
71
|
-
this.copyCheck();
|
|
79
|
+
builderValue(this).copyCheck();
|
|
80
|
+
const builder = builderValue(this);
|
|
72
81
|
const str = String.fromCodePoint(r);
|
|
73
|
-
|
|
82
|
+
builder._content += str;
|
|
74
83
|
// Return the byte length of the UTF-8 encoding
|
|
75
84
|
const byteLength = new TextEncoder().encode(str).length;
|
|
76
85
|
return [byteLength, null];
|
|
@@ -78,8 +87,9 @@ export class Builder {
|
|
|
78
87
|
// WriteString appends the contents of s to b's buffer.
|
|
79
88
|
// It returns the length of s and a nil error.
|
|
80
89
|
WriteString(s) {
|
|
81
|
-
this.copyCheck();
|
|
82
|
-
|
|
90
|
+
builderValue(this).copyCheck();
|
|
91
|
+
const builder = builderValue(this);
|
|
92
|
+
builder._content += s;
|
|
83
93
|
return [s.length, null];
|
|
84
94
|
}
|
|
85
95
|
// Register this type with the runtime type system
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../gs/strings/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,MAAM,OAAO,OAAO;IACV,QAAQ,GAAW,EAAE,CAAA;IACrB,KAAK,GAAmB,IAAI,CAAA;IAEpC,YAAY,KAAmB;QAC7B,wDAAwD;IAC1D,CAAC;IAEM,KAAK;QACV,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;QAC5B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC/B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../gs/strings/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/strings/iter.js
CHANGED
|
@@ -18,39 +18,61 @@ const asciiSpace = {
|
|
|
18
18
|
// It returns a single-use iterator.
|
|
19
19
|
export function Lines(s) {
|
|
20
20
|
return (_yield) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
const walk = () => {
|
|
22
|
+
for (; $.len(s) > 0;) {
|
|
23
|
+
let line;
|
|
24
|
+
{
|
|
25
|
+
let i = IndexByte(s, 10);
|
|
26
|
+
if (i >= 0) {
|
|
27
|
+
;
|
|
28
|
+
[line, s] = [
|
|
29
|
+
$.sliceString(s, undefined, i + 1),
|
|
30
|
+
$.sliceString(s, i + 1, undefined),
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
;
|
|
35
|
+
[line, s] = [s, ''];
|
|
36
|
+
}
|
|
31
37
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
const keepGoing = _yield(line);
|
|
39
|
+
if (keepGoing instanceof Promise) {
|
|
40
|
+
return keepGoing.then((next) => {
|
|
41
|
+
if (next) {
|
|
42
|
+
return walk();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (!keepGoing) {
|
|
47
|
+
return;
|
|
35
48
|
}
|
|
36
49
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return;
|
|
50
|
+
};
|
|
51
|
+
return walk();
|
|
42
52
|
};
|
|
43
53
|
}
|
|
44
54
|
// explodeSeq returns an iterator over the runes in s.
|
|
45
55
|
export function explodeSeq(s) {
|
|
46
56
|
return (_yield) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
const walk = () => {
|
|
58
|
+
for (; $.len(s) > 0;) {
|
|
59
|
+
let [, size] = utf8.DecodeRuneInString(s);
|
|
60
|
+
const keepGoing = _yield($.sliceString(s, undefined, size));
|
|
61
|
+
if (keepGoing instanceof Promise) {
|
|
62
|
+
return keepGoing.then((next) => {
|
|
63
|
+
if (next) {
|
|
64
|
+
s = $.sliceString(s, size, undefined);
|
|
65
|
+
return walk();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (!keepGoing) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
s = $.sliceString(s, size, undefined);
|
|
51
73
|
}
|
|
52
|
-
|
|
53
|
-
|
|
74
|
+
};
|
|
75
|
+
return walk();
|
|
54
76
|
};
|
|
55
77
|
}
|
|
56
78
|
// splitSeq is SplitSeq or SplitAfterSeq, configured by how many
|
|
@@ -60,18 +82,33 @@ export function splitSeq(s, sep, sepSave) {
|
|
|
60
82
|
return explodeSeq(s);
|
|
61
83
|
}
|
|
62
84
|
return (_yield) => {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
85
|
+
const walk = () => {
|
|
86
|
+
for (;;) {
|
|
87
|
+
let i = Index(s, sep);
|
|
88
|
+
if (i < 0) {
|
|
89
|
+
const keepGoing = _yield(s);
|
|
90
|
+
if (keepGoing instanceof Promise) {
|
|
91
|
+
return keepGoing.then(() => { });
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
let frag = $.sliceString(s, undefined, i + sepSave);
|
|
96
|
+
const keepGoing = _yield(frag);
|
|
97
|
+
if (keepGoing instanceof Promise) {
|
|
98
|
+
return keepGoing.then((next) => {
|
|
99
|
+
if (next) {
|
|
100
|
+
s = $.sliceString(s, i + $.len(sep), undefined);
|
|
101
|
+
return walk();
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (!keepGoing) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
s = $.sliceString(s, i + $.len(sep), undefined);
|
|
71
109
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
_yield(s);
|
|
110
|
+
};
|
|
111
|
+
return walk();
|
|
75
112
|
};
|
|
76
113
|
}
|
|
77
114
|
// SplitSeq returns an iterator over all substrings of s separated by sep.
|
|
@@ -95,31 +132,45 @@ export function SplitAfterSeq(s, sep) {
|
|
|
95
132
|
export function FieldsSeq(s) {
|
|
96
133
|
return (_yield) => {
|
|
97
134
|
let start = -1;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (
|
|
109
|
-
if (
|
|
110
|
-
|
|
135
|
+
const walk = (i) => {
|
|
136
|
+
for (; i < $.len(s);) {
|
|
137
|
+
let size = 1;
|
|
138
|
+
let r = $.indexString(s, i);
|
|
139
|
+
let isSpace = asciiSpace[$.indexString(s, i)] === true;
|
|
140
|
+
if (r >= utf8.RuneSelf) {
|
|
141
|
+
;
|
|
142
|
+
[r, size] = utf8.DecodeRuneInString($.sliceString(s, i, undefined));
|
|
143
|
+
isSpace = unicode.IsSpace(r);
|
|
144
|
+
}
|
|
145
|
+
if (isSpace) {
|
|
146
|
+
if (start >= 0) {
|
|
147
|
+
const keepGoing = _yield($.sliceString(s, start, i));
|
|
148
|
+
start = -1;
|
|
149
|
+
if (keepGoing instanceof Promise) {
|
|
150
|
+
return keepGoing.then((next) => {
|
|
151
|
+
if (next) {
|
|
152
|
+
return walk(i + size);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (!keepGoing) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
111
159
|
}
|
|
112
|
-
start = -1;
|
|
113
160
|
}
|
|
161
|
+
else if (start < 0) {
|
|
162
|
+
start = i;
|
|
163
|
+
}
|
|
164
|
+
i += size;
|
|
114
165
|
}
|
|
115
|
-
|
|
116
|
-
|
|
166
|
+
if (start >= 0) {
|
|
167
|
+
const keepGoing = _yield($.sliceString(s, start, undefined));
|
|
168
|
+
if (keepGoing instanceof Promise) {
|
|
169
|
+
return keepGoing.then(() => { });
|
|
170
|
+
}
|
|
117
171
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (start >= 0) {
|
|
121
|
-
_yield($.sliceString(s, start, undefined));
|
|
122
|
-
}
|
|
172
|
+
};
|
|
173
|
+
return walk(0);
|
|
123
174
|
};
|
|
124
175
|
}
|
|
125
176
|
// FieldsFuncSeq returns an iterator over substrings of s split around runs of
|
|
@@ -132,29 +183,43 @@ export function FieldsFuncSeq(s, f) {
|
|
|
132
183
|
return;
|
|
133
184
|
}
|
|
134
185
|
let start = -1;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (
|
|
144
|
-
if (
|
|
145
|
-
|
|
186
|
+
const walk = (i) => {
|
|
187
|
+
for (; i < $.len(s);) {
|
|
188
|
+
let size = 1;
|
|
189
|
+
let r = $.indexString(s, i);
|
|
190
|
+
if (r >= utf8.RuneSelf) {
|
|
191
|
+
;
|
|
192
|
+
[r, size] = utf8.DecodeRuneInString($.sliceString(s, i, undefined));
|
|
193
|
+
}
|
|
194
|
+
if (f(r)) {
|
|
195
|
+
if (start >= 0) {
|
|
196
|
+
const keepGoing = _yield($.sliceString(s, start, i));
|
|
197
|
+
start = -1;
|
|
198
|
+
if (keepGoing instanceof Promise) {
|
|
199
|
+
return keepGoing.then((next) => {
|
|
200
|
+
if (next) {
|
|
201
|
+
return walk(i + size);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
if (!keepGoing) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
146
208
|
}
|
|
147
|
-
start = -1;
|
|
148
209
|
}
|
|
210
|
+
else if (start < 0) {
|
|
211
|
+
start = i;
|
|
212
|
+
}
|
|
213
|
+
i += size;
|
|
149
214
|
}
|
|
150
|
-
|
|
151
|
-
|
|
215
|
+
if (start >= 0) {
|
|
216
|
+
const keepGoing = _yield($.sliceString(s, start, undefined));
|
|
217
|
+
if (keepGoing instanceof Promise) {
|
|
218
|
+
return keepGoing.then(() => { });
|
|
219
|
+
}
|
|
152
220
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (start >= 0) {
|
|
156
|
-
_yield($.sliceString(s, start, undefined));
|
|
157
|
-
}
|
|
221
|
+
};
|
|
222
|
+
return walk(0);
|
|
158
223
|
};
|
|
159
224
|
}
|
|
160
225
|
//# sourceMappingURL=iter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/strings/iter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAI/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AAErD,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AAEvD,oCAAoC;AACpC,MAAM,UAAU,GAA+B;IAC7C,CAAC,EAAE,IAAI,EAAE,KAAK;IACd,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,QAAQ;CACnB,CAAA;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,sDAAsD;AACtD,oFAAoF;AACpF,oCAAoC;AACpC,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/strings/iter.ts"],"names":[],"mappings":"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"}
|
|
@@ -323,8 +323,8 @@ class trieNode {
|
|
|
323
323
|
// First byte differs, start a new lookup table here. Looking up
|
|
324
324
|
// what is currently t.prefix[0] will lead to prefixNode, and
|
|
325
325
|
// looking up key[0] will lead to keyNode.
|
|
326
|
-
const prefixNode = $.len(t.prefix) == 1
|
|
327
|
-
|
|
326
|
+
const prefixNode = $.len(t.prefix) == 1 ?
|
|
327
|
+
t.next
|
|
328
328
|
: new trieNode({
|
|
329
329
|
next: t.next,
|
|
330
330
|
prefix: $.sliceString(t.prefix, 1, undefined),
|