goscript 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +9 -2
  2. package/builtin/builtin.ts +31 -21
  3. package/compiler/compile.go +2 -3
  4. package/compiler/compile_expr.go +7 -3
  5. package/compiler/compile_stmt.go +3 -7
  6. package/compiler/output.go +10 -0
  7. package/compiler/pkg_compiler.go +1 -2
  8. package/compiler/types/tokens.go +65 -0
  9. package/compiler/types/types.go +46 -0
  10. package/dist/builtin/builtin.d.ts +1 -1
  11. package/dist/builtin/builtin.js +29 -18
  12. package/dist/builtin/builtin.js.map +1 -1
  13. package/dist/compliance/tests/array_literal/array_literal.gs.d.ts +1 -0
  14. package/dist/compliance/tests/array_literal/array_literal.gs.js +14 -0
  15. package/dist/compliance/tests/array_literal/array_literal.gs.js.map +1 -0
  16. package/dist/compliance/tests/async_basic/async_basic.gs.d.ts +1 -0
  17. package/dist/compliance/tests/async_basic/async_basic.gs.js +24 -0
  18. package/dist/compliance/tests/async_basic/async_basic.gs.js.map +1 -0
  19. package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.d.ts +1 -0
  20. package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js +16 -0
  21. package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js.map +1 -0
  22. package/dist/compliance/tests/boolean_logic/boolean_logic.gs.d.ts +1 -0
  23. package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js +14 -0
  24. package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js.map +1 -0
  25. package/dist/compliance/tests/channel_basic/channel_basic.gs.d.ts +1 -0
  26. package/dist/compliance/tests/channel_basic/channel_basic.gs.js +14 -0
  27. package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +1 -0
  28. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.d.ts +1 -0
  29. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +23 -0
  30. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +1 -0
  31. package/dist/compliance/tests/constants/constants.gs.d.ts +1 -0
  32. package/dist/compliance/tests/constants/constants.gs.js +16 -0
  33. package/dist/compliance/tests/constants/constants.gs.js.map +1 -0
  34. package/dist/compliance/tests/copy_independence/copy_independence.gs.d.ts +1 -0
  35. package/dist/compliance/tests/copy_independence/copy_independence.gs.js +31 -0
  36. package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -0
  37. package/dist/compliance/tests/float64/float64.gs.d.ts +1 -0
  38. package/dist/compliance/tests/float64/float64.gs.js +23 -0
  39. package/dist/compliance/tests/float64/float64.gs.js.map +1 -0
  40. package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.d.ts +1 -0
  41. package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js +10 -0
  42. package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js.map +1 -0
  43. package/dist/compliance/tests/for_loop_condition_only/main.gs.d.ts +1 -0
  44. package/dist/compliance/tests/for_loop_condition_only/main.gs.js +10 -0
  45. package/dist/compliance/tests/for_loop_condition_only/main.gs.js.map +1 -0
  46. package/dist/compliance/tests/for_range/for_range.gs.d.ts +1 -0
  47. package/dist/compliance/tests/for_range/for_range.gs.js +39 -0
  48. package/dist/compliance/tests/for_range/for_range.gs.js.map +1 -0
  49. package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.d.ts +1 -0
  50. package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js +15 -0
  51. package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js.map +1 -0
  52. package/dist/compliance/tests/func_literal/func_literal.gs.d.ts +1 -0
  53. package/dist/compliance/tests/func_literal/func_literal.gs.js +10 -0
  54. package/dist/compliance/tests/func_literal/func_literal.gs.js.map +1 -0
  55. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +10 -0
  56. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +26 -0
  57. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -0
  58. package/dist/compliance/tests/if_statement/if_statement.gs.d.ts +1 -0
  59. package/dist/compliance/tests/if_statement/if_statement.gs.js +13 -0
  60. package/dist/compliance/tests/if_statement/if_statement.gs.js.map +1 -0
  61. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.d.ts +1 -0
  62. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +26 -0
  63. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -0
  64. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.d.ts +1 -0
  65. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +26 -0
  66. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -0
  67. package/dist/compliance/tests/map_support/map_support.gs.d.ts +1 -0
  68. package/dist/compliance/tests/map_support/map_support.gs.js +88 -0
  69. package/dist/compliance/tests/map_support/map_support.gs.js.map +1 -0
  70. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.d.ts +1 -0
  71. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +22 -0
  72. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +1 -0
  73. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.d.ts +1 -0
  74. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +30 -0
  75. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +1 -0
  76. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.d.ts +1 -0
  77. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +19 -0
  78. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +1 -0
  79. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.d.ts +1 -0
  80. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +30 -0
  81. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +1 -0
  82. package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.d.ts +1 -0
  83. package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js +17 -0
  84. package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js.map +1 -0
  85. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.d.ts +1 -0
  86. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +26 -0
  87. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +1 -0
  88. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.d.ts +1 -0
  89. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +24 -0
  90. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +1 -0
  91. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.d.ts +1 -0
  92. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +19 -0
  93. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +1 -0
  94. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.d.ts +1 -0
  95. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +18 -0
  96. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +1 -0
  97. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.d.ts +1 -0
  98. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +27 -0
  99. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +1 -0
  100. 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
  101. package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +29 -0
  102. 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
  103. package/dist/compliance/tests/select_statement/select_statement.gs.d.ts +1 -0
  104. package/dist/compliance/tests/select_statement/select_statement.gs.js +209 -0
  105. package/dist/compliance/tests/select_statement/select_statement.gs.js.map +1 -0
  106. package/dist/compliance/tests/simple/simple.gs.d.ts +1 -0
  107. package/dist/compliance/tests/simple/simple.gs.js +6 -0
  108. package/dist/compliance/tests/simple/simple.gs.js.map +1 -0
  109. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.d.ts +1 -0
  110. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +22 -0
  111. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -0
  112. package/dist/compliance/tests/slices/slices.gs.d.ts +1 -0
  113. package/dist/compliance/tests/slices/slices.gs.js +21 -0
  114. package/dist/compliance/tests/slices/slices.gs.js.map +1 -0
  115. package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.d.ts +1 -0
  116. package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js +17 -0
  117. package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +1 -0
  118. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.d.ts +1 -0
  119. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +16 -0
  120. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -0
  121. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.d.ts +1 -0
  122. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +27 -0
  123. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +1 -0
  124. package/dist/compliance/tests/switch_statement/switch_statement.gs.d.ts +1 -0
  125. package/dist/compliance/tests/switch_statement/switch_statement.gs.js +76 -0
  126. package/dist/compliance/tests/switch_statement/switch_statement.gs.js.map +1 -0
  127. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.d.ts +1 -0
  128. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +29 -0
  129. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -0
  130. package/package.json +1 -1
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float64.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/float64/float64.gs.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAC,GAAW,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,IAAI,CAAS,CAAC;IAEd,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAEzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAEzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAEzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAEzB,aAAa;IACb,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,CAAC,GAAG,CAAC,CAAA;IACL,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAErB,0BAA0B;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;AAC1C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,10 @@
1
+ // Generated file based on for_loop_basic.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ console.log("Starting loop");
5
+ for (let i = 0; i < 3; i++) {
6
+ console.log("Iteration:", i);
7
+ }
8
+ console.log("Loop finished");
9
+ }
10
+ //# sourceMappingURL=for_loop_basic.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for_loop_basic.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_loop_basic/for_loop_basic.gs.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC7B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,10 @@
1
+ // Generated file based on main.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ let i = 0;
5
+ for (; i < 5;) {
6
+ console.log(i);
7
+ i++;
8
+ }
9
+ }
10
+ //# sourceMappingURL=main.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_loop_condition_only/main.gs.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACd,CAAC,EAAE,CAAA;IACJ,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,39 @@
1
+ // Generated file based on for_range.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 nums = [2, 3, 4];
6
+ let sum = 0;
7
+ for (let i = 0; i < nums.length; i++) {
8
+ const num = nums[i];
9
+ {
10
+ sum += num;
11
+ }
12
+ }
13
+ console.log("sum:", sum);
14
+ for (let i = 0; i < nums.length; i++) {
15
+ const num = nums[i];
16
+ {
17
+ console.log("index:", i, "value:", num);
18
+ }
19
+ }
20
+ // Test ranging over an array
21
+ let arr = ["a", "b", "c"];
22
+ for (let i = 0; i < arr.length; i++) {
23
+ const s = arr[i];
24
+ {
25
+ console.log("index:", i, "value:", s);
26
+ }
27
+ }
28
+ // Test ranging over a string
29
+ let str = "go";
30
+ // Note: c will be a rune (int32)
31
+ const _runes = goscript.stringToRunes(str);
32
+ for (let i = 0; i < _runes.length; i++) {
33
+ const c = _runes[i];
34
+ {
35
+ console.log("index:", i, "value:", c); // Note: c will be a rune (int32)
36
+ }
37
+ }
38
+ }
39
+ //# sourceMappingURL=for_range.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for_range.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_range/for_range.gs.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACpB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;YACA,GAAG,IAAI,GAAG,CAAA;QACX,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;YACA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QACxC,CAAC;IACF,CAAC;IAED,6BAA6B;IAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;YACA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACtC,CAAC;IACF,CAAC;IAED,6BAA6B;IAC7B,IAAI,GAAG,GAAG,IAAI,CAAA;IAEd,iCAAiC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;YACA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA,CAAC,iCAAiC;QACxE,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,15 @@
1
+ // Generated file based on for_range_index_use.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ let slice = [10, 20, 30, 40, 50];
5
+ let sum = 0;
6
+ for (let idx = 0; idx < slice.length; idx++) {
7
+ const val = slice[idx];
8
+ {
9
+ sum += val;
10
+ console.log("Range idx:", idx, "val:", val);
11
+ }
12
+ }
13
+ console.log("Sum:", sum);
14
+ }
15
+ //# sourceMappingURL=for_range_index_use.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for_range_index_use.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_range_index_use/for_range_index_use.gs.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAChC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;YACA,GAAG,IAAI,GAAG,CAAA;YACV,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACzB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,10 @@
1
+ // Generated file based on func_literal.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ let greet = (name) => {
5
+ return "Hello, " + name;
6
+ };
7
+ let message = greet("world");
8
+ console.log(message);
9
+ }
10
+ //# sourceMappingURL=func_literal.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"func_literal.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/func_literal/func_literal.gs.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC5B,OAAO,SAAS,GAAG,IAAI,CAAA;IACxB,CAAC,CAAA;IAGD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare class MyStruct {
2
+ MyInt: number;
3
+ MyString: string;
4
+ private myBool;
5
+ constructor(init?: Partial<MyStruct>);
6
+ clone(): MyStruct;
7
+ }
8
+ export declare function NewMyStruct(s: string): MyStruct;
9
+ export declare function main(): Promise<void>;
10
+ export {};
@@ -0,0 +1,26 @@
1
+ // Generated file based on function_call_result_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
+ // NewMyStruct creates a new MyStruct instance.
12
+ export function NewMyStruct(s) {
13
+ return new MyStruct({ MyString: s });
14
+ }
15
+ export async function main() {
16
+ // === Function Call Result Assignment (Value Copy) ===
17
+ // Assigning the result of a function that returns a struct creates a copy.
18
+ let structFromFunc = NewMyStruct("function result").clone();
19
+ let structFromFuncCopy = structFromFunc.clone();
20
+ structFromFuncCopy.MyString = "modified function result copy";
21
+ // Expected: "function result"
22
+ console.log("Original struct from function: Expected: function result, Actual: " + structFromFunc.MyString);
23
+ // Expected: "modified function result copy"
24
+ console.log("Modified struct from function copy: Expected: modified function result copy, Actual: " + structFromFuncCopy.MyString);
25
+ }
26
+ //# sourceMappingURL=function_call_result_assignment.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function_call_result_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,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,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,CAAS;IACpC,OAAO,IAAI,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,uDAAuD;IACvD,2EAA2E;IAC3E,IAAI,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAA;IAC3D,IAAI,kBAAkB,GAAG,cAAc,CAAC,KAAK,EAAE,CAAA;IAC/C,kBAAkB,CAAC,QAAQ,GAAG,+BAA+B,CAAA;IAC7D,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,oEAAoE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC3G,4CAA4C;IAC5C,OAAO,CAAC,GAAG,CAAC,uFAAuF,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AACnI,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,13 @@
1
+ // Generated file based on if_statement.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ // === If Statement ===
5
+ let n = 7;
6
+ if (n % 2 == 0) {
7
+ console.log("Even: Expected: (no output)");
8
+ }
9
+ else {
10
+ console.log("Odd: Expected: Odd, Actual: Odd");
11
+ }
12
+ }
13
+ //# sourceMappingURL=if_statement.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if_statement.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/if_statement/if_statement.gs.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,uBAAuB;IACvB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IAC3C,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAC/C,CAAC;AACF,CAAC"}
@@ -0,0 +1,26 @@
1
+ // Generated file based on interface_to_interface_type_assertion.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ Value = 0;
5
+ Method1() {
6
+ const m = this;
7
+ return m.Value;
8
+ }
9
+ constructor(init) { if (init)
10
+ Object.assign(this, init); }
11
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
12
+ }
13
+ export async function main() {
14
+ let i;
15
+ let s = new MyStruct({ Value: 10 });
16
+ i = s.clone();
17
+ let ok = i;
18
+ let assertedValue = ok ? i : null;
19
+ if (ok) {
20
+ console.log("Type assertion successful");
21
+ }
22
+ else {
23
+ console.log("Type assertion failed");
24
+ }
25
+ }
26
+ //# sourceMappingURL=interface_to_interface_type_assertion.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_to_interface_type_assertion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yDAAyD;AASzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAElB,OAAO;QACb,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,KAAK,CAAA;IACf,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;CACvG;AAOD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAc,CAAC;IACnB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEb,IAAI,EAAE,GAAa,CAAoC,CAAA;IACvD,IAAI,aAAa,GAA4B,EAAE,CAAC,CAAC,CAAE,CAAsB,CAAC,CAAC,CAAC,IAAI,CAAA;IAChF,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACrC,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,26 @@
1
+ // Generated file based on interface_type_assertion.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ Value = 0;
5
+ Method1() {
6
+ const m = this;
7
+ return m.Value;
8
+ }
9
+ constructor(init) { if (init)
10
+ Object.assign(this, init); }
11
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
12
+ }
13
+ export async function main() {
14
+ let i;
15
+ let s = new MyStruct({ Value: 10 });
16
+ i = s.clone();
17
+ let ok = i;
18
+ let assertedValue = ok ? i : null;
19
+ if (ok) {
20
+ console.log("Type assertion successful");
21
+ }
22
+ else {
23
+ console.log("Type assertion failed");
24
+ }
25
+ }
26
+ //# sourceMappingURL=interface_type_assertion.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_type_assertion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/interface_type_assertion/interface_type_assertion.gs.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,yDAAyD;AASzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAElB,OAAO;QACb,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,KAAK,CAAA;IACf,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAc,CAAC;IACnB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEb,IAAI,EAAE,GAAa,CAA4B,CAAA;IAC/C,IAAI,aAAa,GAAoB,EAAE,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACrC,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,88 @@
1
+ // Generated file based on map_support.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
+ // Create map using make
6
+ let scores = goscript.makeMap();
7
+ console.log("Empty map created: Expected: true, Actual:", goscript.len(scores) == 0);
8
+ // Add key-value pairs
9
+ goscript.mapSet(scores, "Alice", 90);
10
+ goscript.mapSet(scores, "Bob", 85);
11
+ goscript.mapSet(scores, "Charlie", 92);
12
+ // Map size
13
+ console.log("Map size after adding 3 items: Expected: 3, Actual:", goscript.len(scores));
14
+ // Access values
15
+ console.log("Alice's score: Expected: 90, Actual:", scores.get("Alice"));
16
+ console.log("Bob's score: Expected: 85, Actual:", scores.get("Bob"));
17
+ // Modify a value
18
+ goscript.mapSet(scores, "Bob", 88);
19
+ console.log("Bob's updated score: Expected: 88, Actual:", scores.get("Bob"));
20
+ // Check if key exists (comma-ok idiom)
21
+ let value;
22
+ let exists;
23
+ exists = scores.has("David");
24
+ value = scores.get("David") ?? 0;
25
+ console.log("Does David exist in map? Expected: false, Actual:", exists);
26
+ console.log("Value for non-existent key: Expected: 0, Actual:", value);
27
+ // Delete a key
28
+ goscript.deleteMapEntry(scores, "Charlie");
29
+ exists = scores.has("Charlie");
30
+ console.log("After delete, does Charlie exist? Expected: false, Actual:", exists);
31
+ // Create map with literal syntax
32
+ let colors = new Map([["red", "#ff0000"], ["green", "#00ff00"], ["blue", "#0000ff"]]);
33
+ console.log("Map literal size: Expected: 3, Actual:", goscript.len(colors));
34
+ console.log("Color code for red: Expected: #ff0000, Actual:", colors.get("red"));
35
+ // Iterate over a map with range
36
+ console.log("Iterating over scores map:");
37
+ // Note: Map iteration is not ordered in Go, so we will collect the results and sort them for consistent test output.
38
+ let scoreResults = [];
39
+ // Using string concatenation to build the output string
40
+ for (const [k, v] of scores.entries()) {
41
+ const name = k;
42
+ const score = v;
43
+ {
44
+ // Using string concatenation to build the output string
45
+ let result = " - Name: " + name + " Score: " + itoa(score);
46
+ scoreResults = goscript.append(scoreResults, result);
47
+ }
48
+ }
49
+ // Inline bubble sort for string slice
50
+ // (avoid importing sort package yet)
51
+ let n = goscript.len(scoreResults);
52
+ for (let i = 0; i < n - 1; i++) {
53
+ for (let j = 0; j < n - i - 1; j++) {
54
+ if (scoreResults[j] > scoreResults[j + 1]) {
55
+ scoreResults[j] = scoreResults[j + 1];
56
+ scoreResults[j + 1] = scoreResults[j];
57
+ }
58
+ }
59
+ }
60
+ for (let i = 0; i < scoreResults.length; i++) {
61
+ const result = scoreResults[i];
62
+ {
63
+ console.log(result);
64
+ }
65
+ }
66
+ }
67
+ // Helper function to convert int to string
68
+ // (avoid importing strings package)
69
+ function itoa(i) {
70
+ if (i == 0) {
71
+ return "0";
72
+ }
73
+ let s = "";
74
+ let isNegative = false;
75
+ if (i < 0) {
76
+ isNegative = true;
77
+ i = -i;
78
+ }
79
+ for (; i > 0;) {
80
+ s = String.fromCharCode(i % 10 + 48) + s;
81
+ i = Math.floor(i / 10);
82
+ }
83
+ if (isNegative) {
84
+ s = "-" + s;
85
+ }
86
+ return s;
87
+ }
88
+ //# sourceMappingURL=map_support.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map_support.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/map_support/map_support.gs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,22 @@
1
+ // Generated file based on method_call_on_pointer_receiver.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ MyInt = 0;
5
+ MyString = "";
6
+ myBool = false;
7
+ // GetMyString returns the MyString field.
8
+ GetMyString() {
9
+ const m = this;
10
+ return m.MyString;
11
+ }
12
+ constructor(init) { if (init)
13
+ Object.assign(this, init); }
14
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
15
+ }
16
+ export async function main() {
17
+ let structPointer = new MyStruct({ MyInt: 4, MyString: "hello world" });
18
+ // === Method Call on Pointer Receiver ===
19
+ // Calling a method with a pointer receiver (*MyStruct) using a pointer variable.
20
+ console.log("Method call on pointer (structPointer): Expected: hello world, Actual: " + structPointer.GetMyString());
21
+ }
22
+ //# sourceMappingURL=method_call_on_pointer_receiver.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_call_on_pointer_receiver.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,yDAAyD;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IACrB,MAAM,GAAY,KAAK,CAAC;IAEhC,0CAA0C;IACnC,WAAW;QACjB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,QAAQ,CAAA;IAClB,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,0CAA0C;IAC1C,iFAAiF;IACjF,OAAO,CAAC,GAAG,CAAC,yEAAyE,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,CAAA;AACrH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,30 @@
1
+ // Generated file based on method_call_on_pointer_via_value.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ MyInt = 0;
5
+ // SetValue sets the MyInt field (pointer receiver).
6
+ SetValue(v) {
7
+ const m = this;
8
+ m.MyInt = v;
9
+ }
10
+ // GetValue returns the MyInt field (value receiver for verification).
11
+ GetValue() {
12
+ const m = this;
13
+ return m.MyInt;
14
+ }
15
+ constructor(init) { if (init)
16
+ Object.assign(this, init); }
17
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
18
+ }
19
+ export async function main() {
20
+ // Create a struct value
21
+ let msValue = new MyStruct({ MyInt: 100 });
22
+ // === Method Call on Pointer Receiver via Value ===
23
+ // Call the pointer-receiver method using the value variable.
24
+ // Go implicitly takes the address of msValue (&msValue) to call SetValue.
25
+ msValue.SetValue(200);
26
+ // Verify the value was modified through the method call.
27
+ // Expected: 200
28
+ console.log("Value after pointer method call via value: Expected: 200, Actual:", msValue.GetValue());
29
+ }
30
+ //# sourceMappingURL=method_call_on_pointer_via_value.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_call_on_pointer_via_value.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,yDAAyD;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAEzB,oDAAoD;IAC7C,QAAQ,CAAC,CAAS;QACxB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,CAAC,CAAC,KAAK,GAAG,CAAC,CAAA;IACZ,CAAC;IAED,sEAAsE;IAC/D,QAAQ;QACd,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,KAAK,CAAA;IACf,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,wBAAwB;IACxB,IAAI,OAAO,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAE1C,oDAAoD;IACpD,6DAA6D;IAC7D,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAErB,yDAAyD;IACzD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrG,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,19 @@
1
+ // Generated file based on method_call_on_value_receiver.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ MyInt = 0;
5
+ MyString = "";
6
+ // GetMyString returns the MyString field.
7
+ GetMyString() {
8
+ const m = this;
9
+ return m.MyString;
10
+ }
11
+ constructor(init) { if (init)
12
+ Object.assign(this, init); }
13
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
14
+ }
15
+ export async function main() {
16
+ let ms = new MyStruct({ MyInt: 1, MyString: "bar" });
17
+ console.log("Method call on value: Expected: bar, Actual:", ms.GetMyString());
18
+ }
19
+ //# sourceMappingURL=method_call_on_value_receiver.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_call_on_value_receiver.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,yDAAyD;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,0CAA0C;IACnC,WAAW;QACjB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,QAAQ,CAAA;IAClB,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9E,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,30 @@
1
+ // Generated file based on method_call_on_value_via_pointer.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ class MyStruct {
4
+ MyInt = 0;
5
+ // GetValue returns the MyInt field (value receiver).
6
+ GetValue() {
7
+ const m = this;
8
+ return m.MyInt;
9
+ }
10
+ constructor(init) { if (init)
11
+ Object.assign(this, init); }
12
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
13
+ }
14
+ export async function main() {
15
+ // Create a struct value
16
+ let msValue = new MyStruct({ MyInt: 100 });
17
+ // Create a pointer to the struct value
18
+ let msPointer = msValue;
19
+ // === Method Call on Value Receiver via Pointer ===
20
+ // Call the value-receiver method using the pointer variable.
21
+ // Go implicitly dereferences msPointer to call GetValue on the value.
22
+ // Expected: 100
23
+ console.log("Value via pointer call: Expected: 100, Actual:", msPointer.GetValue());
24
+ // Modify the value through the original value variable
25
+ msValue.MyInt = 200;
26
+ // The pointer still points to the modified value
27
+ // Expected: 200
28
+ console.log("Value via pointer call after modification: Expected: 200, Actual:", msPointer.GetValue());
29
+ }
30
+ //# sourceMappingURL=method_call_on_value_via_pointer.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_call_on_value_via_pointer.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,yDAAyD;AAIzD,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAEzB,qDAAqD;IAC9C,QAAQ;QACd,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,KAAK,CAAA;IACf,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,wBAAwB;IACxB,IAAI,OAAO,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC1C,uCAAuC;IACvC,IAAI,SAAS,GAAG,OAAO,CAAA;IAEvB,oDAAoD;IACpD,6DAA6D;IAC7D,sEAAsE;IACtE,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEnF,uDAAuD;IACvD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAA;IAEnB,iDAAiD;IACjD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;AACvG,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ // Generated file based on multiple_return_values.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ function multipleReturnValues() {
4
+ return [42, "hello", true];
5
+ }
6
+ export async function main() {
7
+ let [a, b, c] = multipleReturnValues();
8
+ console.log(a);
9
+ console.log(b);
10
+ console.log(c);
11
+ let [x, , z] = multipleReturnValues();
12
+ console.log(x);
13
+ console.log(z);
14
+ let [, y,] = multipleReturnValues();
15
+ console.log(y);
16
+ }
17
+ //# sourceMappingURL=multiple_return_values.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple_return_values.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/multiple_return_values/multiple_return_values.gs.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,yDAAyD;AAIzD,SAAS,oBAAoB;IAC5B,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEd,IAAI,CAAC,CAAC,EAAE,AAAD,EAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEd,IAAI,CAAC,EAAE,CAAC,EAAG,GAAG,oBAAoB,EAAE,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;