goscript 0.0.36 → 0.0.38

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 (376) hide show
  1. package/compiler/analysis.go +129 -8
  2. package/compiler/compiler.go +4 -1
  3. package/compiler/composite-lit.go +2 -4
  4. package/compiler/expr-call.go +26 -0
  5. package/compiler/lit.go +83 -0
  6. package/compiler/protobuf.go +2 -2
  7. package/compiler/spec-value.go +3 -3
  8. package/compiler/spec.go +7 -4
  9. package/compiler/stmt-assign.go +1 -1
  10. package/compiler/stmt.go +26 -8
  11. package/dist/gs/builtin/slice.js +2 -1
  12. package/dist/gs/builtin/slice.js.map +1 -1
  13. package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
  14. package/dist/gs/github.com/pkg/errors/errors.js +182 -23
  15. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  16. package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
  17. package/dist/gs/github.com/pkg/errors/go113.js +1 -1
  18. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
  19. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -3
  20. package/dist/gs/github.com/pkg/errors/index.js +3 -3
  21. package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
  22. package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
  23. package/dist/gs/github.com/pkg/errors/stack.js +8 -5
  24. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  25. package/dist/gs/internal/abi/index.d.ts +20 -0
  26. package/dist/gs/internal/abi/index.js +20 -0
  27. package/dist/gs/internal/abi/index.js.map +1 -0
  28. package/dist/gs/internal/bytealg/index.d.ts +2 -0
  29. package/dist/gs/internal/bytealg/index.js +33 -0
  30. package/dist/gs/internal/bytealg/index.js.map +1 -0
  31. package/dist/gs/internal/byteorder/index.d.ts +8 -0
  32. package/dist/gs/internal/byteorder/index.js +34 -0
  33. package/dist/gs/internal/byteorder/index.js.map +1 -0
  34. package/dist/gs/internal/testlog/index.d.ts +1 -0
  35. package/dist/gs/internal/testlog/index.js +5 -0
  36. package/dist/gs/internal/testlog/index.js.map +1 -0
  37. package/dist/gs/math/index.d.ts +44 -44
  38. package/dist/gs/math/index.js +44 -44
  39. package/dist/gs/math/index.js.map +1 -1
  40. package/dist/gs/os/dir.gs.d.ts +6 -0
  41. package/dist/gs/os/dir.gs.js +35 -0
  42. package/dist/gs/os/dir.gs.js.map +1 -0
  43. package/dist/gs/os/dir_unix.gs.d.ts +7 -0
  44. package/dist/gs/os/dir_unix.gs.js +113 -0
  45. package/dist/gs/os/dir_unix.gs.js.map +1 -0
  46. package/dist/gs/os/dirent_js.gs.d.ts +5 -0
  47. package/dist/gs/os/dirent_js.gs.js +20 -0
  48. package/dist/gs/os/dirent_js.gs.js.map +1 -0
  49. package/dist/gs/os/env.gs.d.ts +12 -0
  50. package/dist/gs/os/env.gs.js +157 -0
  51. package/dist/gs/os/env.gs.js.map +1 -0
  52. package/dist/gs/os/error.gs.d.ts +40 -0
  53. package/dist/gs/os/error.gs.js +158 -0
  54. package/dist/gs/os/error.gs.js.map +1 -0
  55. package/dist/gs/os/error_errno.gs.d.ts +1 -0
  56. package/dist/gs/os/error_errno.gs.js +5 -0
  57. package/dist/gs/os/error_errno.gs.js.map +1 -0
  58. package/dist/gs/os/exec.gs.d.ts +60 -0
  59. package/dist/gs/os/exec.gs.js +136 -0
  60. package/dist/gs/os/exec.gs.js.map +1 -0
  61. package/dist/gs/os/exec_nohandle.gs.d.ts +1 -0
  62. package/dist/gs/os/exec_nohandle.gs.js +2 -0
  63. package/dist/gs/os/exec_nohandle.gs.js.map +1 -0
  64. package/dist/gs/os/exec_posix.gs.d.ts +25 -0
  65. package/dist/gs/os/exec_posix.gs.js +67 -0
  66. package/dist/gs/os/exec_posix.gs.js.map +1 -0
  67. package/dist/gs/os/exec_unix.gs.d.ts +4 -0
  68. package/dist/gs/os/exec_unix.gs.js +46 -0
  69. package/dist/gs/os/exec_unix.gs.js.map +1 -0
  70. package/dist/gs/os/executable.gs.d.ts +2 -0
  71. package/dist/gs/os/executable.gs.js +16 -0
  72. package/dist/gs/os/executable.gs.js.map +1 -0
  73. package/dist/gs/os/executable_js.gs.d.ts +2 -0
  74. package/dist/gs/os/executable_js.gs.js +5 -0
  75. package/dist/gs/os/executable_js.gs.js.map +1 -0
  76. package/dist/gs/os/executable_wasm.gs.d.ts +2 -0
  77. package/dist/gs/os/executable_wasm.gs.js +6 -0
  78. package/dist/gs/os/executable_wasm.gs.js.map +1 -0
  79. package/dist/gs/os/file_constants_js.gs.d.ts +41 -0
  80. package/dist/gs/os/file_constants_js.gs.js +78 -0
  81. package/dist/gs/os/file_constants_js.gs.js.map +1 -0
  82. package/dist/gs/os/file_js.gs.d.ts +22 -0
  83. package/dist/gs/os/file_js.gs.js +73 -0
  84. package/dist/gs/os/file_js.gs.js.map +1 -0
  85. package/dist/gs/os/file_open_unix.gs.d.ts +6 -0
  86. package/dist/gs/os/file_open_unix.gs.js +10 -0
  87. package/dist/gs/os/file_open_unix.gs.js.map +1 -0
  88. package/dist/gs/os/file_posix_js.gs.d.ts +8 -0
  89. package/dist/gs/os/file_posix_js.gs.js +32 -0
  90. package/dist/gs/os/file_posix_js.gs.js.map +1 -0
  91. package/dist/gs/os/file_unix_js.gs.d.ts +27 -0
  92. package/dist/gs/os/file_unix_js.gs.js +64 -0
  93. package/dist/gs/os/file_unix_js.gs.js.map +1 -0
  94. package/dist/gs/os/getwd_js.gs.d.ts +6 -0
  95. package/dist/gs/os/getwd_js.gs.js +21 -0
  96. package/dist/gs/os/getwd_js.gs.js.map +1 -0
  97. package/dist/gs/os/index.d.ts +19 -0
  98. package/dist/gs/os/index.js +20 -0
  99. package/dist/gs/os/index.js.map +1 -0
  100. package/dist/gs/os/path.gs.d.ts +4 -0
  101. package/dist/gs/os/path.gs.js +32 -0
  102. package/dist/gs/os/path.gs.js.map +1 -0
  103. package/dist/gs/os/path_unix.gs.d.ts +4 -0
  104. package/dist/gs/os/path_unix.gs.js +40 -0
  105. package/dist/gs/os/path_unix.gs.js.map +1 -0
  106. package/dist/gs/os/pidfd_js.gs.d.ts +6 -0
  107. package/dist/gs/os/pidfd_js.gs.js +14 -0
  108. package/dist/gs/os/pidfd_js.gs.js.map +1 -0
  109. package/dist/gs/os/pipe_wasm.gs.d.ts +2 -0
  110. package/dist/gs/os/pipe_wasm.gs.js +14 -0
  111. package/dist/gs/os/pipe_wasm.gs.js.map +1 -0
  112. package/dist/gs/os/proc.gs.d.ts +11 -0
  113. package/dist/gs/os/proc.gs.js +68 -0
  114. package/dist/gs/os/proc.gs.js.map +1 -0
  115. package/dist/gs/os/proc_js.gs.d.ts +3 -0
  116. package/dist/gs/os/proc_js.gs.js +12 -0
  117. package/dist/gs/os/proc_js.gs.js.map +1 -0
  118. package/dist/gs/os/rawconn_js.gs.d.ts +10 -0
  119. package/dist/gs/os/rawconn_js.gs.js +26 -0
  120. package/dist/gs/os/rawconn_js.gs.js.map +1 -0
  121. package/dist/gs/os/removeall_js.gs.d.ts +2 -0
  122. package/dist/gs/os/removeall_js.gs.js +7 -0
  123. package/dist/gs/os/removeall_js.gs.js.map +1 -0
  124. package/dist/gs/os/root_js.gs.d.ts +23 -0
  125. package/dist/gs/os/root_js.gs.js +80 -0
  126. package/dist/gs/os/root_js.gs.js.map +1 -0
  127. package/dist/gs/os/root_nonwindows.gs.d.ts +2 -0
  128. package/dist/gs/os/root_nonwindows.gs.js +4 -0
  129. package/dist/gs/os/root_nonwindows.gs.js.map +1 -0
  130. package/dist/gs/os/root_noopenat.gs.d.ts +11 -0
  131. package/dist/gs/os/root_noopenat.gs.js +31 -0
  132. package/dist/gs/os/root_noopenat.gs.js.map +1 -0
  133. package/dist/gs/os/stat.gs.d.ts +24 -0
  134. package/dist/gs/os/stat.gs.js +20 -0
  135. package/dist/gs/os/stat.gs.js.map +1 -0
  136. package/dist/gs/os/stat_js.gs.d.ts +6 -0
  137. package/dist/gs/os/stat_js.gs.js +23 -0
  138. package/dist/gs/os/stat_js.gs.js.map +1 -0
  139. package/dist/gs/os/stat_unix_js.gs.d.ts +8 -0
  140. package/dist/gs/os/stat_unix_js.gs.js +16 -0
  141. package/dist/gs/os/stat_unix_js.gs.js.map +1 -0
  142. package/dist/gs/os/sticky_bsd.gs.d.ts +1 -0
  143. package/dist/gs/os/sticky_bsd.gs.js +3 -0
  144. package/dist/gs/os/sticky_bsd.gs.js.map +1 -0
  145. package/dist/gs/os/sys.gs.d.ts +2 -0
  146. package/dist/gs/os/sys.gs.js +10 -0
  147. package/dist/gs/os/sys.gs.js.map +1 -0
  148. package/dist/gs/os/sys_bsd.gs.d.ts +2 -0
  149. package/dist/gs/os/sys_bsd.gs.js +15 -0
  150. package/dist/gs/os/sys_bsd.gs.js.map +1 -0
  151. package/dist/gs/os/sys_js.gs.d.ts +2 -0
  152. package/dist/gs/os/sys_js.gs.js +6 -0
  153. package/dist/gs/os/sys_js.gs.js.map +1 -0
  154. package/dist/gs/os/tempfile.gs.d.ts +5 -0
  155. package/dist/gs/os/tempfile.gs.js +30 -0
  156. package/dist/gs/os/tempfile.gs.js.map +1 -0
  157. package/dist/gs/os/types.gs.d.ts +59 -0
  158. package/dist/gs/os/types.gs.js +123 -0
  159. package/dist/gs/os/types.gs.js.map +1 -0
  160. package/dist/gs/os/types_js.gs.d.ts +74 -0
  161. package/dist/gs/os/types_js.gs.js +147 -0
  162. package/dist/gs/os/types_js.gs.js.map +1 -0
  163. package/dist/gs/os/types_unix.gs.d.ts +40 -0
  164. package/dist/gs/os/types_unix.gs.js +87 -0
  165. package/dist/gs/os/types_unix.gs.js.map +1 -0
  166. package/dist/gs/os/wait_unimp.gs.d.ts +1 -0
  167. package/dist/gs/os/wait_unimp.gs.js +2 -0
  168. package/dist/gs/os/wait_unimp.gs.js.map +1 -0
  169. package/dist/gs/os/zero_copy_posix.gs.d.ts +4 -0
  170. package/dist/gs/os/zero_copy_posix.gs.js +27 -0
  171. package/dist/gs/os/zero_copy_posix.gs.js.map +1 -0
  172. package/dist/gs/os/zero_copy_stub.gs.d.ts +1 -0
  173. package/dist/gs/os/zero_copy_stub.gs.js +2 -0
  174. package/dist/gs/os/zero_copy_stub.gs.js.map +1 -0
  175. package/dist/gs/reflect/abi.d.ts +59 -0
  176. package/dist/gs/reflect/abi.gs.d.ts +59 -0
  177. package/dist/gs/reflect/abi.gs.js +79 -0
  178. package/dist/gs/reflect/abi.gs.js.map +1 -0
  179. package/dist/gs/reflect/abi.js +79 -0
  180. package/dist/gs/reflect/abi.js.map +1 -0
  181. package/dist/gs/reflect/badlinkname.d.ts +52 -0
  182. package/dist/gs/reflect/badlinkname.gs.d.ts +52 -0
  183. package/dist/gs/reflect/badlinkname.gs.js +72 -0
  184. package/dist/gs/reflect/badlinkname.gs.js.map +1 -0
  185. package/dist/gs/reflect/badlinkname.js +72 -0
  186. package/dist/gs/reflect/badlinkname.js.map +1 -0
  187. package/dist/gs/reflect/deepequal.d.ts +1 -0
  188. package/dist/gs/reflect/deepequal.gs.d.ts +25 -0
  189. package/dist/gs/reflect/deepequal.gs.js +308 -0
  190. package/dist/gs/reflect/deepequal.gs.js.map +1 -0
  191. package/dist/gs/reflect/deepequal.js +139 -0
  192. package/dist/gs/reflect/deepequal.js.map +1 -0
  193. package/dist/gs/reflect/float32reg_generic.gs.d.ts +2 -0
  194. package/dist/gs/reflect/float32reg_generic.gs.js +10 -0
  195. package/dist/gs/reflect/float32reg_generic.gs.js.map +1 -0
  196. package/dist/gs/reflect/index.d.ts +8 -0
  197. package/dist/gs/reflect/index.gs.d.ts +1 -0
  198. package/dist/gs/reflect/index.gs.js +3 -0
  199. package/dist/gs/reflect/index.gs.js.map +1 -0
  200. package/dist/gs/reflect/index.js +10 -0
  201. package/dist/gs/reflect/index.js.map +1 -0
  202. package/dist/gs/reflect/iter.d.ts +4 -0
  203. package/dist/gs/reflect/iter.gs.d.ts +3 -0
  204. package/dist/gs/reflect/iter.gs.js +24 -0
  205. package/dist/gs/reflect/iter.gs.js.map +1 -0
  206. package/dist/gs/reflect/iter.js +24 -0
  207. package/dist/gs/reflect/iter.js.map +1 -0
  208. package/dist/gs/reflect/makefunc.gs.d.ts +34 -0
  209. package/dist/gs/reflect/makefunc.gs.js +288 -0
  210. package/dist/gs/reflect/makefunc.gs.js.map +1 -0
  211. package/dist/gs/reflect/map.d.ts +14 -0
  212. package/dist/gs/reflect/map.js +70 -0
  213. package/dist/gs/reflect/map.js.map +1 -0
  214. package/dist/gs/reflect/map_swiss.gs.d.ts +14 -0
  215. package/dist/gs/reflect/map_swiss.gs.js +70 -0
  216. package/dist/gs/reflect/map_swiss.gs.js.map +1 -0
  217. package/dist/gs/reflect/reflect.gs.d.ts +132 -0
  218. package/dist/gs/reflect/reflect.gs.js +437 -0
  219. package/dist/gs/reflect/reflect.gs.js.map +1 -0
  220. package/dist/gs/reflect/swapper.d.ts +2 -0
  221. package/dist/gs/reflect/swapper.gs.d.ts +1 -0
  222. package/dist/gs/reflect/swapper.gs.js +32 -0
  223. package/dist/gs/reflect/swapper.gs.js.map +1 -0
  224. package/dist/gs/reflect/swapper.js +46 -0
  225. package/dist/gs/reflect/swapper.js.map +1 -0
  226. package/dist/gs/reflect/type.d.ts +126 -0
  227. package/dist/gs/reflect/type.gs.d.ts +4 -0
  228. package/dist/gs/reflect/type.gs.js +21 -0
  229. package/dist/gs/reflect/type.gs.js.map +1 -0
  230. package/dist/gs/reflect/type.js +825 -0
  231. package/dist/gs/reflect/type.js.map +1 -0
  232. package/dist/gs/reflect/types.d.ts +90 -0
  233. package/dist/gs/reflect/types.js +119 -0
  234. package/dist/gs/reflect/types.js.map +1 -0
  235. package/dist/gs/reflect/value.d.ts +13 -0
  236. package/dist/gs/reflect/value.gs.d.ts +4 -0
  237. package/dist/gs/reflect/value.gs.js +12 -0
  238. package/dist/gs/reflect/value.gs.js.map +1 -0
  239. package/dist/gs/reflect/value.js +201 -0
  240. package/dist/gs/reflect/value.js.map +1 -0
  241. package/dist/gs/reflect/visiblefields.d.ts +4 -0
  242. package/dist/gs/reflect/visiblefields.gs.d.ts +3 -0
  243. package/dist/gs/reflect/visiblefields.gs.js +123 -0
  244. package/dist/gs/reflect/visiblefields.gs.js.map +1 -0
  245. package/dist/gs/reflect/visiblefields.js +143 -0
  246. package/dist/gs/reflect/visiblefields.js.map +1 -0
  247. package/dist/gs/strconv/index.d.ts +6 -6
  248. package/dist/gs/strconv/index.js +6 -6
  249. package/dist/gs/strconv/index.js.map +1 -1
  250. package/dist/gs/strings/index.d.ts +1 -1
  251. package/dist/gs/strings/index.js +1 -1
  252. package/dist/gs/strings/index.js.map +1 -1
  253. package/dist/gs/strings/replace.js.map +1 -1
  254. package/dist/gs/sync/atomic/index.d.ts +4 -4
  255. package/dist/gs/sync/atomic/index.js +4 -4
  256. package/dist/gs/sync/atomic/index.js.map +1 -1
  257. package/dist/gs/syscall/index.d.ts +80 -0
  258. package/dist/gs/syscall/index.js +169 -0
  259. package/dist/gs/syscall/index.js.map +1 -0
  260. package/dist/gs/unsafe/unsafe.js.map +1 -1
  261. package/gs/builtin/slice.ts +2 -1
  262. package/gs/github.com/pkg/errors/errors.ts +408 -238
  263. package/gs/github.com/pkg/errors/go113.ts +5 -6
  264. package/gs/github.com/pkg/errors/index.ts +12 -3
  265. package/gs/github.com/pkg/errors/stack.ts +107 -105
  266. package/gs/internal/abi/index.ts +37 -0
  267. package/gs/internal/bytealg/index.ts +34 -0
  268. package/gs/internal/byteorder/index.ts +40 -0
  269. package/gs/math/abs.gs.test.ts +1 -1
  270. package/gs/math/acosh.gs.test.ts +4 -2
  271. package/gs/math/asin.gs.test.ts +1 -1
  272. package/gs/math/asinh.gs.test.ts +7 -3
  273. package/gs/math/atan.gs.test.ts +1 -1
  274. package/gs/math/atan2.gs.test.ts +17 -9
  275. package/gs/math/atanh.gs.test.ts +1 -1
  276. package/gs/math/bits.gs.test.ts +1 -1
  277. package/gs/math/cbrt.gs.test.ts +1 -1
  278. package/gs/math/const.gs.test.ts +34 -8
  279. package/gs/math/copysign.gs.test.ts +7 -3
  280. package/gs/math/dim.gs.test.ts +19 -7
  281. package/gs/math/erf.gs.test.ts +1 -1
  282. package/gs/math/erfinv.gs.test.ts +4 -2
  283. package/gs/math/exp.gs.test.ts +1 -1
  284. package/gs/math/expm1.gs.test.ts +6 -4
  285. package/gs/math/floor.gs.test.ts +17 -4
  286. package/gs/math/fma.gs.test.ts +53 -53
  287. package/gs/math/frexp.gs.test.ts +112 -117
  288. package/gs/math/gamma.gs.test.ts +1 -1
  289. package/gs/math/hypot.gs.test.ts +53 -53
  290. package/gs/math/index.ts +80 -44
  291. package/gs/math/j0.gs.test.ts +6 -2
  292. package/gs/math/j1.gs.test.ts +6 -2
  293. package/gs/math/jn.gs.test.ts +9 -5
  294. package/gs/math/ldexp.gs.test.ts +103 -86
  295. package/gs/math/lgamma.gs.test.ts +10 -10
  296. package/gs/math/log.gs.test.ts +1 -1
  297. package/gs/math/log10.gs.test.ts +1 -1
  298. package/gs/math/log1p.gs.test.ts +2 -2
  299. package/gs/math/logb.gs.test.ts +1 -1
  300. package/gs/math/mod.gs.test.ts +2 -2
  301. package/gs/math/modf.gs.test.ts +7 -7
  302. package/gs/math/nextafter.gs.test.ts +9 -7
  303. package/gs/math/pow.gs.test.ts +6 -4
  304. package/gs/math/pow10.gs.test.ts +1 -1
  305. package/gs/math/remainder.gs.test.ts +1 -1
  306. package/gs/math/signbit.gs.test.ts +1 -1
  307. package/gs/math/sin.gs.test.ts +1 -1
  308. package/gs/math/sincos.gs.test.ts +33 -14
  309. package/gs/math/sinh.gs.test.ts +1 -1
  310. package/gs/math/sqrt.gs.test.ts +1 -1
  311. package/gs/math/tan.gs.test.ts +3 -3
  312. package/gs/math/tanh.gs.test.ts +1 -1
  313. package/gs/os/dir.gs.ts +42 -0
  314. package/gs/os/dir_unix.gs.ts +155 -0
  315. package/gs/os/dirent_js.gs.ts +27 -0
  316. package/gs/os/env.gs.ts +179 -0
  317. package/gs/os/error.gs.ts +205 -0
  318. package/gs/os/error_errno.gs.ts +12 -0
  319. package/gs/os/exec.gs.ts +198 -0
  320. package/gs/os/exec_nohandle.gs.ts +2 -0
  321. package/gs/os/exec_posix.gs.ts +95 -0
  322. package/gs/os/exec_unix.gs.ts +64 -0
  323. package/gs/os/executable.gs.ts +18 -0
  324. package/gs/os/executable_js.gs.ts +6 -0
  325. package/gs/os/executable_wasm.gs.ts +10 -0
  326. package/gs/os/file_constants_js.gs.ts +98 -0
  327. package/gs/os/file_js.gs.ts +99 -0
  328. package/gs/os/file_open_unix.gs.ts +15 -0
  329. package/gs/os/file_posix_js.gs.ts +40 -0
  330. package/gs/os/file_unix_js.gs.ts +94 -0
  331. package/gs/os/getwd_js.gs.ts +28 -0
  332. package/gs/os/index.ts +128 -0
  333. package/gs/os/path.gs.ts +35 -0
  334. package/gs/os/path_unix.gs.ts +49 -0
  335. package/gs/os/pidfd_js.gs.ts +25 -0
  336. package/gs/os/pipe_wasm.gs.ts +17 -0
  337. package/gs/os/proc.gs.ts +84 -0
  338. package/gs/os/proc_js.gs.ts +15 -0
  339. package/gs/os/rawconn_js.gs.ts +30 -0
  340. package/gs/os/removeall_js.gs.ts +9 -0
  341. package/gs/os/root_js.gs.ts +111 -0
  342. package/gs/os/root_nonwindows.gs.ts +6 -0
  343. package/gs/os/root_noopenat.gs.ts +45 -0
  344. package/gs/os/stat.gs.ts +38 -0
  345. package/gs/os/stat_js.gs.ts +30 -0
  346. package/gs/os/stat_unix_js.gs.ts +27 -0
  347. package/gs/os/sticky_bsd.gs.ts +4 -0
  348. package/gs/os/sys.gs.ts +12 -0
  349. package/gs/os/sys_bsd.gs.ts +17 -0
  350. package/gs/os/sys_js.gs.ts +9 -0
  351. package/gs/os/tempfile.gs.ts +34 -0
  352. package/gs/os/types.gs.ts +170 -0
  353. package/gs/os/types_js.gs.ts +205 -0
  354. package/gs/os/types_unix.gs.ts +118 -0
  355. package/gs/os/wait_unimp.gs.ts +2 -0
  356. package/gs/os/zero_copy_posix.gs.ts +35 -0
  357. package/gs/os/zero_copy_stub.gs.ts +4 -0
  358. package/gs/reflect/ANALYSIS.md +278 -0
  359. package/gs/reflect/deepequal.ts +154 -0
  360. package/gs/reflect/function-types.test.ts +146 -0
  361. package/gs/reflect/godoc.txt +67 -0
  362. package/gs/reflect/index.ts +83 -0
  363. package/gs/reflect/iter.ts +44 -0
  364. package/gs/reflect/map.ts +81 -0
  365. package/gs/reflect/swapper.ts +52 -0
  366. package/gs/reflect/type.ts +1012 -0
  367. package/gs/reflect/types.ts +214 -0
  368. package/gs/reflect/value.ts +264 -0
  369. package/gs/reflect/visiblefields.ts +173 -0
  370. package/gs/strconv/index.ts +39 -6
  371. package/gs/strings/index.ts +7 -1
  372. package/gs/strings/replace.ts +1 -9
  373. package/gs/sync/atomic/index.ts +53 -4
  374. package/gs/syscall/index.ts +212 -0
  375. package/gs/unsafe/unsafe.ts +1 -1
  376. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../gs/reflect/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ export type uintptr = number;
