goscript 0.0.37 → 0.0.39

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 (198) 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 +12 -0
  5. package/compiler/lit.go +100 -6
  6. package/compiler/protobuf.go +2 -2
  7. package/compiler/spec-value.go +3 -3
  8. package/compiler/spec.go +6 -3
  9. package/compiler/stmt-assign.go +1 -1
  10. package/dist/gs/builtin/builtin.d.ts +45 -0
  11. package/dist/gs/builtin/builtin.js +197 -0
  12. package/dist/gs/builtin/builtin.js.map +1 -1
  13. package/dist/gs/builtin/slice.js +2 -1
  14. package/dist/gs/builtin/slice.js.map +1 -1
  15. package/dist/gs/bytes/buffer.gs.d.ts +56 -0
  16. package/dist/gs/bytes/buffer.gs.js +611 -0
  17. package/dist/gs/bytes/buffer.gs.js.map +1 -0
  18. package/dist/gs/bytes/bytes.gs.d.ts +78 -0
  19. package/dist/gs/bytes/bytes.gs.js +1011 -0
  20. package/dist/gs/bytes/bytes.gs.js.map +1 -0
  21. package/dist/gs/bytes/index.d.ts +4 -0
  22. package/dist/gs/bytes/index.js +5 -0
  23. package/dist/gs/bytes/index.js.map +1 -0
  24. package/dist/gs/bytes/iter.gs.d.ts +9 -0
  25. package/dist/gs/bytes/iter.gs.js +143 -0
  26. package/dist/gs/bytes/iter.gs.js.map +1 -0
  27. package/dist/gs/bytes/reader.gs.d.ts +34 -0
  28. package/dist/gs/bytes/reader.gs.js +198 -0
  29. package/dist/gs/bytes/reader.gs.js.map +1 -0
  30. package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
  31. package/dist/gs/github.com/pkg/errors/errors.js +182 -23
  32. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  33. package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
  34. package/dist/gs/github.com/pkg/errors/go113.js +1 -1
  35. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
  36. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -3
  37. package/dist/gs/github.com/pkg/errors/index.js +3 -3
  38. package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
  39. package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
  40. package/dist/gs/github.com/pkg/errors/stack.js +8 -5
  41. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  42. package/dist/gs/internal/abi/index.d.ts +20 -0
  43. package/dist/gs/internal/abi/index.js +20 -0
  44. package/dist/gs/internal/abi/index.js.map +1 -0
  45. package/dist/gs/internal/bytealg/index.d.ts +14 -0
  46. package/dist/gs/internal/bytealg/index.js +139 -0
  47. package/dist/gs/internal/bytealg/index.js.map +1 -0
  48. package/dist/gs/internal/byteorder/index.d.ts +1 -1
  49. package/dist/gs/internal/byteorder/index.js +4 -4
  50. package/dist/gs/internal/byteorder/index.js.map +1 -1
  51. package/dist/gs/math/index.d.ts +44 -44
  52. package/dist/gs/math/index.js +44 -44
  53. package/dist/gs/math/index.js.map +1 -1
  54. package/dist/gs/os/index.d.ts +19 -19
  55. package/dist/gs/os/index.js +19 -19
  56. package/dist/gs/os/index.js.map +1 -1
  57. package/dist/gs/reflect/deepequal.d.ts +2 -0
  58. package/dist/gs/reflect/deepequal.js +91 -0
  59. package/dist/gs/reflect/deepequal.js.map +1 -0
  60. package/dist/gs/reflect/index.d.ts +8 -0
  61. package/dist/gs/reflect/index.js +10 -0
  62. package/dist/gs/reflect/index.js.map +1 -0
  63. package/dist/gs/reflect/iter.d.ts +4 -0
  64. package/dist/gs/reflect/iter.js +24 -0
  65. package/dist/gs/reflect/iter.js.map +1 -0
  66. package/dist/gs/reflect/map.d.ts +20 -0
  67. package/dist/gs/reflect/map.js +74 -0
  68. package/dist/gs/reflect/map.js.map +1 -0
  69. package/dist/gs/reflect/swapper.d.ts +2 -0
  70. package/dist/gs/reflect/swapper.js +46 -0
  71. package/dist/gs/reflect/swapper.js.map +1 -0
  72. package/dist/gs/reflect/type.d.ts +134 -0
  73. package/dist/gs/reflect/type.js +825 -0
  74. package/dist/gs/reflect/type.js.map +1 -0
  75. package/dist/gs/reflect/types.d.ts +90 -0
  76. package/dist/gs/reflect/types.js +119 -0
  77. package/dist/gs/reflect/types.js.map +1 -0
  78. package/dist/gs/reflect/value.d.ts +13 -0
  79. package/dist/gs/reflect/value.js +202 -0
  80. package/dist/gs/reflect/value.js.map +1 -0
  81. package/dist/gs/reflect/visiblefields.d.ts +4 -0
  82. package/dist/gs/reflect/visiblefields.js +149 -0
  83. package/dist/gs/reflect/visiblefields.js.map +1 -0
  84. package/dist/gs/strconv/index.d.ts +6 -6
  85. package/dist/gs/strconv/index.js +6 -6
  86. package/dist/gs/strconv/index.js.map +1 -1
  87. package/dist/gs/strings/index.d.ts +1 -1
  88. package/dist/gs/strings/index.js +1 -1
  89. package/dist/gs/strings/index.js.map +1 -1
  90. package/dist/gs/strings/replace.js.map +1 -1
  91. package/dist/gs/sync/atomic/index.d.ts +4 -4
  92. package/dist/gs/sync/atomic/index.js +4 -4
  93. package/dist/gs/sync/atomic/index.js.map +1 -1
  94. package/dist/gs/syscall/index.d.ts +6 -6
  95. package/dist/gs/syscall/index.js +34 -28
  96. package/dist/gs/syscall/index.js.map +1 -1
  97. package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
  98. package/dist/gs/unicode/utf8/utf8.js +4 -2
  99. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  100. package/dist/gs/unsafe/unsafe.js.map +1 -1
  101. package/gs/builtin/builtin.ts +219 -0
  102. package/gs/builtin/slice.ts +2 -1
  103. package/gs/bytes/buffer.gs.ts +614 -0
  104. package/gs/bytes/bytes.gs.ts +1180 -0
  105. package/gs/bytes/godoc.txt +69 -0
  106. package/gs/bytes/index.ts +69 -0
  107. package/gs/bytes/iter.gs.ts +149 -0
  108. package/gs/bytes/reader.gs.ts +230 -0
  109. package/gs/github.com/pkg/errors/errors.ts +408 -238
  110. package/gs/github.com/pkg/errors/go113.ts +5 -6
  111. package/gs/github.com/pkg/errors/index.ts +12 -3
  112. package/gs/github.com/pkg/errors/stack.ts +107 -105
  113. package/gs/internal/abi/index.ts +37 -0
  114. package/gs/internal/bytealg/index.ts +149 -0
  115. package/gs/internal/byteorder/index.ts +5 -5
  116. package/gs/math/abs.gs.test.ts +1 -1
  117. package/gs/math/acosh.gs.test.ts +4 -2
  118. package/gs/math/asin.gs.test.ts +1 -1
  119. package/gs/math/asinh.gs.test.ts +7 -3
  120. package/gs/math/atan.gs.test.ts +1 -1
  121. package/gs/math/atan2.gs.test.ts +17 -9
  122. package/gs/math/atanh.gs.test.ts +1 -1
  123. package/gs/math/bits.gs.test.ts +1 -1
  124. package/gs/math/cbrt.gs.test.ts +1 -1
  125. package/gs/math/const.gs.test.ts +34 -8
  126. package/gs/math/copysign.gs.test.ts +7 -3
  127. package/gs/math/dim.gs.test.ts +19 -7
  128. package/gs/math/erf.gs.test.ts +1 -1
  129. package/gs/math/erfinv.gs.test.ts +4 -2
  130. package/gs/math/exp.gs.test.ts +1 -1
  131. package/gs/math/expm1.gs.test.ts +6 -4
  132. package/gs/math/floor.gs.test.ts +17 -4
  133. package/gs/math/fma.gs.test.ts +53 -53
  134. package/gs/math/frexp.gs.test.ts +112 -117
  135. package/gs/math/gamma.gs.test.ts +1 -1
  136. package/gs/math/hypot.gs.test.ts +53 -53
  137. package/gs/math/index.ts +80 -44
  138. package/gs/math/j0.gs.test.ts +6 -2
  139. package/gs/math/j1.gs.test.ts +6 -2
  140. package/gs/math/jn.gs.test.ts +9 -5
  141. package/gs/math/ldexp.gs.test.ts +103 -86
  142. package/gs/math/lgamma.gs.test.ts +10 -10
  143. package/gs/math/log.gs.test.ts +1 -1
  144. package/gs/math/log10.gs.test.ts +1 -1
  145. package/gs/math/log1p.gs.test.ts +2 -2
  146. package/gs/math/logb.gs.test.ts +1 -1
  147. package/gs/math/mod.gs.test.ts +2 -2
  148. package/gs/math/modf.gs.test.ts +7 -7
  149. package/gs/math/nextafter.gs.test.ts +9 -7
  150. package/gs/math/pow.gs.test.ts +6 -4
  151. package/gs/math/pow10.gs.test.ts +1 -1
  152. package/gs/math/remainder.gs.test.ts +1 -1
  153. package/gs/math/signbit.gs.test.ts +1 -1
  154. package/gs/math/sin.gs.test.ts +1 -1
  155. package/gs/math/sincos.gs.test.ts +33 -14
  156. package/gs/math/sinh.gs.test.ts +1 -1
  157. package/gs/math/sqrt.gs.test.ts +1 -1
  158. package/gs/math/tan.gs.test.ts +3 -3
  159. package/gs/math/tanh.gs.test.ts +1 -1
  160. package/gs/os/index.ts +128 -19
  161. package/gs/reflect/ANALYSIS.md +278 -0
  162. package/gs/reflect/deepequal.test.ts +41 -0
  163. package/gs/reflect/deepequal.ts +169 -0
  164. package/gs/reflect/function-types.test.ts +146 -0
  165. package/gs/reflect/godoc.txt +67 -0
  166. package/gs/reflect/index.ts +83 -0
  167. package/gs/reflect/iter.ts +44 -0
  168. package/gs/reflect/map.test.ts +30 -0
  169. package/gs/reflect/map.ts +85 -0
  170. package/gs/reflect/swapper.ts +52 -0
  171. package/gs/reflect/type.ts +1016 -0
  172. package/gs/reflect/types.ts +214 -0
  173. package/gs/reflect/value.ts +270 -0
  174. package/gs/reflect/visiblefields.ts +177 -0
  175. package/gs/strconv/index.ts +39 -6
  176. package/gs/strings/index.ts +7 -1
  177. package/gs/strings/replace.ts +1 -9
  178. package/gs/sync/atomic/index.ts +53 -4
  179. package/gs/syscall/index.ts +45 -37
  180. package/gs/unicode/utf8/utf8.ts +8 -5
  181. package/gs/unsafe/unsafe.ts +1 -1
  182. package/package.json +2 -1
  183. package/dist/gs/internal/testlog/index.d.ts +0 -1
  184. package/dist/gs/internal/testlog/index.js +0 -5
  185. package/dist/gs/internal/testlog/index.js.map +0 -1
  186. package/dist/gs/maps/iter.gs.d.ts +0 -7
  187. package/dist/gs/maps/iter.gs.js +0 -65
  188. package/dist/gs/maps/iter.gs.js.map +0 -1
  189. package/dist/gs/maps/maps.gs.d.ts +0 -7
  190. package/dist/gs/maps/maps.gs.js +0 -79
  191. package/dist/gs/maps/maps.gs.js.map +0 -1
  192. package/dist/gs/stringslite/index.d.ts +0 -1
  193. package/dist/gs/stringslite/index.js +0 -2
  194. package/dist/gs/stringslite/index.js.map +0 -1
  195. package/dist/gs/stringslite/strings.d.ts +0 -11
  196. package/dist/gs/stringslite/strings.js +0 -67
  197. package/dist/gs/stringslite/strings.js.map +0 -1
  198. package/gs/internal/testlog/index.ts +0 -7
