goscript 0.0.40 → 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 (378) hide show
  1. package/compiler/compiler.go +1 -1
  2. package/compiler/expr-type.go +25 -0
  3. package/compiler/field.go +4 -4
  4. package/compiler/spec.go +1 -1
  5. package/compiler/type.go +19 -4
  6. package/dist/gs/builtin/builtin.d.ts +10 -8
  7. package/dist/gs/builtin/builtin.js +14 -53
  8. package/dist/gs/builtin/builtin.js.map +1 -1
  9. package/dist/gs/builtin/errors.d.ts +8 -0
  10. package/dist/gs/builtin/errors.js +18 -0
  11. package/dist/gs/builtin/errors.js.map +1 -0
  12. package/dist/gs/builtin/index.d.ts +7 -0
  13. package/dist/gs/builtin/index.js +7 -0
  14. package/dist/gs/builtin/index.js.map +1 -1
  15. package/dist/gs/builtin/slice.d.ts +5 -2
  16. package/dist/gs/builtin/slice.js +110 -77
  17. package/dist/gs/builtin/slice.js.map +1 -1
  18. package/dist/gs/bytes/buffer.gs.d.ts +1 -1
  19. package/dist/gs/bytes/buffer.gs.js +1 -1
  20. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  21. package/dist/gs/bytes/bytes.gs.d.ts +1 -1
  22. package/dist/gs/bytes/bytes.gs.js +1 -1
  23. package/dist/gs/bytes/bytes.gs.js.map +1 -1
  24. package/dist/gs/bytes/iter.gs.d.ts +1 -1
  25. package/dist/gs/bytes/iter.gs.js +1 -1
  26. package/dist/gs/bytes/iter.gs.js.map +1 -1
  27. package/dist/gs/bytes/reader.gs.d.ts +1 -1
  28. package/dist/gs/bytes/reader.gs.js +1 -1
  29. package/dist/gs/bytes/reader.gs.js.map +1 -1
  30. package/dist/gs/context/context.d.ts +1 -1
  31. package/dist/gs/context/context.js +1 -1
  32. package/dist/gs/context/context.js.map +1 -1
  33. package/dist/gs/errors/errors.d.ts +1 -1
  34. package/dist/gs/errors/errors.js +3 -15
  35. package/dist/gs/errors/errors.js.map +1 -1
  36. package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
  37. package/dist/gs/github.com/pkg/errors/errors.js +1 -1
  38. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  39. package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
  40. package/dist/gs/github.com/pkg/errors/go113.js +1 -1
  41. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
  42. package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
  43. package/dist/gs/github.com/pkg/errors/stack.js +1 -1
  44. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  45. package/dist/gs/internal/byteorder/index.d.ts +1 -1
  46. package/dist/gs/internal/byteorder/index.js +1 -1
  47. package/dist/gs/internal/byteorder/index.js.map +1 -1
  48. package/dist/gs/internal/oserror/errors.d.ts +1 -1
  49. package/dist/gs/io/fs/format.js +1 -1
  50. package/dist/gs/io/fs/format.js.map +1 -1
  51. package/dist/gs/io/fs/fs.d.ts +1 -1
  52. package/dist/gs/io/fs/fs.js +1 -1
  53. package/dist/gs/io/fs/fs.js.map +1 -1
  54. package/dist/gs/io/fs/glob.d.ts +1 -1
  55. package/dist/gs/io/fs/glob.js +1 -1
  56. package/dist/gs/io/fs/glob.js.map +1 -1
  57. package/dist/gs/io/fs/readdir.d.ts +1 -1
  58. package/dist/gs/io/fs/readdir.js +1 -1
  59. package/dist/gs/io/fs/readdir.js.map +1 -1
  60. package/dist/gs/io/fs/readfile.d.ts +1 -1
  61. package/dist/gs/io/fs/readfile.js +1 -1
  62. package/dist/gs/io/fs/readfile.js.map +1 -1
  63. package/dist/gs/io/fs/stat.d.ts +1 -1
  64. package/dist/gs/io/fs/stat.js +1 -1
  65. package/dist/gs/io/fs/stat.js.map +1 -1
  66. package/dist/gs/io/fs/sub.d.ts +1 -1
  67. package/dist/gs/io/fs/sub.js +1 -1
  68. package/dist/gs/io/fs/sub.js.map +1 -1
  69. package/dist/gs/io/fs/walk.d.ts +1 -1
  70. package/dist/gs/io/fs/walk.js +1 -1
  71. package/dist/gs/io/fs/walk.js.map +1 -1
  72. package/dist/gs/io/io.d.ts +1 -1
  73. package/dist/gs/maps/iter.d.ts +1 -1
  74. package/dist/gs/maps/iter.js +1 -1
  75. package/dist/gs/maps/iter.js.map +1 -1
  76. package/dist/gs/maps/maps.d.ts +1 -1
  77. package/dist/gs/maps/maps.js +1 -1
  78. package/dist/gs/maps/maps.js.map +1 -1
  79. package/dist/gs/math/erfinv.gs.js +1 -1
  80. package/dist/gs/math/erfinv.gs.js.map +1 -1
  81. package/dist/gs/math/gamma.gs.js +1 -1
  82. package/dist/gs/math/gamma.gs.js.map +1 -1
  83. package/dist/gs/math/j0.gs.js +1 -1
  84. package/dist/gs/math/j0.gs.js.map +1 -1
  85. package/dist/gs/math/j1.gs.js +1 -1
  86. package/dist/gs/math/j1.gs.js.map +1 -1
  87. package/dist/gs/math/lgamma.gs.js +1 -1
  88. package/dist/gs/math/lgamma.gs.js.map +1 -1
  89. package/dist/gs/math/pow10.gs.js +1 -1
  90. package/dist/gs/math/pow10.gs.js.map +1 -1
  91. package/dist/gs/math/sin.gs.js +1 -1
  92. package/dist/gs/math/sin.gs.js.map +1 -1
  93. package/dist/gs/math/tan.gs.js +1 -1
  94. package/dist/gs/math/tan.gs.js.map +1 -1
  95. package/dist/gs/math/tanh.gs.js +1 -1
  96. package/dist/gs/math/tanh.gs.js.map +1 -1
  97. package/dist/gs/math/trig_reduce.gs.js +1 -1
  98. package/dist/gs/math/trig_reduce.gs.js.map +1 -1
  99. package/dist/gs/os/dir.gs.d.ts +1 -1
  100. package/dist/gs/os/dir_unix.gs.d.ts +1 -1
  101. package/dist/gs/os/dir_unix.gs.js +1 -1
  102. package/dist/gs/os/dir_unix.gs.js.map +1 -1
  103. package/dist/gs/os/dirent_js.gs.d.ts +1 -1
  104. package/dist/gs/os/env.gs.d.ts +1 -1
  105. package/dist/gs/os/env.gs.js +1 -1
  106. package/dist/gs/os/env.gs.js.map +1 -1
  107. package/dist/gs/os/error.gs.d.ts +1 -1
  108. package/dist/gs/os/error.gs.js +1 -1
  109. package/dist/gs/os/error.gs.js.map +1 -1
  110. package/dist/gs/os/exec.gs.d.ts +1 -1
  111. package/dist/gs/os/exec.gs.js +1 -1
  112. package/dist/gs/os/exec.gs.js.map +1 -1
  113. package/dist/gs/os/exec_posix.gs.d.ts +1 -1
  114. package/dist/gs/os/exec_posix.gs.js +1 -1
  115. package/dist/gs/os/exec_posix.gs.js.map +1 -1
  116. package/dist/gs/os/exec_unix.gs.d.ts +1 -1
  117. package/dist/gs/os/executable.gs.d.ts +1 -1
  118. package/dist/gs/os/executable_js.gs.d.ts +1 -1
  119. package/dist/gs/os/executable_wasm.gs.d.ts +1 -1
  120. package/dist/gs/os/file_constants_js.gs.d.ts +1 -1
  121. package/dist/gs/os/file_constants_js.gs.js +1 -1
  122. package/dist/gs/os/file_constants_js.gs.js.map +1 -1
  123. package/dist/gs/os/file_js.gs.d.ts +1 -1
  124. package/dist/gs/os/file_open_unix.gs.d.ts +1 -1
  125. package/dist/gs/os/file_posix_js.gs.d.ts +1 -1
  126. package/dist/gs/os/file_unix_js.gs.d.ts +1 -1
  127. package/dist/gs/os/getwd_js.gs.d.ts +1 -1
  128. package/dist/gs/os/path.gs.d.ts +1 -1
  129. package/dist/gs/os/path.gs.js +1 -1
  130. package/dist/gs/os/path.gs.js.map +1 -1
  131. package/dist/gs/os/path_unix.gs.js +1 -1
  132. package/dist/gs/os/path_unix.gs.js.map +1 -1
  133. package/dist/gs/os/pidfd_js.gs.d.ts +1 -1
  134. package/dist/gs/os/pipe_wasm.gs.d.ts +1 -1
  135. package/dist/gs/os/proc.gs.d.ts +1 -1
  136. package/dist/gs/os/proc.gs.js +1 -1
  137. package/dist/gs/os/proc.gs.js.map +1 -1
  138. package/dist/gs/os/proc_js.gs.d.ts +1 -1
  139. package/dist/gs/os/proc_js.gs.js +1 -1
  140. package/dist/gs/os/proc_js.gs.js.map +1 -1
  141. package/dist/gs/os/rawconn_js.gs.d.ts +1 -1
  142. package/dist/gs/os/removeall_js.gs.d.ts +1 -1
  143. package/dist/gs/os/root_js.gs.d.ts +1 -1
  144. package/dist/gs/os/root_js.gs.js +1 -1
  145. package/dist/gs/os/root_js.gs.js.map +1 -1
  146. package/dist/gs/os/root_nonwindows.gs.d.ts +1 -1
  147. package/dist/gs/os/root_noopenat.gs.d.ts +1 -1
  148. package/dist/gs/os/stat.gs.d.ts +1 -1
  149. package/dist/gs/os/stat_js.gs.d.ts +1 -1
  150. package/dist/gs/os/stat_unix_js.gs.d.ts +1 -1
  151. package/dist/gs/os/sys.gs.d.ts +1 -1
  152. package/dist/gs/os/sys_bsd.gs.d.ts +1 -1
  153. package/dist/gs/os/sys_js.gs.d.ts +1 -1
  154. package/dist/gs/os/tempfile.gs.d.ts +1 -1
  155. package/dist/gs/os/types.gs.d.ts +1 -1
  156. package/dist/gs/os/types.gs.js +1 -1
  157. package/dist/gs/os/types.gs.js.map +1 -1
  158. package/dist/gs/os/types_js.gs.d.ts +1 -1
  159. package/dist/gs/os/types_js.gs.js +1 -1
  160. package/dist/gs/os/types_js.gs.js.map +1 -1
  161. package/dist/gs/os/types_unix.gs.d.ts +1 -1
  162. package/dist/gs/os/types_unix.gs.js +1 -1
  163. package/dist/gs/os/types_unix.gs.js.map +1 -1
  164. package/dist/gs/os/zero_copy_posix.gs.d.ts +1 -1
  165. package/dist/gs/os/zero_copy_posix.gs.js +1 -1
  166. package/dist/gs/os/zero_copy_posix.gs.js.map +1 -1
  167. package/dist/gs/path/filepath/path.d.ts +11 -10
  168. package/dist/gs/path/filepath/path.js +5 -4
  169. package/dist/gs/path/filepath/path.js.map +1 -1
  170. package/dist/gs/path/match.d.ts +1 -1
  171. package/dist/gs/path/match.js +1 -1
  172. package/dist/gs/path/match.js.map +1 -1
  173. package/dist/gs/path/path.js +1 -1
  174. package/dist/gs/path/path.js.map +1 -1
  175. package/dist/gs/reflect/value.d.ts +1 -1
  176. package/dist/gs/reflect/value.js +1 -1
  177. package/dist/gs/reflect/value.js.map +1 -1
  178. package/dist/gs/reflect/visiblefields.d.ts +1 -1
  179. package/dist/gs/reflect/visiblefields.js +1 -1
  180. package/dist/gs/reflect/visiblefields.js.map +1 -1
  181. package/dist/gs/slices/slices.d.ts +1 -1
  182. package/dist/gs/slices/slices.js +1 -1
  183. package/dist/gs/slices/slices.js.map +1 -1
  184. package/dist/gs/sort/search.gs.d.ts +1 -1
  185. package/dist/gs/sort/search.gs.js +1 -1
  186. package/dist/gs/sort/search.gs.js.map +1 -1
  187. package/dist/gs/sort/slice.gs.d.ts +1 -1
  188. package/dist/gs/sort/slice.gs.js +1 -1
  189. package/dist/gs/sort/slice.gs.js.map +1 -1
  190. package/dist/gs/sort/sort.gs.d.ts +1 -1
  191. package/dist/gs/sort/sort.gs.js +1 -1
  192. package/dist/gs/sort/sort.gs.js.map +1 -1
  193. package/dist/gs/strconv/atob.gs.d.ts +1 -1
  194. package/dist/gs/strconv/atob.gs.js +1 -1
  195. package/dist/gs/strconv/atob.gs.js.map +1 -1
  196. package/dist/gs/strconv/atof.gs.d.ts +1 -1
  197. package/dist/gs/strconv/atoi.gs.d.ts +1 -1
  198. package/dist/gs/strconv/atoi.gs.js +5 -6
  199. package/dist/gs/strconv/atoi.gs.js.map +1 -1
  200. package/dist/gs/strconv/ftoa.gs.d.ts +1 -1
  201. package/dist/gs/strconv/ftoa.gs.js +1 -1
  202. package/dist/gs/strconv/ftoa.gs.js.map +1 -1
  203. package/dist/gs/strconv/itoa.gs.d.ts +1 -1
  204. package/dist/gs/strconv/itoa.gs.js +1 -1
  205. package/dist/gs/strconv/itoa.gs.js.map +1 -1
  206. package/dist/gs/strconv/quote.gs.d.ts +1 -1
  207. package/dist/gs/strconv/quote.gs.js +1 -1
  208. package/dist/gs/strconv/quote.gs.js.map +1 -1
  209. package/dist/gs/strings/builder.d.ts +1 -1
  210. package/dist/gs/strings/builder.js +1 -1
  211. package/dist/gs/strings/builder.js.map +1 -1
  212. package/dist/gs/strings/iter.js +1 -1
  213. package/dist/gs/strings/iter.js.map +1 -1
  214. package/dist/gs/strings/reader.d.ts +1 -1
  215. package/dist/gs/strings/reader.js +7 -8
  216. package/dist/gs/strings/reader.js.map +1 -1
  217. package/dist/gs/strings/replace.d.ts +1 -1
  218. package/dist/gs/strings/replace.js +1 -1
  219. package/dist/gs/strings/replace.js.map +1 -1
  220. package/dist/gs/strings/strings.d.ts +1 -1
  221. package/dist/gs/strings/strings.js +1 -1
  222. package/dist/gs/strings/strings.js.map +1 -1
  223. package/dist/gs/sync/atomic/doc.gs.d.ts +1 -1
  224. package/dist/gs/sync/atomic/doc_64.gs.d.ts +1 -1
  225. package/dist/gs/sync/atomic/type.gs.d.ts +1 -1
  226. package/dist/gs/sync/atomic/type.gs.js +1 -1
  227. package/dist/gs/sync/atomic/type.gs.js.map +1 -1
  228. package/dist/gs/sync/atomic/value.gs.d.ts +1 -1
  229. package/dist/gs/sync/atomic/value.gs.js +1 -1
  230. package/dist/gs/sync/atomic/value.gs.js.map +1 -1
  231. package/dist/gs/syscall/index.d.ts +1 -1
  232. package/dist/gs/syscall/index.js +1 -1
  233. package/dist/gs/syscall/index.js.map +1 -1
  234. package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
  235. package/dist/gs/unicode/utf8/utf8.js +1 -1
  236. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  237. package/gs/builtin/builtin.ts +16 -64
  238. package/gs/builtin/errors.ts +25 -0
  239. package/gs/builtin/index.ts +7 -0
  240. package/gs/builtin/slice.ts +125 -70
  241. package/gs/bytes/buffer.gs.ts +1 -1
  242. package/gs/bytes/bytes.gs.ts +1 -1
  243. package/gs/bytes/iter.gs.ts +1 -1
  244. package/gs/bytes/reader.gs.ts +1 -1
  245. package/gs/context/context.ts +1 -1
  246. package/gs/errors/errors.ts +3 -16
  247. package/gs/github.com/pkg/errors/errors.ts +1 -1
  248. package/gs/github.com/pkg/errors/go113.ts +2 -2
  249. package/gs/github.com/pkg/errors/stack.ts +1 -1
  250. package/gs/internal/byteorder/index.ts +1 -1
  251. package/gs/internal/oserror/errors.ts +1 -1
  252. package/gs/io/fs/format.ts +1 -1
  253. package/gs/io/fs/fs.ts +1 -1
  254. package/gs/io/fs/glob.ts +1 -1
  255. package/gs/io/fs/readdir.ts +1 -1
  256. package/gs/io/fs/readfile.ts +1 -1
  257. package/gs/io/fs/stat.ts +1 -1
  258. package/gs/io/fs/sub.ts +1 -1
  259. package/gs/io/fs/walk.ts +1 -1
  260. package/gs/io/io.ts +1 -1
  261. package/gs/maps/iter.ts +1 -1
  262. package/gs/maps/maps.ts +1 -1
  263. package/gs/math/abs.gs.ts +1 -1
  264. package/gs/math/acosh.gs.ts +1 -1
  265. package/gs/math/asinh.gs.ts +1 -1
  266. package/gs/math/atan.gs.ts +1 -1
  267. package/gs/math/atan2.gs.ts +1 -1
  268. package/gs/math/atanh.gs.ts +1 -1
  269. package/gs/math/bits.gs.ts +1 -1
  270. package/gs/math/cbrt.gs.ts +1 -1
  271. package/gs/math/const.gs.ts +1 -1
  272. package/gs/math/copysign.gs.ts +1 -1
  273. package/gs/math/dim.gs.ts +1 -1
  274. package/gs/math/erf.gs.ts +1 -1
  275. package/gs/math/erfinv.gs.ts +1 -1
  276. package/gs/math/exp.gs.ts +1 -1
  277. package/gs/math/expm1.gs.ts +1 -1
  278. package/gs/math/floor.gs.ts +1 -1
  279. package/gs/math/frexp.gs.ts +1 -1
  280. package/gs/math/gamma.gs.ts +1 -1
  281. package/gs/math/hypot.gs.ts +1 -1
  282. package/gs/math/j0.gs.ts +1 -1
  283. package/gs/math/j1.gs.ts +1 -1
  284. package/gs/math/jn.gs.ts +1 -1
  285. package/gs/math/ldexp.gs.ts +1 -1
  286. package/gs/math/lgamma.gs.ts +1 -1
  287. package/gs/math/log.gs.ts +1 -1
  288. package/gs/math/log10.gs.ts +1 -1
  289. package/gs/math/log1p.gs.ts +1 -1
  290. package/gs/math/logb.gs.ts +1 -1
  291. package/gs/math/mod.gs.ts +1 -1
  292. package/gs/math/modf.gs.ts +1 -1
  293. package/gs/math/nextafter.gs.ts +1 -1
  294. package/gs/math/pow.gs.ts +1 -1
  295. package/gs/math/pow10.gs.ts +1 -1
  296. package/gs/math/remainder.gs.ts +1 -1
  297. package/gs/math/signbit.gs.ts +1 -1
  298. package/gs/math/sin.gs.ts +1 -1
  299. package/gs/math/sincos.gs.ts +1 -1
  300. package/gs/math/sinh.gs.ts +1 -1
  301. package/gs/math/sqrt.gs.ts +1 -1
  302. package/gs/math/tan.gs.ts +1 -1
  303. package/gs/math/tanh.gs.ts +1 -1
  304. package/gs/math/trig_reduce.gs.ts +1 -1
  305. package/gs/math/unsafe.gs.ts +1 -1
  306. package/gs/os/dir.gs.ts +1 -1
  307. package/gs/os/dir_unix.gs.ts +1 -1
  308. package/gs/os/dirent_js.gs.ts +1 -1
  309. package/gs/os/env.gs.ts +1 -1
  310. package/gs/os/error.gs.ts +1 -1
  311. package/gs/os/error_errno.gs.ts +1 -1
  312. package/gs/os/exec.gs.ts +1 -1
  313. package/gs/os/exec_nohandle.gs.ts +1 -1
  314. package/gs/os/exec_posix.gs.ts +1 -1
  315. package/gs/os/exec_unix.gs.ts +1 -1
  316. package/gs/os/executable.gs.ts +1 -1
  317. package/gs/os/executable_js.gs.ts +1 -1
  318. package/gs/os/executable_wasm.gs.ts +1 -1
  319. package/gs/os/file_constants_js.gs.ts +1 -1
  320. package/gs/os/file_js.gs.ts +1 -1
  321. package/gs/os/file_open_unix.gs.ts +1 -1
  322. package/gs/os/file_posix_js.gs.ts +1 -1
  323. package/gs/os/file_unix_js.gs.ts +1 -1
  324. package/gs/os/getwd_js.gs.ts +1 -1
  325. package/gs/os/path.gs.ts +1 -1
  326. package/gs/os/path_unix.gs.ts +1 -1
  327. package/gs/os/pidfd_js.gs.ts +1 -1
  328. package/gs/os/pipe_wasm.gs.ts +1 -1
  329. package/gs/os/proc.gs.ts +1 -1
  330. package/gs/os/proc_js.gs.ts +1 -1
  331. package/gs/os/rawconn_js.gs.ts +1 -1
  332. package/gs/os/removeall_js.gs.ts +1 -1
  333. package/gs/os/root_js.gs.ts +1 -1
  334. package/gs/os/root_nonwindows.gs.ts +1 -1
  335. package/gs/os/root_noopenat.gs.ts +1 -1
  336. package/gs/os/stat.gs.ts +1 -1
  337. package/gs/os/stat_js.gs.ts +1 -1
  338. package/gs/os/stat_unix_js.gs.ts +1 -1
  339. package/gs/os/sticky_bsd.gs.ts +1 -1
  340. package/gs/os/sys.gs.ts +1 -1
  341. package/gs/os/sys_bsd.gs.ts +1 -1
  342. package/gs/os/sys_js.gs.ts +1 -1
  343. package/gs/os/tempfile.gs.ts +1 -1
  344. package/gs/os/types.gs.ts +1 -1
  345. package/gs/os/types_js.gs.ts +1 -1
  346. package/gs/os/types_unix.gs.ts +1 -1
  347. package/gs/os/wait_unimp.gs.ts +1 -1
  348. package/gs/os/zero_copy_posix.gs.ts +1 -1
  349. package/gs/os/zero_copy_stub.gs.ts +1 -1
  350. package/gs/path/filepath/path.ts +14 -13
  351. package/gs/path/match.ts +1 -1
  352. package/gs/path/path.ts +1 -1
  353. package/gs/reflect/value.ts +1 -1
  354. package/gs/reflect/visiblefields.ts +1 -1
  355. package/gs/slices/slices.ts +1 -1
  356. package/gs/sort/search.gs.ts +1 -1
  357. package/gs/sort/slice.gs.ts +1 -1
  358. package/gs/sort/sort.gs.ts +1 -1
  359. package/gs/strconv/atob.gs.ts +1 -1
  360. package/gs/strconv/atof.gs.ts +1 -1
  361. package/gs/strconv/atoi.gs.ts +5 -6
  362. package/gs/strconv/doc.gs.ts +1 -1
  363. package/gs/strconv/ftoa.gs.ts +1 -1
  364. package/gs/strconv/itoa.gs.ts +1 -1
  365. package/gs/strconv/quote.gs.ts +1 -1
  366. package/gs/strings/builder.ts +1 -1
  367. package/gs/strings/iter.ts +1 -1
  368. package/gs/strings/reader.ts +7 -9
  369. package/gs/strings/replace.ts +1 -1
  370. package/gs/strings/strings.ts +1 -1
  371. package/gs/sync/atomic/doc.gs.ts +1 -1
  372. package/gs/sync/atomic/doc_64.gs.ts +1 -1
  373. package/gs/sync/atomic/type.gs.ts +1 -1
  374. package/gs/sync/atomic/value.gs.ts +1 -1
  375. package/gs/syscall/index.ts +1 -1
  376. package/gs/unicode/utf8/utf8.ts +1 -1
  377. package/package.json +3 -3
  378. package/gs/builtin/io.ts +0 -22
