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,308 +0,0 @@
1
- import * as $ from "@goscript/builtin/builtin.js";
2
- import { ValueOf, valueInterface } from "./value.gs.js";
3
- import { BasicType, Invalid } from "./reflect.gs.js";
4
- import * as bytealg from "@goscript/internal/bytealg/index.js";
5
- class visit {
6
- get a1() {
7
- return this._fields.a1.value;
8
- }
9
- set a1(value) {
10
- this._fields.a1.value = value;
11
- }
12
- get a2() {
13
- return this._fields.a2.value;
14
- }
15
- set a2(value) {
16
- this._fields.a2.value = value;
17
- }
18
- get typ() {
19
- return this._fields.typ.value;
20
- }
21
- set typ(value) {
22
- this._fields.typ.value = value;
23
- }
24
- _fields;
25
- constructor(init) {
26
- this._fields = {
27
- a1: $.varRef(init?.a1 ?? 0),
28
- a2: $.varRef(init?.a2 ?? 0),
29
- typ: $.varRef(init?.typ ?? new BasicType(Invalid, "invalid"))
30
- };
31
- }
32
- clone() {
33
- const cloned = new visit();
34
- cloned._fields = {
35
- a1: $.varRef(this._fields.a1.value),
36
- a2: $.varRef(this._fields.a2.value),
37
- typ: $.varRef(this._fields.typ.value)
38
- };
39
- return cloned;
40
- }
41
- // Register this type with the runtime type system
42
- static __typeInfo = $.registerStructType('visit', new visit(), [], visit, { "a1": { kind: $.TypeKind.Basic, name: "Pointer" }, "a2": { kind: $.TypeKind.Basic, name: "Pointer" }, "typ": "Type" });
43
- }
44
- // Tests for deep equality using reflected types. The map argument tracks
45
- // comparisons that have already been seen, which allows short circuiting on
46
- // recursive types.
47
- export function deepValueEqual(v1, v2, visited) {
48
- if (!v1.IsValid() || !v2.IsValid()) {
49
- return v1.IsValid() == v2.IsValid();
50
- }
51
- if (v1.Type() != v2.Type()) {
52
- return false;
53
- }
54
- // We want to avoid putting more in the visited map than we need to.
55
- // For any possible reference cycle that might be encountered,
56
- // hard(v1, v2) needs to return true for at least one of the types in the cycle,
57
- // and it's safe and valid to get Value's internal pointer.
58
- // not-in-heap pointers can't be cyclic.
59
- // At least, all of our current uses of internal/runtime/sys.NotInHeap
60
- // have that property. The runtime ones aren't cyclic (and we don't use
61
- // DeepEqual on them anyway), and the cgo-generated ones are
62
- // all empty structs.
63
- // Nil pointers cannot be cyclic. Avoid putting them in the visited map.
64
- let hard = (v1, v2) => {
65
- // not-in-heap pointers can't be cyclic.
66
- // At least, all of our current uses of internal/runtime/sys.NotInHeap
67
- // have that property. The runtime ones aren't cyclic (and we don't use
68
- // DeepEqual on them anyway), and the cgo-generated ones are
69
- // all empty structs.
70
- // Nil pointers cannot be cyclic. Avoid putting them in the visited map.
71
- switch (v1.Kind().valueOf()) {
72
- case 22:
73
- if (!v1.typ().Pointers()) {
74
- // not-in-heap pointers can't be cyclic.
75
- // At least, all of our current uses of internal/runtime/sys.NotInHeap
76
- // have that property. The runtime ones aren't cyclic (and we don't use
77
- // DeepEqual on them anyway), and the cgo-generated ones are
78
- // all empty structs.
79
- return false;
80
- }
81
- // fallthrough // fallthrough statement skipped
82
- break;
83
- case 21:
84
- case 23:
85
- case 20:
86
- return !v1.IsNil() && !v2.IsNil();
87
- break;
88
- }
89
- return false;
90
- };
91
- // For a Pointer or Map value, we need to check flagIndir,
92
- // which we do by calling the pointer method.
93
- // For Slice or Interface, flagIndir is always set,
94
- // and using v.ptr suffices.
95
- // Canonicalize order to reduce number of entries in visited.
96
- // Assumes non-moving garbage collector.
97
- // Short circuit if references are already seen.
98
- // Remember for later.
99
- if (hard(v1, v2)) {
100
- // For a Pointer or Map value, we need to check flagIndir,
101
- // which we do by calling the pointer method.
102
- // For Slice or Interface, flagIndir is always set,
103
- // and using v.ptr suffices.
104
- let ptrval = (v) => {
105
- switch (v.Kind().valueOf()) {
106
- case 22:
107
- case 21:
108
- return v.pointer();
109
- break;
110
- default:
111
- return v.ptr;
112
- break;
113
- }
114
- };
115
- let addr1 = ptrval(v1);
116
- let addr2 = ptrval(v2);
117
- // Canonicalize order to reduce number of entries in visited.
118
- // Assumes non-moving garbage collector.
119
- if (addr1 > addr2) {
120
- // Canonicalize order to reduce number of entries in visited.
121
- // Assumes non-moving garbage collector.
122
- [addr1, addr2] = [addr2, addr1];
123
- }
124
- // Short circuit if references are already seen.
125
- let typ = v1.Type();
126
- let v = new visit({});
127
- if ($.mapGet(visited, v, false)[0]) {
128
- return true;
129
- }
130
- // Remember for later.
131
- $.mapSet(visited, v, true);
132
- }
133
- // Special case for []byte, which is common.
134
- // Can't do better than this:
135
- // Normal equality suffices
136
- switch (v1.Kind().valueOf()) {
137
- case 17:
138
- for (let i = 0; i < v1.Len(); i++) {
139
- if (!deepValueEqual(v1.Index(i), v2.Index(i), visited)) {
140
- return false;
141
- }
142
- }
143
- return true;
144
- break;
145
- case 23:
146
- if (v1.IsNil() != v2.IsNil()) {
147
- return false;
148
- }
149
- if (v1.Len() != v2.Len()) {
150
- return false;
151
- }
152
- if (v1.UnsafePointer() == v2.UnsafePointer()) {
153
- return true;
154
- }
155
- const elemType = v1.Type().Elem;
156
- if (elemType && elemType()?.Kind().valueOf() == 8) {
157
- return bytealg.Equal(v1.Bytes(), v2.Bytes());
158
- }
159
- for (let i = 0; i < v1.Len(); i++) {
160
- if (!deepValueEqual(v1.Index(i), v2.Index(i), visited)) {
161
- return false;
162
- }
163
- }
164
- return true;
165
- break;
166
- case 20:
167
- if (v1.IsNil() || v2.IsNil()) {
168
- return v1.IsNil() == v2.IsNil();
169
- }
170
- return deepValueEqual(v1.Elem(), v2.Elem(), visited);
171
- break;
172
- case 22:
173
- if (v1.UnsafePointer() == v2.UnsafePointer()) {
174
- return true;
175
- }
176
- return deepValueEqual(v1.Elem(), v2.Elem(), visited);
177
- break;
178
- case 25:
179
- for (let i = 0, n = v1.NumField(); i < n; i++) {
180
- if (!deepValueEqual(v1.Field(i), v2.Field(i), visited)) {
181
- return false;
182
- }
183
- }
184
- return true;
185
- break;
186
- case 21:
187
- if (v1.IsNil() != v2.IsNil()) {
188
- return false;
189
- }
190
- if (v1.Len() != v2.Len()) {
191
- return false;
192
- }
193
- if (v1.UnsafePointer() == v2.UnsafePointer()) {
194
- return true;
195
- }
196
- let iter = v1.MapRange();
197
- for (; iter.Next();) {
198
- let val1 = iter.Value().clone();
199
- let val2 = v2.MapIndex(iter.Key()).clone();
200
- if (!val1.IsValid() || !val2.IsValid() || !deepValueEqual(val1, val2, visited)) {
201
- return false;
202
- }
203
- }
204
- return true;
205
- break;
206
- case 19:
207
- if (v1.IsNil() && v2.IsNil()) {
208
- return true;
209
- }
210
- return false;
211
- break;
212
- case 2:
213
- case 3:
214
- case 4:
215
- case 5:
216
- case 6:
217
- return v1.Int() == v2.Int();
218
- break;
219
- case 7:
220
- case 8:
221
- case 9:
222
- case 10:
223
- case 11:
224
- case 12:
225
- return v1.Uint() == v2.Uint();
226
- break;
227
- case 24:
228
- return v1.String() == v2.String();
229
- break;
230
- case 1:
231
- return v1.Bool() == v2.Bool();
232
- break;
233
- case 13:
234
- case 14:
235
- return v1.Float() == v2.Float();
236
- break;
237
- case 15:
238
- case 16:
239
- return v1.Complex() == v2.Complex();
240
- break;
241
- default:
242
- return valueInterface(v1, false) == valueInterface(v2, false);
243
- break;
244
- }
245
- }
246
- // DeepEqual reports whether x and y are "deeply equal," defined as follows.
247
- // Two values of identical type are deeply equal if one of the following cases applies.
248
- // Values of distinct types are never deeply equal.
249
- //
250
- // Array values are deeply equal when their corresponding elements are deeply equal.
251
- //
252
- // Struct values are deeply equal if their corresponding fields,
253
- // both exported and unexported, are deeply equal.
254
- //
255
- // Func values are deeply equal if both are nil; otherwise they are not deeply equal.
256
- //
257
- // Interface values are deeply equal if they hold deeply equal concrete values.
258
- //
259
- // Map values are deeply equal when all of the following are true:
260
- // they are both nil or both non-nil, they have the same length,
261
- // and either they are the same map object or their corresponding keys
262
- // (matched using Go equality) map to deeply equal values.
263
- //
264
- // Pointer values are deeply equal if they are equal using Go's == operator
265
- // or if they point to deeply equal values.
266
- //
267
- // Slice values are deeply equal when all of the following are true:
268
- // they are both nil or both non-nil, they have the same length,
269
- // and either they point to the same initial entry of the same underlying array
270
- // (that is, &x[0] == &y[0]) or their corresponding elements (up to length) are deeply equal.
271
- // Note that a non-nil empty slice and a nil slice (for example, []byte{} and []byte(nil))
272
- // are not deeply equal.
273
- //
274
- // Other values - numbers, bools, strings, and channels - are deeply equal
275
- // if they are equal using Go's == operator.
276
- //
277
- // In general DeepEqual is a recursive relaxation of Go's == operator.
278
- // However, this idea is impossible to implement without some inconsistency.
279
- // Specifically, it is possible for a value to be unequal to itself,
280
- // either because it is of func type (uncomparable in general)
281
- // or because it is a floating-point NaN value (not equal to itself in floating-point comparison),
282
- // or because it is an array, struct, or interface containing
283
- // such a value.
284
- // On the other hand, pointer values are always equal to themselves,
285
- // even if they point at or contain such problematic values,
286
- // because they compare equal using Go's == operator, and that
287
- // is a sufficient condition to be deeply equal, regardless of content.
288
- // DeepEqual has been defined so that the same short-cut applies
289
- // to slices and maps: if x and y are the same slice or the same map,
290
- // they are deeply equal regardless of content.
291
- //
292
- // As DeepEqual traverses the data values it may find a cycle. The
293
- // second and subsequent times that DeepEqual compares two pointer
294
- // values that have been compared before, it treats the values as
295
- // equal rather than examining the values to which they point.
296
- // This ensures that DeepEqual terminates.
297
- export function DeepEqual(x, y) {
298
- if (x == null || y == null) {
299
- return x == y;
300
- }
301
- let v1 = ValueOf(x).clone();
302
- let v2 = ValueOf(y).clone();
303
- if (v1.Type() != v2.Type()) {
304
- return false;
305
- }
306
- return deepValueEqual(v1, v2, $.makeMap());
307
- }
308
- //# sourceMappingURL=deepequal.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deepequal.gs.js","sourceRoot":"","sources":["../../../gs/reflect/deepequal.gs.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function archFloat32FromReg(i: number): number;
2
- export declare function archFloat32ToReg(val: number): number;
@@ -1,10 +0,0 @@
1
- // Stub implementations for float32 register operations
2
- export function archFloat32FromReg(i) {
3
- // Simple stub - just return the number as-is
4
- return i;
5
- }
6
- export function archFloat32ToReg(val) {
7
- // Simple stub - just return the number as-is
8
- return val;
9
- }
10
- //# sourceMappingURL=float32reg_generic.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"float32reg_generic.gs.js","sourceRoot":"","sources":["../../../gs/reflect/float32reg_generic.gs.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC3C,6CAA6C;IAC7C,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC3C,+CAA+C;IAC/C,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1 +0,0 @@
1
- export { TypeOf, ValueOf, DeepEqual, Zero, Kind, Type, Value } from "./reflect.gs.js";
@@ -1,3 +0,0 @@
1
- // Export the main reflect functions from our simplified implementation
2
- export { TypeOf, ValueOf, DeepEqual, Zero, Kind, Value } from "./reflect.gs.js";
3
- //# sourceMappingURL=index.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.gs.js","sourceRoot":"","sources":["../../../gs/reflect/index.gs.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAQ,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Type, Value, uintptr } from "./reflect.gs.js";
2
- import * as iter from "@goscript/iter/index.js";
3
- export declare function rangeNum<T extends number | number | number | number | number | number | number | number | number | number | uintptr, N extends number | number>(num: N, t: Type): iter.Seq<Value>;
@@ -1,24 +0,0 @@
1
- import { ValueOf } from "./value.gs.js";
2
- export function rangeNum(num, t) {
3
- // cannot use range T(v) because no core type.
4
- // if the iteration value type is define by
5
- // type T built-in type.
6
- return (_yield) => {
7
- let convert = t.PkgPath() != "";
8
- // cannot use range T(v) because no core type.
9
- // if the iteration value type is define by
10
- // type T built-in type.
11
- for (let i = 0; i < num; i++) {
12
- let tmp = ValueOf(i).clone();
13
- // if the iteration value type is define by
14
- // type T built-in type.
15
- if (convert) {
16
- tmp = tmp.Convert(t).clone();
17
- }
18
- if (!_yield(tmp)) {
19
- return;
20
- }
21
- }
22
- };
23
- }
24
- //# sourceMappingURL=iter.gs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iter.gs.js","sourceRoot":"","sources":["../../../gs/reflect/iter.gs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,MAAM,UAAU,QAAQ,CAAyI,GAAM,EAAE,CAAO;IAE/K,8CAA8C;IAE9C,2CAA2C;IAC3C,wBAAwB;IACxB,OAAO,CAAC,MAAsC,EAAQ,EAAE;QACvD,IAAI,OAAO,GAAG,CAAE,CAAC,OAAQ,EAAE,IAAI,EAAE,CAAA;QACjC,8CAA8C;QAE9C,2CAA2C;QAC3C,wBAAwB;QACxB,KAAK,IAAI,CAAC,GAAI,CAAkB,EAAE,CAAC,GAAI,GAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;YAClE,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;YAC5B,2CAA2C;YAC3C,wBAAwB;YACxB,IAAI,OAAO,EAAE,CAAC;gBACb,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;YAC7B,CAAC;YACD,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC"}
@@ -1,34 +0,0 @@
1
- import * as $ from "@goscript/builtin/builtin.js";
2
- import { Type, Value, uintptr, bitVector } from "./reflect.gs.js";
3
- import * as abi from "@goscript/internal/abi/index.js";
4
- export declare function MakeFunc(typ: Type, fn: ((args: $.Slice<Value>) => $.Slice<Value>) | null): Value;
5
- export declare function makeFuncStub(): void;
6
- export declare function makeMethodValue(op: string, v: Value): Value;
7
- export declare function methodValueCallCodePtr(): uintptr;
8
- export declare function methodValueCall(): void;
9
- declare class makeFuncCtxt {
10
- get fn(): uintptr;
11
- set fn(value: uintptr);
12
- get stack(): bitVector | null;
13
- set stack(value: bitVector | null);
14
- get argLen(): uintptr;
15
- set argLen(value: uintptr);
16
- get regPtrs(): abi.IntArgRegBitmap;
17
- set regPtrs(value: abi.IntArgRegBitmap);
18
- _fields: {
19
- fn: $.VarRef<uintptr>;
20
- stack: $.VarRef<bitVector | null>;
21
- argLen: $.VarRef<uintptr>;
22
- regPtrs: $.VarRef<abi.IntArgRegBitmap>;
23
- };
24
- constructor(init?: Partial<{
25
- argLen?: uintptr;
26
- fn?: uintptr;
27
- regPtrs?: abi.IntArgRegBitmap;
28
- stack?: bitVector | null;
29
- }>);
30
- clone(): makeFuncCtxt;
31
- static __typeInfo: $.StructTypeInfo;
32
- }
33
- export declare function moveMakeFuncArgPtrs(ctxt: makeFuncCtxt | null, args: abi.RegArgs | null): void;
34
- export {};