goscript 0.0.58 → 0.0.60
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.
- package/README.md +40 -33
- package/compiler/analysis.go +184 -43
- package/compiler/assignment.go +163 -217
- package/compiler/compiler.go +35 -31
- package/compiler/composite-lit.go +233 -196
- package/compiler/constraint.go +88 -0
- package/compiler/decl.go +82 -24
- package/compiler/expr-call-async.go +20 -34
- package/compiler/expr-call-builtins.go +19 -0
- package/compiler/expr-call-helpers.go +0 -28
- package/compiler/expr-call-make.go +93 -343
- package/compiler/expr-call-type-conversion.go +221 -249
- package/compiler/expr-call.go +70 -69
- package/compiler/expr-selector.go +21 -24
- package/compiler/expr.go +3 -60
- package/compiler/protobuf.go +180 -36
- package/compiler/spec-value.go +132 -24
- package/compiler/spec.go +14 -55
- package/compiler/stmt-assign.go +338 -356
- package/compiler/stmt-range.go +4 -24
- package/compiler/stmt.go +92 -203
- package/compiler/type-utils.go +185 -0
- package/compiler/type.go +26 -80
- package/dist/gs/builtin/slice.d.ts +1 -1
- package/dist/gs/builtin/slice.js +3 -0
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.js +8 -2
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/fmt/fmt.js +113 -16
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/runtime/runtime.d.ts +1 -1
- package/dist/gs/runtime/runtime.js +1 -1
- package/dist/gs/slices/slices.d.ts +23 -0
- package/dist/gs/slices/slices.js +61 -0
- package/dist/gs/slices/slices.js.map +1 -1
- package/go.mod +10 -10
- package/go.sum +22 -14
- package/gs/builtin/slice.ts +5 -2
- package/gs/builtin/type.ts +13 -6
- package/gs/fmt/fmt.test.ts +176 -0
- package/gs/fmt/fmt.ts +109 -18
- package/gs/runtime/runtime.ts +1 -1
- package/gs/slices/slices.ts +68 -0
- package/package.json +3 -3
package/dist/gs/fmt/fmt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const GOOS = "js";
|
|
2
2
|
export declare const GOARCH = "wasm";
|
|
3
|
-
export declare const GOVERSION = "go1.
|
|
3
|
+
export declare const GOVERSION = "go1.25.3";
|
|
4
4
|
export declare function Version(): string;
|
|
5
5
|
export declare function GOMAXPROCS(_n: number): number;
|
|
6
6
|
export declare function NumCPU(): number;
|
|
@@ -12,3 +12,26 @@ export declare function All<T>(s: $.Slice<T>): (yieldFunc: (index: number, value
|
|
|
12
12
|
* @param s The slice to sort in place
|
|
13
13
|
*/
|
|
14
14
|
export declare function Sort<T extends string | number>(s: $.Slice<T>): void;
|
|
15
|
+
/**
|
|
16
|
+
* Delete removes the elements s[i:j] from s, returning the modified slice.
|
|
17
|
+
* Delete panics if j > len(s) or s[i:j] is not a valid slice of s.
|
|
18
|
+
* This is equivalent to Go's slices.Delete function.
|
|
19
|
+
* @param s The slice to delete from
|
|
20
|
+
* @param i The start index (inclusive)
|
|
21
|
+
* @param j The end index (exclusive)
|
|
22
|
+
* @returns The modified slice
|
|
23
|
+
*/
|
|
24
|
+
export declare function Delete<T>(s: $.Slice<T>, i: number, j: number): $.Slice<T>;
|
|
25
|
+
/**
|
|
26
|
+
* BinarySearchFunc works like BinarySearch, but uses a custom comparison function.
|
|
27
|
+
* The slice must be sorted in increasing order, where "increasing" is defined by cmp.
|
|
28
|
+
* cmp should return 0 if the slice element matches the target, a negative number if
|
|
29
|
+
* the slice element precedes the target, or a positive number if the slice element
|
|
30
|
+
* follows the target.
|
|
31
|
+
* This is equivalent to Go's slices.BinarySearchFunc function.
|
|
32
|
+
* @param x The sorted slice to search
|
|
33
|
+
* @param target The target value to search for
|
|
34
|
+
* @param cmp Comparison function
|
|
35
|
+
* @returns A tuple of [index, found] where index is the position and found indicates if target was found
|
|
36
|
+
*/
|
|
37
|
+
export declare function BinarySearchFunc<E, T>(x: $.Slice<E>, target: T, cmp: (a: E, b: T) => number): [number, boolean];
|
package/dist/gs/slices/slices.js
CHANGED
|
@@ -25,4 +25,65 @@ export function All(s) {
|
|
|
25
25
|
export function Sort(s) {
|
|
26
26
|
$.sortSlice(s);
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Delete removes the elements s[i:j] from s, returning the modified slice.
|
|
30
|
+
* Delete panics if j > len(s) or s[i:j] is not a valid slice of s.
|
|
31
|
+
* This is equivalent to Go's slices.Delete function.
|
|
32
|
+
* @param s The slice to delete from
|
|
33
|
+
* @param i The start index (inclusive)
|
|
34
|
+
* @param j The end index (exclusive)
|
|
35
|
+
* @returns The modified slice
|
|
36
|
+
*/
|
|
37
|
+
export function Delete(s, i, j) {
|
|
38
|
+
const length = $.len(s);
|
|
39
|
+
if (j > length || i < 0 || j < i) {
|
|
40
|
+
throw new Error(`slice bounds out of range [${i}:${j}] with length ${length}`);
|
|
41
|
+
}
|
|
42
|
+
if (i === j) {
|
|
43
|
+
return s;
|
|
44
|
+
}
|
|
45
|
+
// Shift elements after j to position i
|
|
46
|
+
const deleteCount = j - i;
|
|
47
|
+
for (let k = j; k < length; k++) {
|
|
48
|
+
;
|
|
49
|
+
s[k - deleteCount] = s[k];
|
|
50
|
+
}
|
|
51
|
+
// Zero out the elements at the end
|
|
52
|
+
for (let k = length - deleteCount; k < length; k++) {
|
|
53
|
+
;
|
|
54
|
+
s[k] = null;
|
|
55
|
+
}
|
|
56
|
+
// Update the slice length
|
|
57
|
+
return $.goSlice(s, 0, length - deleteCount);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* BinarySearchFunc works like BinarySearch, but uses a custom comparison function.
|
|
61
|
+
* The slice must be sorted in increasing order, where "increasing" is defined by cmp.
|
|
62
|
+
* cmp should return 0 if the slice element matches the target, a negative number if
|
|
63
|
+
* the slice element precedes the target, or a positive number if the slice element
|
|
64
|
+
* follows the target.
|
|
65
|
+
* This is equivalent to Go's slices.BinarySearchFunc function.
|
|
66
|
+
* @param x The sorted slice to search
|
|
67
|
+
* @param target The target value to search for
|
|
68
|
+
* @param cmp Comparison function
|
|
69
|
+
* @returns A tuple of [index, found] where index is the position and found indicates if target was found
|
|
70
|
+
*/
|
|
71
|
+
export function BinarySearchFunc(x, target, cmp) {
|
|
72
|
+
let left = 0;
|
|
73
|
+
let right = $.len(x);
|
|
74
|
+
while (left < right) {
|
|
75
|
+
const mid = Math.floor((left + right) / 2);
|
|
76
|
+
const result = cmp(x[mid], target);
|
|
77
|
+
if (result < 0) {
|
|
78
|
+
left = mid + 1;
|
|
79
|
+
}
|
|
80
|
+
else if (result > 0) {
|
|
81
|
+
right = mid;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return [mid, true];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return [left, false];
|
|
88
|
+
}
|
|
28
89
|
//# 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,4BAA4B,CAAA;AAE/C;;;;;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"}
|
|
1
|
+
{"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C;;;;;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;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAI,CAAa,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAC9D,CAAA;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,CAAA;IACV,CAAC;IACD,uCAAuC;IACvC,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC;QAAC,CAAS,CAAC,CAAC,GAAG,WAAW,CAAC,GAAI,CAAS,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,mCAAmC;IACnC,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,CAAC;QAAC,CAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACvB,CAAC;IACD,0BAA0B;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAAe,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,CAAa,EACb,MAAS,EACT,GAA2B;IAE3B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,IAAI,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAE,CAAS,CAAC,GAAG,CAAM,EAAE,MAAM,CAAC,CAAA;QAEhD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;QAChB,CAAC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,GAAG,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtB,CAAC"}
|
package/go.mod
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
module github.com/aperturerobotics/goscript
|
|
2
2
|
|
|
3
|
-
go 1.
|
|
3
|
+
go 1.25.3
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
-
github.com/aperturerobotics/cli v1.0.
|
|
7
|
-
github.com/aperturerobotics/protobuf-go-lite v0.
|
|
8
|
-
github.com/aperturerobotics/util v1.
|
|
6
|
+
github.com/aperturerobotics/cli v1.0.1
|
|
7
|
+
github.com/aperturerobotics/protobuf-go-lite v0.11.0
|
|
8
|
+
github.com/aperturerobotics/util v1.31.4
|
|
9
9
|
github.com/pkg/errors v0.9.1
|
|
10
10
|
github.com/sirupsen/logrus v1.9.3
|
|
11
|
-
golang.org/x/tools v0.
|
|
11
|
+
golang.org/x/tools v0.38.0
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
require (
|
|
15
|
-
github.com/aperturerobotics/common v0.22.
|
|
15
|
+
github.com/aperturerobotics/common v0.22.12 // indirect
|
|
16
16
|
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 // indirect
|
|
17
|
-
github.com/xrash/smetrics v0.0.0-
|
|
18
|
-
golang.org/x/mod v0.
|
|
19
|
-
golang.org/x/sync v0.
|
|
20
|
-
golang.org/x/sys v0.
|
|
17
|
+
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
|
|
18
|
+
golang.org/x/mod v0.29.0 // indirect
|
|
19
|
+
golang.org/x/sync v0.17.0 // indirect
|
|
20
|
+
golang.org/x/sys v0.37.0 // indirect
|
|
21
21
|
)
|
package/go.sum
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
github.com/aperturerobotics/cli v1.0.0 h1:s3xT2h7eBih4/4yZKTn/HQ6P+qpk6ygWZl2416xAI1M=
|
|
2
2
|
github.com/aperturerobotics/cli v1.0.0/go.mod h1:wtlINjMcKuwyV1x4ftReuA6hHZcPB8kPMXHyQqGFCSc=
|
|
3
|
-
github.com/aperturerobotics/
|
|
4
|
-
github.com/aperturerobotics/
|
|
3
|
+
github.com/aperturerobotics/cli v1.0.1 h1:9KsECHGESJ/iGU13Z4zNQzKFz5bMave4bA6lPXGjtOU=
|
|
4
|
+
github.com/aperturerobotics/cli v1.0.1/go.mod h1:s1Gh4eTOGGlrPqpyi/q8aIQwk0T6yDCF7C2xPyBMtek=
|
|
5
|
+
github.com/aperturerobotics/common v0.22.10 h1:XFfXq9NGrirjW6rtqq525qiY1IN+1siGBZwIsvBJGfQ=
|
|
6
|
+
github.com/aperturerobotics/common v0.22.10/go.mod h1:xMXHNN6oCvG0FfG1tY6+2Si7iWh1QfSSCSrqohFUeIk=
|
|
7
|
+
github.com/aperturerobotics/common v0.22.12 h1:uSo+fDQg6xCoNI34Y7gueW1cW9Cy4d/2FQb/T006LZQ=
|
|
8
|
+
github.com/aperturerobotics/common v0.22.12/go.mod h1:xMXHNN6oCvG0FfG1tY6+2Si7iWh1QfSSCSrqohFUeIk=
|
|
5
9
|
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 h1:So9JeziaWKx2Fw8sK4AUN/szqKtJ0jEMhS6bU4sHbxs=
|
|
6
10
|
github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008/go.mod h1:snaApCEDtrHHP6UWSLKiYNOZU9A5NyzccKenx9oZEzg=
|
|
7
|
-
github.com/aperturerobotics/protobuf-go-lite v0.
|
|
8
|
-
github.com/aperturerobotics/protobuf-go-lite v0.
|
|
9
|
-
github.com/aperturerobotics/util v1.
|
|
10
|
-
github.com/aperturerobotics/util v1.
|
|
11
|
+
github.com/aperturerobotics/protobuf-go-lite v0.11.0 h1:IAaZISqrEpodqECYxk0yKWgROEbZtMhs7bErP+Zma9o=
|
|
12
|
+
github.com/aperturerobotics/protobuf-go-lite v0.11.0/go.mod h1:c4kGy7Dkfz6B1m0t4QBIMQoNeQ7m+nYj3Qxxnlwhygo=
|
|
13
|
+
github.com/aperturerobotics/util v1.31.3 h1:3irvlwlwwvOl4jD2lHg/N8bBp9B/3kx9Ec4qlJxQKEU=
|
|
14
|
+
github.com/aperturerobotics/util v1.31.3/go.mod h1:G5yKUDojt6uzVvs7kGByey0lBfKdDg4O4jXmdkSqO6Y=
|
|
15
|
+
github.com/aperturerobotics/util v1.31.4 h1:2F4j5CML/Hb4dQT1E1pjkZd3AdJhsAQiaRCR9pD/dwo=
|
|
16
|
+
github.com/aperturerobotics/util v1.31.4/go.mod h1:qfeWUnkC60QpjxH4yocO6Q/No+J1E488yzuconPgF8c=
|
|
11
17
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
12
18
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
13
19
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
@@ -25,15 +31,17 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
|
|
|
25
31
|
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
|
26
32
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
|
|
27
33
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
golang.org/x/
|
|
31
|
-
golang.org/x/
|
|
34
|
+
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg=
|
|
35
|
+
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
|
36
|
+
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
|
|
37
|
+
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
|
|
38
|
+
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
|
|
39
|
+
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
|
32
40
|
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
33
|
-
golang.org/x/sys v0.
|
|
34
|
-
golang.org/x/sys v0.
|
|
35
|
-
golang.org/x/tools v0.
|
|
36
|
-
golang.org/x/tools v0.
|
|
41
|
+
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
|
|
42
|
+
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
|
43
|
+
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
|
|
44
|
+
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
|
|
37
45
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
38
46
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
39
47
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
package/gs/builtin/slice.ts
CHANGED
|
@@ -1197,12 +1197,15 @@ export function stringToBytes(s: string): Uint8Array {
|
|
|
1197
1197
|
* @returns The string representation
|
|
1198
1198
|
*/
|
|
1199
1199
|
export function genericBytesOrStringToString(
|
|
1200
|
-
value: string |
|
|
1200
|
+
value: string | import('./builtin.js').Bytes | null | undefined,
|
|
1201
1201
|
): string {
|
|
1202
|
+
if (value === null || value === undefined) {
|
|
1203
|
+
return ''
|
|
1204
|
+
}
|
|
1202
1205
|
if (typeof value === 'string') {
|
|
1203
1206
|
return value
|
|
1204
1207
|
}
|
|
1205
|
-
return bytesToString(value
|
|
1208
|
+
return bytesToString(value)
|
|
1206
1209
|
}
|
|
1207
1210
|
|
|
1208
1211
|
/**
|
package/gs/builtin/type.ts
CHANGED
|
@@ -667,18 +667,20 @@ const STRUCT_VALUE_MARKER = Symbol('structValue')
|
|
|
667
667
|
// Mark a struct instance as representing a value (not pointer)
|
|
668
668
|
export function markAsStructValue<T>(value: T): T {
|
|
669
669
|
if (typeof value === 'object' && value !== null) {
|
|
670
|
-
(value as any)[STRUCT_VALUE_MARKER] = true
|
|
670
|
+
;(value as any)[STRUCT_VALUE_MARKER] = true
|
|
671
671
|
}
|
|
672
672
|
return value
|
|
673
673
|
}
|
|
674
674
|
|
|
675
675
|
// Check if a struct instance is marked as a value
|
|
676
676
|
function isMarkedAsStructValue(value: any): boolean {
|
|
677
|
-
return
|
|
677
|
+
return (
|
|
678
|
+
typeof value === 'object' &&
|
|
679
|
+
value !== null &&
|
|
680
|
+
value[STRUCT_VALUE_MARKER] === true
|
|
681
|
+
)
|
|
678
682
|
}
|
|
679
683
|
|
|
680
|
-
|
|
681
|
-
|
|
682
684
|
/**
|
|
683
685
|
* Checks if a value matches a pointer type info.
|
|
684
686
|
*
|
|
@@ -719,7 +721,7 @@ function matchesPointerType(value: any, info: TypeInfo): boolean {
|
|
|
719
721
|
let elemTypeInfo = normalizeTypeInfo(elem)
|
|
720
722
|
return matchesType(value.value, elemTypeInfo)
|
|
721
723
|
}
|
|
722
|
-
|
|
724
|
+
|
|
723
725
|
// Direct struct instance - with inversion, only match if NOT marked as value (i.e., is a pointer)
|
|
724
726
|
return value instanceof registered.ctor && !isMarkedAsStructValue(value)
|
|
725
727
|
} else {
|
|
@@ -932,7 +934,12 @@ export function typeAssert<T>(
|
|
|
932
934
|
// Special handling for pointer type assertions:
|
|
933
935
|
// If the value is a VarRef and we're asserting to a pointer type,
|
|
934
936
|
// return the inner value (value.value), not the VarRef object itself
|
|
935
|
-
if (
|
|
937
|
+
if (
|
|
938
|
+
isPointerTypeInfo(normalizedType) &&
|
|
939
|
+
typeof value === 'object' &&
|
|
940
|
+
value !== null &&
|
|
941
|
+
'value' in value
|
|
942
|
+
) {
|
|
936
943
|
return { value: value.value as T, ok: true }
|
|
937
944
|
}
|
|
938
945
|
return { value: value as T, ok: true }
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import * as fmt from './fmt.js'
|
|
3
|
+
|
|
4
|
+
// Helper to capture stdout via internal stdout.write
|
|
5
|
+
// We will monkey-patch global process.stdout.write if available
|
|
6
|
+
function captureStdout(run: () => void): string {
|
|
7
|
+
let buf = ''
|
|
8
|
+
const hasProcess =
|
|
9
|
+
typeof process !== 'undefined' &&
|
|
10
|
+
(process as any).stdout &&
|
|
11
|
+
typeof (process as any).stdout.write === 'function'
|
|
12
|
+
|
|
13
|
+
if (hasProcess) {
|
|
14
|
+
const orig = (process as any).stdout.write
|
|
15
|
+
;(process as any).stdout.write = (chunk: any) => {
|
|
16
|
+
buf += typeof chunk === 'string' ? chunk : String(chunk)
|
|
17
|
+
return true
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
run()
|
|
21
|
+
} finally {
|
|
22
|
+
;(process as any).stdout.write = orig
|
|
23
|
+
}
|
|
24
|
+
} else {
|
|
25
|
+
// Fallback: spy on console.log for environments without process
|
|
26
|
+
const origLog = console.log
|
|
27
|
+
;(console as any).log = (msg: any) => {
|
|
28
|
+
buf += String(msg) + '\n'
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
run()
|
|
32
|
+
} finally {
|
|
33
|
+
console.log = origLog
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return buf
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
describe('fmt basic value formatting', () => {
|
|
41
|
+
it('%T approximations for primitives', () => {
|
|
42
|
+
// routed through Sprintf which uses format parsing
|
|
43
|
+
expect(fmt.Sprintf('Type: %T', 123)).toBe('Type: int')
|
|
44
|
+
expect(fmt.Sprintf('Type: %T', 3.14)).toBe('Type: float64')
|
|
45
|
+
expect(fmt.Sprintf('Type: %T', 'hello')).toBe('Type: string')
|
|
46
|
+
expect(fmt.Sprintf('Type: %T', true)).toBe('Type: bool')
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it('%d truncation behavior including negatives', () => {
|
|
50
|
+
expect(fmt.Sprintf('%d', 42.9)).toBe('42')
|
|
51
|
+
expect(fmt.Sprintf('%d', -42.9)).toBe('-42')
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('%q quoted string and rune', () => {
|
|
55
|
+
expect(fmt.Sprintf('%q', 'hello')).toBe(JSON.stringify('hello'))
|
|
56
|
+
// rune-like number
|
|
57
|
+
expect(fmt.Sprintf('%q', 97)).toBe(JSON.stringify('a'))
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('%p pointer-ish formatting fallback', () => {
|
|
61
|
+
expect(fmt.Sprintf('%p', {})).toBe('0x0')
|
|
62
|
+
expect(fmt.Sprintf('%p', { __address: 255 })).toBe('0xff')
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('%v default formats for arrays/maps/sets', () => {
|
|
66
|
+
expect(fmt.Sprintf('%v', [1, 2, 3])).toBe('[1 2 3]')
|
|
67
|
+
const m = new Map<any, any>()
|
|
68
|
+
m.set('a', 1)
|
|
69
|
+
m.set('b', 2)
|
|
70
|
+
const out = fmt.Sprintf('%v', m)
|
|
71
|
+
// Order in Map iteration is insertion order; verify shape
|
|
72
|
+
expect(out.startsWith('{')).toBe(true)
|
|
73
|
+
expect(out.includes('a:1')).toBe(true)
|
|
74
|
+
expect(out.includes('b:2')).toBe(true)
|
|
75
|
+
expect(out.endsWith('}')).toBe(true)
|
|
76
|
+
|
|
77
|
+
const s = new Set<any>([1, 2, 3])
|
|
78
|
+
expect(fmt.Sprintf('%v', s)).toBe('[1 2 3]')
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('error and stringer precedence', () => {
|
|
82
|
+
const err = {
|
|
83
|
+
Error() {
|
|
84
|
+
return 'some error'
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
expect(fmt.Sprintf('%v', err)).toBe('some error')
|
|
88
|
+
|
|
89
|
+
const stringer = {
|
|
90
|
+
String() {
|
|
91
|
+
return 'I am stringer'
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
expect(fmt.Sprintf('%v', stringer)).toBe('I am stringer')
|
|
95
|
+
|
|
96
|
+
const goStringer = {
|
|
97
|
+
GoString() {
|
|
98
|
+
return '<go stringer>'
|
|
99
|
+
},
|
|
100
|
+
}
|
|
101
|
+
// We prefer GoString() first
|
|
102
|
+
expect(fmt.Sprintf('%v', goStringer)).toBe('<go stringer>')
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
describe('fmt spacing rules', () => {
|
|
107
|
+
it('Sprint: space only between non-strings', () => {
|
|
108
|
+
// Two non-strings => one space
|
|
109
|
+
expect(fmt.Sprint(1, 2)).toBe('1 2')
|
|
110
|
+
// If either is string => no automatic space
|
|
111
|
+
expect(fmt.Sprint('a', 'b')).toBe('ab')
|
|
112
|
+
expect(fmt.Sprint('a', 1)).toBe('a1')
|
|
113
|
+
expect(fmt.Sprint(1, 'b')).toBe('1b')
|
|
114
|
+
// Mixed 3 args
|
|
115
|
+
expect(fmt.Sprint('a', 1, 'b')).toBe('a1b')
|
|
116
|
+
// Go's Sprint inserts a space only when both adjacent operands are non-strings.
|
|
117
|
+
// Between 'b' (string) and 2 (number) there is no automatic space.
|
|
118
|
+
expect(fmt.Sprint(1, 'b', 2)).toBe('1b2')
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
it('Print: same spacing as Sprint, outputs to stdout', () => {
|
|
122
|
+
const output = captureStdout(() => {
|
|
123
|
+
fmt.Print(1, 2, 'x', 3)
|
|
124
|
+
})
|
|
125
|
+
expect(output).toBe('1 2x3')
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
it('Println: always separates by spaces and appends newline', () => {
|
|
129
|
+
const output = captureStdout(() => {
|
|
130
|
+
fmt.Println('hi', 'there', 1, 2)
|
|
131
|
+
})
|
|
132
|
+
expect(output).toBe('hi there 1 2\n')
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
it('Fprint/Fprintln behave like Print/Println with writers', () => {
|
|
136
|
+
const chunks: Uint8Array[] = []
|
|
137
|
+
const writer = {
|
|
138
|
+
Write(b: Uint8Array): [number, any] {
|
|
139
|
+
chunks.push(b)
|
|
140
|
+
return [b.length, null]
|
|
141
|
+
},
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
let [n, err] = fmt.Fprint(writer, 1, 2, 'x', 3)
|
|
145
|
+
expect(err).toBeNull()
|
|
146
|
+
expect(n).toBe(5) // "1 2x3".length
|
|
147
|
+
expect(new TextDecoder().decode(chunks[0])).toBe('1 2x3')
|
|
148
|
+
;[n, err] = fmt.Fprintln(writer, 'hi', 'there', 1, 2)
|
|
149
|
+
expect(err).toBeNull()
|
|
150
|
+
expect(new TextDecoder().decode(chunks[1])).toBe('hi there 1 2\n')
|
|
151
|
+
})
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
describe('fmt parseFormat basic cases', () => {
|
|
155
|
+
it('Printf with %d, %s, %f, width and precision', () => {
|
|
156
|
+
expect(fmt.Sprintf('n=%d s=%s f=%f', 42, 'ok', 3.5)).toBe('n=42 s=ok f=3.5')
|
|
157
|
+
expect(fmt.Sprintf("'%5s'", 'hi')).toBe("' hi'")
|
|
158
|
+
expect(fmt.Sprintf("'%-.3f'", 3.14159)).toBe("'3.142'") // JS rounds
|
|
159
|
+
expect(fmt.Sprintf("'%6.2f'", 3.14159)).toBe("' 3.14'")
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
it('Printf with %% and missing args', () => {
|
|
163
|
+
expect(fmt.Sprintf('100%% done')).toBe('100% done')
|
|
164
|
+
// When the first argument is present but the second is missing,
|
|
165
|
+
// Go prints the formatted first arg followed by the missing marker for the second.
|
|
166
|
+
expect(fmt.Sprintf('%d %s', 1)).toBe('1 %!s(MISSING)')
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
it('Printf hex/octal/bin', () => {
|
|
170
|
+
expect(fmt.Sprintf('%x %X %o %b', 255, 255, 8, 5)).toBe('ff FF 10 101')
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
it('Printf %c for code points', () => {
|
|
174
|
+
expect(fmt.Sprintf('%c', 65)).toBe('A')
|
|
175
|
+
})
|
|
176
|
+
})
|