goscript 0.0.10 → 0.0.13

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 (103) hide show
  1. package/README.md +3 -3
  2. package/builtin/builtin.go +11 -0
  3. package/builtin/builtin.ts +170 -65
  4. package/cmd/goscript/cmd_compile.go +28 -8
  5. package/compiler/compile.go +42 -34
  6. package/compiler/compile_decls.go +12 -0
  7. package/compiler/compile_expr.go +135 -8
  8. package/compiler/compile_field.go +22 -1
  9. package/compiler/compile_spec.go +141 -4
  10. package/compiler/compile_stmt.go +124 -43
  11. package/compiler/compiler.go +1 -0
  12. package/compiler/config.go +2 -0
  13. package/compiler/file_compiler.go +1 -1
  14. package/compiler/index.test.ts +1 -1
  15. package/compiler/output_path.go +1 -1
  16. package/compiler/types/tokens.go +1 -0
  17. package/compiler/writer.go +1 -1
  18. package/dist/builtin/builtin.d.ts +63 -1
  19. package/dist/builtin/builtin.js +81 -0
  20. package/dist/builtin/builtin.js.map +1 -1
  21. package/dist/compliance/tests/async_basic/async_basic.gs.js +1 -1
  22. package/dist/compliance/tests/async_basic/async_basic.gs.js.map +1 -1
  23. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.d.ts +1 -0
  24. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js +82 -0
  25. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js.map +1 -0
  26. package/dist/compliance/tests/channel_basic/channel_basic.gs.js +1 -1
  27. package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +1 -1
  28. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +1 -1
  29. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +1 -1
  30. package/dist/compliance/tests/copy_independence/copy_independence.gs.js +1 -1
  31. package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -1
  32. package/dist/compliance/tests/defer_statement/defer_statement.gs.d.ts +1 -0
  33. package/dist/compliance/tests/defer_statement/defer_statement.gs.js +75 -0
  34. package/dist/compliance/tests/defer_statement/defer_statement.gs.js.map +1 -0
  35. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +3 -3
  36. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +1 -1
  37. package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.d.ts +1 -0
  38. package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js +29 -0
  39. package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js.map +1 -0
  40. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.d.ts +1 -0
  41. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js +14 -0
  42. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js.map +1 -0
  43. package/dist/compliance/tests/for_range/for_range.gs.js +1 -1
  44. package/dist/compliance/tests/for_range/for_range.gs.js.map +1 -1
  45. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +1 -1
  46. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +1 -1
  47. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -1
  48. package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.d.ts +1 -0
  49. package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js +12 -0
  50. package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js.map +1 -0
  51. package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +2 -2
  52. package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +1 -1
  53. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +3 -3
  54. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -1
  55. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +13 -3
  56. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -1
  57. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.d.ts +1 -0
  58. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js +51 -0
  59. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js.map +1 -0
  60. package/dist/compliance/tests/map_support/map_support.gs.js +1 -1
  61. package/dist/compliance/tests/map_support/map_support.gs.js.map +1 -1
  62. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +1 -1
  63. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +1 -1
  64. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +1 -1
  65. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +1 -1
  66. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +1 -1
  67. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +1 -1
  68. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +1 -1
  69. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +1 -1
  70. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +1 -1
  71. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +1 -1
  72. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +1 -1
  73. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +1 -1
  74. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +1 -1
  75. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +1 -1
  76. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +1 -1
  77. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +1 -1
  78. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +1 -1
  79. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +1 -1
  80. package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +2 -1
  81. package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js.map +1 -1
  82. package/dist/compliance/tests/select_statement/select_statement.gs.js +2 -4
  83. package/dist/compliance/tests/select_statement/select_statement.gs.js.map +1 -1
  84. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +1 -1
  85. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -1
  86. package/dist/compliance/tests/slices/slices.gs.js +281 -8
  87. package/dist/compliance/tests/slices/slices.gs.js.map +1 -1
  88. package/dist/compliance/tests/string_conversion/string_conversion.gs.d.ts +1 -0
  89. package/dist/compliance/tests/string_conversion/string_conversion.gs.js +41 -0
  90. package/dist/compliance/tests/string_conversion/string_conversion.gs.js.map +1 -0
  91. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.d.ts +1 -0
  92. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js +48 -0
  93. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js.map +1 -0
  94. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +1 -1
  95. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -1
  96. package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.d.ts +1 -0
  97. package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js +26 -0
  98. package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js.map +1 -0
  99. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +1 -1
  100. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +1 -1
  101. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +1 -1
  102. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -1
  103. package/package.json +4 -3
