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.
Files changed (327) hide show
  1. package/README.md +267 -255
  2. package/cmd/goscript/cmd-test.go +193 -0
  3. package/cmd/goscript/cmd-test_test.go +76 -0
  4. package/cmd/goscript/main.go +1 -0
  5. package/compiler/build-flags.go +38 -0
  6. package/compiler/compile-request.go +2 -0
  7. package/compiler/compliance_test.go +0 -8
  8. package/compiler/gotest/owner.go +24 -0
  9. package/compiler/gotest/package-result.go +67 -0
  10. package/compiler/gotest/request.go +145 -0
  11. package/compiler/gotest/result.go +28 -0
  12. package/compiler/gotest/runner.go +588 -0
  13. package/compiler/gotest/runner_test.go +627 -0
  14. package/compiler/gotest/test.go +9 -0
  15. package/compiler/index.test.ts +1 -1
  16. package/compiler/lowered-program.go +71 -19
  17. package/compiler/lowering.go +5065 -569
  18. package/compiler/override-facts.go +307 -0
  19. package/compiler/override-registry.go +50 -189
  20. package/compiler/override-registry_test.go +47 -0
  21. package/compiler/package-graph.go +50 -27
  22. package/compiler/package-graph_test.go +37 -2
  23. package/compiler/package-test-function.go +9 -0
  24. package/compiler/package-test-graph-package.go +40 -0
  25. package/compiler/package-test-graph-variant.go +105 -0
  26. package/compiler/package-test-graph.go +117 -0
  27. package/compiler/package-test-graph_test.go +144 -0
  28. package/compiler/runtime-contract.go +189 -29
  29. package/compiler/runtime-contract_test.go +44 -30
  30. package/compiler/semantic-model-types.go +9 -6
  31. package/compiler/semantic-model.go +538 -38
  32. package/compiler/semantic-model_test.go +55 -0
  33. package/compiler/service.go +1 -1
  34. package/compiler/skeleton_test.go +679 -49
  35. package/compiler/tsworkspace/owner.go +334 -0
  36. package/compiler/tsworkspace/owner_test.go +93 -0
  37. package/compiler/tsworkspace/result.go +17 -0
  38. package/compiler/typescript-emitter.go +459 -82
  39. package/compiler/wasm/compile.go +1 -1
  40. package/compiler/wasm/compile_test.go +61 -11
  41. package/compiler/wasm_api.go +172 -7
  42. package/dist/gs/builtin/builtin.d.ts +20 -2
  43. package/dist/gs/builtin/builtin.js +194 -6
  44. package/dist/gs/builtin/builtin.js.map +1 -1
  45. package/dist/gs/builtin/channel.d.ts +8 -0
  46. package/dist/gs/builtin/channel.js +12 -0
  47. package/dist/gs/builtin/channel.js.map +1 -1
  48. package/dist/gs/builtin/slice.d.ts +22 -2
  49. package/dist/gs/builtin/slice.js +216 -44
  50. package/dist/gs/builtin/slice.js.map +1 -1
  51. package/dist/gs/builtin/type.d.ts +5 -2
  52. package/dist/gs/builtin/type.js +83 -24
  53. package/dist/gs/builtin/type.js.map +1 -1
  54. package/dist/gs/builtin/varRef.d.ts +5 -0
  55. package/dist/gs/builtin/varRef.js +23 -0
  56. package/dist/gs/builtin/varRef.js.map +1 -1
  57. package/dist/gs/bytes/buffer.gs.js +48 -44
  58. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  59. package/dist/gs/bytes/reader.gs.js +20 -18
  60. package/dist/gs/bytes/reader.gs.js.map +1 -1
  61. package/dist/gs/context/context.d.ts +5 -4
  62. package/dist/gs/context/context.js +10 -10
  63. package/dist/gs/context/context.js.map +1 -1
  64. package/dist/gs/crypto/internal/fips140deps/byteorder/index.d.ts +1 -0
  65. package/dist/gs/crypto/internal/fips140deps/byteorder/index.js +2 -0
  66. package/dist/gs/crypto/internal/fips140deps/byteorder/index.js.map +1 -0
  67. package/dist/gs/crypto/internal/fips140deps/godebug/index.d.ts +1 -0
  68. package/dist/gs/crypto/internal/fips140deps/godebug/index.js +2 -0
  69. package/dist/gs/crypto/internal/fips140deps/godebug/index.js.map +1 -0
  70. package/dist/gs/embed/index.d.ts +7 -0
  71. package/dist/gs/embed/index.js +16 -0
  72. package/dist/gs/embed/index.js.map +1 -0
  73. package/dist/gs/encoding/json/index.d.ts +1 -0
  74. package/dist/gs/encoding/json/index.js +18 -0
  75. package/dist/gs/encoding/json/index.js.map +1 -1
  76. package/dist/gs/errors/errors.d.ts +4 -0
  77. package/dist/gs/errors/errors.js +81 -0
  78. package/dist/gs/errors/errors.js.map +1 -1
  79. package/dist/gs/fmt/fmt.d.ts +4 -4
  80. package/dist/gs/fmt/fmt.js +42 -11
  81. package/dist/gs/fmt/fmt.js.map +1 -1
  82. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +35 -0
  83. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +211 -1
  84. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
  85. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.d.ts +189 -0
  86. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js +825 -0
  87. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js.map +1 -0
  88. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +163 -0
  89. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +449 -0
  90. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +1 -0
  91. package/dist/gs/github.com/klauspost/compress/internal/le/index.d.ts +9 -0
  92. package/dist/gs/github.com/klauspost/compress/internal/le/index.js +71 -0
  93. package/dist/gs/github.com/klauspost/compress/internal/le/index.js.map +1 -0
  94. package/dist/gs/go/internal/scannerhooks/index.d.ts +3 -0
  95. package/dist/gs/go/internal/scannerhooks/index.js +5 -0
  96. package/dist/gs/go/internal/scannerhooks/index.js.map +1 -0
  97. package/dist/gs/go/scanner/index.d.ts +13 -0
  98. package/dist/gs/go/scanner/index.js +35 -0
  99. package/dist/gs/go/scanner/index.js.map +1 -1
  100. package/dist/gs/go/token/index.d.ts +156 -0
  101. package/dist/gs/go/token/index.js +500 -4
  102. package/dist/gs/go/token/index.js.map +1 -1
  103. package/dist/gs/internal/abi/index.d.ts +4 -0
  104. package/dist/gs/internal/abi/index.js +10 -0
  105. package/dist/gs/internal/abi/index.js.map +1 -1
  106. package/dist/gs/internal/bytealg/index.d.ts +2 -0
  107. package/dist/gs/internal/bytealg/index.js +14 -0
  108. package/dist/gs/internal/bytealg/index.js.map +1 -1
  109. package/dist/gs/internal/byteorder/index.d.ts +8 -2
  110. package/dist/gs/internal/byteorder/index.js +56 -25
  111. package/dist/gs/internal/byteorder/index.js.map +1 -1
  112. package/dist/gs/internal/godebug/index.d.ts +12 -0
  113. package/dist/gs/internal/godebug/index.js +30 -0
  114. package/dist/gs/internal/godebug/index.js.map +1 -0
  115. package/dist/gs/io/fs/index.d.ts +1 -0
  116. package/dist/gs/io/fs/index.js +1 -0
  117. package/dist/gs/io/fs/index.js.map +1 -1
  118. package/dist/gs/io/fs/readlink.d.ts +8 -0
  119. package/dist/gs/io/fs/readlink.js +64 -0
  120. package/dist/gs/io/fs/readlink.js.map +1 -0
  121. package/dist/gs/io/fs/walk.d.ts +3 -3
  122. package/dist/gs/io/fs/walk.js +7 -7
  123. package/dist/gs/io/fs/walk.js.map +1 -1
  124. package/dist/gs/io/io.d.ts +40 -6
  125. package/dist/gs/io/io.js +151 -26
  126. package/dist/gs/io/io.js.map +1 -1
  127. package/dist/gs/maps/iter.d.ts +3 -3
  128. package/dist/gs/maps/iter.js +3 -3
  129. package/dist/gs/maps/iter.js.map +1 -1
  130. package/dist/gs/maps/maps.d.ts +2 -2
  131. package/dist/gs/maps/maps.js +1 -1
  132. package/dist/gs/maps/maps.js.map +1 -1
  133. package/dist/gs/math/bits/index.d.ts +13 -4
  134. package/dist/gs/math/bits/index.js +66 -34
  135. package/dist/gs/math/bits/index.js.map +1 -1
  136. package/dist/gs/math/const.gs.d.ts +5 -5
  137. package/dist/gs/math/const.gs.js +4 -4
  138. package/dist/gs/math/const.gs.js.map +1 -1
  139. package/dist/gs/mime/index.d.ts +1 -0
  140. package/dist/gs/mime/index.js +50 -0
  141. package/dist/gs/mime/index.js.map +1 -0
  142. package/dist/gs/net/http/httptest/index.d.ts +11 -0
  143. package/dist/gs/net/http/httptest/index.js +21 -0
  144. package/dist/gs/net/http/httptest/index.js.map +1 -0
  145. package/dist/gs/net/http/index.d.ts +27 -0
  146. package/dist/gs/net/http/index.js +61 -0
  147. package/dist/gs/net/http/index.js.map +1 -0
  148. package/dist/gs/os/dir_unix.gs.js +2 -2
  149. package/dist/gs/os/dir_unix.gs.js.map +1 -1
  150. package/dist/gs/os/types_js.gs.js.map +1 -1
  151. package/dist/gs/path/filepath/match.js +165 -3
  152. package/dist/gs/path/filepath/match.js.map +1 -1
  153. package/dist/gs/path/filepath/path.d.ts +3 -1
  154. package/dist/gs/path/filepath/path.js +133 -4
  155. package/dist/gs/path/filepath/path.js.map +1 -1
  156. package/dist/gs/path/path.d.ts +4 -1
  157. package/dist/gs/path/path.js +16 -4
  158. package/dist/gs/path/path.js.map +1 -1
  159. package/dist/gs/reflect/index.d.ts +1 -1
  160. package/dist/gs/reflect/index.js +1 -1
  161. package/dist/gs/reflect/index.js.map +1 -1
  162. package/dist/gs/reflect/map.js +3 -0
  163. package/dist/gs/reflect/map.js.map +1 -1
  164. package/dist/gs/reflect/type.d.ts +7 -4
  165. package/dist/gs/reflect/type.js +148 -7
  166. package/dist/gs/reflect/type.js.map +1 -1
  167. package/dist/gs/runtime/debug/index.d.ts +2 -0
  168. package/dist/gs/runtime/debug/index.js +8 -0
  169. package/dist/gs/runtime/debug/index.js.map +1 -0
  170. package/dist/gs/runtime/runtime.d.ts +35 -3
  171. package/dist/gs/runtime/runtime.js +72 -0
  172. package/dist/gs/runtime/runtime.js.map +1 -1
  173. package/dist/gs/slices/slices.d.ts +24 -5
  174. package/dist/gs/slices/slices.js +214 -5
  175. package/dist/gs/slices/slices.js.map +1 -1
  176. package/dist/gs/sort/slice.gs.d.ts +3 -3
  177. package/dist/gs/sort/slice.gs.js +6 -6
  178. package/dist/gs/sort/slice.gs.js.map +1 -1
  179. package/dist/gs/sort/sort.gs.d.ts +4 -4
  180. package/dist/gs/sort/sort.gs.js +11 -8
  181. package/dist/gs/sort/sort.gs.js.map +1 -1
  182. package/dist/gs/strings/builder.d.ts +1 -1
  183. package/dist/gs/strings/builder.js +3 -2
  184. package/dist/gs/strings/builder.js.map +1 -1
  185. package/dist/gs/sync/atomic/type.gs.d.ts +9 -8
  186. package/dist/gs/sync/atomic/type.gs.js +0 -2
  187. package/dist/gs/sync/atomic/type.gs.js.map +1 -1
  188. package/dist/gs/sync/sync.d.ts +2 -0
  189. package/dist/gs/sync/sync.js +27 -0
  190. package/dist/gs/sync/sync.js.map +1 -1
  191. package/dist/gs/syscall/constants.d.ts +36 -24
  192. package/dist/gs/syscall/constants.js +12 -0
  193. package/dist/gs/syscall/constants.js.map +1 -1
  194. package/dist/gs/syscall/errors.d.ts +2 -0
  195. package/dist/gs/syscall/errors.js +8 -0
  196. package/dist/gs/syscall/errors.js.map +1 -1
  197. package/dist/gs/syscall/fs.d.ts +43 -0
  198. package/dist/gs/syscall/fs.js +102 -0
  199. package/dist/gs/syscall/fs.js.map +1 -1
  200. package/dist/gs/syscall/js/index.d.ts +90 -0
  201. package/dist/gs/syscall/js/index.js +375 -0
  202. package/dist/gs/syscall/js/index.js.map +1 -0
  203. package/dist/gs/syscall/types.d.ts +22 -0
  204. package/dist/gs/syscall/types.js +45 -1
  205. package/dist/gs/syscall/types.js.map +1 -1
  206. package/dist/gs/testing/index.d.ts +1 -0
  207. package/dist/gs/testing/index.js +2 -0
  208. package/dist/gs/testing/index.js.map +1 -0
  209. package/dist/gs/testing/testing.d.ts +77 -0
  210. package/dist/gs/testing/testing.js +301 -0
  211. package/dist/gs/testing/testing.js.map +1 -0
  212. package/dist/gs/time/time.d.ts +41 -4
  213. package/dist/gs/time/time.js +205 -36
  214. package/dist/gs/time/time.js.map +1 -1
  215. package/dist/gs/unicode/unicode.d.ts +23 -1
  216. package/dist/gs/unicode/unicode.js +79 -10
  217. package/dist/gs/unicode/unicode.js.map +1 -1
  218. package/dist/gs/unicode/utf8/utf8.d.ts +4 -4
  219. package/dist/gs/unicode/utf8/utf8.js +24 -11
  220. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  221. package/dist/gs/unique/index.d.ts +11 -0
  222. package/dist/gs/unique/index.js +71 -0
  223. package/dist/gs/unique/index.js.map +1 -0
  224. package/go.sum +9 -0
  225. package/gs/builtin/builtin.ts +239 -8
  226. package/gs/builtin/channel.ts +22 -0
  227. package/gs/builtin/runtime-contract.test.ts +126 -0
  228. package/gs/builtin/slice.ts +259 -50
  229. package/gs/builtin/type.ts +109 -34
  230. package/gs/builtin/varRef.ts +38 -1
  231. package/gs/bytes/buffer.gs.ts +48 -44
  232. package/gs/bytes/meta.json +8 -3
  233. package/gs/bytes/reader.gs.ts +20 -19
  234. package/gs/context/context.test.ts +41 -0
  235. package/gs/context/context.ts +22 -26
  236. package/gs/crypto/internal/fips140deps/byteorder/index.ts +1 -0
  237. package/gs/crypto/internal/fips140deps/godebug/index.ts +1 -0
  238. package/gs/embed/index.ts +20 -0
  239. package/gs/embed/meta.json +5 -0
  240. package/gs/encoding/json/index.test.ts +15 -1
  241. package/gs/encoding/json/index.ts +24 -0
  242. package/gs/errors/errors.test.ts +82 -0
  243. package/gs/errors/errors.ts +104 -0
  244. package/gs/fmt/fmt.ts +56 -16
  245. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +73 -1
  246. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +297 -1
  247. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +159 -0
  248. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +1005 -0
  249. package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +719 -0
  250. package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +40 -0
  251. package/gs/github.com/klauspost/compress/internal/le/index.test.ts +36 -0
  252. package/gs/github.com/klauspost/compress/internal/le/index.ts +114 -0
  253. package/gs/go/internal/scannerhooks/index.test.ts +14 -0
  254. package/gs/go/internal/scannerhooks/index.ts +9 -0
  255. package/gs/go/scanner/index.test.ts +22 -0
  256. package/gs/go/scanner/index.ts +47 -0
  257. package/gs/go/token/index.test.ts +47 -1
  258. package/gs/go/token/index.ts +570 -4
  259. package/gs/internal/abi/index.test.ts +18 -0
  260. package/gs/internal/abi/index.ts +14 -0
  261. package/gs/internal/bytealg/index.test.ts +18 -0
  262. package/gs/internal/bytealg/index.ts +16 -0
  263. package/gs/internal/byteorder/index.test.ts +39 -0
  264. package/gs/internal/byteorder/index.ts +100 -27
  265. package/gs/internal/godebug/index.test.ts +16 -0
  266. package/gs/internal/godebug/index.ts +35 -0
  267. package/gs/io/fs/index.ts +1 -0
  268. package/gs/io/fs/meta.json +5 -0
  269. package/gs/io/fs/readlink.test.ts +43 -0
  270. package/gs/io/fs/readlink.ts +77 -0
  271. package/gs/io/fs/walk.test.ts +61 -0
  272. package/gs/io/fs/walk.ts +9 -9
  273. package/gs/io/io.ts +174 -31
  274. package/gs/io/meta.json +10 -2
  275. package/gs/maps/iter.ts +12 -6
  276. package/gs/maps/maps.ts +8 -6
  277. package/gs/math/bits/index.ts +103 -47
  278. package/gs/math/const.gs.test.ts +11 -5
  279. package/gs/math/const.gs.ts +5 -6
  280. package/gs/mime/index.ts +54 -0
  281. package/gs/net/http/httptest/index.ts +25 -0
  282. package/gs/net/http/index.test.ts +20 -0
  283. package/gs/net/http/index.ts +81 -0
  284. package/gs/os/dir_unix.gs.ts +2 -3
  285. package/gs/os/types_js.gs.ts +2 -2
  286. package/gs/path/filepath/match.test.ts +31 -12
  287. package/gs/path/filepath/match.ts +178 -3
  288. package/gs/path/filepath/path.test.ts +25 -0
  289. package/gs/path/filepath/path.ts +159 -5
  290. package/gs/path/path.ts +20 -5
  291. package/gs/reflect/index.ts +1 -0
  292. package/gs/reflect/map.test.ts +19 -0
  293. package/gs/reflect/map.ts +4 -0
  294. package/gs/reflect/type.ts +197 -17
  295. package/gs/runtime/debug/index.test.ts +24 -0
  296. package/gs/runtime/debug/index.ts +8 -0
  297. package/gs/runtime/runtime.test.ts +19 -0
  298. package/gs/runtime/runtime.ts +98 -3
  299. package/gs/slices/slices.test.ts +94 -0
  300. package/gs/slices/slices.ts +245 -5
  301. package/gs/sort/meta.json +7 -0
  302. package/gs/sort/slice.gs.ts +16 -7
  303. package/gs/sort/sort.gs.ts +16 -13
  304. package/gs/strings/builder.ts +4 -3
  305. package/gs/sync/atomic/type.gs.ts +13 -14
  306. package/gs/sync/meta.json +3 -1
  307. package/gs/sync/sync.test.ts +13 -1
  308. package/gs/sync/sync.ts +27 -0
  309. package/gs/syscall/constants.ts +39 -24
  310. package/gs/syscall/errors.ts +10 -0
  311. package/gs/syscall/fs.ts +195 -0
  312. package/gs/syscall/js/index.ts +458 -0
  313. package/gs/syscall/js/meta.json +4 -0
  314. package/gs/syscall/net.test.ts +85 -0
  315. package/gs/syscall/types.ts +56 -0
  316. package/gs/testing/index.ts +1 -0
  317. package/gs/testing/meta.json +5 -0
  318. package/gs/testing/testing.test.ts +90 -0
  319. package/gs/testing/testing.ts +382 -0
  320. package/gs/time/time.test.ts +106 -0
  321. package/gs/time/time.ts +278 -57
  322. package/gs/unicode/unicode.test.ts +25 -0
  323. package/gs/unicode/unicode.ts +119 -9
  324. package/gs/unicode/utf8/utf8.test.ts +13 -0
  325. package/gs/unicode/utf8/utf8.ts +28 -16
  326. package/gs/unique/index.ts +91 -0
  327. 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
