goscript 0.0.7 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +13 -5
  2. package/builtin/builtin.ts +180 -0
  3. package/compiler/compile_expr.go +119 -25
  4. package/compiler/compile_spec.go +175 -2
  5. package/compiler/compile_stmt.go +99 -69
  6. package/compiler/writer.go +2 -2
  7. package/dist/builtin/builtin.d.ts +55 -0
  8. package/dist/builtin/builtin.js +126 -0
  9. package/dist/builtin/builtin.js.map +1 -1
  10. package/dist/compliance/tests/array_literal/array_literal.gs.js +1 -0
  11. package/dist/compliance/tests/array_literal/array_literal.gs.js.map +1 -1
  12. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +4 -0
  13. package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +1 -1
  14. package/dist/compliance/tests/copy_independence/copy_independence.gs.js +3 -1
  15. package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +1 -1
  16. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.d.ts +1 -0
  17. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +37 -0
  18. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +1 -0
  19. package/dist/compliance/tests/float64/float64.gs.js +1 -0
  20. package/dist/compliance/tests/float64/float64.gs.js.map +1 -1
  21. package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.d.ts +1 -0
  22. package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js +11 -0
  23. package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js.map +1 -0
  24. package/dist/compliance/tests/func_literal/func_literal.gs.js.map +1 -1
  25. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +2 -0
  26. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +4 -0
  27. package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +1 -1
  28. package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.d.ts +1 -0
  29. package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +34 -0
  30. package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +1 -0
  31. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +8 -2
  32. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -1
  33. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +6 -2
  34. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -1
  35. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +3 -1
  36. package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +1 -1
  37. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +3 -0
  38. package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +1 -1
  39. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +3 -0
  40. package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +1 -1
  41. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +3 -0
  42. package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +1 -1
  43. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +3 -0
  44. package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +1 -1
  45. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +3 -0
  46. package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +1 -1
  47. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +3 -0
  48. package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +1 -1
  49. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +3 -1
  50. package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +1 -1
  51. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +17 -16
  52. package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +1 -1
  53. package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +13 -13
  54. package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js.map +1 -1
  55. package/dist/compliance/tests/select_statement/select_statement.gs.js +119 -119
  56. package/dist/compliance/tests/select_statement/select_statement.gs.js.map +1 -1
  57. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +3 -1
  58. package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +1 -1
  59. package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +1 -1
  60. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +3 -0
  61. package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +1 -1
  62. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +3 -0
  63. package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +1 -1
  64. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +3 -1
  65. package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +1 -1
  66. package/package.json +2 -2
@@ -1 +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"}
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,oBAAoB;IACpB,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,11 @@
1
+ // Generated file based on for_loop_condition_only.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ let i = 0;
5
+ for (; i < 3;) {
6
+ console.log("Current value:", i);
7
+ i = i + 1;
8
+ }
9
+ console.log("Loop finished");
10
+ }
11
+ //# sourceMappingURL=for_loop_condition_only.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for_loop_condition_only.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,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,gBAAgB,EAAE,CAAC,CAAC,CAAA;QAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC7B,CAAC"}
@@ -1 +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"}
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,EAAU,EAAE;QACpC,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"}
@@ -1,9 +1,11 @@
1
+ import * as goscript from "@go/builtin";
1
2
  declare class MyStruct {
2
3
  MyInt: number;
3
4
  MyString: string;
4
5
  private myBool;
5
6
  constructor(init?: Partial<MyStruct>);
6
7
  clone(): MyStruct;
8
+ static __typeInfo: goscript.TypeInfo;
7
9
  }
8
10
  export declare function NewMyStruct(s: string): MyStruct;
9
11
  export declare function main(): Promise<void>;
@@ -1,12 +1,16 @@
1
1
  // Generated file based on function_call_result_assignment.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
7
+ //nolint:unused
6
8
  myBool = false;
7
9
  constructor(init) { if (init)
8
10
  Object.assign(this, init); }
9
11
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
12
+ // Register this type with the runtime type system
13
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
10
14
  }
11
15
  // NewMyStruct creates a new MyStruct instance.