@@ -593,7 +593,7 @@ func (c *FileCompiler) Compile(ctx context.Context) error {
593
593
  goWriter := NewGoToTSCompiler(c.codeWriter, c.pkg, c.Analysis)
594
594
 
595
595
  // Add import for the goscript runtime using namespace import and alias
596
- c.codeWriter.WriteLinef("import * as $ from %q;", "@goscript/builtin/builtin.js")
596
+ c.codeWriter.WriteLinef("import * as $ from %q;", "@goscript/builtin/index.js")
597
597
 
598
598
  // Check if there are any .pb.go files in this package and add imports for them
599
599
  if err := c.addProtobufImports(); err != nil {
@@ -20,6 +20,31 @@ import (
20
20
  // - Interface types -> TypeScript interface types or "any"
21
21
  // - Function types -> TypeScript function signatures
22
22
  func (c *GoToTSCompiler) WriteTypeExpr(a ast.Expr) {
23
+ // Handle selector expressions (e.g., os.FileInfo) specially to preserve qualified names
24
+ if selectorExpr, ok := a.(*ast.SelectorExpr); ok {
25
+ if pkgIdent, ok := selectorExpr.X.(*ast.Ident); ok {
26
+ // Check if this is a package selector (e.g., os.FileInfo)
27
+ if obj := c.pkg.TypesInfo.Uses[pkgIdent]; obj != nil {
28
+ if _, isPkg := obj.(*types.PkgName); isPkg {
29
+ // This is a package.Type reference - write the qualified name
30
+ c.tsw.WriteLiterally(pkgIdent.Name)
31
+ c.tsw.WriteLiterally(".")
32
+ c.tsw.WriteLiterally(selectorExpr.Sel.Name)
33
+
34
+ // Check if this is a function type and add | null
35
+ if typ := c.pkg.TypesInfo.TypeOf(a); typ != nil {
36
+ if namedType, isNamed := typ.(*types.Named); isNamed {
37
+ if _, isSignature := namedType.Underlying().(*types.Signature); isSignature {
38
+ c.tsw.WriteLiterally(" | null")
39
+ }
40
+ }
41
+ }
42
+ return
43
+ }
44
+ }
45
+ }
46
+ }
47
+
23
48
  // Get type information for the expression and use WriteGoType
24
49
  typ := c.pkg.TypesInfo.TypeOf(a)
25
50
  c.WriteGoType(typ, GoTypeContextGeneral)
package/compiler/field.go CHANGED
@@ -52,8 +52,8 @@ func (c *GoToTSCompiler) WriteFieldList(a *ast.FieldList, isArguments bool) {
52
52
  }
53
53
  c.tsw.WriteLiterally(c.sanitizeIdentifier(name.Name))
54
54
  c.tsw.WriteLiterally(": ")
55
- typ := c.pkg.TypesInfo.TypeOf(field.Type)
56
- c.WriteGoType(typ, GoTypeContextGeneral)
55
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
56
+ c.WriteTypeExpr(field.Type)
57
57
  }
58
58
  }
59
59
 
@@ -102,8 +102,8 @@ func (c *GoToTSCompiler) WriteFieldList(a *ast.FieldList, isArguments bool) {
102
102
  }
103
103
  c.tsw.WriteLiterally(c.sanitizeIdentifier(name.Name))
104
104
  c.tsw.WriteLiterally(": ")
105
- typ := c.pkg.TypesInfo.TypeOf(field.Type)
106
- c.WriteGoType(typ, GoTypeContextGeneral) // Use WriteGoType for parameter type
105
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
106
+ c.WriteTypeExpr(field.Type)
107
107
  }
108
108
  } else {
109
109
  // For struct fields and other non-argument fields
package/compiler/spec.go CHANGED
@@ -539,7 +539,7 @@ func (c *GoToTSCompiler) WriteImportSpec(a *ast.ImportSpec) {
539
539
  // handwritten versions (in .goscript-assets) or transpiled versions (in goscript).
540
540
  var tsImportPath string
541
541
  if goPath == "github.com/aperturerobotics/goscript/builtin" {
542
- tsImportPath = "@goscript/builtin/builtin.js"
542
+ tsImportPath = "@goscript/builtin/index.js"
543
543
  } else {
544
544
  tsImportPath = "@goscript/" + goPath
545
545
  }
package/compiler/type.go CHANGED
@@ -259,6 +259,11 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
259
259
  }
260
260
  c.tsw.WriteLiterally(">")
261
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
+ }
262
267
  return