- if (this.N <= 0) {
60
- return [0, EOF];
61
- }
62
- let readBuf = p;
63
- if ($.len(p) > this.N) {
64
- readBuf = $.goSlice(p, 0, this.N);
65
- }
66
- const [n, err] = this.R.Read(readBuf);
67
- this.N -= n;
68
- return [n, err];
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
- chunks.push($.goSlice(buf, 0, n));
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) {
@@ -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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"}
@@ -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>;
@@ -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.entries()) {
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.entries()) {
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.entries()) {
31
+ for (const [_k, v] of m?.entries() ?? []) {
32
32
  if (!_yield(v)) {
33
33
  return;
34
34
  }
@@ -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,CAA4B,CAAY;IACzD,OAAO,CAAC,MAA0C,EAAQ,EAAE;QAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACjC,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,CAA4B,CAAY;IAC1D,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACnD,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,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,CAA4B,CAAY;IAC5D,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACnD,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,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"}
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"}
@@ -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>, src: Map<K, V>): void;
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;
@@ -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.entries()) {
55
+ for (const [k, v] of src?.entries() ?? []) {
56
56
  $.mapSet(dst, k, v);
57
57
  }
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../gs/maps/maps.ts"],"names":[],"mappings":"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"}
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: bigint): number;
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: bigint): number;
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: bigint): number;
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: bigint): number;
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 mask = (1n << 64n) - 1n;
120
- x = x & mask;
121
- return ((x << BigInt(k)) | (x >> BigInt(n - k))) & mask;
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 mask = (1n << 64n) - 1n;
154
- x = x & mask;
166
+ const useBigInt = useBigIntResult(x);
167
+ let word = toUint64(x);
155
168
  // Swap 32-bit halves