@@ -84,4 +84,4 @@ describe('ilogb', () => {
84
84
  expect(ilogb(3)).toBe(1)
85
85
  expect(ilogb(-2)).toBe(1)
86
86
  })
87
- })
87
+ })
@@ -35,7 +35,7 @@ describe('Mod', () => {
35
35
  expect(Number.isNaN(Mod(Number.NaN, 3))).toBe(true)
36
36
  expect(Number.isNaN(Mod(5, 0))).toBe(true)
37
37
  expect(Number.isNaN(Mod(5, Number.NaN))).toBe(true)
38
-
38
+
39
39
  expect(Mod(5, Number.POSITIVE_INFINITY)).toBe(5)
40
40
  expect(Mod(5, Number.NEGATIVE_INFINITY)).toBe(5)
41
41
  expect(Mod(-5, Number.POSITIVE_INFINITY)).toBe(-5)
@@ -61,4 +61,4 @@ describe('mod', () => {
61
61
  expect(mod(5.5, 2)).toBe(Mod(5.5, 2))
62
62
  expect(Number.isNaN(mod(5, 0))).toBe(Number.isNaN(Mod(5, 0)))
63
63
  })
64
- })
64
+ })
@@ -18,7 +18,7 @@ describe('Modf', () => {
18
18
  const [int, frac] = Modf(0)
19
19
  expect(int).toBe(0)
20
20
  expect(frac).toBe(0)
21
-
21
+
22
22
  const [intNeg, fracNeg] = Modf(-0)
23
23
  expect(Object.is(intNeg, -0)).toBe(true)
24
24
  expect(fracNeg === 0 || Object.is(fracNeg, -0)).toBe(true)
@@ -28,7 +28,7 @@ describe('Modf', () => {
28
28
  const [int, frac] = Modf(5)
29
29
  expect(int).toBe(5)
30
30
  expect(frac).toBe(0)
31
-
31
+
32
32
  const [intNeg, fracNeg] = Modf(-5)
33
33
  expect(intNeg).toBe(-5)
34
34
  expect(fracNeg === 0 || Object.is(fracNeg, -0)).toBe(true)
@@ -38,11 +38,11 @@ describe('Modf', () => {
38
38
  const [intPosInf, fracPosInf] = Modf(Number.POSITIVE_INFINITY)
39
39
  expect(intPosInf).toBe(Number.POSITIVE_INFINITY)
40
40
  expect(Number.isNaN(fracPosInf)).toBe(true)
41
-
41
+
42
42
  const [intNegInf, fracNegInf] = Modf(Number.NEGATIVE_INFINITY)
43
43
  expect(intNegInf).toBe(Number.NEGATIVE_INFINITY)
44
44
  expect(Number.isNaN(fracNegInf)).toBe(true)
45
-
45
+
46
46
  const [intNaN, fracNaN] = Modf(Number.NaN)
47
47
  expect(Number.isNaN(intNaN)).toBe(true)
48
48
  expect(Number.isNaN(fracNaN)).toBe(true)
@@ -52,7 +52,7 @@ describe('Modf', () => {
52
52
  const [int1, frac1] = Modf(2.5)
53
53
  expect(Math.sign(int1)).toBe(1)
54
54
  expect(Math.sign(frac1)).toBe(1)
55
-
55
+
56
56
  const [int2, frac2] = Modf(-2.5)
57
57
  expect(Math.sign(int2)).toBe(-1)
58
58
  expect(Math.sign(frac2)).toBe(-1)
@@ -71,10 +71,10 @@ describe('modf', () => {
71
71
  const [int2, frac2] = Modf(3.14)
72
72
  expect(int1).toBe(int2)
73
73
  expect(frac1).toBe(frac2)
74
-
74
+
75
75
  const [int3, frac3] = modf(-3.14)
76
76
  const [int4, frac4] = Modf(-3.14)
77
77
  expect(int3).toBe(int4)
78
78
  expect(frac3).toBe(frac4)
79
79
  })
80
- })
80
+ })
@@ -6,7 +6,9 @@ describe('Nextafter', () => {
6
6
  expect(Nextafter(1.0, 1.0)).toBe(1.0)
7
7
  expect(Nextafter(0.0, 0.0)).toBe(0.0)
8
8
  expect(Nextafter(-1.0, -1.0)).toBe(-1.0)
9
- expect(Nextafter(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY)).toBe(Number.POSITIVE_INFINITY)
9
+ expect(Nextafter(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY)).toBe(
10
+ Number.POSITIVE_INFINITY,
11
+ )
10
12
  })
11
13
 
12
14
  it('should return NaN when either input is NaN', () => {
@@ -18,7 +20,7 @@ describe('Nextafter', () => {
18
20
  it('should handle zero correctly', () => {
19
21
  const nextPos = Nextafter(0, 1)
20
22
  const nextNeg = Nextafter(0, -1)
21
-
23
+
22
24
  expect(nextPos).toBeGreaterThan(0)
23
25
  expect(nextNeg).toBeLessThan(0)
24
26
  expect(Math.abs(nextPos)).toBe(Number.MIN_VALUE)
@@ -70,7 +72,7 @@ describe('Nextafter32', () => {
70
72
  it('should handle zero correctly', () => {
71
73
  const nextPos = Nextafter32(0, 1)
72
74
  const nextNeg = Nextafter32(0, -1)
73
-
75
+
74
76
  expect(nextPos).toBeGreaterThan(0)
75
77
  expect(nextNeg).toBeLessThan(0)
76
78
  // For float32, the smallest positive value is different
@@ -82,7 +84,7 @@ describe('Nextafter32', () => {
82
84
  const x = 1.0
83
85
  const nextUp = Nextafter32(x, 2.0)
84
86
  const nextDown = Nextafter32(x, 0.0)
85
-
87
+
86
88
  expect(nextUp).toBeGreaterThan(x)
87
89
  expect(nextDown).toBeLessThan(x)
88
90
  })
@@ -91,7 +93,7 @@ describe('Nextafter32', () => {
91
93
  const x = 1.0
92
94
  const nextUp = Nextafter32(x, Number.POSITIVE_INFINITY)
93
95
  const nextDown = Nextafter32(x, 0.0)
94
-
96
+
95
97
  expect(nextUp).toBeGreaterThan(x)
96
98
  expect(nextDown).toBeLessThan(x)
97
99
  })
@@ -100,8 +102,8 @@ describe('Nextafter32', () => {
100
102
  const x = -1.0
101
103
  const nextUp = Nextafter32(x, 0.0)
102
104
  const nextDown = Nextafter32(x, -2.0)
103
-
105
+
104
106
  expect(nextUp).toBeGreaterThan(x)
105
107
  expect(nextDown).toBeLessThan(x)
106
108
  })
107
- })
109
+ })
@@ -37,7 +37,7 @@ describe('Pow', () => {
37
37
  expect(Pow(2, Number.NEGATIVE_INFINITY)).toBe(0)
38
38
  expect(Pow(0.5, Number.POSITIVE_INFINITY)).toBe(0)
39
39
  expect(Pow(0.5, Number.NEGATIVE_INFINITY)).toBe(Number.POSITIVE_INFINITY)
40
-
40
+
41
41
  expect(Pow(Number.POSITIVE_INFINITY, 1)).toBe(Number.POSITIVE_INFINITY)
42
42
  expect(Pow(Number.POSITIVE_INFINITY, -1)).toBe(0)
43
43
  expect(Pow(Number.NEGATIVE_INFINITY, 2)).toBe(Number.POSITIVE_INFINITY)
@@ -59,7 +59,7 @@ describe('Pow', () => {
59
59
 
60
60
  it('should handle fractional exponents', () => {
61
61
  expect(Pow(4, 0.5)).toBe(2)
62
- expect(Pow(8, 1/3)).toBeCloseTo(2, 15)
62
+ expect(Pow(8, 1 / 3)).toBeCloseTo(2, 15)
63
63
  expect(Pow(16, 0.25)).toBe(2)
64
64
  })
65
65
  })
@@ -69,7 +69,9 @@ describe('pow', () => {
69
69
  expect(pow(2, 3)).toBe(Pow(2, 3))
70
70
  expect(pow(0, 1)).toBe(Pow(0, 1))
71
71
  expect(pow(-2, 2)).toBe(Pow(-2, 2))
72
- expect(pow(Number.POSITIVE_INFINITY, 1)).toBe(Pow(Number.POSITIVE_INFINITY, 1))
72
+ expect(pow(Number.POSITIVE_INFINITY, 1)).toBe(
73
+ Pow(Number.POSITIVE_INFINITY, 1),
74
+ )
73
75
  })
74
76
  })
75
77
 
@@ -100,4 +102,4 @@ describe('isOddInt', () => {
100
102
  expect(isOddInt(1 << 53)).toBe(false) // too large
101
103
  expect(isOddInt((1 << 53) - 1)).toBe(true) // largest odd integer
102
104
  })
103
- })
105
+ })
@@ -55,4 +55,4 @@ describe('Pow10', () => {
55
55
  expect(Pow10(n)).toBeCloseTo(Math.pow(10, n), 15)
56
56
  }
57
57
  })
58
- })
58
+ })
@@ -67,4 +67,4 @@ describe('remainder', () => {
67
67
  expect(Number.isNaN(remainder(Number.NaN, 3))).toBe(true)
68
68
  expect(Number.isNaN(remainder(5, 0))).toBe(true)
69
69
  })
70
- })
70
+ })
@@ -30,4 +30,4 @@ describe('Signbit', () => {
30
30
  expect(Signbit(Number.NaN)).toBe(false)
31
31
  expect(Signbit(-Number.NaN)).toBe(false) // NaN doesn't have a sign
32
32
  })
