goscript 0.0.38 → 0.0.40

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 (180) hide show
  1. package/compiler/analysis.go +15 -6
  2. package/compiler/compiler.go +184 -34
  3. package/compiler/expr-call.go +19 -9
  4. package/compiler/field.go +17 -3
  5. package/compiler/gs_dependencies_test.go +80 -0
  6. package/compiler/lit.go +12 -6
  7. package/compiler/output.go +10 -4
  8. package/compiler/spec.go +15 -2
  9. package/compiler/type-assert.go +111 -21
  10. package/compiler/type.go +37 -8
  11. package/dist/gs/builtin/builtin.d.ts +55 -0
  12. package/dist/gs/builtin/builtin.js +213 -0
  13. package/dist/gs/builtin/builtin.js.map +1 -1
  14. package/dist/gs/builtin/slice.js +13 -0
  15. package/dist/gs/builtin/slice.js.map +1 -1
  16. package/dist/gs/bytes/buffer.gs.d.ts +56 -0
  17. package/dist/gs/bytes/buffer.gs.js +611 -0
  18. package/dist/gs/bytes/buffer.gs.js.map +1 -0
  19. package/dist/gs/bytes/bytes.gs.d.ts +78 -0
  20. package/dist/gs/bytes/bytes.gs.js +1107 -0
  21. package/dist/gs/bytes/bytes.gs.js.map +1 -0
  22. package/dist/gs/bytes/index.d.ts +4 -0
  23. package/dist/gs/bytes/index.js +5 -0
  24. package/dist/gs/bytes/index.js.map +1 -0
  25. package/dist/gs/bytes/iter.gs.d.ts +9 -0
  26. package/dist/gs/bytes/iter.gs.js +143 -0
  27. package/dist/gs/bytes/iter.gs.js.map +1 -0
  28. package/dist/gs/bytes/reader.gs.d.ts +34 -0
  29. package/dist/gs/bytes/reader.gs.js +198 -0
  30. package/dist/gs/bytes/reader.gs.js.map +1 -0
  31. package/dist/gs/fmt/fmt.d.ts +49 -0
  32. package/dist/gs/fmt/fmt.js +322 -0
  33. package/dist/gs/fmt/fmt.js.map +1 -0
  34. package/dist/gs/fmt/index.d.ts +1 -0
  35. package/dist/gs/fmt/index.js +2 -0
  36. package/dist/gs/fmt/index.js.map +1 -0
  37. package/dist/gs/internal/bytealg/index.d.ts +14 -2
  38. package/dist/gs/internal/bytealg/index.js +114 -8
  39. package/dist/gs/internal/bytealg/index.js.map +1 -1
  40. package/dist/gs/path/filepath/index.d.ts +3 -0
  41. package/dist/gs/path/filepath/index.js +3 -0
  42. package/dist/gs/path/filepath/index.js.map +1 -0
  43. package/dist/gs/path/filepath/match.d.ts +3 -0
  44. package/dist/gs/path/filepath/match.js +212 -0
  45. package/dist/gs/path/filepath/match.js.map +1 -0
  46. package/dist/gs/path/filepath/path.d.ts +25 -0
  47. package/dist/gs/path/filepath/path.js +265 -0
  48. package/dist/gs/path/filepath/path.js.map +1 -0
  49. package/dist/gs/reflect/deepequal.d.ts +2 -1
  50. package/dist/gs/reflect/deepequal.js +5 -53
  51. package/dist/gs/reflect/deepequal.js.map +1 -1
  52. package/dist/gs/reflect/map.d.ts +14 -8
  53. package/dist/gs/reflect/map.js +15 -11
  54. package/dist/gs/reflect/map.js.map +1 -1
  55. package/dist/gs/reflect/type.d.ts +17 -9
  56. package/dist/gs/reflect/type.js +1 -1
  57. package/dist/gs/reflect/type.js.map +1 -1
  58. package/dist/gs/reflect/value.js +15 -6
  59. package/dist/gs/reflect/value.js.map +1 -1
  60. package/dist/gs/reflect/visiblefields.js +18 -12
  61. package/dist/gs/reflect/visiblefields.js.map +1 -1
  62. package/dist/gs/sort/index.d.ts +4 -0
  63. package/dist/gs/sort/index.js +4 -0
  64. package/dist/gs/sort/index.js.map +1 -0
  65. package/dist/gs/sort/search.gs.d.ts +6 -0
  66. package/dist/gs/sort/search.gs.js +125 -0
  67. package/dist/gs/sort/search.gs.js.map +1 -0
  68. package/dist/gs/sort/slice.gs.d.ts +4 -0
  69. package/dist/gs/sort/slice.gs.js +49 -0
  70. package/dist/gs/sort/slice.gs.js.map +1 -0
  71. package/dist/gs/sort/sort.gs.d.ts +37 -0
  72. package/dist/gs/sort/sort.gs.js +203 -0
  73. package/dist/gs/sort/sort.gs.js.map +1 -0
  74. package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
  75. package/dist/gs/unicode/utf8/utf8.js +4 -2
  76. package/dist/gs/unicode/utf8/utf8.js.map +1 -1
  77. package/gs/builtin/builtin.ts +236 -0
  78. package/gs/builtin/slice.ts +17 -1
  79. package/gs/bytes/buffer.gs.ts +614 -0
  80. package/gs/bytes/bytes.gs.ts +1288 -0
  81. package/gs/bytes/godoc.txt +69 -0
  82. package/gs/bytes/index.ts +69 -0
  83. package/gs/bytes/iter.gs.ts +149 -0
  84. package/gs/bytes/metadata.go +12 -0
  85. package/gs/bytes/reader.gs.ts +230 -0
  86. package/gs/fmt/fmt.ts +407 -0
  87. package/gs/fmt/godoc.txt +382 -0
  88. package/gs/fmt/index.ts +31 -0
  89. package/gs/fmt/metadata.go +7 -0
  90. package/gs/internal/bytealg/index.ts +125 -10
  91. package/gs/internal/metadata.go +7 -0
  92. package/gs/io/metadata.go +11 -0
  93. package/gs/maps/metadata.go +8 -0
  94. package/gs/math/metadata.go +7 -0
  95. package/gs/os/metadata.go +17 -0
  96. package/gs/path/filepath/godoc.txt +35 -0
  97. package/gs/path/filepath/index.ts +27 -0
  98. package/gs/path/filepath/match.test.ts +274 -0
  99. package/gs/path/filepath/match.ts +249 -0
  100. package/gs/path/filepath/path.test.ts +246 -0
  101. package/gs/path/filepath/path.ts +328 -0
  102. package/gs/path/metadata.go +8 -0
  103. package/gs/reflect/deepequal.test.ts +41 -0
  104. package/gs/reflect/deepequal.ts +19 -4
  105. package/gs/reflect/map.test.ts +30 -0
  106. package/gs/reflect/map.ts +22 -18
  107. package/gs/reflect/metadata.go +7 -0
  108. package/gs/reflect/type.ts +19 -15
  109. package/gs/reflect/value.ts +21 -7
  110. package/gs/reflect/visiblefields.ts +17 -13
  111. package/gs/sort/godoc.txt +27 -0
  112. package/gs/sort/index.ts +24 -0
  113. package/gs/sort/search.gs.ts +128 -0
  114. package/gs/sort/slice.gs.ts +59 -0
  115. package/gs/sort/sort.gs.ts +227 -0
  116. package/gs/strconv/metadata.go +7 -0
  117. package/gs/strings/metadata.go +11 -0
  118. package/gs/sync/metadata.go +7 -0
  119. package/gs/unicode/utf8/utf8.ts +8 -5
  120. package/package.json +1 -1
  121. package/dist/gs/internal/testlog/index.d.ts +0 -1
  122. package/dist/gs/internal/testlog/index.js +0 -5
  123. package/dist/gs/internal/testlog/index.js.map +0 -1
  124. package/dist/gs/maps/iter.gs.d.ts +0 -7
  125. package/dist/gs/maps/iter.gs.js +0 -65
  126. package/dist/gs/maps/iter.gs.js.map +0 -1
  127. package/dist/gs/maps/maps.gs.d.ts +0 -7
  128. package/dist/gs/maps/maps.gs.js +0 -79
  129. package/dist/gs/maps/maps.gs.js.map +0 -1
  130. package/dist/gs/reflect/abi.d.ts +0 -59
  131. package/dist/gs/reflect/abi.gs.d.ts +0 -59
  132. package/dist/gs/reflect/abi.gs.js +0 -79
  133. package/dist/gs/reflect/abi.gs.js.map +0 -1
  134. package/dist/gs/reflect/abi.js +0 -79
  135. package/dist/gs/reflect/abi.js.map +0 -1
  136. package/dist/gs/reflect/badlinkname.d.ts +0 -52
  137. package/dist/gs/reflect/badlinkname.gs.d.ts +0 -52
  138. package/dist/gs/reflect/badlinkname.gs.js +0 -72
  139. package/dist/gs/reflect/badlinkname.gs.js.map +0 -1
  140. package/dist/gs/reflect/badlinkname.js +0 -72
  141. package/dist/gs/reflect/badlinkname.js.map +0 -1
  142. package/dist/gs/reflect/deepequal.gs.d.ts +0 -25
  143. package/dist/gs/reflect/deepequal.gs.js +0 -308
  144. package/dist/gs/reflect/deepequal.gs.js.map +0 -1
  145. package/dist/gs/reflect/float32reg_generic.gs.d.ts +0 -2
  146. package/dist/gs/reflect/float32reg_generic.gs.js +0 -10
  147. package/dist/gs/reflect/float32reg_generic.gs.js.map +0 -1
  148. package/dist/gs/reflect/index.gs.d.ts +0 -1
  149. package/dist/gs/reflect/index.gs.js +0 -3
  150. package/dist/gs/reflect/index.gs.js.map +0 -1
  151. package/dist/gs/reflect/iter.gs.d.ts +0 -3
  152. package/dist/gs/reflect/iter.gs.js +0 -24
  153. package/dist/gs/reflect/iter.gs.js.map +0 -1
  154. package/dist/gs/reflect/makefunc.gs.d.ts +0 -34
  155. package/dist/gs/reflect/makefunc.gs.js +0 -288
  156. package/dist/gs/reflect/makefunc.gs.js.map +0 -1
  157. package/dist/gs/reflect/map_swiss.gs.d.ts +0 -14
  158. package/dist/gs/reflect/map_swiss.gs.js +0 -70
  159. package/dist/gs/reflect/map_swiss.gs.js.map +0 -1
  160. package/dist/gs/reflect/reflect.gs.d.ts +0 -132
  161. package/dist/gs/reflect/reflect.gs.js +0 -437
  162. package/dist/gs/reflect/reflect.gs.js.map +0 -1
  163. package/dist/gs/reflect/swapper.gs.d.ts +0 -1
  164. package/dist/gs/reflect/swapper.gs.js +0 -32
  165. package/dist/gs/reflect/swapper.gs.js.map +0 -1
  166. package/dist/gs/reflect/type.gs.d.ts +0 -4
  167. package/dist/gs/reflect/type.gs.js +0 -21
  168. package/dist/gs/reflect/type.gs.js.map +0 -1
  169. package/dist/gs/reflect/value.gs.d.ts +0 -4
  170. package/dist/gs/reflect/value.gs.js +0 -12
  171. package/dist/gs/reflect/value.gs.js.map +0 -1
  172. package/dist/gs/reflect/visiblefields.gs.d.ts +0 -3
  173. package/dist/gs/reflect/visiblefields.gs.js +0 -123
  174. package/dist/gs/reflect/visiblefields.gs.js.map +0 -1
  175. package/dist/gs/stringslite/index.d.ts +0 -1
  176. package/dist/gs/stringslite/index.js +0 -2
  177. package/dist/gs/stringslite/index.js.map +0 -1
  178. package/dist/gs/stringslite/strings.d.ts +0 -11
  179. package/dist/gs/stringslite/strings.js +0 -67
  180. package/dist/gs/stringslite/strings.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ import * as $ from '../builtin/builtin.js';
