goscript 0.0.32 → 0.0.34

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 (43) hide show
  1. package/compiler/analysis.go +2 -2
  2. package/compiler/assignment.go +26 -0
  3. package/compiler/builtin_test.go +2 -0
  4. package/compiler/compiler.go +12 -2
  5. package/compiler/compiler_test.go +0 -53
  6. package/compiler/expr-call.go +229 -2
  7. package/compiler/expr.go +66 -1
  8. package/compiler/lit.go +1 -1
  9. package/compiler/spec.go +6 -0
  10. package/compiler/stmt-assign.go +106 -90
  11. package/compiler/stmt-for.go +78 -1
  12. package/compiler/stmt-range.go +333 -461
  13. package/compiler/stmt.go +20 -0
  14. package/compiler/type.go +11 -8
  15. package/dist/gs/builtin/builtin.d.ts +7 -0
  16. package/dist/gs/builtin/builtin.js +30 -0
  17. package/dist/gs/builtin/builtin.js.map +1 -1
  18. package/dist/gs/builtin/map.d.ts +4 -4
  19. package/dist/gs/builtin/map.js +12 -6
  20. package/dist/gs/builtin/map.js.map +1 -1
  21. package/dist/gs/builtin/slice.d.ts +7 -7
  22. package/dist/gs/builtin/slice.js +19 -9
  23. package/dist/gs/builtin/slice.js.map +1 -1
  24. package/dist/gs/maps/index.d.ts +2 -0
  25. package/dist/gs/maps/index.js +3 -0
  26. package/dist/gs/maps/index.js.map +1 -0
  27. package/dist/gs/maps/iter.gs.d.ts +7 -0
  28. package/dist/gs/maps/iter.gs.js +65 -0
  29. package/dist/gs/maps/iter.gs.js.map +1 -0
  30. package/dist/gs/maps/maps.gs.d.ts +7 -0
  31. package/dist/gs/maps/maps.gs.js +79 -0
  32. package/dist/gs/maps/maps.gs.js.map +1 -0
  33. package/dist/gs/slices/slices.d.ts +6 -0
  34. package/dist/gs/slices/slices.js +8 -0
  35. package/dist/gs/slices/slices.js.map +1 -1
  36. package/gs/builtin/builtin.ts +38 -0
  37. package/gs/builtin/map.ts +10 -9
  38. package/gs/builtin/slice.ts +23 -11
  39. package/gs/maps/index.ts +2 -0
  40. package/gs/maps/iter.gs.ts +71 -0
  41. package/gs/maps/maps.gs.ts +87 -0
  42. package/gs/slices/slices.ts +9 -0
  43. package/package.json +1 -1