33
- })
33
+ })
@@ -80,4 +80,4 @@ describe('cos', () => {
80
80
  expect(cos(-Math.PI / 2)).toBe(Cos(-Math.PI / 2))
81
81
  expect(cos(Math.PI)).toBe(Cos(Math.PI))
82
82
  })
83
- })
83
+ })
@@ -6,7 +6,7 @@ describe('Sincos', () => {
6
6
  const [sin, cos] = Sincos(0)
7
7
  expect(sin).toBe(0)
8
8
  expect(cos).toBe(1)
9
-
9
+
10
10
  const [sinNeg, cosNeg] = Sincos(-0)
11
11
  expect(sinNeg).toBe(-0)
12
12
  expect(cosNeg).toBe(1)
@@ -16,15 +16,15 @@ describe('Sincos', () => {
16
16
  const [sin1, cos1] = Sincos(Math.PI / 2)
17
17
  expect(sin1).toBeCloseTo(1, 15)
18
18
  expect(cos1).toBeCloseTo(0, 15)
19
-
19
+
20
20
  const [sin2, cos2] = Sincos(-Math.PI / 2)
21
21
  expect(sin2).toBeCloseTo(-1, 15)
22
22
  expect(cos2).toBeCloseTo(0, 15)
23
-
23
+
24
24
  const [sin3, cos3] = Sincos(Math.PI)
25
25
  expect(sin3).toBeCloseTo(0, 15)
26
26
  expect(cos3).toBeCloseTo(-1, 15)
27
-
27
+
28
28
  const [sin4, cos4] = Sincos(-Math.PI)
29
29
  expect(sin4).toBeCloseTo(0, 15)
30
30
  expect(cos4).toBeCloseTo(-1, 15)
@@ -34,11 +34,11 @@ describe('Sincos', () => {
34
34
  const [sin1, cos1] = Sincos(Math.PI / 6)
35
35
  expect(sin1).toBeCloseTo(0.5, 15)
36
36
  expect(cos1).toBeCloseTo(Math.sqrt(3) / 2, 15)
37
-
37
+
38
38
  const [sin2, cos2] = Sincos(Math.PI / 4)
39
39
  expect(sin2).toBeCloseTo(Math.sqrt(2) / 2, 15)
40
40
  expect(cos2).toBeCloseTo(Math.sqrt(2) / 2, 15)
41
-
41
+
42
42
  const [sin3, cos3] = Sincos(Math.PI / 3)
43
43
  expect(sin3).toBeCloseTo(Math.sqrt(3) / 2, 15)
44
44
  expect(cos3).toBeCloseTo(0.5, 15)
@@ -48,19 +48,29 @@ describe('Sincos', () => {
48
48
  const [sin1, cos1] = Sincos(Number.POSITIVE_INFINITY)
49
49
  expect(Number.isNaN(sin1)).toBe(true)
50
50
  expect(Number.isNaN(cos1)).toBe(true)
51
-
51
+
52
52
  const [sin2, cos2] = Sincos(Number.NEGATIVE_INFINITY)
53
53
  expect(Number.isNaN(sin2)).toBe(true)
54
54
  expect(Number.isNaN(cos2)).toBe(true)
55
-
55
+
56
56
  const [sin3, cos3] = Sincos(Number.NaN)
57
57
  expect(Number.isNaN(sin3)).toBe(true)
58
58
  expect(Number.isNaN(cos3)).toBe(true)
59
59
  })
60
60
 
61
61
  it('should satisfy the Pythagorean identity', () => {
62
- const testValues = [0, Math.PI / 6, Math.PI / 4, Math.PI / 3, Math.PI / 2, Math.PI, 1.5, 2.7, -1.2]
63
-
62
+ const testValues = [
63
+ 0,
64
+ Math.PI / 6,
65
+ Math.PI / 4,
66
+ Math.PI / 3,
67
+ Math.PI / 2,
68
+ Math.PI,
69
+ 1.5,
70
+ 2.7,
71
+ -1.2,
72
+ ]
73
+
64
74
  for (const x of testValues) {
65
75
  const [sin, cos] = Sincos(x)
66
76
  expect(sin * sin + cos * cos).toBeCloseTo(1, 14)
@@ -72,7 +82,7 @@ describe('Sincos', () => {
72
82
  const [sin1, cos1] = Sincos(x)
73
83
  const [sin2, cos2] = Sincos(x + 2 * Math.PI)
74
84
  const [sin3, cos3] = Sincos(x + 4 * Math.PI)
75
-
85
+
76
86
  expect(sin1).toBeCloseTo(sin2, 14)
77
87
  expect(cos1).toBeCloseTo(cos2, 14)
78
88
  expect(sin1).toBeCloseTo(sin3, 14)
@@ -80,12 +90,21 @@ describe('Sincos', () => {
80
90
  })
81
91
 
82
92
  it('should match individual Math.sin and Math.cos calls', () => {
83
- const testValues = [0, Math.PI / 6, Math.PI / 4, Math.PI / 3, Math.PI / 2, Math.PI, 1.5, -1.2]
84
-
93
+ const testValues = [
94
+ 0,
95
+ Math.PI / 6,
96
+ Math.PI / 4,
97
+ Math.PI / 3,
98
+ Math.PI / 2,
99
+ Math.PI,
100
+ 1.5,
101
+ -1.2,
102
+ ]
103
+
85
104
  for (const x of testValues) {
86
105
  const [sin, cos] = Sincos(x)
87
106
  expect(sin).toBeCloseTo(Math.sin(x), 15)
88
107
  expect(cos).toBeCloseTo(Math.cos(x), 15)
89
108
  }
90
109
  })
91
- })
110
+ })
@@ -63,4 +63,4 @@ describe('cosh', () => {
63
63
  expect(cosh(-1)).toBe(Cosh(-1))
64
64
  expect(cosh(Number.POSITIVE_INFINITY)).toBe(Cosh(Number.POSITIVE_INFINITY))
65
65
  })
66
- })
66
+ })
@@ -46,4 +46,4 @@ describe('sqrt', () => {
46
46
  expect(sqrt(9)).toBe(Sqrt(9))
47
47
  expect(Number.isNaN(sqrt(-1))).toBe(Number.isNaN(Sqrt(-1)))
48
48
  })
49
- })
49
+ })
@@ -22,8 +22,8 @@ describe('Tan', () => {
22
22
  it('should approach infinity near asymptotes', () => {
23
23
  const nearPiOver2 = Math.PI / 2 - 1e-10
24
24
  expect(Math.abs(Tan(nearPiOver2))).toBeGreaterThan(1e9)
25
-
26
- const near3PiOver2 = 3 * Math.PI / 2 - 1e-10
25
+
26
+ const near3PiOver2 = (3 * Math.PI) / 2 - 1e-10
27
27
  expect(Math.abs(Tan(near3PiOver2))).toBeGreaterThan(1e9)
28
28
  })
29
29
 
@@ -47,4 +47,4 @@ describe('tan', () => {
47
47
  expect(tan(Math.PI)).toBe(Tan(Math.PI))
48
48
  expect(Number.isNaN(tan(Number.NaN))).toBe(Number.isNaN(Tan(Number.NaN)))
49
49
  })
50
- })
50
+ })
@@ -49,4 +49,4 @@ describe('tanh', () => {
49
49
  expect(tanh(-1)).toBe(Tanh(-1))
50
50
  expect(tanh(Number.POSITIVE_INFINITY)).toBe(Tanh(Number.POSITIVE_INFINITY))
51
51
  })