12
16
  export function NewMyStruct(s) {
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAC7B,eAAe;IACP,MAAM,GAAY,KAAK,CAAC;IAEhC,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,+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,34 @@
1
+ // Generated file based on interface_multi_param_return.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
4
+ // Register this interface with the runtime type system
5
+ const MultiParamReturner__typeInfo = goscript.registerType('MultiParamReturner', goscript.TypeKind.Interface, null, new Set(['Process']), undefined);
6
+ class MyProcessor {
7
+ Process(data, count, _) {
8
+ const p = this;
9
+ if (count > 0 && goscript.len(data) > 0) {
10
+ console.log("Processing successful");
11
+ return [true, null];
12
+ }
13
+ console.log("Processing failed");
14
+ return [false, null];
15
+ }
16
+ constructor(init) { if (init)
17
+ Object.assign(this, init); }
18
+ clone() { return Object.assign(Object.create(MyProcessor.prototype), this); }
19
+ // Register this type with the runtime type system
20
+ static __typeInfo = goscript.registerType('MyProcessor', goscript.TypeKind.Struct, new MyProcessor(), new Set(['Process']), MyProcessor);
21
+ }
22
+ export async function main() {
23
+ let processor;
24
+ processor = new MyProcessor({});
25
+ let data = [1, 2, 3];
26
+ let [success,] = processor.Process(data, 5, "unused");
27
+ if (success) {
28
+ console.log("Main: Success reported");
29
+ }
30
+ else {
31
+ console.log("Main: Failure reported");
32
+ }
33
+ }
34
+ //# sourceMappingURL=interface_multi_param_return.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_multi_param_return.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,4BAA4B,GAAG,QAAQ,CAAC,YAAY,CACxD,oBAAoB,EACpB,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,SAAS,CACV,CAAC;AAEF,MAAM,WAAW;IAET,OAAO,CAAC,IAAc,EAAE,KAAa,EAAE,CAAS;QACtD,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACpC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAChC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,YAAY,IAA2B,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAK,KAAkB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhH,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,aAAa,EACb,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,WAAW,EAAE,EACjB,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,WAAW,CACZ,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,SAA6B,CAAC;IAClC,SAAS,GAAG,IAAI,WAAW,CAAC,EAAI,CAAC,CAAA;IAEjC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACpB,IAAI,CAAC,OAAO,EAAG,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACtC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACtC,CAAC;AACF,CAAC"}
@@ -1,5 +1,8 @@
1
1
  // Generated file based on interface_to_interface_type_assertion.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
4
+ // Register this interface with the runtime type system
5
+ const MyInterface__typeInfo = goscript.registerType('MyInterface', goscript.TypeKind.Interface, null, new Set(['Method1']), undefined);
3
6
  class MyStruct {
4
7
  Value = 0;
5
8
  Method1() {
@@ -9,13 +12,16 @@ class MyStruct {
9
12
  constructor(init) { if (init)
10
13
  Object.assign(this, init); }
11
14
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
15
+ // Register this type with the runtime type system
16
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['Method1']), MyStruct);
12
17
  }
18
+ // Register this interface with the runtime type system
19
+ const MyOtherInterface__typeInfo = goscript.registerType('MyOtherInterface', goscript.TypeKind.Interface, null, new Set(['Method1']), undefined);
13
20
  export async function main() {
14
21
  let i;
15
22
  let s = new MyStruct({ Value: 10 });
16
23
  i = s.clone();
17
- let ok = i;
18
- let assertedValue = ok ? i : null;
24
+ let { value: _, ok: ok } = goscript.typeAssert(i, 'MyOtherInterface');
19
25
  if (ok) {
20
26
  console.log("Type assertion successful");
21
27
  }
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CACjD,aAAa,EACb,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,SAAS,CACV,CAAC;AAEF,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,QAAQ,CACT,CAAC;;AAOH,uDAAuD;AACvD,MAAM,0BAA0B,GAAG,QAAQ,CAAC,YAAY,CACtD,kBAAkB,EAClB,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,SAAS,CACV,CAAC;AAEF,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,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAmB,CAAC,EAAE,kBAAkB,CAAC,CAAA;IACvF,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"}
@@ -1,5 +1,8 @@
1
1
  // Generated file based on interface_type_assertion.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
4
+ // Register this interface with the runtime type system
5
+ const MyInterface__typeInfo = goscript.registerType('MyInterface', goscript.TypeKind.Interface, null, new Set(['Method1']), undefined);
3
6
  class MyStruct {
4
7
  Value = 0;
5
8
  Method1() {
@@ -9,13 +12,14 @@ class MyStruct {
9
12
  constructor(init) { if (init)
10
13
  Object.assign(this, init); }
11
14
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
15
+ // Register this type with the runtime type system
16
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['Method1']), MyStruct);
12
17
  }
13
18
  export async function main() {
14
19
  let i;
15
20
  let s = new MyStruct({ Value: 10 });
16
21
  i = s.clone();
17
- let ok = i;
18
- let assertedValue = ok ? i : null;
22
+ let { value: _, ok: ok } = goscript.typeAssert(i, 'MyStruct');
19
23
  if (ok) {
20
24
  console.log("Type assertion successful");
21
25
  }
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CACjD,aAAa,EACb,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,SAAS,CACV,CAAC;AAEF,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EACpB,QAAQ,CACT,CAAC;;AAGH,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,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAW,CAAC,EAAE,UAAU,CAAC,CAAA;IACvE,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"}
@@ -1,9 +1,9 @@
1
1
  // Generated file based on method_call_on_pointer_receiver.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
6
- myBool = false;
7
7
  // GetMyString returns the MyString field.
8
8
  GetMyString() {
9
9
  const m = this;
@@ -12,6 +12,8 @@ class MyStruct {
12
12
  constructor(init) { if (init)
13
13
  Object.assign(this, init); }
14
14
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
15
+ // Register this type with the runtime type system
16
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['GetMyString']), MyStruct);
15
17
  }
16
18
  export async function main() {
17
19
  let structPointer = new MyStruct({ MyInt: 4, MyString: "hello world" });
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EACxB,QAAQ,CACT,CAAC;;AAGH,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"}
@@ -1,5 +1,6 @@
1
1
  // Generated file based on method_call_on_pointer_via_value.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  // SetValue sets the MyInt field (pointer receiver).
@@ -15,6 +16,8 @@ class MyStruct {
15
16
  constructor(init) { if (init)
16
17
  Object.assign(this, init); }
17
18
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
19
+ // Register this type with the runtime type system
20
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['SetValue', 'GetValue']), MyStruct);
18
21
  }
19
22
  export async function main() {
20
23
  // Create a struct value
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EACjC,QAAQ,CACT,CAAC;;AAGH,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"}
@@ -1,5 +1,6 @@
1
1
  // Generated file based on method_call_on_value_receiver.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
@@ -11,6 +12,8 @@ class MyStruct {
11
12
  constructor(init) { if (init)
12
13
  Object.assign(this, init); }
13
14
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
15
+ // Register this type with the runtime type system
16
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['GetMyString']), MyStruct);
14
17
  }