package/compiler/stmt.go CHANGED
@@ -4,6 +4,7 @@ import (
4
4
  "fmt"
5
5
  "go/ast"
6
6
  "go/token"
7
+ "go/types"
7
8
  "strings"
8
9
 
9
10
  "github.com/pkg/errors"
@@ -538,6 +539,25 @@ func (c *GoToTSCompiler) WriteStmtReturn(exp *ast.ReturnStmt) error {
538
539
  if i != 0 {
539
540
  c.tsw.WriteLiterally(", ")
540
541
  }
542
+ // Special handling for nil in generic function returns
543
+ if ident, isIdent := res.(*ast.Ident); isIdent && ident.Name == "nil" {
544
+ // Check if we're in a generic function and get the return type
545
+ if nodeInfo := c.analysis.NodeData[exp]; nodeInfo != nil && nodeInfo.EnclosingFuncDecl != nil {
546
+ funcDecl := nodeInfo.EnclosingFuncDecl
547
+ if funcDecl.Type.Results != nil && i < len(funcDecl.Type.Results.List) {
548
+ // Get the return type for this result position
549
+ resultField := funcDecl.Type.Results.List[i]
550
+ if resultType := c.pkg.TypesInfo.TypeOf(resultField.Type); resultType != nil {
551
+ if _, isTypeParam := resultType.(*types.TypeParam); isTypeParam {
552
+ // This is a generic type parameter, use type assertion with unknown intermediate
553
+ c.tsw.WriteLiterally("null as unknown as ")
554
+ c.WriteGoType(resultType, GoTypeContextFunctionReturn)
555
+ continue
556
+ }
557
+ }
558
+ }
559
+ }
560
+ }
541
561
  if err := c.WriteValueExpr(res); err != nil { // Return results are values
542
562
  return err
543
563
  }
package/compiler/type.go CHANGED
@@ -3,6 +3,7 @@ package compiler
3
3
  import (
4
4
  "fmt"
5
5
  "go/ast"
6
+ "go/token"
6
7
  "go/types"
7
8
  "strings"
8
9
  )
@@ -67,7 +68,8 @@ func (c *GoToTSCompiler) WriteGoType(typ types.Type, context GoTypeContext) {
67
68
  c.WriteGoType(t.Underlying(), context)
68
69
  case *types.TypeParam:
69
70
  // For type parameters, write the type parameter name (e.g., "T", "K", etc.)
70
- c.tsw.WriteLiterally(t.Obj().Name())
71
+ // Use sanitizeIdentifier to handle conflicts with TypeScript built-in types
72
+ c.tsw.WriteLiterally(c.sanitizeIdentifier(t.Obj().Name()))
71
73
  case *types.Union:
72
74
  // Handle union types (e.g., string | []byte)
73
75
  for i := 0; i < t.Len(); i++ {
@@ -171,9 +173,9 @@ func (c *GoToTSCompiler) WriteZeroValueForType(typ any) {
171
173
  // For anonymous struct types, initialize with {}
172
174
  c.tsw.WriteLiterally("{}")
173
175
  case *types.TypeParam:
174
- // For type parameters, use null! (non-null assertion) to avoid TypeScript
175
- // casting errors with union types like string | Uint8Array
176
- c.tsw.WriteLiterally("null!")
176
+ // For type parameters, use null with type assertion to work around TypeScript's strict checking
177
+ // This allows null to be assigned to generic type parameters even when the constraint doesn't explicitly include null
178
+ c.tsw.WriteLiterally("null as any")
177
179
  default:
178
180
  c.tsw.WriteLiterally("null")
179
181
  }
@@ -311,7 +313,7 @@ func (c *GoToTSCompiler) WritePointerType(t *types.Pointer, context GoTypeContex
311
313
  func (c *GoToTSCompiler) WriteSliceType(t *types.Slice) {
312
314
  // Check if it's a []byte slice
313
315
  if elem, ok := t.Elem().(*types.Basic); ok && elem.Kind() == types.Uint8 {
314
- c.tsw.WriteLiterally("Uint8Array")
316
+ c.tsw.WriteLiterally("$.Bytes")
315
317
  return
316
318
  }
317
319
  c.tsw.WriteLiterally("$.Slice<")
@@ -629,7 +631,8 @@ func (c *GoToTSCompiler) WriteTypeParameters(typeParams *ast.FieldList) {
629
631
  if j > 0 {
630
632
  c.tsw.WriteLiterally(", ")
631
633
  }
632
- c.tsw.WriteLiterally(name.Name)
634
+ // Use sanitizeIdentifier to handle conflicts with TypeScript built-in types
635
+ c.tsw.WriteLiterally(c.sanitizeIdentifier(name.Name))
633
636
 
634
637
  // Write constraint if present
635
638
  if field.Type != nil {
@@ -661,7 +664,7 @@ func (c *GoToTSCompiler) WriteTypeConstraint(constraint ast.Expr) {
661
664
  }
662
665
  case *ast.BinaryExpr:
663
666
  // Handle union types like []byte | string
664
- if t.Op.String() == "|" {
667
+ if t.Op == token.OR {
665
668
  c.WriteTypeConstraint(t.X)
666
669
  c.tsw.WriteLiterally(" | ")
667
670
  c.WriteTypeConstraint(t.Y)
@@ -675,7 +678,7 @@ func (c *GoToTSCompiler) WriteTypeConstraint(constraint ast.Expr) {
675
678
  case *ast.ArrayType:
676
679
  // Handle []byte specifically
677
680
  if ident, ok := t.Elt.(*ast.Ident); ok && ident.Name == "byte" {
678
- c.tsw.WriteLiterally("Uint8Array")
681
+ c.tsw.WriteLiterally("$.Bytes")
679
682
  } else {
680
683
  c.WriteTypeExpr(constraint)
681
684
  }
@@ -5,6 +5,7 @@ export * from './io.js';
5
5
  export * from './map.js';
6
6
  export * from './slice.js';
7
7
  export * from './type.js';
8
+ export type Bytes = Uint8Array | import('./slice.js').Slice<number>;
8
9
  export declare function int(value: number): number;
9
10
  export declare function copy<T>(dst: T[] | Uint8Array, src: T[] | Uint8Array | string): number;
10
11
  export declare function multiplyDuration(duration: any, multiplier: number): any;
@@ -26,3 +27,9 @@ export declare function normalizeBytes(bytes: Uint8Array | number[] | null | und
26
27
  } | {
27
28
  valueOf(): number[];
28
29
  }): Uint8Array;
30
+ /**
31
+ * sortSlice sorts a slice in ascending order.
32
+ * Handles all slice types including null, arrays, Uint8Array, and SliceProxy.
33
+ * @param s The slice to sort in place
34
+ */
35
+ export declare function sortSlice<T extends string | number>(s: import('./slice.js').Slice<T>): void;
@@ -134,4 +134,34 @@ export function normalizeBytes(bytes) {
134
134
  }
135
135
  throw new Error(`Cannot normalize bytes of type ${typeof bytes}: ${bytes}`);
136
136
  }
137
+ /**
138
+ * sortSlice sorts a slice in ascending order.
139
+ * Handles all slice types including null, arrays, Uint8Array, and SliceProxy.
140
+ * @param s The slice to sort in place
141
+ */
142
+ export function sortSlice(s) {
143
+ if (s === null || s === undefined) {
144
+ return; // Nothing to sort for nil slice
145
+ }
146
+ if (Array.isArray(s)) {
147
+ s.sort();
148
+ return;
149
+ }
150
+ if (s instanceof Uint8Array) {
151
+ s.sort();
152
+ return;
153
+ }
154
+ // Handle SliceProxy case - sort the backing array in-place within the slice bounds
155
+ if (s && typeof s === 'object' && '__meta__' in s) {
156
+ const proxy = s;
157
+ const meta = proxy.__meta__;
158
+ const section = meta.backing.slice(meta.offset, meta.offset + meta.length);
159
+ section.sort();
160
+ // Copy sorted section back to the backing array
161
+ for (let i = 0; i < section.length; i++) {
162
+ meta.backing[meta.offset + i] = section[i];
163
+ }
164
+ return;
165
+ }
166
+ }
137
167
  //# sourceMappingURL=builtin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@
4
4
  */
5
5
  export declare const makeMap: <K, V>() => Map<K, V>;
6
6
  /**
7
- * Gets a value from a map, with a default value if the key doesn't exist.
7
+ * Gets a value from a map, returning a tuple [value, exists].
8
8
  * @param map The map to get from.
9
9
  * @param key The key to get.
10
- * @param defaultValue The default value to return if the key doesn't exist (defaults to 0).
11
- * @returns The value for the key, or the default value if the key doesn't exist.
10
+ * @param defaultValue The default value to return if the key doesn't exist.
11
+ * @returns A tuple [value, exists] where value is the map value or defaultValue, and exists is whether the key was found.
12
12
  */
13
- export declare const mapGet: <K, V>(map: Map<K, V>, key: K, defaultValue?: V | null) => V | null;
13
+ export declare function mapGet<K, V, D>(map: Map<K, V>, key: K, defaultValue: D): [V, true] | [D, false];
14
14
  /**
15
15
  * Sets a value in a map.
16
16
  * @param map The map to set in.
@@ -6,15 +6,21 @@ export const makeMap = () => {
6
6
  return new Map();
7
7
  };
8
8
  /**
9
- * Gets a value from a map, with a default value if the key doesn't exist.
9
+ * Gets a value from a map, returning a tuple [value, exists].
10
10
  * @param map The map to get from.
11
11
  * @param key The key to get.
12
- * @param defaultValue The default value to return if the key doesn't exist (defaults to 0).
13
- * @returns The value for the key, or the default value if the key doesn't exist.
12
+ * @param defaultValue The default value to return if the key doesn't exist.
13
+ * @returns A tuple [value, exists] where value is the map value or defaultValue, and exists is whether the key was found.
14
14
  */
15
- export const mapGet = (map, key, defaultValue = null) => {
16
- return map.has(key) ? map.get(key) : defaultValue;
17
- };
15
+ export function mapGet(map, key, defaultValue) {
16
+ const exists = map.has(key);
17
+ if (exists) {
18
+ return [map.get(key), true];
19
+ }
20
+ else {
21
+ return [defaultValue, false];
22
+ }
23
+ }
18
24
  /**
19
25
  * Sets a value in a map.
20
26
  * @param map The map to set in.
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../gs/builtin/map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE;IAC3C,OAAO,IAAI,GAAG,EAAQ,CAAA;AACxB,CAAC,CAAA;AACD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAAc,EACd,GAAM,EACN,eAAyB,IAAI,EACnB,EAAE;IACZ,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,YAAY,CAAA;AACpD,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAE,KAAQ,EAAQ,EAAE;IACrE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,GAAc,EAAE,GAAM,EAAQ,EAAE;IACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAW,EAAE;IAC9D,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../gs/builtin/map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE;IAC3C,OAAO,IAAI,GAAG,EAAQ,CAAA;AACxB,CAAC,CAAA;AACD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAU,GAAc,EAAE,GAAM,EAAE,YAAe;IACrE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAE,KAAQ,EAAQ,EAAE;IACrE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,GAAc,EAAE,GAAM,EAAQ,EAAE;IACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAW,EAAE;IAC9D,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA"}
@@ -152,22 +152,22 @@ export declare function stringToBytes(s: string): Uint8Array;
152
152
  */
153
153
  export declare function genericBytesOrStringToString(value: string | Uint8Array): string;
154
154
  /**
155
- * Indexes into a value that could be either a string or Uint8Array.
155
+ * Indexes into a value that could be either a string or bytes.
156
156
  * Used for generic type parameters with constraint string | []byte.
157
157
  * Both cases return a byte value (number).
158
- * @param value Value that is either a string or Uint8Array
158
+ * @param value Value that is either a string or bytes (Uint8Array or Slice<number>)
159
159
  * @param index The index to access
160
160
  * @returns The byte value at the specified index
161
161
  */
162
- export declare function indexStringOrBytes(value: string | Uint8Array, index: number): number;
162
+ export declare function indexStringOrBytes(value: string | import('./builtin.js').Bytes, index: number): number;
163
163
  /**
164
- * Slices a value that could be either a string or Uint8Array.
164
+ * Slices a value that could be either a string or bytes.
165
165
  * Used for generic type parameters with constraint string | []byte.
166
- * @param value Value that is either a string or Uint8Array
166
+ * @param value Value that is either a string or bytes (Uint8Array or Slice<number>)
167
167
  * @param low Starting index (inclusive). Defaults to 0.
168
168
  * @param high Ending index (exclusive). Defaults to length.
169
- * @param max Capacity limit (only used for Uint8Array, ignored for strings)
169
+ * @param max Capacity limit (only used for bytes, ignored for strings)
170
170
  * @returns The sliced value of the same type as input
171
171
  */
172
- export declare function sliceStringOrBytes<T extends string | Uint8Array>(value: T, low?: number, high?: number, max?: number): T;
172
+ export declare function sliceStringOrBytes<T extends string | import('./builtin.js').Bytes>(value: T, low?: number, high?: number, max?: number): T;
173
173
  export {};
@@ -730,8 +730,7 @@ export const sliceString = (str, low, high) => {
730
730
  const result = new TextDecoder('utf-8', { fatal: true }).decode(slicedBytes);
731
731
  return result;
732
732
  }
733
- catch (_e) {
734
- //eslint-disable-line @typescript-eslint/no-unused-vars
733
+ catch (_e) { //eslint-disable-line @typescript-eslint/no-unused-vars
735
734
  // If we get here, the slice would create invalid UTF-8
736
735
  // This is a fundamental limitation of JavaScript string handling
737
736
  throw new Error(`Cannot slice string at byte indices [${actualLow}:${actualHigh}] because it would create invalid UTF-8. ` +
@@ -785,10 +784,10 @@ export function genericBytesOrStringToString(value) {
785
784
  return bytesToString(value);
786
785
  }
787
786
  /**
788
- * Indexes into a value that could be either a string or Uint8Array.
787
+ * Indexes into a value that could be either a string or bytes.
789
788
  * Used for generic type parameters with constraint string | []byte.
790
789
  * Both cases return a byte value (number).
791
- * @param value Value that is either a string or Uint8Array
790
+ * @param value Value that is either a string or bytes (Uint8Array or Slice<number>)
792
791
  * @param index The index to access
793
792
  * @returns The byte value at the specified index
794
793
  */
@@ -796,21 +795,32 @@ export function indexStringOrBytes(value, index) {
796
795
  if (typeof value === 'string') {
797
796
  return indexString(value, index);
798
797
  }
799
- else {
798
+ else if (value instanceof Uint8Array) {
800
799
  // For Uint8Array, direct access returns the byte value
801
800
  if (index < 0 || index >= value.length) {
802
801
  throw new Error(`runtime error: index out of range [${index}] with length ${value.length}`);
803
802
  }
804
803
  return value[index];
805
804
  }
805
+ else if (value === null) {
806
+ throw new Error(`runtime error: index out of range [${index}] with length 0`);
807
+ }
808
+ else {
809
+ // For Slice<number> (including SliceProxy)
810
+ const length = len(value);
811
+ if (index < 0 || index >= length) {
812
+ throw new Error(`runtime error: index out of range [${index}] with length ${length}`);
813
+ }
814
+ return value[index];
815
+ }
806
816
  }
807
817
  /**
808
- * Slices a value that could be either a string or Uint8Array.
818
+ * Slices a value that could be either a string or bytes.
809
819
  * Used for generic type parameters with constraint string | []byte.
810
- * @param value Value that is either a string or Uint8Array
820
+ * @param value Value that is either a string or bytes (Uint8Array or Slice<number>)
811
821
  * @param low Starting index (inclusive). Defaults to 0.
812
822
  * @param high Ending index (exclusive). Defaults to length.
813
- * @param max Capacity limit (only used for Uint8Array, ignored for strings)
823
+ * @param max Capacity limit (only used for bytes, ignored for strings)
814
824
  * @returns The sliced value of the same type as input
815
825
  */
816
826
  export function sliceStringOrBytes(value, low, high, max) {
@@ -819,7 +829,7 @@ export function sliceStringOrBytes(value, low, high, max) {
819
829
  return sliceString(value, low, high);
820
830
  }
821
831
  else {
822
- // For Uint8Array, use goSlice
832
+ // For bytes (Uint8Array or Slice<number>), use goSlice
823
833
  return goSlice(value, low, high, max);
824
834
  }
825
835
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../../gs/builtin/slice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../../gs/builtin/slice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { All, Collect, Insert, Keys, Values } from "./iter.gs.js";
2
+ export { Clone, Copy, DeleteFunc, Equal, EqualFunc } from "./maps.gs.js";
@@ -0,0 +1,3 @@
1
+ export { All, Collect, Insert, Keys, Values } from "./iter.gs.js";
2
+ export { Clone, Copy, DeleteFunc, Equal, EqualFunc } from "./maps.gs.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/maps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,7 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import * as iter from "@goscript/iter/index.js";
3
+ export declare function All<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq2<K, V>;
4
+ export declare function Keys<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq<K>;
5
+ export declare function Values<K extends $.Comparable, V>(m: Map<K, V>): iter.Seq<V>;
6
+ export declare function Insert<K extends $.Comparable, V>(m: Map<K, V>, seq: iter.Seq2<K, V>): void;
7
+ export declare function Collect<K extends $.Comparable, V extends any>(seq: iter.Seq2<K, V>): Map<K, V>;
@@ -0,0 +1,65 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ // All returns an iterator over key-value pairs from m.
3
+ // The iteration order is not specified and is not guaranteed
4
+ // to be the same from one call to the next.
5
+ export function All(m) {
6
+ return (_yield) => {
7
+ for (const [k, v] of m.entries()) {
8
+ {
9
+ if (!_yield(k, v)) {
10
+ return;
11
+ }
12
+ }
13
+ }
14
+ };
15
+ }
16
+ // Keys returns an iterator over keys in m.
17
+ // The iteration order is not specified and is not guaranteed
18
+ // to be the same from one call to the next.
19
+ export function Keys(m) {
20
+ return (_yield) => {
21
+ for (const [k, _v] of m.entries()) {
22
+ {
23
+ if (!_yield(k)) {
24
+ return;
25
+ }
26
+ }
27
+ }
28
+ };
29
+ }
30
+ // Values returns an iterator over values in m.
31
+ // The iteration order is not specified and is not guaranteed
32
+ // to be the same from one call to the next.
33
+ export function Values(m) {
34
+ return (_yield) => {
35
+ for (const [_k, v] of m.entries()) {
36
+ {
37
+ if (!_yield(v)) {
38
+ return;
39
+ }
40
+ }
41
+ }
42
+ };
43
+ }
44
+ // Insert adds the key-value pairs from seq to m.
45
+ // If a key in seq already exists in m, its value will be overwritten.
46
+ export function Insert(m, seq) {
47
+ ;
48
+ (() => {
49
+ let shouldContinue = true;
50
+ seq((k, v) => {
51
+ {
52
+ $.mapSet(m, k, v);
53
+ }
54
+ return shouldContinue;
55
+ });
56
+ })();
57
+ }
58
+ // Collect collects key-value pairs from seq into a new map
59
+ // and returns it.
60
+ export function Collect(seq) {
61
+ let m = $.makeMap();
62
+ Insert(m, seq);
63
+ return m;
64
+ }
65
+ //# sourceMappingURL=iter.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iter.gs.js","sourceRoot":"","sources":["../../../gs/maps/iter.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAIlD,uDAAuD;AACvD,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,GAAG,CAA4B,CAAY;IAC1D,OAAO,CAAC,MAA0C,EAAQ,EAAE;QAC3D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,CAAC;gBACA,IAAI,CAAC,MAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACpB,OAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC;AAED,2CAA2C;AAC3C,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,IAAI,CAA4B,CAAY;IAC3D,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACpD,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACnC,CAAC;gBACA,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjB,OAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC;AAED,+CAA+C;AAC/C,6DAA6D;AAC7D,4CAA4C;AAC5C,MAAM,UAAU,MAAM,CAA4B,CAAY;IAC7D,OAAO,CAAC,MAAmC,EAAQ,EAAE;QACpD,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACnC,CAAC;gBACA,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjB,OAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC;AAED,iDAAiD;AACjD,sEAAsE;AACtE,MAAM,UAAU,MAAM,CAA4B,CAAY,EAAE,GAAoB;IACnF,CAAC;IAAA,CAAC,GAAG,EAAE;QACN,IAAI,cAAc,GAAG,IAAI,CAAA;QACzB,GAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,CAAC;gBACA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClB,CAAC;YACD,OAAO,cAAc,CAAA;QACtB,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;AACL,CAAC;AAED,2DAA2D;AAC3D,kBAAkB;AAClB,MAAM,UAAU,OAAO,CAAwC,GAAoB;IAClF,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAQ,CAAA;IACzB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACd,OAAO,CAAC,CAAA;AACT,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare function Equal<K extends $.Comparable, V extends $.Comparable>(m1: Map<K, V>, m2: Map<K, V>): boolean;
3
+ export declare function EqualFunc<K extends $.Comparable, V1, V2>(m1: Map<K, V1>, m2: Map<K, V2>, eq: ((p0: V1, p1: V2) => boolean) | null): boolean;
4
+ export declare function clone<K extends $.Comparable, V>(m: Map<K, V> | null): Map<K, V> | null;
5
+ export declare function Clone<K extends $.Comparable, V>(m: Map<K, V>): Map<K, V>;
6
+ export declare function Copy<K extends $.Comparable, V>(dst: Map<K, V>, src: Map<K, V>): void;
7
+ export declare function DeleteFunc<K extends $.Comparable, V>(m: Map<K, V>, del: ((p0: K, p1: V) => boolean) | null): void;
@@ -0,0 +1,79 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ // Equal reports whether two maps contain the same key/value pairs.
3
+ // Values are compared using ==.
4
+ export function Equal(m1, m2) {
5
+ if ($.len(m1) != $.len(m2)) {
6
+ return false;
7
+ }
8
+ for (const [k, v1] of m1.entries()) {
9
+ {
10
+ {
11
+ let [v2, ok] = $.mapGet(m2, k, null);
12
+ if (!ok || v1 != v2) {
13
+ return false;
14
+ }
15
+ }
16
+ }
17
+ }
18
+ return true;
19
+ }
20
+ // EqualFunc is like Equal, but compares values using eq.
21
+ // Keys are still compared with ==.
22
+ export function EqualFunc(m1, m2, eq) {
23
+ if ($.len(m1) != $.len(m2)) {
24
+ return false;
25
+ }
26
+ for (const [k, v1] of m1.entries()) {
27
+ {
28
+ {
29
+ let [v2, ok] = $.mapGet(m2, k, null);
30
+ if (!ok || !eq(v1, v2)) {
31
+ return false;
32
+ }
33
+ }
34
+ }
35
+ }
36
+ return true;
37
+ }
38
+ // clone returns a shallow copy of the map.
39
+ export function clone(m) {
40
+ if (m == null) {
41
+ return null;
42
+ }
43
+ const result = $.makeMap();
44
+ for (const [k, v] of m.entries()) {
45
+ $.mapSet(result, k, v);
46
+ }
47
+ return result;
48
+ }
49
+ // Clone returns a copy of m. This is a shallow clone:
50
+ // the new keys and values are set using ordinary assignment.
51
+ export function Clone(m) {
52
+ // Preserve nil in case it matters.
53
+ if (m == null) {
54
+ return null;
55
+ }
56
+ return clone(m);
57
+ }
58
+ // Copy copies all key/value pairs in src adding them to dst.
59
+ // When a key in src is already present in dst,
60
+ // the value in dst will be overwritten by the value associated
61
+ // with the key in src.
62
+ export function Copy(dst, src) {
63
+ for (const [k, v] of src.entries()) {
64
+ {
65
+ $.mapSet(dst, k, v);
66
+ }
67
+ }
68
+ }
69
+ // DeleteFunc deletes any key/value pairs from m for which del returns true.
70
+ export function DeleteFunc(m, del) {
71
+ for (const [k, v] of m.entries()) {
72
+ {
73
+ if (del(k, v)) {
74
+ $.deleteMapEntry(m, k);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ //# sourceMappingURL=maps.gs.js.map