goscript 0.0.47 → 0.0.49

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 (152) hide show
  1. package/cmd/goscript/deps.go +1 -4
  2. package/compiler/analysis.go +224 -63
  3. package/compiler/analysis_test.go +112 -0
  4. package/compiler/compiler.go +19 -87
  5. package/compiler/expr-call-type-conversion.go +148 -59
  6. package/compiler/expr-call.go +202 -10
  7. package/compiler/expr.go +5 -82
  8. package/compiler/gs_dependencies_test.go +60 -1
  9. package/compiler/spec-value.go +73 -51
  10. package/compiler/spec.go +293 -151
  11. package/compiler/stmt.go +192 -81
  12. package/dist/gs/builtin/builtin.d.ts +1 -5
  13. package/dist/gs/builtin/builtin.js +1 -34
  14. package/dist/gs/builtin/builtin.js.map +1 -1
  15. package/dist/gs/builtin/slice.js.map +1 -1
  16. package/dist/gs/fmt/fmt.js +20 -4
  17. package/dist/gs/fmt/fmt.js.map +1 -1
  18. package/dist/gs/io/fs/fs.d.ts +6 -12
  19. package/dist/gs/io/fs/fs.js +52 -67
  20. package/dist/gs/io/fs/fs.js.map +1 -1
  21. package/dist/gs/os/index.d.ts +2 -1
  22. package/dist/gs/os/index.js +1 -1
  23. package/dist/gs/os/index.js.map +1 -1
  24. package/dist/gs/os/types_js.gs.d.ts +7 -1
  25. package/dist/gs/os/types_js.gs.js +16 -1
  26. package/dist/gs/os/types_js.gs.js.map +1 -1
  27. package/dist/gs/os/types_unix.gs.js +2 -2
  28. package/dist/gs/os/types_unix.gs.js.map +1 -1
  29. package/dist/gs/reflect/index.d.ts +3 -3
  30. package/dist/gs/reflect/index.js +2 -2
  31. package/dist/gs/reflect/index.js.map +1 -1
  32. package/dist/gs/reflect/map.js +2 -2
  33. package/dist/gs/reflect/map.js.map +1 -1
  34. package/dist/gs/reflect/type.d.ts +8 -9
  35. package/dist/gs/reflect/type.js +101 -103
  36. package/dist/gs/reflect/type.js.map +1 -1
  37. package/dist/gs/reflect/types.d.ts +1 -10
  38. package/dist/gs/reflect/types.js +3 -26
  39. package/dist/gs/reflect/types.js.map +1 -1
  40. package/dist/gs/reflect/value.js +23 -23
  41. package/dist/gs/reflect/value.js.map +1 -1
  42. package/dist/gs/reflect/visiblefields.js +3 -3
  43. package/dist/gs/reflect/visiblefields.js.map +1 -1
  44. package/dist/gs/time/time.d.ts +11 -22
  45. package/dist/gs/time/time.js +29 -57
  46. package/dist/gs/time/time.js.map +1 -1
  47. package/gs/TODO.md +129 -0
  48. package/gs/builtin/builtin.ts +3 -41
  49. package/gs/builtin/slice.ts +1 -1
  50. package/gs/bytes/meta.json +10 -0
  51. package/gs/fmt/fmt.ts +18 -4
  52. package/gs/fmt/meta.json +5 -0
  53. package/gs/internal/meta.json +5 -0
  54. package/gs/io/fs/fs.ts +58 -73
  55. package/gs/io/meta.json +9 -0
  56. package/gs/maps/meta.json +6 -0
  57. package/gs/math/meta.json +5 -0
  58. package/gs/os/index.ts +8 -1
  59. package/gs/os/meta.json +15 -0
  60. package/gs/os/types_js.gs.ts +22 -1
  61. package/gs/os/types_unix.gs.ts +2 -2
  62. package/gs/path/meta.json +6 -0
  63. package/gs/reflect/function-types.test.ts +10 -10
  64. package/gs/reflect/index.ts +6 -6
  65. package/gs/reflect/map.ts +2 -2
  66. package/gs/reflect/meta.json +5 -0
  67. package/gs/reflect/type.ts +108 -103
  68. package/gs/reflect/types.ts +2 -28
  69. package/gs/reflect/value.ts +23 -23
  70. package/gs/reflect/visiblefields.ts +3 -3
  71. package/gs/strconv/meta.json +5 -0
  72. package/gs/strings/meta.json +9 -0
  73. package/gs/sync/meta.json +19 -0
  74. package/gs/time/time.ts +32 -65
  75. package/package.json +1 -1
  76. package/dist/gs/builtin/io.d.ts +0 -16
  77. package/dist/gs/builtin/io.js +0 -15
  78. package/dist/gs/builtin/io.js.map +0 -1
  79. package/dist/gs/internal/testlog/index.d.ts +0 -1
  80. package/dist/gs/internal/testlog/index.js +0 -5
  81. package/dist/gs/internal/testlog/index.js.map +0 -1
  82. package/dist/gs/maps/iter.gs.d.ts +0 -7
  83. package/dist/gs/maps/iter.gs.js +0 -65
  84. package/dist/gs/maps/iter.gs.js.map +0 -1
  85. package/dist/gs/maps/maps.gs.d.ts +0 -7
  86. package/dist/gs/maps/maps.gs.js +0 -79
  87. package/dist/gs/maps/maps.gs.js.map +0 -1
  88. package/dist/gs/reflect/abi.d.ts +0 -59
  89. package/dist/gs/reflect/abi.gs.d.ts +0 -59
  90. package/dist/gs/reflect/abi.gs.js +0 -79
  91. package/dist/gs/reflect/abi.gs.js.map +0 -1
  92. package/dist/gs/reflect/abi.js +0 -79
  93. package/dist/gs/reflect/abi.js.map +0 -1
  94. package/dist/gs/reflect/badlinkname.d.ts +0 -52
  95. package/dist/gs/reflect/badlinkname.gs.d.ts +0 -52
  96. package/dist/gs/reflect/badlinkname.gs.js +0 -72
  97. package/dist/gs/reflect/badlinkname.gs.js.map +0 -1
  98. package/dist/gs/reflect/badlinkname.js +0 -72
  99. package/dist/gs/reflect/badlinkname.js.map +0 -1
  100. package/dist/gs/reflect/deepequal.gs.d.ts +0 -25
  101. package/dist/gs/reflect/deepequal.gs.js +0 -308
  102. package/dist/gs/reflect/deepequal.gs.js.map +0 -1
  103. package/dist/gs/reflect/float32reg_generic.gs.d.ts +0 -2
  104. package/dist/gs/reflect/float32reg_generic.gs.js +0 -10
  105. package/dist/gs/reflect/float32reg_generic.gs.js.map +0 -1
  106. package/dist/gs/reflect/index.gs.d.ts +0 -1
  107. package/dist/gs/reflect/index.gs.js +0 -3
  108. package/dist/gs/reflect/index.gs.js.map +0 -1
  109. package/dist/gs/reflect/iter.gs.d.ts +0 -3
  110. package/dist/gs/reflect/iter.gs.js +0 -24
  111. package/dist/gs/reflect/iter.gs.js.map +0 -1
  112. package/dist/gs/reflect/makefunc.gs.d.ts +0 -34
  113. package/dist/gs/reflect/makefunc.gs.js +0 -288
  114. package/dist/gs/reflect/makefunc.gs.js.map +0 -1
  115. package/dist/gs/reflect/map_swiss.gs.d.ts +0 -14
  116. package/dist/gs/reflect/map_swiss.gs.js +0 -70
  117. package/dist/gs/reflect/map_swiss.gs.js.map +0 -1
  118. package/dist/gs/reflect/reflect.gs.d.ts +0 -132
  119. package/dist/gs/reflect/reflect.gs.js +0 -437
  120. package/dist/gs/reflect/reflect.gs.js.map +0 -1
  121. package/dist/gs/reflect/swapper.gs.d.ts +0 -1
  122. package/dist/gs/reflect/swapper.gs.js +0 -32
  123. package/dist/gs/reflect/swapper.gs.js.map +0 -1
  124. package/dist/gs/reflect/type.gs.d.ts +0 -4
  125. package/dist/gs/reflect/type.gs.js +0 -21
  126. package/dist/gs/reflect/type.gs.js.map +0 -1
  127. package/dist/gs/reflect/value.gs.d.ts +0 -4
  128. package/dist/gs/reflect/value.gs.js +0 -12
  129. package/dist/gs/reflect/value.gs.js.map +0 -1
  130. package/dist/gs/reflect/visiblefields.gs.d.ts +0 -3
  131. package/dist/gs/reflect/visiblefields.gs.js +0 -123
  132. package/dist/gs/reflect/visiblefields.gs.js.map +0 -1
  133. package/dist/gs/stringslite/index.d.ts +0 -1
  134. package/dist/gs/stringslite/index.js +0 -2
  135. package/dist/gs/stringslite/index.js.map +0 -1
  136. package/dist/gs/stringslite/strings.d.ts +0 -11
  137. package/dist/gs/stringslite/strings.js +0 -67
  138. package/dist/gs/stringslite/strings.js.map +0 -1
  139. package/gs/bytes/metadata.go +0 -12
  140. package/gs/fmt/metadata.go +0 -7
  141. package/gs/internal/metadata.go +0 -7
  142. package/gs/io/io.go +0 -75
  143. package/gs/io/metadata.go +0 -11
  144. package/gs/maps/metadata.go +0 -8
  145. package/gs/math/metadata.go +0 -7
  146. package/gs/os/metadata.go +0 -17
  147. package/gs/path/metadata.go +0 -8
  148. package/gs/reflect/metadata.go +0 -7
  149. package/gs/strconv/metadata.go +0 -7
  150. package/gs/strings/metadata.go +0 -11
  151. package/gs/sync/metadata.go +0 -7
  152. package/gs/sync/sync.go +0 -64
