goscript 0.0.14 → 0.0.17
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 +154 -40
- package/builtin/builtin.ts +1168 -178
- package/compiler/analysis.go +726 -0
- package/compiler/compiler.go +5706 -4
- package/compiler/compiler_test.go +104 -0
- package/compiler/config.go +3 -3
- package/compiler/config_test.go +89 -0
- package/compiler/output.go +26 -0
- package/compiler/write-type-spec.go +506 -0
- package/compiler/writer.go +25 -0
- package/dist/builtin/builtin.d.ts +204 -67
- package/dist/builtin/builtin.js +845 -144
- package/dist/builtin/builtin.js.map +1 -1
- package/go.mod +4 -7
- package/go.sum +6 -11
- package/package.json +4 -3
- package/compiler/compile.go +0 -190
- package/compiler/compile_comment.go +0 -41
- package/compiler/compile_decls.go +0 -84
- package/compiler/compile_expr.go +0 -1022
- package/compiler/compile_field.go +0 -110
- package/compiler/compile_spec.go +0 -566
- package/compiler/compile_stmt.go +0 -1616
- package/compiler/context.go +0 -9
- package/compiler/file_compiler.go +0 -80
- package/compiler/output_path.go +0 -31
- package/compiler/pkg_compiler.go +0 -72
- package/compiler/types/tokens.go +0 -66
- package/compiler/types/types.go +0 -46
- package/dist/compliance/tests/array_literal/array_literal.gs.d.ts +0 -1
- package/dist/compliance/tests/array_literal/array_literal.gs.js +0 -15
- package/dist/compliance/tests/array_literal/array_literal.gs.js.map +0 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.js +0 -24
- package/dist/compliance/tests/async_basic/async_basic.gs.js.map +0 -1
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js +0 -82
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js.map +0 -1
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.d.ts +0 -1
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js +0 -16
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js.map +0 -1
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.d.ts +0 -1
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js +0 -14
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js.map +0 -1
- package/dist/compliance/tests/channel_basic/channel_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js +0 -14
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +0 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +0 -27
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/constants/constants.gs.d.ts +0 -1
- package/dist/compliance/tests/constants/constants.gs.js +0 -16
- package/dist/compliance/tests/constants/constants.gs.js.map +0 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.d.ts +0 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js +0 -33
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +0 -1
- package/dist/compliance/tests/defer_statement/defer_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js +0 -75
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js.map +0 -1
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +0 -37
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.d.ts +0 -1
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js +0 -29
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js.map +0 -1
- package/dist/compliance/tests/float64/float64.gs.d.ts +0 -1
- package/dist/compliance/tests/float64/float64.gs.js +0 -24
- package/dist/compliance/tests/float64/float64.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js +0 -10
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js +0 -11
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_condition_only/main.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js +0 -10
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js +0 -14
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js.map +0 -1
- package/dist/compliance/tests/for_range/for_range.gs.d.ts +0 -1
- package/dist/compliance/tests/for_range/for_range.gs.js +0 -39
- package/dist/compliance/tests/for_range/for_range.gs.js.map +0 -1
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.d.ts +0 -1
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js +0 -15
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js.map +0 -1
- package/dist/compliance/tests/func_literal/func_literal.gs.d.ts +0 -1
- package/dist/compliance/tests/func_literal/func_literal.gs.js +0 -10
- package/dist/compliance/tests/func_literal/func_literal.gs.js.map +0 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +0 -12
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +0 -30
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/if_statement/if_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/if_statement/if_statement.gs.js +0 -13
- package/dist/compliance/tests/if_statement/if_statement.gs.js.map +0 -1
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js +0 -12
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js.map +0 -1
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +0 -34
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +0 -1
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +0 -32
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +0 -40
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js +0 -51
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js.map +0 -1
- package/dist/compliance/tests/map_support/map_support.gs.d.ts +0 -1
- package/dist/compliance/tests/map_support/map_support.gs.js +0 -88
- package/dist/compliance/tests/map_support/map_support.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +0 -24
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +0 -33
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +0 -22
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +0 -33
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +0 -1
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.d.ts +0 -1
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js +0 -17
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +0 -29
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +0 -27
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +0 -22
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +0 -20
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +0 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.d.ts +0 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +0 -28
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +0 -1
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.d.ts +0 -1
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +0 -30
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js.map +0 -1
- package/dist/compliance/tests/select_statement/select_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/select_statement/select_statement.gs.js +0 -207
- package/dist/compliance/tests/select_statement/select_statement.gs.js.map +0 -1
- package/dist/compliance/tests/simple/simple.gs.d.ts +0 -1
- package/dist/compliance/tests/simple/simple.gs.js +0 -6
- package/dist/compliance/tests/simple/simple.gs.js.map +0 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +0 -24
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/slices/slices.gs.d.ts +0 -1
- package/dist/compliance/tests/slices/slices.gs.js +0 -294
- package/dist/compliance/tests/slices/slices.gs.js.map +0 -1
- package/dist/compliance/tests/string_conversion/string_conversion.gs.d.ts +0 -1
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js +0 -41
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js.map +0 -1
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.d.ts +0 -1
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js +0 -17
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +0 -1
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js +0 -48
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js.map +0 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +0 -19
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +0 -1
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js +0 -26
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js.map +0 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +0 -30
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +0 -1
- package/dist/compliance/tests/switch_statement/switch_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js +0 -76
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js.map +0 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.d.ts +0 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +0 -31
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +0 -1
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
// Generated file based on select_statement.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
export async function main() {
|
|
5
|
-
// Test 1: Simple deterministic select with default
|
|
6
|
-
// Create a buffered channel so sends don't block
|
|
7
|
-
let ch1 = goscript.makeChannel(1, "");
|
|
8
|
-
// First test: empty channel, should hit default
|
|
9
|
-
await goscript.selectStatement([
|
|
10
|
-
{
|
|
11
|
-
id: 0,
|
|
12
|
-
isSend: false,
|
|
13
|
-
channel: ch1,
|
|
14
|
-
onSelected: async (result) => {
|
|
15
|
-
const msg = result.value;
|
|
16
|
-
console.log("TEST1: Received unexpected value:", msg);
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
id: -1,
|
|
21
|
-
isSend: false,
|
|
22
|
-
channel: null,
|
|
23
|
-
onSelected: async (result) => {
|
|
24
|
-
console.log("TEST1: Default case hit correctly");
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
], true);
|
|
28
|
-
// Now put something in the channel
|
|
29
|
-
await ch1.send("hello");
|
|
30
|
-
// Second test: should read from channel
|
|
31
|
-
await goscript.selectStatement([
|
|
32
|
-
{
|
|
33
|
-
id: 0,
|
|
34
|
-
isSend: false,
|
|
35
|
-
channel: ch1,
|
|
36
|
-
onSelected: async (result) => {
|
|
37
|
-
const msg = result.value;
|
|
38
|
-
console.log("TEST2: Received expected value:", msg);
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
id: -1,
|
|
43
|
-
isSend: false,
|
|
44
|
-
channel: null,
|
|
45
|
-
onSelected: async (result) => {
|
|
46
|
-
console.log("TEST2: Default case hit unexpectedly");
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
], true);
|
|
50
|
-
// Test 3: Select with channel closing and ok value
|
|
51
|
-
let ch2 = goscript.makeChannel(1, 0);
|
|
52
|
-
await ch2.send(42);
|
|
53
|
-
ch2.close();
|
|
54
|
-
// First receive gets the buffered value
|
|
55
|
-
await goscript.selectStatement([
|
|
56
|
-
{
|
|
57
|
-
id: 0,
|
|
58
|
-
isSend: false,
|
|
59
|
-
channel: ch2,
|
|
60
|
-
onSelected: async (result) => {
|
|
61
|
-
const val = result.value;
|
|
62
|
-
const ok = result.ok;
|
|
63
|
-
if (ok) {
|
|
64
|
-
console.log("TEST3: Received buffered value with ok==true:", val);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
console.log("TEST3: Unexpected ok==false");
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
id: -1,
|
|
73
|
-
isSend: false,
|
|
74
|
-
channel: null,
|
|
75
|
-
onSelected: async (result) => {
|
|
76
|
-
console.log("TEST3: Default hit unexpectedly");
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
], true);
|
|
80
|
-
// Second receive gets the zero value with ok==false
|
|
81
|
-
await goscript.selectStatement([
|
|
82
|
-
{
|
|
83
|
-
id: 0,
|
|
84
|
-
isSend: false,
|
|
85
|
-
channel: ch2,
|
|
86
|
-
onSelected: async (result) => {
|
|
87
|
-
const val = result.value;
|
|
88
|
-
const ok = result.ok;
|
|
89
|
-
if (ok) {
|
|
90
|
-
console.log("TEST4: Unexpected ok==true:", val);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
console.log("TEST4: Received zero value with ok==false:", val);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: -1,
|
|
99
|
-
isSend: false,
|
|
100
|
-
channel: null,
|
|
101
|
-
onSelected: async (result) => {
|
|
102
|
-
console.log("TEST4: Default hit unexpectedly");
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
], true);
|
|
106
|
-
// Test 5: Send operations
|
|
107
|
-
let ch3 = goscript.makeChannel(1, 0);
|
|
108
|
-
// First send should succeed (buffer not full)
|
|
109
|
-
await goscript.selectStatement([
|
|
110
|
-
{
|
|
111
|
-
id: 0,
|
|
112
|
-
isSend: true,
|
|
113
|
-
channel: ch3,
|
|
114
|
-
value: 5,
|
|
115
|
-
onSelected: async (result) => {
|
|
116
|
-
console.log("TEST5: Sent value successfully");
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
id: -1,
|
|
121
|
-
isSend: false,
|
|
122
|
-
channel: null,
|
|
123
|
-
onSelected: async (result) => {
|
|
124
|
-
console.log("TEST5: Default hit unexpectedly");
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
], true);
|
|
128
|
-
// Second send should hit default (buffer full)
|
|
129
|
-
await goscript.selectStatement([
|
|
130
|
-
{
|
|
131
|
-
id: 0,
|
|
132
|
-
isSend: true,
|
|
133
|
-
channel: ch3,
|
|
134
|
-
value: 10,
|
|
135
|
-
onSelected: async (result) => {
|
|
136
|
-
console.log("TEST6: Sent unexpectedly");
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
id: -1,
|
|
141
|
-
isSend: false,
|
|
142
|
-
channel: null,
|
|
143
|
-
onSelected: async (result) => {
|
|
144
|
-
console.log("TEST6: Default hit correctly (channel full)");
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
], true);
|
|
148
|
-
// Test 7: Multiple channel select (with known values)
|
|
149
|
-
let ch4 = goscript.makeChannel(1, "");
|
|
150
|
-
let ch5 = goscript.makeChannel(1, "");
|
|
151
|
-
await ch4.send("from ch4");
|
|
152
|
-
// Should select ch4 because it has data, ch5 is empty
|
|
153
|
-
await goscript.selectStatement([
|
|
154
|
-
{
|
|
155
|
-
id: 0,
|
|
156
|
-
isSend: false,
|
|
157
|
-
channel: ch4,
|
|
158
|
-
onSelected: async (result) => {
|
|
159
|
-
const msg = result.value;
|
|
160
|
-
console.log("TEST7: Selected ch4 correctly:", msg);
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
id: 1,
|
|
165
|
-
isSend: false,
|
|
166
|
-
channel: ch5,
|
|
167
|
-
onSelected: async (result) => {
|
|
168
|
-
const msg = result.value;
|
|
169
|
-
console.log("TEST7: Selected ch5 unexpectedly:", msg);
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
], false);
|
|
173
|
-
// Now ch4 is empty and ch5 is empty
|
|
174
|
-
await ch5.send("from ch5");
|
|
175
|
-
// Should select ch5 because it has data, ch4 is empty
|
|
176
|
-
await goscript.selectStatement([
|
|
177
|
-
{
|
|
178
|
-
id: 0,
|
|
179
|
-
isSend: false,
|
|
180
|
-
channel: ch4,
|
|
181
|
-
onSelected: async (result) => {
|
|
182
|
-
const msg = result.value;
|
|
183
|
-
console.log("TEST8: Selected ch4 unexpectedly:", msg);
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
id: 1,
|
|
188
|
-
isSend: false,
|
|
189
|
-
channel: ch5,
|
|
190
|
-
onSelected: async (result) => {
|
|
191
|
-
const msg = result.value;
|
|
192
|
-
console.log("TEST8: Selected ch5 correctly:", msg);
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
], false);
|
|
196
|
-
// Test 9: Channel closing test case for a separate test
|
|
197
|
-
let chClose = goscript.makeChannel(0, false);
|
|
198
|
-
chClose.close();
|
|
199
|
-
const { value: val, ok: ok } = await chClose.receiveWithOk();
|
|
200
|
-
if (!ok) {
|
|
201
|
-
console.log("TEST9: Channel is closed, ok is false, val:", val);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
console.log("TEST9: Channel reports as not closed");
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
//# sourceMappingURL=select_statement.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select_statement.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/select_statement/select_statement.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/simple/simple.gs.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// Generated file based on simple_deref_assignment.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
class MyStruct {
|
|
5
|
-
MyInt = 0;
|
|
6
|
-
MyString = "";
|
|
7
|
-
constructor(init) { if (init)
|
|
8
|
-
Object.assign(this, init); }
|
|
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);
|
|
12
|
-
}
|
|
13
|
-
export async function main() {
|
|
14
|
-
let structPointer = new MyStruct({ MyInt: 4, MyString: "hello world" });
|
|
15
|
-
// === Simple Dereference Assignment (Value Copy) ===
|
|
16
|
-
let simpleDereferencedCopy = structPointer.clone();
|
|
17
|
-
// Modifying the copy does not affect the original struct pointed to by structPointer.
|
|
18
|
-
simpleDereferencedCopy.MyString = "modified dereferenced copy";
|
|
19
|
-
// Expected: "hello world"
|
|
20
|
-
console.log("Original structPointer after modifying simpleDereferencedCopy: Expected: hello world, Actual: " + structPointer.MyString);
|
|
21
|
-
// Expected: "modified dereferenced copy"
|
|
22
|
-
console.log("Simple Dereferenced Copy: Expected: modified dereferenced copy, Actual: " + simpleDereferencedCopy.MyString);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=simple_deref_assignment.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple_deref_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,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,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAA;IACrE,qDAAqD;IACrD,IAAI,sBAAsB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;IAClD,sFAAsF;IACtF,sBAAsB,CAAC,QAAQ,GAAG,4BAA4B,CAAA;IAC9D,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,gGAAgG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtI,yCAAyC;IACzC,OAAO,CAAC,GAAG,CAAC,0EAA0E,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;AAC1H,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
// Generated file based on slices.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
export async function main() {
|
|
5
|
-
// --- Original Tests ---
|
|
6
|
-
console.log("--- Original Tests ---");
|
|
7
|
-
// Create a slice of integers with length 5 and capacity 10
|
|
8
|
-
let s = goscript.makeSlice(5, 10);
|
|
9
|
-
console.log(goscript.len(s)); // 5
|
|
10
|
-
console.log(goscript.cap(s)); // 10
|
|
11
|
-
// Create a slice of strings with length 3
|
|
12
|
-
let s2 = goscript.makeSlice(3);
|
|
13
|
-
console.log(goscript.len(s2)); // 3
|
|
14
|
-
console.log(goscript.cap(s2)); // 3
|
|
15
|
-
// Assign values
|
|
16
|
-
s[0] = 10;
|
|
17
|
-
s[4] = 20;
|
|
18
|
-
s2[1] = "hello";
|
|
19
|
-
console.log(s[0]); // 10
|
|
20
|
-
console.log(s[4]); // 20
|
|
21
|
-
console.log(s2[1]); // hello
|
|
22
|
-
// --- New Tests ---
|
|
23
|
-
console.log("--- New Tests ---");
|
|
24
|
-
// Create slice from array literal
|
|
25
|
-
let arrLit = [1, 2, 3, 4, 5];
|
|
26
|
-
let sliceFromLit = goscript.slice(arrLit, undefined, undefined);
|
|
27
|
-
console.log(goscript.len(sliceFromLit)); // 5
|
|
28
|
-
console.log(goscript.cap(sliceFromLit)); // 5
|
|
29
|
-
console.log(sliceFromLit[0]); // 1
|
|
30
|
-
console.log(sliceFromLit[4]); // 5
|
|
31
|
-
// Create slice from array variable
|
|
32
|
-
let arrVar = ["a", "b", "c", "d"];
|
|
33
|
-
let sliceFromVar = goscript.slice(arrVar, undefined, undefined);
|
|
34
|
-
console.log(goscript.len(sliceFromVar)); // 4
|
|
35
|
-
console.log(goscript.cap(sliceFromVar)); // 4
|
|
36
|
-
console.log(sliceFromVar[0]); // a
|
|
37
|
-
console.log(sliceFromVar[3]); // d
|
|
38
|
-
// Create slice with specific indices
|
|
39
|
-
let sliceIndices = goscript.slice(arrVar, 1, 3); // ["b", "c"]
|
|
40
|
-
console.log(goscript.len(sliceIndices)); // 2
|
|
41
|
-
console.log(goscript.cap(sliceIndices)); // 3 (cap is from start index to end of original array)
|
|
42
|
-
console.log(sliceIndices[0]); // b
|
|
43
|
-
console.log(sliceIndices[1]); // c
|
|
44
|
-
// Create slice with 0 len/cap and append
|
|
45
|
-
console.log("--- Zero len/cap append ---");
|
|
46
|
-
let zeroSlice = goscript.makeSlice(0, 0);
|
|
47
|
-
console.log(goscript.len(zeroSlice)); // 0
|
|
48
|
-
console.log(goscript.cap(zeroSlice)); // 0
|
|
49
|
-
zeroSlice = goscript.append(zeroSlice, 100);
|
|
50
|
-
console.log(goscript.len(zeroSlice)); // 1
|
|
51
|
-
console.log(goscript.cap(zeroSlice)); // 1 (or more, implementation dependent)
|
|
52
|
-
console.log(zeroSlice[0]); // 100
|
|
53
|
-
zeroSlice = goscript.append(zeroSlice, 200);
|
|
54
|
-
console.log(goscript.len(zeroSlice)); // 2
|
|
55
|
-
console.log(goscript.cap(zeroSlice)); // 2 (or more)
|
|
56
|
-
console.log(zeroSlice[1]); // 200
|
|
57
|
-
// Modify slice, check original array
|
|
58
|
-
console.log("--- Modify slice, check array ---");
|
|
59
|
-
let modArr = [10, 20, 30];
|
|
60
|
-
let modSlice = goscript.slice(modArr, undefined, undefined);
|
|
61
|
-
modSlice[1] = 25; // Modify slice
|
|
62
|
-
console.log(modArr[1]); // 25 (original array should be modified)
|
|
63
|
-
console.log(modSlice[1]); // 25
|
|
64
|
-
// Modify array, check slice
|
|
65
|
-
console.log("--- Modify array, check slice ---");
|
|
66
|
-
modArr[0] = 15; // Modify array
|
|
67
|
-
console.log(modArr[0]); // 15
|
|
68
|
-
console.log(modSlice[0]); // 15 (slice should reflect change)
|
|
69
|
-
// Append to sub-slice within capacity
|
|
70
|
-
console.log("--- Append sub-slice w/in capacity ---");
|
|
71
|
-
let appendArr = [1, 2, 3, 4, 5];
|
|
72
|
-
let appendSlice1 = goscript.slice(appendArr, 0, 2); // len 2, cap 5; [1, 2]
|
|
73
|
-
console.log(goscript.len(appendSlice1)); // 2
|
|
74
|
-
console.log(goscript.cap(appendSlice1)); // 5
|
|
75
|
-
let appendSlice2 = goscript.append(appendSlice1, 99); // Appends within original capacity
|
|
76
|
-
console.log(goscript.len(appendSlice2)); // 3
|
|
77
|
-
console.log(goscript.cap(appendSlice2)); // 5
|
|
78
|
-
console.log(appendSlice2[2]); // 99
|
|
79
|
-
console.log(appendArr[2]); // 99 (original array modified)
|
|
80
|
-
// Append to sub-slice exceeding capacity
|
|
81
|
-
console.log("--- Append sub-slice exceed capacity ---");
|
|
82
|
-
let appendSlice3 = goscript.slice(appendArr, 3, 5); // len 2, cap 2; [4, 5]
|
|
83
|
-
console.log(goscript.len(appendSlice3)); // 2
|
|
84
|
-
console.log(goscript.cap(appendSlice3)); // 2
|
|
85
|
-
let appendSlice4 = goscript.append(appendSlice3, 101); // Appends beyond original capacity
|
|
86
|
-
console.log(goscript.len(appendSlice4)); // 3
|
|
87
|
-
console.log(goscript.cap(appendSlice4)); // 4 (or more, new underlying array)
|
|
88
|
-
console.log(appendSlice4[0]); // 4
|
|
89
|
-
console.log(appendSlice4[1]); // 5
|
|
90
|
-
console.log(appendSlice4[2]); // 101
|
|
91
|
-
// Original array should NOT be modified beyond its bounds by this append
|
|
92
|
-
console.log(appendArr[0]); // 1
|
|
93
|
-
console.log(appendArr[1]); // 2
|
|
94
|
-
console.log(appendArr[2]); // 99 (from previous append)
|
|
95
|
-
console.log(appendArr[3]); // 4
|
|
96
|
-
console.log(appendArr[4]); // 5
|
|
97
|
-
// Slicing a slice
|
|
98
|
-
console.log("--- Slicing a slice ---");
|
|
99
|
-
let baseSlice = [0, 10, 20, 30, 40, 50];
|
|
100
|
-
let subSlice1 = goscript.slice(baseSlice, 1, 4); // [10, 20, 30], len 3, cap 5
|
|
101
|
-
console.log(goscript.len(subSlice1)); // 3
|
|
102
|
-
console.log(goscript.cap(subSlice1)); // 5
|
|
103
|
-
console.log(subSlice1[0]); // 10
|
|
104
|
-
let subSlice2 = goscript.slice(subSlice1, 1, 3); // [20, 30], len 2, cap 4 (cap from subSlice1's start)
|
|
105
|
-
console.log(goscript.len(subSlice2)); // 2
|
|
106
|
-
console.log(goscript.cap(subSlice2)); // 4
|
|
107
|
-
console.log(subSlice2[0]); // 20
|
|
108
|
-
console.log(subSlice2[1]); // 30
|
|
109
|
-
subSlice2[0] = 22; // Modify sub-sub-slice
|
|
110
|
-
console.log(subSlice1[1]); // 22 (subSlice1 modified)
|
|
111
|
-
console.log(baseSlice[2]); // 22 (baseSlice modified)
|
|
112
|
-
// Three-index slicing (if supported) - Check capacity
|
|
113
|
-
console.log("--- Three-index slicing ---");
|
|
114
|
-
let threeIndexArr = [0, 1, 2, 3, 4, 5];
|
|
115
|
-
let threeIndexSlice = goscript.slice(threeIndexArr, 1, 3, 4); // [1, 2], len 2, cap 3 (4-1)
|
|
116
|
-
console.log(goscript.len(threeIndexSlice)); // 2
|
|
117
|
-
console.log(goscript.cap(threeIndexSlice)); // 3
|
|
118
|
-
console.log(threeIndexSlice[0]); // 1
|
|
119
|
-
console.log(threeIndexSlice[1]); // 2
|
|
120
|
-
// Appending should modify original array up to new capacity limit
|
|
121
|
-
threeIndexSlice = goscript.append(threeIndexSlice, 99);
|
|
122
|
-
console.log(goscript.len(threeIndexSlice)); // 3
|
|
123
|
-
console.log(goscript.cap(threeIndexSlice)); // 3
|
|
124
|
-
console.log(threeIndexSlice[2]); // 99
|
|
125
|
-
console.log(threeIndexArr[3]); // 99 (original modified)
|
|
126
|
-
// Appending again should reallocate
|
|
127
|
-
threeIndexSlice = goscript.append(threeIndexSlice, 101);
|
|
128
|
-
console.log(goscript.len(threeIndexSlice)); // 4
|
|
129
|
-
console.log(goscript.cap(threeIndexSlice)); // 6 (or more)
|
|
130
|
-
console.log(threeIndexSlice[3]); // 101
|
|
131
|
-
console.log(threeIndexArr[4]); // 4 (original NOT modified by reallocating append)
|
|
132
|
-
// --- Additional Tests for Full Coverage ---
|
|
133
|
-
console.log("--- Additional Tests ---");
|
|
134
|
-
// Slice literal
|
|
135
|
-
let sliceLiteral = [10, 20, 30];
|
|
136
|
-
console.log("Slice literal len:", goscript.len(sliceLiteral)); // 3
|
|
137
|
-
console.log("Slice literal cap:", goscript.cap(sliceLiteral)); // 3
|
|
138
|
-
console.log("Slice literal[1]:", sliceLiteral[1]); // 20
|
|
139
|
-
// Nil slice
|
|
140
|
-
let nilSlice = [];
|
|
141
|
-
console.log("Nil slice len:", goscript.len(nilSlice)); // 0
|
|
142
|
-
console.log("Nil slice cap:", goscript.cap(nilSlice)); // 0
|
|
143
|
-
nilSlice = goscript.append(nilSlice, 5);
|
|
144
|
-
console.log("Append to nil slice len:", goscript.len(nilSlice)); // 1
|
|
145
|
-
console.log("Append to nil slice cap:", goscript.cap(nilSlice)); // 1 (or more)
|
|
146
|
-
console.log("Append to nil slice[0]:", nilSlice[0]); // 5
|
|
147
|
-
// Out-of-bounds indexing (should panic)
|
|
148
|
-
// Note: Testing panics in compliance tests requires specific handling in the test runner.
|
|
149
|
-
// For now, we'll add the code but expect it to fail if panics are not caught.
|
|
150
|
-
// The runner should ideally catch these panics and verify the error type/message.
|
|
151
|
-
// println("--- Testing out-of-bounds panic ---")
|
|
152
|
-
// smallSlice := []int{1}
|
|
153
|
-
// println(smallSlice[1]) // Index out of bounds (len 1, cap 1) - should panic
|
|
154
|
-
// smallSlice[1] = 10 // Index out of bounds - should panic
|
|
155
|
-
// println(smallSlice[-1]) // Negative index - should panic
|
|
156
|
-
// --- Slices of Slices Tests ---
|
|
157
|
-
console.log("--- Slices of Slices Tests ---");
|
|
158
|
-
// Create a slice of slices of integers
|
|
159
|
-
let sliceOfSlices = [[1, 2, 3], [4, 5], [6, 7, 8, 9]];
|
|
160
|
-
console.log("Length of sliceOfSlices:", goscript.len(sliceOfSlices)); // 3
|
|
161
|
-
console.log("Capacity of sliceOfSlices:", goscript.cap(sliceOfSlices)); // 3
|
|
162
|
-
// Access elements
|
|
163
|
-
console.log("sliceOfSlices[0][1]:", sliceOfSlices[0][1]); // 2
|
|
164
|
-
console.log("sliceOfSlices[1][0]:", sliceOfSlices[1][0]); // 4
|
|
165
|
-
console.log("sliceOfSlices[2][3]:", sliceOfSlices[2][3]); // 9
|
|
166
|
-
// Append to inner slice (should modify the inner slice)
|
|
167
|
-
console.log("--- Append to inner slice ---");
|
|
168
|
-
let innerSlice = sliceOfSlices[1]; // {4, 5}, len 2, cap 2
|
|
169
|
-
console.log("Length of innerSlice:", goscript.len(innerSlice)); // 2
|
|
170
|
-
console.log("Capacity of innerSlice:", goscript.cap(innerSlice)); // 2
|
|
171
|
-
innerSlice = goscript.append(innerSlice, 50); // {4, 5, 50}
|
|
172
|
-
console.log("Length of innerSlice after append:", goscript.len(innerSlice)); // 3
|
|
173
|
-
console.log("Capacity of innerSlice after append:", goscript.cap(innerSlice)); // 4 (or more)
|
|
174
|
-
console.log("innerSlice[2]:", innerSlice[2]); // 50
|
|
175
|
-
// Check if the original slice of slices reflects the change (it should, as innerSlice is a view)
|
|
176
|
-
// Note: Appending to innerSlice might reallocate its underlying array if capacity is exceeded.
|
|
177
|
-
// If reallocated, the original sliceOfSlices will *not* see the change at that index.
|
|
178
|
-
// This test case specifically checks the scenario where the append happens within the original capacity
|
|
179
|
-
// or if the reallocation behavior is correctly handled by GoScript.
|
|
180
|
-
// For this simple case, appending 50 to {4, 5} will likely cause reallocation.
|
|
181
|
-
// Let's test appending within capacity first.
|
|
182
|
-
// Create a slice of slices where inner slice has capacity for append
|
|
183
|
-
// {0, 0}, len 2, cap 5
|
|
184
|
-
let sliceOfSlicesWithCap = [[1, 2, 3], goscript.makeSlice(2, 5), [6, 7, 8, 9]];
|
|
185
|
-
sliceOfSlicesWithCap[1][0] = 40;
|
|
186
|
-
sliceOfSlicesWithCap[1][1] = 50;
|
|
187
|
-
console.log("--- Append to inner slice with capacity ---");
|
|
188
|
-
let innerSliceWithCap = sliceOfSlicesWithCap[1]; // {40, 50}, len 2, cap 5
|
|
189
|
-
console.log("Length of innerSliceWithCap:", goscript.len(innerSliceWithCap)); // 2
|
|
190
|
-
console.log("Capacity of innerSliceWithCap:", goscript.cap(innerSliceWithCap)); // 5
|
|
191
|
-
innerSliceWithCap = goscript.append(innerSliceWithCap, 60); // {40, 50, 60}
|
|
192
|
-
console.log("Length of innerSliceWithCap after append:", goscript.len(innerSliceWithCap)); // 3
|
|
193
|
-
console.log("Capacity of innerSliceWithCap after append:", goscript.cap(innerSliceWithCap)); // 5
|
|
194
|
-
console.log("innerSliceWithCap[2]:", innerSliceWithCap[2]); // 60
|
|
195
|
-
// Check if the original slice of slices reflects the change (it should, as append was within capacity)
|
|
196
|
-
console.log("sliceOfSlicesWithCap[1][2]:", sliceOfSlicesWithCap[1][2]); // 60
|
|
197
|
-
// Append to inner slice exceeding capacity
|
|
198
|
-
console.log("--- Append to inner slice exceeding capacity ---");
|
|
199
|
-
let innerSliceExceedCap = sliceOfSlices[0]; // {1, 2, 3}, len 3, cap 3
|
|
200
|
-
console.log("Length of innerSliceExceedCap:", goscript.len(innerSliceExceedCap)); // 3
|
|
201
|
-
console.log("Capacity of innerSliceExceedCap:", goscript.cap(innerSliceExceedCap)); // 3
|
|
202
|
-
innerSliceExceedCap = goscript.append(innerSliceExceedCap, 10, 20); // {1, 2, 3, 10, 20} - will reallocate
|
|
203
|
-
console.log("Length of innerSliceExceedCap after append:", goscript.len(innerSliceExceedCap)); // 5
|
|
204
|
-
console.log("Capacity of innerSliceExceedCap after append:", goscript.cap(innerSliceExceedCap)); // 6 (or more)
|
|
205
|
-
console.log("innerSliceExceedCap[3]:", innerSliceExceedCap[3]); // 10
|
|
206
|
-
console.log("innerSliceExceedCap[4]:", innerSliceExceedCap[4]); // 20
|
|
207
|
-
// Check if the original slice of slices reflects the change (it should NOT, due to reallocation)
|
|
208
|
-
// The original sliceOfSlices[0] should still be {1, 2, 3}
|
|
209
|
-
console.log("Original sliceOfSlices[0] after inner append:", sliceOfSlices[0][0], sliceOfSlices[0][1], sliceOfSlices[0][2]); // 1 2 3
|
|
210
|
-
// Slicing a slice of slices
|
|
211
|
-
console.log("--- Slicing a slice of slices ---");
|
|
212
|
-
let subSliceOfSlices = goscript.slice(sliceOfSlices, 1, 3); // {{4, 5}, {6, 7, 8, 9}}, len 2, cap 2
|
|
213
|
-
console.log("Length of subSliceOfSlices:", goscript.len(subSliceOfSlices)); // 2
|
|
214
|
-
console.log("Capacity of subSliceOfSlices:", goscript.cap(subSliceOfSlices)); // 2
|
|
215
|
-
console.log("subSliceOfSlices[0][0]:", subSliceOfSlices[0][0]); // 4
|
|
216
|
-
console.log("subSliceOfSlices[1][2]:", subSliceOfSlices[1][2]); // 8
|
|
217
|
-
// Modify element in sub-slice of slices (should affect original)
|
|
218
|
-
console.log("--- Modify element in sub-slice of slices ---");
|
|
219
|
-
subSliceOfSlices[0][1] = 55;
|
|
220
|
-
console.log("sliceOfSlices[1][1] after sub-slice modification:", sliceOfSlices[1][1]); // 55
|
|
221
|
-
// Append a new slice to the slice of slices
|
|
222
|
-
console.log("--- Append a new slice to slice of slices ---");
|
|
223
|
-
sliceOfSlices = goscript.append(sliceOfSlices, [100, 110]);
|
|
224
|
-
console.log("Length of sliceOfSlices after append:", goscript.len(sliceOfSlices)); // 4
|
|
225
|
-
console.log("Capacity of sliceOfSlices after append:", goscript.cap(sliceOfSlices)); // 6 (or more)
|
|
226
|
-
console.log("sliceOfSlices[3][0]:", sliceOfSlices[3][0]); // 100
|
|
227
|
-
// Append an existing slice to the slice of slices
|
|
228
|
-
console.log("--- Append an existing slice to slice of slices ---");
|
|
229
|
-
let existingSlice = [200, 210];
|
|
230
|
-
sliceOfSlices = goscript.append(sliceOfSlices, existingSlice);
|
|
231
|
-
console.log("Length of sliceOfSlices after appending existing:", goscript.len(sliceOfSlices)); // 5
|
|
232
|
-
console.log("Capacity of sliceOfSlices after appending existing:", goscript.cap(sliceOfSlices)); // 6 (or more)
|
|
233
|
-
console.log("sliceOfSlices[4][1]:", sliceOfSlices[4][1]); // 210
|
|
234
|
-
// Modify the appended existing slice (should NOT affect the slice in sliceOfSlices if it was copied)
|
|
235
|
-
// Go's append copies the slice header, but the underlying array is shared unless reallocation occurs.
|
|
236
|
-
// Modifying existingSlice *after* appending it should not affect the copy in sliceOfSlices
|
|
237
|
-
// unless they still share the underlying array and the modification is within the shared capacity.
|
|
238
|
-
// Let's test this carefully.
|
|
239
|
-
console.log("--- Modify appended existing slice ---");
|
|
240
|
-
existingSlice[0] = 205;
|
|
241
|
-
console.log("sliceOfSlices[4][0] after modifying existingSlice:", sliceOfSlices[4][0]); // Should still be 200 if copied or shared but not modified at index 0
|
|
242
|
-
// If we modify an element in the slice within sliceOfSlices, it *should* affect the original existingSlice
|
|
243
|
-
// if they share the underlying array.
|
|
244
|
-
console.log("--- Modify slice within sliceOfSlices ---");
|
|
245
|
-
sliceOfSlices[4][1] = 215;
|
|
246
|
-
console.log("existingSlice[1] after modifying slice within sliceOfSlices:", existingSlice[1]); // Should be 215
|
|
247
|
-
// Create a slice of slices using make
|
|
248
|
-
console.log("--- Make slice of slices ---");
|
|
249
|
-
let makeSliceOfSlices = goscript.makeSlice(2, 4); // len 2, cap 4
|
|
250
|
-
console.log("Length of makeSliceOfSlices:", goscript.len(makeSliceOfSlices)); // 2
|
|
251
|
-
console.log("Capacity of makeSliceOfSlices:", goscript.cap(makeSliceOfSlices)); // 4
|
|
252
|
-
// Initialize inner slices
|
|
253
|
-
makeSliceOfSlices[0] = [1000, 2000];
|
|
254
|
-
makeSliceOfSlices[1] = goscript.makeSlice(1, 3);
|
|
255
|
-
makeSliceOfSlices[1][0] = 3000;
|
|
256
|
-
console.log("makeSliceOfSlices[0][1]:", makeSliceOfSlices[0][1]); // 2000
|
|
257
|
-
console.log("makeSliceOfSlices[1][0]:", makeSliceOfSlices[1][0]); // 3000
|
|
258
|
-
// Append a new inner slice
|
|
259
|
-
makeSliceOfSlices = goscript.append(makeSliceOfSlices, [4000, 5000]);
|
|
260
|
-
console.log("Length of makeSliceOfSlices after append:", goscript.len(makeSliceOfSlices)); // 3
|
|
261
|
-
console.log("Capacity of makeSliceOfSlices after append:", goscript.cap(makeSliceOfSlices)); // 4
|
|
262
|
-
console.log("makeSliceOfSlices[2][1]:", makeSliceOfSlices[2][1]); // 5000
|
|
263
|
-
// Append another new inner slice (should exceed capacity and reallocate outer slice)
|
|
264
|
-
makeSliceOfSlices = goscript.append(makeSliceOfSlices, [6000]);
|
|
265
|
-
console.log("Length of makeSliceOfSlices after second append:", goscript.len(makeSliceOfSlices)); // 4
|
|
266
|
-
console.log("Capacity of makeSliceOfSlices after second append:", goscript.cap(makeSliceOfSlices)); // 8 (or more)
|
|
267
|
-
console.log("makeSliceOfSlices[3][0]:", makeSliceOfSlices[3][0]); // 6000
|
|
268
|
-
// Nil slice of slices
|
|
269
|
-
console.log("--- Nil slice of slices ---");
|
|
270
|
-
let nilSliceOfSlices = [];
|
|
271
|
-
console.log("Nil slice of slices len:", goscript.len(nilSliceOfSlices)); // 0
|
|
272
|
-
console.log("Nil slice of slices cap:", goscript.cap(nilSliceOfSlices)); // 0
|
|
273
|
-
// Append to nil slice of slices
|
|
274
|
-
nilSliceOfSlices = goscript.append(nilSliceOfSlices, [10000]);
|
|
275
|
-
console.log("Length of nilSliceOfSlices after append:", goscript.len(nilSliceOfSlices)); // 1
|
|
276
|
-
console.log("Capacity of nilSliceOfSlices after append:", goscript.cap(nilSliceOfSlices)); // 1 (or more)
|
|
277
|
-
console.log("nilSliceOfSlices[0][0]:", nilSliceOfSlices[0][0]); // 10000
|
|
278
|
-
// Append another slice to the nil slice of slices
|
|
279
|
-
nilSliceOfSlices = goscript.append(nilSliceOfSlices, [20000, 30000]);
|
|
280
|
-
console.log("Length of nilSliceOfSlices after second append:", goscript.len(nilSliceOfSlices)); // 2
|
|
281
|
-
console.log("Capacity of nilSliceOfSlices after second append:", goscript.cap(nilSliceOfSlices)); // 2 (or more)
|
|
282
|
-
console.log("nilSliceOfSlices[1][1]:", nilSliceOfSlices[1][1]); // 30000
|
|
283
|
-
// Empty slice of slices (not nil)
|
|
284
|
-
console.log("--- Empty slice of slices ---");
|
|
285
|
-
let emptySliceOfSlices = goscript.makeSlice(0);
|
|
286
|
-
console.log("Empty slice of slices len:", goscript.len(emptySliceOfSlices)); // 0
|
|
287
|
-
console.log("Empty slice of slices cap:", goscript.cap(emptySliceOfSlices)); // 0 (or more, implementation dependent)
|
|
288
|
-
// Append to empty slice of slices
|
|
289
|
-
emptySliceOfSlices = goscript.append(emptySliceOfSlices, [40000]);
|
|
290
|
-
console.log("Length of emptySliceOfSlices after append:", goscript.len(emptySliceOfSlices)); // 1
|
|
291
|
-
console.log("Capacity of emptySliceOfSlices after append:", goscript.cap(emptySliceOfSlices)); // 1 (or more)
|
|
292
|
-
console.log("emptySliceOfSlices[0][0]:", emptySliceOfSlices[0][0]); // 40000
|
|
293
|
-
}
|
|
294
|
-
//# sourceMappingURL=slices.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slices.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/slices/slices.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Generated file based on string_conversion.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
export async function main() {
|
|
5
|
-
// === string(string) Conversion ===
|
|
6
|
-
let myVar = "hello world";
|
|
7
|
-
console.log(myVar);
|
|
8
|
-
// === string(rune) Conversion ===
|
|
9
|
-
let r = 65;
|
|
10
|
-
let s = String.fromCharCode(r);
|
|
11
|
-
console.log(s);
|
|
12
|
-
// 'a'
|
|
13
|
-
let r2 = 97;
|
|
14
|
-
let s2 = String.fromCharCode(r2);
|
|
15
|
-
console.log(s2);
|
|
16
|
-
// '€'
|
|
17
|
-
let r3 = 0x20AC;
|
|
18
|
-
let s3 = String.fromCharCode(r3);
|
|
19
|
-
console.log(s3);
|
|
20
|
-
// === string([]rune) Conversion ===
|
|
21
|
-
let myRunes = [71, 111, 83, 99, 114, 105, 112, 116];
|
|
22
|
-
let myStringFromRunes = goscript.runesToString(myRunes);
|
|
23
|
-
console.log(myStringFromRunes);
|
|
24
|
-
let emptyRunes = [];
|
|
25
|
-
let emptyStringFromRunes = goscript.runesToString(emptyRunes);
|
|
26
|
-
console.log(emptyStringFromRunes);
|
|
27
|
-
// === []rune(string) and string([]rune) Round Trip ===
|
|
28
|
-
let originalString = "你好世界"; // Example with multi-byte characters
|
|
29
|
-
let runesFromString = goscript.stringToRunes(originalString);
|
|
30
|
-
let stringFromRunes = goscript.runesToString(runesFromString);
|
|
31
|
-
console.log(originalString);
|
|
32
|
-
console.log(stringFromRunes);
|
|
33
|
-
console.log(originalString == stringFromRunes);
|
|
34
|
-
// === Modify []rune and convert back to string ===
|
|
35
|
-
let mutableRunes = goscript.stringToRunes("Mutable String");
|
|
36
|
-
mutableRunes[0] = 109;
|
|
37
|
-
mutableRunes[8] = 115;
|
|
38
|
-
let modifiedString = goscript.runesToString(mutableRunes);
|
|
39
|
-
console.log(modifiedString);
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=string_conversion.gs.js.map
|