15
18
  export async function main() {
16
19
  let ms = new MyStruct({ MyInt: 1, MyString: "bar" });
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EACxB,QAAQ,CACT,CAAC;;AAGH,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"}
@@ -1,5 +1,6 @@
1
1
  // Generated file based on method_call_on_value_via_pointer.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  // GetValue returns the MyInt field (value receiver).
@@ -10,6 +11,8 @@ class MyStruct {
10
11
  constructor(init) { if (init)
11
12
  Object.assign(this, init); }
12
13
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
14
+ // Register this type with the runtime type system
15
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['GetValue']), MyStruct);
13
16
  }
14
17
  export async function main() {
15
18
  // Create a struct value
@@ -1 +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"}
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;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,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;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EACrB,QAAQ,CACT,CAAC;;AAGH,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"}
@@ -1,11 +1,14 @@
1
1
  // Generated file based on pointer_assignment_no_copy.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
6
7
  constructor(init) { if (init)
7
8
  Object.assign(this, init); }
8
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);
9
12
  }
10
13
  export async function main() {
11
14
  let original = new MyStruct({ MyInt: 10, MyString: "original" });
@@ -1 +1 @@
1
- {"version":3,"file":"pointer_assignment_no_copy.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yDAAyD;AAIzD,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;IAEhE,uCAAuC;IACvC,4DAA4D;IAC5D,IAAI,WAAW,GAAG,QAAQ,CAAA;IAE1B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,GAAG,mBAAmB,CAAA;IAEvC,4EAA4E;IAC5E,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,2DAA2D,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE/F,gDAAgD;IAChD,WAAW,CAAC,KAAK,GAAG,EAAE,CAAA;IAEtB,8EAA8E;IAC9E,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,uEAAuE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrG,CAAC"}
1
+ {"version":3,"file":"pointer_assignment_no_copy.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;IAEhE,uCAAuC;IACvC,4DAA4D;IAC5D,IAAI,WAAW,GAAG,QAAQ,CAAA;IAE1B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,GAAG,mBAAmB,CAAA;IAEvC,4EAA4E;IAC5E,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,2DAA2D,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE/F,gDAAgD;IAChD,WAAW,CAAC,KAAK,GAAG,EAAE,CAAA;IAEtB,8EAA8E;IAC9E,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,uEAAuE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrG,CAAC"}
@@ -1,11 +1,14 @@
1
1
  // Generated file based on pointer_composite_literal_assignment.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
6
7
  constructor(init) { if (init)
7
8
  Object.assign(this, init); }
8
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);
9
12
  }