@@ -1,288 +0,0 @@
1
- import * as $ from "@goscript/builtin/builtin.js";
2
- import { Value, uintptr, funcType, flag } from "./reflect.gs.js";
3
- import { methodReceiver } from "./value.gs.js";
4
- import * as abi from "@goscript/internal/abi/index.js";
5
- import * as unsafe from "@goscript/unsafe/index.js";
6
- import { funcLayout } from "./type.gs.js";
7
- class makeFuncImpl {
8
- get ftyp() {
9
- return this._fields.ftyp.value;
10
- }
11
- set ftyp(value) {
12
- this._fields.ftyp.value = value;
13
- }
14
- get fn() {
15
- return this._fields.fn.value;
16
- }
17
- set fn(value) {
18
- this._fields.fn.value = value;
19
- }
20
- get makeFuncCtxt() {
21
- return this._fields.makeFuncCtxt.value;
22
- }
23
- set makeFuncCtxt(value) {
24
- this._fields.makeFuncCtxt.value = value;
25
- }
26
- _fields;
27
- constructor(init) {
28
- this._fields = {
29
- makeFuncCtxt: $.varRef(new makeFuncCtxt(init?.makeFuncCtxt)),
30
- ftyp: $.varRef(init?.ftyp ?? null),
31
- fn: $.varRef(init?.fn ?? null)
32
- };
33
- }
34
- clone() {
35
- const cloned = new makeFuncImpl();
36
- cloned._fields = {
37
- makeFuncCtxt: $.varRef(this._fields.makeFuncCtxt.value.clone()),
38
- ftyp: $.varRef(this._fields.ftyp.value),
39
- fn: $.varRef(this._fields.fn.value)
40
- };
41
- return cloned;
42
- }
43
- get stack() {
44
- return this.makeFuncCtxt.stack;
45
- }
46
- set stack(value) {
47
- this.makeFuncCtxt.stack = value;
48
- }
49
- get argLen() {
50
- return this.makeFuncCtxt.argLen;
51
- }
52
- set argLen(value) {
53
- this.makeFuncCtxt.argLen = value;
54
- }
55
- get regPtrs() {
56
- return this.makeFuncCtxt.regPtrs;
57
- }
58
- set regPtrs(value) {
59
- this.makeFuncCtxt.regPtrs = value;
60
- }
61
- // Register this type with the runtime type system
62
- static __typeInfo = $.registerStructType('makeFuncImpl', new makeFuncImpl(), [], makeFuncImpl, { "makeFuncCtxt": "makeFuncCtxt", "ftyp": { kind: $.TypeKind.Pointer, elemType: { kind: $.TypeKind.Struct, fields: { "Type": "Type", "InCount": { kind: $.TypeKind.Basic, name: "number" }, "OutCount": { kind: $.TypeKind.Basic, name: "number" } }, methods: [] } }, "fn": { kind: $.TypeKind.Function, params: [{ kind: $.TypeKind.Slice, elemType: "Value" }], results: [{ kind: $.TypeKind.Slice, elemType: "Value" }] } });
63
- }
64
- // MakeFunc returns a new function of the given [Type]
65
- // that wraps the function fn. When called, that new function
66
- // does the following:
67
- //
68
- // - converts its arguments to a slice of Values.
69
- // - runs results := fn(args).
70
- // - returns the results as a slice of Values, one per formal result.
71
- //
72
- // The implementation fn can assume that the argument [Value] slice
73
- // has the number and type of arguments given by typ.
74
- // If typ describes a variadic function, the final Value is itself
75
- // a slice representing the variadic arguments, as in the
76
- // body of a variadic function. The result Value slice returned by fn
77
- // must have the number and type of results given by typ.
78
- //
79
- // The [Value.Call] method allows the caller to invoke a typed function
80
- // in terms of Values; in contrast, MakeFunc allows the caller to implement
81
- // a typed function in terms of Values.
82
- //
83
- // The Examples section of the documentation includes an illustration
84
- // of how to use MakeFunc to build a swap function for different types.
85
- export function MakeFunc(typ, fn) {
86
- if (typ.Kind().valueOf() != 19) {
87
- $.panic("reflect: MakeFunc of non-func type");
88
- }
89
- let t = typ.common();
90
- let ftyp = new funcType(typ.Kind());
91
- let code = abi.FuncPCABI0(makeFuncStub);
92
- // makeFuncImpl contains a stack map for use by the runtime
93
- let [, , abid] = funcLayout(ftyp, null);
94
- let impl = new makeFuncImpl({ fn: fn, ftyp: { Type: typ, InCount: 0, OutCount: 0 }, makeFuncCtxt: { fn: code, stack: abid.stackPtrs, argLen: abid.stackCallArgsSize, regPtrs: abid.inRegPtrs } });
95
- return new Value({});
96
- }
97
- // makeFuncStub is an assembly function that is the code half of
98
- // the function returned from MakeFunc. It expects a *callReflectFunc
99
- // as its context register, and its job is to invoke callReflect(ctxt, frame)
100
- // where ctxt is the context register and frame is a pointer to the first
101
- // word in the passed-in argument frame.
102
- export function makeFuncStub() { }
103
- class methodValue {
104
- get method() {
105
- return this._fields.method.value;
106
- }
107
- set method(value) {
108
- this._fields.method.value = value;
109
- }
110
- get rcvr() {
111
- return this._fields.rcvr.value;
112
- }
113
- set rcvr(value) {
114
- this._fields.rcvr.value = value;
115
- }
116
- get makeFuncCtxt() {
117
- return this._fields.makeFuncCtxt.value;
118
- }
119
- set makeFuncCtxt(value) {
120
- this._fields.makeFuncCtxt.value = value;
121
- }
122
- _fields;
123
- constructor(init) {
124
- this._fields = {
125
- makeFuncCtxt: $.varRef(new makeFuncCtxt(init?.makeFuncCtxt)),
126
- method: $.varRef(init?.method ?? 0),
127
- rcvr: $.varRef(init?.rcvr?.clone() ?? new Value())
128
- };
129
- }
130
- clone() {
131
- const cloned = new methodValue();
132
- cloned._fields = {
133
- makeFuncCtxt: $.varRef(this._fields.makeFuncCtxt.value.clone()),
134
- method: $.varRef(this._fields.method.value),
135
- rcvr: $.varRef(this._fields.rcvr.value?.clone() ?? null)
136
- };
137
- return cloned;
138
- }
139
- get fn() {
140
- return this.makeFuncCtxt.fn;
141
- }
142
- set fn(value) {
143
- this.makeFuncCtxt.fn = value;
144
- }
145
- get stack() {
146
- return this.makeFuncCtxt.stack;
147
- }
148
- set stack(value) {
149
- this.makeFuncCtxt.stack = value;
150
- }
151
- get argLen() {
152
- return this.makeFuncCtxt.argLen;
153
- }
154
- set argLen(value) {
155
- this.makeFuncCtxt.argLen = value;
156
- }
157
- get regPtrs() {
158
- return this.makeFuncCtxt.regPtrs;
159
- }
160
- set regPtrs(value) {
161
- this.makeFuncCtxt.regPtrs = value;
162
- }
163
- // Register this type with the runtime type system
164
- static __typeInfo = $.registerStructType('methodValue', new methodValue(), [], methodValue, { "makeFuncCtxt": "makeFuncCtxt", "method": { kind: $.TypeKind.Basic, name: "number" }, "rcvr": "Value" });
165
- }
166
- // makeMethodValue converts v from the rcvr+method index representation
167
- // of a method value to an actual method func value, which is
168
- // basically the receiver value with a special bit set, into a true
169
- // func value - a value holding an actual func. The output is
170
- // semantically equivalent to the input as far as the user of package
171
- // reflect can tell, but the true func representation can be handled
172
- // by code like Convert and Interface and Assign.
173
- export function makeMethodValue(op, v) {
174
- if ((v.flag & 512) == 0) {
175
- $.panic("reflect: internal error: invalid use of makeMethodValue");
176
- }
177
- // Ignoring the flagMethod bit, v describes the receiver, not the method type.
178
- let fl = (v.flag & (((96 | 256) | 128)));
179
- fl |= flag.from(v.typ().Kind()).valueOf();
180
- let rcvr = new Value({});
181
- // v.Type returns the actual type of the method value.
182
- let ftyp = new funcType(v.typ().Kind());
183
- let code = methodValueCallCodePtr();
184
- // methodValue contains a stack map for use by the runtime
185
- let [, , abid] = funcLayout(ftyp, null);
186
- let fv = new methodValue({ method: ($.int(v.flag) >> 10), rcvr: rcvr, makeFuncCtxt: { fn: code, stack: abid.stackPtrs, argLen: abid.stackCallArgsSize, regPtrs: abid.inRegPtrs } });
187
- // Cause panic if method is not appropriate.
188
- // The panic would still happen during the call if we omit this,
189
- // but we want Interface() and other operations to fail early.
190
- methodReceiver(op, fv.rcvr, fv.method);
191
- return new Value({});
192
- }
193
- export function methodValueCallCodePtr() {
194
- return abi.FuncPCABI0(methodValueCall);
195
- }
196
- // methodValueCall is an assembly function that is the code half of
197
- // the function returned from makeMethodValue. It expects a *methodValue
198
- // as its context register, and its job is to invoke callMethod(ctxt, frame)
199
- // where ctxt is the context register and frame is a pointer to the first
200
- // word in the passed-in argument frame.
201
- export function methodValueCall() { }
202
- class makeFuncCtxt {
203
- get fn() {
204
- return this._fields.fn.value;
205
- }
206
- set fn(value) {
207
- this._fields.fn.value = value;
208
- }
209
- // ptrmap for both stack args and results
210
- get stack() {
211
- return this._fields.stack.value;
212
- }
213
- set stack(value) {
214
- this._fields.stack.value = value;
215
- }
216
- // just args
217
- get argLen() {
218
- return this._fields.argLen.value;
219
- }
220
- set argLen(value) {
221
- this._fields.argLen.value = value;
222
- }
223
- get regPtrs() {
224
- return this._fields.regPtrs.value;
225
- }
226
- set regPtrs(value) {
227
- this._fields.regPtrs.value = value;
228
- }
229
- _fields;
230
- constructor(init) {
231
- this._fields = {
232
- fn: $.varRef(init?.fn ?? 0),
233
- stack: $.varRef(init?.stack ?? null),
234
- argLen: $.varRef(init?.argLen ?? 0),
235
- regPtrs: $.varRef(init?.regPtrs ?? new abi.IntArgRegBitmap())
236
- };
237
- }
238
- clone() {
239
- const cloned = new makeFuncCtxt();
240
- cloned._fields = {
241
- fn: $.varRef(this._fields.fn.value),
242
- stack: $.varRef(this._fields.stack.value),
243
- argLen: $.varRef(this._fields.argLen.value),
244
- regPtrs: $.varRef(this._fields.regPtrs.value)
245
- };
246
- return cloned;
247
- }
248
- // Register this type with the runtime type system
249
- static __typeInfo = $.registerStructType('makeFuncCtxt', new makeFuncCtxt(), [], makeFuncCtxt, { "fn": { kind: $.TypeKind.Basic, name: "uintptr" }, "stack": { kind: $.TypeKind.Pointer, elemType: "bitVector" }, "argLen": { kind: $.TypeKind.Basic, name: "uintptr" }, "regPtrs": "IntArgRegBitmap" });
250
- }
251
- // moveMakeFuncArgPtrs uses ctxt.regPtrs to copy integer pointer arguments
252
- // in args.Ints to args.Ptrs where the GC can see them.
253
- //
254
- // This is similar to what reflectcallmove does in the runtime, except
255
- // that happens on the return path, whereas this happens on the call path.
256
- //
257
- // nosplit because pointers are being held in uintptr slots in args, so
258
- // having our stack scanned now could lead to accidentally freeing
259
- // memory.
260
- //
261
- //go:nosplit
262
- export function moveMakeFuncArgPtrs(ctxt, args) {
263
- // Avoid write barriers! Because our write barrier enqueues what
264
- // was there before, we might enqueue garbage.
265
- // We *must* zero this space ourselves because it's defined in
266
- // assembly code and the GC will scan these pointers. Otherwise,
267
- // there will be garbage here.
268
- for (let i = 0; i < $.len(args.Ints); i++) {
269
- const arg = args.Ints[i];
270
- {
271
- // Avoid write barriers! Because our write barrier enqueues what
272
- // was there before, we might enqueue garbage.
273
- // We *must* zero this space ourselves because it's defined in
274
- // assembly code and the GC will scan these pointers. Otherwise,
275
- // there will be garbage here.
276
- if (ctxt.regPtrs.Get(i)) {
277
- (uintptr)(unsafe.Pointer(args.Ptrs[i])).value = arg;
278
- }
279
- else {
280
- // We *must* zero this space ourselves because it's defined in
281
- // assembly code and the GC will scan these pointers. Otherwise,
282
- // there will be garbage here.
283
- (uintptr)(unsafe.Pointer(args.Ptrs[i])).value = 0;
284
- }
285
- }
286
- }
287
- }
288
- //# sourceMappingURL=makefunc.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"makefunc.gs.js","sourceRoot":"","sources":["../../../gs/reflect/makefunc.gs.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { Type, Value } from "./type.js";
2
- export declare function MapOf(key: Type, elem: Type): Type;
3
- export declare class MapIter {
4
- private map;
5
- private iterator;
6
- private currentEntry;
7
- constructor(map: Map<any, any>);
8
- Next(): boolean;
9
- Key(): any;
10
- Value(): any;
11
- Reset(m: any): void;
12
- }
13
- export declare function MakeMap(typ: Type): Value;
14
- export declare function MakeMapWithSize(typ: Type, n: number): Value;
@@ -1,70 +0,0 @@
1
- import { Kind, Value } from "./type.js";
2
- // Simple MapOf implementation using JavaScript Map
3
- export function MapOf(key, elem) {
4
- return new MapType(key, elem);
5
- }
6
- // Simple map type implementation
7
- class MapType {
8
- _keyType;
9
- _elemType;
10
- constructor(_keyType, _elemType) {
11
- this._keyType = _keyType;
12
- this._elemType = _elemType;
13
- }
14
- String() {
15
- return `map[${this._keyType.String()}]${this._elemType.String()}`;
16
- }
17
- Kind() {
18
- return new Kind(21); // Map kind
19
- }
20
- Size() {
21
- return 8; // pointer size
22
- }
23
- Elem() {
24
- return this._elemType;
25
- }
26
- Key() {
27
- return this._keyType;
28
- }
29
- NumField() {
30
- return 0;
31
- }
32
- }
33
- // Simple map iterator using JavaScript Map
34
- export class MapIter {
35
- map;
36
- iterator;
37
- currentEntry = null;
38
- constructor(map) {
39
- this.map = map;
40
- this.iterator = map.entries();
41
- this.Next();
42
- }
43
- Next() {
44
- this.currentEntry = this.iterator.next();
45
- return !this.currentEntry.done;
46
- }
47
- Key() {
48
- return this.currentEntry?.value?.[0];
49
- }
50
- Value() {
51
- return this.currentEntry?.value?.[1];
52
- }
53
- Reset(m) {
54
- if (m instanceof Map) {
55
- this.map = m;
56
- this.iterator = m.entries();
57
- this.Next();
58
- }
59
- }
60
- }
61
- // Helper functions for map operations
62
- export function MakeMap(typ) {
63
- const map = new Map();
64
- return new Value(map, typ);
65
- }
66
- export function MakeMapWithSize(typ, n) {
67
- // JavaScript Map doesn't have initial size, so we ignore n
68
- return MakeMap(typ);
69
- }
70
- //# sourceMappingURL=map_swiss.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map_swiss.gs.js","sourceRoot":"","sources":["../../../gs/reflect/map_swiss.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE9C,mDAAmD;AACnD,MAAM,UAAU,KAAK,CAAC,GAAS,EAAE,IAAU;IAC1C,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,iCAAiC;AACjC,MAAM,OAAO;IACQ;IAAwB;IAA5C,YAAoB,QAAc,EAAU,SAAe;QAAvC,aAAQ,GAAR,QAAQ,CAAM;QAAU,cAAS,GAAT,SAAS,CAAM;IAAG,CAAC;IAExD,MAAM;QACZ,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;IACnE,CAAC;IAEM,IAAI;QACV,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;IACjC,CAAC;IAEM,IAAI;QACV,OAAO,CAAC,CAAC,CAAC,eAAe;IAC1B,CAAC;IAEM,IAAI;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,GAAG;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,QAAQ;QACd,OAAO,CAAC,CAAC;IACV,CAAC;CACD;AAED,2CAA2C;AAC3C,MAAM,OAAO,OAAO;IAIC;IAHZ,QAAQ,CAAuB;IAC/B,YAAY,GAAsC,IAAI,CAAC;IAE/D,YAAoB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;QACrC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,GAAG;QACT,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,CAAM;QAClB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACF,CAAC;CACD;AAED,sCAAsC;AACtC,MAAM,UAAU,OAAO,CAAC,GAAS;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAS,EAAE,CAAS;IACnD,2DAA2D;IAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
@@ -1,132 +0,0 @@
1
- export type uintptr = number;
2
- export type Pointer = any;
3
- export declare class StructField {
4
- Name: string;
5
- Type: Type;
6
- Tag?: string;
7
- Offset?: uintptr;
8
- Index?: number[];
9
- Anonymous?: boolean;
10
- constructor(init?: Partial<StructField>);
11
- clone(): StructField;
12
- }
13
- export declare class bitVector {
14
- private bits;
15
- Set(index: number): void;
16
- Get(index: number): boolean;
17
- }
18
- export declare class flag {
19
- private _value;
20
- constructor(_value: number | Kind);
21
- valueOf(): number;
22
- static from(value: number | Kind): flag;
23
- }
24
- export declare class rtype {
25
- kind: Kind;
26
- constructor(kind: Kind);
27
- Kind(): Kind;
28
- String(): string;
29
- Pointers(): boolean;
30
- }
31
- export declare class funcType extends rtype {
32
- inCount: number;
33
- outCount: number;
34
- constructor(kind: Kind, inCount?: number, outCount?: number);
35
- }
36
- export declare class Kind {
37
- private _value;
38
- constructor(_value: number);
39
- valueOf(): number;
40
- toString(): string;
41
- static from(value: number): Kind;
42
- String(): string;
43
- }
44
- export declare const Invalid: Kind;
45
- export declare const Bool: Kind;
46
- export declare const Int: Kind;
47
- export declare const Int8: Kind;
48
- export declare const Int16: Kind;
49
- export declare const Int32: Kind;
50
- export declare const Int64: Kind;
51
- export declare const Uint: Kind;
52
- export declare const Uint8: Kind;
53
- export declare const Uint16: Kind;
54
- export declare const Uint32: Kind;
55
- export declare const Uint64: Kind;
56
- export declare const Uintptr: Kind;
57
- export declare const Float32: Kind;
58
- export declare const Float64: Kind;
59
- export declare const Complex64: Kind;
60
- export declare const Complex128: Kind;
61
- export declare const Array: Kind;
62
- export declare const Chan: Kind;
63
- export declare const Func: Kind;
64
- export declare const Interface: Kind;
65
- export declare const Map: Kind;
66
- export declare const Ptr: Kind;
67
- export declare const Slice: Kind;
68
- export declare const String: Kind;
69
- export declare const Struct: Kind;
70
- export declare const UnsafePointer: Kind;
71
- export interface Type {
72
- String(): string;
73
- Kind(): Kind;
74
- Elem?(): Type | null;
75
- NumField?(): number;
76
- Field?(i: number): StructField;
77
- PkgPath?(): string;
78
- common?(): rtype;
79
- }
80
- export declare class Value {
81
- private _value;
82
- private _type;
83
- constructor(_value?: any, _type?: Type);
84
- clone(): Value;
85
- Int(): number;
86
- String(): string;
87
- Len(): number;
88
- Kind(): Kind;
89
- Type(): Type;
90
- typ(): rtype | null;
91
- get flag(): number;
92
- Convert(t: Type): Value;
93
- IsValid(): boolean;
94
- IsNil(): boolean;
95
- UnsafePointer(): Pointer;
96
- Index(i: number): Value;
97
- Bytes(): Uint8Array;
98
- Elem(): Value;
99
- NumField(): number;
100
- Field(i: number): Value;
101
- MapRange(): any;
102
- MapIndex(key: Value): Value;
103
- Uint(): number;
104
- Bool(): boolean;
105
- Float(): number;
106
- Complex(): any;
107
- pointer(): Pointer;
108
- get ptr(): Pointer;
109
- }
110
- export declare class BasicType implements Type {
111
- private _kind;
112
- private _name;
113
- constructor(_kind: Kind, _name: string);
114
- String(): string;
115
- Kind(): Kind;
116
- Elem?(): Type | null;
117
- NumField?(): number;
118
- Field?(i: number): StructField;
119
- PkgPath?(): string;
120
- common?(): rtype;
121
- }
122
- export declare function TypeOf(i: any): Type;
123
- export declare function ValueOf(i: any): Value;
124
- export declare function DeepEqual(x: any, y: any): boolean;
125
- export declare function Zero(typ: Type): Value;
126
- export declare class UintptrClass {
127
- value: number;
128
- constructor(value: number);
129
- static from(ptr: any): UintptrClass;
130
- static call(ptr: any): UintptrClass;
131
- }
132
- export declare const uintptr: (ptr: any) => UintptrClass;