2
+ export interface Interface {
3
+ Len(): number;
4
+ Less(i: number, j: number): boolean;
5
+ Swap(i: number, j: number): void;
6
+ }
7
+ export declare class IntSlice {
8
+ private _value;
9
+ constructor(_value: $.Slice<number>);
10
+ Len(): number;
11
+ Less(i: number, j: number): boolean;
12
+ Swap(i: number, j: number): void;
13
+ }
14
+ export declare class Float64Slice {
15
+ private _value;
16
+ constructor(_value: $.Slice<number>);
17
+ Len(): number;
18
+ Less(i: number, j: number): boolean;
19
+ Swap(i: number, j: number): void;
20
+ }
21
+ export declare class StringSlice {
22
+ private _value;
23
+ constructor(_value: $.Slice<string>);
24
+ Len(): number;
25
+ Less(i: number, j: number): boolean;
26
+ Swap(i: number, j: number): void;
27
+ }
28
+ export declare function Sort(data: Interface): void;
29
+ export declare function Stable(data: Interface): void;
30
+ export declare function IsSorted(data: Interface): boolean;
31
+ export declare function Reverse(data: Interface): Interface;
32
+ export declare function Ints(x: $.Slice<number>): void;
33
+ export declare function IntsAreSorted(x: $.Slice<number>): boolean;
34
+ export declare function Float64s(x: $.Slice<number>): void;
35
+ export declare function Float64sAreSorted(x: $.Slice<number>): boolean;
36
+ export declare function Strings(x: $.Slice<string>): void;
37
+ export declare function StringsAreSorted(x: $.Slice<string>): boolean;
@@ -0,0 +1,203 @@
1
+ import * as $ from '../builtin/builtin.js';
2
+ // IntSlice type for sorting integers
3
+ export class IntSlice {
4
+ _value;
5
+ constructor(_value) {
6
+ this._value = _value;
7
+ }
8
+ Len() {
9
+ return $.len(this._value);
10
+ }
11
+ Less(i, j) {
12
+ return $.index(this._value, i) < $.index(this._value, j);
13
+ }
14
+ Swap(i, j) {
15
+ const temp = $.index(this._value, i);
16
+ if (Array.isArray(this._value)) {
17
+ this._value[i] = $.index(this._value, j);
18
+ this._value[j] = temp;
19
+ }
20
+ else if (this._value && typeof this._value === 'object' && '__meta__' in this._value) {
21
+ const meta = this._value.__meta__;
22
+ const backing = meta.backing;
23
+ backing[meta.offset + i] = $.index(this._value, j);
24
+ backing[meta.offset + j] = temp;
25
+ }
26
+ }
27
+ }
28
+ // Float64Slice type for sorting float64s
29
+ export class Float64Slice {
30
+ _value;
31
+ constructor(_value) {
32
+ this._value = _value;
33
+ }
34
+ Len() {
35
+ return $.len(this._value);
36
+ }
37
+ Less(i, j) {
38
+ return $.index(this._value, i) < $.index(this._value, j);
39
+ }
40
+ Swap(i, j) {
41
+ const temp = $.index(this._value, i);
42
+ if (Array.isArray(this._value)) {
43
+ this._value[i] = $.index(this._value, j);
44
+ this._value[j] = temp;
45
+ }
46
+ else if (this._value && typeof this._value === 'object' && '__meta__' in this._value) {
47
+ const meta = this._value.__meta__;
48
+ const backing = meta.backing;
49
+ backing[meta.offset + i] = $.index(this._value, j);
50
+ backing[meta.offset + j] = temp;
51
+ }
52
+ }
53
+ }
54
+ // StringSlice type for sorting strings
55
+ export class StringSlice {
56
+ _value;
57
+ constructor(_value) {
58
+ this._value = _value;
59
+ }
60
+ Len() {
61
+ return $.len(this._value);
62
+ }
63
+ Less(i, j) {
64
+ return $.index(this._value, i) < $.index(this._value, j);
65
+ }
66
+ Swap(i, j) {
67
+ const temp = $.index(this._value, i);
68
+ if (Array.isArray(this._value)) {
69
+ this._value[i] = $.index(this._value, j);
70
+ this._value[j] = temp;
71
+ }
72
+ else if (this._value && typeof this._value === 'object' && '__meta__' in this._value) {
73
+ const meta = this._value.__meta__;
74
+ const backing = meta.backing;
75
+ backing[meta.offset + i] = $.index(this._value, j);
76
+ backing[meta.offset + j] = temp;
77
+ }
78
+ }
79
+ }
80
+ // Sort sorts data in ascending order as determined by the Less method
81
+ export function Sort(data) {
82
+ // Use a simple insertion sort for now - can be optimized later
83
+ const n = data.Len();
84
+ for (let i = 1; i < n; i++) {
85
+ for (let j = i; j > 0 && data.Less(j, j - 1); j--) {
86
+ data.Swap(j, j - 1);
87
+ }
88
+ }
89
+ }
90
+ // Stable sorts data while keeping the original order of equal elements
91
+ export function Stable(data) {
92
+ // For simplicity, use the same sort - can be improved later
93
+ Sort(data);
94
+ }
95
+ // IsSorted reports whether data is sorted
96
+ export function IsSorted(data) {
97
+ const n = data.Len();
98
+ for (let i = n - 1; i > 0; i--) {
99
+ if (data.Less(i, i - 1)) {
100
+ return false;
101
+ }
102
+ }
103
+ return true;
104
+ }
105
+ // Reverse returns the reverse order for data
106
+ export function Reverse(data) {
107
+ return {
108
+ Len: () => data.Len(),
109
+ Less: (i, j) => data.Less(j, i),
110
+ Swap: (i, j) => data.Swap(i, j)
111
+ };
112
+ }
113
+ // Helper function to swap elements in a slice
114
+ function swapInSlice(slice, i, j) {
115
+ if (!slice)
116
+ return;
117
+ const temp = $.index(slice, i);
118
+ if (Array.isArray(slice)) {
119
+ const val_j = $.index(slice, j);
120
+ const val_i = temp;
121
+ slice[i] = val_j;
122
+ slice[j] = val_i;
123
+ }
124
+ else if (typeof slice === 'object' && '__meta__' in slice) {
125
+ const meta = slice.__meta__;
126
+ const backing = meta.backing;
127
+ backing[meta.offset + i] = $.index(slice, j);
128
+ backing[meta.offset + j] = temp;
129
+ }
130
+ }
131
+ // Ints sorts a slice of ints in increasing order
132
+ export function Ints(x) {
133
+ if (!x)
134
+ return;
135
+ const n = $.len(x);
136
+ // Simple insertion sort
137
+ for (let i = 1; i < n; i++) {
138
+ for (let j = i; j > 0 && $.index(x, j) < $.index(x, j - 1); j--) {
139
+ swapInSlice(x, j, j - 1);
140
+ }
141
+ }
142
+ }
143
+ // IntsAreSorted reports whether the slice x is sorted in increasing order
144
+ export function IntsAreSorted(x) {
145
+ if (!x)
146
+ return true;
147
+ const n = $.len(x);
148
+ for (let i = n - 1; i > 0; i--) {
149
+ if ($.index(x, i) < $.index(x, i - 1)) {
150
+ return false;
151
+ }
152
+ }
153
+ return true;
154
+ }
155
+ // Float64s sorts a slice of float64s in increasing order
156
+ export function Float64s(x) {
157
+ if (!x)
158
+ return;
159
+ const n = $.len(x);
160
+ // Simple insertion sort
161
+ for (let i = 1; i < n; i++) {
162
+ for (let j = i; j > 0 && $.index(x, j) < $.index(x, j - 1); j--) {
163
+ swapInSlice(x, j, j - 1);
164
+ }
165
+ }
166
+ }
167
+ // Float64sAreSorted reports whether the slice x is sorted in increasing order
168
+ export function Float64sAreSorted(x) {
169
+ if (!x)
170
+ return true;
171
+ const n = $.len(x);
172
+ for (let i = n - 1; i > 0; i--) {
173
+ if ($.index(x, i) < $.index(x, i - 1)) {
174
+ return false;
175
+ }
176
+ }
177
+ return true;
178
+ }
179
+ // Strings sorts a slice of strings in increasing order
180
+ export function Strings(x) {
181
+ if (!x)
182
+ return;
183
+ const n = $.len(x);
184
+ // Simple insertion sort
185
+ for (let i = 1; i < n; i++) {
186
+ for (let j = i; j > 0 && $.index(x, j) < $.index(x, j - 1); j--) {
187
+ swapInSlice(x, j, j - 1);
188
+ }
189
+ }
190
+ }
191
+ // StringsAreSorted reports whether the slice x is sorted in increasing order
192
+ export function StringsAreSorted(x) {
193
+ if (!x)
194
+ return true;
195
+ const n = $.len(x);
196
+ for (let i = n - 1; i > 0; i--) {
197
+ if ($.index(x, i) < $.index(x, i - 1)) {
198
+ return false;
199
+ }
200
+ }
201
+ return true;
202
+ }
203
+ //# sourceMappingURL=sort.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.gs.js","sourceRoot":"","sources":["../../../gs/sort/sort.gs.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare const UTFMax = 4;
6
6
  export declare function AppendRune(p: Uint8Array, r: number): Uint8Array;