263
268
  }
264
269
 
@@ -282,6 +287,11 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
282
287
  }
283
288
  c.tsw.WriteLiterally(">")
284
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
+ }
285
295
  return
286
296
  }
287
297
  }
@@ -301,6 +311,11 @@ func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
301
311
  }
302
312
  c.tsw.WriteLiterally(">")
303
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
+ }
304
319
  }
305
320
 
306
321
  // WritePointerType translates a Go pointer type (*T) to its TypeScript equivalent.
@@ -400,8 +415,8 @@ func (c *GoToTSCompiler) WriteFuncType(exp *ast.FuncType, isAsync bool) {
400
415
  }
401
416
  if len(exp.Results.List) == 1 {
402
417
  // Single return type (named or unnamed)
403
- typ := c.pkg.TypesInfo.TypeOf(exp.Results.List[0].Type)
404
- c.WriteGoType(typ, GoTypeContextFunctionReturn)
418
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
419
+ c.WriteTypeExpr(exp.Results.List[0].Type)
405
420
  } else {
406
421
  // Multiple return types -> tuple
407
422
  c.tsw.WriteLiterally("[")
@@ -409,8 +424,8 @@ func (c *GoToTSCompiler) WriteFuncType(exp *ast.FuncType, isAsync bool) {
409
424
  if i > 0 {
410
425
  c.tsw.WriteLiterally(", ")
411
426
  }
412
- typ := c.pkg.TypesInfo.TypeOf(field.Type)
413
- c.WriteGoType(typ, GoTypeContextFunctionReturn)
427
+ // Use WriteTypeExpr to preserve qualified names like os.FileInfo
428
+ c.WriteTypeExpr(field.Type)
414
429
  }
415
430
  c.tsw.WriteLiterally("]")
416
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.
@@ -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) {
@@ -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]`
@@ -612,108 +612,141 @@ export function append(slice, ...elements) {
612
612
  };
613
613
  return resultProxy;
614
614
  }
615
- /**
616
- * Copies elements from src to dst.
617
- * @param dst The destination slice.
618
- * @param src The source slice.
619
- * @returns The number of elements copied.
620
- */
621
- export const copy = (dst, src) => {
622
- if (dst === null || src === null) {
615
+ export function copy(dst, src) {
616
+ if (dst === null) {
617
+ return 0;
618
+ }
619
+ // Handle string source first
620
+ if (typeof src === 'string') {
621
+ return copyFromString(dst, src);
622
+ }
623
+ if (src === null) {
623
624
  return 0;
624
625
  }
625
- const dstLen = len(dst);
626
- const srcLen = len(src);
626
+ // Now we know src is Slice<T> | Uint8Array
627
+ const dstLen = dst instanceof Uint8Array ? dst.length : len(dst);
628
+ const srcLen = src instanceof Uint8Array ? src.length : len(src);
627
629
  const count = Math.min(dstLen, srcLen);
628
630
  if (count === 0) {
629
631
  return 0;
630
632
  }
631
- const isDstUint8Array = dst instanceof Uint8Array;
632
- const isSrcUint8Array = src instanceof Uint8Array;
633
- if (isDstUint8Array && isSrcUint8Array) {
634
- ;
633
+ // Handle all combinations of dst and src types
634
+ if (dst instanceof Uint8Array && src instanceof Uint8Array) {
635
+ // Uint8Array to Uint8Array
635
636
  dst.set(src.subarray(0, count));
637
+ return count;
638
+ }
639
+ if (dst instanceof Uint8Array) {
640
+ // Uint8Array destination, Slice<number> source
641
+ return copyToUint8Array(dst, src, count);
642
+ }
643
+ if (src instanceof Uint8Array) {
644
+ // Slice<T> destination, Uint8Array source
645
+ return copyFromUint8Array(dst, src, count);
646
+ }
647
+ // Both are Slice<T>
648
+ return copyBetweenSlices(dst, src, count);
649
+ }
650
+ /**
651
+ * Helper: Copy from string to any destination type
652
+ */
653
+ function copyFromString(dst, src) {
654
+ const encoder = new TextEncoder();
655
+ const srcBytes = encoder.encode(src);
656
+ const dstLen = dst instanceof Uint8Array ? dst.length : len(dst);
657
+ const count = Math.min(dstLen, srcBytes.length);
658
+ if (count === 0) {
659
+ return 0;
660
+ }
661
+ if (dst instanceof Uint8Array) {
662
+ for (let i = 0; i < count; i++) {
663
+ dst[i] = srcBytes[i];
664
+ }
665
+ }
666
+ else if (isComplexSlice(dst)) {
667
+ const dstMeta = dst.__meta__;
668
+ for (let i = 0; i < count; i++) {
669
+ dstMeta.backing[dstMeta.offset + i] = srcBytes[i];
670
+ dst[i] = srcBytes[i];
671
+ }
672
+ }
673
+ else if (Array.isArray(dst)) {
674
+ for (let i = 0; i < count; i++) {
675
+ dst[i] = srcBytes[i];
676
+ }
677
+ }
678
+ return count;
679
+ }
680
+ /**
681
+ * Helper: Copy from Slice<number> to Uint8Array
682
+ */
683
+ function copyToUint8Array(dst, src, count) {
684
+ if (isComplexSlice(src)) {
685
+ const srcMeta = src.__meta__;
686
+ for (let i = 0; i < count; i++) {
687
+ dst[i] = srcMeta.backing[srcMeta.offset + i];
688
+ }
689
+ }
690
+ else if (Array.isArray(src)) {
691
+ for (let i = 0; i < count; i++) {
692
+ dst[i] = src[i];
693
+ }
694
+ }
695
+ return count;
696
+ }
697
+ /**
698
+ * Helper: Copy from Uint8Array to Slice<T>
699
+ */
700
+ function copyFromUint8Array(dst, src, count) {
701
+ if (isComplexSlice(dst)) {
702
+ const dstMeta = dst.__meta__;
703
+ for (let i = 0; i < count; i++) {
704
+ dstMeta.backing[dstMeta.offset + i] = src[i];
705
+ dst[i] = src[i];
706
+ }
707
+ }
708
+ else if (Array.isArray(dst)) {
709
+ for (let i = 0; i < count; i++) {
710
+ dst[i] = src[i];
711
+ }
636
712
  }
637
- else if (isDstUint8Array) {
638
- // dst is Uint8Array, src is Slice<number> or number[]
639
- const dstUint8 = dst;
713
+ return count;
714
+ }
715
+ /**
716
+ * Helper: Copy between two Slice<T> instances
717
+ */
718
+ function copyBetweenSlices(dst, src, count) {
719
+ if (isComplexSlice(dst)) {
720
+ const dstMeta = dst.__meta__;
640
721
  if (isComplexSlice(src)) {
641
722
  const srcMeta = src.__meta__;
642
723
  for (let i = 0; i < count; i++) {
643
- dstUint8[i] = srcMeta.backing[srcMeta.offset + i];
724
+ dstMeta.backing[dstMeta.offset + i] = srcMeta.backing[srcMeta.offset + i];
725
+ dst[i] = srcMeta.backing[srcMeta.offset + i];
644
726
  }
645
727
  }
646
- else {
647
- // src is number[]
648
- const srcArray = src;
728
+ else if (Array.isArray(src)) {
649
729
  for (let i = 0; i < count; i++) {
650
- dstUint8[i] = srcArray[i];
730
+ dstMeta.backing[dstMeta.offset + i] = src[i];
731
+ dst[i] = src[i];
651
732
  }
652
733
  }
653
734
  }
654
- else if (isSrcUint8Array) {
655
- // src is Uint8Array, dst is Slice<number> or number[]
656
- const srcUint8 = src;
657
- if (isComplexSlice(dst)) {
658
- const dstMeta = dst.__meta__;
659
- const dstBacking = dstMeta.backing;
660
- const dstOffset = dstMeta.offset;
735
+ else if (Array.isArray(dst)) {
736
+ if (isComplexSlice(src)) {
737
+ const srcMeta = src.__meta__;
661
738
  for (let i = 0; i < count; i++) {
662
- dstBacking[dstOffset + i] = srcUint8[i];
663
- dst[i] = srcUint8[i];
739
+ dst[i] = srcMeta.backing[srcMeta.offset + i];
664
740
  }
665
741
  }
666
- else {
667
- // dst is number[]
668
- const dstArray = dst;
742
+ else if (Array.isArray(src)) {
669
743
  for (let i = 0; i < count; i++) {
670
- dstArray[i] = srcUint8[i];
671
- }
672
- }
673
- }
674
- else {
675
- // Both are Slice<T> or T[] (original logic)
676
- if (isComplexSlice(dst)) {
677
- const dstOffset = dst.__meta__.offset;
678
- const dstBacking = dst.__meta__.backing;
679
- if (isComplexSlice(src)) {
680
- const srcOffset = src.__meta__.offset;
681
- const srcBacking = src.__meta__.backing;
682
- for (let i = 0; i < count; i++) {
683
- dstBacking[dstOffset + i] = srcBacking[srcOffset + i];
684
- dst[i] = srcBacking[srcOffset + i]; // Update proxy
685
- }
686
- }
687
- else {
688
- // src is T[]
689
- const srcArray = src;
690
- for (let i = 0; i < count; i++) {
691
- dstBacking[dstOffset + i] = srcArray[i];
692
- dst[i] = srcArray[i]; // Update proxy
693
- }
694
- }
695
- }
696
- else {
697
- // dst is T[]
698
- const dstArray = dst;
699
- if (isComplexSlice(src)) {
700
- const srcOffset = src.__meta__.offset;
701
- const srcBacking = src.__meta__.backing;
702
- for (let i = 0; i < count; i++) {
703
- dstArray[i] = srcBacking[srcOffset + i];
704
- }
705
- }
706
- else {
707
- // src is T[]
708
- const srcArray = src;
709
- for (let i = 0; i < count; i++) {
710
- dstArray[i] = srcArray[i];
711
- }
744
+ dst[i] = src[i];
712
745
  }
713
746
  }
714
747
  }
715
748
  return count;
716
- };
749
+ }
717
750
  /**
718
751
  * Accesses an element at a specific index for various Go-like types (string, slice, array).
719
752
  * Mimics Go's indexing behavior: `myCollection[index]`