2
+ export interface UnsafePointer {
3
+ readonly __unsafePointerBrand: unique symbol;
4
+ value: unknown;
5
+ }
6
+ export type Pointer = UnsafePointer | null;
7
+ export type ReflectValue = null | undefined | boolean | number | bigint | string | symbol | Function | object | unknown[] | Map<unknown, unknown> | Set<unknown> | Uint8Array | Int8Array | Uint16Array | Int16Array | Uint32Array | Int32Array | Float32Array | Float64Array;
8
+ export declare class ChanDir {
9
+ private _value;
10
+ constructor(_value: number);
11
+ valueOf(): number;
12
+ toString(): string;
13
+ }
14
+ export declare const RecvDir: ChanDir;
15
+ export declare const SendDir: ChanDir;
16
+ export declare const BothDir: ChanDir;
17
+ import { Type, Kind, Value } from './type.js';
18
+ export declare class StructField {
19
+ Name: string;
20
+ Type: Type;
21
+ Tag?: StructTag;
22
+ Offset?: uintptr;
23
+ Index?: number[];
24
+ Anonymous?: boolean;
25
+ constructor(init?: Partial<StructField>);
26
+ clone(): StructField;
27
+ }
28
+ export declare class StructTag {
29
+ private _value;
30
+ constructor(_value: string);
31
+ toString(): string;
32
+ Get(key: string): string;
33
+ }
34
+ export interface Method {
35
+ Name: string;
36
+ Type: Type;
37
+ Func: Function;
38
+ Index: number;
39
+ }
40
+ export interface Channel<T = unknown> {
41
+ readonly __channelBrand: unique symbol;
42
+ direction: ChanDir;
43
+ elementType: Type;
44
+ buffer: T[];
45
+ closed: boolean;
46
+ }
47
+ export interface SelectCase {
48
+ Dir: SelectDir;
49
+ Chan?: Value;
50
+ Send?: Value;
51
+ }
52
+ export declare class SelectDir {
53
+ private _value;
54
+ constructor(_value: number);
55
+ valueOf(): number;
56
+ }
57
+ export declare const SelectSend: SelectDir;
58
+ export declare const SelectRecv: SelectDir;
59
+ export declare const SelectDefault: SelectDir;
60
+ export interface SliceHeader {
61
+ Data: uintptr;
62
+ Len: number;
63
+ Cap: number;
64
+ }
65
+ export interface StringHeader {
66
+ Data: uintptr;
67
+ Len: number;
68
+ }
69
+ export interface MapIter<K = unknown, V = unknown> {
70
+ map: Map<K, V>;
71
+ iterator: Iterator<[K, V]>;
72
+ current: IteratorResult<[K, V]> | null;
73
+ Key(): K | null;
74
+ Value(): V | null;
75
+ Next(): boolean;
76
+ Reset(m: Map<K, V>): void;
77
+ }
78
+ export declare class bitVector {
79
+ private bits;
80
+ Set(index: number): void;
81
+ Get(index: number): boolean;
82
+ }
83
+ export declare class ValueError extends Error {
84
+ Kind: Kind;
85
+ Method: string;
86
+ constructor(init: {
87
+ Kind: Kind;
88
+ Method: string;
89
+ });
90
+ }
@@ -0,0 +1,119 @@
1
+ // Common types used throughout the reflect module
2
+ // Channel direction constants and type
3
+ export class ChanDir {
4
+ _value;
5
+ constructor(_value) {
6
+ this._value = _value;
7
+ }
8
+ valueOf() {
9
+ return this._value;
10
+ }
11
+ toString() {
12
+ switch (this._value) {
13
+ case 1:
14
+ return 'RecvDir';
15
+ case 2:
16
+ return 'SendDir';
17
+ case 3:
18
+ return 'BothDir';
19
+ default:
20
+ return 'InvalidDir';
21
+ }
22
+ }
23
+ }
24
+ export const RecvDir = new ChanDir(1);
25
+ export const SendDir = new ChanDir(2);
26
+ export const BothDir = new ChanDir(3);
27
+ // Struct field representation
28
+ export class StructField {
29
+ Name = '';
30
+ Type;
31
+ Tag;
32
+ Offset;
33
+ Index;
34
+ Anonymous;
35
+ constructor(init) {
36
+ if (init) {
37
+ Object.assign(this, init);
38
+ }
39
+ }
40
+ clone() {
41
+ return new StructField({
42
+ Name: this.Name,
43
+ Type: this.Type,
44
+ Tag: this.Tag,
45
+ Offset: this.Offset,
46
+ Index: this.Index ? [...this.Index] : undefined,
47
+ Anonymous: this.Anonymous,
48
+ });
49
+ }
50
+ }
51
+ // Struct tag type
52
+ export class StructTag {
53
+ _value;
54
+ constructor(_value) {
55
+ this._value = _value;
56
+ }
57
+ toString() {
58
+ return this._value;
59
+ }
60
+ Get(key) {
61
+ // Simple tag parsing - in a real implementation this would be more sophisticated
62
+ const parts = this._value.split(' ');
63
+ for (const part of parts) {
64
+ if (part.startsWith(key + ':')) {
65
+ const value = part.substring(key.length + 1);
66
+ if (value.startsWith('"') && value.endsWith('"')) {
67
+ return value.slice(1, -1);
68
+ }
69
+ return value;
70
+ }
71
+ }
72
+ return '';
73
+ }
74
+ }
75
+ // Select direction constants
76
+ export class SelectDir {
77
+ _value;
78
+ constructor(_value) {
79
+ this._value = _value;
80
+ }
81
+ valueOf() {
82
+ return this._value;
83
+ }
84
+ }
85
+ export const SelectSend = new SelectDir(1);
86
+ export const SelectRecv = new SelectDir(2);
87
+ export const SelectDefault = new SelectDir(3);
88
+ // Bit vector for tracking pointers
89
+ export class bitVector {
90
+ bits = [];
91
+ Set(index) {
92
+ const wordIndex = Math.floor(index / 32);
93
+ const bitIndex = index % 32;
94
+ while (this.bits.length <= wordIndex) {
95
+ this.bits.push(0);
96
+ }
97
+ this.bits[wordIndex] |= 1 << bitIndex;
98
+ }
99
+ Get(index) {
100
+ const wordIndex = Math.floor(index / 32);
101
+ const bitIndex = index % 32;
102
+ if (wordIndex >= this.bits.length) {
103
+ return false;
104
+ }
105
+ return (this.bits[wordIndex] & (1 << bitIndex)) !== 0;
106
+ }
107
+ }
108
+ // Value error type
109
+ export class ValueError extends Error {
110
+ Kind;
111
+ Method;
112
+ constructor(init) {
113
+ super(`reflect: call of reflect.Value.${init.Method} on ${init.Kind.String()} Value`);
114
+ this.Kind = init.Kind;
115
+ this.Method = init.Method;
116
+ this.name = 'ValueError';
117
+ }
118
+ }
119
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../gs/reflect/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Type, Value } from './type.js';
2
+ import { SelectCase } from './types.js';
3
+ import * as $ from '@goscript/builtin/builtin.js';
4
+ export { ValueOf } from './type';
5
+ export declare function Zero(typ: Type): Value;
6
+ export declare function Copy(dst: Value, src: Value): number;
7
+ export declare function Indirect(v: Value): Value;
8
+ export declare function New(typ: Type): Value;
9
+ export declare function MakeSlice(typ: Type, len: number, _cap: number): Value;
10
+ export declare function MakeMap(typ: Type): Value;
11
+ export declare function Append(s: Value, x: Value): Value;
12
+ export declare function MakeChan(typ: Type, buffer: number): Value;
13
+ export declare function Select(cases: $.Slice<SelectCase>): [number, Value, boolean];
@@ -0,0 +1,4 @@
1
+ import { Value } from "./reflect.gs.js";
2
+ export { ValueOf } from "./reflect.gs.js";
3
+ export declare function valueInterface(v: Value, safe?: boolean): any;
4
+ export declare function methodReceiver(op: string, v: Value, methodIndex: number): Value;
@@ -0,0 +1,12 @@
1
+ // Export ValueOf and valueInterface for compatibility with generated code
2
+ export { ValueOf } from "./reflect.gs.js";
3
+ // valueInterface is used by deepequal - just return the underlying value
4
+ export function valueInterface(v, safe) {
5
+ return v._value;
6
+ }
7
+ // methodReceiver is used by makefunc - placeholder implementation
8
+ export function methodReceiver(op, v, methodIndex) {
9
+ // Placeholder implementation
10
+ return v;
11
+ }
12
+ //# sourceMappingURL=value.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.gs.js","sourceRoot":"","sources":["../../../gs/reflect/value.gs.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,CAAQ,EAAE,IAAc;IACnD,OAAQ,CAAS,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,CAAQ,EAAE,WAAmB;IACpE,6BAA6B;IAC7B,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,201 @@
1
+ import { Array, Bool, Float32, Float64, Int, Int16, Int32, Int64, Int8, Map, PointerTo, Ptr, Slice, String, Uint, Uint16, Uint32, Uint64, Uint8, Uintptr, Value, Chan, BasicType, Invalid, } from './type.js';
2
+ import { SelectRecv, SelectDefault } from './types.js';
3
+ import * as $ from '@goscript/builtin/builtin.js';
4
+ // Re-export ValueOf from type.ts for compatibility
5
+ export { ValueOf } from './type';
6
+ // Zero returns a Value representing the zero value for the specified type.
7
+ export function Zero(typ) {
8
+ let zeroValue;
9
+ switch (typ.Kind().valueOf()) {
10
+ case Bool.valueOf():
11
+ zeroValue = false;
12
+ break;
13
+ case Int.valueOf():
14
+ case Int8.valueOf():
15
+ case Int16.valueOf():
16
+ case Int32.valueOf():
17
+ case Int64.valueOf():
18
+ case Uint.valueOf():
19
+ case Uint8.valueOf():
20
+ case Uint16.valueOf():
21
+ case Uint32.valueOf():
22
+ case Uint64.valueOf():
23
+ case Uintptr.valueOf():
24
+ case Float32.valueOf():
25
+ case Float64.valueOf():
26
+ zeroValue = 0;
27
+ break;
28
+ case String.valueOf():
29
+ zeroValue = '';
30
+ break;
31
+ case Slice.valueOf():
32
+ case Array.valueOf():
33
+ zeroValue = [];
34
+ break;
35
+ default:
36
+ zeroValue = null;
37
+ break;
38
+ }
39
+ return new Value(zeroValue, typ);
40
+ }
41
+ // Copy copies the contents of src to dst until either dst has been filled
42
+ // or src has been exhausted. It returns the number of elements copied.
43
+ export function Copy(dst, src) {
44
+ // Extract the underlying arrays from the Value objects
45
+ const dstArray = getArrayFromValue(dst);
46
+ const srcArray = getArrayFromValue(src);
47
+ if (!dstArray || !srcArray) {
48
+ return 0;
49
+ }
50
+ const count = Math.min(dstArray.length, srcArray.length);
51
+ for (let i = 0; i < count; i++) {
52
+ dstArray[i] = srcArray[i];
53
+ }
54
+ return count;
55
+ }
56
+ // Helper function to extract the underlying array from a Value
57
+ function getArrayFromValue(value) {
58
+ const val = value.value;
59
+ // Check for GoScript slice objects created by $.arrayToSlice
60
+ if (val && typeof val === 'object' && '__meta__' in val) {
61
+ const meta = val.__meta__;
62
+ if (meta && meta.backing && globalThis.Array.isArray(meta.backing)) {
63
+ return meta.backing;
64
+ }
65
+ }
66
+ // Check for regular JavaScript arrays
67
+ if (globalThis.Array.isArray(val)) {
68
+ return val;
69
+ }
70
+ return null;
71
+ }
72
+ // Indirect returns the value that v points to.
73
+ export function Indirect(v) {
74
+ // Check if this is a pointer type
75
+ const type = v.Type();
76
+ if (type.Kind().valueOf() === Ptr.valueOf()) {
77
+ // Ptr kind
78
+ const elemType = type.Elem();
79
+ if (elemType) {
80
+ // Return a new Value with the same underlying value but the element type
81
+ return new Value(v.value, elemType);
82
+ }
83
+ }
84
+ // For non-pointer types, just return the value as-is
85
+ return v;
86
+ }
87
+ // New returns a Value representing a pointer to a new zero value for the specified type.
88
+ export function New(typ) {
89
+ const ptrType = PointerTo(typ);
90
+ // For the pointer value, we'll use the zero value but with pointer type
91
+ // In a real implementation, this would be a pointer to the zero value
92
+ return new Value(null, ptrType); // null represents the pointer value
93
+ }
94
+ // MakeSlice returns a Value representing a new slice with the specified type, length, and capacity.
95
+ export function MakeSlice(typ, len, _cap) {
96
+ if (typ.Kind().valueOf() !== Slice.valueOf()) {
97
+ throw new Error('reflect.MakeSlice of non-slice type');
98
+ }
99
+ // Create a slice with the specified length, filled with zero values
100
+ const elemType = typ.Elem();
101
+ if (!elemType) {
102
+ throw new Error('slice type missing element type');
103
+ }
104
+ const zeroValue = Zero(elemType);
105
+ const zeroVal = zeroValue.value;
106
+ const array = new globalThis.Array(len).fill(zeroVal);
107
+ return new Value(array, typ);
108
+ }
109
+ // MakeMap returns a Value representing a new map with the specified type.
110
+ export function MakeMap(typ) {
111
+ if (typ.Kind().valueOf() !== Map.valueOf()) {
112
+ throw new Error('reflect.MakeMap of non-map type');
113
+ }
114
+ const map = new globalThis.Map();
115
+ return new Value(map, typ);
116
+ }
117
+ // Append appends the values x to a slice and returns the resulting slice.
118
+ export function Append(s, x) {
119
+ if (s.Kind().valueOf() !== Slice.valueOf()) {
120
+ throw new Error('reflect.Append of non-slice');
121
+ }
122
+ const array = getArrayFromValue(s);
123
+ if (!array) {
124
+ throw new Error('cannot get array from slice value');
125
+ }
126
+ const newValue = x.value;
127
+ const newArray = [...array, newValue];
128
+ return new Value(newArray, s.Type());
129
+ }
130
+ // MakeChan returns a Value representing a new channel with the specified type.
131
+ export function MakeChan(typ, buffer) {
132
+ if (typ.Kind().valueOf() !== Chan.valueOf()) {
133
+ throw new Error('reflect.MakeChan of non-chan type');
134
+ }
135
+ const elemType = typ.Elem();
136
+ if (!elemType) {
137
+ throw new Error('channel type missing element type');
138
+ }
139
+ // Get the zero value for the channel element type
140
+ const zeroValue = Zero(elemType);
141
+ const zeroVal = zeroValue.value;
142
+ // Create a channel using the builtin makeChannel function
143
+ const channel = $.makeChannel(buffer, zeroVal);
144
+ return new Value(channel, typ);
145
+ }
146
+ // Select executes a select operation on the provided cases.
147
+ // It returns the index of the chosen case, the received value (if applicable), and whether the receive was successful.
148
+ export function Select(cases) {
149
+ // Extract the backing array from the GoScript slice
150
+ let selectCases = [];
151
+ if (cases && typeof cases === 'object' && '__meta__' in cases) {
152
+ // This is a GoScript slice, extract the backing array
153
+ const meta = cases.__meta__;
154
+ if (meta && meta.backing) {
155
+ selectCases = meta.backing;
156
+ }
157
+ }
158
+ // Check for ready channels (channels with queued values)
159
+ for (let i = 0; i < selectCases.length; i++) {
160
+ const selectCase = selectCases[i];
161
+ if (selectCase.Dir.valueOf() === SelectRecv.valueOf() && selectCase.Chan) {
162
+ const channelValue = selectCase.Chan;
163
+ const channelObj = channelValue.value;
164
+ // Check if there are queued values to receive
165
+ if (channelObj &&
166
+ channelObj._sendQueue &&
167
+ channelObj._sendQueue.length > 0) {
168
+ const receivedValue = channelObj._sendQueue.shift(); // Remove from queue
169
+ const elemType = channelValue.Type().Elem();
170
+ if (elemType) {
171
+ const recvVal = new Value(receivedValue, elemType);
172
+ return [i, recvVal, true];
173
+ }
174
+ }
175
+ }
176
+ }
177
+ // Look for default case if no channels are ready
178
+ for (let i = 0; i < selectCases.length; i++) {
179
+ const selectCase = selectCases[i];
180
+ if (selectCase.Dir.valueOf() === SelectDefault.valueOf()) {
181
+ // Default case is immediately available
182
+ return [i, new Value(null, new BasicType(Invalid, 'invalid')), false];
183
+ }
184
+ }
185
+ // If no channels are ready and no default case, return first case as fallback
186
+ if (selectCases.length > 0) {
187
+ const firstCase = selectCases[0];
188
+ if (firstCase.Dir.valueOf() === SelectRecv.valueOf() && firstCase.Chan) {
189
+ // Simulate receiving a zero value
190
+ const elemType = firstCase.Chan.Type().Elem();
191
+ if (elemType) {
192
+ const zeroVal = Zero(elemType);
193
+ return [0, zeroVal, true];
194
+ }
195
+ }
196
+ return [0, new Value(null, new BasicType(Invalid, 'invalid')), false];
197
+ }
198
+ // Fallback
199
+ return [0, new Value(null, new BasicType(Invalid, 'invalid')), false];
200
+ }
201
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../gs/reflect/value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as $ from '@goscript/builtin/builtin.js';
2
+ import { Type } from './type.js';
3
+ import { StructField } from './types.js';
4
+ export declare function VisibleFields(t: Type): $.Slice<StructField>;
@@ -0,0 +1,3 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { Type, StructField } from "./reflect.gs.js";
3
+ export declare function VisibleFields(t: Type): $.Slice<StructField>;
@@ -0,0 +1,123 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ // VisibleFields returns all the visible fields in t, which must be a
3
+ // struct type. A field is defined as visible if it's accessible
4
+ // directly with a FieldByName call. The returned fields include fields
5
+ // inside anonymous struct members and unexported fields. They follow
6
+ // the same order found in the struct, with anonymous fields followed
7
+ // immediately by their promoted fields.
8
+ //
9
+ // For each element e of the returned slice, the corresponding field
10
+ // can be retrieved from a value v of type t by calling v.FieldByIndex(e.Index).
11
+ export function VisibleFields(t) {
12
+ if (t == null) {
13
+ $.panic("reflect: VisibleFields(nil)");
14
+ }
15
+ if (t.Kind().valueOf() != 25) {
16
+ $.panic("reflect.VisibleFields of non-struct type " + t.String());
17
+ }
18
+ let w = new visibleFieldsWalker({ byName: $.makeMap(), fields: $.makeSlice(0, t.NumField()), index: $.makeSlice(0, 2, 'number'), visiting: $.makeMap() });
19
+ w.walk(t);
20
+ // Remove all the fields that have been hidden.
21
+ // Use an in-place removal that avoids copying in
22
+ // the common case that there are no hidden fields.
23
+ let j = 0;
24
+ // A field has been removed. We need to shuffle
25
+ // all the subsequent elements up.
26
+ for (let i = 0; i < $.len(w.fields); i++) {
27
+ {
28
+ let f = w.fields[i];
29
+ if (f.Name == "") {
30
+ continue;
31
+ }
32
+ // A field has been removed. We need to shuffle
33
+ // all the subsequent elements up.
34
+ if (i != j) {
35
+ // A field has been removed. We need to shuffle
36
+ // all the subsequent elements up.
37
+ w.fields[j] = f.clone();
38
+ }
39
+ j++;
40
+ }
41
+ }
42
+ return $.goSlice(w.fields, undefined, j);
43
+ }
44
+ class visibleFieldsWalker {
45
+ get byName() {
46
+ return this._fields.byName.value;
47
+ }
48
+ set byName(value) {
49
+ this._fields.byName.value = value;
50
+ }
51
+ get visiting() {
52
+ return this._fields.visiting.value;
53
+ }
54
+ set visiting(value) {
55
+ this._fields.visiting.value = value;
56
+ }
57
+ get fields() {
58
+ return this._fields.fields.value;
59
+ }
60
+ set fields(value) {
61
+ this._fields.fields.value = value;
62
+ }
63
+ get index() {
64
+ return this._fields.index.value;
65
+ }
66
+ set index(value) {
67
+ this._fields.index.value = value;
68
+ }
69
+ _fields;
70
+ constructor(init) {
71
+ this._fields = {
72
+ byName: $.varRef(init?.byName ?? $.makeMap()),
73
+ visiting: $.varRef(init?.visiting ?? $.makeMap()),
74
+ fields: $.varRef(init?.fields ?? $.makeSlice(0, 0)),
75
+ index: $.varRef(init?.index ?? $.makeSlice(0, 2, 'number'))
76
+ };
77
+ }
78
+ clone() {
79
+ const cloned = new visibleFieldsWalker();
80
+ cloned._fields = {
81
+ byName: $.varRef(this._fields.byName.value),
82
+ visiting: $.varRef(this._fields.visiting.value),
83
+ fields: $.varRef(this._fields.fields.value),
84
+ index: $.varRef(this._fields.index.value)
85
+ };
86
+ return cloned;
87
+ }
88
+ // walk walks all the fields in the struct type t, visiting
89
+ // fields in index preorder and appending them to w.fields
90
+ // (this maintains the required ordering).
91
+ // Fields that have been overridden have their
92
+ // Name field cleared.
93
+ walk(t) {
94
+ const w = this;
95
+ if ($.mapGet(w.visiting, t, false)[0]) {
96
+ return;
97
+ }
98
+ $.mapSet(w.visiting, t, true);
99
+ for (let i = 0; i < t.NumField(); i++) {
100
+ let f = t.Field(i).clone();
101
+ f.Index = $.append(null, w.index);
102
+ if (f.Anonymous) {
103
+ let t = f.Type;
104
+ if (f.Type.Kind().valueOf() == 22) {
105
+ const elemType = f.Type.Elem();
106
+ if (elemType) {
107
+ f.Type = elemType;
108
+ }
109
+ }
110
+ if (f.Type.Kind().valueOf() == 25) {
111
+ w.walk(f.Type);
112
+ }
113
+ }
114
+ else {
115
+ w.fields = $.append(w.fields, f);
116
+ }
117
+ }
118
+ $.deleteMapEntry(w.visiting, t);
119
+ }
120
+ // Register this type with the runtime type system
121
+ static __typeInfo = $.registerStructType('visibleFieldsWalker', new visibleFieldsWalker(), [{ name: "walk", args: [{ name: "t", type: "Type" }], returns: [] }], visibleFieldsWalker, { "byName": { kind: $.TypeKind.Map, keyType: { kind: $.TypeKind.Basic, name: "string" }, elemType: { kind: $.TypeKind.Basic, name: "number" } }, "visiting": { kind: $.TypeKind.Map, keyType: "Type", elemType: { kind: $.TypeKind.Basic, name: "boolean" } }, "fields": { kind: $.TypeKind.Slice, elemType: "StructField" }, "index": { kind: $.TypeKind.Slice, elemType: { kind: $.TypeKind.Basic, name: "number" } } });
122
+ }
123
+ //# sourceMappingURL=visiblefields.gs.js.map