goscript 0.0.6 → 0.0.8
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 +22 -7
- package/builtin/builtin.ts +31 -21
- package/compiler/compile_expr.go +6 -2
- package/compiler/compile_stmt.go +15 -26
- package/dist/builtin/builtin.d.ts +1 -1
- package/dist/builtin/builtin.js +29 -18
- package/dist/builtin/builtin.js.map +1 -1
- package/dist/compliance/tests/array_literal/array_literal.gs.d.ts +1 -0
- package/dist/compliance/tests/array_literal/array_literal.gs.js +14 -0
- package/dist/compliance/tests/array_literal/array_literal.gs.js.map +1 -0
- package/dist/compliance/tests/async_basic/async_basic.gs.d.ts +1 -0
- package/dist/compliance/tests/async_basic/async_basic.gs.js +24 -0
- package/dist/compliance/tests/async_basic/async_basic.gs.js.map +1 -0
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.d.ts +1 -0
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js +16 -0
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js.map +1 -0
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.d.ts +1 -0
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js +14 -0
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js.map +1 -0
- package/dist/compliance/tests/channel_basic/channel_basic.gs.d.ts +1 -0
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js +14 -0
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +1 -0
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.d.ts +1 -0
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +23 -0
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +1 -0
- package/dist/compliance/tests/constants/constants.gs.d.ts +1 -0
- package/dist/compliance/tests/constants/constants.gs.js +16 -0
- package/dist/compliance/tests/constants/constants.gs.js.map +1 -0
- package/dist/compliance/tests/copy_independence/copy_independence.gs.d.ts +1 -0
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js +31 -0
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -0
- package/dist/compliance/tests/float64/float64.gs.d.ts +1 -0
- package/dist/compliance/tests/float64/float64.gs.js +23 -0
- package/dist/compliance/tests/float64/float64.gs.js.map +1 -0
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.d.ts +1 -0
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js +10 -0
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js.map +1 -0
- 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/for_loop_condition_only/main.gs.d.ts +1 -0
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js +10 -0
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js.map +1 -0
- package/dist/compliance/tests/for_range/for_range.gs.d.ts +1 -0
- package/dist/compliance/tests/for_range/for_range.gs.js +39 -0
- package/dist/compliance/tests/for_range/for_range.gs.js.map +1 -0
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.d.ts +1 -0
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js +15 -0
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js.map +1 -0
- package/dist/compliance/tests/func_literal/func_literal.gs.d.ts +1 -0
- package/dist/compliance/tests/func_literal/func_literal.gs.js +10 -0
- package/dist/compliance/tests/func_literal/func_literal.gs.js.map +1 -0
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +10 -0
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +26 -0
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -0
- package/dist/compliance/tests/if_statement/if_statement.gs.d.ts +1 -0
- package/dist/compliance/tests/if_statement/if_statement.gs.js +13 -0
- package/dist/compliance/tests/if_statement/if_statement.gs.js.map +1 -0
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.d.ts +1 -0
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +26 -0
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -0
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.d.ts +1 -0
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +26 -0
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -0
- package/dist/compliance/tests/map_support/map_support.gs.d.ts +1 -0
- package/dist/compliance/tests/map_support/map_support.gs.js +88 -0
- package/dist/compliance/tests/map_support/map_support.gs.js.map +1 -0
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.d.ts +1 -0
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +22 -0
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +1 -0
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.d.ts +1 -0
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +30 -0
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +1 -0
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.d.ts +1 -0
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +19 -0
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +1 -0
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.d.ts +1 -0
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +30 -0
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +1 -0
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.d.ts +1 -0
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js +17 -0
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js.map +1 -0
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.d.ts +1 -0
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +26 -0
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +1 -0
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.d.ts +1 -0
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +24 -0
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +1 -0
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.d.ts +1 -0
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +19 -0
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +1 -0
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.d.ts +1 -0
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +18 -0
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +1 -0
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.d.ts +1 -0
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +27 -0
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +1 -0
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.d.ts +1 -0
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +29 -0
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js.map +1 -0
- package/dist/compliance/tests/select_statement/select_statement.gs.d.ts +1 -0
- package/dist/compliance/tests/select_statement/select_statement.gs.js +209 -0
- package/dist/compliance/tests/select_statement/select_statement.gs.js.map +1 -0
- package/dist/compliance/tests/simple/simple.gs.d.ts +1 -0
- package/dist/compliance/tests/simple/simple.gs.js +6 -0
- package/dist/compliance/tests/simple/simple.gs.js.map +1 -0
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.d.ts +1 -0
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +22 -0
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -0
- package/dist/compliance/tests/slices/slices.gs.d.ts +1 -0
- package/dist/compliance/tests/slices/slices.gs.js +21 -0
- package/dist/compliance/tests/slices/slices.gs.js.map +1 -0
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.d.ts +1 -0
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js +17 -0
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +1 -0
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.d.ts +1 -0
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +16 -0
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -0
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.d.ts +1 -0
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +27 -0
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +1 -0
- package/dist/compliance/tests/switch_statement/switch_statement.gs.d.ts +1 -0
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js +76 -0
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js.map +1 -0
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.d.ts +1 -0
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +29 -0
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,6 +30,8 @@ If you are OK with these limitations, GoScript is for you!
|
|
|
30
30
|
|
|
31
31
|
### Command Line
|
|
32
32
|
|
|
33
|
+
After installing the `goscript` npm package, the `goscript` command line tool is available. You can run it directly or within your `package.json` scripts.
|
|
34
|
+
|
|
33
35
|
Compile a package using the CLI tool:
|
|
34
36
|
|
|
35
37
|
```bash
|
|
@@ -38,11 +40,16 @@ goscript compile \
|
|
|
38
40
|
--output ./output
|
|
39
41
|
```
|
|
40
42
|
|
|
41
|
-
For example, to compile the simple example:
|
|
43
|
+
For example, to compile the simple example from the project root:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
goscript compile --package ./example/simple --output ./output
|
|
47
|
+
```
|
|
48
|
+
Or within the `example/simple` directory:
|
|
42
49
|
|
|
43
50
|
```bash
|
|
44
51
|
cd example/simple
|
|
45
|
-
|
|
52
|
+
goscript compile --package . --output ./output
|
|
46
53
|
```
|
|
47
54
|
|
|
48
55
|
### As a Library
|
|
@@ -456,11 +463,19 @@ Code is compiled with `GOARCH=js` and uses a 32-bit environment similar to wasm.
|
|
|
456
463
|
All Go import paths are prefixed with `@go/` and can be imported in TypeScript:
|
|
457
464
|
|
|
458
465
|
```typescript
|
|
459
|
-
import {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
466
|
+
import { MyAsyncFunction, MyStruct } from '@go/github.com/myorg/mypackage';
|
|
467
|
+
|
|
468
|
+
// Example of importing and using a compiled Go async function
|
|
469
|
+
async function runGoCode() {
|
|
470
|
+
// Call an async function compiled from Go
|
|
471
|
+
const result = await MyAsyncFunction("input data");
|
|
472
|
+
console.log("Result from Go async function:", result);
|
|
473
|
+
|
|
474
|
+
// You can still use synchronous types and functions
|
|
475
|
+
let myThing = new MyStruct();
|
|
476
|
+
myThing.GetMyString();
|
|
477
|
+
runGoCode();
|
|
478
|
+
}
|
|
464
479
|
```
|
|
465
480
|
|
|
466
481
|
## License
|
package/builtin/builtin.ts
CHANGED
|
@@ -411,7 +411,7 @@ class BufferedChannel<T> implements Channel<T> {
|
|
|
411
411
|
export interface SelectCase<T> {
|
|
412
412
|
id: number
|
|
413
413
|
isSend: boolean // true for send, false for receive
|
|
414
|
-
channel: Channel<any>
|
|
414
|
+
channel: Channel<any> | null // Allow null
|
|
415
415
|
value?: any // Value to send for send cases
|
|
416
416
|
// Optional handlers for when this case is selected
|
|
417
417
|
onSelected?: (result: SelectResult<T>) => Promise<void>
|
|
@@ -442,12 +442,11 @@ export async function selectStatement<T>(
|
|
|
442
442
|
// Skip default case in this check
|
|
443
443
|
continue
|
|
444
444
|
}
|
|
445
|
-
|
|
446
|
-
|
|
445
|
+
// Add check for channel existence
|
|
446
|
+
if (caseObj.channel) {
|
|
447
|
+
if (caseObj.isSend && caseObj.channel.canSendNonBlocking()) {
|
|
447
448
|
readyCases.push(caseObj)
|
|
448
|
-
}
|
|
449
|
-
} else {
|
|
450
|
-
if (caseObj.channel.canReceiveNonBlocking()) {
|
|
449
|
+
} else if (!caseObj.isSend && caseObj.channel.canReceiveNonBlocking()) {
|
|
451
450
|
readyCases.push(caseObj)
|
|
452
451
|
}
|
|
453
452
|
}
|
|
@@ -459,19 +458,25 @@ export async function selectStatement<T>(
|
|
|
459
458
|
readyCases[Math.floor(Math.random() * readyCases.length)]
|
|
460
459
|
|
|
461
460
|
// Execute the selected operation and its onSelected handler
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
selectedCase.
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
461
|
+
// Add check for channel existence
|
|
462
|
+
if (selectedCase.channel) {
|
|
463
|
+
if (selectedCase.isSend) {
|
|
464
|
+
const result = await selectedCase.channel.selectSend(
|
|
465
|
+
selectedCase.value,
|
|
466
|
+
selectedCase.id,
|
|
467
|
+
)
|
|
468
|
+
if (selectedCase.onSelected) {
|
|
469
|
+
await selectedCase.onSelected(result as SelectResult<T>) // Await the handler
|
|
470
|
+
}
|
|
471
|
+
} else {
|
|
472
|
+
const result = await selectedCase.channel.selectReceive(selectedCase.id)
|
|
473
|
+
if (selectedCase.onSelected) {
|
|
474
|
+
await selectedCase.onSelected(result) // Await the handler
|
|
475
|
+
}
|
|
469
476
|
}
|
|
470
477
|
} else {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
await selectedCase.onSelected(result) // Await the handler
|
|
474
|
-
}
|
|
478
|
+
// This case should ideally not happen if channel is required for non-default cases
|
|
479
|
+
console.error('Selected case without a channel:', selectedCase)
|
|
475
480
|
}
|
|
476
481
|
return // Return after executing a ready case
|
|
477
482
|
}
|
|
@@ -497,11 +502,16 @@ export async function selectStatement<T>(
|
|
|
497
502
|
.filter((c) => c.id !== -1)
|
|
498
503
|
.map((caseObj) => {
|
|
499
504
|
// Exclude default case
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
505
|
+
// Add check for channel existence (though it should always exist here)
|
|
506
|
+
if (caseObj.channel) {
|
|
507
|
+
if (caseObj.isSend) {
|
|
508
|
+
return caseObj.channel.selectSend(caseObj.value, caseObj.id)
|
|
509
|
+
} else {
|
|
510
|
+
return caseObj.channel.selectReceive(caseObj.id)
|
|
511
|
+
}
|
|
504
512
|
}
|
|
513
|
+
// Return a promise that never resolves if channel is somehow missing
|
|
514
|
+
return new Promise<SelectResult<any>>(() => {})
|
|
505
515
|
})
|
|
506
516
|
|
|
507
517
|
const result = await Promise.race(blockingPromises)
|
package/compiler/compile_expr.go
CHANGED
|
@@ -359,8 +359,12 @@ func (c *GoToTSCompiler) WriteCallExpr(exp *ast.CallExpr) error {
|
|
|
359
359
|
// Handle make for slices: make([]T, len, cap) or make([]T, len)
|
|
360
360
|
if len(exp.Args) >= 1 {
|
|
361
361
|
// Handle map creation: make(map[K]V)
|
|
362
|
-
if
|
|
363
|
-
c.tsw.WriteLiterally("goscript.makeMap
|
|
362
|
+
if mapType, ok := exp.Args[0].(*ast.MapType); ok {
|
|
363
|
+
c.tsw.WriteLiterally("goscript.makeMap<")
|
|
364
|
+
c.WriteTypeExpr(mapType.Key) // Write the key type
|
|
365
|
+
c.tsw.WriteLiterally(", ")
|
|
366
|
+
c.WriteTypeExpr(mapType.Value) // Write the value type
|
|
367
|
+
c.tsw.WriteLiterally(">()")
|
|
364
368
|
return nil // Handled make for map
|
|
365
369
|
}
|
|
366
370
|
|
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("")
|
|
@@ -847,12 +840,8 @@ func (c *GoToTSCompiler) WriteStmtAssign(exp *ast.AssignStmt) error {
|
|
|
847
840
|
writeSingleAssign := func(lhsExpr, rhsExpr ast.Expr, tok token.Token, isLast bool) error {
|
|
848
841
|
// Check for blank identifier on the left-hand side
|
|
849
842
|
if ident, ok := lhsExpr.(*ast.Ident); ok && ident.Name == "_" {
|
|
850
|
-
// Blank identifier:
|
|
851
|
-
|
|
852
|
-
return fmt.Errorf("failed to write RHS for blank identifier assignment: %w", err)
|
|
853
|
-
}
|
|
854
|
-
c.tsw.WriteCommentInline("discarded value")
|
|
855
|
-
c.tsw.WriteLine("") // Remove semicolon, each assignment gets its own line
|
|
843
|
+
// Blank identifier: Skip generating output for this assignment.
|
|
844
|
+
// Note: This assumes RHS side effects are not required in the generated TS.
|
|
856
845
|
return nil
|
|
857
846
|
}
|
|
858
847
|
|
package/dist/builtin/builtin.js
CHANGED
|
@@ -296,13 +296,12 @@ export async function selectStatement(cases, hasDefault = false) {
|
|
|
296
296
|
// Skip default case in this check
|
|
297
297
|
continue;
|
|
298
298
|
}
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
// Add check for channel existence
|
|
300
|
+
if (caseObj.channel) {
|
|
301
|
+
if (caseObj.isSend && caseObj.channel.canSendNonBlocking()) {
|
|
301
302
|
readyCases.push(caseObj);
|
|
302
303
|
}
|
|
303
|
-
|
|
304
|
-
else {
|
|
305
|
-
if (caseObj.channel.canReceiveNonBlocking()) {
|
|
304
|
+
else if (!caseObj.isSend && caseObj.channel.canReceiveNonBlocking()) {
|
|
306
305
|
readyCases.push(caseObj);
|
|
307
306
|
}
|
|
308
307
|
}
|
|
@@ -311,17 +310,24 @@ export async function selectStatement(cases, hasDefault = false) {
|
|
|
311
310
|
// If one or more cases are ready, choose one pseudo-randomly
|
|
312
311
|
const selectedCase = readyCases[Math.floor(Math.random() * readyCases.length)];
|
|
313
312
|
// Execute the selected operation and its onSelected handler
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
if (selectedCase.
|
|
317
|
-
await selectedCase.
|
|
313
|
+
// Add check for channel existence
|
|
314
|
+
if (selectedCase.channel) {
|
|
315
|
+
if (selectedCase.isSend) {
|
|
316
|
+
const result = await selectedCase.channel.selectSend(selectedCase.value, selectedCase.id);
|
|
317
|
+
if (selectedCase.onSelected) {
|
|
318
|
+
await selectedCase.onSelected(result); // Await the handler
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
const result = await selectedCase.channel.selectReceive(selectedCase.id);
|
|
323
|
+
if (selectedCase.onSelected) {
|
|
324
|
+
await selectedCase.onSelected(result); // Await the handler
|
|
325
|
+
}
|
|
318
326
|
}
|
|
319
327
|
}
|
|
320
328
|
else {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
await selectedCase.onSelected(result); // Await the handler
|
|
324
|
-
}
|
|
329
|
+
// This case should ideally not happen if channel is required for non-default cases
|
|
330
|
+
console.error('Selected case without a channel:', selectedCase);
|
|
325
331
|
}
|
|
326
332
|
return; // Return after executing a ready case
|
|
327
333
|
}
|
|
@@ -345,12 +351,17 @@ export async function selectStatement(cases, hasDefault = false) {
|
|
|
345
351
|
.filter((c) => c.id !== -1)
|
|
346
352
|
.map((caseObj) => {
|
|
347
353
|
// Exclude default case
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
354
|
+
// Add check for channel existence (though it should always exist here)
|
|
355
|
+
if (caseObj.channel) {
|
|
356
|
+
if (caseObj.isSend) {
|
|
357
|
+
return caseObj.channel.selectSend(caseObj.value, caseObj.id);
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
return caseObj.channel.selectReceive(caseObj.id);
|
|
361
|
+
}
|
|
353
362
|
}
|
|
363
|
+
// Return a promise that never resolves if channel is somehow missing
|
|
364
|
+
return new Promise(() => { });
|
|
354
365
|
});
|
|
355
366
|
const result = await Promise.race(blockingPromises);
|
|
356
367
|
// Execute onSelected handler for the selected case
|
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated file based on array_literal.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
export async function main() {
|
|
4
|
+
// Test basic array literal
|
|
5
|
+
let a = [1, 2, 3];
|
|
6
|
+
console.log(a[0], a[1], a[2]);
|
|
7
|
+
// Test array literal with inferred length
|
|
8
|
+
let b = ["hello", "world"];
|
|
9
|
+
console.log(b[0], b[1]);
|
|
10
|
+
// Test array literal with specific element initialization
|
|
11
|
+
let c = [0, 10, 0, 30, 0];
|
|
12
|
+
console.log(c[0], c[1], c[2], c[3], c[4]);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=array_literal.gs.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Generated file based on async_basic.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
import * as goscript from "@go/builtin";
|
|
4
|
+
// This function receives from a channel, making it async.
|
|
5
|
+
async function receiveFromChan(ch) {
|
|
6
|
+
let val = await ch.receive(); // This operation makes the function async
|
|
7
|
+
return val;
|
|
8
|
+
}
|
|
9
|
+
// This function calls an async function, making it async too.
|
|
10
|
+
async function caller(ch) {
|
|
11
|
+
// We expect this call to be awaited in TypeScript
|
|
12
|
+
let result = await receiveFromChan(ch);
|
|
13
|
+
return result + 1;
|
|
14
|
+
}
|
|
15
|
+
export async function main() {
|
|
16
|
+
// Create a buffered channel
|
|
17
|
+
let myChan = goscript.makeChannel(1, 0);
|
|
18
|
+
await myChan.send(10);
|
|
19
|
+
// Call the async caller function
|
|
20
|
+
let finalResult = await caller(myChan);
|
|
21
|
+
console.log(finalResult); // Expected output: 11
|
|
22
|
+
myChan.close();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=async_basic.gs.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Generated file based on basic_arithmetic.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
export async function main() {
|
|
4
|
+
// === Basic Arithmetic ===
|
|
5
|
+
let add = 2 + 3;
|
|
6
|
+
let sub = 10 - 4;
|
|
7
|
+
let mul = 6 * 7;
|
|
8
|
+
let div = 20 / 5;
|
|
9
|
+
let mod = 17 % 3;
|
|
10
|
+
console.log("Addition: Expected: 5, Actual:", add);
|
|
11
|
+
console.log("Subtraction: Expected: 6, Actual:", sub);
|
|
12
|
+
console.log("Multiplication: Expected: 42, Actual:", mul);
|
|
13
|
+
console.log("Division: Expected: 4, Actual:", div);
|
|
14
|
+
console.log("Modulus: Expected: 2, Actual:", mod);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=basic_arithmetic.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic_arithmetic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/basic_arithmetic/basic_arithmetic.gs.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,2BAA2B;IAC3B,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACf,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;IAChB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACf,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;IAChB,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated file based on boolean_logic.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
export async function main() {
|
|
4
|
+
// === Boolean Logic ===
|
|
5
|
+
let a = true;
|
|
6
|
+
let b = false;
|
|
7
|
+
let and = a && b;
|
|
8
|
+
let or = a || b;
|
|
9
|
+
let notA = !a;
|
|
10
|
+
console.log("AND: Expected: false, Actual:", and);
|
|
11
|
+
console.log("OR: Expected: true, Actual:", or);
|
|
12
|
+
console.log("NOT: Expected: false, Actual:", notA);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=boolean_logic.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean_logic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/boolean_logic/boolean_logic.gs.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,wBAAwB;IACxB,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,IAAI,CAAC,GAAG,KAAK,CAAA;IACb,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACf,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;IACjD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated file based on channel_basic.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
import * as goscript from "@go/builtin";
|
|
4
|
+
export async function main() {
|
|
5
|
+
let messages = goscript.makeChannel(0, "");
|
|
6
|
+
queueMicrotask(async () => {
|
|
7
|
+
{
|
|
8
|
+
await messages.send("ping");
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
let msg = await messages.receive();
|
|
12
|
+
console.log(msg);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=channel_basic.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel_basic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/channel_basic/channel_basic.gs.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,EAAE,CAAC,CAAA;IAElD,cAAc,CAAC,KAAK,IAAI,EAAE;QACzB,CAAC;YACA,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,IAAI,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC"}
|
package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated file based on composite_literal_assignment.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
class MyStruct {
|
|
4
|
+
MyInt = 0;
|
|
5
|
+
MyString = "";
|
|
6
|
+
myBool = false;
|
|
7
|
+
constructor(init) { if (init)
|
|
8
|
+
Object.assign(this, init); }
|
|
9
|
+
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
10
|
+
}
|
|
11
|
+
export async function main() {
|
|
12
|
+
// === Composite Literal Assignment (Value Copy) ===
|
|
13
|
+
// Creating a struct directly using a composite literal.
|
|
14
|
+
let structLiteral = new MyStruct({ MyString: "composite literal" });
|
|
15
|
+
// Assigning it creates another independent copy.
|
|
16
|
+
let structLiteralCopy = structLiteral.clone();
|
|
17
|
+
structLiteralCopy.MyString = "modified composite literal copy";
|
|
18
|
+
// Expected: "composite literal"
|
|
19
|
+
console.log("Original struct literal: Expected: composite literal, Actual: " + structLiteral.MyString);
|
|
20
|
+
// Expected: "modified composite literal copy"
|
|
21
|
+
console.log("Modified struct literal copy: Expected: modified composite literal copy, Actual: " + structLiteralCopy.MyString);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=composite_literal_assignment.gs.js.map
|
package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map
ADDED
|
@@ -0,0 +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;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IACrB,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;CACvG;AAED,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Generated file based on constants.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
let Pi = 3.14;
|
|
4
|
+
let Truth = false;
|
|
5
|
+
// TODO: Handle large integer constants and bit shifts exceeding JS number limits.
|
|
6
|
+
// Big = 1 << 60
|
|
7
|
+
// Small = Big >> 59 // Commented out as it depends on Big
|
|
8
|
+
let Greeting = "Hello, Constants!";
|
|
9
|
+
export async function main() {
|
|
10
|
+
console.log(Pi);
|
|
11
|
+
console.log(Truth);
|
|
12
|
+
// println(Big) // Commented out until large integer handling is implemented
|
|
13
|
+
// println(Small) // Commented out as it depends on Big
|
|
14
|
+
console.log(Greeting);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=constants.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/constants/constants.gs.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,yDAAyD;AAIzD,IAAI,EAAE,GAAG,IAAI,CAAC;AAEd,IAAI,KAAK,GAAG,KAAK,CAAC;AAElB,kFAAkF;AAClF,qBAAqB;AACrB,6DAA6D;AAC7D,IAAI,QAAQ,GAAG,mBAAmB,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClB,4EAA4E;IAC5E,uDAAuD;IACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Generated file based on copy_independence.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
class MyStruct {
|
|
4
|
+
MyInt = 0;
|
|
5
|
+
MyString = "";
|
|
6
|
+
myBool = false;
|
|
7
|
+
constructor(init) { if (init)
|
|
8
|
+
Object.assign(this, init); }
|
|
9
|
+
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
10
|
+
}
|
|
11
|
+
export async function main() {
|
|
12
|
+
// Setup from previous steps (simplified for this test)
|
|
13
|
+
let structPointer = new MyStruct({ MyInt: 4, MyString: "hello world" });
|
|
14
|
+
let dereferencedStructCopy = structPointer.clone();
|
|
15
|
+
dereferencedStructCopy.MyString = "original dereferenced copy modified";
|
|
16
|
+
let valueCopy1 = dereferencedStructCopy.clone();
|
|
17
|
+
valueCopy1.MyString = "value copy 1";
|
|
18
|
+
let valueCopy2 = dereferencedStructCopy.clone();
|
|
19
|
+
valueCopy2.MyString = "value copy 2";
|
|
20
|
+
let pointerCopy = structPointer;
|
|
21
|
+
// === Verifying Copy Independence ===
|
|
22
|
+
// Expected: "hello world"
|
|
23
|
+
console.log("pointerCopy (points to original structPointer): Expected: hello world, Actual: " + pointerCopy.MyString);
|
|
24
|
+
// Expected: "original dereferenced copy modified"
|
|
25
|
+
console.log("dereferencedStructCopy (modified after copies were made): Expected: original dereferenced copy modified, Actual: " + dereferencedStructCopy.MyString);
|
|
26
|
+
// Expected: "value copy 1"
|
|
27
|
+
console.log("valueCopy1: Expected: value copy 1, Actual: " + valueCopy1.MyString);
|
|
28
|
+
// Expected: "value copy 2"
|
|
29
|
+
console.log("valueCopy2: Expected: value copy 2, Actual: " + valueCopy2.MyString);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=copy_independence.gs.js.map
|
|
@@ -0,0 +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;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IACrB,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;CACvG;AAED,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated file based on float64.go
|
|
2
|
+
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
+
export async function main() {
|
|
4
|
+
let a = 1.23;
|
|
5
|
+
let b = 4.56;
|
|
6
|
+
let c;
|
|
7
|
+
c = a + b;
|
|
8
|
+
console.log("a + b =", c);
|
|
9
|
+
c = a - b;
|
|
10
|
+
console.log("a - b =", c);
|
|
11
|
+
c = a * b;
|
|
12
|
+
console.log("a * b =", c);
|
|
13
|
+
c = a / b;
|
|
14
|
+
console.log("a / b =", c);
|
|
15
|
+
// Assignment
|
|
16
|
+
let d = 7.89;
|
|
17
|
+
c = d;
|
|
18
|
+
console.log("c =", c);
|
|
19
|
+
// More complex expression
|
|
20
|
+
let e = (a + b) * (c - d) / a;
|
|
21
|
+
console.log("(a + b) * (c - d) / a =", e);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=float64.gs.js.map
|