goscript 0.0.39 → 0.0.41

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 (421) hide show
  1. package/compiler/analysis.go +15 -6
  2. package/compiler/compiler.go +185 -35
  3. package/compiler/expr-call.go +7 -9
  4. package/compiler/expr-type.go +25 -0
  5. package/compiler/field.go +21 -7
  6. package/compiler/gs_dependencies_test.go +80 -0
  7. package/compiler/lit.go +1 -6
  8. package/compiler/output.go +10 -4
  9. package/compiler/spec.go +16 -3
  10. package/compiler/type-assert.go +111 -21
  11. package/compiler/type.go +56 -12
  12. package/dist/gs/builtin/builtin.d.ts +20 -8
  13. package/dist/gs/builtin/builtin.js +30 -53
  14. package/dist/gs/builtin/builtin.js.map +1 -1
  15. package/dist/gs/builtin/errors.d.ts +8 -0
  16. package/dist/gs/builtin/errors.js +18 -0
  17. package/dist/gs/builtin/errors.js.map +1 -0
  18. package/dist/gs/builtin/index.d.ts +7 -0
  19. package/dist/gs/builtin/index.js +7 -0
  20. package/dist/gs/builtin/index.js.map +1 -1
  21. package/dist/gs/builtin/slice.d.ts +5 -2
  22. package/dist/gs/builtin/slice.js +123 -77
  23. package/dist/gs/builtin/slice.js.map +1 -1
  24. package/dist/gs/bytes/buffer.gs.d.ts +1 -1
  25. package/dist/gs/bytes/buffer.gs.js +1 -1
  26. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  27. package/dist/gs/bytes/bytes.gs.d.ts +1 -1
  28. package/dist/gs/bytes/bytes.gs.js +111 -15
  29. package/dist/gs/bytes/bytes.gs.js.map +1 -1
  30. package/dist/gs/bytes/iter.gs.d.ts +1 -1
  31. package/dist/gs/bytes/iter.gs.js +1 -1
  32. package/dist/gs/bytes/iter.gs.js.map +1 -1
  33. package/dist/gs/bytes/reader.gs.d.ts +1 -1
  34. package/dist/gs/bytes/reader.gs.js +1 -1
  35. package/dist/gs/bytes/reader.gs.js.map +1 -1
  36. package/dist/gs/context/context.d.ts +1 -1
  37. package/dist/gs/context/context.js +1 -1
  38. package/dist/gs/context/context.js.map +1 -1
  39. package/dist/gs/errors/errors.d.ts +1 -1
  40. package/dist/gs/errors/errors.js +3 -15
  41. package/dist/gs/errors/errors.js.map +1 -1
  42. package/dist/gs/fmt/fmt.d.ts +49 -0
  43. package/dist/gs/fmt/fmt.js +322 -0
  44. package/dist/gs/fmt/fmt.js.map +1 -0
  45. package/dist/gs/fmt/index.d.ts +1 -0
  46. package/dist/gs/fmt/index.js +2 -0
  47. package/dist/gs/fmt/index.js.map +1 -0
  48. package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
  49. package/dist/gs/github.com/pkg/errors/errors.js +1 -1
  50. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  51. package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
  52. package/dist/gs/github.com/pkg/errors/go113.js +1 -1
  53. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
  54. package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
  55. package/dist/gs/github.com/pkg/errors/stack.js +1 -1
  56. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  57. package/dist/gs/internal/byteorder/index.d.ts +1 -1
  58. package/dist/gs/internal/byteorder/index.js +1 -1
  59. package/dist/gs/internal/byteorder/index.js.map +1 -1
  60. package/dist/gs/internal/oserror/errors.d.ts +1 -1
  61. package/dist/gs/io/fs/format.js +1 -1
  62. package/dist/gs/io/fs/format.js.map +1 -1
  63. package/dist/gs/io/fs/fs.d.ts +1 -1
  64. package/dist/gs/io/fs/fs.js +1 -1
  65. package/dist/gs/io/fs/fs.js.map +1 -1
  66. package/dist/gs/io/fs/glob.d.ts +1 -1
  67. package/dist/gs/io/fs/glob.js +1 -1
  68. package/dist/gs/io/fs/glob.js.map +1 -1
  69. package/dist/gs/io/fs/readdir.d.ts +1 -1
  70. package/dist/gs/io/fs/readdir.js +1 -1
  71. package/dist/gs/io/fs/readdir.js.map +1 -1
  72. package/dist/gs/io/fs/readfile.d.ts +1 -1
  73. package/dist/gs/io/fs/readfile.js +1 -1
  74. package/dist/gs/io/fs/readfile.js.map +1 -1
  75. package/dist/gs/io/fs/stat.d.ts +1 -1
  76. package/dist/gs/io/fs/stat.js +1 -1
  77. package/dist/gs/io/fs/stat.js.map +1 -1
  78. package/dist/gs/io/fs/sub.d.ts +1 -1
  79. package/dist/gs/io/fs/sub.js +1 -1
  80. package/dist/gs/io/fs/sub.js.map +1 -1
  81. package/dist/gs/io/fs/walk.d.ts +1 -1
  82. package/dist/gs/io/fs/walk.js +1 -1
  83. package/dist/gs/io/fs/walk.js.map +1 -1
  84. package/dist/gs/io/io.d.ts +1 -1
  85. package/dist/gs/maps/iter.d.ts +1 -1
  86. package/dist/gs/maps/iter.js +1 -1
  87. package/dist/gs/maps/iter.js.map +1 -1
  88. package/dist/gs/maps/maps.d.ts +1 -1
  89. package/dist/gs/maps/maps.js +1 -1
  90. package/dist/gs/maps/maps.js.map +1 -1
  91. package/dist/gs/math/erfinv.gs.js +1 -1
  92. package/dist/gs/math/erfinv.gs.js.map +1 -1
  93. package/dist/gs/math/gamma.gs.js +1 -1
  94. package/dist/gs/math/gamma.gs.js.map +1 -1
  95. package/dist/gs/math/j0.gs.js +1 -1
  96. package/dist/gs/math/j0.gs.js.map +1 -1
  97. package/dist/gs/math/j1.gs.js +1 -1
  98. package/dist/gs/math/j1.gs.js.map +1 -1
  99. package/dist/gs/math/lgamma.gs.js +1 -1
  100. package/dist/gs/math/lgamma.gs.js.map +1 -1
  101. package/dist/gs/math/pow10.gs.js +1 -1
  102. package/dist/gs/math/pow10.gs.js.map +1 -1
  103. package/dist/gs/math/sin.gs.js +1 -1
  104. package/dist/gs/math/sin.gs.js.map +1 -1
  105. package/dist/gs/math/tan.gs.js +1 -1
  106. package/dist/gs/math/tan.gs.js.map +1 -1
  107. package/dist/gs/math/tanh.gs.js +1 -1
  108. package/dist/gs/math/tanh.gs.js.map +1 -1
  109. package/dist/gs/math/trig_reduce.gs.js +1 -1
  110. package/dist/gs/math/trig_reduce.gs.js.map +1 -1
  111. package/dist/gs/os/dir.gs.d.ts +1 -1
  112. package/dist/gs/os/dir_unix.gs.d.ts +1 -1
  113. package/dist/gs/os/dir_unix.gs.js +1 -1
  114. package/dist/gs/os/dir_unix.gs.js.map +1 -1
  115. package/dist/gs/os/dirent_js.gs.d.ts +1 -1
  116. package/dist/gs/os/env.gs.d.ts +1 -1
  117. package/dist/gs/os/env.gs.js +1 -1
  118. package/dist/gs/os/env.gs.js.map +1 -1
  119. package/dist/gs/os/error.gs.d.ts +1 -1
  120. package/dist/gs/os/error.gs.js +1 -1
  121. package/dist/gs/os/error.gs.js.map +1 -1
  122. package/dist/gs/os/exec.gs.d.ts +1 -1
  123. package/dist/gs/os/exec.gs.js +1 -1
  124. package/dist/gs/os/exec.gs.js.map +1 -1
  125. package/dist/gs/os/exec_posix.gs.d.ts +1 -1
  126. package/dist/gs/os/exec_posix.gs.js +1 -1
  127. package/dist/gs/os/exec_posix.gs.js.map +1 -1
  128. package/dist/gs/os/exec_unix.gs.d.ts +1 -1
  129. package/dist/gs/os/executable.gs.d.ts +1 -1
  130. package/dist/gs/os/executable_js.gs.d.ts +1 -1
  131. package/dist/gs/os/executable_wasm.gs.d.ts +1 -1
  132. package/dist/gs/os/file_constants_js.gs.d.ts +1 -1
  133. package/dist/gs/os/file_constants_js.gs.js +1 -1
  134. package/dist/gs/os/file_constants_js.gs.js.map +1 -1
  135. package/dist/gs/os/file_js.gs.d.ts +1 -1
  136. package/dist/gs/os/file_open_unix.gs.d.ts +1 -1
  137. package/dist/gs/os/file_posix_js.gs.d.ts +1 -1
  138. package/dist/gs/os/file_unix_js.gs.d.ts +1 -1
  139. package/dist/gs/os/getwd_js.gs.d.ts +1 -1
  140. package/dist/gs/os/path.gs.d.ts +1 -1
  141. package/dist/gs/os/path.gs.js +1 -1
  142. package/dist/gs/os/path.gs.js.map +1 -1
  143. package/dist/gs/os/path_unix.gs.js +1 -1
  144. package/dist/gs/os/path_unix.gs.js.map +1 -1
  145. package/dist/gs/os/pidfd_js.gs.d.ts +1 -1
  146. package/dist/gs/os/pipe_wasm.gs.d.ts +1 -1
  147. package/dist/gs/os/proc.gs.d.ts +1 -1
  148. package/dist/gs/os/proc.gs.js +1 -1
  149. package/dist/gs/os/proc.gs.js.map +1 -1
  150. package/dist/gs/os/proc_js.gs.d.ts +1 -1
  151. package/dist/gs/os/proc_js.gs.js +1 -1
  152. package/dist/gs/os/proc_js.gs.js.map +1 -1
  153. package/dist/gs/os/rawconn_js.gs.d.ts +1 -1
  154. package/dist/gs/os/removeall_js.gs.d.ts +1 -1
  155. package/dist/gs/os/root_js.gs.d.ts +1 -1
  156. package/dist/gs/os/root_js.gs.js +1 -1
  157. package/dist/gs/os/root_js.gs.js.map +1 -1
  158. package/dist/gs/os/root_nonwindows.gs.d.ts +1 -1
  159. package/dist/gs/os/root_noopenat.gs.d.ts +1 -1
  160. package/dist/gs/os/stat.gs.d.ts +1 -1
  161. package/dist/gs/os/stat_js.gs.d.ts +1 -1
  162. package/dist/gs/os/stat_unix_js.gs.d.ts +1 -1
  163. package/dist/gs/os/sys.gs.d.ts +1 -1
  164. package/dist/gs/os/sys_bsd.gs.d.ts +1 -1
  165. package/dist/gs/os/sys_js.gs.d.ts +1 -1
  166. package/dist/gs/os/tempfile.gs.d.ts +1 -1
  167. package/dist/gs/os/types.gs.d.ts +1 -1
  168. package/dist/gs/os/types.gs.js +1 -1
  169. package/dist/gs/os/types.gs.js.map +1 -1
  170. package/dist/gs/os/types_js.gs.d.ts +1 -1
  171. package/dist/gs/os/types_js.gs.js +1 -1
  172. package/dist/gs/os/types_js.gs.js.map +1 -1
  173. package/dist/gs/os/types_unix.gs.d.ts +1 -1
  174. package/dist/gs/os/types_unix.gs.js +1 -1
  175. package/dist/gs/os/types_unix.gs.js.map +1 -1
  176. package/dist/gs/os/zero_copy_posix.gs.d.ts +1 -1
  177. package/dist/gs/os/zero_copy_posix.gs.js +1 -1
  178. package/dist/gs/os/zero_copy_posix.gs.js.map +1 -1
  179. package/dist/gs/path/filepath/index.d.ts +3 -0
  180. package/dist/gs/path/filepath/index.js +3 -0
  181. package/dist/gs/path/filepath/index.js.map +1 -0
  182. package/dist/gs/path/filepath/match.d.ts +3 -0
  183. package/dist/gs/path/filepath/match.js +212 -0
  184. package/dist/gs/path/filepath/match.js.map +1 -0
  185. package/dist/gs/path/filepath/path.d.ts +26 -0
  186. package/dist/gs/path/filepath/path.js +266 -0
  187. package/dist/gs/path/filepath/path.js.map +1 -0
  188. package/dist/gs/path/match.d.ts +1 -1
  189. package/dist/gs/path/match.js +1 -1
  190. package/dist/gs/path/match.js.map +1 -1
  191. package/dist/gs/path/path.js +1 -1
  192. package/dist/gs/path/path.js.map +1 -1
  193. package/dist/gs/reflect/value.d.ts +1 -1
  194. package/dist/gs/reflect/value.js +14 -6
  195. package/dist/gs/reflect/value.js.map +1 -1
  196. package/dist/gs/reflect/visiblefields.d.ts +1 -1
  197. package/dist/gs/reflect/visiblefields.js +1 -1
  198. package/dist/gs/reflect/visiblefields.js.map +1 -1
  199. package/dist/gs/slices/slices.d.ts +1 -1
  200. package/dist/gs/slices/slices.js +1 -1
  201. package/dist/gs/slices/slices.js.map +1 -1
  202. package/dist/gs/sort/index.d.ts +4 -0
  203. package/dist/gs/sort/index.js +4 -0
  204. package/dist/gs/sort/index.js.map +1 -0
  205. package/dist/gs/sort/search.gs.d.ts +6 -0
  206. package/dist/gs/sort/search.gs.js +125 -0
  207. package/dist/gs/sort/search.gs.js.map +1 -0
  208. package/dist/gs/sort/slice.gs.d.ts +4 -0
  209. package/dist/gs/sort/slice.gs.js +49 -0
  210. package/dist/gs/sort/slice.gs.js.map +1 -0
  211. package/dist/gs/sort/sort.gs.d.ts +37 -0
  212. package/dist/gs/sort/sort.gs.js +203 -0
  213. package/dist/gs/sort/sort.gs.js.map +1 -0
  214. package/dist/gs/strconv/atob.gs.d.ts +1 -1
  215. package/dist/gs/strconv/atob.gs.js +1 -1
  216. package/dist/gs/strconv/atob.gs.js.map +1 -1
  217. package/dist/gs/strconv/atof.gs.d.ts +1 -1
  218. package/dist/gs/strconv/atoi.gs.d.ts +1 -1
  219. package/dist/gs/strconv/atoi.gs.js +5 -6
  220. package/dist/gs/strconv/atoi.gs.js.map +1 -1
  221. package/dist/gs/strconv/ftoa.gs.d.ts +1 -1
  222. package/dist/gs/strconv/ftoa.gs.js +1 -1
  223. package/dist/gs/strconv/ftoa.gs.js.map +1 -1
  224. package/dist/gs/strconv/itoa.gs.d.ts +1 -1
  225. package/dist/gs/strconv/itoa.gs.js +1 -1
  226. package/dist/gs/strconv/itoa.gs.js.map +1 -1
  227. package/dist/gs/strconv/quote.gs.d.ts +1 -1
  228. package/dist/gs/strconv/quote.gs.js +1 -1
  229. package/dist/gs/strconv/quote.gs.js.map +1 -1
  230. package/dist/gs/strings/builder.d.ts +1 -1
  231. package/dist/gs/strings/builder.js +1 -1
  232. package/dist/gs/strings/builder.js.map +1 -1
  233. package/dist/gs/strings/iter.js +1 -1
  234. package/dist/gs/strings/iter.js.map +1 -1
  235. package/dist/gs/strings/reader.d.ts +1 -1
  236. package/dist/gs/strings/reader.js +7 -8
  237. package/dist/gs/strings/reader.js.map +1 -1
  238. package/dist/gs/strings/replace.d.ts +1 -1
  239. package/dist/gs/strings/replace.js +1 -1
  240. package/dist/gs/strings/replace.js.map +1 -1
  241. package/dist/gs/strings/strings.d.ts +1 -1
  242. package/dist/gs/strings/strings.js +1 -1
  243. package/dist/gs/strings/strings.js.map +1 -1
  244. package/dist/gs/sync/atomic/doc.gs.d.ts +1 -1
  245. package/dist/gs/sync/atomic/doc_64.gs.d.ts +1 -1
  246. package/dist/gs/sync/atomic/type.gs.d.ts +1 -1
  247. package/dist/gs/sync/atomic/type.gs.js +1 -1
  248. package/dist/gs/sync/atomic/type.gs.js.map +1 -1
  249. package/dist/gs/sync/atomic/value.gs.d.ts +1 -1
  250. package/dist/gs/sync/atomic/value.gs.js +1 -1
  251. package/dist/gs/sync/atomic/value.gs.js.map +1 -1
  252. package/dist/gs/syscall/index.d.ts +1 -1
  253. package/dist/gs/syscall/index.js +1 -1
  254. package/dist/gs/syscall/index.js.map +1 -1
  255. package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
  256. package/dist/gs/unicode/utf8/utf8.js +1 -1
  257. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  258. package/gs/builtin/builtin.ts +33 -64
  259. package/gs/builtin/errors.ts +25 -0
  260. package/gs/builtin/index.ts +7 -0
  261. package/gs/builtin/slice.ts +142 -71
  262. package/gs/bytes/buffer.gs.ts +1 -1
  263. package/gs/bytes/bytes.gs.ts +123 -15
  264. package/gs/bytes/iter.gs.ts +1 -1
  265. package/gs/bytes/metadata.go +12 -0
  266. package/gs/bytes/reader.gs.ts +1 -1
  267. package/gs/context/context.ts +1 -1
  268. package/gs/errors/errors.ts +3 -16
  269. package/gs/fmt/fmt.ts +407 -0
  270. package/gs/fmt/godoc.txt +382 -0
  271. package/gs/fmt/index.ts +31 -0
  272. package/gs/fmt/metadata.go +7 -0
  273. package/gs/github.com/pkg/errors/errors.ts +1 -1
  274. package/gs/github.com/pkg/errors/go113.ts +2 -2
  275. package/gs/github.com/pkg/errors/stack.ts +1 -1
  276. package/gs/internal/byteorder/index.ts +1 -1
  277. package/gs/internal/metadata.go +7 -0
  278. package/gs/internal/oserror/errors.ts +1 -1
  279. package/gs/io/fs/format.ts +1 -1
  280. package/gs/io/fs/fs.ts +1 -1
  281. package/gs/io/fs/glob.ts +1 -1
  282. package/gs/io/fs/readdir.ts +1 -1
  283. package/gs/io/fs/readfile.ts +1 -1
  284. package/gs/io/fs/stat.ts +1 -1
  285. package/gs/io/fs/sub.ts +1 -1
  286. package/gs/io/fs/walk.ts +1 -1
  287. package/gs/io/io.ts +1 -1
  288. package/gs/io/metadata.go +11 -0
  289. package/gs/maps/iter.ts +1 -1
  290. package/gs/maps/maps.ts +1 -1
  291. package/gs/maps/metadata.go +8 -0
  292. package/gs/math/abs.gs.ts +1 -1
  293. package/gs/math/acosh.gs.ts +1 -1
  294. package/gs/math/asinh.gs.ts +1 -1
  295. package/gs/math/atan.gs.ts +1 -1
  296. package/gs/math/atan2.gs.ts +1 -1
  297. package/gs/math/atanh.gs.ts +1 -1
  298. package/gs/math/bits.gs.ts +1 -1
  299. package/gs/math/cbrt.gs.ts +1 -1
  300. package/gs/math/const.gs.ts +1 -1
  301. package/gs/math/copysign.gs.ts +1 -1
  302. package/gs/math/dim.gs.ts +1 -1
  303. package/gs/math/erf.gs.ts +1 -1
  304. package/gs/math/erfinv.gs.ts +1 -1
  305. package/gs/math/exp.gs.ts +1 -1
  306. package/gs/math/expm1.gs.ts +1 -1
  307. package/gs/math/floor.gs.ts +1 -1
  308. package/gs/math/frexp.gs.ts +1 -1
  309. package/gs/math/gamma.gs.ts +1 -1
  310. package/gs/math/hypot.gs.ts +1 -1
  311. package/gs/math/j0.gs.ts +1 -1
  312. package/gs/math/j1.gs.ts +1 -1
  313. package/gs/math/jn.gs.ts +1 -1
  314. package/gs/math/ldexp.gs.ts +1 -1
  315. package/gs/math/lgamma.gs.ts +1 -1
  316. package/gs/math/log.gs.ts +1 -1
  317. package/gs/math/log10.gs.ts +1 -1
  318. package/gs/math/log1p.gs.ts +1 -1
  319. package/gs/math/logb.gs.ts +1 -1
  320. package/gs/math/metadata.go +7 -0
  321. package/gs/math/mod.gs.ts +1 -1
  322. package/gs/math/modf.gs.ts +1 -1
  323. package/gs/math/nextafter.gs.ts +1 -1
  324. package/gs/math/pow.gs.ts +1 -1
  325. package/gs/math/pow10.gs.ts +1 -1
  326. package/gs/math/remainder.gs.ts +1 -1
  327. package/gs/math/signbit.gs.ts +1 -1
  328. package/gs/math/sin.gs.ts +1 -1
  329. package/gs/math/sincos.gs.ts +1 -1
  330. package/gs/math/sinh.gs.ts +1 -1
  331. package/gs/math/sqrt.gs.ts +1 -1
  332. package/gs/math/tan.gs.ts +1 -1
  333. package/gs/math/tanh.gs.ts +1 -1
  334. package/gs/math/trig_reduce.gs.ts +1 -1
  335. package/gs/math/unsafe.gs.ts +1 -1
  336. package/gs/os/dir.gs.ts +1 -1
  337. package/gs/os/dir_unix.gs.ts +1 -1
  338. package/gs/os/dirent_js.gs.ts +1 -1
  339. package/gs/os/env.gs.ts +1 -1
  340. package/gs/os/error.gs.ts +1 -1
  341. package/gs/os/error_errno.gs.ts +1 -1
  342. package/gs/os/exec.gs.ts +1 -1
  343. package/gs/os/exec_nohandle.gs.ts +1 -1
  344. package/gs/os/exec_posix.gs.ts +1 -1
  345. package/gs/os/exec_unix.gs.ts +1 -1
  346. package/gs/os/executable.gs.ts +1 -1
  347. package/gs/os/executable_js.gs.ts +1 -1
  348. package/gs/os/executable_wasm.gs.ts +1 -1
  349. package/gs/os/file_constants_js.gs.ts +1 -1
  350. package/gs/os/file_js.gs.ts +1 -1
  351. package/gs/os/file_open_unix.gs.ts +1 -1
  352. package/gs/os/file_posix_js.gs.ts +1 -1
  353. package/gs/os/file_unix_js.gs.ts +1 -1
  354. package/gs/os/getwd_js.gs.ts +1 -1
  355. package/gs/os/metadata.go +17 -0
  356. package/gs/os/path.gs.ts +1 -1
  357. package/gs/os/path_unix.gs.ts +1 -1
  358. package/gs/os/pidfd_js.gs.ts +1 -1
  359. package/gs/os/pipe_wasm.gs.ts +1 -1
  360. package/gs/os/proc.gs.ts +1 -1
  361. package/gs/os/proc_js.gs.ts +1 -1
  362. package/gs/os/rawconn_js.gs.ts +1 -1
  363. package/gs/os/removeall_js.gs.ts +1 -1
  364. package/gs/os/root_js.gs.ts +1 -1
  365. package/gs/os/root_nonwindows.gs.ts +1 -1
  366. package/gs/os/root_noopenat.gs.ts +1 -1
  367. package/gs/os/stat.gs.ts +1 -1
  368. package/gs/os/stat_js.gs.ts +1 -1
  369. package/gs/os/stat_unix_js.gs.ts +1 -1
  370. package/gs/os/sticky_bsd.gs.ts +1 -1
  371. package/gs/os/sys.gs.ts +1 -1
  372. package/gs/os/sys_bsd.gs.ts +1 -1
  373. package/gs/os/sys_js.gs.ts +1 -1
  374. package/gs/os/tempfile.gs.ts +1 -1
  375. package/gs/os/types.gs.ts +1 -1
  376. package/gs/os/types_js.gs.ts +1 -1
  377. package/gs/os/types_unix.gs.ts +1 -1
  378. package/gs/os/wait_unimp.gs.ts +1 -1
  379. package/gs/os/zero_copy_posix.gs.ts +1 -1
  380. package/gs/os/zero_copy_stub.gs.ts +1 -1
  381. package/gs/path/filepath/godoc.txt +35 -0
  382. package/gs/path/filepath/index.ts +27 -0
  383. package/gs/path/filepath/match.test.ts +274 -0
  384. package/gs/path/filepath/match.ts +249 -0
  385. package/gs/path/filepath/path.test.ts +246 -0
  386. package/gs/path/filepath/path.ts +329 -0
  387. package/gs/path/match.ts +1 -1
  388. package/gs/path/metadata.go +8 -0
  389. package/gs/path/path.ts +1 -1
  390. package/gs/reflect/metadata.go +7 -0
  391. package/gs/reflect/value.ts +14 -6
  392. package/gs/reflect/visiblefields.ts +1 -1
  393. package/gs/slices/slices.ts +1 -1
  394. package/gs/sort/godoc.txt +27 -0
  395. package/gs/sort/index.ts +24 -0
  396. package/gs/sort/search.gs.ts +128 -0
  397. package/gs/sort/slice.gs.ts +59 -0
  398. package/gs/sort/sort.gs.ts +227 -0
  399. package/gs/strconv/atob.gs.ts +1 -1
  400. package/gs/strconv/atof.gs.ts +1 -1
  401. package/gs/strconv/atoi.gs.ts +5 -6
  402. package/gs/strconv/doc.gs.ts +1 -1
  403. package/gs/strconv/ftoa.gs.ts +1 -1
  404. package/gs/strconv/itoa.gs.ts +1 -1
  405. package/gs/strconv/metadata.go +7 -0
  406. package/gs/strconv/quote.gs.ts +1 -1
  407. package/gs/strings/builder.ts +1 -1
  408. package/gs/strings/iter.ts +1 -1
  409. package/gs/strings/metadata.go +11 -0
  410. package/gs/strings/reader.ts +7 -9
  411. package/gs/strings/replace.ts +1 -1
  412. package/gs/strings/strings.ts +1 -1
  413. package/gs/sync/atomic/doc.gs.ts +1 -1
  414. package/gs/sync/atomic/doc_64.gs.ts +1 -1
  415. package/gs/sync/atomic/type.gs.ts +1 -1
  416. package/gs/sync/atomic/value.gs.ts +1 -1
  417. package/gs/sync/metadata.go +7 -0
  418. package/gs/syscall/index.ts +1 -1
  419. package/gs/unicode/utf8/utf8.ts +1 -1
  420. package/package.json +3 -3
  421. package/gs/builtin/io.ts +0 -22
