goscript 0.0.7 → 0.0.10
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 +13 -5
- package/builtin/builtin.ts +180 -0
- package/compiler/compile_expr.go +119 -25
- package/compiler/compile_spec.go +175 -2
- package/compiler/compile_stmt.go +99 -69
- package/compiler/writer.go +2 -2
- package/dist/builtin/builtin.d.ts +55 -0
- package/dist/builtin/builtin.js +126 -0
- package/dist/builtin/builtin.js.map +1 -1
- package/dist/compliance/tests/array_literal/array_literal.gs.js +1 -0
- package/dist/compliance/tests/array_literal/array_literal.gs.js.map +1 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +4 -0
- 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 +3 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -1
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.d.ts +1 -0
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +37 -0
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +1 -0
- package/dist/compliance/tests/float64/float64.gs.js +1 -0
- package/dist/compliance/tests/float64/float64.gs.js.map +1 -1
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.d.ts +1 -0
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js +11 -0
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js.map +1 -0
- package/dist/compliance/tests/func_literal/func_literal.gs.js.map +1 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +2 -0
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +4 -0
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.d.ts +1 -0
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +34 -0
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +1 -0
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +8 -2
- 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 +6 -2
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +3 -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 +3 -0
- 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 +3 -0
- 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 +3 -0
- 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 +3 -0
- 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 +3 -0
- 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 +3 -0
- 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 +3 -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 +17 -16
- 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 +13 -13
- 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 +119 -119
- 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 +3 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -1
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +1 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +3 -0
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +3 -0
- 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 +3 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -1
- package/package.json +2 -2
package/compiler/compile_stmt.go
CHANGED
|
@@ -136,25 +136,22 @@ func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
|
|
|
136
136
|
// This is our implementation of the select statement, which will use Promise.race
|
|
137
137
|
// to achieve the same semantics as Go's select statement.
|
|
138
138
|
|
|
139
|
-
// Create an array to hold all the select cases
|
|
140
|
-
tempArrayName := c.newTempVar()
|
|
141
|
-
c.tsw.WriteLiterally("const ")
|
|
142
|
-
c.tsw.WriteLiterally(tempArrayName)
|
|
143
|
-
c.tsw.WriteLiterally(": goscript.SelectCase<any>[] = []") // Array of SelectCase objects
|
|
144
|
-
c.tsw.WriteLine("")
|
|
145
|
-
|
|
146
139
|
// Variable to track whether we have a default case
|
|
147
140
|
hasDefault := false
|
|
148
141
|
|
|
149
|
-
//
|
|
142
|
+
// Start the selectStatement call and the array literal
|
|
143
|
+
c.tsw.WriteLiterally("await goscript.selectStatement(")
|
|
144
|
+
c.tsw.WriteLine("[") // Put bracket on new line
|
|
145
|
+
c.tsw.Indent(1)
|
|
146
|
+
|
|
147
|
+
// For each case clause, generate a SelectCase object directly into the array literal
|
|
150
148
|
for i, stmt := range exp.Body.List {
|
|
151
149
|
if commClause, ok := stmt.(*ast.CommClause); ok {
|
|
152
150
|
if commClause.Comm == nil {
|
|
153
151
|
// This is a default case
|
|
154
152
|
hasDefault = true
|
|
155
153
|
// Add a SelectCase object for the default case with a special ID
|
|
156
|
-
c.tsw.WriteLiterally(
|
|
157
|
-
c.tsw.WriteLiterally(".push({")
|
|
154
|
+
c.tsw.WriteLiterally("{") // Start object literal
|
|
158
155
|
c.tsw.Indent(1)
|
|
159
156
|
c.tsw.WriteLine("")
|
|
160
157
|
c.tsw.WriteLiterally("id: -1,") // Special ID for default case
|
|
@@ -175,7 +172,7 @@ func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
|
|
|
175
172
|
c.tsw.Indent(-1)
|
|
176
173
|
c.tsw.WriteLine("}") // Close onSelected handler
|
|
177
174
|
c.tsw.Indent(-1)
|
|
178
|
-
c.tsw.
|
|
175
|
+
c.tsw.WriteLiterally("},") // Close SelectCase object and add comma
|
|
179
176
|
c.tsw.WriteLine("")
|
|
180
177
|
|
|
181
178
|
continue
|
|
@@ -185,8 +182,7 @@ func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
|
|
|
185
182
|
caseID := i
|
|
186
183
|
|
|
187
184
|
// Start writing the SelectCase object
|
|
188
|
-
c.tsw.WriteLiterally(
|
|
189
|
-
c.tsw.WriteLiterally(".push({")
|
|
185
|
+
c.tsw.WriteLiterally("{") // Start object literal
|
|
190
186
|
c.tsw.Indent(1)
|
|
191
187
|
c.tsw.WriteLine("")
|
|
192
188
|
c.tsw.WriteLiterally(fmt.Sprintf("id: %d,", caseID))
|
|
@@ -297,7 +293,7 @@ func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
|
|
|
297
293
|
c.tsw.Indent(-1)
|
|
298
294
|
c.tsw.WriteLine("}") // Close onSelected handler
|
|
299
295
|
c.tsw.Indent(-1)
|
|
300
|
-
c.tsw.
|
|
296
|
+
c.tsw.WriteLiterally("},") // Close SelectCase object and add comma
|
|
301
297
|
c.tsw.WriteLine("")
|
|
302
298
|
|
|
303
299
|
} else {
|
|
@@ -305,12 +301,9 @@ func (c *GoToTSCompiler) WriteStmtSelect(exp *ast.SelectStmt) error {
|
|
|
305
301
|
}
|
|
306
302
|
}
|
|
307
303
|
|
|
308
|
-
//
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
c.tsw.WriteLiterally("await goscript.selectStatement(")
|
|
312
|
-
c.tsw.WriteLiterally(tempArrayName)
|
|
313
|
-
c.tsw.WriteLiterally(", ")
|
|
304
|
+
// Close the array literal and the selectStatement call
|
|
305
|
+
c.tsw.Indent(-1)
|
|
306
|
+
c.tsw.WriteLiterally("], ")
|
|
314
307
|
c.tsw.WriteLiterally(fmt.Sprintf("%t", hasDefault))
|
|
315
308
|
c.tsw.WriteLiterally(")")
|
|
316
309
|
c.tsw.WriteLine("")
|
|
@@ -782,32 +775,6 @@ func (c *GoToTSCompiler) writeChannelReceiveWithOk(lhs []ast.Expr, unaryExpr *as
|
|
|
782
775
|
|
|
783
776
|
func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
|
|
784
777
|
// writeTypeAssertion handles multi-variable assignment from a type assertion.
|
|
785
|
-
writeTypeAssertion := func(typeAssertExpr *ast.TypeAssertExpr) error {
|
|
786
|
-
interfaceExpr := typeAssertExpr.X
|
|
787
|
-
assertedType := typeAssertExpr.Type
|
|
788
|
-
|
|
789
|
-
// Write the TypeScript code for the type assertion.
|
|
790
|
-
c.tsw.WriteLiterally("let ok: boolean = (")
|
|
791
|
-
if err := c.WriteValueExpr(interfaceExpr); err != nil {
|
|
792
|
-
return fmt.Errorf("failed to write interface expression in type assertion (ok check): %w", err)
|
|
793
|
-
}
|
|
794
|
-
c.tsw.WriteLiterally(" as any) satisfies ")
|
|
795
|
-
c.WriteTypeExpr(assertedType)
|
|
796
|
-
c.tsw.WriteLine("")
|
|
797
|
-
|
|
798
|
-
c.tsw.WriteLiterally("let assertedValue: ")
|
|
799
|
-
c.WriteTypeExpr(assertedType)
|
|
800
|
-
c.tsw.WriteLiterally(" | null = ok ? (")
|
|
801
|
-
if err := c.WriteValueExpr(interfaceExpr); err != nil {
|
|
802
|
-
return fmt.Errorf("failed to write interface expression in type assertion (value assignment): %w", err)
|
|
803
|
-
}
|
|
804
|
-
c.tsw.WriteLiterally(" as ")
|
|
805
|
-
c.WriteTypeExpr(assertedType)
|
|
806
|
-
c.tsw.WriteLiterally(") : null")
|
|
807
|
-
c.tsw.WriteLine("")
|
|
808
|
-
|
|
809
|
-
return nil
|
|
810
|
-
}
|
|
811
778
|
|
|
812
779
|
// writeMultiVarAssignFromCall handles multi-variable assignment from a single function call.
|
|
813
780
|
writeMultiVarAssignFromCall := func(lhs []ast.Expr, callExpr *ast.CallExpr, tok token.Token) error {
|
|
@@ -989,7 +956,7 @@ func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
|
|
|
989
956
|
if len(exp.Lhs) > 1 && len(exp.Rhs) == 1 {
|
|
990
957
|
rhsExpr := exp.Rhs[0]
|
|
991
958
|
if typeAssertExpr, ok := rhsExpr.(*ast.TypeAssertExpr); ok {
|
|
992
|
-
return writeTypeAssertion(typeAssertExpr)
|
|
959
|
+
return c.writeTypeAssertion(exp.Lhs, typeAssertExpr, exp.Tok)
|
|
993
960
|
} else if indexExpr, ok := rhsExpr.(*ast.IndexExpr); ok {
|
|
994
961
|
// Check if this is a map lookup (comma-ok idiom)
|
|
995
962
|
if len(exp.Lhs) == 2 {
|
|
@@ -1465,41 +1432,104 @@ func (c *GoToTSCompiler) WriteStmtRange(exp *ast.RangeStmt) error {
|
|
|
1465
1432
|
return fmt.Errorf("unsupported range loop type: %T", underlying)
|
|
1466
1433
|
}
|
|
1467
1434
|
|
|
1435
|
+
// WriteStmtSend writes a channel send statement (ch <- value).
|
|
1436
|
+
func (c *GoToTSCompiler) WriteStmtSend(exp *ast.SendStmt) error {
|
|
1437
|
+
// Translate ch <- value to await ch.send(value)
|
|
1438
|
+
c.tsw.WriteLiterally("await ")
|
|
1439
|
+
if err := c.WriteValueExpr(exp.Chan); err != nil { // The channel expression
|
|
1440
|
+
return fmt.Errorf("failed to write channel expression in send statement: %w", err)
|
|
1441
|
+
}
|
|
1442
|
+
c.tsw.WriteLiterally(".send(")
|
|
1443
|
+
if err := c.WriteValueExpr(exp.Value); err != nil { // The value expression
|
|
1444
|
+
return fmt.Errorf("failed to write value expression in send statement: %w", err)
|
|
1445
|
+
}
|
|
1446
|
+
c.tsw.WriteLiterally(")")
|
|
1447
|
+
c.tsw.WriteLine("") // Add newline after the statement
|
|
1448
|
+
return nil
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1468
1451
|
// isSlice returns true if the underlying type is a slice.
|
|
1469
1452
|
func isSlice(typ gtypes.Type) bool {
|
|
1470
1453
|
_, ok := typ.(*gtypes.Slice)
|
|
1471
1454
|
return ok
|
|
1472
1455
|
}
|
|
1473
1456
|
|
|
1474
|
-
//
|
|
1475
|
-
func
|
|
1476
|
-
|
|
1477
|
-
|
|
1457
|
+
// writeTypeAssertion handles multi-variable assignment from a type assertion.
|
|
1458
|
+
func (c *GoToTSCompiler) writeTypeAssertion(lhs []ast.Expr, typeAssertExpr *ast.TypeAssertExpr, tok token.Token) error {
|
|
1459
|
+
interfaceExpr := typeAssertExpr.X
|
|
1460
|
+
assertedType := typeAssertExpr.Type
|
|
1461
|
+
|
|
1462
|
+
// Ensure LHS has exactly two expressions (value and ok)
|
|
1463
|
+
if len(lhs) != 2 {
|
|
1464
|
+
return fmt.Errorf("type assertion assignment requires exactly 2 variables on LHS, got %d", len(lhs))
|
|
1478
1465
|
}
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1466
|
+
|
|
1467
|
+
// Get variable names, handling blank identifiers
|
|
1468
|
+
valueIsBlank := false
|
|
1469
|
+
okIsBlank := false
|
|
1470
|
+
var valueName string
|
|
1471
|
+
var okName string
|
|
1472
|
+
|
|
1473
|
+
if valIdent, ok := lhs[0].(*ast.Ident); ok {
|
|
1474
|
+
if valIdent.Name == "_" {
|
|
1475
|
+
valueIsBlank = true
|
|
1476
|
+
} else {
|
|
1477
|
+
valueName = valIdent.Name
|
|
1478
|
+
}
|
|
1479
|
+
} else {
|
|
1480
|
+
return fmt.Errorf("unhandled LHS expression type for value in type assertion: %T", lhs[0])
|
|
1482
1481
|
}
|
|
1483
|
-
|
|
1484
|
-
if
|
|
1485
|
-
|
|
1482
|
+
|
|
1483
|
+
if okIdent, ok := lhs[1].(*ast.Ident); ok {
|
|
1484
|
+
if okIdent.Name == "_" {
|
|
1485
|
+
okIsBlank = true
|
|
1486
|
+
} else {
|
|
1487
|
+
okName = okIdent.Name
|
|
1488
|
+
}
|
|
1489
|
+
} else {
|
|
1490
|
+
return fmt.Errorf("unhandled LHS expression type for ok in type assertion: %T", lhs[1])
|
|
1486
1491
|
}
|
|
1487
|
-
_, isMap := tv.Type.Underlying().(*gtypes.Map)
|
|
1488
|
-
return isMap
|
|
1489
|
-
}
|
|
1490
1492
|
|
|
1491
|
-
//
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
if
|
|
1496
|
-
|
|
1493
|
+
// Get the type name string for the asserted type
|
|
1494
|
+
typeName := c.getTypeNameString(assertedType)
|
|
1495
|
+
|
|
1496
|
+
// Generate the destructuring assignment
|
|
1497
|
+
if tok == token.DEFINE {
|
|
1498
|
+
// Use 'let' for :=
|
|
1499
|
+
c.tsw.WriteLiterally("let ")
|
|
1497
1500
|
}
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
+
|
|
1502
|
+
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)
|
|
1509
|
+
}
|
|
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)
|
|
1501
1518
|
}
|
|
1519
|
+
c.tsw.WriteLiterally(" } = goscript.typeAssert<")
|
|
1520
|
+
|
|
1521
|
+
// Write the asserted type for the generic
|
|
1522
|
+
c.WriteTypeExpr(assertedType)
|
|
1523
|
+
c.tsw.WriteLiterally(">(")
|
|
1524
|
+
|
|
1525
|
+
// Write the interface expression
|
|
1526
|
+
if err := c.WriteValueExpr(interfaceExpr); err != nil {
|
|
1527
|
+
return fmt.Errorf("failed to write interface expression in type assertion call: %w", err)
|
|
1528
|
+
}
|
|
1529
|
+
c.tsw.WriteLiterally(", ")
|
|
1530
|
+
c.tsw.WriteLiterally(fmt.Sprintf("'%s'", typeName))
|
|
1502
1531
|
c.tsw.WriteLiterally(")")
|
|
1503
1532
|
c.tsw.WriteLine("") // Add newline after the statement
|
|
1533
|
+
|
|
1504
1534
|
return nil
|
|
1505
1535
|
}
|
package/compiler/writer.go
CHANGED
|
@@ -54,7 +54,7 @@ func (w *TSCodeWriter) Indent(count int) {
|
|
|
54
54
|
|
|
55
55
|
// WriteImport writes a TypeScript import.
|
|
56
56
|
func (w *TSCodeWriter) WriteImport(symbolName, importPath string) {
|
|
57
|
-
w.WriteLinef("import * as %s from %q
|
|
57
|
+
w.WriteLinef("import * as %s from %q", symbolName, importPath)
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// WriteCommentLine writes a comment as a // line.
|
|
@@ -78,7 +78,7 @@ func (w *TSCodeWriter) WriteLiterally(literal string) {
|
|
|
78
78
|
if w.lineWritten {
|
|
79
79
|
w.WriteLinePreamble()
|
|
80
80
|
}
|
|
81
|
-
w.w.Write([]byte(literal))
|
|
81
|
+
w.w.Write([]byte(literal)) //nolint:errcheck
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
// WriteSectionTail writes the end of a section.
|
|
@@ -26,6 +26,12 @@ export declare const len: <T>(collection: string | Array<T> | Map<unknown, unkno
|
|
|
26
26
|
export declare const cap: <T>(slice: Array<T> & {
|
|
27
27
|
__capacity?: number;
|
|
28
28
|
}) => number;
|
|
29
|
+
/**
|
|
30
|
+
* Represents the Go error type (interface).
|
|
31
|
+
*/
|
|
32
|
+
export type Error = {
|
|
33
|
+
Error(): string;
|
|
34
|
+
} | null;
|
|
29
35
|
/**
|
|
30
36
|
* Converts a string to an array of Unicode code points (runes).
|
|
31
37
|
* @param str The input string.
|
|
@@ -69,6 +75,55 @@ export declare const mapHas: <K, V>(map: Map<K, V>, key: K) => boolean;
|
|
|
69
75
|
* @returns The modified slice (TypeScript array).
|
|
70
76
|
*/
|
|
71
77
|
export declare const append: <T>(slice: Array<T>, ...elements: T[]) => Array<T>;
|
|
78
|
+
/**
|
|
79
|
+
* Represents the kinds of Go types that can be registered at runtime.
|
|
80
|
+
*/
|
|
81
|
+
export declare enum TypeKind {
|
|
82
|
+
Struct = "struct",
|
|
83
|
+
Interface = "interface",
|
|
84
|
+
Basic = "basic",
|
|
85
|
+
Pointer = "pointer",
|
|
86
|
+
Slice = "slice",
|
|
87
|
+
Map = "map",
|
|
88
|
+
Channel = "channel",
|
|
89
|
+
Function = "function"
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Represents type information for a Go type in the runtime.
|
|
93
|
+
*/
|
|
94
|
+
export interface TypeInfo {
|
|
95
|
+
name: string;
|
|
96
|
+
kind: TypeKind;
|
|
97
|
+
zeroValue: any;
|
|
98
|
+
methods?: Set<string>;
|
|
99
|
+
constructor?: new (...args: any[]) => any;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Registers a type with the runtime type system.
|
|
103
|
+
*
|
|
104
|
+
* @param name The name of the type.
|
|
105
|
+
* @param kind The kind of the type.
|
|
106
|
+
* @param zeroValue The zero value for the type.
|
|
107
|
+
* @param methods Optional set of method names for interfaces.
|
|
108
|
+
* @param constructor Optional constructor for structs.
|
|
109
|
+
* @returns The type information object for chaining.
|
|
110
|
+
*/
|
|
111
|
+
export declare const registerType: (name: string, kind: TypeKind, zeroValue: any, methods?: Set<string>, constructor?: new (...args: any[]) => any) => TypeInfo;
|
|
112
|
+
/**
|
|
113
|
+
* Represents the result of a type assertion.
|
|
114
|
+
*/
|
|
115
|
+
export interface TypeAssertResult<T> {
|
|
116
|
+
value: T;
|
|
117
|
+
ok: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Performs a type assertion at runtime.
|
|
121
|
+
*
|
|
122
|
+
* @param value The value to assert.
|
|
123
|
+
* @param typeName The name of the target type.
|
|
124
|
+
* @returns An object with the asserted value and whether the assertion succeeded.
|
|
125
|
+
*/
|
|
126
|
+
export declare function typeAssert<T>(value: any, typeName: string): TypeAssertResult<T>;
|
|
72
127
|
/**
|
|
73
128
|
* Represents the result of a channel receive operation with 'ok' value
|
|
74
129
|
*/
|
package/dist/builtin/builtin.js
CHANGED
|
@@ -94,6 +94,132 @@ export const append = (slice, ...elements) => {
|
|
|
94
94
|
slice.push(...elements);
|
|
95
95
|
return slice;
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* Represents the kinds of Go types that can be registered at runtime.
|
|
99
|
+
*/
|
|
100
|
+
export var TypeKind;
|
|
101
|
+
(function (TypeKind) {
|
|
102
|
+
TypeKind["Struct"] = "struct";
|
|
103
|
+
TypeKind["Interface"] = "interface";
|
|
104
|
+
TypeKind["Basic"] = "basic";
|
|
105
|
+
TypeKind["Pointer"] = "pointer";
|
|
106
|
+
TypeKind["Slice"] = "slice";
|
|
107
|
+
TypeKind["Map"] = "map";
|
|
108
|
+
TypeKind["Channel"] = "channel";
|
|
109
|
+
TypeKind["Function"] = "function";
|
|
110
|
+
})(TypeKind || (TypeKind = {}));
|
|
111
|
+
// Registry to store runtime type information
|
|
112
|
+
const typeRegistry = new Map();
|
|
113
|
+
/**
|
|
114
|
+
* Registers a type with the runtime type system.
|
|
115
|
+
*
|
|
116
|
+
* @param name The name of the type.
|
|
117
|
+
* @param kind The kind of the type.
|
|
118
|
+
* @param zeroValue The zero value for the type.
|
|
119
|
+
* @param methods Optional set of method names for interfaces.
|
|
120
|
+
* @param constructor Optional constructor for structs.
|
|
121
|
+
* @returns The type information object for chaining.
|
|
122
|
+
*/
|
|
123
|
+
export const registerType = (name, kind, zeroValue, methods, constructor) => {
|
|
124
|
+
const typeInfo = {
|
|
125
|
+
name,
|
|
126
|
+
kind,
|
|
127
|
+
zeroValue,
|
|
128
|
+
methods,
|
|
129
|
+
constructor,
|
|
130
|
+
};
|
|
131
|
+
typeRegistry.set(name, typeInfo);
|
|
132
|
+
return typeInfo;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Performs a type assertion at runtime.
|
|
136
|
+
*
|
|
137
|
+
* @param value The value to assert.
|
|
138
|
+
* @param typeName The name of the target type.
|
|
139
|
+
* @returns An object with the asserted value and whether the assertion succeeded.
|
|
140
|
+
*/
|
|
141
|
+
export function typeAssert(value, typeName) {
|
|
142
|
+
// Get the type information from the registry
|
|
143
|
+
const typeInfo = typeRegistry.get(typeName);
|
|
144
|
+
if (!typeInfo) {
|
|
145
|
+
console.warn(`Type information for '${typeName}' not found in registry.`);
|
|
146
|
+
return { value: null, ok: false };
|
|
147
|
+
}
|
|
148
|
+
// If value is null or undefined, assertion fails
|
|
149
|
+
if (value === null || value === undefined) {
|
|
150
|
+
return { value: typeInfo.zeroValue, ok: false };
|
|
151
|
+
}
|
|
152
|
+
// Check based on the kind of the target type
|
|
153
|
+
switch (typeInfo.kind) {
|
|
154
|
+
case TypeKind.Struct:
|
|
155
|
+
// For structs, use instanceof with the constructor
|
|
156
|
+
if (typeInfo.constructor && value instanceof typeInfo.constructor) {
|
|
157
|
+
return { value: value, ok: true };
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
case TypeKind.Interface:
|
|
161
|
+
// For interfaces, check if the value has all the required methods
|
|
162
|
+
if (typeInfo.methods && typeof value === 'object') {
|
|
163
|
+
const allMethodsPresent = Array.from(typeInfo.methods).every((method) => typeof value[method] === 'function');
|
|
164
|
+
if (allMethodsPresent) {
|
|
165
|
+
return { value: value, ok: true };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
169
|
+
case TypeKind.Basic:
|
|
170
|
+
// For basic types, check if the value matches the expected JavaScript type
|
|
171
|
+
// This is a simple check for common basic types
|
|
172
|
+
const basicType = typeof value;
|
|
173
|
+
if (basicType === 'string' ||
|
|
174
|
+
basicType === 'number' ||
|
|
175
|
+
basicType === 'boolean') {
|
|
176
|
+
return { value: value, ok: true };
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
case TypeKind.Pointer:
|
|
180
|
+
// For pointers, check if value is not null or undefined
|
|
181
|
+
// In Go, pointers can be nil which we represent as null/undefined in TS
|
|
182
|
+
if (value !== null && value !== undefined) {
|
|
183
|
+
return { value: value, ok: true };
|
|
184
|
+
}
|
|
185
|
+
break;
|
|
186
|
+
case TypeKind.Slice:
|
|
187
|
+
// For slices, check if the value is an array
|
|
188
|
+
if (Array.isArray(value)) {
|
|
189
|
+
return { value: value, ok: true };
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
case TypeKind.Map:
|
|
193
|
+
// For maps, check if the value is a Map
|
|
194
|
+
if (value instanceof Map) {
|
|
195
|
+
return { value: value, ok: true };
|
|
196
|
+
}
|
|
197
|
+
break;
|
|
198
|
+
case TypeKind.Channel:
|
|
199
|
+
// For channels, check if the value has the required Channel interface methods
|
|
200
|
+
if (typeof value === 'object' &&
|
|
201
|
+
value !== null &&
|
|
202
|
+
'send' in value &&
|
|
203
|
+
'receive' in value &&
|
|
204
|
+
'close' in value &&
|
|
205
|
+
typeof value.send === 'function' &&
|
|
206
|
+
typeof value.receive === 'function' &&
|
|
207
|
+
typeof value.close === 'function') {
|
|
208
|
+
return { value: value, ok: true };
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
case TypeKind.Function:
|
|
212
|
+
// For functions, check if the value is a function
|
|
213
|
+
if (typeof value === 'function') {
|
|
214
|
+
return { value: value, ok: true };
|
|
215
|
+
}
|
|
216
|
+
break;
|
|
217
|
+
default:
|
|
218
|
+
console.warn(`Type assertion for kind '${typeInfo.kind}' not implemented.`);
|
|
219
|
+
}
|
|
220
|
+
// Assertion failed
|
|
221
|
+
return { value: typeInfo.zeroValue, ok: false };
|
|
222
|
+
}
|
|
97
223
|
// A simple implementation of buffered channels
|
|
98
224
|
class BufferedChannel {
|
|
99
225
|
buffer = [];
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array_literal.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/array_literal/array_literal.gs.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,2BAA2B;IAC3B,IAAI,CAAC,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7B,0CAA0C;IAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvB,0DAA0D;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"array_literal.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/array_literal/array_literal.gs.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,2BAA2B;IAC3B,oBAAoB;IACpB,IAAI,CAAC,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7B,0CAA0C;IAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvB,0DAA0D;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC"}
|
package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
// Generated file based on composite_literal_assignment.go
|
|
2
2
|
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
import * as goscript from "@go/builtin";
|
|
3
4
|
class MyStruct {
|
|
4
5
|
MyInt = 0;
|
|
5
6
|
MyString = "";
|
|
7
|
+
//nolint:unused
|
|
6
8
|
myBool = false;
|
|
7
9
|
constructor(init) { if (init)
|
|
8
10
|
Object.assign(this, init); }
|
|
9
11
|
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
12
|
+
// Register this type with the runtime type system
|
|
13
|
+
static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
|
|
10
14
|
}
|
|
11
15
|
export async function main() {
|
|
12
16
|
// === Composite Literal Assignment (Value Copy) ===
|
package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite_literal_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;
|
|
1
|
+
{"version":3,"file":"composite_literal_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAC7B,eAAe;IACP,MAAM,GAAY,KAAK,CAAC;IAEhC,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,oDAAoD;IACpD,wDAAwD;IACxD,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACnE,iDAAiD;IACjD,IAAI,iBAAiB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;IAC7C,iBAAiB,CAAC,QAAQ,GAAG,iCAAiC,CAAA;IAC9D,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,gEAAgE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtG,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAC,mFAAmF,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AAC9H,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// Generated file based on copy_independence.go
|
|
2
2
|
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
import * as goscript from "@go/builtin";
|
|
3
4
|
class MyStruct {
|
|
4
5
|
MyInt = 0;
|
|
5
6
|
MyString = "";
|
|
6
|
-
myBool = false;
|
|
7
7
|
constructor(init) { if (init)
|
|
8
8
|
Object.assign(this, init); }
|
|
9
9
|
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
10
|
+
// Register this type with the runtime type system
|
|
11
|
+
static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
|
|
10
12
|
}
|
|
11
13
|
export async function main() {
|
|
12
14
|
// Setup from previous steps (simplified for this test)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy_independence.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/copy_independence/copy_independence.gs.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,yDAAyD;
|
|
1
|
+
{"version":3,"file":"copy_independence.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/copy_independence/copy_independence.gs.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,uDAAuD;IACvD,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,IAAI,sBAAsB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;IAClD,sBAAsB,CAAC,QAAQ,GAAG,qCAAqC,CAAA;IACvE,IAAI,UAAU,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAA;IAC/C,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAA;IACpC,IAAI,UAAU,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAA;IAC/C,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAA;IACpC,IAAI,WAAW,GAAG,aAAa,CAAA;IAE/B,sCAAsC;IACtC,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,iFAAiF,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACrH,kDAAkD;IAClD,OAAO,CAAC,GAAG,CAAC,mHAAmH,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAClK,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjF,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;AAClF,CAAC"}
|
package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Generated file based on embedded_interface_assertion.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
import * as goscript from "@go/builtin";
|
|
4
|
+
// Register this interface with the runtime type system
|
|
5
|
+
const Reader__typeInfo = goscript.registerType('Reader', goscript.TypeKind.Interface, null, new Set(['Read']), undefined);
|
|
6
|
+
// Register this interface with the runtime type system
|
|
7
|
+
const Closer__typeInfo = goscript.registerType('Closer', goscript.TypeKind.Interface, null, new Set(['Close']), undefined);
|
|
8
|
+
// Register this interface with the runtime type system
|
|
9
|
+
const ReadCloser__typeInfo = goscript.registerType('ReadCloser', goscript.TypeKind.Interface, null, new Set(['Close', 'Read']), undefined);
|
|
10
|
+
class MyStruct {
|
|
11
|
+
Read(p) {
|
|
12
|
+
const m = this;
|
|
13
|
+
return [0, null];
|
|
14
|
+
}
|
|
15
|
+
Close() {
|
|
16
|
+
const m = this;
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
constructor(init) { if (init)
|
|
20
|
+
Object.assign(this, init); }
|
|
21
|
+
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
22
|
+
// Register this type with the runtime type system
|
|
23
|
+
static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['Read', 'Close']), MyStruct);
|
|
24
|
+
}
|
|
25
|
+
export async function main() {
|
|
26
|
+
let rwc;
|
|
27
|
+
let s = new MyStruct({});
|
|
28
|
+
rwc = s.clone();
|
|
29
|
+
let { value: _, ok: ok } = goscript.typeAssert(rwc, 'ReadCloser');
|
|
30
|
+
if (ok) {
|
|
31
|
+
console.log("Embedded interface assertion successful");
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
console.log("Embedded interface assertion failed");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=embedded_interface_assertion.gs.js.map
|
package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedded_interface_assertion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EACjB,SAAS,CACV,CAAC;AAMF,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAClB,SAAS,CACV,CAAC;AAKF,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAChD,YAAY,EACZ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAC1B,SAAS,CACV,CAAC;AAEF,MAAM,QAAQ;IAEN,IAAI,CAAC,CAAW;QACtB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjB,CAAC;IAEM,KAAK;QACX,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1B,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,GAAe,CAAC;IACpB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAI,CAAC,CAAA;IAC1B,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEf,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,GAAG,EAAE,YAAY,CAAC,CAAA;IAC7E,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IACnD,CAAC;AACF,CAAC"}
|