goscript 0.0.84 → 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 (428) hide show
  1. package/README.md +267 -243
  2. package/cmd/goscript/cmd-test.go +193 -0
  3. package/cmd/goscript/cmd-test_test.go +76 -0
  4. package/cmd/goscript/cmd_compile.go +70 -69
  5. package/cmd/goscript/cmd_compile_test.go +79 -0
  6. package/cmd/goscript/main.go +11 -5
  7. package/compiler/build-flags.go +38 -0
  8. package/compiler/compile-request.go +220 -0
  9. package/compiler/compiler.go +16 -1336
  10. package/compiler/compliance_test.go +188 -0
  11. package/compiler/config.go +6 -13
  12. package/compiler/diagnostic.go +70 -0
  13. package/compiler/gotest/owner.go +24 -0
  14. package/compiler/gotest/package-result.go +67 -0
  15. package/compiler/gotest/request.go +145 -0
  16. package/compiler/gotest/result.go +28 -0
  17. package/compiler/gotest/runner.go +588 -0
  18. package/compiler/gotest/runner_test.go +627 -0
  19. package/compiler/gotest/test.go +9 -0
  20. package/compiler/index.test.ts +28 -28
  21. package/compiler/index.ts +40 -72
  22. package/compiler/lowered-program.go +184 -0
  23. package/compiler/lowering.go +8072 -0
  24. package/compiler/override-facts.go +307 -0
  25. package/compiler/override-registry.go +283 -0
  26. package/compiler/override-registry_test.go +254 -0
  27. package/compiler/package-graph.go +254 -0
  28. package/compiler/package-graph_test.go +316 -0
  29. package/compiler/package-test-function.go +9 -0
  30. package/compiler/package-test-graph-package.go +40 -0
  31. package/compiler/package-test-graph-variant.go +105 -0
  32. package/compiler/package-test-graph.go +117 -0
  33. package/compiler/package-test-graph_test.go +144 -0
  34. package/compiler/result.go +13 -0
  35. package/compiler/runtime-contract.go +439 -0
  36. package/compiler/runtime-contract_test.go +104 -0
  37. package/compiler/semantic-model-types.go +113 -0
  38. package/compiler/semantic-model.go +1422 -0
  39. package/compiler/semantic-model_test.go +471 -0
  40. package/compiler/service.go +133 -0
  41. package/compiler/skeleton_test.go +1775 -0
  42. package/compiler/tsworkspace/owner.go +334 -0
  43. package/compiler/tsworkspace/owner_test.go +93 -0
  44. package/compiler/tsworkspace/result.go +17 -0
  45. package/compiler/typescript-emitter.go +1040 -0
  46. package/compiler/wasm/compile.go +2 -3
  47. package/compiler/wasm/compile_test.go +79 -0
  48. package/compiler/wasm_api.go +140 -124
  49. package/dist/compiler/index.d.ts +1 -3
  50. package/dist/compiler/index.js +31 -55
  51. package/dist/compiler/index.js.map +1 -1
  52. package/dist/gs/builtin/builtin.d.ts +33 -2
  53. package/dist/gs/builtin/builtin.js +217 -6
  54. package/dist/gs/builtin/builtin.js.map +1 -1
  55. package/dist/gs/builtin/channel.d.ts +11 -3
  56. package/dist/gs/builtin/channel.js +12 -0
  57. package/dist/gs/builtin/channel.js.map +1 -1
  58. package/dist/gs/builtin/hostio.d.ts +15 -1
  59. package/dist/gs/builtin/hostio.js +134 -49
  60. package/dist/gs/builtin/hostio.js.map +1 -1
  61. package/dist/gs/builtin/index.d.ts +1 -0
  62. package/dist/gs/builtin/index.js +1 -0
  63. package/dist/gs/builtin/index.js.map +1 -1
  64. package/dist/gs/builtin/slice.d.ts +23 -3
  65. package/dist/gs/builtin/slice.js +216 -44
  66. package/dist/gs/builtin/slice.js.map +1 -1
  67. package/dist/gs/builtin/type.d.ts +16 -2
  68. package/dist/gs/builtin/type.js +134 -21
  69. package/dist/gs/builtin/type.js.map +1 -1
  70. package/dist/gs/builtin/varRef.d.ts +5 -0
  71. package/dist/gs/builtin/varRef.js +23 -0
  72. package/dist/gs/builtin/varRef.js.map +1 -1
  73. package/dist/gs/bytes/buffer.gs.js +48 -44
  74. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  75. package/dist/gs/bytes/bytes.gs.js.map +1 -1
  76. package/dist/gs/bytes/reader.gs.js +20 -18
  77. package/dist/gs/bytes/reader.gs.js.map +1 -1
  78. package/dist/gs/context/context.d.ts +5 -4
  79. package/dist/gs/context/context.js +10 -10
  80. package/dist/gs/context/context.js.map +1 -1
  81. package/dist/gs/crypto/internal/fips140deps/byteorder/index.d.ts +1 -0
  82. package/dist/gs/crypto/internal/fips140deps/byteorder/index.js +2 -0
  83. package/dist/gs/crypto/internal/fips140deps/byteorder/index.js.map +1 -0
  84. package/dist/gs/crypto/internal/fips140deps/godebug/index.d.ts +1 -0
  85. package/dist/gs/crypto/internal/fips140deps/godebug/index.js +2 -0
  86. package/dist/gs/crypto/internal/fips140deps/godebug/index.js.map +1 -0
  87. package/dist/gs/crypto/rand/index.d.ts +5 -0
  88. package/dist/gs/crypto/rand/index.js +77 -0
  89. package/dist/gs/crypto/rand/index.js.map +1 -0
  90. package/dist/gs/embed/index.d.ts +7 -0
  91. package/dist/gs/embed/index.js +16 -0
  92. package/dist/gs/embed/index.js.map +1 -0
  93. package/dist/gs/encoding/json/index.d.ts +4 -0
  94. package/dist/gs/encoding/json/index.js +178 -0
  95. package/dist/gs/encoding/json/index.js.map +1 -0
  96. package/dist/gs/errors/errors.d.ts +4 -0
  97. package/dist/gs/errors/errors.js +81 -0
  98. package/dist/gs/errors/errors.js.map +1 -1
  99. package/dist/gs/fmt/fmt.d.ts +4 -4
  100. package/dist/gs/fmt/fmt.js +42 -11
  101. package/dist/gs/fmt/fmt.js.map +1 -1
  102. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +36 -1
  103. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +212 -2
  104. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
  105. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.d.ts +189 -0
  106. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js +825 -0
  107. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js.map +1 -0
  108. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +163 -0
  109. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +449 -0
  110. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +1 -0
  111. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -1
  112. package/dist/gs/github.com/klauspost/compress/internal/le/index.d.ts +9 -0
  113. package/dist/gs/github.com/klauspost/compress/internal/le/index.js +71 -0
  114. package/dist/gs/github.com/klauspost/compress/internal/le/index.js.map +1 -0
  115. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  116. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  117. package/dist/gs/go/internal/scannerhooks/index.d.ts +3 -0
  118. package/dist/gs/go/internal/scannerhooks/index.js +5 -0
  119. package/dist/gs/go/internal/scannerhooks/index.js.map +1 -0
  120. package/dist/gs/go/scanner/index.d.ts +42 -0
  121. package/dist/gs/go/scanner/index.js +155 -0
  122. package/dist/gs/go/scanner/index.js.map +1 -0
  123. package/dist/gs/go/token/index.d.ts +187 -0
  124. package/dist/gs/go/token/index.js +578 -0
  125. package/dist/gs/go/token/index.js.map +1 -0
  126. package/dist/gs/internal/abi/index.d.ts +4 -0
  127. package/dist/gs/internal/abi/index.js +10 -0
  128. package/dist/gs/internal/abi/index.js.map +1 -1
  129. package/dist/gs/internal/bytealg/index.d.ts +2 -0
  130. package/dist/gs/internal/bytealg/index.js +14 -0
  131. package/dist/gs/internal/bytealg/index.js.map +1 -1
  132. package/dist/gs/internal/byteorder/index.d.ts +8 -2
  133. package/dist/gs/internal/byteorder/index.js +56 -25
  134. package/dist/gs/internal/byteorder/index.js.map +1 -1
  135. package/dist/gs/internal/godebug/index.d.ts +12 -0
  136. package/dist/gs/internal/godebug/index.js +30 -0
  137. package/dist/gs/internal/godebug/index.js.map +1 -0
  138. package/dist/gs/io/fs/fs.js.map +1 -1
  139. package/dist/gs/io/fs/index.d.ts +1 -0
  140. package/dist/gs/io/fs/index.js +1 -0
  141. package/dist/gs/io/fs/index.js.map +1 -1
  142. package/dist/gs/io/fs/readdir.js.map +1 -1
  143. package/dist/gs/io/fs/readfile.js.map +1 -1
  144. package/dist/gs/io/fs/readlink.d.ts +8 -0
  145. package/dist/gs/io/fs/readlink.js +64 -0
  146. package/dist/gs/io/fs/readlink.js.map +1 -0
  147. package/dist/gs/io/fs/stat.js.map +1 -1
  148. package/dist/gs/io/fs/sub.js.map +1 -1
  149. package/dist/gs/io/fs/walk.d.ts +3 -3
  150. package/dist/gs/io/fs/walk.js +7 -7
  151. package/dist/gs/io/fs/walk.js.map +1 -1
  152. package/dist/gs/io/io.d.ts +40 -6
  153. package/dist/gs/io/io.js +151 -26
  154. package/dist/gs/io/io.js.map +1 -1
  155. package/dist/gs/maps/iter.d.ts +3 -3
  156. package/dist/gs/maps/iter.js +3 -3
  157. package/dist/gs/maps/iter.js.map +1 -1
  158. package/dist/gs/maps/maps.d.ts +2 -2
  159. package/dist/gs/maps/maps.js +1 -1
  160. package/dist/gs/maps/maps.js.map +1 -1
  161. package/dist/gs/math/bits/index.d.ts +13 -4
  162. package/dist/gs/math/bits/index.js +66 -34
  163. package/dist/gs/math/bits/index.js.map +1 -1
  164. package/dist/gs/math/const.gs.d.ts +5 -5
  165. package/dist/gs/math/const.gs.js +4 -4
  166. package/dist/gs/math/const.gs.js.map +1 -1
  167. package/dist/gs/mime/index.d.ts +1 -0
  168. package/dist/gs/mime/index.js +50 -0
  169. package/dist/gs/mime/index.js.map +1 -0
  170. package/dist/gs/net/http/httptest/index.d.ts +11 -0
  171. package/dist/gs/net/http/httptest/index.js +21 -0
  172. package/dist/gs/net/http/httptest/index.js.map +1 -0
  173. package/dist/gs/net/http/index.d.ts +27 -0
  174. package/dist/gs/net/http/index.js +61 -0
  175. package/dist/gs/net/http/index.js.map +1 -0
  176. package/dist/gs/os/dir_unix.gs.js +2 -2
  177. package/dist/gs/os/dir_unix.gs.js.map +1 -1
  178. package/dist/gs/os/error.gs.js +2 -4
  179. package/dist/gs/os/error.gs.js.map +1 -1
  180. package/dist/gs/os/exec.gs.js.map +1 -1
  181. package/dist/gs/os/exec_posix.gs.js.map +1 -1
  182. package/dist/gs/os/rawconn_js.gs.js.map +1 -1
  183. package/dist/gs/os/root_js.gs.js.map +1 -1
  184. package/dist/gs/os/tempfile.gs.js +66 -9
  185. package/dist/gs/os/tempfile.gs.js.map +1 -1
  186. package/dist/gs/os/types.gs.js.map +1 -1
  187. package/dist/gs/os/types_js.gs.js +9 -9
  188. package/dist/gs/os/types_js.gs.js.map +1 -1
  189. package/dist/gs/os/types_unix.gs.js.map +1 -1
  190. package/dist/gs/path/filepath/match.js +165 -3
  191. package/dist/gs/path/filepath/match.js.map +1 -1
  192. package/dist/gs/path/filepath/path.d.ts +3 -1
  193. package/dist/gs/path/filepath/path.js +133 -4
  194. package/dist/gs/path/filepath/path.js.map +1 -1
  195. package/dist/gs/path/match.js.map +1 -1
  196. package/dist/gs/path/path.d.ts +4 -1
  197. package/dist/gs/path/path.js +16 -4
  198. package/dist/gs/path/path.js.map +1 -1
  199. package/dist/gs/reflect/index.d.ts +3 -3
  200. package/dist/gs/reflect/index.js +2 -2
  201. package/dist/gs/reflect/index.js.map +1 -1
  202. package/dist/gs/reflect/map.js +3 -0
  203. package/dist/gs/reflect/map.js.map +1 -1
  204. package/dist/gs/reflect/type.d.ts +9 -5
  205. package/dist/gs/reflect/type.js +233 -21
  206. package/dist/gs/reflect/type.js.map +1 -1
  207. package/dist/gs/reflect/types.js.map +1 -1
  208. package/dist/gs/reflect/visiblefields.js.map +1 -1
  209. package/dist/gs/runtime/debug/index.d.ts +2 -0
  210. package/dist/gs/runtime/debug/index.js +8 -0
  211. package/dist/gs/runtime/debug/index.js.map +1 -0
  212. package/dist/gs/runtime/runtime.d.ts +35 -3
  213. package/dist/gs/runtime/runtime.js +72 -0
  214. package/dist/gs/runtime/runtime.js.map +1 -1
  215. package/dist/gs/slices/slices.d.ts +24 -5
  216. package/dist/gs/slices/slices.js +214 -5
  217. package/dist/gs/slices/slices.js.map +1 -1
  218. package/dist/gs/sort/slice.gs.d.ts +3 -3
  219. package/dist/gs/sort/slice.gs.js +6 -6
  220. package/dist/gs/sort/slice.gs.js.map +1 -1
  221. package/dist/gs/sort/sort.gs.d.ts +4 -4
  222. package/dist/gs/sort/sort.gs.js +11 -8
  223. package/dist/gs/sort/sort.gs.js.map +1 -1
  224. package/dist/gs/strconv/atoi.gs.js.map +1 -1
  225. package/dist/gs/strconv/quote.gs.js.map +1 -1
  226. package/dist/gs/strings/builder.d.ts +1 -1
  227. package/dist/gs/strings/builder.js +3 -2
  228. package/dist/gs/strings/builder.js.map +1 -1
  229. package/dist/gs/strings/reader.js.map +1 -1
  230. package/dist/gs/strings/replace.js.map +1 -1
  231. package/dist/gs/sync/atomic/type.gs.d.ts +9 -8
  232. package/dist/gs/sync/atomic/type.gs.js +0 -2
  233. package/dist/gs/sync/atomic/type.gs.js.map +1 -1
  234. package/dist/gs/sync/atomic/value.gs.js.map +1 -1
  235. package/dist/gs/sync/sync.d.ts +3 -0
  236. package/dist/gs/sync/sync.js +39 -0
  237. package/dist/gs/sync/sync.js.map +1 -1
  238. package/dist/gs/syscall/constants.d.ts +36 -24
  239. package/dist/gs/syscall/constants.js +12 -0
  240. package/dist/gs/syscall/constants.js.map +1 -1
  241. package/dist/gs/syscall/errors.d.ts +2 -0
  242. package/dist/gs/syscall/errors.js +8 -0
  243. package/dist/gs/syscall/errors.js.map +1 -1
  244. package/dist/gs/syscall/fs.d.ts +43 -0
  245. package/dist/gs/syscall/fs.js +102 -0
  246. package/dist/gs/syscall/fs.js.map +1 -1
  247. package/dist/gs/syscall/js/index.d.ts +90 -0
  248. package/dist/gs/syscall/js/index.js +375 -0
  249. package/dist/gs/syscall/js/index.js.map +1 -0
  250. package/dist/gs/syscall/types.d.ts +22 -0
  251. package/dist/gs/syscall/types.js +45 -1
  252. package/dist/gs/syscall/types.js.map +1 -1
  253. package/dist/gs/testing/index.d.ts +1 -0
  254. package/dist/gs/testing/index.js +2 -0
  255. package/dist/gs/testing/index.js.map +1 -0
  256. package/dist/gs/testing/testing.d.ts +77 -0
  257. package/dist/gs/testing/testing.js +301 -0
  258. package/dist/gs/testing/testing.js.map +1 -0
  259. package/dist/gs/time/time.d.ts +41 -4
  260. package/dist/gs/time/time.js +205 -36
  261. package/dist/gs/time/time.js.map +1 -1
  262. package/dist/gs/unicode/unicode.d.ts +23 -1
  263. package/dist/gs/unicode/unicode.js +79 -10
  264. package/dist/gs/unicode/unicode.js.map +1 -1
  265. package/dist/gs/unicode/utf8/utf8.d.ts +4 -4
  266. package/dist/gs/unicode/utf8/utf8.js +24 -11
  267. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  268. package/dist/gs/unique/index.d.ts +11 -0
  269. package/dist/gs/unique/index.js +71 -0
  270. package/dist/gs/unique/index.js.map +1 -0
  271. package/go.mod +2 -2
  272. package/go.sum +9 -0
  273. package/gs/builtin/builtin.ts +266 -8
  274. package/gs/builtin/channel.ts +22 -0
  275. package/gs/builtin/hostio.test.ts +177 -0
  276. package/gs/builtin/hostio.ts +171 -56
  277. package/gs/builtin/index.ts +1 -0
  278. package/gs/builtin/runtime-contract.test.ts +356 -0
  279. package/gs/builtin/slice.ts +259 -50
  280. package/gs/builtin/type.ts +188 -30
  281. package/gs/builtin/varRef.ts +38 -1
  282. package/gs/bytes/buffer.gs.ts +48 -44
  283. package/gs/bytes/meta.json +8 -3
  284. package/gs/bytes/reader.gs.ts +20 -19
  285. package/gs/context/context.test.ts +41 -0
  286. package/gs/context/context.ts +22 -26
  287. package/gs/crypto/internal/fips140deps/byteorder/index.ts +1 -0
  288. package/gs/crypto/internal/fips140deps/godebug/index.ts +1 -0
  289. package/gs/crypto/rand/index.test.ts +32 -0
  290. package/gs/crypto/rand/index.ts +90 -0
  291. package/gs/crypto/rand/meta.json +5 -0
  292. package/gs/embed/index.ts +20 -0
  293. package/gs/embed/meta.json +5 -0
  294. package/gs/encoding/json/index.test.ts +79 -0
  295. package/gs/encoding/json/index.ts +210 -0
  296. package/gs/errors/errors.test.ts +82 -0
  297. package/gs/errors/errors.ts +104 -0
  298. package/gs/fmt/fmt.ts +56 -16
  299. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +95 -0
  300. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +300 -2
  301. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +159 -0
  302. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +1005 -0
  303. package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +719 -0
  304. package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +40 -0
  305. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/meta.json +3 -1
  306. package/gs/github.com/klauspost/compress/internal/le/index.test.ts +36 -0
  307. package/gs/github.com/klauspost/compress/internal/le/index.ts +114 -0
  308. package/gs/go/internal/scannerhooks/index.test.ts +14 -0
  309. package/gs/go/internal/scannerhooks/index.ts +9 -0
  310. package/gs/go/scanner/index.test.ts +72 -0
  311. package/gs/go/scanner/index.ts +204 -0
  312. package/gs/go/token/index.test.ts +67 -0
  313. package/gs/go/token/index.ts +686 -0
  314. package/gs/internal/abi/index.test.ts +18 -0
  315. package/gs/internal/abi/index.ts +14 -0
  316. package/gs/internal/bytealg/index.test.ts +18 -0
  317. package/gs/internal/bytealg/index.ts +16 -0
  318. package/gs/internal/byteorder/index.test.ts +39 -0
  319. package/gs/internal/byteorder/index.ts +100 -27
  320. package/gs/internal/godebug/index.test.ts +16 -0
  321. package/gs/internal/godebug/index.ts +35 -0
  322. package/gs/io/fs/index.ts +1 -0
  323. package/gs/io/fs/meta.json +5 -0
  324. package/gs/io/fs/readlink.test.ts +43 -0
  325. package/gs/io/fs/readlink.ts +77 -0
  326. package/gs/io/fs/walk.test.ts +61 -0
  327. package/gs/io/fs/walk.ts +9 -9
  328. package/gs/io/io.ts +174 -31
  329. package/gs/io/meta.json +10 -2
  330. package/gs/maps/iter.ts +12 -6
  331. package/gs/maps/maps.ts +8 -6
  332. package/gs/math/bits/index.ts +103 -47
  333. package/gs/math/const.gs.test.ts +11 -5
  334. package/gs/math/const.gs.ts +5 -6
  335. package/gs/mime/index.ts +54 -0
  336. package/gs/net/http/httptest/index.ts +25 -0
  337. package/gs/net/http/index.test.ts +20 -0
  338. package/gs/net/http/index.ts +81 -0
  339. package/gs/os/dir_unix.gs.ts +2 -3
  340. package/gs/os/file_unix_js.test.ts +50 -0
  341. package/gs/os/meta.json +1 -2
  342. package/gs/os/tempfile.gs.test.ts +85 -0
  343. package/gs/os/tempfile.gs.ts +71 -11
  344. package/gs/os/types_js.gs.ts +11 -11
  345. package/gs/path/filepath/match.test.ts +31 -12
  346. package/gs/path/filepath/match.ts +178 -3
  347. package/gs/path/filepath/path.test.ts +25 -0
  348. package/gs/path/filepath/path.ts +159 -5
  349. package/gs/path/path.ts +20 -5
  350. package/gs/reflect/index.ts +2 -1
  351. package/gs/reflect/map.test.ts +19 -0
  352. package/gs/reflect/map.ts +4 -0
  353. package/gs/reflect/type.ts +298 -29
  354. package/gs/reflect/typefor.test.ts +75 -0
  355. package/gs/runtime/debug/index.test.ts +24 -0
  356. package/gs/runtime/debug/index.ts +8 -0
  357. package/gs/runtime/runtime.test.ts +19 -0
  358. package/gs/runtime/runtime.ts +98 -3
  359. package/gs/slices/slices.test.ts +94 -0
  360. package/gs/slices/slices.ts +245 -5
  361. package/gs/sort/meta.json +7 -0
  362. package/gs/sort/slice.gs.ts +16 -7
  363. package/gs/sort/sort.gs.ts +16 -13
  364. package/gs/strings/builder.ts +4 -3
  365. package/gs/sync/atomic/type.gs.ts +13 -14
  366. package/gs/sync/meta.json +3 -1
  367. package/gs/sync/sync.test.ts +36 -0
  368. package/gs/sync/sync.ts +39 -0
  369. package/gs/syscall/constants.ts +39 -24
  370. package/gs/syscall/errors.ts +10 -0
  371. package/gs/syscall/fs.ts +195 -0
  372. package/gs/syscall/js/index.ts +458 -0
  373. package/gs/syscall/js/meta.json +4 -0
  374. package/gs/syscall/net.test.ts +85 -0
  375. package/gs/syscall/types.ts +56 -0
  376. package/gs/testing/index.ts +1 -0
  377. package/gs/testing/meta.json +5 -0
  378. package/gs/testing/testing.test.ts +90 -0
  379. package/gs/testing/testing.ts +382 -0
  380. package/gs/time/time.test.ts +106 -0
  381. package/gs/time/time.ts +278 -57
  382. package/gs/unicode/unicode.test.ts +25 -0
  383. package/gs/unicode/unicode.ts +119 -9
  384. package/gs/unicode/utf8/utf8.test.ts +13 -0
  385. package/gs/unicode/utf8/utf8.ts +28 -16
  386. package/gs/unique/index.ts +91 -0
  387. package/package.json +14 -13
  388. package/compiler/analysis.go +0 -3475
  389. package/compiler/analysis_test.go +0 -338
  390. package/compiler/assignment.go +0 -580
  391. package/compiler/builtin_test.go +0 -92
  392. package/compiler/code-writer.go +0 -115
  393. package/compiler/compiler_test.go +0 -149
  394. package/compiler/composite-lit.go +0 -779
  395. package/compiler/config_test.go +0 -62
  396. package/compiler/constraint.go +0 -86
  397. package/compiler/decl.go +0 -801
  398. package/compiler/expr-call-async.go +0 -188
  399. package/compiler/expr-call-builtins.go +0 -208
  400. package/compiler/expr-call-helpers.go +0 -382
  401. package/compiler/expr-call-make.go +0 -318
  402. package/compiler/expr-call-type-conversion.go +0 -520
  403. package/compiler/expr-call.go +0 -413
  404. package/compiler/expr-selector.go +0 -343
  405. package/compiler/expr-star.go +0 -82
  406. package/compiler/expr-type.go +0 -442
  407. package/compiler/expr-value.go +0 -89
  408. package/compiler/expr.go +0 -773
  409. package/compiler/field.go +0 -183
  410. package/compiler/gs_dependencies_test.go +0 -298
  411. package/compiler/lit.go +0 -322
  412. package/compiler/output.go +0 -72
  413. package/compiler/primitive.go +0 -149
  414. package/compiler/protobuf.go +0 -697
  415. package/compiler/sanitize.go +0 -100
  416. package/compiler/spec-struct.go +0 -995
  417. package/compiler/spec-value.go +0 -540
  418. package/compiler/spec.go +0 -725
  419. package/compiler/stmt-assign.go +0 -664
  420. package/compiler/stmt-for.go +0 -266
  421. package/compiler/stmt-range.go +0 -475
  422. package/compiler/stmt-select.go +0 -262
  423. package/compiler/stmt-type-switch.go +0 -147
  424. package/compiler/stmt.go +0 -1308
  425. package/compiler/type-assert.go +0 -386
  426. package/compiler/type-info.go +0 -156
  427. package/compiler/type-utils.go +0 -207
  428. package/compiler/type.go +0 -892
