goscript 0.0.19 → 0.0.21

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.
@@ -593,7 +593,7 @@ export const copy = <T>(dst: Slice<T>, src: Slice<T>): number => {
593
593
  /**
594
594
  * Represents the Go error type (interface).
595
595
  */
596
- export type Error = {
596
+ export type GoError = {
597
597
  Error(): string
598
598
  } | null
599
599
 
@@ -1169,15 +1169,15 @@ function matchesPointerType(value: any, info: TypeInfo): boolean {
1169
1169
  function matchesFunctionType(value: any, info: FunctionTypeInfo): boolean {
1170
1170
  // First check if the value is a function
1171
1171
  if (typeof value !== 'function') {
1172
- return false;
1172
+ return false
1173
1173
  }
1174
-
1174
+
1175
1175
  // This is important for named function types
1176
1176
  if (info.name && value.__goTypeName) {
1177
- return info.name === value.__goTypeName;
1177
+ return info.name === value.__goTypeName
1178
1178
  }
1179
-
1180
- return true;
1179
+
1180
+ return true
1181
1181
  }
1182
1182
 
1183
1183
  /**
@@ -1501,12 +1501,30 @@ class BufferedChannel<T> implements Channel<T> {
1501
1501
  private buffer: T[] = []
1502
1502
  private closed: boolean = false
1503
1503
  private capacity: number
1504
- private senders: Array<(value: boolean) => void> = [] // Resolvers for blocked senders
1505
- private receivers: Array<(value: T) => void> = [] // Resolvers for blocked receivers
1506
- private receiversWithOk: Array<(result: ChannelReceiveResult<T>) => void> = [] // For receive with ok
1507
- private zeroValue: T // Store the zero value for the element type
1504
+ public zeroValue: T // Made public for access by ChannelRef or for type inference
1505
+
1506
+ // Senders queue: stores { value, resolve for send, reject for send }
1507
+ private senders: Array<{
1508
+ value: T
1509
+ resolveSend: () => void
1510
+ rejectSend: (e: Error) => void
1511
+ }> = []
1512
+
1513
+ // Receivers queue for receive(): stores { resolve for receive, reject for receive }
1514
+ private receivers: Array<{
1515
+ resolveReceive: (value: T) => void
1516
+ rejectReceive: (e: Error) => void
1517
+ }> = []
1518
+
1519
+ // Receivers queue for receiveWithOk(): stores { resolve for receiveWithOk }
1520
+ private receiversWithOk: Array<{
1521
+ resolveReceive: (result: ChannelReceiveResult<T>) => void
1522
+ }> = []
1508
1523
 
1509
1524
  constructor(capacity: number, zeroValue: T) {
1525
+ if (capacity < 0) {
1526
+ throw new Error('Channel capacity cannot be negative')
1527
+ }
1510
1528
  this.capacity = capacity
1511
1529
  this.zeroValue = zeroValue
1512
1530
  }
@@ -1516,150 +1534,153 @@ class BufferedChannel<T> implements Channel<T> {
1516
1534
  throw new Error('send on closed channel')
1517
1535
  }
1518
1536
 
1519
- // If there are waiting receivers, directly pass the value
1537
+ // Attempt to hand off to a waiting receiver (rendezvous)
1520
1538
  if (this.receivers.length > 0) {
1521
- const receiver = this.receivers.shift()!
1522
- receiver(value)
1539
+ const receiverTask = this.receivers.shift()!
1540
+ queueMicrotask(() => receiverTask.resolveReceive(value))
1523
1541
  return
1524
1542
  }
1525
-
1526
- // If there are waiting receivers with ok, directly pass the value and ok=true
1527
1543
  if (this.receiversWithOk.length > 0) {
1528
- const receiver = this.receiversWithOk.shift()!
1529
- receiver({ value, ok: true })
1544
+ const receiverTask = this.receiversWithOk.shift()!
1545
+ queueMicrotask(() => receiverTask.resolveReceive({ value, ok: true }))
1530
1546
  return
1531
1547
  }
1532
1548
 
1533
- // If buffer is not full, add to buffer
1549
+ // If no waiting receivers, try to buffer if space is available
1534
1550
  if (this.buffer.length < this.capacity) {
1535
1551
  this.buffer.push(value)
1536
1552
  return
1537
1553
  }
1538
1554
 
1539
- // Buffer is full, block the sender
1555
+ // Buffer is full (or capacity is 0 and no receivers are waiting). Sender must block.
1540
1556
  return new Promise<void>((resolve, reject) => {
1541
- this.senders.push((success: boolean) => {
1542
- if (success) {
1543
- this.buffer.push(value)
1544
- resolve()
1545
- } else {
1546
- reject(new Error('send on closed channel'))
1547
- }
1548
- })
1557
+ this.senders.push({ value, resolveSend: resolve, rejectSend: reject })
1549
1558
  })
1550
1559
  }
1551
1560
 
1552
1561
  async receive(): Promise<T> {
1553
- // If buffer has values, return from buffer
1562
+ // Attempt to get from buffer first
1554
1563
  if (this.buffer.length > 0) {
1555
1564
  const value = this.buffer.shift()!
1556
-
1557
- // If there are waiting senders, unblock one
1565
+ // If a sender was waiting because the buffer was full, unblock it.
1558
1566
  if (this.senders.length > 0) {
1559
- const sender = this.senders.shift()!
1560
- sender(true) // Unblock with success
1567
+ const senderTask = this.senders.shift()!
1568
+ this.buffer.push(senderTask.value) // Sender's value now goes into buffer
1569
+ queueMicrotask(() => senderTask.resolveSend()) // Unblock sender
1561
1570
  }
1562
-
1563
1571
  return value
1564
1572
  }
1565
1573
 
1566
- // If channel is closed and buffer is empty, throw error (receive without ok)
1574
+ // Buffer is empty.
1575
+ // If channel is closed (and buffer is empty), subsequent receives panic.
1567
1576
  if (this.closed) {
1568
1577
  throw new Error('receive on closed channel')
1569
1578
  }
1570
1579
 
1571
- // Buffer is empty, block the receiver
1572
- return new Promise<T>((resolve) => {
1573
- this.receivers.push(resolve)
1580
+ // Buffer is empty, channel is open.
1581
+ // Attempt to rendezvous with a waiting sender.
1582
+ if (this.senders.length > 0) {
1583
+ const senderTask = this.senders.shift()!
1584
+ queueMicrotask(() => senderTask.resolveSend()) // Unblock the sender
1585
+ return senderTask.value // Return the value from sender
1586
+ }
1587
+
1588
+ // Buffer is empty, channel is open, no waiting senders. Receiver must block.
1589
+ return new Promise<T>((resolve, reject) => {
1590
+ this.receivers.push({ resolveReceive: resolve, rejectReceive: reject })
1574
1591
  })
1575
1592
  }
1576
1593
 
1577
1594
  async receiveWithOk(): Promise<ChannelReceiveResult<T>> {
1578
- // If buffer has values, return from buffer with ok=true
1595
+ // Attempt to get from buffer first
1579
1596
  if (this.buffer.length > 0) {
1580
1597
  const value = this.buffer.shift()!
1581
-
1582
- // If there are waiting senders, unblock one
1583
1598
  if (this.senders.length > 0) {
1584
- const sender = this.senders.shift()!
1585
- sender(true) // Unblock with success
1599
+ const senderTask = this.senders.shift()!
1600
+ this.buffer.push(senderTask.value)
1601
+ queueMicrotask(() => senderTask.resolveSend())
1586
1602
  }
1587
-
1588
1603
  return { value, ok: true }
1589
1604
  }
1590
1605
 
1591
- // If channel is closed and buffer is empty, return zero value with ok=false
1606
+ // Buffer is empty.
1607
+ // Attempt to rendezvous with a waiting sender.
1608
+ if (this.senders.length > 0) {
1609
+ const senderTask = this.senders.shift()!
1610
+ queueMicrotask(() => senderTask.resolveSend())
1611
+ return { value: senderTask.value, ok: true }
1612
+ }
1613
+
1614
+ // Buffer is empty, no waiting senders.
1615
+ // If channel is closed, return zero value with ok: false.
1592
1616
  if (this.closed) {
1593
- return { value: this.zeroValue, ok: false } // Return zeroValue
1617
+ return { value: this.zeroValue, ok: false }
1594
1618
  }
1595
1619
 
1596
- // Buffer is empty, block the receiver with ok
1620
+ // Buffer is empty, channel is open, no waiting senders. Receiver must block.
1597
1621
  return new Promise<ChannelReceiveResult<T>>((resolve) => {
1598
- this.receiversWithOk.push(resolve)
1622
+ this.receiversWithOk.push({ resolveReceive: resolve })
1599
1623
  })
1600
1624
  }
1601
1625
 
1602
1626
  async selectReceive(id: number): Promise<SelectResult<T>> {
1603
- // If buffer has values, return from buffer with ok=true
1604
1627
  if (this.buffer.length > 0) {
1605
1628
  const value = this.buffer.shift()!
1606
-
1607
- // If there are waiting senders, unblock one
1608
1629
  if (this.senders.length > 0) {
1609
- const sender = this.senders.shift()!
1610
- sender(true) // Unblock with success
1630
+ const senderTask = this.senders.shift()!
1631
+ this.buffer.push(senderTask.value)
1632
+ queueMicrotask(() => senderTask.resolveSend())
1611
1633
  }
1612
-
1613
1634
  return { value, ok: true, id }
1614
1635
  }
1615
1636
 
1616
- // If channel is closed and buffer is empty, return zero value with ok=false
1637
+ if (this.senders.length > 0) {
1638
+ const senderTask = this.senders.shift()!
1639
+ queueMicrotask(() => senderTask.resolveSend())
1640
+ return { value: senderTask.value, ok: true, id }
1641
+ }
1642
+
1617
1643
  if (this.closed) {
1618
- return { value: this.zeroValue, ok: false, id } // Return zeroValue
1644
+ return { value: this.zeroValue, ok: false, id }
1619
1645
  }
1620
1646
 
1621
- // Buffer is empty, return a promise that will be resolved when a value is available
1622
1647
  return new Promise<SelectResult<T>>((resolve) => {
1623
- this.receiversWithOk.push((result) => {
1624
- resolve({ ...result, id })
1648
+ this.receiversWithOk.push({
1649
+ resolveReceive: (result: ChannelReceiveResult<T>) => {
1650
+ resolve({ ...result, id })
1651
+ },
1625
1652
  })
1626
1653
  })
1627
1654
  }
1628
1655
 
1629
1656
  async selectSend(value: T, id: number): Promise<SelectResult<boolean>> {
1630
1657
  if (this.closed) {
1631
- return { value: false, ok: false, id }
1658
+ // A select case sending on a closed channel panics in Go.
1659
+ // This will cause Promise.race in selectStatement to reject.
1660
+ throw new Error('send on closed channel')
1632
1661
  }
1633
1662
 
1634
- // If there are waiting receivers, directly pass the value
1635
1663
  if (this.receivers.length > 0) {
1636
- const receiver = this.receivers.shift()!
1637
- receiver(value)
1664
+ const receiverTask = this.receivers.shift()!
1665
+ queueMicrotask(() => receiverTask.resolveReceive(value))
1638
1666
  return { value: true, ok: true, id }
1639
1667
  }
1640
-
1641
- // If there are waiting receivers with ok, directly pass the value and ok=true
1642
1668
  if (this.receiversWithOk.length > 0) {
1643
- const receiver = this.receiversWithOk.shift()!
1644
- receiver({ value, ok: true })
1669
+ const receiverTask = this.receiversWithOk.shift()!
1670
+ queueMicrotask(() => receiverTask.resolveReceive({ value, ok: true }))
1645
1671
  return { value: true, ok: true, id }
1646
1672
  }
1647
1673
 
1648
- // If buffer is not full, add to buffer
1649
1674
  if (this.buffer.length < this.capacity) {
1650
1675
  this.buffer.push(value)
1651
1676
  return { value: true, ok: true, id }
1652
1677
  }
1653
1678
 
1654
- // Buffer is full, return a promise that will be resolved when buffer space is available
1655
- return new Promise<SelectResult<boolean>>((resolve) => {
1656
- this.senders.push((success: boolean) => {
1657
- if (success) {
1658
- this.buffer.push(value)
1659
- resolve({ value: true, ok: true, id })
1660
- } else {
1661
- resolve({ value: false, ok: false, id })
1662
- }
1679
+ return new Promise<SelectResult<boolean>>((resolve, reject) => {
1680
+ this.senders.push({
1681
+ value,
1682
+ resolveSend: () => resolve({ value: true, ok: true, id }),
1683
+ rejectSend: (e) => reject(e), // Propagate error if channel closes
1663
1684
  })
1664
1685
  })
1665
1686
  }
@@ -1668,44 +1689,46 @@ class BufferedChannel<T> implements Channel<T> {
1668
1689
  if (this.closed) {
1669
1690
  throw new Error('close of closed channel')
1670
1691
  }
1671
-
1672
1692
  this.closed = true
1673
1693
 
1674
- // Unblock all waiting senders with failure
1675
- for (const sender of this.senders) {
1676
- sender(false)
1677
- }
1694
+ const sendersToNotify = [...this.senders] // Shallow copy for iteration
1678
1695
  this.senders = []
1679
-
1680
- // Unblock all waiting receivers with the zero value
1681
- for (const receiver of this.receivers) {
1682
- // Note: receive() without ok throws on closed channel, this unblocking should not happen in correct Go logic
1683
- // but for safety, we'll resolve with zero value if it somehow does.
1684
- receiver(this.zeroValue)
1696
+ for (const senderTask of sendersToNotify) {
1697
+ queueMicrotask(() =>
1698
+ senderTask.rejectSend(new Error('send on closed channel')),
1699
+ )
1685
1700
  }
1686
- this.receivers = []
1687
1701
 
1688
- // Unblock all waiting receivers with ok=false and zero value
1689
- for (const receiver of this.receiversWithOk) {
1690
- receiver({ value: this.zeroValue, ok: false })
1702
+ const receiversToNotify = [...this.receivers]
1703
+ this.receivers = []
1704
+ for (const receiverTask of receiversToNotify) {
1705
+ queueMicrotask(() =>
1706
+ receiverTask.rejectReceive(new Error('receive on closed channel')),
1707
+ )
1691
1708
  }
1709
+
1710
+ const receiversWithOkToNotify = [...this.receiversWithOk]
1692
1711
  this.receiversWithOk = []
1712
+ for (const receiverTask of receiversWithOkToNotify) {
1713
+ queueMicrotask(() =>
1714
+ receiverTask.resolveReceive({ value: this.zeroValue, ok: false }),
1715
+ )
1716
+ }
1693
1717
  }
1694
1718
 
1695
- /**
1696
- * Checks if the channel has data ready to be received without blocking.
1697
- * Used for non-blocking select operations.
1698
- */
1699
1719
  canReceiveNonBlocking(): boolean {
1700
- return this.buffer.length > 0 || this.closed
1720
+ return this.buffer.length > 0 || this.senders.length > 0 || this.closed
1701
1721
  }
1702
1722
 
1703
- /**
1704
- * Checks if the channel can accept a send operation without blocking.
1705
- * Used for non-blocking select operations.
1706
- */
1707
1723
  canSendNonBlocking(): boolean {
1708
- return !this.closed && this.buffer.length < this.capacity
1724
+ if (this.closed) {
1725
+ return true // Ready to panic
1726
+ }
1727
+ return (
1728
+ this.buffer.length < this.capacity ||
1729
+ this.receivers.length > 0 ||
1730
+ this.receiversWithOk.length > 0
1731
+ )
1709
1732
  }
1710
1733
  }
1711
1734
 
@@ -132,9 +132,14 @@ func NewPackageCompiler(
132
132
  }
133
133
 
134
134
  // Compile orchestrates the compilation of all Go files within the package.
135
+ //
135
136
  // It iterates through each syntax file (`ast.File`) of the package,
136
137
  // determines its relative path for logging, and then invokes `CompileFile`
137
138
  // to handle the compilation of that specific file.
139
+ //
140
+ // After compiling all files, it generates an index.ts file that re-exports
141
+ // all exported symbols, allowing the package to be imported correctly.
142
+ //
138
143
  // The working directory (`wd`) is used to make file paths in logs more readable.
139
144
  func (c *PackageCompiler) Compile(ctx context.Context) error {
140
145
  wd := c.compilerConf.Dir
@@ -146,6 +151,9 @@ func (c *PackageCompiler) Compile(ctx context.Context) error {
146
151
  }
147
152
  }
148
153
 
154
+ // Track all compiled files for later generating the index.ts
155
+ compiledFiles := make([]string, 0, len(c.pkg.CompiledGoFiles))
156
+
149
157
  // Compile the files in the package one at a time
150
158
  for i, f := range c.pkg.Syntax {
151
159
  fileName := c.pkg.CompiledGoFiles[i]
@@ -158,6 +166,42 @@ func (c *PackageCompiler) Compile(ctx context.Context) error {
158
166
  if err := c.CompileFile(ctx, fileName, f); err != nil {
159
167
  return err
160
168
  }
169
+
170
+ // Add the base filename to our list for the index.ts generation
171
+ baseFileName := filepath.Base(fileName)
172
+ // Strip .go extension and add .gs
173
+ gsFileName := strings.TrimSuffix(baseFileName, ".go") + ".gs"
174
+ compiledFiles = append(compiledFiles, gsFileName)
175
+ }
176
+
177
+ // After compiling all files, generate the index.ts file
178
+ if err := c.generateIndexFile(compiledFiles); err != nil {
179
+ return err
180
+ }
181
+
182
+ return nil
183
+ }
184
+
185
+ // generateIndexFile creates an index.ts file in the package output directory
186
+ // that re-exports all symbols from the compiled TypeScript files.
187
+ // This ensures the package can be imported correctly by TypeScript modules.
188
+ func (c *PackageCompiler) generateIndexFile(compiledFiles []string) error {
189
+ indexFilePath := filepath.Join(c.outputPath, "index.ts")
190
+
191
+ // Open the file for writing
192
+ indexFile, err := os.OpenFile(indexFilePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o644)
193
+ if err != nil {
194
+ return err
195
+ }
196
+ defer indexFile.Close() //nolint:errcheck
197
+
198
+ // Write the re-export statements for each compiled file
199
+ for _, fileName := range compiledFiles {
200
+ // Create the re-export line: export * from "./file.gs.js"
201
+ exportLine := fmt.Sprintf("export * from \"./%s.js\"\n", fileName)
202
+ if _, err := indexFile.WriteString(exportLine); err != nil {
203
+ return err
204
+ }
161
205
  }
162
206
 
163
207
  return nil
@@ -345,12 +389,12 @@ func (c *GoToTSCompiler) WriteBasicType(t *types.Basic) {
345
389
  }
346
390
 
347
391
  // WriteNamedType translates a Go named type to its TypeScript equivalent.
348
- // It specially handles the error interface as $.Error, and uses the original
392
+ // It specially handles the error interface as $.GoError, and uses the original
349
393
  // type name for other named types.
350
394
  func (c *GoToTSCompiler) WriteNamedType(t *types.Named) {
351
395
  // Check if the named type is the error interface
352
396
  if iface, ok := t.Underlying().(*types.Interface); ok && iface.String() == "interface{Error() string}" {
353
- c.tsw.WriteLiterally("$.Error")
397
+ c.tsw.WriteLiterally("$.GoError")
354
398
  } else {
355
399
  // Use Obj().Name() for the original defined name
356
400
  c.tsw.WriteLiterally(t.Obj().Name())
@@ -400,13 +444,13 @@ func (c *GoToTSCompiler) WriteChannelType(t *types.Chan) {
400
444
  }
401
445
 
402
446
  // WriteInterfaceType translates a Go interface type to its TypeScript equivalent.
403
- // It specially handles the error interface as $.Error, and delegates to
447
+ // It specially handles the error interface as $.GoError, and delegates to
404
448
  // writeInterfaceStructure for other interface types, prepending "null | ".
405
449
  // If astNode is provided (e.g., from a type spec), comments for methods will be included.
406
450
  func (c *GoToTSCompiler) WriteInterfaceType(t *types.Interface, astNode *ast.InterfaceType) {
407
451
  // Handle the built-in error interface specifically
408
452
  if t.String() == "interface{Error() string}" {
409
- c.tsw.WriteLiterally("$.Error")
453
+ c.tsw.WriteLiterally("$.GoError")
410
454
  return
411
455
  }
412
456
 
@@ -2982,12 +3026,15 @@ func (c *GoToTSCompiler) WriteValueSpec(a *ast.ValueSpec) error {
2982
3026
 
2983
3027
  // WriteImportSpec translates a Go import specification (`ast.ImportSpec`)
2984
3028
  // into a TypeScript import statement.
3029
+ //
2985
3030
  // It extracts the Go import path (e.g., `"path/to/pkg"`) and determines the
2986
3031
  // import alias/name for TypeScript. If the Go import has an explicit name
2987
3032
  // (e.g., `alias "path/to/pkg"`), that alias is used. Otherwise, the package
2988
3033
  // name is derived from the Go path.
3034
+ //
2989
3035
  // The Go path is then translated to a TypeScript module path using
2990
3036
  // `translateGoPathToTypescriptPath`.
3037
+ //
2991
3038
  // Finally, it writes a TypeScript import statement like `import * as alias from "typescript/path/to/pkg";`
2992
3039
  // and records the import details in `c.analysis.Imports` for later use (e.g.,
2993
3040
  // resolving qualified identifiers).
@@ -3011,7 +3058,7 @@ func (c *GoToTSCompiler) WriteImportSpec(a *ast.ImportSpec) {
3011
3058
  importVars: make(map[string]struct{}),
3012
3059
  }
3013
3060
 
3014
- c.tsw.WriteImport(impName, importPath)
3061
+ c.tsw.WriteImport(impName, importPath+"/index.js")
3015
3062
  }
3016
3063
 
3017
3064
  // WriteDecls iterates through a slice of Go top-level declarations (`ast.Decl`)
@@ -3395,6 +3442,29 @@ func (c *GoToTSCompiler) WriteStmt(a ast.Stmt) error {
3395
3442
  // For function literals, we need to check if the function literal itself is async
3396
3443
  // This happens during analysis in analysisVisitor.Visit for FuncLit nodes
3397
3444
  isAsync := c.analysis.IsFuncLitAsync(funcLit)
3445
+ if isAsync {
3446
+ c.tsw.WriteLiterally("queueMicrotask(async () => ")
3447
+ } else {
3448
+ c.tsw.WriteLiterally("queueMicrotask(() => ")
3449
+ }
3450
+
3451
+ // Compile the function literal's body directly
3452
+ if err := c.WriteStmtBlock(funcLit.Body, true); err != nil {
3453
+ return fmt.Errorf("failed to write goroutine function literal body: %w", err)
3454
+ }
3455
+
3456
+ c.tsw.WriteLine(")") // Close the queueMicrotask statement
3457
+
3458
+ } else if ident, ok := callExpr.Fun.(*ast.Ident); ok {
3459
+ // Handle named functions: go namedFunc(args)
3460
+ // Get the object for this function
3461
+ obj := c.pkg.TypesInfo.Uses[ident]
3462
+ if obj == nil {
3463
+ return errors.Errorf("could not find object for function: %s", ident.Name)
3464
+ }
3465
+
3466
+ // Check if the function is async
3467
+ isAsync := c.analysis.IsAsyncFunc(obj)
3398
3468
  if isAsync {
3399
3469
  c.tsw.WriteLiterally("queueMicrotask(async () => {")
3400
3470
  } else {
@@ -3404,14 +3474,29 @@ func (c *GoToTSCompiler) WriteStmt(a ast.Stmt) error {
3404
3474
  c.tsw.Indent(1)
3405
3475
  c.tsw.WriteLine("")
3406
3476
 
3407
- // Compile the function literal's body directly
3408
- if err := c.WriteStmt(funcLit.Body); err != nil {
3409
- return fmt.Errorf("failed to write goroutine function literal body: %w", err)
3477
+ // Write the function call, using await if the function is async
3478
+ if isAsync {
3479
+ c.tsw.WriteLiterally("await ")
3410
3480
  }
3411
3481
 
3482
+ // Write the function name
3483
+ c.tsw.WriteLiterally(ident.Name)
3484
+
3485
+ // Write the function arguments
3486
+ c.tsw.WriteLiterally("(")
3487
+ for i, arg := range callExpr.Args {
3488
+ if i != 0 {
3489
+ c.tsw.WriteLiterally(", ")
3490
+ }
3491
+ if err := c.WriteValueExpr(arg); err != nil {
3492
+ return fmt.Errorf("failed to write argument %d in goroutine function call: %w", i, err)
3493
+ }
3494
+ }
3495
+ c.tsw.WriteLiterally(")")
3496
+ c.tsw.WriteLine("")
3497
+
3412
3498
  c.tsw.Indent(-1)
3413
3499
  c.tsw.WriteLine("})") // Close the queueMicrotask callback and the statement
3414
-
3415
3500
  } else {
3416
3501
  return errors.Errorf("unhandled goroutine function type: %T", callExpr.Fun)
3417
3502
  }
@@ -4612,7 +4697,6 @@ func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
4612
4697
  }
4613
4698
  }
4614
4699
 
4615
-
4616
4700
  // First, collect all the selector expressions to identify variables that need to be initialized
4617
4701
  hasSelectors := false
4618
4702
  for _, lhsExpr := range lhs {
@@ -4621,26 +4705,26 @@ func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
4621
4705
  break
4622
4706
  }
4623
4707
  }
4624
-
4708
+
4625
4709
  // If we have selector expressions, we need to ensure variables are initialized
4626
4710
  // before the destructuring assignment
4627
4711
  if hasSelectors {
4628
4712
  c.tsw.WriteLiterally("{")
4629
4713
  c.tsw.WriteLine("")
4630
-
4714
+
4631
4715
  // Write a temporary variable to hold the function call result
4632
4716
  c.tsw.WriteLiterally(" const _tmp = ")
4633
4717
  if err := c.WriteValueExpr(callExpr); err != nil {
4634
4718
  return fmt.Errorf("failed to write RHS call expression in assignment: %w", err)
4635
4719
  }
4636
4720
  c.tsw.WriteLine("")
4637
-
4721
+
4638
4722
  for i, lhsExpr := range lhs {
4639
4723
  // Skip underscore variables
4640
4724
  if ident, ok := lhsExpr.(*ast.Ident); ok && ident.Name == "_" {
4641
4725
  continue
4642
4726
  }
4643
-
4727
+
4644
4728
  // Write the LHS with indentation
4645
4729
  c.tsw.WriteLiterally(" ")
4646
4730
  if ident, ok := lhsExpr.(*ast.Ident); ok {
@@ -4652,20 +4736,20 @@ func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
4652
4736
  } else {
4653
4737
  return errors.Errorf("unhandled LHS expression in assignment: %T", lhsExpr)
4654
4738
  }
4655
-
4739
+
4656
4740
  // Write the assignment
4657
4741
  c.tsw.WriteLiterallyf(" = _tmp[%d]", i)
4658
4742
  // Always add a newline after each assignment
4659
4743
  c.tsw.WriteLine("")
4660
4744
  }
4661
-
4745
+
4662
4746
  // Close the block scope
4663
4747
  c.tsw.WriteLiterally("}")
4664
4748
  c.tsw.WriteLine("")
4665
-
4749
+
4666
4750
  return nil
4667
4751
  }
4668
-
4752
+
4669
4753
  // For simple cases without selector expressions, use array destructuring
4670
4754
  c.tsw.WriteLiterally("[")
4671
4755
 
@@ -15,12 +15,6 @@ import (
15
15
  // NOTE: this is here instead of compliance/compliance_test.go so coverage ends up in this package.
16
16
 
17
17
  func TestCompliance(t *testing.T) {
18
- testsDir := "../compliance/tests"
19
- dirs, err := os.ReadDir(testsDir)
20
- if err != nil {
21
- t.Fatalf("failed to read tests dir: %v", err)
22
- }
23
-
24
18
  // Get workspace directory (project root)
25
19
  workspaceDir, err := os.Getwd()
26
20
  if err != nil {
@@ -29,16 +23,18 @@ func TestCompliance(t *testing.T) {
29
23
  workspaceDir = filepath.Join(workspaceDir, "..")
30
24
 
31
25
  // First collect all test paths
26
+ testsDir := filepath.Join(workspaceDir, "compliance/tests")
27
+ dirs, err := os.ReadDir(testsDir)
28
+ if err != nil {
29
+ t.Fatalf("failed to read tests dir: %v", err)
30
+ }
31
+
32
32
  var testPaths []string
33
33
  for _, dir := range dirs {
34
34
  if !dir.IsDir() {
35
35
  continue
36
36
  }
37
37
  testPath := filepath.Join(testsDir, dir.Name())
38
- // expectedLogPath := filepath.Join(testPath, "expected.log")
39
- // if _, err := os.Stat(expectedLogPath); err != nil {
40
- // continue // skip if no expected.log
41
- //}
42
38
  goFiles, err := filepath.Glob(filepath.Join(testPath, "*.go"))
43
39
  if err != nil || len(goFiles) == 0 {
44
40
  t.Errorf("no .go files found in %s", testPath)
@@ -61,6 +57,8 @@ func TestCompliance(t *testing.T) {
61
57
  go func(path string) {
62
58
  defer wg.Done() // runs even if t.Run is skipped
63
59
  t.Run(filepath.Base(path), func(t *testing.T) {
60
+ t.Helper()
61
+
64
62
  ranTests.Add(1)
65
63
  // limit how many tests can run simultaneously
66
64
  <-simulLimit
@@ -68,6 +66,11 @@ func TestCompliance(t *testing.T) {
68
66
  simulLimit <- struct{}{}
69
67
  }()
70
68
  compliance.RunGoScriptTestDir(t, workspaceDir, path) // Pass workspaceDir
69
+
70
+ // Remove dir if everything passed
71
+ if !t.Failed() {
72
+ os.RemoveAll(filepath.Join(path, "run"))
73
+ }
71
74
  })
72
75
  }(testPath)
73
76
  }
@@ -8,7 +8,7 @@ import (
8
8
 
9
9
  // ComputeModulePath computes the root of the output typescript module.
10
10
  func ComputeModulePath(outputRoot, goPkg string) string {
11
- return filepath.Join(outputRoot, goPkg)
11
+ return filepath.Join(outputRoot, translateGoPathToTypescriptPath(goPkg))
12
12
  }
13
13
 
14
14
  var typeScriptGoStubPrefix = "@ts/"
@@ -80,7 +80,7 @@ export declare const copy: <T>(dst: Slice<T>, src: Slice<T>) => number;
80
80
  /**
81
81
  * Represents the Go error type (interface).
82
82
  */
83
- export type Error = {
83
+ export type GoError = {
84
84
  Error(): string;
85
85
  } | null;
86
86
  /**
@@ -1006,11 +1006,17 @@ class BufferedChannel {
1006
1006
  buffer = [];
1007
1007
  closed = false;
1008
1008
  capacity;
1009
- senders = []; // Resolvers for blocked senders
1010
- receivers = []; // Resolvers for blocked receivers
1011
- receiversWithOk = []; // For receive with ok
1012
- zeroValue; // Store the zero value for the element type
1009
+ zeroValue; // Made public for access by ChannelRef or for type inference
1010
+ // Senders queue: stores { value, resolve for send, reject for send }
1011
+ senders = [];
1012
+ // Receivers queue for receive(): stores { resolve for receive, reject for receive }
1013
+ receivers = [];
1014
+ // Receivers queue for receiveWithOk(): stores { resolve for receiveWithOk }
1015
+ receiversWithOk = [];
1013
1016
  constructor(capacity, zeroValue) {
1017
+ if (capacity < 0) {
1018
+ throw new Error('Channel capacity cannot be negative');
1019
+ }
1014
1020
  this.capacity = capacity;
1015
1021
  this.zeroValue = zeroValue;
1016
1022
  }
@@ -1018,129 +1024,135 @@ class BufferedChannel {
1018
1024
  if (this.closed) {
1019
1025
  throw new Error('send on closed channel');
1020
1026
  }
1021
- // If there are waiting receivers, directly pass the value
1027
+ // Attempt to hand off to a waiting receiver (rendezvous)
1022
1028
  if (this.receivers.length > 0) {
1023
- const receiver = this.receivers.shift();
1024
- receiver(value);
1029
+ const receiverTask = this.receivers.shift();
1030
+ queueMicrotask(() => receiverTask.resolveReceive(value));
1025
1031
  return;
1026
1032
  }
1027
- // If there are waiting receivers with ok, directly pass the value and ok=true
1028
1033
  if (this.receiversWithOk.length > 0) {
1029
- const receiver = this.receiversWithOk.shift();
1030
- receiver({ value, ok: true });
1034
+ const receiverTask = this.receiversWithOk.shift();
1035
+ queueMicrotask(() => receiverTask.resolveReceive({ value, ok: true }));
1031
1036
  return;
1032
1037
  }
1033
- // If buffer is not full, add to buffer
1038
+ // If no waiting receivers, try to buffer if space is available
1034
1039
  if (this.buffer.length < this.capacity) {
1035
1040
  this.buffer.push(value);
1036
1041
  return;
1037
1042
  }
1038
- // Buffer is full, block the sender
1043
+ // Buffer is full (or capacity is 0 and no receivers are waiting). Sender must block.
1039
1044
  return new Promise((resolve, reject) => {
1040
- this.senders.push((success) => {
1041
- if (success) {
1042
- this.buffer.push(value);
1043
- resolve();
1044
- }
1045
- else {
1046
- reject(new Error('send on closed channel'));
1047
- }
1048
- });
1045
+ this.senders.push({ value, resolveSend: resolve, rejectSend: reject });
1049
1046
  });
1050
1047
  }
1051
1048
  async receive() {
1052
- // If buffer has values, return from buffer
1049
+ // Attempt to get from buffer first
1053
1050
  if (this.buffer.length > 0) {
1054
1051
  const value = this.buffer.shift();
1055
- // If there are waiting senders, unblock one
1052
+ // If a sender was waiting because the buffer was full, unblock it.
1056
1053
  if (this.senders.length > 0) {
1057
- const sender = this.senders.shift();
1058
- sender(true); // Unblock with success
1054
+ const senderTask = this.senders.shift();
1055
+ this.buffer.push(senderTask.value); // Sender's value now goes into buffer
1056
+ queueMicrotask(() => senderTask.resolveSend()); // Unblock sender
1059
1057
  }
1060
1058
  return value;
1061
1059
  }
1062
- // If channel is closed and buffer is empty, throw error (receive without ok)
1060
+ // Buffer is empty.
1061
+ // If channel is closed (and buffer is empty), subsequent receives panic.
1063
1062
  if (this.closed) {
1064
1063
  throw new Error('receive on closed channel');
1065
1064
  }
1066
- // Buffer is empty, block the receiver
1067
- return new Promise((resolve) => {
1068
- this.receivers.push(resolve);
1065
+ // Buffer is empty, channel is open.
1066
+ // Attempt to rendezvous with a waiting sender.
1067
+ if (this.senders.length > 0) {
1068
+ const senderTask = this.senders.shift();
1069
+ queueMicrotask(() => senderTask.resolveSend()); // Unblock the sender
1070
+ return senderTask.value; // Return the value from sender
1071
+ }
1072
+ // Buffer is empty, channel is open, no waiting senders. Receiver must block.
1073
+ return new Promise((resolve, reject) => {
1074
+ this.receivers.push({ resolveReceive: resolve, rejectReceive: reject });
1069
1075
  });
1070
1076
  }
1071
1077
  async receiveWithOk() {
1072
- // If buffer has values, return from buffer with ok=true
1078
+ // Attempt to get from buffer first
1073
1079
  if (this.buffer.length > 0) {
1074
1080
  const value = this.buffer.shift();
1075
- // If there are waiting senders, unblock one
1076
1081
  if (this.senders.length > 0) {
1077
- const sender = this.senders.shift();
1078
- sender(true); // Unblock with success
1082
+ const senderTask = this.senders.shift();
1083
+ this.buffer.push(senderTask.value);
1084
+ queueMicrotask(() => senderTask.resolveSend());
1079
1085
  }
1080
1086
  return { value, ok: true };
1081
1087
  }
1082
- // If channel is closed and buffer is empty, return zero value with ok=false
1088
+ // Buffer is empty.
1089
+ // Attempt to rendezvous with a waiting sender.
1090
+ if (this.senders.length > 0) {
1091
+ const senderTask = this.senders.shift();
1092
+ queueMicrotask(() => senderTask.resolveSend());
1093
+ return { value: senderTask.value, ok: true };
1094
+ }
1095
+ // Buffer is empty, no waiting senders.
1096
+ // If channel is closed, return zero value with ok: false.
1083
1097
  if (this.closed) {
1084
- return { value: this.zeroValue, ok: false }; // Return zeroValue
1098
+ return { value: this.zeroValue, ok: false };
1085
1099
  }
1086
- // Buffer is empty, block the receiver with ok
1100
+ // Buffer is empty, channel is open, no waiting senders. Receiver must block.
1087
1101
  return new Promise((resolve) => {
1088
- this.receiversWithOk.push(resolve);
1102
+ this.receiversWithOk.push({ resolveReceive: resolve });
1089
1103
  });
1090
1104
  }
1091
1105
  async selectReceive(id) {
1092
- // If buffer has values, return from buffer with ok=true
1093
1106
  if (this.buffer.length > 0) {
1094
1107
  const value = this.buffer.shift();
1095
- // If there are waiting senders, unblock one
1096
1108
  if (this.senders.length > 0) {
1097
- const sender = this.senders.shift();
1098
- sender(true); // Unblock with success
1109
+ const senderTask = this.senders.shift();
1110
+ this.buffer.push(senderTask.value);
1111
+ queueMicrotask(() => senderTask.resolveSend());
1099
1112
  }
1100
1113
  return { value, ok: true, id };
1101
1114
  }
1102
- // If channel is closed and buffer is empty, return zero value with ok=false
1115
+ if (this.senders.length > 0) {
1116
+ const senderTask = this.senders.shift();
1117
+ queueMicrotask(() => senderTask.resolveSend());
1118
+ return { value: senderTask.value, ok: true, id };
1119
+ }
1103
1120
  if (this.closed) {
1104
- return { value: this.zeroValue, ok: false, id }; // Return zeroValue
1121
+ return { value: this.zeroValue, ok: false, id };
1105
1122
  }
1106
- // Buffer is empty, return a promise that will be resolved when a value is available
1107
1123
  return new Promise((resolve) => {
1108
- this.receiversWithOk.push((result) => {
1109
- resolve({ ...result, id });
1124
+ this.receiversWithOk.push({
1125
+ resolveReceive: (result) => {
1126
+ resolve({ ...result, id });
1127
+ },
1110
1128
  });
1111
1129
  });
1112
1130
  }
1113
1131
  async selectSend(value, id) {
1114
1132
  if (this.closed) {
1115
- return { value: false, ok: false, id };
1133
+ // A select case sending on a closed channel panics in Go.
1134
+ // This will cause Promise.race in selectStatement to reject.
1135
+ throw new Error('send on closed channel');
1116
1136
  }
1117
- // If there are waiting receivers, directly pass the value
1118
1137
  if (this.receivers.length > 0) {
1119
- const receiver = this.receivers.shift();
1120
- receiver(value);
1138
+ const receiverTask = this.receivers.shift();
1139
+ queueMicrotask(() => receiverTask.resolveReceive(value));
1121
1140
  return { value: true, ok: true, id };
1122
1141
  }
1123
- // If there are waiting receivers with ok, directly pass the value and ok=true
1124
1142
  if (this.receiversWithOk.length > 0) {
1125
- const receiver = this.receiversWithOk.shift();
1126
- receiver({ value, ok: true });
1143
+ const receiverTask = this.receiversWithOk.shift();
1144
+ queueMicrotask(() => receiverTask.resolveReceive({ value, ok: true }));
1127
1145
  return { value: true, ok: true, id };
1128
1146
  }
1129
- // If buffer is not full, add to buffer
1130
1147
  if (this.buffer.length < this.capacity) {
1131
1148
  this.buffer.push(value);
1132
1149
  return { value: true, ok: true, id };
1133
1150
  }
1134
- // Buffer is full, return a promise that will be resolved when buffer space is available
1135
- return new Promise((resolve) => {
1136
- this.senders.push((success) => {
1137
- if (success) {
1138
- this.buffer.push(value);
1139
- resolve({ value: true, ok: true, id });
1140
- }
1141
- else {
1142
- resolve({ value: false, ok: false, id });
1143
- }
1151
+ return new Promise((resolve, reject) => {
1152
+ this.senders.push({
1153
+ value,
1154
+ resolveSend: () => resolve({ value: true, ok: true, id }),
1155
+ rejectSend: (e) => reject(e), // Propagate error if channel closes
1144
1156
  });
1145
1157
  });
1146
1158
  }
@@ -1149,37 +1161,32 @@ class BufferedChannel {
1149
1161
  throw new Error('close of closed channel');
1150
1162
  }
1151
1163
  this.closed = true;
1152
- // Unblock all waiting senders with failure
1153
- for (const sender of this.senders) {
1154
- sender(false);
1155
- }
1164
+ const sendersToNotify = [...this.senders]; // Shallow copy for iteration
1156
1165
  this.senders = [];
1157
- // Unblock all waiting receivers with the zero value
1158
- for (const receiver of this.receivers) {
1159
- // Note: receive() without ok throws on closed channel, this unblocking should not happen in correct Go logic
1160
- // but for safety, we'll resolve with zero value if it somehow does.
1161
- receiver(this.zeroValue);
1166
+ for (const senderTask of sendersToNotify) {
1167
+ queueMicrotask(() => senderTask.rejectSend(new Error('send on closed channel')));
1162
1168
  }
1169
+ const receiversToNotify = [...this.receivers];
1163
1170
  this.receivers = [];
1164
- // Unblock all waiting receivers with ok=false and zero value
1165
- for (const receiver of this.receiversWithOk) {
1166
- receiver({ value: this.zeroValue, ok: false });
1171
+ for (const receiverTask of receiversToNotify) {
1172
+ queueMicrotask(() => receiverTask.rejectReceive(new Error('receive on closed channel')));
1167
1173
  }
1174
+ const receiversWithOkToNotify = [...this.receiversWithOk];
1168
1175
  this.receiversWithOk = [];
1176
+ for (const receiverTask of receiversWithOkToNotify) {
1177
+ queueMicrotask(() => receiverTask.resolveReceive({ value: this.zeroValue, ok: false }));
1178
+ }
1169
1179
  }
1170
- /**
1171
- * Checks if the channel has data ready to be received without blocking.
1172
- * Used for non-blocking select operations.
1173
- */
1174
1180
  canReceiveNonBlocking() {
1175
- return this.buffer.length > 0 || this.closed;
1181
+ return this.buffer.length > 0 || this.senders.length > 0 || this.closed;
1176
1182
  }
1177
- /**
1178
- * Checks if the channel can accept a send operation without blocking.
1179
- * Used for non-blocking select operations.
1180
- */
1181
1183
  canSendNonBlocking() {
1182
- return !this.closed && this.buffer.length < this.capacity;
1184
+ if (this.closed) {
1185
+ return true; // Ready to panic
1186
+ }
1187
+ return (this.buffer.length < this.capacity ||
1188
+ this.receivers.length > 0 ||
1189
+ this.receiversWithOk.length > 0);
1183
1190
  }
1184
1191
  }
1185
1192
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../builtin/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../builtin/builtin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "goscript",
3
3
  "description": "Go to TypeScript transpiler",
4
- "version": "0.0.19",
4
+ "version": "0.0.21",
5
5
  "author": {
6
6
  "name": "Aperture Robotics LLC.",
7
7
  "email": "support@aperture.us",