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.
- package/README.md +3 -3
- package/builtin/builtin.go +11 -0
- package/builtin/builtin.ts +170 -65
- package/cmd/goscript/cmd_compile.go +28 -8
- package/compiler/compile.go +42 -34
- package/compiler/compile_decls.go +12 -0
- package/compiler/compile_expr.go +135 -8
- package/compiler/compile_field.go +22 -1
- package/compiler/compile_spec.go +141 -4
- package/compiler/compile_stmt.go +124 -43
- package/compiler/compiler.go +1 -0
- package/compiler/config.go +2 -0
- package/compiler/file_compiler.go +1 -1
- package/compiler/index.test.ts +1 -1
- package/compiler/output_path.go +1 -1
- package/compiler/types/tokens.go +1 -0
- package/compiler/writer.go +1 -1
- package/dist/builtin/builtin.d.ts +63 -1
- package/dist/builtin/builtin.js +81 -0
- package/dist/builtin/builtin.js.map +1 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.js +1 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.js.map +1 -1
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.d.ts +1 -0
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js +82 -0
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js.map +1 -0
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js +1 -1
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +1 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +1 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js +1 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -1
- package/dist/compliance/tests/defer_statement/defer_statement.gs.d.ts +1 -0
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js +75 -0
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js.map +1 -0
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +3 -3
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +1 -1
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.d.ts +1 -0
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js +29 -0
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js.map +1 -0
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.d.ts +1 -0
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js +14 -0
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js.map +1 -0
- package/dist/compliance/tests/for_range/for_range.gs.js +1 -1
- package/dist/compliance/tests/for_range/for_range.gs.js.map +1 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +1 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +1 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.d.ts +1 -0
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js +12 -0
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js.map +1 -0
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +2 -2
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +1 -1
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +3 -3
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -1
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +13 -3
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -1
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.d.ts +1 -0
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js +51 -0
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js.map +1 -0
- package/dist/compliance/tests/map_support/map_support.gs.js +1 -1
- package/dist/compliance/tests/map_support/map_support.gs.js.map +1 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +1 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +1 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +1 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +1 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +1 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +1 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +1 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +1 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +1 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +1 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +1 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +1 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +1 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +1 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +1 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +1 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +1 -1
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +2 -1
- 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
- package/dist/compliance/tests/select_statement/select_statement.gs.js +2 -4
- package/dist/compliance/tests/select_statement/select_statement.gs.js.map +1 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +1 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/slices/slices.gs.js +281 -8
- package/dist/compliance/tests/slices/slices.gs.js.map +1 -1
- package/dist/compliance/tests/string_conversion/string_conversion.gs.d.ts +1 -0
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js +41 -0
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js.map +1 -0
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.d.ts +1 -0
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js +48 -0
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js.map +1 -0
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +1 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -1
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.d.ts +1 -0
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js +26 -0
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js.map +1 -0
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +1 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +1 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +1 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -1
- package/package.json +4 -3
package/compiler/compile_stmt.go
CHANGED
|
@@ -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
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
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
|
-
//
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
767
|
-
|
|
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
|
-
|
|
770
|
-
|
|
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
|
-
//
|
|
1504
|
-
|
|
1505
|
-
if valueIsBlank {
|
|
1506
|
-
|
|
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
|
-
|
|
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
|
package/compiler/compiler.go
CHANGED
|
@@ -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.
|
package/compiler/config.go
CHANGED
|
@@ -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 \"@
|
|
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 {
|
package/compiler/index.test.ts
CHANGED
|
@@ -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, "@
|
|
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
|
package/compiler/output_path.go
CHANGED
|
@@ -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("@
|
|
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.
|
package/compiler/types/tokens.go
CHANGED
package/compiler/writer.go
CHANGED
|
@@ -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
|
|
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
|
+
}
|
package/dist/builtin/builtin.js
CHANGED
|
@@ -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 "@
|
|
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,
|
|
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>;
|