goscript 0.0.33 → 0.0.35

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 (347) hide show
  1. package/compiler/analysis.go +30 -22
  2. package/compiler/analysis_test.go +14 -0
  3. package/compiler/assignment.go +45 -7
  4. package/compiler/builtin_test.go +2 -0
  5. package/compiler/compiler.go +15 -89
  6. package/compiler/compiler_test.go +0 -53
  7. package/compiler/composite-lit.go +60 -17
  8. package/compiler/decl.go +1 -1
  9. package/compiler/expr-call.go +347 -30
  10. package/compiler/expr-selector.go +28 -2
  11. package/compiler/expr.go +79 -38
  12. package/compiler/lit.go +112 -3
  13. package/compiler/primitive.go +6 -6
  14. package/compiler/protobuf.go +0 -5
  15. package/compiler/sanitize.go +101 -0
  16. package/compiler/spec-value.go +25 -18
  17. package/compiler/stmt-assign.go +128 -91
  18. package/compiler/stmt-for.go +78 -1
  19. package/compiler/stmt-range.go +333 -461
  20. package/compiler/stmt.go +46 -9
  21. package/compiler/type.go +14 -11
  22. package/dist/gs/builtin/builtin.d.ts +8 -0
  23. package/dist/gs/builtin/builtin.js +31 -0
  24. package/dist/gs/builtin/builtin.js.map +1 -1
  25. package/dist/gs/builtin/map.d.ts +4 -4
  26. package/dist/gs/builtin/map.js +12 -6
  27. package/dist/gs/builtin/map.js.map +1 -1
  28. package/dist/gs/builtin/slice.d.ts +14 -8
  29. package/dist/gs/builtin/slice.js +131 -31
  30. package/dist/gs/builtin/slice.js.map +1 -1
  31. package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
  32. package/dist/gs/github.com/pkg/errors/errors.js +232 -0
  33. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
  34. package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
  35. package/dist/gs/github.com/pkg/errors/go113.js +34 -0
  36. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
  37. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
  38. package/dist/gs/github.com/pkg/errors/index.js +4 -0
  39. package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
  40. package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
  41. package/dist/gs/github.com/pkg/errors/stack.js +111 -0
  42. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
  43. package/dist/gs/maps/index.d.ts +2 -0
  44. package/dist/gs/maps/index.js +3 -0
  45. package/dist/gs/maps/index.js.map +1 -0
  46. package/dist/gs/maps/iter.d.ts +7 -0
  47. package/dist/gs/maps/iter.gs.d.ts +7 -0
  48. package/dist/gs/maps/iter.gs.js +65 -0
  49. package/dist/gs/maps/iter.gs.js.map +1 -0
  50. package/dist/gs/maps/iter.js +57 -0
  51. package/dist/gs/maps/iter.js.map +1 -0
  52. package/dist/gs/maps/maps.d.ts +7 -0
  53. package/dist/gs/maps/maps.gs.d.ts +7 -0
  54. package/dist/gs/maps/maps.gs.js +79 -0
  55. package/dist/gs/maps/maps.gs.js.map +1 -0
  56. package/dist/gs/maps/maps.js +67 -0
  57. package/dist/gs/maps/maps.js.map +1 -0
  58. package/dist/gs/math/abs.gs.d.ts +1 -0
  59. package/dist/gs/math/abs.gs.js +10 -0
  60. package/dist/gs/math/abs.gs.js.map +1 -0
  61. package/dist/gs/math/acosh.gs.d.ts +2 -0
  62. package/dist/gs/math/acosh.gs.js +14 -0
  63. package/dist/gs/math/acosh.gs.js.map +1 -0
  64. package/dist/gs/math/asin.gs.d.ts +4 -0
  65. package/dist/gs/math/asin.gs.js +24 -0
  66. package/dist/gs/math/asin.gs.js.map +1 -0
  67. package/dist/gs/math/asinh.gs.d.ts +2 -0
  68. package/dist/gs/math/asinh.gs.js +14 -0
  69. package/dist/gs/math/asinh.gs.js.map +1 -0
  70. package/dist/gs/math/atan.gs.d.ts +4 -0
  71. package/dist/gs/math/atan.gs.js +22 -0
  72. package/dist/gs/math/atan.gs.js.map +1 -0
  73. package/dist/gs/math/atan2.gs.d.ts +2 -0
  74. package/dist/gs/math/atan2.gs.js +30 -0
  75. package/dist/gs/math/atan2.gs.js.map +1 -0
  76. package/dist/gs/math/atanh.gs.d.ts +2 -0
  77. package/dist/gs/math/atanh.gs.js +16 -0
  78. package/dist/gs/math/atanh.gs.js.map +1 -0
  79. package/dist/gs/math/bits.gs.d.ts +5 -0
  80. package/dist/gs/math/bits.gs.js +46 -0
  81. package/dist/gs/math/bits.gs.js.map +1 -0
  82. package/dist/gs/math/cbrt.gs.d.ts +2 -0
  83. package/dist/gs/math/cbrt.gs.js +14 -0
  84. package/dist/gs/math/cbrt.gs.js.map +1 -0
  85. package/dist/gs/math/const.gs.d.ts +30 -0
  86. package/dist/gs/math/const.gs.js +61 -0
  87. package/dist/gs/math/const.gs.js.map +1 -0
  88. package/dist/gs/math/copysign.gs.d.ts +1 -0
  89. package/dist/gs/math/copysign.gs.js +20 -0
  90. package/dist/gs/math/copysign.gs.js.map +1 -0
  91. package/dist/gs/math/dim.gs.d.ts +5 -0
  92. package/dist/gs/math/dim.gs.js +69 -0
  93. package/dist/gs/math/dim.gs.js.map +1 -0
  94. package/dist/gs/math/erf.gs.d.ts +4 -0
  95. package/dist/gs/math/erf.gs.js +336 -0
  96. package/dist/gs/math/erf.gs.js.map +1 -0
  97. package/dist/gs/math/erfinv.gs.d.ts +2 -0
  98. package/dist/gs/math/erfinv.gs.js +118 -0
  99. package/dist/gs/math/erfinv.gs.js.map +1 -0
  100. package/dist/gs/math/exp.gs.d.ts +5 -0
  101. package/dist/gs/math/exp.gs.js +30 -0
  102. package/dist/gs/math/exp.gs.js.map +1 -0
  103. package/dist/gs/math/expm1.gs.d.ts +2 -0
  104. package/dist/gs/math/expm1.gs.js +17 -0
  105. package/dist/gs/math/expm1.gs.js.map +1 -0
  106. package/dist/gs/math/floor.gs.d.ts +8 -0
  107. package/dist/gs/math/floor.gs.js +75 -0
  108. package/dist/gs/math/floor.gs.js.map +1 -0
  109. package/dist/gs/math/fma.gs.d.ts +1 -0
  110. package/dist/gs/math/fma.gs.js +8 -0
  111. package/dist/gs/math/fma.gs.js.map +1 -0
  112. package/dist/gs/math/frexp.gs.d.ts +2 -0
  113. package/dist/gs/math/frexp.gs.js +28 -0
  114. package/dist/gs/math/frexp.gs.js.map +1 -0
  115. package/dist/gs/math/gamma.gs.d.ts +3 -0
  116. package/dist/gs/math/gamma.gs.js +149 -0
  117. package/dist/gs/math/gamma.gs.js.map +1 -0
  118. package/dist/gs/math/hypot.gs.d.ts +2 -0
  119. package/dist/gs/math/hypot.gs.js +16 -0
  120. package/dist/gs/math/hypot.gs.js.map +1 -0
  121. package/dist/gs/math/index.d.ts +44 -0
  122. package/dist/gs/math/index.js +45 -0
  123. package/dist/gs/math/index.js.map +1 -0
  124. package/dist/gs/math/j0.gs.d.ts +4 -0
  125. package/dist/gs/math/j0.gs.js +228 -0
  126. package/dist/gs/math/j0.gs.js.map +1 -0
  127. package/dist/gs/math/j1.gs.d.ts +4 -0
  128. package/dist/gs/math/j1.gs.js +211 -0
  129. package/dist/gs/math/j1.gs.js.map +1 -0
  130. package/dist/gs/math/jn.gs.d.ts +2 -0
  131. package/dist/gs/math/jn.gs.js +412 -0
  132. package/dist/gs/math/jn.gs.js.map +1 -0
  133. package/dist/gs/math/ldexp.gs.d.ts +2 -0
  134. package/dist/gs/math/ldexp.gs.js +20 -0
  135. package/dist/gs/math/ldexp.gs.js.map +1 -0
  136. package/dist/gs/math/lgamma.gs.d.ts +2 -0
  137. package/dist/gs/math/lgamma.gs.js +243 -0
  138. package/dist/gs/math/lgamma.gs.js.map +1 -0
  139. package/dist/gs/math/log.gs.d.ts +2 -0
  140. package/dist/gs/math/log.gs.js +16 -0
  141. package/dist/gs/math/log.gs.js.map +1 -0
  142. package/dist/gs/math/log10.gs.d.ts +4 -0
  143. package/dist/gs/math/log10.gs.js +17 -0
  144. package/dist/gs/math/log10.gs.js.map +1 -0
  145. package/dist/gs/math/log1p.gs.d.ts +2 -0
  146. package/dist/gs/math/log1p.gs.js +17 -0
  147. package/dist/gs/math/log1p.gs.js.map +1 -0
  148. package/dist/gs/math/logb.gs.d.ts +3 -0
  149. package/dist/gs/math/logb.gs.js +43 -0
  150. package/dist/gs/math/logb.gs.js.map +1 -0
  151. package/dist/gs/math/mod.gs.d.ts +2 -0
  152. package/dist/gs/math/mod.gs.js +26 -0
  153. package/dist/gs/math/mod.gs.js.map +1 -0
  154. package/dist/gs/math/modf.gs.d.ts +2 -0
  155. package/dist/gs/math/modf.gs.js +24 -0
  156. package/dist/gs/math/modf.gs.js.map +1 -0
  157. package/dist/gs/math/nextafter.gs.d.ts +2 -0
  158. package/dist/gs/math/nextafter.gs.js +66 -0
  159. package/dist/gs/math/nextafter.gs.js.map +1 -0
  160. package/dist/gs/math/pow.gs.d.ts +3 -0
  161. package/dist/gs/math/pow.gs.js +40 -0
  162. package/dist/gs/math/pow.gs.js.map +1 -0
  163. package/dist/gs/math/pow10.gs.d.ts +1 -0
  164. package/dist/gs/math/pow10.gs.js +14 -0
  165. package/dist/gs/math/pow10.gs.js.map +1 -0
  166. package/dist/gs/math/remainder.gs.d.ts +2 -0
  167. package/dist/gs/math/remainder.gs.js +25 -0
  168. package/dist/gs/math/remainder.gs.js.map +1 -0
  169. package/dist/gs/math/signbit.gs.d.ts +1 -0
  170. package/dist/gs/math/signbit.gs.js +5 -0
  171. package/dist/gs/math/signbit.gs.js.map +1 -0
  172. package/dist/gs/math/sin.gs.d.ts +4 -0
  173. package/dist/gs/math/sin.gs.js +29 -0
  174. package/dist/gs/math/sin.gs.js.map +1 -0
  175. package/dist/gs/math/sincos.gs.d.ts +1 -0
  176. package/dist/gs/math/sincos.gs.js +11 -0
  177. package/dist/gs/math/sincos.gs.js.map +1 -0
  178. package/dist/gs/math/sinh.gs.d.ts +4 -0
  179. package/dist/gs/math/sinh.gs.js +27 -0
  180. package/dist/gs/math/sinh.gs.js.map +1 -0
  181. package/dist/gs/math/sqrt.gs.d.ts +2 -0
  182. package/dist/gs/math/sqrt.gs.js +15 -0
  183. package/dist/gs/math/sqrt.gs.js.map +1 -0
  184. package/dist/gs/math/tan.gs.d.ts +2 -0
  185. package/dist/gs/math/tan.gs.js +17 -0
  186. package/dist/gs/math/tan.gs.js.map +1 -0
  187. package/dist/gs/math/tanh.gs.d.ts +2 -0
  188. package/dist/gs/math/tanh.gs.js +17 -0
  189. package/dist/gs/math/tanh.gs.js.map +1 -0
  190. package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
  191. package/dist/gs/math/trig_reduce.gs.js +62 -0
  192. package/dist/gs/math/trig_reduce.gs.js.map +1 -0
  193. package/dist/gs/math/unsafe.gs.d.ts +4 -0
  194. package/dist/gs/math/unsafe.gs.js +47 -0
  195. package/dist/gs/math/unsafe.gs.js.map +1 -0
  196. package/dist/gs/slices/slices.d.ts +6 -0
  197. package/dist/gs/slices/slices.js +8 -0
  198. package/dist/gs/slices/slices.js.map +1 -1
  199. package/dist/gs/strconv/atob.gs.d.ts +4 -0
  200. package/dist/gs/strconv/atob.gs.js +42 -0
  201. package/dist/gs/strconv/atob.gs.js.map +1 -0
  202. package/dist/gs/strconv/atof.gs.d.ts +2 -0
  203. package/dist/gs/strconv/atof.gs.js +51 -0
  204. package/dist/gs/strconv/atof.gs.js.map +1 -0
  205. package/dist/gs/strconv/atoi.gs.d.ts +33 -0
  206. package/dist/gs/strconv/atoi.gs.js +200 -0
  207. package/dist/gs/strconv/atoi.gs.js.map +1 -0
  208. package/dist/gs/strconv/doc.gs.d.ts +1 -0
  209. package/dist/gs/strconv/doc.gs.js +2 -0
  210. package/dist/gs/strconv/doc.gs.js.map +1 -0
  211. package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
  212. package/dist/gs/strconv/ftoa.gs.js +58 -0
  213. package/dist/gs/strconv/ftoa.gs.js.map +1 -0
  214. package/dist/gs/strconv/index.d.ts +6 -0
  215. package/dist/gs/strconv/index.js +7 -0
  216. package/dist/gs/strconv/index.js.map +1 -0
  217. package/dist/gs/strconv/itoa.gs.d.ts +6 -0
  218. package/dist/gs/strconv/itoa.gs.js +37 -0
  219. package/dist/gs/strconv/itoa.gs.js.map +1 -0
  220. package/dist/gs/strconv/quote.gs.d.ts +19 -0
  221. package/dist/gs/strconv/quote.gs.js +217 -0
  222. package/dist/gs/strconv/quote.gs.js.map +1 -0
  223. package/dist/gs/strings/index.d.ts +3 -0
  224. package/dist/gs/strings/index.js +4 -0
  225. package/dist/gs/strings/index.js.map +1 -1
  226. package/dist/gs/strings/replace.d.ts +0 -74
  227. package/dist/gs/strings/replace.js +6 -204
  228. package/dist/gs/strings/replace.js.map +1 -1
  229. package/dist/gs/strings/search.d.ts +0 -1
  230. package/dist/gs/strings/search.js +0 -21
  231. package/dist/gs/strings/search.js.map +1 -1
  232. package/gs/builtin/builtin.ts +40 -0
  233. package/gs/builtin/map.ts +12 -7
  234. package/gs/builtin/slice.ts +174 -34
  235. package/gs/github.com/pkg/errors/errors.ts +307 -0
  236. package/gs/github.com/pkg/errors/go113.ts +39 -0
  237. package/gs/github.com/pkg/errors/index.ts +3 -0
  238. package/gs/github.com/pkg/errors/stack.ts +127 -0
  239. package/gs/maps/index.ts +2 -0
  240. package/gs/maps/iter.ts +67 -0
  241. package/gs/maps/maps.ts +89 -0
  242. package/gs/math/TODO.md +156 -0
  243. package/gs/math/abs.gs.test.ts +29 -0
  244. package/gs/math/abs.gs.ts +13 -0
  245. package/gs/math/acosh.gs.test.ts +39 -0
  246. package/gs/math/acosh.gs.ts +21 -0
  247. package/gs/math/asin.gs.test.ts +66 -0
  248. package/gs/math/asin.gs.ts +27 -0
  249. package/gs/math/asinh.gs.test.ts +37 -0
  250. package/gs/math/asinh.gs.ts +21 -0
  251. package/gs/math/atan.gs.test.ts +49 -0
  252. package/gs/math/atan.gs.ts +27 -0
  253. package/gs/math/atan2.gs.test.ts +55 -0
  254. package/gs/math/atan2.gs.ts +37 -0
  255. package/gs/math/atanh.gs.test.ts +47 -0
  256. package/gs/math/atanh.gs.ts +21 -0
  257. package/gs/math/bits.gs.test.ts +88 -0
  258. package/gs/math/bits.gs.ts +61 -0
  259. package/gs/math/cbrt.gs.test.ts +57 -0
  260. package/gs/math/cbrt.gs.ts +20 -0
  261. package/gs/math/const.gs.test.ts +54 -0
  262. package/gs/math/const.gs.ts +93 -0
  263. package/gs/math/copysign.gs.test.ts +44 -0
  264. package/gs/math/copysign.gs.ts +27 -0
  265. package/gs/math/dim.gs.test.ts +102 -0
  266. package/gs/math/dim.gs.ts +84 -0
  267. package/gs/math/erf.gs.test.ts +92 -0
  268. package/gs/math/erf.gs.ts +409 -0
  269. package/gs/math/erfinv.gs.test.ts +104 -0
  270. package/gs/math/erfinv.gs.ts +169 -0
  271. package/gs/math/exp.gs.test.ts +82 -0
  272. package/gs/math/exp.gs.ts +39 -0
  273. package/gs/math/expm1.gs.test.ts +48 -0
  274. package/gs/math/expm1.gs.ts +23 -0
  275. package/gs/math/floor.gs.test.ts +146 -0
  276. package/gs/math/floor.gs.ts +88 -0
  277. package/gs/math/fma.gs.test.ts +83 -0
  278. package/gs/math/fma.gs.ts +7 -0
  279. package/gs/math/frexp.gs.test.ts +146 -0
  280. package/gs/math/frexp.gs.ts +37 -0
  281. package/gs/math/gamma.gs.test.ts +66 -0
  282. package/gs/math/gamma.gs.ts +158 -0
  283. package/gs/math/hypot.gs.test.ts +73 -0
  284. package/gs/math/hypot.gs.ts +23 -0
  285. package/gs/math/index.ts +44 -0
  286. package/gs/math/j0.gs.test.ts +74 -0
  287. package/gs/math/j0.gs.ts +257 -0
  288. package/gs/math/j1.gs.test.ts +81 -0
  289. package/gs/math/j1.gs.ts +231 -0
  290. package/gs/math/jn.gs.test.ts +133 -0
  291. package/gs/math/jn.gs.ts +447 -0
  292. package/gs/math/ldexp.gs.test.ts +128 -0
  293. package/gs/math/ldexp.gs.ts +28 -0
  294. package/gs/math/lgamma.gs.test.ts +102 -0
  295. package/gs/math/lgamma.gs.ts +251 -0
  296. package/gs/math/log.gs.test.ts +40 -0
  297. package/gs/math/log.gs.ts +21 -0
  298. package/gs/math/log10.gs.test.ts +80 -0
  299. package/gs/math/log10.gs.ts +25 -0
  300. package/gs/math/log1p.gs.test.ts +55 -0
  301. package/gs/math/log1p.gs.ts +24 -0
  302. package/gs/math/logb.gs.test.ts +87 -0
  303. package/gs/math/logb.gs.ts +54 -0
  304. package/gs/math/mod.gs.test.ts +64 -0
  305. package/gs/math/mod.gs.ts +36 -0
  306. package/gs/math/modf.gs.test.ts +80 -0
  307. package/gs/math/modf.gs.ts +32 -0
  308. package/gs/math/nextafter.gs.test.ts +107 -0
  309. package/gs/math/nextafter.gs.ts +71 -0
  310. package/gs/math/pow.gs.test.ts +103 -0
  311. package/gs/math/pow.gs.ts +55 -0
  312. package/gs/math/pow10.gs.test.ts +58 -0
  313. package/gs/math/pow10.gs.ts +19 -0
  314. package/gs/math/remainder.gs.test.ts +70 -0
  315. package/gs/math/remainder.gs.ts +33 -0
  316. package/gs/math/signbit.gs.test.ts +33 -0
  317. package/gs/math/signbit.gs.ts +8 -0
  318. package/gs/math/sin.gs.test.ts +83 -0
  319. package/gs/math/sin.gs.ts +38 -0
  320. package/gs/math/sincos.gs.test.ts +91 -0
  321. package/gs/math/sincos.gs.ts +15 -0
  322. package/gs/math/sinh.gs.test.ts +66 -0
  323. package/gs/math/sinh.gs.ts +34 -0
  324. package/gs/math/sqrt.gs.test.ts +49 -0
  325. package/gs/math/sqrt.gs.ts +20 -0
  326. package/gs/math/tan.gs.test.ts +50 -0
  327. package/gs/math/tan.gs.ts +23 -0
  328. package/gs/math/tanh.gs.test.ts +52 -0
  329. package/gs/math/tanh.gs.ts +23 -0
  330. package/gs/math/trig_reduce.gs.ts +66 -0
  331. package/gs/math/unsafe.gs.ts +52 -0
  332. package/gs/slices/slices.ts +9 -0
  333. package/gs/strconv/atob.gs.ts +45 -0
  334. package/gs/strconv/atof.gs.ts +60 -0
  335. package/gs/strconv/atoi.gs.ts +243 -0
  336. package/gs/strconv/doc.gs.ts +2 -0
  337. package/gs/strconv/ftoa.gs.ts +66 -0
  338. package/gs/strconv/index.ts +6 -0
  339. package/gs/strconv/itoa.gs.ts +41 -0
  340. package/gs/strconv/quote.gs.ts +245 -0
  341. package/gs/strings/index.ts +4 -0
  342. package/gs/strings/replace.ts +9 -237
  343. package/gs/strings/search.ts +0 -28
  344. package/package.json +1 -1
  345. package/gs/stringslite/godoc.txt +0 -17
  346. package/gs/stringslite/index.ts +0 -1
  347. package/gs/stringslite/strings.ts +0 -82