@@ -47,22 +47,32 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
47
47
  }
48
48
 
49
49
  var okIsBlank bool
50
- var okName string
50
+ var okIsSelectorExpr bool
51
+ var okIdent *ast.Ident
52
+ var okSelectorExpr *ast.SelectorExpr
51
53
 
52
54
  okExpr := lhs[1]
53
- okIdent, ok := okExpr.(*ast.Ident)
54
- if !ok {
55
- return fmt.Errorf("ok expression is not an identifier: %T", okExpr)
55
+
56
+ // Handle different types of ok expressions
57
+ switch okE := okExpr.(type) {
58
+ case *ast.Ident:
59
+ okIdent = okE
60
+ okIsBlank = okIdent.Name == "_"
61
+ case *ast.SelectorExpr:
62
+ okSelectorExpr = okE
63
+ okIsSelectorExpr = true
64
+ okIsBlank = false // Selector expressions can't be blank
65
+ default:
66
+ return fmt.Errorf("ok expression must be an identifier or selector expression, got: %T", okExpr)
56
67
  }
57
- okIsBlank = okIdent.Name == "_"
58
- okName = okIdent.Name
59
68
 
60
69
  valueExpr := lhs[0]
61
70
 
62
71
  // Determine if 'ok' variable is new in 'tok == token.DEFINE' context.
63
72
  // This uses types.Info.Defs to see if the identifier is defined by this statement.
64
73
  var okIsNewInDefine bool
65
- if tok == token.DEFINE && !okIsBlank {
74
+ if tok == token.DEFINE && !okIsBlank && !okIsSelectorExpr {
75
+ // Only applies to identifiers, not selector expressions
66
76
  if c.pkg.TypesInfo.Defs[okIdent] != nil {
67
77
  okIsNewInDefine = true
68
78
  }
@@ -83,6 +93,64 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
83
93
  }
84
94
  }
85
95
 
96
+ // For selector expressions as ok, we need to use temporary variables approach
97
+ if okIsSelectorExpr {
98
+ // Use temporary variables approach similar to SelectorExpr case
99
+ tempValName := "_gs_ta_val_" // Fixed name for temporary value
100
+ tempOkName := "_gs_ta_ok_" // Fixed name for temporary ok status
101
+
102
+ // Declare temporary variables:
103
+ // let _gs_ta_val_: AssertedTypeTS;
104
+ c.tsw.WriteLiterally("let ")
105
+ c.tsw.WriteLiterally(tempValName)
106
+ c.tsw.WriteLiterally(": ")
107
+ c.WriteTypeExpr(assertedType) // TypeScript type for assertedType
108
+ c.tsw.WriteLine("")
109
+
110
+ // let _gs_ta_ok_: boolean;
111
+ c.tsw.WriteLiterally("let ")
112
+ c.tsw.WriteLiterally(tempOkName)
113
+ c.tsw.WriteLiterally(": boolean")
114
+ c.tsw.WriteLine("")
115
+
116
+ // Perform type assertion into temporary variables:
117
+ // ({ value: _gs_ta_val_, ok: _gs_ta_ok_ } = $.typeAssert<AssertedTypeTS>(expr, "GoTypeStr"));
118
+ c.tsw.WriteLiterally("({ value: ")
119
+ c.tsw.WriteLiterally(tempValName)
120
+ c.tsw.WriteLiterally(", ok: ")
121
+ c.tsw.WriteLiterally(tempOkName)
122
+ c.tsw.WriteLiterally(" } = $.typeAssert<")
123
+ c.WriteTypeExpr(assertedType) // Generic: <AssertedTypeTS>
124
+ c.tsw.WriteLiterally(">(")
125
+ if err := c.WriteValueExpr(interfaceExpr); err != nil { // Arg1: interfaceExpr
126
+ return fmt.Errorf("failed to write interface expression in type assertion call: %w", err)
127
+ }
128
+ c.tsw.WriteLiterally(", ")
129
+ c.writeTypeDescription(assertedType) // Arg2: type info for runtime
130
+ c.tsw.WriteLine("))")
131
+
132
+ // Assign temporary value to the value variable:
133
+ if !valueIsBlank {
134
+ if valueIsNewInDefine {
135
+ c.tsw.WriteLiterally("let ")
136
+ }
137
+ c.tsw.WriteLiterally(valueName)
138
+ c.tsw.WriteLiterally(" = ")
139
+ c.tsw.WriteLiterally(tempValName)
140
+ c.tsw.WriteLine("")
141
+ }
142
+
143
+ // Assign temporary ok to the selector expression:
144
+ if err := c.WriteValueExpr(okSelectorExpr); err != nil {
145
+ return fmt.Errorf("failed to write ok selector expression in type assertion: %w", err)
146
+ }
147
+ c.tsw.WriteLiterally(" = ")
148
+ c.tsw.WriteLiterally(tempOkName)
149
+ c.tsw.WriteLine("")
150
+
151
+ return nil
152
+ }
153
+
86
154
  writeEndParen := false // For wrapping assignment in parens to make it an expression
87
155
  letDestructure := false // True if 'let { value: v, ok: o } = ...' is appropriate
88
156
 
@@ -103,7 +171,7 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
103
171
  }