@@ -28,6 +28,10 @@ func (c *GoToTSCompiler) WriteStmt(a ast.Stmt) error {
28
28
  if err := c.WriteStmtReturn(exp); err != nil {
29
29
  return fmt.Errorf("failed to write return statement: %w", err)
30
30
  }
31
+ case *ast.DeferStmt:
32
+ if err := c.WriteDeferStmt(exp); err != nil {
33
+ return fmt.Errorf("failed to write defer statement: %w", err)
34
+ }
31
35
  case *ast.IfStmt:
32
36
  if err := c.WriteStmtIf(exp); err != nil {
33
37
  return fmt.Errorf("failed to write if statement: %w", err)
@@ -125,12 +129,70 @@ func (c *GoToTSCompiler) WriteStmt(a ast.Stmt) error {
125
129
  if err := c.WriteStmtSelect(exp); err != nil {
126
130
  return fmt.Errorf("failed to write select statement: %w", err)
127
131
  }
132
+ case *ast.BranchStmt:
133
+ // Handle break and continue statements
134
+ switch exp.Tok {
135
+ case token.BREAK:
136
+ c.tsw.WriteLine("break") // No semicolon needed
137
+ case token.CONTINUE:
138
+ c.tsw.WriteLine("continue") // No semicolon needed
139
+ default:
140
+ c.tsw.WriteCommentLine(fmt.Sprintf("unhandled branch statement token: %s", exp.Tok.String()))
141
+ }
128
142
  default:
129
143
  c.tsw.WriteCommentLine(fmt.Sprintf("unknown statement: %s\n", litter.Sdump(a)))
130
144
  }
131
145
  return nil
132
146
  }
133
147
 
148
+ // WriteDeferStmt writes a defer statement using TypeScript's DisposableStack.
149
+ func (c *GoToTSCompiler) WriteDeferStmt(exp *ast.DeferStmt) error {
150
+ // Check if deferred call contains async operations
151
+ hasAsyncOps := c.containsAsyncOperations(exp.Call)
152
+
153
+ // Choose the right stack variable and async modifier
154
+ stackVar := "cleanup"
155
+ asyncPrefix := ""
156
+
157
+ if c.inAsyncFunction {
158
+ stackVar = "__defer"
159
+ if hasAsyncOps {
160
+ asyncPrefix = "async "
161
+ }
162
+ }
163
+
164
+ c.tsw.WriteLiterally(fmt.Sprintf("%s.defer(%s() => {", stackVar, asyncPrefix))
165
+ c.tsw.Indent(1)
166
+ c.tsw.WriteLine("")
167
+
168
+ // Write the deferred call or inline the body when it's an immediately-invoked
169
+ // function literal (defer func(){ ... }()).
170
+ if funcLit, ok := exp.Call.Fun.(*ast.FuncLit); ok && len(exp.Call.Args) == 0 {
171
+ // Inline the function literal's body to avoid nested arrow invocation.
172
+ prevAsyncState := c.inAsyncFunction
173
+ c.inAsyncFunction = hasAsyncOps
174
+
175
+ for _, stmt := range funcLit.Body.List {
176
+ if err := c.WriteStmt(stmt); err != nil {
177
+ c.inAsyncFunction = prevAsyncState
178
+ return fmt.Errorf("failed to write statement in deferred function body: %w", err)
179
+ }
180
+ }
181
+
182
+ c.inAsyncFunction = prevAsyncState
183
+ } else {
184
+ // Fallback: write the call expression as-is.
185
+ if err := c.WriteValueExpr(exp.Call); err != nil {
186
+ return fmt.Errorf("failed to write deferred call: %w", err)
187
+ }
188
+ }
189
+
190
+ c.tsw.Indent(-1)
191
+ c.tsw.WriteLine("});")
192
+
193
+ return nil
194
+ }
195
+
134
196
  // WriteStmtSelect writes a select statement.
135
197
  func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
136
198
  // This is our implementation of the select statement, which will use Promise.race
@@ -435,10 +497,12 @@ func (s *GoToTSCompiler) WriteStmtIf(exp *ast.IfStmt) error {
435
497
  s.tsw.WriteLiterally(" else ")
436
498
  switch elseStmt := exp.Else.(type) {
437
499
  case *ast.BlockStmt:
500
+ // Always pass false for suppressNewline here
438
501
  if err := s.WriteStmtBlock(elseStmt, false); err != nil {
439
502
  return fmt.Errorf("failed to write else block statement in if statement: %w", err)
440
503
  }
441
504
  case *ast.IfStmt:
505
+ // Recursive call handles its own block formatting
442
506
  if err := s.WriteStmtIf(elseStmt); err != nil {
443
507
  return fmt.Errorf("failed to write else if statement in if statement: %w", err)
444
508
  }
@@ -482,6 +546,16 @@ func (c *GoToTSCompiler) WriteStmtBlock(exp *ast.BlockStmt, suppressNewline bool
482
546
  c.tsw.WriteLine("{")
483
547
  c.tsw.Indent(1)
484
548
 
549
+ // Add "using" statement if needed
550
+ if c.nextBlockNeedsDefer {
551
+ if c.inAsyncFunction {
552
+ c.tsw.WriteLine("await using __defer = new goscript.AsyncDisposableStack();")
553
+ } else {
554
+ c.tsw.WriteLine("using cleanup = new goscript.DisposableStack();")
555
+ }
556
+ c.nextBlockNeedsDefer = false
557
+ }
558
+
485
559
  // Prepare line info
486
560
  var file *token.File
487
561
  if c.pkg != nil && c.pkg.Fset != nil && exp.Lbrace.IsValid() {
@@ -732,43 +806,50 @@ func (c *GoToTSCompiler) writeChannelReceiveWithOk(lhs []ast.Expr, unaryExpr *as
732
806
  return fmt.Errorf("unhandled LHS expression type for ok in channel receive: %T", lhs[1])
733
807
  }
734
808
 
735
- // Generate temporary variable for the result
736
- resultVar := c.newTempVar()
737
- c.tsw.WriteLiterally("const ")
738
- c.tsw.WriteLiterally(resultVar)
739
- c.tsw.WriteLiterally(" = await ")
740
- if err := c.WriteValueExpr(unaryExpr.X); err != nil { // Channel expression
741
- return fmt.Errorf("failed to write channel expression in receive: %w", err)
809
+ // Generate destructuring assignment/declaration for val, ok := <-channel
810
+ keyword := ""
811
+ if tok == token.DEFINE {
812
+ keyword = "const " // Use const for destructuring declaration
742
813
  }
743
- c.tsw.WriteLiterally(".receiveWithOk()")
744
- c.tsw.WriteLine("")
745
814
 
746
- // Assign to variables, declaring if needed (tok == token.DEFINE)
747
- assignOrDeclare := func(varName string, isBlank bool, valueSource string) error {
748
- if !isBlank {
749
- if tok == token.DEFINE {
750
- // Check if the variable is already declared in the current scope to avoid redeclaration error
751
- // This requires scope tracking, which is complex. For now, assume := might redeclare.
752
- // A safer approach might be to always assign, assuming prior declaration or handling scope elsewhere.
753
- // Let's stick with 'let' for := for now, acknowledging potential issues.
754
- c.tsw.WriteLiterally("let ")
815
+ // Build the destructuring pattern, handling blank identifiers correctly for TS
816
+ patternParts := []string{}
817
+ if !valueIsBlank {
818
+ // Map the 'value' field to the Go variable name
819
+ patternParts = append(patternParts, fmt.Sprintf("value: %s", valueName))
820
+ } else {
821
+ // If both are blank, just await the call and return
822
+ if okIsBlank {
823
+ c.tsw.WriteLiterally("await ")
824
+ if err := c.WriteValueExpr(unaryExpr.X); err != nil { // Channel expression
825
+ return fmt.Errorf("failed to write channel expression in receive: %w", err)
755
826
  }
756
- c.tsw.WriteLiterally(varName)
757
- c.tsw.WriteLiterally(" = ")
758
- c.tsw.WriteLiterally(resultVar)
759
- c.tsw.WriteLiterally(".")
760
- c.tsw.WriteLiterally(valueSource)
827
+ c.tsw.WriteLiterally(".receiveWithOk()")
761
828
  c.tsw.WriteLine("")
829
+ return nil // Nothing to assign
762
830
  }
763
- return nil
831
+ // Only value is blank, need to map 'ok' property
832
+ patternParts = append(patternParts, fmt.Sprintf("ok: %s", okName))
764
833
  }
765
834
 
766
- if err := assignOrDeclare(valueName, valueIsBlank, "value"); err != nil {
767
- return err
835
+ if !okIsBlank && !valueIsBlank { // Both are present
836
+ patternParts = append(patternParts, fmt.Sprintf("ok: %s", okName))
837
+ } else if !okIsBlank && valueIsBlank { // Only ok is present (already handled above)
838
+ // No need to add ok again
768
839
  }
769
- if err := assignOrDeclare(okName, okIsBlank, "ok"); err != nil {
770
- return err
840
+ // If both are blank, patternParts remains empty, handled earlier.
841
+
842
+ destructuringPattern := fmt.Sprintf("{ %s }", strings.Join(patternParts, ", "))
843
+
844
+ // Write the destructuring assignment/declaration
845
+ c.tsw.WriteLiterally(keyword) // "const " or ""
846
+ c.tsw.WriteLiterally(destructuringPattern)
847
+ c.tsw.WriteLiterally(" = await ")
848
+ if err := c.WriteValueExpr(unaryExpr.X); err != nil { // Channel expression
849
+ return fmt.Errorf("failed to write channel expression in receive: %w", err)
771
850
  }
851
+ c.tsw.WriteLiterally(".receiveWithOk()")
852
+ c.tsw.WriteLine("")
772
853
 
773
854
  return nil
774
855
  }
@@ -1495,27 +1576,22 @@ func (c *GoToTSCompiler) writeTypeAssertion(lhs []ast.Expr, typeAssertExpr *ast.
1495
1576
 
1496
1577
  // Generate the destructuring assignment
1497
1578
  if tok == token.DEFINE {
1498
- // Use 'let' for :=
1499
1579
  c.tsw.WriteLiterally("let ")
1580
+ } else {
1581
+ // We must wrap in parenthesis.
1582
+ c.tsw.WriteLiterally("(")
1500
1583
  }
1501
1584
 
1502
1585
  c.tsw.WriteLiterally("{ ")
1503
- // Write value part of destructuring, handling blank identifier
1504
- c.tsw.WriteLiterally("value: ")
1505
- if valueIsBlank {
1506
- c.tsw.WriteLiterally("_")
1507
- } else {
1508
- c.tsw.WriteLiterally(valueName)
1586
+ // Dynamically build the destructuring pattern
1587
+ parts := []string{}
1588
+ if !valueIsBlank {
1589
+ parts = append(parts, fmt.Sprintf("value: %s", valueName))
1509
1590
  }
1510
- c.tsw.WriteLiterally(", ")
1511
-
1512
- // Write ok part of destructuring, handling blank identifier
1513
- c.tsw.WriteLiterally("ok: ")
1514
- if okIsBlank {
1515
- c.tsw.WriteLiterally("_")
1516
- } else {
1517
- c.tsw.WriteLiterally(okName)
1591
+ if !okIsBlank {
1592
+ parts = append(parts, fmt.Sprintf("ok: %s", okName))
1518
1593
  }
1594
+ c.tsw.WriteLiterally(strings.Join(parts, ", "))
1519
1595
  c.tsw.WriteLiterally(" } = goscript.typeAssert<")
1520
1596
 
1521
1597
  // Write the asserted type for the generic
@@ -1529,6 +1605,11 @@ func (c *GoToTSCompiler) writeTypeAssertion(lhs []ast.Expr, typeAssertExpr *ast.
1529
1605
  c.tsw.WriteLiterally(", ")
1530
1606
  c.tsw.WriteLiterally(fmt.Sprintf("'%s'", typeName))
1531
1607
  c.tsw.WriteLiterally(")")
1608
+
1609
+ if tok != token.DEFINE {
1610
+ c.tsw.WriteLiterally(")")
1611
+ }
1612
+
1532
1613
  c.tsw.WriteLine("") // Add newline after the statement
1533
1614
 
1534
1615
  return nil
@@ -29,6 +29,7 @@ func NewCompiler(conf *Config, le *logrus.Entry, opts *packages.Config) (*Compil
29
29
  opts.Tests = false
30
30
  opts.Env = append(opts.Env, "GOOS=js", "GOARCH=wasm")
31
31
  opts.Dir = conf.Dir
32
+ opts.BuildFlags = conf.BuildFlags
32
33
 
33
34
  // NeedName adds Name and PkgPath.
34
35
  // NeedFiles adds GoFiles and OtherFiles.
@@ -15,6 +15,8 @@ type Config struct {
15
15
  Dir string
16
16
  // OutputPathRoot is the output path root.
17
17
  OutputPathRoot string
18
+ // BuildFlags are the Go build flags (tags) to use during analysis.
19
+ BuildFlags []string
18
20
  }
19
21
 
20
22
  // Validate checks the config.
@@ -69,7 +69,7 @@ func (c *FileCompiler) Compile(ctx context.Context) error {
69
69
  goWriter := NewGoToTSCompiler(c.codeWriter, c.pkg, cmap)
70
70
 
71
71
  // Add import for the goscript runtime using namespace import and alias
72
- c.codeWriter.WriteLine("import * as goscript from \"@go/builtin\";")
72
+ c.codeWriter.WriteLine("import * as goscript from \"@goscript/builtin\";")
73
73
  c.codeWriter.WriteLine("") // Add a newline after the import
74
74
 
75
75
  if err := goWriter.WriteDecls(f.Decls); err != nil {
@@ -5,7 +5,7 @@ import * as fs from "fs/promises";
5
5
 
6
6
  const exampleDir = path.resolve(__dirname, "../example/simple");
7
7
  const outputDir = path.join(exampleDir, "output"); // Use a separate output dir for tests
8
- const expectedOutputFile = path.join(outputDir, "@go", "example", "main.gs.ts");
8
+ const expectedOutputFile = path.join(outputDir, "@goscript", "example", "main.gs.ts");
9
9
 
10
10
  describe("GoScript Compiler API", () => {
11
11
  // Clean up before and after tests
@@ -13,7 +13,7 @@ func translateGoPathToTypescriptPath(goImportPath string) string {
13
13
  if strings.HasPrefix(goImportPath, typeScriptGoStubPrefix) {
14
14
  return goImportPath[len(typeScriptGoStubPrefix):]
15
15
  }
16
- return fmt.Sprintf("@go/%s", goImportPath)
16
+ return fmt.Sprintf("@goscript/%s", goImportPath)
17
17
  }
18
18
 
19
19
  // packageNameFromGoPath attempts to determine the package name from the last segment of the go path.
@@ -10,6 +10,7 @@ var tokenMap = map[token.Token]string{
10
10
  token.MUL: "*",
11
11
  token.QUO: "/",
12
12
  token.REM: "%",
13
+ token.AND: "&",
13
14
  token.OR: "|",
14
15
  token.XOR: "^",
15
16
  token.SHL: "<<",
@@ -30,7 +30,7 @@ func (w *TSCodeWriter) WriteLinePreamble() {
30
30
 
31
31
  // WriteLine writes a line of code to the output.
32
32
  func (w *TSCodeWriter) WriteLine(line string) {
33
- if w.lineWritten {
33
+ if line != "" && w.lineWritten {
34
34
  w.WriteLinePreamble()
35
35
  }
36
36
  w.w.Write([]byte(line)) //nolint:errcheck
@@ -7,6 +7,20 @@
7
7
  export declare const makeSlice: <T>(len: number, cap?: number) => Array<T> & {
8
8
  __capacity?: number;
9
9
  };
10
+ /**
11
+ * Creates a new slice header that shares the backing array.
12
+ * Arguments mirror Go semantics; omitted indices are undefined.
13
+ *
14
+ * @param arr The original slice/array produced by makeSlice or another slice
15
+ * @param low Starting index (defaults to 0)
16
+ * @param high Ending index (defaults to arr.length)
17
+ * @param max Capacity limit (defaults to original capacity)
18
+ */
19
+ export declare const slice: <T>(arr: Array<T> & {
20
+ __capacity?: number;
21
+ }, low?: number, high?: number, max?: number) => Array<T> & {
22
+ __capacity?: number;
23
+ };
10
24
  /**
11
25
  * Creates a new map (TypeScript Map).
12
26
  * @returns A new TypeScript Map.
@@ -38,6 +52,12 @@ export type Error = {
38
52
  * @returns An array of numbers representing the Unicode code points.
39
53
  */
40
54
  export declare const stringToRunes: (str: string) => number[];
55
+ /**
56
+ * Converts an array of Unicode code points (runes) to a string.
57
+ * @param runes The input array of numbers representing Unicode code points.
58
+ * @returns The resulting string.
59
+ */
60
+ export declare const runesToString: (runes: number[]) => string;
41
61
  /**
42
62
  * Gets a value from a map, with a default value if the key doesn't exist.
43
63
  * @param map The map to get from.
@@ -74,7 +94,11 @@ export declare const mapHas: <K, V>(map: Map<K, V>, key: K) => boolean;
74
94
  * @param elements The elements to append.
75
95
  * @returns The modified slice (TypeScript array).
76
96
  */
77
- export declare const append: <T>(slice: Array<T>, ...elements: T[]) => Array<T>;
97
+ export declare const append: <T>(slice: Array<T> & {
98
+ __capacity?: number;
99
+ }, ...elements: T[]) => Array<T> & {
100
+ __capacity?: number;
101
+ };
78
102
  /**
79
103
  * Represents the kinds of Go types that can be registered at runtime.
80
104
  */
@@ -221,3 +245,41 @@ export declare function selectStatement<T>(cases: SelectCase<T>[], hasDefault?:
221
245
  * @returns A new channel instance.
222
246
  */
223
247
  export declare const makeChannel: <T>(bufferSize: number, zeroValue: T) => Channel<T>;
248
+ /**
249
+ * DisposableStack manages synchronous disposable resources, mimicking Go's defer behavior.
250
+ * Functions added via `defer` are executed in LIFO order when the stack is disposed.
251
+ * Implements the `Disposable` interface for use with `using` declarations.
252
+ */
253
+ export declare class DisposableStack implements Disposable {
254
+ #private;
255
+ /**
256
+ * Adds a function to be executed when the stack is disposed.
257
+ * @param fn The function to defer.
258
+ */
259
+ defer(fn: () => void): void;
260
+ /**
261
+ * Disposes of the resources in the stack by executing the deferred functions
262
+ * in Last-In, First-Out (LIFO) order.
263
+ * If a deferred function throws an error, disposal stops, and the error is rethrown,
264
+ * similar to Go's panic behavior during defer execution.
265
+ */
266
+ [Symbol.dispose](): void;
267
+ }
268
+ /**
269
+ * AsyncDisposableStack manages asynchronous disposable resources, mimicking Go's defer behavior.
270
+ * Functions added via `defer` are executed sequentially in LIFO order when the stack is disposed.
271
+ * Implements the `AsyncDisposable` interface for use with `await using` declarations.
272
+ */
273
+ export declare class AsyncDisposableStack implements AsyncDisposable {
274
+ #private;
275
+ /**
276
+ * Adds a synchronous or asynchronous function to be executed when the stack is disposed.
277
+ * @param fn The function to defer. Can return void or a Promise<void>.
278
+ */
279
+ defer(fn: () => Promise<void> | void): void;
280
+ /**
281
+ * Asynchronously disposes of the resources in the stack by executing the deferred functions
282
+ * sequentially in Last-In, First-Out (LIFO) order. It awaits each function if it returns a promise.
283
+ */
284
+ [Symbol.asyncDispose](): Promise<void>;
285
+ }
@@ -9,6 +9,25 @@ export const makeSlice = (len, cap) => {
9
9
  slice.__capacity = cap !== undefined ? cap : len;
10
10
  return slice;
11
11
  };
12
+ /**
13
+ * Creates a new slice header that shares the backing array.
14
+ * Arguments mirror Go semantics; omitted indices are undefined.
15
+ *
16
+ * @param arr The original slice/array produced by makeSlice or another slice
17
+ * @param low Starting index (defaults to 0)
18
+ * @param high Ending index (defaults to arr.length)
19
+ * @param max Capacity limit (defaults to original capacity)
20
+ */
21
+ export const slice = (arr, low, high, max) => {
22
+ const start = low ?? 0;
23
+ const origLen = arr.length;
24
+ const origCap = arr.__capacity !== undefined ? arr.__capacity : origLen;
25
+ const end = high !== undefined ? high : origLen;
26
+ const newCap = max !== undefined ? max - start : origCap - start;
27
+ const newArr = arr.slice(start, end);
28
+ newArr.__capacity = newCap;
29
+ return newArr;
30
+ };
12
31
  /**
13
32
  * Creates a new map (TypeScript Map).
14
33
  * @returns A new TypeScript Map.
@@ -46,6 +65,14 @@ export const cap = (slice) => {
46
65
  export const stringToRunes = (str) => {
47
66
  return Array.from(str).map((c) => c.codePointAt(0) || 0);
48
67
  };
68
+ /**
69
+ * Converts an array of Unicode code points (runes) to a string.
70
+ * @param runes The input array of numbers representing Unicode code points.
71
+ * @returns The resulting string.
72
+ */
73
+ export const runesToString = (runes) => {
74
+ return String.fromCharCode(...runes);
75
+ };
49
76
  /**
50
77
  * Gets a value from a map, with a default value if the key doesn't exist.
51
78
  * @param map The map to get from.
@@ -92,6 +119,9 @@ export const mapHas = (map, key) => {
92
119
  */
93
120
  export const append = (slice, ...elements) => {
94
121
  slice.push(...elements);
122
+ if (slice.__capacity !== undefined && slice.length > slice.__capacity) {
123
+ slice.__capacity = slice.length;
124
+ }
95
125
  return slice;
96
126
  };
97
127
  /**
@@ -506,4 +536,55 @@ export async function selectStatement(cases, hasDefault = false) {
506
536
  export const makeChannel = (bufferSize, zeroValue) => {
507
537
  return new BufferedChannel(bufferSize, zeroValue);
508
538
  };
539
+ /**
540
+ * DisposableStack manages synchronous disposable resources, mimicking Go's defer behavior.
541
+ * Functions added via `defer` are executed in LIFO order when the stack is disposed.
542
+ * Implements the `Disposable` interface for use with `using` declarations.
543
+ */
544
+ export class DisposableStack {
545
+ #stack = [];
546
+ /**
547
+ * Adds a function to be executed when the stack is disposed.
548
+ * @param fn The function to defer.
549
+ */
550
+ defer(fn) { this.#stack.push(fn); }
551
+ /**
552
+ * Disposes of the resources in the stack by executing the deferred functions
553
+ * in Last-In, First-Out (LIFO) order.
554
+ * If a deferred function throws an error, disposal stops, and the error is rethrown,
555
+ * similar to Go's panic behavior during defer execution.
556
+ */
557
+ [Symbol.dispose]() {
558
+ // Emulate Go: if a deferred throws, stop and rethrow
559
+ while (this.#stack.length) {
560
+ const fn = this.#stack.pop();
561
+ fn();
562
+ }
563
+ }
564
+ }
565
+ /**
566
+ * AsyncDisposableStack manages asynchronous disposable resources, mimicking Go's defer behavior.
567
+ * Functions added via `defer` are executed sequentially in LIFO order when the stack is disposed.
568
+ * Implements the `AsyncDisposable` interface for use with `await using` declarations.
569
+ */
570
+ export class AsyncDisposableStack {
571
+ #stack = [];
572
+ /**
573
+ * Adds a synchronous or asynchronous function to be executed when the stack is disposed.
574
+ * @param fn The function to defer. Can return void or a Promise<void>.
575
+ */
576
+ defer(fn) {
577
+ this.#stack.push(fn);
578
+ }
579
+ /**
580
+ * Asynchronously disposes of the resources in the stack by executing the deferred functions
581
+ * sequentially in Last-In, First-Out (LIFO) order. It awaits each function if it returns a promise.
582
+ */
583
+ async [Symbol.asyncDispose]() {
584
+ // Execute in LIFO order, awaiting each potentially async function
585
+ for (let i = this.#stack.length - 1; i >= 0; --i) {
586
+ await this.#stack[i]();
587
+ }
588
+ }
589
+ }
509
590
  //# sourceMappingURL=builtin.js.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  // Generated file based on async_basic.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
- import * as goscript from "@go/builtin";
3
+ import * as goscript from "@goscript/builtin";
4
4
  // This function receives from a channel, making it async.
5
5
  async function receiveFromChan(ch) {
6
6
  let val = await ch.receive(); // This operation makes the function async
@@ -1 +1 @@
1
- {"version":3,"file":"async_basic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/async_basic/async_basic.gs.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,0DAA0D;AAC1D,KAAK,UAAU,eAAe,CAAC,EAA4B;IAC1D,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA,CAAC,0CAA0C;IACvE,OAAO,GAAG,CAAA;AACX,CAAC;AAED,8DAA8D;AAC9D,KAAK,UAAU,MAAM,CAAC,EAA4B;IACjD,kDAAkD;IAClD,IAAI,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAA;IACtC,OAAO,MAAM,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,4BAA4B;IAC5B,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/C,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAErB,iCAAiC;IACjC,IAAI,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA,CAAC,sBAAsB;IAE/C,MAAM,CAAC,KAAK,EAAE,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"async_basic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/async_basic/async_basic.gs.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,0DAA0D;AAC1D,KAAK,UAAU,eAAe,CAAC,EAA4B;IAC1D,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA,CAAC,0CAA0C;IACvE,OAAO,GAAG,CAAA;AACX,CAAC;AAED,8DAA8D;AAC9D,KAAK,UAAU,MAAM,CAAC,EAA4B;IACjD,kDAAkD;IAClD,IAAI,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAA;IACtC,OAAO,MAAM,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,4BAA4B;IAC5B,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/C,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAErB,iCAAiC;IACjC,IAAI,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA,CAAC,sBAAsB;IAE/C,MAAM,CAAC,KAAK,EAAE,CAAA;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;