@@ -0,0 +1 @@
1
+ export declare function Signbit(x: number): boolean;
@@ -0,0 +1,5 @@
1
+ // Signbit reports whether x is negative or negative zero.
2
+ export function Signbit(x) {
3
+ return x < 0 || Object.is(x, -0);
4
+ }
5
+ //# sourceMappingURL=signbit.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signbit.gs.js","sourceRoot":"","sources":["../../../gs/math/signbit.gs.ts"],"names":[],"mappings":"AAGA,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,CAAS;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function Cos(x: number): number;
2
+ export declare function cos(x: number): number;
3
+ export declare function Sin(x: number): number;
4
+ export declare function sin(x: number): number;
@@ -0,0 +1,29 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ let _sin = $.arrayToSlice([1.58962301576546568060e-10, -2.50507477628578072866e-8, 2.75573136213857245213e-6, -1.98412698295895385996e-4, 8.33333333332211858878e-3, -1.66666666666666307295e-1]);
3
+ let _cos = $.arrayToSlice([-1.13585365213876817300e-11, 2.08757008419747316778e-9, -2.75573141792967388112e-7, 2.48015872888517045348e-5, -1.38888888888730564116e-3, 4.16666666666665929218e-2]);
4
+ // Cos returns the cosine of the radian argument x.
5
+ //
6
+ // Special cases are:
7
+ //
8
+ // Cos(±Inf) = NaN
9
+ // Cos(NaN) = NaN
10
+ export function Cos(x) {
11
+ return Math.cos(x);
12
+ }
13
+ export function cos(x) {
14
+ return Math.cos(x);
15
+ }
16
+ // Sin returns the sine of the radian argument x.
17
+ //
18
+ // Special cases are:
19
+ //
20
+ // Sin(±0) = ±0
21
+ // Sin(±Inf) = NaN
22
+ // Sin(NaN) = NaN
23
+ export function Sin(x) {
24
+ return Math.sin(x);
25
+ }
26
+ export function sin(x) {
27
+ return Math.sin(x);
28
+ }
29
+ //# sourceMappingURL=sin.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sin.gs.js","sourceRoot":"","sources":["../../../gs/math/sin.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAKlD,IAAI,IAAI,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEzM,IAAI,IAAI,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC,CAAA;AAEzM,mDAAmD;AACnD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,kBAAkB;AAClB,iBAAiB;AACjB,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,iDAAiD;AACjD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,kBAAkB;AAClB,iBAAiB;AACjB,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function Sincos(x: number): [number, number];
@@ -0,0 +1,11 @@
1
+ // Sincos returns Sin(x), Cos(x).
2
+ //
3
+ // Special cases are:
4
+ //
5
+ // Sincos(±0) = ±0, 1
6
+ // Sincos(±Inf) = NaN, NaN
7
+ // Sincos(NaN) = NaN, NaN
8
+ export function Sincos(x) {
9
+ return [Math.sin(x), Math.cos(x)];
10
+ }
11
+ //# sourceMappingURL=sincos.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sincos.gs.js","sourceRoot":"","sources":["../../../gs/math/sincos.gs.ts"],"names":[],"mappings":"AAIA,iCAAiC;AACjC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,qBAAqB;AACrB,0BAA0B;AAC1B,yBAAyB;AACzB,MAAM,UAAU,MAAM,CAAC,CAAS;IAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function Sinh(x: number): number;
2
+ export declare function sinh(x: number): number;
3
+ export declare function Cosh(x: number): number;
4
+ export declare function cosh(x: number): number;
@@ -0,0 +1,27 @@
1
+ // Sinh returns the hyperbolic sine of x.
2
+ //
3
+ // Special cases are:
4
+ //
5
+ // Sinh(±0) = ±0
6
+ // Sinh(±Inf) = ±Inf
7
+ // Sinh(NaN) = NaN
8
+ export function Sinh(x) {
9
+ return Math.sinh(x);
10
+ }
11
+ export function sinh(x) {
12
+ return Math.sinh(x);
13
+ }
14
+ // Cosh returns the hyperbolic cosine of x.
15
+ //
16
+ // Special cases are:
17
+ //
18
+ // Cosh(±0) = 1
19
+ // Cosh(±Inf) = +Inf
20
+ // Cosh(NaN) = NaN
21
+ export function Cosh(x) {
22
+ return Math.cosh(x);
23
+ }
24
+ export function cosh(x) {
25
+ return Math.cosh(x);
26
+ }
27
+ //# sourceMappingURL=sinh.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinh.gs.js","sourceRoot":"","sources":["../../../gs/math/sinh.gs.ts"],"names":[],"mappings":"AAIA,yCAAyC;AACzC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,gBAAgB;AAChB,oBAAoB;AACpB,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,2CAA2C;AAC3C,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,oBAAoB;AACpB,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Sqrt(x: number): number;
2
+ export declare function sqrt(x: number): number;
@@ -0,0 +1,15 @@
1
+ // Sqrt returns the square root of x.
2
+ //
3
+ // Special cases are:
4
+ //
5
+ // Sqrt(+Inf) = +Inf
6
+ // Sqrt(±0) = ±0
7
+ // Sqrt(x < 0) = NaN
8
+ // Sqrt(NaN) = NaN
9
+ export function Sqrt(x) {
10
+ return Math.sqrt(x);
11
+ }
12
+ export function sqrt(x) {
13
+ return Math.sqrt(x);
14
+ }
15
+ //# sourceMappingURL=sqrt.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqrt.gs.js","sourceRoot":"","sources":["../../../gs/math/sqrt.gs.ts"],"names":[],"mappings":"AAIA,qCAAqC;AACrC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,oBAAoB;AACpB,gBAAgB;AAChB,oBAAoB;AACpB,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Tan(x: number): number;
2
+ export declare function tan(x: number): number;
@@ -0,0 +1,17 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ let _tanP = $.arrayToSlice([-1.30936939181383777646e4, 1.15351664838587416140e6, -1.79565251976484877988e7]);
3
+ let _tanQ = $.arrayToSlice([1.00000000000000000000e0, 1.36812963470692954678e4, -1.32089234440210967447e6, 2.50083801823357915839e7, -5.38695755929454629881e7]);
4
+ // Tan returns the tangent of the radian argument x.
5
+ //
6
+ // Special cases are:
7
+ //
8
+ // Tan(±0) = ±0
9
+ // Tan(±Inf) = NaN
10
+ // Tan(NaN) = NaN
11
+ export function Tan(x) {
12
+ return Math.tan(x);
13
+ }
14
+ export function tan(x) {
15
+ return Math.tan(x);
16
+ }
17
+ //# sourceMappingURL=tan.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tan.gs.js","sourceRoot":"","sources":["../../../gs/math/tan.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAIlD,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAEpH,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAExK,oDAAoD;AACpD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,kBAAkB;AAClB,iBAAiB;AACjB,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Tanh(x: number): number;
2
+ export declare function tanh(x: number): number;
@@ -0,0 +1,17 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ let tanhP = $.arrayToSlice([-9.64399179425052238628e-1, -9.92877231001918586564e1, -1.61468768441708447952e3]);
3
+ let tanhQ = $.arrayToSlice([1.12811678491632931402e2, 2.23548839060100448583e3, 4.84406305325125486048e3]);
4
+ // Tanh returns the hyperbolic tangent of x.
5
+ //
6
+ // Special cases are:
7
+ //
8
+ // Tanh(±0) = ±0
9
+ // Tanh(±Inf) = ±1
10
+ // Tanh(NaN) = NaN
11
+ export function Tanh(x) {
12
+ return Math.tanh(x);
13
+ }
14
+ export function tanh(x) {
15
+ return Math.tanh(x);
16
+ }
17
+ //# sourceMappingURL=tanh.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tanh.gs.js","sourceRoot":"","sources":["../../../gs/math/tanh.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAIlD,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,yBAAyB,EAAE,CAAC,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAEtH,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAElH,4CAA4C;AAC5C,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,gBAAgB;AAChB,kBAAkB;AAClB,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function trigReduce(x: number): [number, number];
@@ -0,0 +1,62 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { Float64bits, Float64frombits } from "./unsafe.gs.js";
3
+ import * as bits from "@goscript/math/bits/index.js";
4
+ let reduceThreshold = (1 << 29);
5
+ // trigReduce implements Payne-Hanek range reduction by Pi/4
6
+ // for x > 0. It returns the integer part mod 8 (j) and
7
+ // the fractional part (z) of x / (Pi/4).
8
+ // The implementation is based on:
9
+ // "ARGUMENT REDUCTION FOR HUGE ARGUMENTS: Good to the Last Bit"
10
+ // K. C. Ng et al, March 24, 1992
11
+ // The simulated multi-precision calculation of x*B uses 64-bit integer arithmetic.
12
+ export function trigReduce(x) {
13
+ let j = 0;
14
+ let z = 0;
15
+ {
16
+ let PI4 = 3.14159 / 4;
17
+ if (x < 0.785398) {
18
+ return [0, x];
19
+ }
20
+ // Extract out the integer and exponent such that,
21
+ // x = ix * 2 ** exp.
22
+ let ix = Float64bits(x);
23
+ let exp = $.int(((ix >> 52) & 2047)) - 1023 - 52;
24
+ ix &= ~(2047 << 52);
25
+ ix |= (1 << 52);
26
+ // Use the exponent to extract the 3 appropriate uint64 digits from mPi4,
27
+ // B ~ (z0, z1, z2), such that the product leading digit has the exponent -61.
28
+ // Note, exp >= -53 since x >= PI4 and exp < 971 for maximum float64.
29
+ let [digit, bitshift] = [$.int((exp + 61) / 64), (exp + 61) % 64];
30
+ let z0 = (((mPi4[digit] << bitshift)) | ((mPi4[digit + 1] >> (64 - bitshift))));
31
+ let z1 = (((mPi4[digit + 1] << bitshift)) | ((mPi4[digit + 2] >> (64 - bitshift))));
32
+ let z2 = (((mPi4[digit + 2] << bitshift)) | ((mPi4[digit + 3] >> (64 - bitshift))));
33
+ // Multiply mantissa by the digits and extract the upper two digits (hi, lo).
34
+ let [z2hi,] = bits.Mul64(BigInt(z2), BigInt(ix));
35
+ let [z1hi, z1lo] = bits.Mul64(BigInt(z1), BigInt(ix));
36
+ let z0lo = BigInt(z0 * ix);
37
+ let [lo, c] = bits.Add64(z1lo, z2hi, 0n);
38
+ let [hi,] = bits.Add64(z0lo, z1hi, c);
39
+ // The top 3 bits are j.
40
+ j = Number(hi >> 61n);
41
+ // Extract the fraction and find its magnitude.
42
+ hi = ((hi << 3n) | (lo >> 61n));
43
+ let lz = bits.LeadingZeros64(hi);
44
+ let e = 1023 - (lz + 1);
45
+ // Clear implicit mantissa bit and shift into place.
46
+ hi = (((hi << BigInt(lz + 1))) | ((lo >> BigInt(64 - (lz + 1)))));
47
+ hi >>= 64n - 52n;
48
+ // Include the exponent and convert to a float.
49
+ hi |= BigInt(e) << 52n;
50
+ z = Float64frombits(Number(hi));
51
+ // Map zeros to origin.
52
+ if ((j & 1) == 1) {
53
+ j++;
54
+ j &= 7;
55
+ z--;
56
+ }
57
+ // Multiply the fractional part by pi/4.
58
+ return [j, z * 0.785398];
59
+ }
60
+ }
61
+ let mPi4 = $.arrayToSlice([0x0000000000000001, 0x45f306dc9c882a53, 0xf84eafa3ea69bb81, 0xb6c52b3278872083, 0xfca2c757bd778ac3, 0x6e48dc74849ba5c0, 0x0c925dd413a32439, 0xfc3bd63962534e7d, 0xd1046bea5d768909, 0xd338e04d68befc82, 0x7323ac7306a673e9, 0x3908bf177bf25076, 0x3ff12fffbc0b301f, 0xde5e2316b414da3e, 0xda6cfd9e4f96136e, 0x9e8c7ecd3cbfd45a, 0xea4f758fd7cbe2f6, 0x7a0e73ef14a525d4, 0xd7f6bf623f1aba10, 0xac06608df8f6d757]);
62
+ //# sourceMappingURL=trig_reduce.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trig_reduce.gs.js","sourceRoot":"","sources":["../../../gs/math/trig_reduce.gs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function Float32bits(f: number): number;
2
+ export declare function Float32frombits(b: number): number;
3
+ export declare function Float64bits(f: number): number;
4
+ export declare function Float64frombits(b: number): number;
@@ -0,0 +1,47 @@
1
+ // Float32bits returns the IEEE 754 binary representation of f,
2
+ // with the sign bit of f and the result in the same bit position.
3
+ // Float32bits(Float32frombits(x)) == x.
4
+ export function Float32bits(f) {
5
+ const buffer = new ArrayBuffer(4);
6
+ const view = new DataView(buffer);
7
+ view.setFloat32(0, f, true); // little endian
8
+ return view.getUint32(0, true);
9
+ }
10
+ // Float32frombits returns the floating-point number corresponding
11
+ // to the IEEE 754 binary representation b, with the sign bit of b
12
+ // and the result in the same bit position.
13
+ // Float32frombits(Float32bits(x)) == x.
14
+ export function Float32frombits(b) {
15
+ const buffer = new ArrayBuffer(4);
16
+ const view = new DataView(buffer);
17
+ view.setUint32(0, b, true); // little endian
18
+ return view.getFloat32(0, true);
19
+ }
20
+ // Float64bits returns the IEEE 754 binary representation of f,
21
+ // with the sign bit of f and the result in the same bit position,
22
+ // and Float64bits(Float64frombits(x)) == x.
23
+ export function Float64bits(f) {
24
+ const buffer = new ArrayBuffer(8);
25
+ const view = new DataView(buffer);
26
+ view.setFloat64(0, f, true); // little endian
27
+ // JavaScript numbers are limited to 53-bit precision, so we need to handle this carefully
28
+ const low = view.getUint32(0, true);
29
+ const high = view.getUint32(4, true);
30
+ // Combine into a single number (may lose precision for very large values)
31
+ return high * 0x100000000 + low;
32
+ }
33
+ // Float64frombits returns the floating-point number corresponding
34
+ // to the IEEE 754 binary representation b, with the sign bit of b
35
+ // and the result in the same bit position.
36
+ // Float64frombits(Float64bits(x)) == x.
37
+ export function Float64frombits(b) {
38
+ const buffer = new ArrayBuffer(8);
39
+ const view = new DataView(buffer);
40
+ // Split the number into high and low 32-bit parts
41
+ const low = b & 0xFFFFFFFF;
42
+ const high = Math.floor(b / 0x100000000);
43
+ view.setUint32(0, low, true); // little endian
44
+ view.setUint32(4, high, true);
45
+ return view.getFloat64(0, true);
46
+ }
47
+ //# sourceMappingURL=unsafe.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsafe.gs.js","sourceRoot":"","sources":["../../../gs/math/unsafe.gs.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,kEAAkE;AAClE,wCAAwC;AACxC,MAAM,UAAU,WAAW,CAAC,CAAS;IACpC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,kEAAkE;AAClE,kEAAkE;AAClE,2CAA2C;AAC3C,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAC,CAAS;IACxC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB;IAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,+DAA+D;AAC/D,kEAAkE;AAClE,4CAA4C;AAC5C,MAAM,UAAU,WAAW,CAAC,CAAS;IACpC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB;IAC7C,0FAA0F;IAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,0EAA0E;IAC1E,OAAO,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,kEAAkE;AAClE,kEAAkE;AAClE,2CAA2C;AAC3C,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAC,CAAS;IACxC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,kDAAkD;IAClD,MAAM,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB;IAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -6,3 +6,9 @@ import * as $ from '@goscript/builtin/builtin.js';
6
6
  * @returns An iterator function that yields index-value pairs