52
- })
52
+ })
package/gs/os/index.ts CHANGED
@@ -1,19 +1,128 @@
1
- export { CopyFS, ReadDir } from "./dir.gs.js"
2
- export { Clearenv, Environ, Expand, ExpandEnv, Getenv, LookupEnv, Setenv, Unsetenv } from "./env.gs.js"
3
- export { ErrClosed, ErrDeadlineExceeded, ErrExist, ErrInvalid, ErrNoDeadline, ErrNotExist, ErrPermission, ErrUnimplemented, IsExist, IsNotExist, IsPermission, IsTimeout, NewSyscallError, PathError, SyscallError } from "./error.gs.js"
4
- export { ErrProcessDone, FindProcess, Getpid, Getppid, ProcAttr, Process, Signal, StartProcess } from "./exec.gs.js"
5
- export { Interrupt, Kill, ProcessState } from "./exec_posix.gs.js"
6
- export { Executable } from "./executable.gs.js"
7
- export { Chdir, Chmod, Create, DirFS, Mkdir, Open, OpenFile, ReadFile, Rename, WriteFile, MkdirAll, RemoveAll } from "./file_js.gs.js"
8
- export { LinkError, O_APPEND, O_CREATE, O_EXCL, O_RDONLY, O_RDWR, O_SYNC, O_TRUNC, O_WRONLY, Readlink, SEEK_CUR, SEEK_END, SEEK_SET, TempDir, UserCacheDir, UserConfigDir, UserHomeDir } from "./file_constants_js.gs.js"
9
- export { DevNull, Link, NewFile, Remove, Stderr, Stdin, Stdout, Symlink, Truncate } from "./file_unix_js.gs.js"
10
- export { Chown, Chtimes, Lchown } from "./file_posix_js.gs.js"
11
- export { Getwd } from "./getwd_js.gs.js"
12
- export { IsPathSeparator, PathListSeparator, PathSeparator } from "./path_unix.gs.js"
13
- export { Pipe } from "./pipe_wasm.gs.js"
14
- export { Args, Exit, Getegid, Geteuid, Getgid, Getgroups, Getuid } from "./proc.gs.js"
15
- export { OpenInRoot, OpenRoot, Root } from "./root_js.gs.js"
16
- export { Lstat, Stat } from "./stat_js.gs.js"
17
- export { Hostname } from "./sys.gs.js"
18
- export { CreateTemp, MkdirTemp } from "./tempfile.gs.js"
19
- export { DirEntry, File, FileInfo, FileMode, Getpagesize, ModeAppend, ModeCharDevice, ModeDevice, ModeDir, ModeExclusive, ModeIrregular, ModeNamedPipe, ModePerm, ModeSetgid, ModeSetuid, ModeSocket, ModeSticky, ModeSymlink, ModeTemporary, ModeType, SameFile } from "./types_js.gs.js"
1
+ export { CopyFS, ReadDir } from './dir.gs.js'
2
+ export {
3
+ Clearenv,
4
+ Environ,
5
+ Expand,
6
+ ExpandEnv,
7
+ Getenv,
8
+ LookupEnv,
9
+ Setenv,
10
+ Unsetenv,
11
+ } from './env.gs.js'
12
+ export {
13
+ ErrClosed,
14
+ ErrDeadlineExceeded,
15
+ ErrExist,
16
+ ErrInvalid,
17
+ ErrNoDeadline,
18
+ ErrNotExist,
19
+ ErrPermission,
20
+ ErrUnimplemented,
21
+ IsExist,
22
+ IsNotExist,
23
+ IsPermission,
24
+ IsTimeout,
25
+ NewSyscallError,
26
+ PathError,
27
+ SyscallError,
28
+ } from './error.gs.js'
29
+ export {
30
+ ErrProcessDone,
31
+ FindProcess,
32
+ Getpid,
33
+ Getppid,
34
+ ProcAttr,
35
+ Process,
36
+ Signal,
37
+ StartProcess,
38
+ } from './exec.gs.js'
39
+ export { Interrupt, Kill, ProcessState } from './exec_posix.gs.js'
40
+ export { Executable } from './executable.gs.js'
41
+ export {
42
+ Chdir,
43
+ Chmod,
44
+ Create,
45
+ DirFS,
46
+ Mkdir,
47
+ Open,
48
+ OpenFile,
49
+ ReadFile,
50
+ Rename,
51
+ WriteFile,
52
+ MkdirAll,
53
+ RemoveAll,
54
+ } from './file_js.gs.js'
55
+ export {
56
+ LinkError,
57
+ O_APPEND,
58
+ O_CREATE,
59
+ O_EXCL,
60
+ O_RDONLY,
61
+ O_RDWR,
62
+ O_SYNC,
63
+ O_TRUNC,
64
+ O_WRONLY,
65
+ Readlink,
66
+ SEEK_CUR,
67
+ SEEK_END,
68
+ SEEK_SET,
69
+ TempDir,
70
+ UserCacheDir,
71
+ UserConfigDir,
72
+ UserHomeDir,
73
+ } from './file_constants_js.gs.js'
74
+ export {
75
+ DevNull,
76
+ Link,
77
+ NewFile,
78
+ Remove,
79
+ Stderr,
80
+ Stdin,
81
+ Stdout,
82
+ Symlink,
83
+ Truncate,
84
+ } from './file_unix_js.gs.js'
85
+ export { Chown, Chtimes, Lchown } from './file_posix_js.gs.js'
86
+ export { Getwd } from './getwd_js.gs.js'
87
+ export {
88
+ IsPathSeparator,
89
+ PathListSeparator,
90
+ PathSeparator,
91
+ } from './path_unix.gs.js'
92
+ export { Pipe } from './pipe_wasm.gs.js'
93
+ export {
94
+ Args,
95
+ Exit,
96
+ Getegid,
97
+ Geteuid,
98
+ Getgid,
99
+ Getgroups,
100
+ Getuid,
101
+ } from './proc.gs.js'
102
+ export { OpenInRoot, OpenRoot, Root } from './root_js.gs.js'
103
+ export { Lstat, Stat } from './stat_js.gs.js'
104
+ export { Hostname } from './sys.gs.js'
105
+ export { CreateTemp, MkdirTemp } from './tempfile.gs.js'
106
+ export {
107
+ DirEntry,
108
+ File,
109
+ FileInfo,
110
+ FileMode,
111
+ Getpagesize,
112
+ ModeAppend,
113
+ ModeCharDevice,
114
+ ModeDevice,
115
+ ModeDir,
116
+ ModeExclusive,
117
+ ModeIrregular,
118
+ ModeNamedPipe,
119
+ ModePerm,
120
+ ModeSetgid,
121
+ ModeSetuid,
122
+ ModeSocket,
123
+ ModeSticky,
124
+ ModeSymlink,
125
+ ModeTemporary,
126
+ ModeType,
127
+ SameFile,
128
+ } from './types_js.gs.js'