10
13
  export async function main() {
11
14
  // === Pointer Composite Literal Assignment ===
@@ -1 +1 @@
1
- {"version":3,"file":"pointer_composite_literal_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,yDAAyD;AAIzD,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;CACvG;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,+CAA+C;IAC/C,2EAA2E;IAC3E,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAEtF,oCAAoC;IACpC,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5E,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,qEAAqE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAE3G,6BAA6B;IAC7B,aAAa,CAAC,KAAK,GAAG,EAAE,CAAA;IACxB,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;AACpF,CAAC"}
1
+ {"version":3,"file":"pointer_composite_literal_assignment.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,+CAA+C;IAC/C,2EAA2E;IAC3E,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAEtF,oCAAoC;IACpC,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5E,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,qEAAqE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAE3G,6BAA6B;IAC7B,aAAa,CAAC,KAAK,GAAG,EAAE,CAAA;IACxB,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;AACpF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // Generated file based on pointer_deref_multiassign.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
@@ -7,6 +8,8 @@ class MyStruct {
7
8
  constructor(init) { if (init)
8
9
  Object.assign(this, init); }
9
10
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
11
+ // Register this type with the runtime type system
12
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
10
13
  }
11
14
  export async function main() {
12
15
  let structPointer = new MyStruct({ MyInt: 4, MyString: "hello world" });
@@ -1 +1 @@
1
- {"version":3,"file":"pointer_deref_multiassign.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,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,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,mDAAmD;IACnD,yDAAyD;IACzD,uFAAuF;IACvF,IAAI,sBAAsB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;IAClD,IAAI,YAAY,GAAG,OAAO,CAAA,CAAC,gBAAgB;AAC5C,CAAC"}
1
+ {"version":3,"file":"pointer_deref_multiassign.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,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;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,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,mDAAmD;IACnD,yDAAyD;IACzD,uFAAuF;IACvF,IAAI,sBAAsB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAA;IAClD,IAAI,YAAY,GAAG,OAAO,CAAA,CAAC,gBAAgB;AAC5C,CAAC"}
@@ -1,12 +1,14 @@
1
1
  // Generated file based on pointer_initialization.go
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ import * as goscript from "@go/builtin";
3
4
  class MyStruct {
4
5
  MyInt = 0;
5
6
  MyString = "";
6
- myBool = false;
7
7
  constructor(init) { if (init)
8
8
  Object.assign(this, init); }
9
9
  clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
10
+ // Register this type with the runtime type system
11
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
10
12
  }
11
13
  export async function main() {
12
14
  // === Pointer Initialization ===
@@ -1 +1 @@
1
- {"version":3,"file":"pointer_initialization.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_initialization/pointer_initialization.gs.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,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,iCAAiC;IACjC,qEAAqE;IACrE,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,iEAAiE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACxG,CAAC"}
1
+ {"version":3,"file":"pointer_initialization.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/pointer_initialization/pointer_initialization.gs.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,iCAAiC;IACjC,qEAAqE;IACrE,IAAI,aAAa,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IACvE,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,iEAAiE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACxG,CAAC"}
@@ -4,24 +4,25 @@ import * as goscript from "@go/builtin";
4
4
  export async function main() {
5
5
  let ch = goscript.makeChannel(0, 0); // Unbuffered
6
6
  ch.close();
7
+ //nolint:staticcheck
7
8
  // Should not be reached
8
9
  // Should be reached
9
- const _tempVar1 = [];
10
- _tempVar1.push({
11
- id: 0,
12
- isSend: false,
13
- channel: ch,
14
- onSelected: async (result) => {
15
- const val = result.value;
16
- const ok = result.ok;
17
- if (ok) {
18
- console.log("Received value with ok==true:", val); // Should not be reached
10
+ await goscript.selectStatement([
11
+ {
12
+ id: 0,
13
+ isSend: false,
14
+ channel: ch,
15
+ onSelected: async (result) => {
16
+ const val = result.value;
17
+ const ok = result.ok;
18
+ if (ok) {
19
+ console.log("Received value with ok==true:", val); // Should not be reached
20
+ }
21
+ else {
22
+ console.log("Received zero value with ok==false:", val); // Should be reached
23
+ }
19
24
  }
20
- else {
21
- console.log("Received zero value with ok==false:", val); // Should be reached
22
- }
23
- }
24
- }),
25
- await goscript.selectStatement(_tempVar1, false);
25
+ },
26
+ ], false);
26
27
  }
27
28
  //# sourceMappingURL=select_receive_on_closed_channel_no_default.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select_receive_on_closed_channel_no_default.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,aAAa;IACzD,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,wBAAwB;IAExB,oBAAoB;IACpB,MAAM,SAAS,GAA+B,EAAE,CAAA;IAChD,SAAS,CAAC,IAAI,CAAC;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;YACxB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;YACpB,IAAI,EAAE,EAAE,CAAC;gBACR,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA,CAAC,wBAAwB;YAC3E,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAA,CAAC,oBAAoB;YAC7E,CAAC;QACF,CAAC;KACD,CAAC;QAEF,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"select_receive_on_closed_channel_no_default.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,aAAa;IACzD,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,oBAAoB;IAEpB,wBAAwB;IAExB,oBAAoB;IACpB,MAAM,QAAQ,CAAC,eAAe,CAAC;QAC9B;YACC,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;gBACxB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;gBACpB,IAAI,EAAE,EAAE,CAAC;oBACR,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA,CAAC,wBAAwB;gBAC3E,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAA,CAAC,oBAAoB;gBAC7E,CAAC;YACF,CAAC;SACD;KACD,EAAE,KAAK,CAAC,CAAA;AACV,CAAC"}
@@ -6,24 +6,24 @@ export async function main() {
6
6
  await ch.send(1);
7
7
  // Should not be reached
8
8
  // Should be reached
9
- const _tempVar1 = [];
10
- _tempVar1.push({
11
- id: 0,
12
- isSend: true,
13
- channel: ch,
14
- value: 2,
15
- onSelected: async (result) => {
16
- console.log("Sent value");
17
- }
18
- }),
19
- _tempVar1.push({
9
+ await goscript.selectStatement([
10
+ {
11
+ id: 0,
12
+ isSend: true,
13
+ channel: ch,
14
+ value: 2,
15
+ onSelected: async (result) => {
16
+ console.log("Sent value");
17
+ }
18
+ },
19
+ {
20
20
  id: -1,
21
21
  isSend: false,
22
22
  channel: null,
23
23
  onSelected: async (result) => {
24
24
  console.log("Default case hit");
25
25
  }
26
- }),
27
- await goscript.selectStatement(_tempVar1, true);
26
+ },
27
+ ], true);
28
28
  }
29
29
  //# sourceMappingURL=select_send_on_full_buffered_channel_with_default.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select_send_on_full_buffered_channel_with_default.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEhB,wBAAwB;IAExB,oBAAoB;IACpB,MAAM,SAAS,GAA+B,EAAE,CAAA;IAChD,SAAS,CAAC,IAAI,CAAC;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1B,CAAC;KACD,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,CAAC,CAAC;YACN,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YAChC,CAAC;SACD,CAAC;QAEF,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"select_send_on_full_buffered_channel_with_default.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEhB,wBAAwB;IAExB,oBAAoB;IACpB,MAAM,QAAQ,CAAC,eAAe,CAAC;QAC9B;YACC,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC1B,CAAC;SACD;QACD;YACC,EAAE,EAAE,CAAC,CAAC;YACN,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YAChC,CAAC;SACD;KACD,EAAE,IAAI,CAAC,CAAA;AACT,CAAC"}