@@ -1,3 +1,4 @@
1
+ import { RWMutex } from '@goscript/sync/index.js';
1
2
  import { ENOSYS } from './errors.js';
2
3
  // Dirent structure with Reclen field
3
4
  export class Dirent {
@@ -44,10 +45,111 @@ export function Open(_path, _flag, _perm) {
44
45
  export function Sysctl(_name) {
45
46
  return ['', ENOSYS];
46
47
  }
48
+ export function Unlink(_path) {
49
+ return ENOSYS;
50
+ }
51
+ export const ForkLock = new RWMutex();
52
+ export function Close(_fd) {
53
+ return null;
54
+ }
55
+ export function CloseOnExec(_fd) { }
56
+ export function SetNonblock(_fd, _nonblocking) {
57
+ return null;
58
+ }
59
+ export function Fchdir(_fd) {
60
+ return ENOSYS;
61
+ }
62
+ export function Fchmod(_fd, _mode) {
63
+ return ENOSYS;
64
+ }
65
+ export function Fchown(_fd, _uid, _gid) {
66
+ return ENOSYS;
67
+ }
68
+ export function Fstat(_fd, _stat) {
69
+ return ENOSYS;
70
+ }
71
+ export function Fsync(_fd) {
72
+ return ENOSYS;
73
+ }
74
+ export function Ftruncate(_fd, _length) {
75
+ return ENOSYS;
76
+ }
77
+ export function Read(_fd, _b) {
78
+ return [0, ENOSYS];
79
+ }
80
+ export function ReadDirent(_fd, _buf) {
81
+ return [0, ENOSYS];
82
+ }
83
+ export function Pread(_fd, _b, _offset) {
84
+ return [0, ENOSYS];
85
+ }
86
+ export function Pwrite(_fd, _b, _offset) {
87
+ return [0, ENOSYS];
88
+ }
89
+ export function Seek(_fd, _offset, _whence) {
90
+ return [0, ENOSYS];
91
+ }
92
+ export function Write(_fd, _b) {
93
+ return [0, ENOSYS];
94
+ }
95
+ export function Dup(_fd) {
96
+ return [0, ENOSYS];
97
+ }
47
98
  // Getpagesize returns the underlying system's memory page size.
48
99
  export function Getpagesize() {
49
100
  // Return a standard page size for JavaScript environment
50
101
  // Most systems use 4096 bytes as the default page size
51
102
  return 4096;
52
103
  }
104
+ export function Socket(_domain, _typ, _proto) {
105
+ return [-1, ENOSYS];
106
+ }
107
+ export function Connect(_fd, _sa) {
108
+ return ENOSYS;
109
+ }
110
+ export function Listen(_fd, _backlog) {
111
+ return ENOSYS;
112
+ }
113
+ export function Bind(_fd, _sa) {
114
+ return ENOSYS;
115
+ }
116
+ export function StopIO(_fd) {
117
+ return ENOSYS;
118
+ }
119
+ export function Accept(_fd) {
120
+ return [0, null, ENOSYS];
121
+ }
122
+ export function Recvfrom(_fd, _p, _flags) {
123
+ return [0, null, ENOSYS];
124
+ }
125
+ export function Sendto(_fd, _p, _flags, _to) {
126
+ return ENOSYS;
127
+ }
128
+ export function Recvmsg(_fd, _p, _oob, _flags) {
129
+ return [0, 0, 0, null, ENOSYS];
130
+ }
131
+ export function SendmsgN(_fd, _p, _oob, _to, _flags) {
132
+ return [0, ENOSYS];
133
+ }
134
+ export function SetReadDeadline(_fd, _t) {
135
+ return ENOSYS;
136
+ }
137
+ export function SetWriteDeadline(_fd, _t) {
138
+ return ENOSYS;
139
+ }
140
+ export function Shutdown(_fd, _how) {
141
+ return ENOSYS;
142
+ }
143
+ export function GetsockoptInt(_fd, _level, _opt) {
144
+ return [0, ENOSYS];
145
+ }
146
+ export function SetsockoptInt(_fd, _level, _opt, _value) {
147
+ return null;
148
+ }
149
+ export function readv(_fd, _iovecs) {
150
+ return [0, ENOSYS];
151
+ }
152
+ export function writev(_fd, _iovecs) {
153
+ return [0, ENOSYS];
154
+ }
53
155
  //# sourceMappingURL=fs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../gs/syscall/fs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,qCAAqC;AACrC,MAAM,OAAO,MAAM;IACV,IAAI,GAAY,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,GAAW,CAAC,CAAA;IACzB,YAAY,IAAU;QACpB,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrC,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC7C,CAAC;CACF;AAED,wBAAwB;AACxB,MAAM,OAAO,MAAM;IACV,GAAG,GAAW,CAAC,CAAA;IACf,GAAG,GAAW,CAAC,CAAA;IACf,IAAI,GAAW,CAAC,CAAA;IAChB,KAAK,GAAW,CAAC,CAAA;IACjB,GAAG,GAAW,CAAC,CAAA;IACf,GAAG,GAAW,CAAC,CAAA;IACf,IAAI,GAAW,CAAC,CAAA;IAChB,IAAI,GAAW,CAAC,CAAA;IAChB,OAAO,GAAW,CAAC,CAAA;IACnB,MAAM,GAAW,CAAC,CAAA;IAClB,KAAK,GAAW,CAAC,CAAA;IACjB,KAAK,GAAW,CAAC,CAAA;IACjB,KAAK,GAAW,CAAC,CAAA;IACjB,SAAS,GAAW,CAAC,CAAA;IACrB,SAAS,GAAW,CAAC,CAAA;IACrB,SAAS,GAAW,CAAC,CAAA;IAE5B,YAAY,IAAU;QACpB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF;AAED,uCAAuC;AACvC,MAAM,UAAU,IAAI,CAClB,KAAa,EACb,KAAa,EACb,KAAa;IAEb,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;AACrB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW;IACzB,yDAAyD;IACzD,uDAAuD;IACvD,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../gs/syscall/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ export type Type = number;
3
+ export declare const TypeUndefined: Type;
4
+ export declare const TypeNull: Type;
5
+ export declare const TypeBoolean: Type;
6
+ export declare const TypeNumber: Type;
7
+ export declare const TypeString: Type;
8
+ export declare const TypeSymbol: Type;
9
+ export declare const TypeObject: Type;
10
+ export declare const TypeFunction: Type;
11
+ export declare class Value {
12
+ _raw: unknown;
13
+ constructor(init?: Partial<{
14
+ raw: unknown;
15
+ }> | unknown);
16
+ clone(): Value;
17
+ Equal(w: Value): boolean;
18
+ IsUndefined(): boolean;
19
+ IsNull(): boolean;
20
+ IsNaN(): boolean;
21
+ Type(): Type;
22
+ Get(p: string): Value;
23
+ Set(p: string, x: unknown): void;
24
+ Delete(p: string): void;
25
+ Index(i: number): Value;
26
+ SetIndex(i: number, x: unknown): void;
27
+ Length(): number;
28
+ Call(m: string, ...args: unknown[]): Value;
29
+ Invoke(...args: unknown[]): Value;
30
+ New(...args: unknown[]): Value;
31
+ InstanceOf(t: Value): boolean;
32
+ Float(): number;
33
+ Int(): number;
34
+ Bool(): boolean;
35
+ Truthy(): boolean;
36
+ String(): string;
37
+ private requireObject;
38
+ private number;
39
+ }
40
+ export declare class Error {
41
+ Value: Value;
42
+ constructor(init?: Partial<Error>);
43
+ clone(): Error;
44
+ Error(): string;
45
+ }
46
+ export declare class ValueError {
47
+ Method: string;
48
+ Type: Type;
49
+ constructor(init?: Partial<ValueError>);
50
+ clone(): ValueError;
51
+ Error(): string;
52
+ }
53
+ export declare class Func {
54
+ Value: Value;
55
+ private _released;
56
+ constructor(init?: Partial<Func> & {
57
+ fn?: (this$: Value, args: $.Slice<Value>) => unknown;
58
+ });
59
+ clone(): Func;
60
+ Release(): void;
61
+ Equal(w: Value): boolean;
62
+ IsUndefined(): boolean;
63
+ IsNull(): boolean;
64
+ IsNaN(): boolean;
65
+ Type(): Type;
66
+ Get(p: string): Value;
67
+ Set(p: string, x: unknown): void;
68
+ Delete(p: string): void;
69
+ Index(i: number): Value;
70
+ SetIndex(i: number, x: unknown): void;
71
+ Length(): number;
72
+ Call(m: string, ...args: unknown[]): Value;
73
+ Invoke(...args: unknown[]): Value;
74
+ New(...args: unknown[]): Value;
75
+ InstanceOf(t: Value): boolean;
76
+ Float(): number;
77
+ Int(): number;
78
+ Bool(): boolean;
79
+ Truthy(): boolean;
80
+ String(): string;
81
+ }
82
+ export declare function Undefined(): Value;
83
+ export declare function Null(): Value;
84
+ export declare function Global(): Value;
85
+ export declare function ValueOf(x: unknown): Value;
86
+ export declare function FuncOf(fn: (this$: Value, args: $.Slice<Value>) => unknown): Func;
87
+ export declare function Type_String(t: Type): string;
88
+ export declare function Type_isObject(t: Type): boolean;
89
+ export declare function CopyBytesToGo(dst: $.Bytes | null, src: Value): number;
90
+ export declare function CopyBytesToJS(dst: Value, src: $.Bytes | null): number;
@@ -0,0 +1,375 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ export const TypeUndefined = 0;
3
+ export const TypeNull = 1;
4
+ export const TypeBoolean = 2;
5
+ export const TypeNumber = 3;
6
+ export const TypeString = 4;
7
+ export const TypeSymbol = 5;
8
+ export const TypeObject = 6;
9
+ export const TypeFunction = 7;
10
+ export class Value {
11
+ _raw;
12
+ constructor(init) {
13
+ if (isRawInit(init)) {
14
+ this._raw = init.raw;
15
+ return;
16
+ }
17
+ this._raw = init;
18
+ }
19
+ clone() {
20
+ return new Value({ raw: this._raw });
21
+ }
22
+ Equal(w) {
23
+ return this._raw === w._raw && !Number.isNaN(this._raw);
24
+ }
25
+ IsUndefined() {
26
+ return this._raw === undefined;
27
+ }
28
+ IsNull() {
29
+ return this._raw === null;
30
+ }
31
+ IsNaN() {
32
+ return typeof this._raw === 'number' && Number.isNaN(this._raw);
33
+ }
34
+ Type() {
35
+ if (this._raw === undefined) {
36
+ return TypeUndefined;
37
+ }
38
+ if (this._raw === null) {
39
+ return TypeNull;
40
+ }
41
+ switch (typeof this._raw) {
42
+ case 'boolean':
43
+ return TypeBoolean;
44
+ case 'number':
45
+ return TypeNumber;
46
+ case 'string':
47
+ return TypeString;
48
+ case 'symbol':
49
+ return TypeSymbol;
50
+ case 'function':
51
+ return TypeFunction;
52
+ case 'object':
53
+ return TypeObject;
54
+ default:
55
+ $.panic('bad type');
56
+ }
57
+ }
58
+ Get(p) {
59
+ this.requireObject('Value.Get');
60
+ return new Value({ raw: Reflect.get(this._raw, p) });
61
+ }
62
+ Set(p, x) {
63
+ this.requireObject('Value.Set');
64
+ Reflect.set(this._raw, p, ValueOf(x)._raw);
65
+ }
66
+ Delete(p) {
67
+ this.requireObject('Value.Delete');
68
+ Reflect.deleteProperty(this._raw, p);
69
+ }
70
+ Index(i) {
71
+ this.requireObject('Value.Index');
72
+ return new Value({ raw: Reflect.get(this._raw, i) });
73
+ }
74
+ SetIndex(i, x) {
75
+ this.requireObject('Value.SetIndex');
76
+ Reflect.set(this._raw, i, ValueOf(x)._raw);
77
+ }
78
+ Length() {
79
+ this.requireObject('Value.SetIndex');
80
+ return Number(Reflect.get(this._raw, 'length') ?? 0);
81
+ }
82
+ Call(m, ...args) {
83
+ this.requireObject('Value.Call');
84
+ const fn = Reflect.get(this._raw, m);
85
+ if (typeof fn !== 'function') {
86
+ $.panic(`syscall/js: Value.Call: property ${m} is not a function, got ${Type_String(ValueOf(fn).Type())}`);
87
+ }
88
+ return new Value({ raw: fn.apply(this._raw, args.map((arg) => ValueOf(arg)._raw)) });
89
+ }
90
+ Invoke(...args) {
91
+ if (typeof this._raw !== 'function') {
92
+ $.panic(new ValueError({ Method: 'Value.Invoke', Type: this.Type() }));
93
+ }
94
+ return new Value({ raw: this._raw(...args.map((arg) => ValueOf(arg)._raw)) });
95
+ }
96
+ New(...args) {
97
+ if (typeof this._raw !== 'function') {
98
+ $.panic(new ValueError({ Method: 'Value.Invoke', Type: this.Type() }));
99
+ }
100
+ return new Value({
101
+ raw: Reflect.construct(this._raw, args.map((arg) => ValueOf(arg)._raw)),
102
+ });
103
+ }
104
+ InstanceOf(t) {
105
+ if (typeof t._raw !== 'function') {
106
+ return false;
107
+ }
108
+ return this._raw instanceof t._raw;
109
+ }
110
+ Float() {
111
+ return this.number('Value.Float');
112
+ }
113
+ Int() {
114
+ return Math.trunc(this.number('Value.Int'));
115
+ }
116
+ Bool() {
117
+ if (typeof this._raw !== 'boolean') {
118
+ $.panic(new ValueError({ Method: 'Value.Bool', Type: this.Type() }));
119
+ }
120
+ return this._raw;
121
+ }
122
+ Truthy() {
123
+ return !!this._raw;
124
+ }
125
+ String() {
126
+ switch (this.Type()) {
127
+ case TypeString:
128
+ return this._raw;
129
+ case TypeUndefined:
130
+ return '<undefined>';
131
+ case TypeNull:
132
+ return '<null>';
133
+ case TypeBoolean:
134
+ case TypeNumber:
135
+ return `<${Type_String(this.Type())}: ${String(this._raw)}>`;
136
+ case TypeSymbol:
137
+ return '<symbol>';
138
+ case TypeObject:
139
+ return '<object>';
140
+ case TypeFunction:
141
+ return '<function>';
142
+ default:
143
+ $.panic('bad type');
144
+ }
145
+ }
146
+ requireObject(method) {
147
+ if (!Type_isObject(this.Type())) {
148
+ $.panic(new ValueError({ Method: method, Type: this.Type() }));
149
+ }
150
+ }
151
+ number(method) {
152
+ if (typeof this._raw !== 'number') {
153
+ $.panic(new ValueError({ Method: method, Type: this.Type() }));
154
+ }
155
+ return this._raw;
156
+ }
157
+ }
158
+ export class Error {
159
+ Value;
160
+ constructor(init) {
161
+ this.Value = init?.Value?.clone() ?? Undefined();
162
+ }
163
+ clone() {
164
+ return new Error({ Value: this.Value });
165
+ }
166
+ Error() {
167
+ return `JavaScript error: ${this.Value.Get('message').String()}`;
168
+ }
169
+ }
170
+ export class ValueError {
171
+ Method;
172
+ Type;
173
+ constructor(init) {
174
+ this.Method = init?.Method ?? '';
175
+ this.Type = init?.Type ?? TypeUndefined;
176
+ }
177
+ clone() {
178
+ return new ValueError({ Method: this.Method, Type: this.Type });
179
+ }
180
+ Error() {
181
+ return `syscall/js: call of ${this.Method} on ${Type_String(this.Type)}`;
182
+ }
183
+ }
184
+ export class Func {
185
+ Value;
186
+ _released = false;
187
+ constructor(init) {
188
+ const fn = init?.fn;
189
+ this.Value = init?.Value?.clone() ?? new Value({
190
+ raw: function (...args) {
191
+ if (fn === undefined) {
192
+ return undefined;
193
+ }
194
+ return ValueOf(fn(new Value({ raw: this }), args.map((arg) => new Value({ raw: arg }))))._raw;
195
+ },
196
+ });
197
+ }
198
+ clone() {
199
+ return new Func({ Value: this.Value });
200
+ }
201
+ Release() {
202
+ this._released = true;
203
+ }
204
+ Equal(w) {
205
+ return this.Value.Equal(w);
206
+ }
207
+ IsUndefined() {
208
+ return this.Value.IsUndefined();
209
+ }
210
+ IsNull() {
211
+ return this.Value.IsNull();
212
+ }
213
+ IsNaN() {
214
+ return this.Value.IsNaN();
215
+ }
216
+ Type() {
217
+ return this.Value.Type();
218
+ }
219
+ Get(p) {
220
+ return this.Value.Get(p);
221
+ }
222
+ Set(p, x) {
223
+ this.Value.Set(p, x);
224
+ }
225
+ Delete(p) {
226
+ this.Value.Delete(p);
227
+ }
228
+ Index(i) {
229
+ return this.Value.Index(i);
230
+ }
231
+ SetIndex(i, x) {
232
+ this.Value.SetIndex(i, x);
233
+ }
234
+ Length() {
235
+ return this.Value.Length();
236
+ }
237
+ Call(m, ...args) {
238
+ return this.Value.Call(m, ...args);
239
+ }
240
+ Invoke(...args) {
241
+ return this.Value.Invoke(...args);
242
+ }
243
+ New(...args) {
244
+ return this.Value.New(...args);
245
+ }
246
+ InstanceOf(t) {
247
+ return this.Value.InstanceOf(t);
248
+ }
249
+ Float() {
250
+ return this.Value.Float();
251
+ }
252
+ Int() {
253
+ return this.Value.Int();
254
+ }
255
+ Bool() {
256
+ return this.Value.Bool();
257
+ }
258
+ Truthy() {
259
+ return this.Value.Truthy();
260
+ }
261
+ String() {
262
+ return this.Value.String();
263
+ }
264
+ }
265
+ export function Undefined() {
266
+ return new Value({ raw: undefined });
267
+ }
268
+ export function Null() {
269
+ return new Value({ raw: null });
270
+ }
271
+ export function Global() {
272
+ return new Value({ raw: globalThis });
273
+ }
274
+ export function ValueOf(x) {
275
+ if (x instanceof Value) {
276
+ return x.clone();
277
+ }
278
+ if (x instanceof Func) {
279
+ return x.Value.clone();
280
+ }
281
+ if (x === null || x === undefined) {
282
+ return Null();
283
+ }
284
+ if (typeof x === 'boolean' || typeof x === 'number' || typeof x === 'string') {
285
+ return new Value({ raw: x });
286
+ }
287
+ if (typeof x === 'bigint') {
288
+ return new Value({ raw: Number(x) });
289
+ }
290
+ if (x instanceof Uint8Array) {
291
+ return new Value({ raw: x });
292
+ }
293
+ if (Array.isArray(x)) {
294
+ return new Value({ raw: x.map((item) => ValueOf(item)._raw) });
295
+ }
296
+ if (x instanceof Map) {
297
+ const out = {};
298
+ for (const [key, value] of x.entries()) {
299
+ out[String(key)] = ValueOf(value)._raw;
300
+ }
301
+ return new Value({ raw: out });
302
+ }
303
+ return new Value({ raw: x });
304
+ }
305
+ export function FuncOf(fn) {
306
+ return new Func({ fn });
307
+ }
308
+ export function Type_String(t) {
309
+ switch (t) {
310
+ case TypeUndefined:
311
+ return 'undefined';
312
+ case TypeNull:
313
+ return 'null';
314
+ case TypeBoolean:
315
+ return 'boolean';
316
+ case TypeNumber:
317
+ return 'number';
318
+ case TypeString:
319
+ return 'string';
320
+ case TypeSymbol:
321
+ return 'symbol';
322
+ case TypeObject:
323
+ return 'object';
324
+ case TypeFunction:
325
+ return 'function';
326
+ default:
327
+ $.panic('bad type');
328
+ }
329
+ }
330
+ export function Type_isObject(t) {
331
+ return t === TypeObject || t === TypeFunction;
332
+ }
333
+ export function CopyBytesToGo(dst, src) {
334
+ const bytes = sourceBytes(src);
335
+ const n = Math.min($.len(dst), bytes.length);
336
+ if (dst instanceof Uint8Array) {
337
+ dst.set(bytes.subarray(0, n), 0);
338
+ return n;
339
+ }
340
+ const arr = $.asArray(dst);
341
+ for (let i = 0; i < n; i++) {
342
+ arr[i] = bytes[i];
343
+ }
344
+ return n;
345
+ }
346
+ export function CopyBytesToJS(dst, src) {
347
+ const target = dstRawBytes(dst);
348
+ const bytes = src instanceof Uint8Array ? src : Uint8Array.from($.asArray(src));
349
+ const n = Math.min(target.length, bytes.length);
350
+ target.set(bytes.subarray(0, n), 0);
351
+ return n;
352
+ }
353
+ function sourceBytes(src) {
354
+ const raw = srcRaw(src);
355
+ if (raw instanceof Uint8Array || raw instanceof Uint8ClampedArray) {
356
+ return raw instanceof Uint8Array ? raw : new Uint8Array(raw.buffer, raw.byteOffset, raw.byteLength);
357
+ }
358
+ $.panic('syscall/js: CopyBytesToGo: expected src to be a Uint8Array or Uint8ClampedArray');
359
+ }
360
+ function dstRawBytes(dst) {
361
+ const raw = srcRaw(dst);
362
+ if (raw instanceof Uint8Array || raw instanceof Uint8ClampedArray) {
363
+ return raw;
364
+ }
365
+ $.panic('syscall/js: CopyBytesToJS: expected dst to be a Uint8Array or Uint8ClampedArray');
366
+ }
367
+ function srcRaw(value) {
368
+ return value._raw;
369
+ }
370
+ function isRawInit(value) {
371
+ return (typeof value === 'object' &&
372
+ value !== null &&
373
+ Object.prototype.hasOwnProperty.call(value, 'raw'));
374
+ }
375
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/syscall/js/index.ts"],"names":[],"mappings":"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"}
@@ -10,3 +10,25 @@ export interface RawConn {
10
10
  Read(f: (fd: uintptr) => boolean): $.GoError;
11
11
  Write(f: (fd: uintptr) => boolean): $.GoError;
12
12
  }
13
+ export interface Sockaddr {
14
+ }
15
+ export declare class SockaddrInet4 implements Sockaddr {
16
+ Port: number;
17
+ Addr: Uint8Array;
18
+ constructor(init?: Partial<SockaddrInet4>);
19
+ clone(): SockaddrInet4;
20
+ }
21
+ export declare class SockaddrInet6 implements Sockaddr {
22
+ Port: number;
23
+ ZoneId: number;
24
+ Addr: Uint8Array;
25
+ constructor(init?: Partial<SockaddrInet6>);
26
+ clone(): SockaddrInet6;
27
+ }
28
+ export declare class SockaddrUnix implements Sockaddr {
29
+ Name: string;
30
+ constructor(init?: Partial<SockaddrUnix>);
31
+ clone(): SockaddrUnix;
32
+ }
33
+ export declare class Iovec {
34
+ }
@@ -1,2 +1,46 @@
1
- export {};
1
+ export class SockaddrInet4 {
2
+ Port = 0;
3
+ Addr = new Uint8Array(4);
4
+ constructor(init) {
5
+ if (init) {
6
+ Object.assign(this, init);
7
+ }
8
+ }
9
+ clone() {
10
+ return new SockaddrInet4({
11
+ Port: this.Port,
12
+ Addr: new Uint8Array(this.Addr),
13
+ });
14
+ }
15
+ }
16
+ export class SockaddrInet6 {
17
+ Port = 0;
18
+ ZoneId = 0;
19
+ Addr = new Uint8Array(16);
20
+ constructor(init) {
21
+ if (init) {
22
+ Object.assign(this, init);
23
+ }
24
+ }
25
+ clone() {
26
+ return new SockaddrInet6({
27
+ Port: this.Port,
28
+ ZoneId: this.ZoneId,
29
+ Addr: new Uint8Array(this.Addr),
30
+ });
31
+ }
32
+ }
33
+ export class SockaddrUnix {
34
+ Name = '';
35
+ constructor(init) {
36
+ if (init) {
37
+ Object.assign(this, init);
38
+ }
39
+ }
40
+ clone() {
41
+ return new SockaddrUnix({ Name: this.Name });
42
+ }
43
+ }
44
+ export class Iovec {
45
+ }
2
46
  //# sourceMappingURL=types.js.map