goscript 0.0.23 → 0.0.25

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 (94) hide show
  1. package/README.md +2 -2
  2. package/cmd/goscript/cmd_compile.go +18 -2
  3. package/compiler/analysis.go +74 -132
  4. package/compiler/analysis_test.go +220 -0
  5. package/compiler/assignment.go +37 -43
  6. package/compiler/builtin_test.go +90 -0
  7. package/compiler/compiler.go +307 -22
  8. package/compiler/composite-lit.go +108 -43
  9. package/compiler/config.go +7 -3
  10. package/compiler/config_test.go +6 -33
  11. package/compiler/decl.go +7 -1
  12. package/compiler/expr-call.go +212 -2
  13. package/compiler/expr-selector.go +66 -41
  14. package/compiler/expr-star.go +57 -65
  15. package/compiler/expr-type.go +1 -1
  16. package/compiler/expr-value.go +1 -1
  17. package/compiler/expr.go +125 -20
  18. package/compiler/field.go +4 -4
  19. package/compiler/primitive.go +11 -10
  20. package/compiler/spec-struct.go +3 -3
  21. package/compiler/spec-value.go +75 -29
  22. package/compiler/spec.go +9 -3
  23. package/compiler/stmt-assign.go +36 -2
  24. package/compiler/stmt-for.go +11 -0
  25. package/compiler/stmt-range.go +314 -1
  26. package/compiler/stmt.go +52 -0
  27. package/compiler/type.go +83 -15
  28. package/dist/gs/builtin/builtin.d.ts +9 -0
  29. package/dist/gs/builtin/builtin.js +46 -0
  30. package/dist/gs/builtin/builtin.js.map +1 -0
  31. package/dist/gs/builtin/channel.d.ts +193 -0
  32. package/dist/gs/builtin/channel.js +471 -0
  33. package/dist/gs/builtin/channel.js.map +1 -0
  34. package/dist/gs/builtin/defer.d.ts +38 -0
  35. package/dist/gs/builtin/defer.js +54 -0
  36. package/dist/gs/builtin/defer.js.map +1 -0
  37. package/dist/gs/builtin/index.d.ts +1 -0
  38. package/dist/gs/builtin/index.js +2 -0
  39. package/dist/gs/builtin/index.js.map +1 -0
  40. package/dist/gs/builtin/io.d.ts +16 -0
  41. package/dist/gs/builtin/io.js +15 -0
  42. package/dist/gs/builtin/io.js.map +1 -0
  43. package/dist/gs/builtin/map.d.ts +33 -0
  44. package/dist/gs/builtin/map.js +44 -0
  45. package/dist/gs/builtin/map.js.map +1 -0
  46. package/dist/gs/builtin/slice.d.ts +173 -0
  47. package/dist/gs/builtin/slice.js +799 -0
  48. package/dist/gs/builtin/slice.js.map +1 -0
  49. package/dist/gs/builtin/type.d.ts +203 -0
  50. package/dist/gs/builtin/type.js +744 -0
  51. package/dist/gs/builtin/type.js.map +1 -0
  52. package/dist/gs/builtin/varRef.d.ts +14 -0
  53. package/dist/gs/builtin/varRef.js +14 -0
  54. package/dist/gs/builtin/varRef.js.map +1 -0
  55. package/dist/gs/cmp/index.d.ts +4 -0
  56. package/dist/gs/cmp/index.js +27 -0
  57. package/dist/gs/cmp/index.js.map +1 -0
  58. package/dist/gs/context/context.d.ts +26 -0
  59. package/dist/gs/context/context.js +305 -0
  60. package/dist/gs/context/context.js.map +1 -0
  61. package/dist/gs/context/index.d.ts +1 -0
  62. package/dist/gs/context/index.js +2 -0
  63. package/dist/gs/context/index.js.map +1 -0
  64. package/dist/gs/internal/goarch/index.d.ts +6 -0
  65. package/dist/gs/internal/goarch/index.js +14 -0
  66. package/dist/gs/internal/goarch/index.js.map +1 -0
  67. package/dist/gs/iter/index.d.ts +1 -0
  68. package/dist/gs/iter/index.js +2 -0
  69. package/dist/gs/iter/index.js.map +1 -0
  70. package/dist/gs/iter/iter.d.ts +4 -0
  71. package/dist/gs/iter/iter.js +91 -0
  72. package/dist/gs/iter/iter.js.map +1 -0
  73. package/dist/gs/math/bits/index.d.ts +47 -0
  74. package/dist/gs/math/bits/index.js +298 -0
  75. package/dist/gs/math/bits/index.js.map +1 -0
  76. package/dist/gs/runtime/index.d.ts +1 -0
  77. package/dist/gs/runtime/index.js +2 -0
  78. package/dist/gs/runtime/index.js.map +1 -0
  79. package/dist/gs/runtime/runtime.d.ts +41 -0
  80. package/dist/gs/runtime/runtime.js +158 -0
  81. package/dist/gs/runtime/runtime.js.map +1 -0
  82. package/dist/gs/slices/index.d.ts +1 -0
  83. package/dist/gs/slices/index.js +2 -0
  84. package/dist/gs/slices/index.js.map +1 -0
  85. package/dist/gs/slices/slices.d.ts +8 -0
  86. package/dist/gs/slices/slices.js +20 -0
  87. package/dist/gs/slices/slices.js.map +1 -0
  88. package/dist/gs/time/index.d.ts +1 -0
  89. package/dist/gs/time/index.js +2 -0
  90. package/dist/gs/time/index.js.map +1 -0
  91. package/dist/gs/time/time.d.ts +57 -0
  92. package/dist/gs/time/time.js +208 -0
  93. package/dist/gs/time/time.js.map +1 -0
  94. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../gs/builtin/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * VarRef represents a Go variable which can be referred to by other variables.
