goscript 0.1.2 → 0.1.4
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.
- package/cmd/goscript/cmd_compile.go +28 -8
- package/cmd/goscript/cmd_compile_test.go +105 -6
- package/compiler/build-flags.go +9 -10
- package/compiler/gotest/runner_test.go +127 -0
- package/compiler/lowered-program.go +1 -0
- package/compiler/lowering.go +1325 -194
- package/compiler/lowering_bench_test.go +350 -0
- package/compiler/override-registry_test.go +43 -0
- package/compiler/package-graph.go +61 -4
- package/compiler/package-graph_test.go +30 -0
- package/compiler/semantic-model-types.go +8 -0
- package/compiler/semantic-model.go +447 -22
- package/compiler/semantic-model_test.go +138 -0
- package/compiler/skeleton_test.go +1436 -50
- package/compiler/typescript-emitter.go +47 -4
- package/dist/gs/builtin/builtin.d.ts +2 -2
- package/dist/gs/builtin/builtin.js +20 -0
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/channel.js +36 -9
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/slice.js +5 -0
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +1 -1
- package/dist/gs/builtin/type.js +80 -8
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/bytes/bytes.gs.d.ts +7 -5
- package/dist/gs/bytes/bytes.gs.js +10 -4
- package/dist/gs/bytes/bytes.gs.js.map +1 -1
- package/dist/gs/compress/zlib/index.d.ts +3 -3
- package/dist/gs/compress/zlib/index.js +88 -26
- package/dist/gs/compress/zlib/index.js.map +1 -1
- package/dist/gs/crypto/sha1/index.d.ts +5 -0
- package/dist/gs/crypto/sha1/index.js +103 -0
- package/dist/gs/crypto/sha1/index.js.map +1 -0
- package/dist/gs/crypto/sha256/index.js +2 -5
- package/dist/gs/crypto/sha256/index.js.map +1 -1
- package/dist/gs/crypto/sha512/index.js +2 -5
- package/dist/gs/crypto/sha512/index.js.map +1 -1
- package/dist/gs/embed/index.d.ts +6 -0
- package/dist/gs/embed/index.js +210 -5
- package/dist/gs/embed/index.js.map +1 -1
- package/dist/gs/fmt/fmt.d.ts +4 -4
- package/dist/gs/fmt/fmt.js +93 -19
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +118 -6
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +1 -1
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.d.ts +45 -0
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.js +229 -0
- package/dist/gs/github.com/go-git/go-billy/v6/osfs/index.js.map +1 -0
- package/dist/gs/io/fs/readdir.js +5 -3
- package/dist/gs/io/fs/readdir.js.map +1 -1
- package/dist/gs/io/io.d.ts +18 -11
- package/dist/gs/io/io.js +107 -44
- package/dist/gs/io/io.js.map +1 -1
- package/dist/gs/math/bits/index.d.ts +26 -5
- package/dist/gs/math/bits/index.js +13 -24
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/net/http/httptest/index.js +7 -5
- package/dist/gs/net/http/httptest/index.js.map +1 -1
- package/dist/gs/net/http/index.d.ts +11 -1
- package/dist/gs/net/http/index.js +157 -11
- package/dist/gs/net/http/index.js.map +1 -1
- package/dist/gs/os/types_js.gs.d.ts +6 -2
- package/dist/gs/os/types_js.gs.js +169 -8
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/dist/gs/os/zero_copy_posix.gs.js +1 -1
- package/dist/gs/os/zero_copy_posix.gs.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +1 -0
- package/dist/gs/reflect/type.js +80 -51
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/strings/reader.d.ts +1 -1
- package/dist/gs/strings/reader.js +2 -2
- package/dist/gs/strings/reader.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +2 -1
- package/dist/gs/sync/sync.js +37 -16
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/syscall/js/index.js +9 -0
- package/dist/gs/syscall/js/index.js.map +1 -1
- package/dist/gs/testing/testing.js +8 -6
- package/dist/gs/testing/testing.js.map +1 -1
- package/gs/builtin/builtin.ts +25 -2
- package/gs/builtin/channel.ts +47 -9
- package/gs/builtin/runtime-contract.test.ts +78 -0
- package/gs/builtin/slice.ts +7 -0
- package/gs/builtin/type.ts +97 -8
- package/gs/bytes/bytes.gs.ts +19 -10
- package/gs/bytes/bytes.test.ts +17 -0
- package/gs/compress/zlib/index.test.ts +97 -0
- package/gs/compress/zlib/index.ts +117 -27
- package/gs/compress/zlib/meta.json +4 -1
- package/gs/context/context.test.ts +5 -1
- package/gs/crypto/sha1/index.test.ts +45 -0
- package/gs/crypto/sha1/index.ts +127 -0
- package/gs/crypto/sha1/meta.json +8 -0
- package/gs/crypto/sha256/index.test.ts +14 -2
- package/gs/crypto/sha256/index.ts +3 -6
- package/gs/crypto/sha512/index.test.ts +17 -2
- package/gs/crypto/sha512/index.ts +3 -6
- package/gs/embed/index.test.ts +87 -0
- package/gs/embed/index.ts +229 -5
- package/gs/fmt/fmt.test.ts +61 -3
- package/gs/fmt/fmt.ts +115 -22
- package/gs/fmt/meta.json +6 -1
- package/gs/github.com/aperturerobotics/starpc/srpc/index.test.ts +8 -1
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +139 -11
- package/gs/github.com/aperturerobotics/util/conc/index.test.ts +1 -1
- package/gs/github.com/go-git/go-billy/v6/osfs/index.test.ts +110 -0
- package/gs/github.com/go-git/go-billy/v6/osfs/index.ts +280 -0
- package/gs/github.com/go-git/go-billy/v6/osfs/meta.json +8 -0
- package/gs/io/fs/readdir.test.ts +38 -0
- package/gs/io/fs/readdir.ts +7 -3
- package/gs/io/io.test.ts +135 -0
- package/gs/io/io.ts +143 -63
- package/gs/io/meta.json +7 -1
- package/gs/math/bits/index.ts +52 -28
- package/gs/net/http/httptest/index.test.ts +34 -2
- package/gs/net/http/httptest/index.ts +23 -8
- package/gs/net/http/index.test.ts +46 -0
- package/gs/net/http/index.ts +178 -12
- package/gs/os/file_unix_js.test.ts +52 -0
- package/gs/os/meta.json +4 -0
- package/gs/os/readdir.test.ts +56 -0
- package/gs/os/types_js.gs.ts +169 -8
- package/gs/os/zero_copy_posix.gs.ts +1 -2
- package/gs/reflect/deepequal.test.ts +10 -1
- package/gs/reflect/type.ts +91 -56
- package/gs/reflect/typefor.test.ts +31 -1
- package/gs/strings/meta.json +5 -2
- package/gs/strings/reader.test.ts +2 -2
- package/gs/strings/reader.ts +2 -2
- package/gs/sync/meta.json +2 -0
- package/gs/sync/sync.test.ts +41 -1
- package/gs/sync/sync.ts +41 -16
- package/gs/syscall/js/index.test.ts +18 -0
- package/gs/syscall/js/index.ts +12 -0
- package/gs/testing/testing.test.ts +32 -3
- package/gs/testing/testing.ts +13 -10
- package/package.json +1 -1
|
@@ -284,6 +284,9 @@ export function ValueOf(x) {
|
|
|
284
284
|
if (x instanceof Func) {
|
|
285
285
|
return x.Value.clone();
|
|
286
286
|
}
|
|
287
|
+
if (isGoInterfaceValue(x)) {
|
|
288
|
+
return ValueOf(x.__goValue);
|
|
289
|
+
}
|
|
287
290
|
if (x === null || x === undefined) {
|
|
288
291
|
return Null();
|
|
289
292
|
}
|
|
@@ -310,6 +313,12 @@ export function ValueOf(x) {
|
|
|
310
313
|
}
|
|
311
314
|
return new Value({ raw: x });
|
|
312
315
|
}
|
|
316
|
+
function isGoInterfaceValue(value) {
|
|
317
|
+
return (value !== null &&
|
|
318
|
+
typeof value === 'object' &&
|
|
319
|
+
'__goValue' in value &&
|
|
320
|
+
typeof value.__goType === 'string');
|
|
321
|
+
}
|
|
313
322
|
export function FuncOf(fn) {
|
|
314
323
|
return new Func({ fn });
|
|
315
324
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/syscall/js/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/syscall/js/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as nodeFS from 'node:fs';
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import * as context from '@goscript/context/index.js';
|
|
@@ -112,16 +112,18 @@ export class T {
|
|
|
112
112
|
return true;
|
|
113
113
|
}
|
|
114
114
|
TempDir() {
|
|
115
|
-
const path = join(tmpdir(), 'goscript-test-' +
|
|
115
|
+
const path = nodeFS.mkdtempSync(join(tmpdir(), 'goscript-test-' +
|
|
116
116
|
this.testName.replace(/[^A-Za-z0-9_.-]/g, '_') +
|
|
117
117
|
'-' +
|
|
118
|
-
String(this.tempDirs.length));
|
|
119
|
-
mkdirSync(path, { recursive: true });
|
|
118
|
+
String(this.tempDirs.length)) + '-');
|
|
120
119
|
this.tempDirs.push(path);
|
|
120
|
+
this.Cleanup(() => {
|
|
121
|
+
;
|
|
122
|
+
nodeFS.rmSync(path, { force: true, recursive: true });
|
|
123
|
+
});
|
|
121
124
|
return path;
|
|
122
125
|
}
|
|
123
|
-
Parallel() {
|
|
124
|
-
}
|
|
126
|
+
Parallel() { }
|
|
125
127
|
Setenv(key, value) {
|
|
126
128
|
const proc = globalThis.process;
|
|
127
129
|
const env = proc?.env;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../gs/testing/testing.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../gs/testing/testing.ts"],"names":[],"mappings":"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"}
|
package/gs/builtin/builtin.ts
CHANGED
|
@@ -230,6 +230,9 @@ export function comparableEqual(a: unknown, b: unknown): boolean {
|
|
|
230
230
|
if (a.__isTypedNil || b.__isTypedNil) {
|
|
231
231
|
return a.__isTypedNil === true && b.__isTypedNil === true
|
|
232
232
|
}
|
|
233
|
+
if (a.__goType.startsWith('*')) {
|
|
234
|
+
return false
|
|
235
|
+
}
|
|
233
236
|
if (hasGoValue(a) || hasGoValue(b)) {
|
|
234
237
|
return hasGoValue(a) && hasGoValue(b) && comparableEqual(a.__goValue, b.__goValue)
|
|
235
238
|
}
|
|
@@ -327,6 +330,7 @@ export function complex(real: number, imag: number): Complex {
|
|
|
327
330
|
}
|
|
328
331
|
|
|
329
332
|
export function real(value: number | Complex | null | undefined): number {
|
|
333
|
+
value = unwrapGoValue(value)
|
|
330
334
|
if (typeof value === 'number') {
|
|
331
335
|
return value
|
|
332
336
|
}
|
|
@@ -334,12 +338,25 @@ export function real(value: number | Complex | null | undefined): number {
|
|
|
334
338
|
}
|
|
335
339
|
|
|
336
340
|
export function imag(value: number | Complex | null | undefined): number {
|
|
341
|
+
value = unwrapGoValue(value)
|
|
337
342
|
if (typeof value === 'number') {
|
|
338
343
|
return 0
|
|
339
344
|
}
|
|
340
345
|
return value?.imag ?? 0
|
|
341
346
|
}
|
|
342
347
|
|
|
348
|
+
function unwrapGoValue<T>(value: T): T {
|
|
349
|
+
if (
|
|
350
|
+
value !== null &&
|
|
351
|
+
value !== undefined &&
|
|
352
|
+
typeof value === 'object' &&
|
|
353
|
+
'__goValue' in value
|
|
354
|
+
) {
|
|
355
|
+
return (value as { __goValue: T }).__goValue
|
|
356
|
+
}
|
|
357
|
+
return value
|
|
358
|
+
}
|
|
359
|
+
|
|
343
360
|
// Bytes represents all valid []byte representations in TypeScript
|
|
344
361
|
// This includes Uint8Array (the preferred representation) and $.Slice<number> (which includes null)
|
|
345
362
|
export type Bytes = Uint8Array | Slice<number>
|
|
@@ -350,7 +367,10 @@ const maxUint64BigInt = 0xffffffffffffffffn
|
|
|
350
367
|
|
|
351
368
|
// int converts a value to a Go int type, handling proper signed integer conversion
|
|
352
369
|
// This ensures that values like 2147483648 (2^31) are properly handled according to Go semantics
|
|
353
|
-
export function int(value: number | bigint, bits = 0): number {
|
|
370
|
+
export function int(value: number | bigint | string, bits = 0): number {
|
|
371
|
+
if (typeof value === 'string') {
|
|
372
|
+
value = BigInt(value)
|
|
373
|
+
}
|
|
354
374
|
if (typeof value === 'bigint') {
|
|
355
375
|
if (bits > 0 && bits <= 64) {
|
|
356
376
|
return Number(BigInt.asIntN(bits, value))
|
|
@@ -386,7 +406,10 @@ export function int(value: number | bigint, bits = 0): number {
|
|
|
386
406
|
}
|
|
387
407
|
|
|
388
408
|
// uint converts a value to an unsigned Go integer width.
|
|
389
|
-
export function uint(value: number | bigint, bits = 64): number {
|
|
409
|
+
export function uint(value: number | bigint | string, bits = 64): number {
|
|
410
|
+
if (typeof value === 'string') {
|
|
411
|
+
value = BigInt(value)
|
|
412
|
+
}
|
|
390
413
|
if (typeof value === 'bigint') {
|
|
391
414
|
const normalized = BigInt.asUintN(Math.min(bits, 64), value)
|
|
392
415
|
if (bits >= 64) {
|
package/gs/builtin/channel.ts
CHANGED
|
@@ -15,6 +15,38 @@ export interface SelectResult<T> {
|
|
|
15
15
|
id: number
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
function scheduleClosedChannelWake(wake: () => void): void {
|
|
19
|
+
// Closed-channel wakeups represent goroutine scheduling, not an immediate
|
|
20
|
+
// Promise continuation. Keep them on a task boundary so goroutine work queued
|
|
21
|
+
// around the close can observe state published before the blocked receiver
|
|
22
|
+
// resumes.
|
|
23
|
+
setTimeout(wake, 0)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function completeUnbufferedReceive<T>(
|
|
27
|
+
resolveReceive: (value: T) => void,
|
|
28
|
+
value: T,
|
|
29
|
+
): Promise<void> {
|
|
30
|
+
return new Promise<void>((resolve) => {
|
|
31
|
+
queueMicrotask(() => {
|
|
32
|
+
resolveReceive(value)
|
|
33
|
+
queueMicrotask(resolve)
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function completeUnbufferedReceiveWithOk<T>(
|
|
39
|
+
resolveReceive: (result: ChannelReceiveResult<T>) => void,
|
|
40
|
+
result: ChannelReceiveResult<T>,
|
|
41
|
+
): Promise<void> {
|
|
42
|
+
return new Promise<void>((resolve) => {
|
|
43
|
+
queueMicrotask(() => {
|
|
44
|
+
resolveReceive(result)
|
|
45
|
+
queueMicrotask(resolve)
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
|
|
18
50
|
/**
|
|
19
51
|
* Represents a Go channel in TypeScript.
|
|
20
52
|
* Supports asynchronous sending and receiving of values.
|
|
@@ -380,13 +412,14 @@ class BufferedChannel<T> implements Channel<T> {
|
|
|
380
412
|
// Attempt to hand off to a waiting receiver (rendezvous)
|
|
381
413
|
if (this.receivers.length > 0) {
|
|
382
414
|
const receiverTask = this.receivers.shift()!
|
|
383
|
-
|
|
384
|
-
return
|
|
415
|
+
return completeUnbufferedReceive(receiverTask.resolveReceive, value)
|
|
385
416
|
}
|
|
386
417
|
if (this.receiversWithOk.length > 0) {
|
|
387
418
|
const receiverTask = this.receiversWithOk.shift()!
|
|
388
|
-
|
|
389
|
-
|
|
419
|
+
return completeUnbufferedReceiveWithOk(receiverTask.resolveReceive, {
|
|
420
|
+
value,
|
|
421
|
+
ok: true,
|
|
422
|
+
})
|
|
390
423
|
}
|
|
391
424
|
|
|
392
425
|
// If no waiting receivers, try to buffer if space is available
|
|
@@ -536,12 +569,15 @@ class BufferedChannel<T> implements Channel<T> {
|
|
|
536
569
|
|
|
537
570
|
if (this.receivers.length > 0) {
|
|
538
571
|
const receiverTask = this.receivers.shift()!
|
|
539
|
-
|
|
572
|
+
await completeUnbufferedReceive(receiverTask.resolveReceive, value)
|
|
540
573
|
return { value: true, ok: true, id }
|
|
541
574
|
}
|
|
542
575
|
if (this.receiversWithOk.length > 0) {
|
|
543
576
|
const receiverTask = this.receiversWithOk.shift()!
|
|
544
|
-
|
|
577
|
+
await completeUnbufferedReceiveWithOk(receiverTask.resolveReceive, {
|
|
578
|
+
value,
|
|
579
|
+
ok: true,
|
|
580
|
+
})
|
|
545
581
|
return { value: true, ok: true, id }
|
|
546
582
|
}
|
|
547
583
|
|
|
@@ -600,7 +636,7 @@ class BufferedChannel<T> implements Channel<T> {
|
|
|
600
636
|
const sendersToNotify = [...this.senders] // Shallow copy for iteration
|
|
601
637
|
this.senders = []
|
|
602
638
|
for (const senderTask of sendersToNotify) {
|
|
603
|
-
|
|
639
|
+
scheduleClosedChannelWake(() =>
|
|
604
640
|
senderTask.rejectSend(new Error('send on closed channel')),
|
|
605
641
|
)
|
|
606
642
|
}
|
|
@@ -608,13 +644,15 @@ class BufferedChannel<T> implements Channel<T> {
|
|
|
608
644
|
const receiversToNotify = [...this.receivers]
|
|
609
645
|
this.receivers = []
|
|
610
646
|
for (const receiverTask of receiversToNotify) {
|
|
611
|
-
|
|
647
|
+
scheduleClosedChannelWake(() =>
|
|
648
|
+
receiverTask.resolveReceive(this.zeroValue),
|
|
649
|
+
)
|
|
612
650
|
}
|
|
613
651
|
|
|
614
652
|
const receiversWithOkToNotify = [...this.receiversWithOk]
|
|
615
653
|
this.receiversWithOk = []
|
|
616
654
|
for (const receiverTask of receiversWithOkToNotify) {
|
|
617
|
-
|
|
655
|
+
scheduleClosedChannelWake(() =>
|
|
618
656
|
receiverTask.resolveReceive({ value: this.zeroValue, ok: false }),
|
|
619
657
|
)
|
|
620
658
|
}
|
|
@@ -139,6 +139,9 @@ describe('builtin runtime contract helpers', () => {
|
|
|
139
139
|
expect(uint(uint64And(0xf0n, 0x3cn), 32)).toBe(0x30)
|
|
140
140
|
expect(uint(uint64Or(0xf0n, 0x0fn), 32)).toBe(0xff)
|
|
141
141
|
expect(uint(uint64Xor(0xf0n, 0xffn), 32)).toBe(0x0f)
|
|
142
|
+
expect(uint64And(uint('18446744073709551615', 64), uint('18014398509481983', 64))).toBe(
|
|
143
|
+
18014398509481983n,
|
|
144
|
+
)
|
|
142
145
|
expect(uintShr(0x80000000, 31, 32)).toBe(1)
|
|
143
146
|
expect(uintShr(0x80000000, 32, 32)).toBe(0)
|
|
144
147
|
expect(uintShr(0xff, 4, 8)).toBe(15)
|
|
@@ -164,6 +167,9 @@ describe('builtin runtime contract helpers', () => {
|
|
|
164
167
|
}),
|
|
165
168
|
).toEqual({ value: nilNamedSlice, ok: true })
|
|
166
169
|
expect(pointerValue({ ok: true })).toEqual({ ok: true })
|
|
170
|
+
const nilSliceIface = interfaceValue(null, '[]*main.StatusEntry')
|
|
171
|
+
expect(len(nilSliceIface as any)).toBe(0)
|
|
172
|
+
expect(cap(nilSliceIface as any)).toBe(0)
|
|
167
173
|
const namedPointerBox = namedValueInterfaceValue(
|
|
168
174
|
varRef(new Uint8Array([1, 2])),
|
|
169
175
|
'*main.Bytes',
|
|
@@ -331,6 +337,30 @@ describe('builtin runtime contract helpers', () => {
|
|
|
331
337
|
).toEqual([13, true])
|
|
332
338
|
})
|
|
333
339
|
|
|
340
|
+
it('asserts fixed-width numeric values by runtime type name', () => {
|
|
341
|
+
expect(
|
|
342
|
+
typeAssertTuple<number>(13, { kind: TypeKind.Basic, name: 'uint64' }),
|
|
343
|
+
).toEqual([13, true])
|
|
344
|
+
expect(
|
|
345
|
+
typeAssertTuple<number>(13, { kind: TypeKind.Basic, name: 'int32' }),
|
|
346
|
+
).toEqual([13, true])
|
|
347
|
+
})
|
|
348
|
+
|
|
349
|
+
it('asserts typed byte-slice pointers through uint8 descriptors', () => {
|
|
350
|
+
const bytes = varRef(makeSlice<number>(4, undefined, 'byte'))
|
|
351
|
+
const boxed = interfaceValue(bytes, '*[]byte')
|
|
352
|
+
|
|
353
|
+
expect(
|
|
354
|
+
typeAssertTuple<typeof bytes>(boxed, {
|
|
355
|
+
kind: TypeKind.Pointer,
|
|
356
|
+
elemType: {
|
|
357
|
+
kind: TypeKind.Slice,
|
|
358
|
+
elemType: { kind: TypeKind.Basic, name: 'uint8' },
|
|
359
|
+
},
|
|
360
|
+
}),
|
|
361
|
+
).toEqual([bytes, true])
|
|
362
|
+
})
|
|
363
|
+
|
|
334
364
|
it('exposes addressable slice and array index references', () => {
|
|
335
365
|
const values = [1, 2, 3]
|
|
336
366
|
const second = indexRef(values, 1)
|
|
@@ -513,6 +543,27 @@ describe('builtin runtime contract helpers', () => {
|
|
|
513
543
|
}),
|
|
514
544
|
).toEqual({ value: null, ok: true })
|
|
515
545
|
|
|
546
|
+
const dogRef = interfaceValue<{ Name(): string } | null>(
|
|
547
|
+
{ value: markAsStructValue(new TypedDog()), __isVarRef: true },
|
|
548
|
+
'*phase5.TypedDog',
|
|
549
|
+
)
|
|
550
|
+
expect(typeAssert<{ Name(): string }>(dogRef, dogInterface).ok).toBe(true)
|
|
551
|
+
|
|
552
|
+
const bytesRef = varRef<Bytes>(new Uint8Array([1, 2, 3]))
|
|
553
|
+
const boxedBytesRef = interfaceValue<any>(bytesRef, '*[]byte')
|
|
554
|
+
const [assertedBytesRef, bytesOk] = typeAssertTuple<typeof bytesRef>(
|
|
555
|
+
boxedBytesRef,
|
|
556
|
+
{
|
|
557
|
+
kind: TypeKind.Pointer,
|
|
558
|
+
elemType: {
|
|
559
|
+
kind: TypeKind.Slice,
|
|
560
|
+
elemType: { kind: TypeKind.Basic, name: 'int' },
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
)
|
|
564
|
+
expect(bytesOk).toBe(true)
|
|
565
|
+
expect(pointerValue(assertedBytesRef)).toBe(bytesRef.value)
|
|
566
|
+
|
|
516
567
|
const greet = namedFunction(
|
|
517
568
|
(name: string) => `hello ${name}`,
|
|
518
569
|
'phase5.Greet',
|
|
@@ -570,6 +621,33 @@ describe('builtin runtime contract helpers', () => {
|
|
|
570
621
|
expect(await chanRecvWithOk(channel)).toEqual({ value: 0, ok: false })
|
|
571
622
|
})
|
|
572
623
|
|
|
624
|
+
it('does not resume an unbuffered sender before the waiting receiver accepts the value', async () => {
|
|
625
|
+
const channel = makeChannel<number>(0, 0, 'both')
|
|
626
|
+
let received = 0
|
|
627
|
+
|
|
628
|
+
const receiver = (async () => {
|
|
629
|
+
received = await channel.receive()
|
|
630
|
+
})()
|
|
631
|
+
|
|
632
|
+
await channel.send(7)
|
|
633
|
+
expect(received).toBe(7)
|
|
634
|
+
await receiver
|
|
635
|
+
})
|
|
636
|
+
|
|
637
|
+
it('resumes closed-channel receivers after queued goroutine work', async () => {
|
|
638
|
+
const channel = makeChannel<number>(0, 0, 'both')
|
|
639
|
+
const events: string[] = []
|
|
640
|
+
|
|
641
|
+
const receive = channel.receive().then(() => {
|
|
642
|
+
events.push('receiver')
|
|
643
|
+
})
|
|
644
|
+
channel.close()
|
|
645
|
+
queueMicrotask(() => events.push('queued'))
|
|
646
|
+
|
|
647
|
+
await receive
|
|
648
|
+
expect(events).toEqual(['queued', 'receiver'])
|
|
649
|
+
})
|
|
650
|
+
|
|
573
651
|
it('cancels losing select receive cases', async () => {
|
|
574
652
|
const signal = makeChannel<string>(1, '', 'both')
|
|
575
653
|
const timeout = makeChannel<string>(0, '', 'both')
|
package/gs/builtin/slice.ts
CHANGED
|
@@ -1684,6 +1684,13 @@ function collectionValue(value: unknown): unknown {
|
|
|
1684
1684
|
if (isVarRef(value)) {
|
|
1685
1685
|
return collectionValue(value.value)
|
|
1686
1686
|
}
|
|
1687
|
+
if (
|
|
1688
|
+
typeof value === 'object' &&
|
|
1689
|
+
value !== null &&
|
|
1690
|
+
(value as { __isTypedNil?: unknown }).__isTypedNil === true
|
|
1691
|
+
) {
|
|
1692
|
+
return null
|
|
1693
|
+
}
|
|
1687
1694
|
if (
|
|
1688
1695
|
typeof value === 'object' &&
|
|
1689
1696
|
value !== null &&
|
package/gs/builtin/type.ts
CHANGED
|
@@ -320,7 +320,11 @@ function typeInfoRuntimeName(info: TypeInfo): string | undefined {
|
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
function goTypeMatchesTypeInfo(goType: string, info: TypeInfo): boolean {
|
|
323
|
-
|
|
323
|
+
const runtimeName = typeInfoRuntimeName(info)
|
|
324
|
+
return (
|
|
325
|
+
(runtimeName !== undefined && goType === runtimeName) ||
|
|
326
|
+
compareTypeStringWithTypeInfo(goType, info)
|
|
327
|
+
)
|
|
324
328
|
}
|
|
325
329
|
|
|
326
330
|
function compareOptionalTypeInfo(
|
|
@@ -487,7 +491,23 @@ function validateMapKey(key: any, keyTypeInfo: TypeInfo): boolean {
|
|
|
487
491
|
*/
|
|
488
492
|
function matchesBasicType(value: any, info: TypeInfo): boolean {
|
|
489
493
|
if (info.name === 'string') return typeof value === 'string'
|
|
490
|
-
if (
|
|
494
|
+
if (
|
|
495
|
+
info.name === 'number' ||
|
|
496
|
+
info.name === 'int' ||
|
|
497
|
+
info.name === 'int8' ||
|
|
498
|
+
info.name === 'int16' ||
|
|
499
|
+
info.name === 'int32' ||
|
|
500
|
+
info.name === 'int64' ||
|
|
501
|
+
info.name === 'uint' ||
|
|
502
|
+
info.name === 'uint8' ||
|
|
503
|
+
info.name === 'byte' ||
|
|
504
|
+
info.name === 'uint16' ||
|
|
505
|
+
info.name === 'uint32' ||
|
|
506
|
+
info.name === 'uint64' ||
|
|
507
|
+
info.name === 'uintptr' ||
|
|
508
|
+
info.name === 'float32' ||
|
|
509
|
+
info.name === 'float64'
|
|
510
|
+
)
|
|
491
511
|
return typeof value === 'number'
|
|
492
512
|
if (info.name === 'boolean' || info.name === 'bool')
|
|
493
513
|
return typeof value === 'boolean'
|
|
@@ -562,9 +582,18 @@ function matchesInterfaceType(value: any, info: TypeInfo): boolean {
|
|
|
562
582
|
return false
|
|
563
583
|
}
|
|
564
584
|
|
|
585
|
+
const methodTarget =
|
|
586
|
+
value.__isVarRef === true && 'value' in value ? value.value : value
|
|
587
|
+
if (
|
|
588
|
+
(typeof methodTarget !== 'object' && typeof methodTarget !== 'function') ||
|
|
589
|
+
methodTarget === null
|
|
590
|
+
) {
|
|
591
|
+
return false
|
|
592
|
+
}
|
|
593
|
+
|
|
565
594
|
// For interfaces, check if the value has all the required methods with compatible signatures
|
|
566
595
|
return info.methods.every((requiredMethodSig) => {
|
|
567
|
-
const actualMethod = (
|
|
596
|
+
const actualMethod = (methodTarget as any)[requiredMethodSig.name]
|
|
568
597
|
|
|
569
598
|
// Method must exist and be a function
|
|
570
599
|
if (typeof actualMethod !== 'function') {
|
|
@@ -587,8 +616,8 @@ function matchesInterfaceType(value: any, info: TypeInfo): boolean {
|
|
|
587
616
|
|
|
588
617
|
// If the value has a __goTypeName property, it might be a registered type
|
|
589
618
|
// with more type information available
|
|
590
|
-
if (
|
|
591
|
-
const valueTypeInfo = typeRegistry.get(
|
|
619
|
+
if (methodTarget.__goTypeName) {
|
|
620
|
+
const valueTypeInfo = typeRegistry.get(methodTarget.__goTypeName)
|
|
592
621
|
if (valueTypeInfo && isStructTypeInfo(valueTypeInfo)) {
|
|
593
622
|
// Find the matching method in the value's type info
|
|
594
623
|
const valueMethodSig = valueTypeInfo.methods.find(
|
|
@@ -985,15 +1014,21 @@ function matchesType(value: any, info: TypeInfo): boolean {
|
|
|
985
1014
|
*/
|
|
986
1015
|
function compareTypeStringWithTypeInfo(
|
|
987
1016
|
typeStr: string,
|
|
988
|
-
typeInfo: TypeInfo,
|
|
1017
|
+
typeInfo: string | TypeInfo,
|
|
989
1018
|
): boolean {
|
|
1019
|
+
const normalized = normalizeTypeInfo(typeInfo)
|
|
1020
|
+
const runtimeName = typeInfoRuntimeName(normalized)
|
|
1021
|
+
if (runtimeName !== undefined && typeStr === runtimeName) {
|
|
1022
|
+
return true
|
|
1023
|
+
}
|
|
1024
|
+
|
|
990
1025
|
// For pointer types, strip the leading * and compare element types
|
|
991
|
-
if (isPointerTypeInfo(
|
|
1026
|
+
if (isPointerTypeInfo(normalized)) {
|
|
992
1027
|
if (!typeStr.startsWith('*')) {
|
|
993
1028
|
return false
|
|
994
1029
|
}
|
|
995
1030
|
const elemStr = typeStr.slice(1)
|
|
996
|
-
const elemType =
|
|
1031
|
+
const elemType = normalized.elemType
|
|
997
1032
|
if (!elemType) {
|
|
998
1033
|
return false
|
|
999
1034
|
}
|
|
@@ -1075,6 +1110,58 @@ function compareTypeStringWithTypeInfo(
|
|
|
1075
1110
|
if (elemType.name) {
|
|
1076
1111
|
return elemStr === elemType.name
|
|
1077
1112
|
}
|
|
1113
|
+
return compareTypeStringWithTypeInfo(elemStr, elemType)
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
if (isSliceTypeInfo(normalized)) {
|
|
1117
|
+
if (!typeStr.startsWith('[]') || !normalized.elemType) {
|
|
1118
|
+
return false
|
|
1119
|
+
}
|
|
1120
|
+
return compareTypeStringWithTypeInfo(typeStr.slice(2), normalized.elemType)
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
if (isArrayTypeInfo(normalized)) {
|
|
1124
|
+
const match = typeStr.match(/^\[(\d+)\](.+)$/)
|
|
1125
|
+
if (!match || !normalized.elemType) {
|
|
1126
|
+
return false
|
|
1127
|
+
}
|
|
1128
|
+
return (
|
|
1129
|
+
Number(match[1]) === normalized.length &&
|
|
1130
|
+
compareTypeStringWithTypeInfo(match[2], normalized.elemType)
|
|
1131
|
+
)
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
if (isBasicTypeInfo(normalized)) {
|
|
1135
|
+
const name = typeInfoRuntimeName(normalized)
|
|
1136
|
+
if (name === undefined) {
|
|
1137
|
+
return false
|
|
1138
|
+
}
|
|
1139
|
+
if (typeStr === name) {
|
|
1140
|
+
return true
|
|
1141
|
+
}
|
|
1142
|
+
if (name === 'uint8' && typeStr === 'byte') {
|
|
1143
|
+
return true
|
|
1144
|
+
}
|
|
1145
|
+
if (name === 'int32' && typeStr === 'rune') {
|
|
1146
|
+
return true
|
|
1147
|
+
}
|
|
1148
|
+
return (
|
|
1149
|
+
name === 'int' &&
|
|
1150
|
+
[
|
|
1151
|
+
'byte',
|
|
1152
|
+
'rune',
|
|
1153
|
+
'int8',
|
|
1154
|
+
'int16',
|
|
1155
|
+
'int32',
|
|
1156
|
+
'int64',
|
|
1157
|
+
'uint',
|
|
1158
|
+
'uint8',
|
|
1159
|
+
'uint16',
|
|
1160
|
+
'uint32',
|
|
1161
|
+
'uint64',
|
|
1162
|
+
'uintptr',
|
|
1163
|
+
].includes(typeStr)
|
|
1164
|
+
)
|
|
1078
1165
|
}
|
|
1079
1166
|
|
|
1080
1167
|
return false
|
|
@@ -1360,10 +1447,12 @@ export function namedValueInterfaceValue<T>(
|
|
|
1360
1447
|
value: unknown,
|
|
1361
1448
|
typeName: string,
|
|
1362
1449
|
methods: Record<string, (receiver: any, ...args: any[]) => any>,
|
|
1450
|
+
typeInfo?: TypeInfo | string,
|
|
1363
1451
|
): T {
|
|
1364
1452
|
const boxed: any = {
|
|
1365
1453
|
__goType: typeName,
|
|
1366
1454
|
__goValue: value,
|
|
1455
|
+
__goTypeInfo: typeInfo,
|
|
1367
1456
|
valueOf: () => value,
|
|
1368
1457
|
toString: () => String(value),
|
|
1369
1458
|
[Symbol.toPrimitive]: () => value as any,
|