104
172
  if !okIsBlank && okIsNewInDefine {
105
173
  c.tsw.WriteLiterally("let ")
106
- c.tsw.WriteLiterally(okName)
174
+ c.tsw.WriteLiterally(okIdent.Name)
107
175
  c.tsw.WriteLiterally(": boolean")
108
176
  c.tsw.WriteLine("")
109
177
  }
@@ -129,7 +197,7 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
129
197
  parts = append(parts, fmt.Sprintf("value: %s", valueName))
130
198
  }
131
199
  if !okIsBlank {
132
- parts = append(parts, fmt.Sprintf("ok: %s", okName))
200
+ parts = append(parts, fmt.Sprintf("ok: %s", okIdent.Name))
133
201
  }
134
202
  c.tsw.WriteLiterally(strings.Join(parts, ", "))
135
203
  c.tsw.WriteLiterally(" } = $.typeAssert<")
@@ -193,13 +261,24 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
193
261
 
194
262
  // Assign temporary ok to the ok variable (e.g., okName = _gs_ta_ok_; or let okName = ...)
195
263
  if !okIsBlank {
196
- if okIsNewInDefine { // okIsNewInDefine was determined earlier based on tok == token.DEFINE and Defs check
197
- c.tsw.WriteLiterally("let ")
264
+ if okIsSelectorExpr {
265
+ // Assign to selector expression
266
+ if err := c.WriteValueExpr(okSelectorExpr); err != nil {
267
+ return fmt.Errorf("failed to write ok selector expression in type assertion: %w", err)
268
+ }
269
+ c.tsw.WriteLiterally(" = ")
270
+ c.tsw.WriteLiterally(tempOkName)
271
+ c.tsw.WriteLine("")
272
+ } else {
273
+ // Assign to identifier
274
+ if okIsNewInDefine { // okIsNewInDefine was determined earlier based on tok == token.DEFINE and Defs check
275
+ c.tsw.WriteLiterally("let ")
276
+ }
277
+ c.tsw.WriteLiterally(okIdent.Name)
278
+ c.tsw.WriteLiterally(" = ")
279
+ c.tsw.WriteLiterally(tempOkName)
280
+ c.tsw.WriteLine("")
198
281
  }
199
- c.tsw.WriteLiterally(okName)
200
- c.tsw.WriteLiterally(" = ")
201
- c.tsw.WriteLiterally(tempOkName)
202
- c.tsw.WriteLine("")
203
282
  }
204
283
 
205
284
  case *ast.IndexExpr:
@@ -279,13 +358,24 @@ func (c *GoToTSCompiler) writeTypeAssert(lhs []ast.Expr, typeAssertExpr *ast.Typ
279
358
 
280
359
  // Assign temporary ok to the ok variable (e.g., okName = _gs_ta_ok_N_; or let okName = ...)
281
360
  if !okIsBlank {
282
- if okIsNewInDefine { // okIsNewInDefine was determined earlier based on tok == token.DEFINE and Defs check
283
- c.tsw.WriteLiterally("let ")
361
+ if okIsSelectorExpr {
362
+ // Assign to selector expression
363
+ if err := c.WriteValueExpr(okSelectorExpr); err != nil {
364
+ return fmt.Errorf("failed to write ok selector expression in type assertion: %w", err)
365
+ }
366
+ c.tsw.WriteLiterally(" = ")
367
+ c.tsw.WriteLiterally(tempOkName)
368
+ c.tsw.WriteLine("")
369
+ } else {
370
+ // Assign to identifier
371
+ if okIsNewInDefine { // okIsNewInDefine was determined earlier based on tok == token.DEFINE and Defs check
372
+ c.tsw.WriteLiterally("let ")
373
+ }
374
+ c.tsw.WriteLiterally(okIdent.Name)
375
+ c.tsw.WriteLiterally(" = ")
376
+ c.tsw.WriteLiterally(tempOkName)
377
+ c.tsw.WriteLine("")
284
378
  }
285
- c.tsw.WriteLiterally(okName)
286
- c.tsw.WriteLiterally(" = ")
287
- c.tsw.WriteLiterally(tempOkName)
288
- c.tsw.WriteLine("")
289
379
  }
290
380
 
291
381
  default:
package/compiler/type.go CHANGED
@@ -9,16 +9,18 @@ import (
9
9
  )
10
10
 
11
11
  // GoTypeContext specifies the context in which a Go type is being translated to TypeScript.
12
- // This affects how certain types (especially pointers) are handled.
12
+ // This affects how certain types are handled, particularly interfaces and pointers.
13
13
  type GoTypeContext int
14
14
 
15
15
  const (
16
16
  // GoTypeContextGeneral is used for general type translation
17
17
  GoTypeContextGeneral GoTypeContext = iota
18
18
  // GoTypeContextFunctionReturn is used when translating types for function return values.
19
- // In this context, pointer-to-struct types become `ClassName | null` instead of
20
- // `$.VarRef<ClassName> | null` because function return values cannot be addressed.
19
+ // This affects how pointer types are handled (no VarRef wrapper for structs).
21
20
  GoTypeContextFunctionReturn
21
+ // GoTypeContextVariadicParam is used when translating types for variadic parameter elements.
22
+ // This affects how interface{} types are handled (no null prefix).
23
+ GoTypeContextVariadicParam
22
24
  )
23
25
 
24
26
  // WriteGoType is the main dispatcher for translating Go types to their TypeScript
@@ -29,6 +31,7 @@ const (
29
31
  // - GoTypeContextGeneral: Standard type translation
30
32
  // - GoTypeContextFunctionReturn: Special handling for function return types where
31
33
  // pointer-to-struct types become `ClassName | null` instead of `$.VarRef<ClassName> | null`
34
+ // - GoTypeContextVariadicParam: Special handling for variadic parameter elements
32
35
  //
33
36
  // It handles nil types as 'any' with a comment, and dispatches to appropriate
34
37
  // type-specific writers for all other recognized Go types.
@@ -59,7 +62,11 @@ func (c *GoToTSCompiler) WriteGoType(typ types.Type, context GoTypeContext) {
59
62
  case *types.Chan:
60
63
  c.WriteChannelType(t)
61
64
  case *types.Interface:
62
- c.WriteInterfaceType(t, nil) // No ast.InterfaceType available here
65
+ if context == GoTypeContextVariadicParam {
66
+ c.writeInterfaceStructure(t, nil) // Skip the "null |" prefix for variadic params
67
+ } else {
68
+ c.WriteInterfaceType(t, nil) // No ast.InterfaceType available here
69
+ }
63
70
  case *types.Signature:
64
71
  c.WriteSignatureType(t)
65
72
  case *types.Struct:
@@ -230,12 +237,39 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
230
237
  if typePkg != nil && typePkg != c.pkg.Types {
231
238
  // This type is from an imported package, find the import alias
232
239
  typePkgPath := typePkg.Path()
240
+ typePkgName := typePkg.Name() // Get the actual package name
233
241
 
234
- // Try to find the import alias by matching the package path
242
+ // Try to find the import alias by matching the package name or path
235
243
  for importAlias := range c.analysis.Imports {
236
- // The importAlias could be either the explicit alias or the default package name
237
- // If it's the default package name, it should match the last segment of the path
238
- defaultPkgName := packageNameFromGoPath(typePkgPath)
244
+ // First, try to match by the actual package name
245
+ if importAlias == typePkgName {
246
+ // Write the qualified name: importAlias.TypeName
247
+ c.tsw.WriteLiterally(importAlias)
248
+ c.tsw.WriteLiterally(".")
249
+ c.tsw.WriteLiterally(t.Obj().Name())
250
+
251
+ // For generic types, include type arguments
252
+ if t.TypeArgs() != nil && t.TypeArgs().Len() > 0 {
253
+ c.tsw.WriteLiterally("<")
254
+ for i := 0; i < t.TypeArgs().Len(); i++ {
255
+ if i > 0 {
256
+ c.tsw.WriteLiterally(", ")
257
+ }
258
+ c.WriteGoType(t.TypeArgs().At(i), GoTypeContextGeneral)
259
+ }
260
+ c.tsw.WriteLiterally(">")
261
+ }
262
+
263
+ // Check if the underlying type is a function signature and add | null
264
+ if _, isSignature := t.Underlying().(*types.Signature); isSignature {
265
+ c.tsw.WriteLiterally(" | null")
266
+ }
267
+ return
268
+ }
269
+
270
+ // Fallback: try to match by path-based package name (for backwards compatibility)
271
+ pts := strings.Split(typePkgPath, "/")
272
+ defaultPkgName := pts[len(pts)-1]
239
273
  if importAlias == defaultPkgName || importAlias == typePkgPath {
240
274
  // Write the qualified name: importAlias.TypeName
241
275
  c.tsw.WriteLiterally(importAlias)
@@ -253,6 +287,11 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
253
287
  }
254
288
  c.tsw.WriteLiterally(">")
255
289
  }
290
+
291
+ // Check if the underlying type is a function signature and add | null
292
+ if _, isSignature := t.Underlying().(*types.Signature); isSignature {
293
+ c.tsw.WriteLiterally(" | null")
294
+ }
256
295
  return
257
296
  }
258
297
  }
@@ -272,6 +311,11 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
272
311
  }
273
312
  c.tsw.WriteLiterally(">")
274
313
  }
314
+
315
+ // Check if the underlying type is a function signature and add | null for local types too
316
+ if _, isSignature := t.Underlying().(*types.Signature); isSignature {
317
+ c.tsw.WriteLiterally(" | null")
318
+ }
275
319
  }
276
320
 
277
321
  // WritePointerType translates a Go pointer type (*T) to its TypeScript equivalent.
@@ -371,8 +415,8 @@ func (c *GoToTSCompiler) WriteFuncType(exp *ast.FuncType, isAsync bool) {
371
415
  }
372
416
  if len(exp.Results.List) == 1 {
373
417
  // Single return type (named or unnamed)
374
- typ := c.pkg.TypesInfo.TypeOf(exp.Results.List[0].Type)
375
- c.WriteGoType(typ, GoTypeContextFunctionReturn)
418
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
419
+ c.WriteTypeExpr(exp.Results.List[0].Type)
376
420
  } else {
377
421
  // Multiple return types -> tuple
378
422
  c.tsw.WriteLiterally("[")
@@ -380,8 +424,8 @@ func (c *GoToTSCompiler) WriteFuncType(exp *ast.FuncType, isAsync bool) {
380
424
  if i > 0 {
381
425
  c.tsw.WriteLiterally(", ")
382
426
  }
383
- typ := c.pkg.TypesInfo.TypeOf(field.Type)
384
- c.WriteGoType(typ, GoTypeContextFunctionReturn)
427
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
428
+ c.WriteTypeExpr(field.Type)
385
429
  }
386
430
  c.tsw.WriteLiterally("]")
387
431
  }
@@ -1,14 +1,16 @@
1
- export * from './varRef.js';
2
- export * from './channel.js';
3
- export * from './defer.js';
4
- export * from './io.js';
5
- export * from './map.js';
6
- export * from './slice.js';
7
- export * from './type.js';
8
1
  import type { Slice } from './slice.js';
2
+ /**
3
+ * Implementation of Go's built-in println function
4
+ * @param args Arguments to print
5
+ */
6
+ export declare function println(...args: any[]): void;
7
+ /**
8
+ * Implementation of Go's built-in panic function
9
+ * @param args Arguments passed to panic
10
+ */
11
+ export declare function panic(...args: any[]): void;
9
12
  export type Bytes = Uint8Array | Slice<number>;
10
13
  export declare function int(value: number): number;
11
- export declare function copy<T>(dst: T[] | Uint8Array, src: T[] | Uint8Array | string): number;
12
14
  export declare function multiplyDuration(duration: any, multiplier: number): any;
13
15
  /**
14
16
  * Normalizes various byte representations into a `Uint8Array` for protobuf compatibility.
@@ -78,4 +80,14 @@ export declare function bytesLastIndexByte(bytes: Bytes | null, c: number): numb
78
80
  export declare function bytesCount(bytes: Bytes | null, sep: Bytes | null): number;
79
81
  export declare function min(a: number, b: number): number;
80
82
  export declare function max(a: number, b: number): number;
83
+ /**
84
+ * Converts a rune (number) or string to a string.
85
+ * This is used to replace String.fromCharCode() in Go string(rune) conversions.
86
+ * Since sometimes single-char rune literals are compiled to strings, this function
87
+ * needs to handle both numbers (runes) and strings.
88
+ *
89
+ * @param runeOrString A rune (Unicode code point as number) or a string
90
+ * @returns The resulting string
91
+ */
92
+ export declare function runeOrStringToString(runeOrString: number | string): string;
81
93
  export declare function recover(): any;
@@ -1,11 +1,18 @@
1
- export * from './varRef.js';
2
- export * from './channel.js';
3
- export * from './defer.js';
4
- export * from './io.js';
5
- export * from './map.js';
6
- export * from './slice.js';
7
- export * from './type.js';
8
1
  import { isSliceProxy } from './slice.js';
2
+ /**
3
+ * Implementation of Go's built-in println function
4
+ * @param args Arguments to print
5
+ */
6
+ export function println(...args) {
7
+ console.log(...args);
8
+ }
9
+ /**
10
+ * Implementation of Go's built-in panic function
11
+ * @param args Arguments passed to panic
12
+ */
13
+ export function panic(...args) {
14
+ throw new Error(`panic: ${args.map((arg) => String(arg)).join(' ')}`);
15
+ }
9
16
  // int converts a value to a Go int type, handling proper signed integer conversion
10
17
  // This ensures that values like 2147483648 (2^31) are properly handled according to Go semantics
11
18
  export function int(value) {
@@ -17,52 +24,6 @@ export function int(value) {
17
24
  // since JavaScript numbers can safely represent integers up to Number.MAX_SAFE_INTEGER
18
25
  return Math.trunc(value);
19
26
  }
20
- // Copy is the Go builtin function that copies the contents of one slice to another.
21
- // It returns the number of elements copied.
22
- export function copy(dst, src) {
23
- // Handle string to Uint8Array copy (common in Go)
24
- if (typeof src === 'string' && dst instanceof Uint8Array) {
25
- const encoder = new TextEncoder();
26
- const srcBytes = encoder.encode(src);
27
- const n = Math.min(dst.length, srcBytes.length);
28
- for (let i = 0; i < n; i++) {
29
- dst[i] = srcBytes[i];
30
- }
31
- return n;
32
- }
33
- // Handle Uint8Array to Uint8Array copy
34
- if (dst instanceof Uint8Array && src instanceof Uint8Array) {
35
- const n = Math.min(dst.length, src.length);
36
- for (let i = 0; i < n; i++) {
37
- dst[i] = src[i];
38
- }
39
- return n;
40
- }
41
- // Handle array to array copy (original implementation)
42
- if (Array.isArray(dst) && Array.isArray(src)) {
43
- const n = Math.min(dst.length, src.length);
44
- for (let i = 0; i < n; i++) {
45
- dst[i] = src[i];
46
- }
47
- return n;
48
- }
49
- // Handle mixed types - convert to compatible format
50
- if (dst instanceof Uint8Array && Array.isArray(src)) {
51
- const n = Math.min(dst.length, src.length);
52
- for (let i = 0; i < n; i++) {
53
- dst[i] = src[i];
54
- }
55
- return n;
56
- }
57
- if (Array.isArray(dst) && src instanceof Uint8Array) {
58
- const n = Math.min(dst.length, src.length);
59
- for (let i = 0; i < n; i++) {
60
- dst[i] = src[i];
61
- }
62
- return n;
63
- }
64
- throw new Error(`Unsupported copy operation between ${typeof dst} and ${typeof src}`);
65
- }
66
27
  // Duration multiplication helper for time package operations
67
28
  // Handles expressions like time.Hour * 24
68
29
  export function multiplyDuration(duration, multiplier) {
@@ -356,6 +317,22 @@ export function min(a, b) {
356
317
  export function max(a, b) {
357
318
  return Math.max(a, b);
358
319
  }
320
+ /**
321
+ * Converts a rune (number) or string to a string.
322
+ * This is used to replace String.fromCharCode() in Go string(rune) conversions.
323
+ * Since sometimes single-char rune literals are compiled to strings, this function
324
+ * needs to handle both numbers (runes) and strings.
325
+ *
326
+ * @param runeOrString A rune (Unicode code point as number) or a string
327
+ * @returns The resulting string
328
+ */
329
+ export function runeOrStringToString(runeOrString) {
330
+ if (typeof runeOrString === 'string') {
331
+ return runeOrString;
332
+ }
333
+ // For numbers, use String.fromCharCode to convert the rune to a string
334
+ return String.fromCharCode(runeOrString);
335
+ }
359
336
  // Panic recovery function (simplified implementation)
360
337
  export function recover() {
361
338
  // In a real implementation, this would interact with Go's panic/recover mechanism
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Represents the Go error type (interface).
3
+ */
4
+ export type GoError = {
5
+ Error(): string;
6
+ } | null;
7
+ export declare function newError(text: string): GoError;
8
+ export declare function toGoError(err: Error): GoError;
@@ -0,0 +1,18 @@
1
+ // newError creates a new Go error with the given message
2
+ export function newError(text) {
3
+ return {
4
+ Error: () => text,
5
+ };
6
+ }
7
+ // toGoError converts a JavaScript Error to a Go error
8
+ // if the error is already a Go error, it returns it unchanged
9
+ export function toGoError(err) {
10
+ if ("Error" in err) {
11
+ return err;
12
+ }
13
+ return {
14
+ JsError: err,
15
+ Error: () => err.message,
16
+ };
17
+ }
18
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../gs/builtin/errors.ts"],"names":[],"mappings":"AAOA,yDAAyD;AACzD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAA;AACH,CAAC;AAED,sDAAsD;AACtD,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,GAAU;IAClC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,OAAO,GAAc,CAAA;IACvB,CAAC;IACD,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO;KACd,CAAA;AACd,CAAC"}
@@ -1 +1,8 @@
1
1
  export * from './builtin.js';
2
+ export * from './slice.js';
3
+ export * from './channel.js';
4
+ export * from './map.js';
5
+ export * from './type.js';
6
+ export * from './varRef.js';
7
+ export * from './defer.js';
8
+ export * from './errors.js';
@@ -1,2 +1,9 @@
1
1
  export * from './builtin.js';
2
+ export * from './slice.js';
3
+ export * from './channel.js';
4
+ export * from './map.js';
5
+ export * from './type.js';
6
+ export * from './varRef.js';
7
+ export * from './defer.js';
8
+ export * from './errors.js';
2
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -77,10 +77,13 @@ export declare function append<T>(slice: Slice<T>, ...elements: any[]): Slice<T>
77
77
  /**
78
78
  * Copies elements from src to dst.
79
79
  * @param dst The destination slice.
80
- * @param src The source slice.
80
+ * @param src The source slice or string.
81
81
  * @returns The number of elements copied.
82
82
  */
83
- export declare const copy: <T>(dst: Slice<T>, src: Slice<T>) => number;
83
+ export declare function copy(dst: Uint8Array, src: Uint8Array | string): number;
84
+ export declare function copy(dst: Uint8Array, src: Slice<number>): number;
85
+ export declare function copy<T>(dst: Slice<T>, src: Slice<T>): number;
86
+ export declare function copy<T>(dst: Slice<T>, src: string): number;
84
87
  /**
85
88
  * Accesses an element at a specific index for various Go-like types (string, slice, array).
86
89
  * Mimics Go's indexing behavior: `myCollection[index]`