3
+ *
4
+ * For example:
5
+ * var myVariable int // variable referenced
6
+ * myOtherVar := &myVariable
7
+ */
8
+ export type VarRef<T> = {
9
+ value: T;
10
+ };
11
+ /** Wrap a non-null T in a variable reference. */
12
+ export declare function varRef<T>(v: T): VarRef<T>;
13
+ /** Dereference a variable reference, throws on null → simulates Go panic. */
14
+ export declare function unref<T>(b: VarRef<T>): T;
@@ -0,0 +1,14 @@
1
+ /** Wrap a non-null T in a variable reference. */
2
+ export function varRef(v) {
3
+ // We create a new object wrapper for every varRef call to ensure
4
+ // distinct pointer identity, crucial for pointer comparisons (p1 == p2).
5
+ return { value: v };
6
+ }
7
+ /** Dereference a variable reference, throws on null → simulates Go panic. */
8
+ export function unref(b) {
9
+ if (b === null) {
10
+ throw new Error('runtime error: invalid memory address or nil pointer dereference');
11
+ }
12
+ return b.value;
13
+ }
14
+ //# sourceMappingURL=varRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varRef.js","sourceRoot":"","sources":["../../../gs/builtin/varRef.ts"],"names":[],"mappings":"AASA,iDAAiD;AACjD,MAAM,UAAU,MAAM,CAAI,CAAI;IAC5B,iEAAiE;IACjE,yEAAyE;IACzE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AACrB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,KAAK,CAAI,CAAY;IACnC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAA;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type Ordered = number | string | boolean | bigint;
2
+ export declare function Compare<T extends Ordered>(a: T, b: T): number;
3
+ export declare function Less<T extends Ordered>(a: T, b: T): boolean;
4
+ export declare function Or(...comparisons: number[]): number;
@@ -0,0 +1,27 @@
1
+ // Minimal stub for cmp package
2
+ // This provides the Ordered type and comparison functions needed by slices
3
+ // Compare compares two values and returns:
4
+ // -1 if a < b
5
+ // 0 if a == b
6
+ // 1 if a > b
7
+ export function Compare(a, b) {
8
+ if (a < b)
9
+ return -1;
10
+ if (a > b)
11
+ return 1;
12
+ return 0;
13
+ }
14
+ // Less reports whether a < b
15
+ export function Less(a, b) {
16
+ return a < b;
17
+ }
18
+ // Or returns the first non-zero result from the comparison functions,
19
+ // or zero if all comparisons return zero
20
+ export function Or(...comparisons) {
21
+ for (const cmp of comparisons) {
22
+ if (cmp !== 0)
23
+ return cmp;
24
+ }
25
+ return 0;
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/cmp/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,2EAA2E;AAK3E,2CAA2C;AAC3C,cAAc;AACd,eAAe;AACf,cAAc;AACd,MAAM,UAAU,OAAO,CAAoB,CAAI,EAAE,CAAI;IACnD,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,IAAI,CAAoB,CAAI,EAAE,CAAI;IAChD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,sEAAsE;AACtE,yCAAyC;AACzC,MAAM,UAAU,EAAE,CAAC,GAAG,WAAqB;IACzC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,26 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare const Canceled: Error;
3
+ export declare class DeadlineExceededError extends Error {
4
+ constructor();
5
+ }
6
+ export declare const DeadlineExceeded: DeadlineExceededError;
7
+ export type CancelFunc = () => void;
8
+ export type CancelCauseFunc = (cause: Error | null) => void;
9
+ export interface Context {
10
+ Deadline(): [Date | null, boolean];
11
+ Done(): $.Channel<{}>;
12
+ Err(): Error | null;
13
+ Value(key: any): any;
14
+ }
15
+ export declare function Background(): Context;
16
+ export declare function TODO(): Context;
17
+ export declare function WithCancel(parent: Context): [Context, CancelFunc];
18
+ export declare function WithCancelCause(parent: Context): [Context, CancelCauseFunc];
19
+ export declare function WithDeadline(parent: Context, d: Date): [Context, CancelFunc];
20
+ export declare function WithDeadlineCause(parent: Context, d: Date, cause: Error | null): [Context, CancelFunc];
21
+ export declare function WithTimeout(parent: Context, timeout: number): [Context, CancelFunc];
22
+ export declare function WithTimeoutCause(parent: Context, timeout: number, cause: Error | null): [Context, CancelFunc];
23
+ export declare function WithValue(parent: Context, key: any, val: any): Context;
24
+ export declare function WithoutCancel(parent: Context): Context;
25
+ export declare function Cause(ctx: Context): Error | null;
26
+ export declare function AfterFunc(ctx: Context, f: () => void): () => boolean;
@@ -0,0 +1,305 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export const Canceled = new Error("context canceled");
3
+ Canceled.name = "CanceledError";
4
+ export class DeadlineExceededError extends Error {
5
+ constructor() {
6
+ super("context deadline exceeded");
7
+ this.name = "DeadlineExceededError";
8
+ }
9
+ }
10
+ export const DeadlineExceeded = new DeadlineExceededError();
11
+ // Base implementation for all contexts
12
+ class baseContext {
13
+ }
14
+ // Background/TODO context that is never canceled
15
+ class backgroundContext extends baseContext {
16
+ static neverClosedChannel = $.makeChannel(0, {}, 'both');
17
+ static getNeverClosedChannel() {
18
+ return backgroundContext.neverClosedChannel;
19
+ }
20
+ Deadline() {
21
+ return [null, false];
22
+ }
23
+ Done() {
24
+ return backgroundContext.neverClosedChannel;
25
+ }
26
+ Err() {
27
+ return null;
28
+ }
29
+ Value(key) {
30
+ return null;
31
+ }
32
+ }
33
+ // Value context wraps a parent and adds a key-value pair
34
+ class valueContext extends baseContext {
35
+ parent;
36
+ key;
37
+ val;
38
+ constructor(parent, key, val) {
39
+ super();
40
+ this.parent = parent;
41
+ this.key = key;
42
+ this.val = val;
43
+ }
44
+ getParent() {
45
+ return this.parent;
46
+ }
47
+ Deadline() {
48
+ return this.parent.Deadline();
49
+ }
50
+ Done() {
51
+ return this.parent.Done();
52
+ }
53
+ Err() {
54
+ return this.parent.Err();
55
+ }
56
+ Value(key) {
57
+ if (this.key === key) {
58
+ return this.val;
59
+ }
60
+ return this.parent.Value(key);
61
+ }
62
+ }
63
+ // Cancel context that can be canceled
64
+ class cancelContext extends baseContext {
65
+ doneChannel;
66
+ err = null;
67
+ cause = null;
68
+ children = new Set();
69
+ parent;
70
+ parentCancelCtx = null;
71
+ removeFromParent = null;
72
+ constructor(parent) {
73
+ super();
74
+ this.parent = parent;
75
+ this.doneChannel = $.makeChannel(0, {}, 'both');
76
+ }
77
+ Deadline() {
78
+ return this.parent.Deadline();
79
+ }
80
+ Done() {
81
+ return this.doneChannel;
82
+ }
83
+ Err() {
84
+ return this.err;
85
+ }
86
+ Value(key) {
87
+ return this.parent.Value(key);
88
+ }
89
+ getCause() {
90
+ if (this.cause !== null) {
91
+ return this.cause;
92
+ }
93
+ return this.err;
94
+ }
95
+ cancel(removeFromParent, err, cause) {
96
+ if (this.err !== null) {
97
+ return; // Already canceled
98
+ }
99
+ this.err = err;
100
+ this.cause = cause;
101
+ this.doneChannel.close();
102
+ // Cancel all children
103
+ for (const child of this.children) {
104
+ child.cancel(false, err, cause);
105
+ }
106
+ this.children.clear();
107
+ // Remove from parent's children if requested
108
+ if (removeFromParent && this.removeFromParent) {
109
+ this.removeFromParent();
110
+ this.removeFromParent = null;
111
+ }
112
+ }
113
+ propagateCancel() {
114
+ // Find parent cancelContext if any
115
+ let parent = this.parent;
116
+ while (parent instanceof valueContext) {
117
+ parent = parent.getParent();
118
+ }
119
+ if (parent instanceof cancelContext) {
120
+ // Parent is a cancel context, register as child
121
+ this.parentCancelCtx = parent;
122
+ if (parent.err !== null) {
123
+ // Parent already canceled
124
+ this.cancel(false, parent.err, parent.cause);
125
+ }
126
+ else {
127
+ parent.children.add(this);
128
+ this.removeFromParent = () => {
129
+ parent.children.delete(this);
130
+ };
131
+ }
132
+ }
133
+ else {
134
+ // Watch parent's Done channel
135
+ this.watchParentDone();
136
+ }
137
+ }
138
+ watchParentDone() {
139
+ const parentDone = this.parent.Done();
140
+ (async () => {
141
+ try {
142
+ await parentDone.receive();
143
+ }
144
+ catch {
145
+ // Channel closed
146
+ }
147
+ // Parent is done, cancel this context
148
+ const parentErr = this.parent.Err();
149
+ if (parentErr && this.err === null) {
150
+ this.cancel(false, parentErr, null);
151
+ }
152
+ })();
153
+ }
154
+ }
155
+ // Timer context with deadline
156
+ class timerContext extends cancelContext {
157
+ deadline;
158
+ timer;
159
+ constructor(parent, deadline) {
160
+ super(parent);
161
+ this.deadline = deadline;
162
+ }
163
+ Deadline() {
164
+ return [this.deadline, true];
165
+ }
166
+ startTimer() {
167
+ const now = Date.now();
168
+ const duration = this.deadline.getTime() - now;
169
+ if (duration <= 0) {
170
+ // Already expired
171
+ this.cancel(true, DeadlineExceeded, null);
172
+ return;
173
+ }
174
+ this.timer = setTimeout(() => {
175
+ this.cancel(true, DeadlineExceeded, null);
176
+ }, duration);
177
+ }
178
+ cancel(removeFromParent, err, cause) {
179
+ super.cancel(removeFromParent, err, cause);
180
+ if (this.timer) {
181
+ clearTimeout(this.timer);
182
+ this.timer = null;
183
+ }
184
+ }
185
+ }
186
+ // Without cancel context - inherits values but not cancellation
187
+ class withoutCancelContext extends baseContext {
188
+ parent;
189
+ constructor(parent) {
190
+ super();
191
+ this.parent = parent;
192
+ }
193
+ Deadline() {
194
+ return [null, false];
195
+ }
196
+ Done() {
197
+ return backgroundContext.getNeverClosedChannel();
198
+ }
199
+ Err() {
200
+ return null;
201
+ }
202
+ Value(key) {
203
+ return this.parent.Value(key);
204
+ }
205
+ }
206
+ // Singleton contexts
207
+ const background = new backgroundContext();
208
+ const todo = new backgroundContext();
209
+ // Background returns a non-nil, empty Context that is never canceled
210
+ export function Background() {
211
+ return background;
212
+ }
213
+ // TODO returns a non-nil, empty Context
214
+ export function TODO() {
215
+ return todo;
216
+ }
217
+ // WithCancel returns a copy of parent with a new Done channel
218
+ export function WithCancel(parent) {
219
+ const ctx = new cancelContext(parent);
220
+ ctx.propagateCancel();
221
+ return [ctx, () => {
222
+ ctx.cancel(true, Canceled, null);
223
+ }];
224
+ }
225
+ // WithCancelCause returns a copy of parent with a new Done channel and cause recording
226
+ export function WithCancelCause(parent) {
227
+ const ctx = new cancelContext(parent);
228
+ ctx.propagateCancel();
229
+ return [ctx, (cause) => {
230
+ ctx.cancel(true, Canceled, cause);
231
+ }];
232
+ }
233
+ // WithDeadline returns a copy of parent with the deadline adjusted to be no later than d
234
+ export function WithDeadline(parent, d) {
235
+ return WithDeadlineCause(parent, d, null);
236
+ }
237
+ // WithDeadlineCause is like WithDeadline but also sets the cause
238
+ export function WithDeadlineCause(parent, d, cause) {
239
+ // Check if parent deadline is already earlier
240
+ const [parentDeadline, ok] = parent.Deadline();
241
+ if (ok && parentDeadline && parentDeadline <= d) {
242
+ // Parent deadline is already sooner
243
+ return WithCancel(parent);
244
+ }
245
+ const ctx = new timerContext(parent, d);
246
+ ctx.propagateCancel();
247
+ ctx.startTimer();
248
+ return [ctx, () => {
249
+ ctx.cancel(true, Canceled, cause);
250
+ }];
251
+ }
252
+ // WithTimeout returns WithDeadline(parent, Date.now() + timeout)
253
+ export function WithTimeout(parent, timeout) {
254
+ return WithDeadline(parent, new Date(Date.now() + timeout));
255
+ }
256
+ // WithTimeoutCause is like WithTimeout but also sets the cause
257
+ export function WithTimeoutCause(parent, timeout, cause) {
258
+ return WithDeadlineCause(parent, new Date(Date.now() + timeout), cause);
259
+ }
260
+ // WithValue returns a copy of parent with the value associated with key
261
+ export function WithValue(parent, key, val) {
262
+ return new valueContext(parent, key, val);
263
+ }
264
+ // WithoutCancel returns a context that inherits values but not cancellation
265
+ export function WithoutCancel(parent) {
266
+ return new withoutCancelContext(parent);
267
+ }
268
+ // Cause returns the underlying cause of the context's cancellation
269
+ export function Cause(ctx) {
270
+ let c = ctx;
271
+ // Unwrap value contexts
272
+ while (c instanceof valueContext) {
273
+ c = c.getParent();
274
+ }
275
+ if (c instanceof cancelContext) {
276
+ return c.getCause();
277
+ }
278
+ return c.Err();
279
+ }
280
+ // AfterFunc runs f in a separate goroutine after ctx is done
281
+ export function AfterFunc(ctx, f) {
282
+ let stopped = false;
283
+ let done = false;
284
+ const promise = (async () => {
285
+ try {
286
+ await ctx.Done().receive();
287
+ }
288
+ catch {
289
+ // Channel closed
290
+ }
291
+ if (!stopped) {
292
+ done = true;
293
+ // Run in next tick to simulate goroutine
294
+ setImmediate(f);
295
+ }
296
+ })();
297
+ return () => {
298
+ if (!done) {
299
+ stopped = true;
300
+ return true;
301
+ }
302
+ return false;
303
+ };
304
+ }
305
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../gs/context/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './context.js';
@@ -0,0 +1,2 @@
1
+ export * from './context.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const PtrSize = 8;
2
+ export declare const BigEndian = false;
3
+ export declare const ArchFamily = "wasm";
4
+ export declare const Int64Align = 8;
5
+ export declare const MinFrameSize = 0;
6
+ export declare const CacheLineSize = 64;
@@ -0,0 +1,14 @@
1
+ // Architecture constants for JavaScript/WebAssembly target
2
+ // This replaces the auto-generated version with appropriate values for JS
3
+ // Pointer size in bytes (64-bit in modern JavaScript environments)
4
+ export const PtrSize = 8;
5
+ // JavaScript is little-endian
6
+ export const BigEndian = false;
7
+ // Architecture family
8
+ export const ArchFamily = "wasm";
9
+ // Other common architecture constants
10
+ export const Int64Align = 8;
11
+ export const MinFrameSize = 0;
12
+ // CPU cache line size (not really applicable in JS, but some code might reference it)
13
+ export const CacheLineSize = 64;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/internal/goarch/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,0EAA0E;AAE1E,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,sBAAsB;AACtB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAEjC,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,sFAAsF;AACtF,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './iter.js';
@@ -0,0 +1,2 @@
1
+ export * from './iter.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/iter/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type Seq<V> = (_yield: (value: V) => boolean) => void;
2
+ export type Seq2<K, V> = (_yield: (key: K, value: V) => boolean) => void;
3
+ export declare function Pull<V>(seq: Seq<V>): [() => [V | undefined, boolean], () => void];
4
+ export declare function Pull2<K, V>(seq: Seq2<K, V>): [() => [K | undefined, V | undefined, boolean], () => void];
@@ -0,0 +1,91 @@
1
+ // TypeScript implementation of Go's iter package
2
+ // This provides iterator types and functions
3
+ // Pull converts the "push-style" iterator sequence seq into a "pull-style" iterator
4
+ // Returns a function that returns the next value and a boolean indicating if iteration should continue
5
+ export function Pull(seq) {
6
+ let done = false;
7
+ let nextValue;
8
+ let hasNext = false;
9
+ const iterator = seq(function (value) {
10
+ nextValue = value;
11
+ hasNext = true;
12
+ return false; // Stop iteration after getting one value
13
+ });
14
+ const next = () => {
15
+ if (done) {
16
+ return [undefined, false];
17
+ }
18
+ if (hasNext) {
19
+ const value = nextValue;
20
+ hasNext = false;
21
+ nextValue = undefined;
22
+ return [value, true];
23
+ }
24
+ // Try to get next value
25
+ seq(function (value) {
26
+ nextValue = value;
27
+ hasNext = true;
28
+ return false; // Stop after getting one value
29
+ });
30
+ if (hasNext) {
31
+ const value = nextValue;
32
+ hasNext = false;
33
+ nextValue = undefined;
34
+ return [value, true];
35
+ }
36
+ done = true;
37
+ return [undefined, false];
38
+ };
39
+ const stop = () => {
40
+ done = true;
41
+ hasNext = false;
42
+ nextValue = undefined;
43
+ };
44
+ return [next, stop];
45
+ }
46
+ // Pull2 converts the "push-style" iterator sequence seq into a "pull-style" iterator
47
+ // Returns a function that returns the next key-value pair and a boolean indicating if iteration should continue
48
+ export function Pull2(seq) {
49
+ let done = false;
50
+ let nextKey;
51
+ let nextValue;
52
+ let hasNext = false;
53
+ const next = () => {
54
+ if (done) {
55
+ return [undefined, undefined, false];
56
+ }
57
+ if (hasNext) {
58
+ const key = nextKey;
59
+ const value = nextValue;
60
+ hasNext = false;
61
+ nextKey = undefined;
62
+ nextValue = undefined;
63
+ return [key, value, true];
64
+ }
65
+ // Try to get next value
66
+ seq(function (key, value) {
67
+ nextKey = key;
68
+ nextValue = value;
69
+ hasNext = true;
70
+ return false; // Stop after getting one value
71
+ });
72
+ if (hasNext) {
73
+ const key = nextKey;
74
+ const value = nextValue;
75
+ hasNext = false;
76
+ nextKey = undefined;
77
+ nextValue = undefined;
78
+ return [key, value, true];
79
+ }
80
+ done = true;
81
+ return [undefined, undefined, false];
82
+ };
83
+ const stop = () => {
84
+ done = true;
85
+ hasNext = false;
86
+ nextKey = undefined;
87
+ nextValue = undefined;
88
+ };
89
+ return [next, stop];
90
+ }
91
+ //# sourceMappingURL=iter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/iter/iter.ts"],"names":[],"mappings":"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"}