7
7
  */
8
8
  export declare function All<T>(s: $.Slice<T>): (yieldFunc: (index: number, value: T) => boolean) => void;
9
+ /**
10
+ * Sort sorts a slice in ascending order.
11
+ * This is equivalent to Go's slices.Sort function.
12
+ * @param s The slice to sort in place
13
+ */
14
+ export declare function Sort<T extends string | number>(s: $.Slice<T>): void;
@@ -17,4 +17,12 @@ export function All(s) {
17
17
  }
18
18
  };
19
19
  }
20
+ /**
21
+ * Sort sorts a slice in ascending order.
22
+ * This is equivalent to Go's slices.Sort function.
23
+ * @param s The slice to sort in place
24
+ */
25
+ export function Sort(s) {
26
+ $.sortSlice(s);
27
+ }
20
28
  //# sourceMappingURL=slices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,CAAa;IAEb,OAAO,UAAU,MAA4C;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAI,CAAS,CAAC,CAAC,CAAM,CAAA,CAAC,2CAA2C;YAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,CAAa;IAEb,OAAO,UAAU,MAA4C;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAI,CAAS,CAAC,CAAC,CAAM,CAAA,CAAC,2CAA2C;YAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAA4B,CAAa;IAC3D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare function ParseBool(str: string): [boolean, $.GoError];