156
- x = ((x & 0xffffffff00000000n) >> 32n) | ((x & 0x00000000ffffffffn) << 32n);
169
+ word =
170
+ ((word & 0xffffffff00000000n) >> 32n) |
171
+ ((word & 0x00000000ffffffffn) << 32n);
157
172
  // Swap 16-bit chunks
158
- x = ((x & 0xffff0000ffff0000n) >> 16n) | ((x & 0x0000ffff0000ffffn) << 16n);
173
+ word =
174
+ ((word & 0xffff0000ffff0000n) >> 16n) |
175
+ ((word & 0x0000ffff0000ffffn) << 16n);
159
176
  // Swap 8-bit chunks
160
- x = ((x & 0xff00ff00ff00ff00n) >> 8n) | ((x & 0x00ff00ff00ff00ffn) << 8n);
177
+ word =
178
+ ((word & 0xff00ff00ff00ff00n) >> 8n) |
179
+ ((word & 0x00ff00ff00ff00ffn) << 8n);
161
180
  // Swap 4-bit chunks
162
- x = ((x & 0xf0f0f0f0f0f0f0f0n) >> 4n) | ((x & 0x0f0f0f0f0f0f0f0fn) << 4n);
181
+ word =
182
+ ((word & 0xf0f0f0f0f0f0f0f0n) >> 4n) |
183
+ ((word & 0x0f0f0f0f0f0f0f0fn) << 4n);
163
184
  // Swap 2-bit chunks