7
7
  export declare function DecodeLastRune(p: Uint8Array): [number, number];
8
8
  export declare function DecodeLastRuneInString(s: string): [number, number];
9
- export declare function DecodeRune(p: Uint8Array): [number, number];
9
+ export declare function DecodeRune(p: $.Bytes): [number, number];
10
10
  export declare function DecodeRuneInString(s: string): [number, number];
11
11
  export declare function EncodeRune(p: Uint8Array | $.Slice<number>, r: number): number;
12
12
  export declare function FullRune(p: Uint8Array): boolean;
@@ -51,15 +51,17 @@ export function DecodeLastRuneInString(s) {
51
51
  }
52
52
  // DecodeRune unpacks the first UTF-8 encoding in p and returns the rune and its width in bytes.
53
53
  export function DecodeRune(p) {
54
- if (p.length === 0) {
54
+ if (!p?.length) {
55
55
  return [RuneError, 0];
56
56
  }
57
57
  if (p[0] < RuneSelf) {
58
58
  return [p[0], 1];
59
59
  }
60
+ // Convert p to Uint8Array to satisfy AllowsSharedBufferSource requirement
61
+ const bytes = $.normalizeBytes(p);
60
62
  // Convert bytes to string and decode
61
63
  const decoder = new TextDecoder('utf-8', { fatal: false });
62
- const str = decoder.decode(p.slice(0, Math.min(4, p.length)));
64
+ const str = decoder.decode(bytes.slice(0, Math.min(4, bytes.length)));
63
65
  if (str.length === 0 || str === '\uFFFD') {
64
66
  return [RuneError, 1];
65
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../../gs/unicode/utf8/utf8.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../../gs/unicode/utf8/utf8.ts"],"names":[],"mappings":"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"}
@@ -209,3 +209,239 @@ export function sortSlice<T extends string | number>(s: Slice<T>): void {
209
209
  return
210
210
  }
211
211
  }
212
+
213
+ /**
214
+ * bytesEqual efficiently compares two byte slices for equality.
215
+ * Optimized for different byte representations.
216
+ */
217
+ export function bytesEqual(a: Bytes | null, b: Bytes | null): boolean {
218
+ // Handle null cases
219
+ if (a === null && b === null) return true
220
+ if (a === null || b === null) return false
221
+
222
+ // Convert to arrays for comparison
223
+ const aArr = bytesToArray(a)
224
+ const bArr = bytesToArray(b)
225
+
226
+ if (aArr.length !== bArr.length) return false
227
+
228
+ for (let i = 0; i < aArr.length; i++) {
229
+ if (aArr[i] !== bArr[i]) return false
230
+ }
231
+
232
+ return true
233
+ }
234
+
235
+ /**
236
+ * bytesCompare compares two byte slices lexicographically.
237
+ * Returns -1 if a < b, 0 if a == b, +1 if a > b.
238
+ */
239
+ export function bytesCompare(a: Bytes | null, b: Bytes | null): number {
240
+ // Handle null cases
241
+ if (a === null && b === null) return 0
242
+ if (a === null) return -1
243
+ if (b === null) return 1
244
+
245
+ const aArr = bytesToArray(a)
246
+ const bArr = bytesToArray(b)
247
+
248
+ const minLen = Math.min(aArr.length, bArr.length)
249
+
250
+ for (let i = 0; i < minLen; i++) {
251
+ if (aArr[i] < bArr[i]) return -1
252
+ if (aArr[i] > bArr[i]) return 1
253
+ }
254
+
255
+ if (aArr.length < bArr.length) return -1
256
+ if (aArr.length > bArr.length) return 1
257
+ return 0
258
+ }
259
+
260
+ /**
261
+ * bytesToArray converts any Bytes representation to a number array.
262
+ */
263
+ export function bytesToArray(bytes: Bytes | null): number[] {
264
+ if (bytes === null) return []
265
+
266
+ if (bytes instanceof Uint8Array) {
267
+ return Array.from(bytes)
268
+ }
269
+
270
+ if (Array.isArray(bytes)) {
271
+ return bytes
272
+ }
273
+
274
+ // Handle SliceProxy
275
+ if (isSliceProxy(bytes)) {
276
+ const proxy = bytes as SliceProxy<number>
277
+ const meta = proxy.__meta__
278
+ return meta.backing.slice(meta.offset, meta.offset + meta.length)
279
+ }
280
+
281
+ throw new Error(`Cannot convert bytes of type ${typeof bytes} to array`)
282
+ }
283
+
284
+ /**
285
+ * bytesToUint8Array converts any Bytes representation to a Uint8Array.
286
+ */
287
+ export function bytesToUint8Array(bytes: Bytes | null): Uint8Array {
288
+ if (bytes === null) return new Uint8Array(0)
289
+
290
+ if (bytes instanceof Uint8Array) {
291
+ return bytes
292
+ }
293
+
294
+ return new Uint8Array(bytesToArray(bytes))
295
+ }
296
+
297
+ /**
298
+ * bytesIndexOf finds the first occurrence of subslice in bytes.
299
+ * Returns -1 if not found.
300
+ */
301
+ export function bytesIndexOf(
302
+ bytes: Bytes | null,
303
+ subslice: Bytes | null,
304
+ ): number {
305
+ if (bytes === null || subslice === null) return -1
306
+
307
+ const haystack = bytesToArray(bytes)
308
+ const needle = bytesToArray(subslice)
309
+
310
+ if (needle.length === 0) return 0
311
+ if (needle.length > haystack.length) return -1
312
+
313
+ for (let i = 0; i <= haystack.length - needle.length; i++) {
314
+ let found = true
315
+ for (let j = 0; j < needle.length; j++) {
316
+ if (haystack[i + j] !== needle[j]) {
317
+ found = false
318
+ break
319
+ }
320
+ }
321
+ if (found) return i
322
+ }
323
+
324
+ return -1
325
+ }
326
+
327
+ /**
328
+ * bytesLastIndexOf finds the last occurrence of subslice in bytes.
329
+ * Returns -1 if not found.
330
+ */
331
+ export function bytesLastIndexOf(
332
+ bytes: Bytes | null,
333
+ subslice: Bytes | null,
334
+ ): number {
335
+ if (bytes === null || subslice === null) return -1
336
+
337
+ const haystack = bytesToArray(bytes)
338
+ const needle = bytesToArray(subslice)
339
+
340
+ if (needle.length === 0) return haystack.length
341
+ if (needle.length > haystack.length) return -1
342
+
343
+ for (let i = haystack.length - needle.length; i >= 0; i--) {
344
+ let found = true
345
+ for (let j = 0; j < needle.length; j++) {
346
+ if (haystack[i + j] !== needle[j]) {
347
+ found = false
348
+ break
349
+ }
350
+ }
351
+ if (found) return i
352
+ }
353
+
354
+ return -1
355
+ }
356
+
357
+ /**
358
+ * bytesIndexByte finds the first occurrence of byte c in bytes.
359
+ * Returns -1 if not found.
360
+ */
361
+ export function bytesIndexByte(bytes: Bytes | null, c: number): number {
362
+ if (bytes === null) return -1
363
+
364
+ const arr = bytesToArray(bytes)
365
+ return arr.indexOf(c)
366
+ }
367
+
368
+ /**
369
+ * bytesLastIndexByte finds the last occurrence of byte c in bytes.
370
+ * Returns -1 if not found.
371
+ */
372
+ export function bytesLastIndexByte(bytes: Bytes | null, c: number): number {
373
+ if (bytes === null) return -1
374
+
375
+ const arr = bytesToArray(bytes)
376
+ return arr.lastIndexOf(c)
377
+ }
378
+
379
+ /**
380
+ * bytesCount counts non-overlapping instances of sep in bytes.
381
+ */
382
+ export function bytesCount(bytes: Bytes | null, sep: Bytes | null): number {
383
+ if (bytes === null || sep === null) return 0
384
+
385
+ const haystack = bytesToArray(bytes)
386
+ const needle = bytesToArray(sep)
387
+
388
+ if (needle.length === 0) {
389
+ // Special case: empty separator counts code points + 1
390
+ // For now, just return length + 1 (ASCII assumption)
391
+ return haystack.length + 1
392
+ }
393
+
394
+ let count = 0
395
+ let pos = 0
396
+
397
+ while (pos <= haystack.length - needle.length) {
398
+ let found = true
399
+ for (let i = 0; i < needle.length; i++) {
400
+ if (haystack[pos + i] !== needle[i]) {
401
+ found = false
402
+ break
403
+ }
404
+ }
405
+ if (found) {
406
+ count++
407
+ pos += needle.length
408
+ } else {
409
+ pos++
410
+ }
411
+ }
412
+
413
+ return count
414
+ }
415
+
416
+ // Math functions needed by various packages
417
+ export function min(a: number, b: number): number {
418
+ return Math.min(a, b)
419
+ }
420
+
421
+ export function max(a: number, b: number): number {
422
+ return Math.max(a, b)
423
+ }
424
+
425
+ /**
426
+ * Converts a rune (number) or string to a string.
427
+ * This is used to replace String.fromCharCode() in Go string(rune) conversions.
428
+ * Since sometimes single-char rune literals are compiled to strings, this function
429
+ * needs to handle both numbers (runes) and strings.
430
+ *
431
+ * @param runeOrString A rune (Unicode code point as number) or a string
432
+ * @returns The resulting string
433
+ */
434
+ export function runeOrStringToString(runeOrString: number | string): string {
435
+ if (typeof runeOrString === 'string') {
436
+ return runeOrString
437
+ }
438
+ // For numbers, use String.fromCharCode to convert the rune to a string
439
+ return String.fromCharCode(runeOrString)
440
+ }
441
+
442
+ // Panic recovery function (simplified implementation)
443
+ export function recover(): any {
444
+ // In a real implementation, this would interact with Go's panic/recover mechanism
445
+ // For now, return null to indicate no panic was recovered
446
+ return null
447
+ }
@@ -192,6 +192,11 @@ export const makeSlice = <T>(
192
192
  // The rest of backingArr (from length to actualCapacity-1) remains uninitialized (undefined),
193
193
  // representing available capacity.
194
194
 
195
+ // OPTIMIZATION: If length equals capacity, return backing array directly
196
+ if (length === actualCapacity) {
197
+ return backingArr as Slice<T>
198
+ }
199
+
195
200
  // The proxyTargetArray serves as the shell for the proxy.
196
201
  // Its elements up to 'length' should reflect the initialized part of the slice.
197
202
  const proxyTargetArray = new Array<T>(length)
@@ -252,7 +257,7 @@ export const makeSlice = <T>(
252
257
  },
253
258
  }
254
259
 
255
- return new Proxy(proxy, handler) as Slice<T>
260
+ return new Proxy(proxy, handler) as unknown as SliceProxy<T>
256
261
  }
257
262
 
258
263
  /**
@@ -454,6 +459,11 @@ export const goSlice = <T>( // T can be number for Uint8Array case
454
459
  const newLength = high - low
455
460
  const newOffset = oldOffset + low
456
461
 
462
+ // OPTIMIZATION: If the result would have offset=0 and length=capacity, return backing directly
463
+ if (newOffset === 0 && newLength === newCap) {
464
+ return backing as Slice<T>
465
+ }
466
+
457
467
  // Create an array-like target with the correct length
458
468
  const proxyTargetArray = new Array<T>(newLength)
459
469
  // Note: We don't need to initialize the values here since the proxy handler
@@ -487,6 +497,12 @@ export const arrayToSlice = <T>(
487
497
 
488
498
  if (arr.length === 0) return arr
489
499
 
500
+ // OPTIMIZATION: For arrays where offset=0 and length=capacity, return the array directly
501
+ // if we're not doing deep conversion
502
+ if (depth === 1) {
503
+ return arr as Slice<T>
504
+ }
505
+
490
506
  const target = {
491
507
  __meta__: {
492
508
  backing: arr,