3
+ export declare function FormatBool(b: boolean): string;
4
+ export declare function AppendBool(dst: $.Bytes, b: boolean): $.Bytes;
@@ -0,0 +1,42 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { syntaxError } from "./atoi.gs.js";
3
+ // ParseBool returns the boolean value represented by the string.
4
+ // It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
5
+ // Any other value returns an error.
6
+ export function ParseBool(str) {
7
+ switch (str) {
8
+ case "1":
9
+ case "t":
10
+ case "T":
11
+ case "true":
12
+ case "TRUE":
13
+ case "True":
14
+ return [true, null];
15
+ break;
16
+ case "0":
17
+ case "f":
18
+ case "F":
19
+ case "false":
20
+ case "FALSE":
21
+ case "False":
22
+ return [false, null];
23
+ break;
24
+ }
25
+ return [false, syntaxError("ParseBool", str)];
26
+ }
27
+ // FormatBool returns "true" or "false" according to the value of b.
28
+ export function FormatBool(b) {
29
+ if (b) {
30
+ return "true";
31
+ }
32
+ return "false";
33
+ }
34
+ // AppendBool appends "true" or "false", according to the value of b,
35
+ // to dst and returns the extended buffer.
36
+ export function AppendBool(dst, b) {
37
+ if (b) {
38
+ return $.append(dst, ...$.stringToBytes("true"));
39
+ }
40
+ return $.append(dst, ...$.stringToBytes("false"));
41
+ }
42
+ //# sourceMappingURL=atob.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atob.gs.js","sourceRoot":"","sources":["../../../gs/strconv/atob.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,iEAAiE;AACjE,sEAAsE;AACtE,oCAAoC;AACpC,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACnB,MAAK;QACN,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACX,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACpB,MAAK;IACP,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,CAAU;IACpC,IAAI,CAAC,EAAE,CAAC;QACP,OAAO,MAAM,CAAA;IACd,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED,qEAAqE;AACrE,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,CAAU;IAClD,IAAI,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare function ParseFloat(s: string, bitSize: number): [number, $.GoError];
@@ -0,0 +1,51 @@
1
+ import { ErrSyntax, ErrRange, NumError } from "./atoi.gs.js";
2
+ // ParseFloat converts the string s to a floating-point number
3
+ // with the precision specified by bitSize: 32 for float32, or 64 for float64.
4
+ // When bitSize=32, the result still has type float64, but it will be
5
+ // convertible to float32 without changing its value.
6
+ export function ParseFloat(s, bitSize) {
7
+ if (s === "") {
8
+ return [0, new NumError({ Func: "ParseFloat", Num: s, Err: ErrSyntax })];
9
+ }
10
+ // Validate bitSize
11
+ if (bitSize !== 32 && bitSize !== 64) {
12
+ return [0, new NumError({ Func: "ParseFloat", Num: s, Err: ErrSyntax })];
13
+ }
14
+ // Handle special cases
15
+ const lower = s.toLowerCase();
16
+ switch (lower) {
17
+ case "+inf":
18
+ case "inf":
19
+ case "+infinity":
20
+ case "infinity":
21
+ return [Infinity, null];
22
+ case "-inf":
23
+ case "-infinity":
24
+ return [-Infinity, null];
25
+ case "nan":
26
+ return [NaN, null];
27
+ }
28
+ // Remove underscores if present (Go allows them in numeric literals)
29
+ let cleanS = s;
30
+ if (s.includes('_')) {
31
+ cleanS = s.replace(/_/g, '');
32
+ }
33
+ // Use JavaScript's parseFloat
34
+ const result = parseFloat(cleanS);
35
+ if (isNaN(result)) {
36
+ return [0, new NumError({ Func: "ParseFloat", Num: s, Err: ErrSyntax })];
37
+ }
38
+ // Check for range errors based on bitSize
39
+ if (bitSize === 32) {
40
+ const maxFloat32 = 3.4028234663852886e+38;
41
+ const minFloat32 = 1.175494351e-38;
42
+ if (isFinite(result) && Math.abs(result) > maxFloat32) {
43
+ return [result > 0 ? Infinity : -Infinity, new NumError({ Func: "ParseFloat", Num: s, Err: ErrRange })];
44
+ }
45
+ if (isFinite(result) && result !== 0 && Math.abs(result) < minFloat32) {
46
+ return [0, new NumError({ Func: "ParseFloat", Num: s, Err: ErrRange })];
47
+ }
48
+ }
49
+ return [result, null];
50
+ }
51
+ //# sourceMappingURL=atof.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atof.gs.js","sourceRoot":"","sources":["../../../gs/strconv/atof.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7D,8DAA8D;AAC9D,8EAA8E;AAC9E,qEAAqE;AACrE,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,OAAe;IACpD,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACf,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1B,KAAK,KAAK;YACT,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,qEAAqE;IACrE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,sBAAsB,CAAC;QAC1C,MAAM,UAAU,GAAG,eAAe,CAAC;QAEnC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;YACvD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;YACvE,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IAED,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare let ErrRange: $.GoError;
3
+ export declare let ErrSyntax: $.GoError;
4
+ export declare class NumError {
5
+ get Func(): string;
6
+ set Func(value: string);
7
+ get Num(): string;
8
+ set Num(value: string);
9
+ get Err(): $.GoError;
10
+ set Err(value: $.GoError);
11
+ _fields: {
12
+ Func: $.VarRef<string>;
13
+ Num: $.VarRef<string>;
14
+ Err: $.VarRef<$.GoError>;
15
+ };
16
+ constructor(init?: Partial<{
17
+ Err?: $.GoError;
18
+ Func?: string;
19
+ Num?: string;
20
+ }>);
21
+ clone(): NumError;
22
+ Error(): string;
23
+ Unwrap(): $.GoError;
24
+ static __typeInfo: $.StructTypeInfo;
25
+ }
26
+ export declare function syntaxError(fn: string, str: string): NumError;
27
+ export declare function rangeError(fn: string, str: string): NumError;
28
+ export declare function baseError(fn: string, str: string, base: number): NumError;
29
+ export declare function bitSizeError(fn: string, str: string, bitSize: number): NumError;
30
+ export declare let IntSize: number;
31
+ export declare function ParseUint(s: string, base: number, bitSize: number): [number, $.GoError];
32
+ export declare function ParseInt(s: string, base: number, bitSize: number): [number, $.GoError];
33
+ export declare function Atoi(s: string): [number, $.GoError];