164
- x = ((x & 0xccccccccccccccccn) >> 2n) | ((x & 0x3333333333333333n) << 2n);
185
+ word =
186
+ ((word & 0xccccccccccccccccn) >> 2n) |
187
+ ((word & 0x3333333333333333n) << 2n);
165
188
  // Swap 1-bit chunks
166
- x = ((x & 0xaaaaaaaaaaaaaaaan) >> 1n) | ((x & 0x5555555555555555n) << 1n);
167
- return x & mask;
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 mask = (1n << 64n) - 1n;
186
- x = x & mask;
187
- return ((((x & 0xffn) << 56n) |
188
- ((x & 0xff00n) << 40n) |
189
- ((x & 0xff0000n) << 24n) |
190
- ((x & 0xff000000n) << 8n) |
191
- ((x & 0xff00000000n) >> 8n) |
192
- ((x & 0xff0000000000n) >> 24n) |
193
- ((x & 0xff000000000000n) >> 40n) |
194
- ((x & 0xff00000000000000n) >> 56n)) &
195
- mask);
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 mask = (1n << 64n) - 1n;
279
- const sum = (x & mask) + (y & mask) + (carry & mask);
280
- const result = sum & mask;
281
- const carryOut = sum > mask ? 1n : 0n;
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 mask = (1n << 64n) - 1n;
295
- const diff = (x & mask) - (y & mask) - (borrow & mask);
296
- const result = diff & mask;
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