goscript 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +267 -255
- package/cmd/goscript/cmd-test.go +193 -0
- package/cmd/goscript/cmd-test_test.go +76 -0
- package/cmd/goscript/main.go +1 -0
- package/compiler/build-flags.go +38 -0
- package/compiler/compile-request.go +2 -0
- package/compiler/compliance_test.go +0 -8
- package/compiler/gotest/owner.go +24 -0
- package/compiler/gotest/package-result.go +67 -0
- package/compiler/gotest/request.go +145 -0
- package/compiler/gotest/result.go +28 -0
- package/compiler/gotest/runner.go +588 -0
- package/compiler/gotest/runner_test.go +627 -0
- package/compiler/gotest/test.go +9 -0
- package/compiler/index.test.ts +1 -1
- package/compiler/lowered-program.go +71 -19
- package/compiler/lowering.go +5065 -569
- package/compiler/override-facts.go +307 -0
- package/compiler/override-registry.go +50 -189
- package/compiler/override-registry_test.go +47 -0
- package/compiler/package-graph.go +50 -27
- package/compiler/package-graph_test.go +37 -2
- package/compiler/package-test-function.go +9 -0
- package/compiler/package-test-graph-package.go +40 -0
- package/compiler/package-test-graph-variant.go +105 -0
- package/compiler/package-test-graph.go +117 -0
- package/compiler/package-test-graph_test.go +144 -0
- package/compiler/runtime-contract.go +189 -29
- package/compiler/runtime-contract_test.go +44 -30
- package/compiler/semantic-model-types.go +9 -6
- package/compiler/semantic-model.go +538 -38
- package/compiler/semantic-model_test.go +55 -0
- package/compiler/service.go +1 -1
- package/compiler/skeleton_test.go +679 -49
- package/compiler/tsworkspace/owner.go +334 -0
- package/compiler/tsworkspace/owner_test.go +93 -0
- package/compiler/tsworkspace/result.go +17 -0
- package/compiler/typescript-emitter.go +459 -82
- 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 +20 -2
- package/dist/gs/builtin/builtin.js +194 -6
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/channel.d.ts +8 -0
- package/dist/gs/builtin/channel.js +12 -0
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +22 -2
- package/dist/gs/builtin/slice.js +216 -44
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +5 -2
- package/dist/gs/builtin/type.js +83 -24
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/builtin/varRef.d.ts +5 -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 +48 -44
- package/dist/gs/bytes/buffer.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/context/context.d.ts +5 -4
- package/dist/gs/context/context.js +10 -10
- package/dist/gs/context/context.js.map +1 -1
- 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/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 +1 -0
- package/dist/gs/encoding/json/index.js +18 -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 +81 -0
- 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 +35 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +211 -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 +825 -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 +163 -0
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +449 -0
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/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 +71 -0
- package/dist/gs/github.com/klauspost/compress/internal/le/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 +500 -4
- package/dist/gs/go/token/index.js.map +1 -1
- 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 +64 -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/maps/iter.d.ts +3 -3
- package/dist/gs/maps/iter.js +3 -3
- package/dist/gs/maps/iter.js.map +1 -1
- package/dist/gs/maps/maps.d.ts +2 -2
- 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 +66 -34
- 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 +50 -0
- package/dist/gs/mime/index.js.map +1 -0
- package/dist/gs/net/http/httptest/index.d.ts +11 -0
- package/dist/gs/net/http/httptest/index.js +21 -0
- package/dist/gs/net/http/httptest/index.js.map +1 -0
- package/dist/gs/net/http/index.d.ts +27 -0
- package/dist/gs/net/http/index.js +61 -0
- package/dist/gs/net/http/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/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 +3 -1
- package/dist/gs/path/filepath/path.js +133 -4
- 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 +1 -1
- package/dist/gs/reflect/index.js +1 -1
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/map.js +3 -0
- package/dist/gs/reflect/map.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +7 -4
- package/dist/gs/reflect/type.js +148 -7
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/runtime/debug/index.d.ts +2 -0
- package/dist/gs/runtime/debug/index.js +8 -0
- package/dist/gs/runtime/debug/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/slices/slices.d.ts +24 -5
- package/dist/gs/slices/slices.js +214 -5
- package/dist/gs/slices/slices.js.map +1 -1
- package/dist/gs/sort/slice.gs.d.ts +3 -3
- package/dist/gs/sort/slice.gs.js +6 -6
- 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 +3 -2
- package/dist/gs/strings/builder.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 +2 -0
- package/dist/gs/sync/sync.js +27 -0
- 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 +2 -0
- package/dist/gs/syscall/errors.js +8 -0
- package/dist/gs/syscall/errors.js.map +1 -1
- package/dist/gs/syscall/fs.d.ts +43 -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 +375 -0
- package/dist/gs/syscall/js/index.js.map +1 -0
- package/dist/gs/syscall/types.d.ts +22 -0
- 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 +77 -0
- package/dist/gs/testing/testing.js +301 -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 +205 -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 +71 -0
- package/dist/gs/unique/index.js.map +1 -0
- package/go.sum +9 -0
- package/gs/builtin/builtin.ts +239 -8
- package/gs/builtin/channel.ts +22 -0
- package/gs/builtin/runtime-contract.test.ts +126 -0
- package/gs/builtin/slice.ts +259 -50
- package/gs/builtin/type.ts +109 -34
- package/gs/builtin/varRef.ts +38 -1
- package/gs/bytes/buffer.gs.ts +48 -44
- package/gs/bytes/meta.json +8 -3
- package/gs/bytes/reader.gs.ts +20 -19
- package/gs/context/context.test.ts +41 -0
- package/gs/context/context.ts +22 -26
- package/gs/crypto/internal/fips140deps/byteorder/index.ts +1 -0
- package/gs/crypto/internal/fips140deps/godebug/index.ts +1 -0
- package/gs/embed/index.ts +20 -0
- package/gs/embed/meta.json +5 -0
- package/gs/encoding/json/index.test.ts +15 -1
- package/gs/encoding/json/index.ts +24 -0
- package/gs/errors/errors.test.ts +82 -0
- package/gs/errors/errors.ts +104 -0
- package/gs/fmt/fmt.ts +56 -16
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +73 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +297 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +159 -0
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +1005 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +719 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +40 -0
- package/gs/github.com/klauspost/compress/internal/le/index.test.ts +36 -0
- package/gs/github.com/klauspost/compress/internal/le/index.ts +114 -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 +570 -4
- 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 +77 -0
- package/gs/io/fs/walk.test.ts +61 -0
- package/gs/io/fs/walk.ts +9 -9
- package/gs/io/io.ts +174 -31
- package/gs/io/meta.json +10 -2
- package/gs/maps/iter.ts +12 -6
- package/gs/maps/maps.ts +8 -6
- package/gs/math/bits/index.ts +103 -47
- package/gs/math/const.gs.test.ts +11 -5
- package/gs/math/const.gs.ts +5 -6
- package/gs/mime/index.ts +54 -0
- package/gs/net/http/httptest/index.ts +25 -0
- package/gs/net/http/index.test.ts +20 -0
- package/gs/net/http/index.ts +81 -0
- package/gs/os/dir_unix.gs.ts +2 -3
- package/gs/os/types_js.gs.ts +2 -2
- package/gs/path/filepath/match.test.ts +31 -12
- package/gs/path/filepath/match.ts +178 -3
- package/gs/path/filepath/path.test.ts +25 -0
- package/gs/path/filepath/path.ts +159 -5
- package/gs/path/path.ts +20 -5
- package/gs/reflect/index.ts +1 -0
- package/gs/reflect/map.test.ts +19 -0
- package/gs/reflect/map.ts +4 -0
- package/gs/reflect/type.ts +197 -17
- package/gs/runtime/debug/index.test.ts +24 -0
- package/gs/runtime/debug/index.ts +8 -0
- package/gs/runtime/runtime.test.ts +19 -0
- package/gs/runtime/runtime.ts +98 -3
- package/gs/slices/slices.test.ts +94 -0
- package/gs/slices/slices.ts +245 -5
- package/gs/sort/meta.json +7 -0
- package/gs/sort/slice.gs.ts +16 -7
- package/gs/sort/sort.gs.ts +16 -13
- package/gs/strings/builder.ts +4 -3
- package/gs/sync/atomic/type.gs.ts +13 -14
- package/gs/sync/meta.json +3 -1
- package/gs/sync/sync.test.ts +13 -1
- package/gs/sync/sync.ts +27 -0
- package/gs/syscall/constants.ts +39 -24
- package/gs/syscall/errors.ts +10 -0
- package/gs/syscall/fs.ts +195 -0
- package/gs/syscall/js/index.ts +458 -0
- package/gs/syscall/js/meta.json +4 -0
- package/gs/syscall/net.test.ts +85 -0
- package/gs/syscall/types.ts +56 -0
- package/gs/testing/index.ts +1 -0
- package/gs/testing/meta.json +5 -0
- package/gs/testing/testing.test.ts +90 -0
- package/gs/testing/testing.ts +382 -0
- package/gs/time/time.test.ts +106 -0
- package/gs/time/time.ts +278 -57
- package/gs/unicode/unicode.test.ts +25 -0
- package/gs/unicode/unicode.ts +119 -9
- package/gs/unicode/utf8/utf8.test.ts +13 -0
- package/gs/unicode/utf8/utf8.ts +28 -16
- package/gs/unique/index.ts +91 -0
- package/package.json +2 -1
package/dist/gs/io/io.js
CHANGED
|
@@ -30,6 +30,101 @@ export const ErrUnexpectedEOF = newError('unexpected EOF');
|
|
|
30
30
|
export const SeekStart = 0; // seek relative to the origin of the file
|
|
31
31
|
export const SeekCurrent = 1; // seek relative to the current offset
|
|
32
32
|
export const SeekEnd = 2; // seek relative to the end
|
|
33
|
+
class pipeState {
|
|
34
|
+
chunks = [];
|
|
35
|
+
readOffset = 0;
|
|
36
|
+
readerClosed = false;
|
|
37
|
+
writerClosed = false;
|
|
38
|
+
readerErr = null;
|
|
39
|
+
writerErr = null;
|
|
40
|
+
Read(p) {
|
|
41
|
+
if (this.readerClosed) {
|
|
42
|
+
return [0, this.readerErr ?? ErrClosedPipe];
|
|
43
|
+
}
|
|
44
|
+
if ($.len(p) === 0) {
|
|
45
|
+
return [0, null];
|
|
46
|
+
}
|
|
47
|
+
if (this.chunks.length === 0) {
|
|
48
|
+
if (this.writerClosed) {
|
|
49
|
+
return [0, this.writerErr ?? EOF];
|
|
50
|
+
}
|
|
51
|
+
return [0, EOF];
|
|
52
|
+
}
|
|
53
|
+
let copied = 0;
|
|
54
|
+
while (copied < $.len(p) && this.chunks.length > 0) {
|
|
55
|
+
const chunk = this.chunks[0];
|
|
56
|
+
const available = chunk.length - this.readOffset;
|
|
57
|
+
const want = Math.min($.len(p) - copied, available);
|
|
58
|
+
const target = $.goSlice(p, copied, copied + want);
|
|
59
|
+
$.copy(target, chunk.subarray(this.readOffset, this.readOffset + want));
|
|
60
|
+
copied += want;
|
|
61
|
+
this.readOffset += want;
|
|
62
|
+
if (this.readOffset === chunk.length) {
|
|
63
|
+
this.chunks.shift();
|
|
64
|
+
this.readOffset = 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return [copied, null];
|
|
68
|
+
}
|
|
69
|
+
Write(p) {
|
|
70
|
+
if (this.writerClosed || this.readerClosed) {
|
|
71
|
+
return [0, this.readerErr ?? ErrClosedPipe];
|
|
72
|
+
}
|
|
73
|
+
const data = new Uint8Array($.len(p));
|
|
74
|
+
$.copy(data, p);
|
|
75
|
+
this.chunks.push(data);
|
|
76
|
+
return [$.len(p), null];
|
|
77
|
+
}
|
|
78
|
+
CloseReader(err) {
|
|
79
|
+
this.readerClosed = true;
|
|
80
|
+
this.readerErr = err;
|
|
81
|
+
this.chunks = [];
|
|
82
|
+
this.readOffset = 0;
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
CloseWriter(err) {
|
|
86
|
+
this.writerClosed = true;
|
|
87
|
+
this.writerErr = err;
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// PipeReader is the read half of a pipe.
|
|
92
|
+
export class PipeReader {
|
|
93
|
+
pipe;
|
|
94
|
+
constructor(pipe) {
|
|
95
|
+
this.pipe = pipe;
|
|
96
|
+
}
|
|
97
|
+
Read(data) {
|
|
98
|
+
return this.pipe.Read(data);
|
|
99
|
+
}
|
|
100
|
+
Close() {
|
|
101
|
+
return this.CloseWithError(null);
|
|
102
|
+
}
|
|
103
|
+
CloseWithError(err) {
|
|
104
|
+
return this.pipe.CloseReader(err ?? ErrClosedPipe);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// PipeWriter is the write half of a pipe.
|
|
108
|
+
export class PipeWriter {
|
|
109
|
+
pipe;
|
|
110
|
+
constructor(pipe) {
|
|
111
|
+
this.pipe = pipe;
|
|
112
|
+
}
|
|
113
|
+
Write(data) {
|
|
114
|
+
return this.pipe.Write(data);
|
|
115
|
+
}
|
|
116
|
+
Close() {
|
|
117
|
+
return this.CloseWithError(null);
|
|
118
|
+
}
|
|
119
|
+
CloseWithError(err) {
|
|
120
|
+
return this.pipe.CloseWriter(err ?? EOF);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Pipe creates a synchronous in-memory pipe.
|
|
124
|
+
export function Pipe() {
|
|
125
|
+
const pipe = new pipeState();
|
|
126
|
+
return [new PipeReader(pipe), new PipeWriter(pipe)];
|
|
127
|
+
}
|
|
33
128
|
// Discard is a Writer on which all Write calls succeed without doing anything
|
|
34
129
|
class DiscardWriter {
|
|
35
130
|
Write(p) {
|
|
@@ -56,16 +151,18 @@ export class LimitedReader {
|
|
|
56
151
|
this.N = n;
|
|
57
152
|
}
|
|
58
153
|
Read(p) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
154
|
+
return (async () => {
|
|
155
|
+
if (this.N <= 0) {
|
|
156
|
+
return [0, EOF];
|
|
157
|
+
}
|
|
158
|
+
let readBuf = p;
|
|
159
|
+
if ($.len(p) > this.N) {
|
|
160
|
+
readBuf = $.goSlice(p, 0, this.N);
|
|
161
|
+
}
|
|
162
|
+
const [n, err] = await this.R.Read(readBuf);
|
|
163
|
+
this.N -= n;
|
|
164
|
+
return [n, err];
|
|
165
|
+
})();
|
|
69
166
|
}
|
|
70
167
|
}
|
|
71
168
|
// LimitReader returns a Reader that reads from r but stops with EOF after n bytes
|
|
@@ -185,27 +282,32 @@ export function NewOffsetWriter(w, off) {
|
|
|
185
282
|
return new OffsetWriter(w, off);
|
|
186
283
|
}
|
|
187
284
|
// Copy copies from src to dst until either EOF is reached on src or an error occurs
|
|
188
|
-
export function Copy(dst, src) {
|
|
189
|
-
return CopyBuffer(dst, src, null);
|
|
285
|
+
export async function Copy(dst, src) {
|
|
286
|
+
return await CopyBuffer(dst, src, null);
|
|
190
287
|
}
|
|
191
288
|
// CopyBuffer is identical to Copy except that it stages through the provided buffer
|
|
192
|
-
export function CopyBuffer(dst, src, buf) {
|
|
289
|
+
export async function CopyBuffer(dst, src, buf) {
|
|
290
|
+
dst = unwrapWriter(dst);
|
|
291
|
+
src = unwrapReader(src);
|
|
292
|
+
if (dst === null || src === null) {
|
|
293
|
+
return [0, newError('io: copy with nil reader or writer')];
|
|
294
|
+
}
|
|
193
295
|
// If src implements WriterTo, use it
|
|
194
296
|
if ('WriteTo' in src && typeof src.WriteTo === 'function') {
|
|
195
|
-
return src.WriteTo(dst);
|
|
297
|
+
return await src.WriteTo(dst);
|
|
196
298
|
}
|
|
197
299
|
// If dst implements ReaderFrom, use it
|
|
198
300
|
if ('ReadFrom' in dst && typeof dst.ReadFrom === 'function') {
|
|
199
|
-
return dst.ReadFrom(src);
|
|
301
|
+
return await dst.ReadFrom(src);
|
|
200
302
|
}
|
|
201
303
|
if (buf === null) {
|
|
202
304
|
buf = $.makeSlice(32 * 1024, undefined, 'byte'); // 32KB default buffer
|
|
203
305
|
}
|
|
204
306
|
let written = 0;
|
|
205
307
|
while (true) {
|
|
206
|
-
const [nr, er] = src.Read(buf);
|
|
308
|
+
const [nr, er] = await src.Read(buf);
|
|
207
309
|
if (nr > 0) {
|
|
208
|
-
const [nw, ew] = dst.Write($.goSlice(buf, 0, nr));
|
|
310
|
+
const [nw, ew] = await dst.Write($.goSlice(buf, 0, nr));
|
|
209
311
|
if (nw < 0 || nr < nw) {
|
|
210
312
|
if (ew === null) {
|
|
211
313
|
return [written, ErrShortWrite];
|
|
@@ -229,9 +331,27 @@ export function CopyBuffer(dst, src, buf) {
|
|
|
229
331
|
}
|
|
230
332
|
return [written, null];
|
|
231
333
|
}
|
|
334
|
+
function unwrapReader(src) {
|
|
335
|
+
if (src == null) {
|
|
336
|
+
return null;
|
|
337
|
+
}
|
|
338
|
+
if ('Read' in src && typeof src.Read === 'function') {
|
|
339
|
+
return src;
|
|
340
|
+
}
|
|
341
|
+
return src.Reader;
|
|
342
|
+
}
|
|
343
|
+
function unwrapWriter(dst) {
|
|
344
|
+
if (dst == null) {
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
if ('Write' in dst && typeof dst.Write === 'function') {
|
|
348
|
+
return dst;
|
|
349
|
+
}
|
|
350
|
+
return dst.Writer;
|
|
351
|
+
}
|
|
232
352
|
// CopyN copies n bytes (or until an error) from src to dst
|
|
233
|
-
export function CopyN(dst, src, n) {
|
|
234
|
-
const [written, err] = Copy(dst, LimitReader(src, n));
|
|
353
|
+
export async function CopyN(dst, src, n) {
|
|
354
|
+
const [written, err] = await Copy(dst, LimitReader(src, n));
|
|
235
355
|
if (written === n) {
|
|
236
356
|
return [written, null];
|
|
237
357
|
}
|
|
@@ -242,18 +362,21 @@ export function CopyN(dst, src, n) {
|
|
|
242
362
|
return [written, err];
|
|
243
363
|
}
|
|
244
364
|
// ReadAtLeast reads from r into buf until it has read at least min bytes
|
|
245
|
-
export function ReadAtLeast(r, buf, min) {
|
|
365
|
+
export async function ReadAtLeast(r, buf, min) {
|
|
246
366
|
if ($.len(buf) < min) {
|
|
247
367
|
return [0, ErrShortBuffer];
|
|
248
368
|
}
|
|
249
369
|
let n = 0;
|
|
250
370
|
while (n < min) {
|
|
251
|
-
const [nn, err] = r.Read($.goSlice(buf, n));
|
|
371
|
+
const [nn, err] = await r.Read($.goSlice(buf, n));
|
|
252
372
|
n += nn;
|
|
253
373
|
if (err !== null) {
|
|
254
374
|
if (err === EOF && n >= min) {
|
|
255
375
|
return [n, null];
|
|
256
376
|
}
|
|
377
|
+
if (err === EOF && n === 0) {
|
|
378
|
+
return [n, EOF];
|
|
379
|
+
}
|
|
257
380
|
if (err === EOF && n < min) {
|
|
258
381
|
return [n, ErrUnexpectedEOF];
|
|
259
382
|
}
|
|
@@ -263,18 +386,20 @@ export function ReadAtLeast(r, buf, min) {
|
|
|
263
386
|
return [n, null];
|
|
264
387
|
}
|
|
265
388
|
// ReadFull reads exactly len(buf) bytes from r into buf
|
|
266
|
-
export function ReadFull(r, buf) {
|
|
267
|
-
return ReadAtLeast(r, buf, $.len(buf));
|
|
389
|
+
export async function ReadFull(r, buf) {
|
|
390
|
+
return await ReadAtLeast(r, buf, $.len(buf));
|
|
268
391
|
}
|
|
269
392
|
// ReadAll reads from r until an error or EOF and returns the data it read
|
|
270
|
-
export function ReadAll(r) {
|
|
393
|
+
export async function ReadAll(r) {
|
|
271
394
|
const chunks = [];
|
|
272
395
|
let totalLength = 0;
|
|
273
396
|
const buf = $.makeSlice(512, undefined, 'byte');
|
|
274
397
|
while (true) {
|
|
275
|
-
const [n, err] = r.Read(buf);
|
|
398
|
+
const [n, err] = await r.Read(buf);
|
|
276
399
|
if (n > 0) {
|
|
277
|
-
|
|
400
|
+
const chunk = $.makeSlice(n, undefined, 'byte');
|
|
401
|
+
$.copy(chunk, $.goSlice(buf, 0, n));
|
|
402
|
+
chunks.push(chunk);
|
|
278
403
|
totalLength += n;
|
|
279
404
|
}
|
|
280
405
|
if (err !== null) {
|
package/dist/gs/io/io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../../gs/io/io.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../../gs/io/io.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/maps/iter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as $ from '@goscript/builtin/index.js';
|
|
2
2
|
import * as iter from '@goscript/iter/index.js';
|
|
3
|
-
export declare function All<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq2<K, V>;
|
|
4
|
-
export declare function Keys<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq<K>;
|
|
5
|
-
export declare function Values<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq<V>;
|
|
3
|
+
export declare function All<K extends $.Comparable, V>(m: Map<K, V> | null): iter.Seq2<K, V>;
|
|
4
|
+
export declare function Keys<K extends $.Comparable, V>(m: Map<K, V> | null): iter.Seq<K>;
|
|
5
|
+
export declare function Values<K extends $.Comparable, V>(m: Map<K, V> | null): iter.Seq<V>;
|
|
6
6
|
export declare function Insert<K extends $.Comparable, V>(m: Map<K, V>, seq: iter.Seq2<K, V>): void;
|
|
7
7
|
export declare function Collect<K extends $.Comparable, V>(seq: iter.Seq2<K, V>): Map<K, V>;
|
package/dist/gs/maps/iter.js
CHANGED
|
@@ -4,7 +4,7 @@ import * as $ from '@goscript/builtin/index.js';
|
|
|
4
4
|
// to be the same from one call to the next.
|
|
5
5
|
export function All(m) {
|
|
6
6
|
return (_yield) => {
|
|
7
|
-
for (const [k, v] of m
|
|
7
|
+
for (const [k, v] of m?.entries() ?? []) {
|
|
8
8
|
if (!_yield(k, v)) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
@@ -16,7 +16,7 @@ export function All(m) {
|
|
|
16
16
|
// to be the same from one call to the next.
|
|
17
17
|
export function Keys(m) {
|
|
18
18
|
return (_yield) => {
|
|
19
|
-
for (const [k, _v] of m
|
|
19
|
+
for (const [k, _v] of m?.entries() ?? []) {
|
|
20
20
|
if (!_yield(k)) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
@@ -28,7 +28,7 @@ export function Keys(m) {
|
|
|
28
28
|
// to be the same from one call to the next.
|
|
29
29
|
export function Values(m) {
|
|
30
30
|
return (_yield) => {
|
|
31
|
-
for (const [_k, v] of m
|
|
31
|
+
for (const [_k, v] of m?.entries() ?? []) {
|
|
32
32
|
if (!_yield(v)) {
|
|
33
33
|
return;
|
|
34
34
|
}
|
package/dist/gs/maps/iter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/maps/iter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAI/C,uDAAuD;AACvD,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/maps/iter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAI/C,uDAAuD;AACvD,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,GAAG,CACjB,CAAmB;IAEnB,OAAO,CAAC,MAA0C,EAAQ,EAAE;QAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,MAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,2CAA2C;AAC3C,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,IAAI,CAClB,CAAmB;IAEnB,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACnD,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,+CAA+C;AAC/C,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,MAAM,CACpB,CAAmB;IAEnB,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACnD,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,iDAAiD;AACjD,sEAAsE;AACtE,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,GAAoB;IAEpB,CAAC;IAAA,CAAC,GAAG,EAAE;QACL,IAAI,cAAc,GAAG,IAAI,CAAA;QACzB,GAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,OAAO,cAAc,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,EAAE,CAAA;AACN,CAAC;AAED,2DAA2D;AAC3D,kBAAkB;AAClB,MAAM,UAAU,OAAO,CACrB,GAAoB;IAEpB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAQ,CAAA;IACzB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACd,OAAO,CAAC,CAAA;AACV,CAAC"}
|
package/dist/gs/maps/maps.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import * as $ from '@goscript/builtin/index.js';
|
|
|
2
2
|
export declare function Equal<K extends $.Comparable, V extends $.Comparable>(m1: Map<K, V>, m2: Map<K, V>): boolean;
|
|
3
3
|
export declare function EqualFunc<K extends $.Comparable, V1, V2>(m1: Map<K, V1>, m2: Map<K, V2>, eq: ((p0: V1, p1: V2) => boolean) | null): boolean;
|
|
4
4
|
export declare function clone<K extends $.Comparable, V>(m: Map<K, V> | null): Map<K, V> | null;
|
|
5
|
-
export declare function Clone<K extends $.Comparable, V>(m: Map<K, V>): Map<K, V
|
|
6
|
-
export declare function Copy<K extends $.Comparable, V>(dst: Map<K, V
|
|
5
|
+
export declare function Clone<K extends $.Comparable, V>(m: Map<K, V> | null): Map<K, V> | null;
|
|
6
|
+
export declare function Copy<K extends $.Comparable, V>(dst: Map<K, V> | null, src: Map<K, V> | null): void;
|
|
7
7
|
export declare function DeleteFunc<K extends $.Comparable, V>(m: Map<K, V>, del: ((p0: K, p1: V) => boolean) | null): void;
|
package/dist/gs/maps/maps.js
CHANGED
|
@@ -52,7 +52,7 @@ export function Clone(m) {
|
|
|
52
52
|
// the value in dst will be overwritten by the value associated
|
|
53
53
|
// with the key in src.
|
|
54
54
|
export function Copy(dst, src) {
|
|
55
|
-
for (const [k, v] of src
|
|
55
|
+
for (const [k, v] of src?.entries() ?? []) {
|
|
56
56
|
$.mapSet(dst, k, v);
|
|
57
57
|
}
|
|
58
58
|
}
|
package/dist/gs/maps/maps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../gs/maps/maps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAI/C,mEAAmE;AACnE,gCAAgC;AAChC,MAAM,UAAU,KAAK,CACnB,EAAa,EACb,EAAa;IAEb,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAW,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;YACpB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yDAAyD;AACzD,mCAAmC;AACnC,MAAM,UAAU,SAAS,CACvB,EAAc,EACd,EAAc,EACd,EAAwC;IAExC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAW,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,EAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,KAAK,CACnB,CAAmB;IAEnB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,EAAQ,CAAA;IAChC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uDAAuD;AACvD,6DAA6D;AAC7D,MAAM,UAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../gs/maps/maps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +1,56 @@
|
|
|
1
1
|
export declare const UintSize = 32;
|
|
2
|
+
type Word64 = number | bigint;
|
|
2
3
|
export declare function LeadingZeros(x: number): number;
|
|
3
4
|
export declare function LeadingZeros8(x: number): number;
|
|
4
5
|
export declare function LeadingZeros16(x: number): number;
|
|
5
6
|
export declare function LeadingZeros32(x: number): number;
|
|
6
|
-
export declare function LeadingZeros64(x:
|
|
7
|
+
export declare function LeadingZeros64(x: Word64): number;
|
|
7
8
|
export declare function TrailingZeros(x: number): number;
|
|
8
9
|
export declare function TrailingZeros8(x: number): number;
|
|
9
10
|
export declare function TrailingZeros16(x: number): number;
|
|
10
11
|
export declare function TrailingZeros32(x: number): number;
|
|
11
|
-
export declare function TrailingZeros64(x:
|
|
12
|
+
export declare function TrailingZeros64(x: Word64): number;
|
|
12
13
|
export declare function OnesCount(x: number): number;
|
|
13
14
|
export declare function OnesCount8(x: number): number;
|
|
14
15
|
export declare function OnesCount16(x: number): number;
|
|
15
16
|
export declare function OnesCount32(x: number): number;
|
|
16
|
-
export declare function OnesCount64(x:
|
|
17
|
+
export declare function OnesCount64(x: Word64): number;
|
|
17
18
|
export declare function RotateLeft(x: number, k: number): number;
|
|
18
19
|
export declare function RotateLeft8(x: number, k: number): number;
|
|
19
20
|
export declare function RotateLeft16(x: number, k: number): number;
|
|
20
21
|
export declare function RotateLeft32(x: number, k: number): number;
|
|
22
|
+
export declare function RotateLeft64(x: number, k: number): number;
|
|
21
23
|
export declare function RotateLeft64(x: bigint, k: number): bigint;
|
|
22
24
|
export declare function Reverse(x: number): number;
|
|
23
25
|
export declare function Reverse8(x: number): number;
|
|
24
26
|
export declare function Reverse16(x: number): number;
|
|
25
27
|
export declare function Reverse32(x: number): number;
|
|
28
|
+
export declare function Reverse64(x: number): number;
|
|
26
29
|
export declare function Reverse64(x: bigint): bigint;
|
|
27
30
|
export declare function ReverseBytes(x: number): number;
|
|
28
31
|
export declare function ReverseBytes16(x: number): number;
|
|
29
32
|
export declare function ReverseBytes32(x: number): number;
|
|
33
|
+
export declare function ReverseBytes64(x: number): number;
|
|
30
34
|
export declare function ReverseBytes64(x: bigint): bigint;
|
|
31
35
|
export declare function Len(x: number): number;
|
|
32
36
|
export declare function Len8(x: number): number;
|
|
33
37
|
export declare function Len16(x: number): number;
|
|
34
38
|
export declare function Len32(x: number): number;
|
|
35
|
-
export declare function Len64(x:
|
|
39
|
+
export declare function Len64(x: Word64): number;
|
|
36
40
|
export declare function Mul(x: number, y: number): [number, number];
|
|
37
41
|
export declare function Mul32(x: number, y: number): [number, number];
|
|
42
|
+
export declare function Mul64(x: number, y: number): [number, number];
|
|
38
43
|
export declare function Mul64(x: bigint, y: bigint): [bigint, bigint];
|
|
39
44
|
export declare function Div(hi: number, lo: number, y: number): [number, number];
|
|
40
45
|
export declare function Div32(hi: number, lo: number, y: number): [number, number];
|
|
46
|
+
export declare function Div64(hi: number, lo: number, y: number): [number, number];
|
|
41
47
|
export declare function Div64(hi: bigint, lo: bigint, y: bigint): [bigint, bigint];
|
|
42
48
|
export declare function Add(x: number, y: number, carry: number): [number, number];
|
|
43
49
|
export declare function Add32(x: number, y: number, carry: number): [number, number];
|
|
50
|
+
export declare function Add64(x: number, y: number, carry: number): [number, number];
|
|
44
51
|
export declare function Add64(x: bigint, y: bigint, carry: bigint): [bigint, bigint];
|
|
45
52
|
export declare function Sub(x: number, y: number, borrow: number): [number, number];
|
|
46
53
|
export declare function Sub32(x: number, y: number, borrow: number): [number, number];
|
|
54
|
+
export declare function Sub64(x: number, y: number, borrow: number): [number, number];
|
|
47
55
|
export declare function Sub64(x: bigint, y: bigint, borrow: bigint): [bigint, bigint];
|
|
56
|
+
export {};
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
// This replaces the auto-generated version that has TypeScript syntax errors
|
|
3
3
|
// UintSize is the size of a uint in bits
|
|
4
4
|
export const UintSize = 32; // Assuming 32-bit for JavaScript numbers
|
|
5
|
+
const uint64Mask = (1n << 64n) - 1n;
|
|
6
|
+
function toUint64(x) {
|
|
7
|
+
return BigInt(x) & uint64Mask;
|
|
8
|
+
}
|
|
9
|
+
function useBigIntResult(...values) {
|
|
10
|
+
return values.some((value) => typeof value === 'bigint');
|
|
11
|
+
}
|
|
12
|
+
function word64Result(value, useBigInt) {
|
|
13
|
+
return useBigInt ? value : Number(value);
|
|
14
|
+
}
|
|
5
15
|
// --- Leading zeros ---
|
|
6
16
|
export function LeadingZeros(x) {
|
|
7
17
|
return Math.clz32(x >>> 0);
|
|
@@ -17,6 +27,7 @@ export function LeadingZeros32(x) {
|
|
|
17
27
|
}
|
|
18
28
|
export function LeadingZeros64(x) {
|
|
19
29
|
// For 64-bit, we need to handle it differently
|
|
30
|
+
x = toUint64(x);
|
|
20
31
|
if (x === 0n)
|
|
21
32
|
return 64;
|
|
22
33
|
let count = 0;
|
|
@@ -54,6 +65,7 @@ export function TrailingZeros32(x) {
|
|
|
54
65
|
return count;
|
|
55
66
|
}
|
|
56
67
|
export function TrailingZeros64(x) {
|
|
68
|
+
x = toUint64(x);
|
|
57
69
|
if (x === 0n)
|
|
58
70
|
return 64;
|
|
59
71
|
let count = 0;
|
|
@@ -84,6 +96,7 @@ export function OnesCount32(x) {
|
|
|
84
96
|
return count;
|
|
85
97
|
}
|
|
86
98
|
export function OnesCount64(x) {
|
|
99
|
+
x = toUint64(x);
|
|
87
100
|
let count = 0;
|
|
88
101
|
while (x > 0n) {
|
|
89
102
|
count++;
|
|
@@ -116,9 +129,9 @@ export function RotateLeft32(x, k) {
|
|
|
116
129
|
export function RotateLeft64(x, k) {
|
|
117
130
|
const n = 64;
|
|
118
131
|
k = k % n;
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
return ((
|
|
132
|
+
const useBigInt = useBigIntResult(x);
|
|
133
|
+
const word = toUint64(x);
|
|
134
|
+
return word64Result(((word << BigInt(k)) | (word >> BigInt(n - k))) & uint64Mask, useBigInt);
|
|
122
135
|
}
|
|
123
136
|
// --- Reverse ---
|
|
124
137
|
export function Reverse(x) {
|
|
@@ -150,21 +163,33 @@ export function Reverse32(x) {
|
|
|
150
163
|
}
|
|
151
164
|
export function Reverse64(x) {
|
|
152
165
|
// Implement 64-bit reverse using similar bit manipulation
|
|
153
|
-
const
|
|
154
|
-
|
|
166
|
+
const useBigInt = useBigIntResult(x);
|
|
167
|
+
let word = toUint64(x);
|
|
155
168
|
// Swap 32-bit halves
|
|
156
|
-
|
|
169
|
+
word =
|
|
170
|
+
((word & 0xffffffff00000000n) >> 32n) |
|
|
171
|
+
((word & 0x00000000ffffffffn) << 32n);
|
|
157
172
|
// Swap 16-bit chunks
|
|
158
|
-
|
|
173
|
+
word =
|
|
174
|
+
((word & 0xffff0000ffff0000n) >> 16n) |
|
|
175
|
+
((word & 0x0000ffff0000ffffn) << 16n);
|
|
159
176
|
// Swap 8-bit chunks
|
|
160
|
-
|
|
177
|
+
word =
|
|
178
|
+
((word & 0xff00ff00ff00ff00n) >> 8n) |
|
|
179
|
+
((word & 0x00ff00ff00ff00ffn) << 8n);
|
|
161
180
|
// Swap 4-bit chunks
|
|
162
|
-
|
|
181
|
+
word =
|
|
182
|
+
((word & 0xf0f0f0f0f0f0f0f0n) >> 4n) |
|
|
183
|
+
((word & 0x0f0f0f0f0f0f0f0fn) << 4n);
|
|
163
184
|
// Swap 2-bit chunks
|
|
164
|
-
|
|
185
|
+
word =
|
|
186
|
+
((word & 0xccccccccccccccccn) >> 2n) |
|
|
187
|
+
((word & 0x3333333333333333n) << 2n);
|
|
165
188
|
// Swap 1-bit chunks
|
|
166
|
-
|
|
167
|
-
|
|
189
|
+
word =
|
|
190
|
+
((word & 0xaaaaaaaaaaaaaaaan) >> 1n) |
|
|
191
|
+
((word & 0x5555555555555555n) << 1n);
|
|
192
|
+
return word64Result(word & uint64Mask, useBigInt);
|
|
168
193
|
}
|
|
169
194
|
// --- ReverseBytes ---
|
|
170
195
|
export function ReverseBytes(x) {
|
|
@@ -182,17 +207,17 @@ export function ReverseBytes32(x) {
|
|
|
182
207
|
0);
|
|
183
208
|
}
|
|
184
209
|
export function ReverseBytes64(x) {
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
return ((((
|
|
188
|
-
((
|
|
189
|
-
((
|
|
190
|
-
((
|
|
191
|
-
((
|
|
192
|
-
((
|
|
193
|
-
((
|
|
194
|
-
((
|
|
195
|
-
|
|
210
|
+
const useBigInt = useBigIntResult(x);
|
|
211
|
+
const word = toUint64(x);
|
|
212
|
+
return word64Result((((word & 0xffn) << 56n) |
|
|
213
|
+
((word & 0xff00n) << 40n) |
|
|
214
|
+
((word & 0xff0000n) << 24n) |
|
|
215
|
+
((word & 0xff000000n) << 8n) |
|
|
216
|
+
((word & 0xff00000000n) >> 8n) |
|
|
217
|
+
((word & 0xff0000000000n) >> 24n) |
|
|
218
|
+
((word & 0xff000000000000n) >> 40n) |
|
|
219
|
+
((word & 0xff00000000000000n) >> 56n)) &
|
|
220
|
+
uint64Mask, useBigInt);
|
|
196
221
|
}
|
|
197
222
|
// --- Len ---
|
|
198
223
|
export function Len(x) {
|
|
@@ -222,6 +247,9 @@ export function Mul32(x, y) {
|
|
|
222
247
|
return [hi, lo];
|
|
223
248
|
}
|
|
224
249
|
export function Mul64(x, y) {
|
|
250
|
+
const useBigInt = useBigIntResult(x, y);
|
|
251
|
+
x = toUint64(x);
|
|
252
|
+
y = toUint64(y);
|
|
225
253
|
const mask32 = 0xffffffffn;
|
|
226
254
|
// Split into 32-bit parts
|
|
227
255
|
const x0 = x & mask32;
|
|
@@ -236,7 +264,7 @@ export function Mul64(x, y) {
|
|
|
236
264
|
// Combine results
|
|
237
265
|
const lo = p00 + ((p01 + p10) << 32n);
|
|
238
266
|
const hi = p11 + ((p01 + p10) >> 32n) + (lo < p00 ? 1n : 0n);
|
|
239
|
-
return [hi, lo];
|
|
267
|
+
return [word64Result(hi & uint64Mask, useBigInt), word64Result(lo & uint64Mask, useBigInt)];
|
|
240
268
|
}
|
|
241
269
|
// --- Division functions ---
|
|
242
270
|
export function Div(hi, lo, y) {
|
|
@@ -254,6 +282,10 @@ export function Div32(hi, lo, y) {
|
|
|
254
282
|
return [Number(quotient), Number(remainder)];
|
|
255
283
|
}
|
|
256
284
|
export function Div64(hi, lo, y) {
|
|
285
|
+
const useBigInt = useBigIntResult(hi, lo, y);
|
|
286
|
+
hi = toUint64(hi);
|
|
287
|
+
lo = toUint64(lo);
|
|
288
|
+
y = toUint64(y);
|
|
257
289
|
if (y === 0n) {
|
|
258
290
|
throw new Error('division by zero');
|
|
259
291
|
}
|
|
@@ -262,7 +294,7 @@ export function Div64(hi, lo, y) {
|
|
|
262
294
|
const dividend = (hi << 64n) | lo;
|
|
263
295
|
const quotient = dividend / y;
|
|
264
296
|
const remainder = dividend % y;
|
|
265
|
-
return [quotient, remainder];
|
|
297
|
+
return [word64Result(quotient, useBigInt), word64Result(remainder, useBigInt)];
|
|
266
298
|
}
|
|
267
299
|
// --- Add and Sub with carry ---
|
|
268
300
|
export function Add(x, y, carry) {
|
|
@@ -275,11 +307,11 @@ export function Add32(x, y, carry) {
|
|
|
275
307
|
return [result, carryOut];
|
|
276
308
|
}
|
|
277
309
|
export function Add64(x, y, carry) {
|
|
278
|
-
const
|
|
279
|
-
const sum = (x
|
|
280
|
-
const result = sum &
|
|
281
|
-
const carryOut = sum >
|
|
282
|
-
return [result, carryOut];
|
|
310
|
+
const useBigInt = useBigIntResult(x, y, carry);
|
|
311
|
+
const sum = toUint64(x) + toUint64(y) + toUint64(carry);
|
|
312
|
+
const result = sum & uint64Mask;
|
|
313
|
+
const carryOut = sum > uint64Mask ? 1n : 0n;
|
|
314
|
+
return [word64Result(result, useBigInt), word64Result(carryOut, useBigInt)];
|
|
283
315
|
}
|
|
284
316
|
export function Sub(x, y, borrow) {
|
|
285
317
|
return Sub32(x, y, borrow);
|
|
@@ -291,10 +323,10 @@ export function Sub32(x, y, borrow) {
|
|
|
291
323
|
return [result, borrowOut];
|
|
292
324
|
}
|
|
293
325
|
export function Sub64(x, y, borrow) {
|
|
294
|
-
const
|
|
295
|
-
const diff = (x
|
|
296
|
-
const result = diff &
|
|
326
|
+
const useBigInt = useBigIntResult(x, y, borrow);
|
|
327
|
+
const diff = toUint64(x) - toUint64(y) - toUint64(borrow);
|
|
328
|
+
const result = diff & uint64Mask;
|
|
297
329
|
const borrowOut = diff < 0n ? 1n : 0n;
|
|
298
|
-
return [result, borrowOut];
|
|
330
|
+
return [word64Result(result, useBigInt), word64Result(borrowOut, useBigInt)];
|
|
299
331
|
}
|
|
300
332
|
//# sourceMappingURL=index.js.map
|