goscript 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -40
- package/builtin/builtin.ts +1168 -178
- package/compiler/analysis.go +726 -0
- package/compiler/compiler.go +5701 -4
- package/compiler/compiler_test.go +104 -0
- package/compiler/config.go +3 -3
- package/compiler/config_test.go +89 -0
- package/compiler/output.go +26 -0
- package/compiler/write-type-spec.go +506 -0
- package/compiler/writer.go +11 -0
- package/dist/builtin/builtin.d.ts +204 -67
- package/dist/builtin/builtin.js +845 -144
- package/dist/builtin/builtin.js.map +1 -1
- package/go.mod +4 -5
- package/go.sum +6 -11
- package/package.json +4 -3
- package/compiler/compile.go +0 -190
- package/compiler/compile_comment.go +0 -41
- package/compiler/compile_decls.go +0 -84
- package/compiler/compile_expr.go +0 -1022
- package/compiler/compile_field.go +0 -110
- package/compiler/compile_spec.go +0 -566
- package/compiler/compile_stmt.go +0 -1616
- package/compiler/context.go +0 -9
- package/compiler/file_compiler.go +0 -80
- package/compiler/output_path.go +0 -31
- package/compiler/pkg_compiler.go +0 -72
- package/compiler/types/tokens.go +0 -66
- package/compiler/types/types.go +0 -46
- package/dist/compliance/tests/array_literal/array_literal.gs.d.ts +0 -1
- package/dist/compliance/tests/array_literal/array_literal.gs.js +0 -15
- package/dist/compliance/tests/array_literal/array_literal.gs.js.map +0 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/async_basic/async_basic.gs.js +0 -24
- package/dist/compliance/tests/async_basic/async_basic.gs.js.map +0 -1
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js +0 -82
- package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js.map +0 -1
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.d.ts +0 -1
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js +0 -16
- package/dist/compliance/tests/basic_arithmetic/basic_arithmetic.gs.js.map +0 -1
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.d.ts +0 -1
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js +0 -14
- package/dist/compliance/tests/boolean_logic/boolean_logic.gs.js.map +0 -1
- package/dist/compliance/tests/channel_basic/channel_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js +0 -14
- package/dist/compliance/tests/channel_basic/channel_basic.gs.js.map +0 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js +0 -27
- package/dist/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/constants/constants.gs.d.ts +0 -1
- package/dist/compliance/tests/constants/constants.gs.js +0 -16
- package/dist/compliance/tests/constants/constants.gs.js.map +0 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.d.ts +0 -1
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js +0 -33
- package/dist/compliance/tests/copy_independence/copy_independence.gs.js.map +0 -1
- package/dist/compliance/tests/defer_statement/defer_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js +0 -75
- package/dist/compliance/tests/defer_statement/defer_statement.gs.js.map +0 -1
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +0 -37
- package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.d.ts +0 -1
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js +0 -29
- package/dist/compliance/tests/flag_bitwise_op/flag_bitwise_op.gs.js.map +0 -1
- package/dist/compliance/tests/float64/float64.gs.d.ts +0 -1
- package/dist/compliance/tests/float64/float64.gs.js +0 -24
- package/dist/compliance/tests/float64/float64.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js +0 -10
- package/dist/compliance/tests/for_loop_basic/for_loop_basic.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js +0 -11
- package/dist/compliance/tests/for_loop_condition_only/for_loop_condition_only.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_condition_only/main.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js +0 -10
- package/dist/compliance/tests/for_loop_condition_only/main.gs.js.map +0 -1
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.d.ts +0 -1
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js +0 -14
- package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js.map +0 -1
- package/dist/compliance/tests/for_range/for_range.gs.d.ts +0 -1
- package/dist/compliance/tests/for_range/for_range.gs.js +0 -39
- package/dist/compliance/tests/for_range/for_range.gs.js.map +0 -1
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.d.ts +0 -1
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js +0 -15
- package/dist/compliance/tests/for_range_index_use/for_range_index_use.gs.js.map +0 -1
- package/dist/compliance/tests/func_literal/func_literal.gs.d.ts +0 -1
- package/dist/compliance/tests/func_literal/func_literal.gs.js +0 -10
- package/dist/compliance/tests/func_literal/func_literal.gs.js.map +0 -1
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.d.ts +0 -12
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js +0 -30
- package/dist/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/if_statement/if_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/if_statement/if_statement.gs.js +0 -13
- package/dist/compliance/tests/if_statement/if_statement.gs.js.map +0 -1
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js +0 -12
- package/dist/compliance/tests/interface_method_comments/interface_method_comments.gs.js.map +0 -1
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js +0 -34
- package/dist/compliance/tests/interface_multi_param_return/interface_multi_param_return.gs.js.map +0 -1
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +0 -32
- package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +0 -40
- package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +0 -1
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.d.ts +0 -1
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js +0 -51
- package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js.map +0 -1
- package/dist/compliance/tests/map_support/map_support.gs.d.ts +0 -1
- package/dist/compliance/tests/map_support/map_support.gs.js +0 -88
- package/dist/compliance/tests/map_support/map_support.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js +0 -24
- package/dist/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js +0 -33
- package/dist/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js +0 -22
- package/dist/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.js.map +0 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.d.ts +0 -1
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js +0 -33
- package/dist/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.js.map +0 -1
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.d.ts +0 -1
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js +0 -17
- package/dist/compliance/tests/multiple_return_values/multiple_return_values.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js +0 -29
- package/dist/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js +0 -27
- package/dist/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js +0 -22
- package/dist/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.js.map +0 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.d.ts +0 -1
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js +0 -20
- package/dist/compliance/tests/pointer_initialization/pointer_initialization.gs.js.map +0 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.d.ts +0 -1
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js +0 -28
- package/dist/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.js.map +0 -1
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.d.ts +0 -1
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js +0 -30
- package/dist/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.js.map +0 -1
- package/dist/compliance/tests/select_statement/select_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/select_statement/select_statement.gs.js +0 -207
- package/dist/compliance/tests/select_statement/select_statement.gs.js.map +0 -1
- package/dist/compliance/tests/simple/simple.gs.d.ts +0 -1
- package/dist/compliance/tests/simple/simple.gs.js +0 -6
- package/dist/compliance/tests/simple/simple.gs.js.map +0 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.d.ts +0 -1
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js +0 -24
- package/dist/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.js.map +0 -1
- package/dist/compliance/tests/slices/slices.gs.d.ts +0 -1
- package/dist/compliance/tests/slices/slices.gs.js +0 -294
- package/dist/compliance/tests/slices/slices.gs.js.map +0 -1
- package/dist/compliance/tests/string_conversion/string_conversion.gs.d.ts +0 -1
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js +0 -41
- package/dist/compliance/tests/string_conversion/string_conversion.gs.js.map +0 -1
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.d.ts +0 -1
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js +0 -17
- package/dist/compliance/tests/string_rune_conversion/string_rune_conversion.gs.js.map +0 -1
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js +0 -48
- package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js.map +0 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js +0 -19
- package/dist/compliance/tests/struct_field_access/struct_field_access.gs.js.map +0 -1
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js +0 -26
- package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js.map +0 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.d.ts +0 -1
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js +0 -30
- package/dist/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.js.map +0 -1
- package/dist/compliance/tests/switch_statement/switch_statement.gs.d.ts +0 -1
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js +0 -76
- package/dist/compliance/tests/switch_statement/switch_statement.gs.js.map +0 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.d.ts +0 -1
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js +0 -31
- package/dist/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string_conversion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/string_conversion/string_conversion.gs.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,oCAAoC;IACpC,IAAI,KAAK,GAAG,aAAa,CAAA;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAElB,kCAAkC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEd,MAAM;IACN,IAAI,EAAE,GAAW,EAAE,CAAC;IACpB,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM;IACN,IAAI,EAAE,GAAW,MAAM,CAAC;IACxB,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,oCAAoC;IACpC,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACnD,IAAI,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAE9B,IAAI,UAAU,GAAI,EAAe,CAAA;IACjC,IAAI,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAEjC,uDAAuD;IACvD,IAAI,cAAc,GAAG,MAAM,CAAA,CAAC,qCAAqC;IACjE,IAAI,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAC5D,IAAI,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,eAAe,CAAC,CAAA;IAE9C,mDAAmD;IACnD,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAC3D,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IACrB,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IACrB,IAAI,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Generated file based on string_rune_conversion.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
export async function main() {
|
|
4
|
-
// === string(rune) Conversion ===
|
|
5
|
-
let r = 65;
|
|
6
|
-
let s = String.fromCharCode(r);
|
|
7
|
-
console.log(s);
|
|
8
|
-
// 'a'
|
|
9
|
-
let r2 = 97;
|
|
10
|
-
let s2 = String.fromCharCode(r2);
|
|
11
|
-
console.log(s2);
|
|
12
|
-
// '€'
|
|
13
|
-
let r3 = 0x20AC;
|
|
14
|
-
let s3 = String.fromCharCode(r3);
|
|
15
|
-
console.log(s3);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=string_rune_conversion.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string_rune_conversion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/string_rune_conversion/string_rune_conversion.gs.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,kCAAkC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEd,MAAM;IACN,IAAI,EAAE,GAAW,EAAE,CAAC;IACpB,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM;IACN,IAAI,EAAE,GAAW,MAAM,CAAC;IACxB,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAChB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// Generated file based on struct_embedding.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
class Person {
|
|
5
|
-
Name = "";
|
|
6
|
-
Age = 0;
|
|
7
|
-
Greet() {
|
|
8
|
-
const p = this;
|
|
9
|
-
console.log("Hello, my name is " + p.Name);
|
|
10
|
-
}
|
|
11
|
-
constructor(init) { if (init)
|
|
12
|
-
Object.assign(this, init); }
|
|
13
|
-
clone() { return Object.assign(Object.create(Person.prototype), this); }
|
|
14
|
-
// Register this type with the runtime type system
|
|
15
|
-
static __typeInfo = goscript.registerType('Person', goscript.TypeKind.Struct, new Person(), new Set(['Greet']), Person);
|
|
16
|
-
}
|
|
17
|
-
class Employee extends Person {
|
|
18
|
-
// Embedded struct
|
|
19
|
-
ID = 0;
|
|
20
|
-
constructor(init) {
|
|
21
|
-
super(init?.Person || init);
|
|
22
|
-
if (init) {
|
|
23
|
-
const { Person, ...rest } = init;
|
|
24
|
-
Object.assign(this, rest);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
clone() { return Object.assign(Object.create(Employee.prototype), this); }
|
|
28
|
-
// Register this type with the runtime type system
|
|
29
|
-
static __typeInfo = goscript.registerType('Employee', goscript.TypeKind.Struct, new Employee(), new Set([]), Employee);
|
|
30
|
-
}
|
|
31
|
-
export async function main() {
|
|
32
|
-
let e = new Employee({ Person: new Person({ Name: "Alice", Age: 30 }), ID: 123 });
|
|
33
|
-
// Accessing embedded fields
|
|
34
|
-
console.log("Employee Name:", e.Name);
|
|
35
|
-
console.log("Employee Age:", e.Age);
|
|
36
|
-
console.log("Employee ID:", e.ID);
|
|
37
|
-
// Calling embedded method
|
|
38
|
-
e.Greet();
|
|
39
|
-
// Test with a pointer to Employee
|
|
40
|
-
let ep = new Employee({ Person: new Person({ Name: "Bob", Age: 25 }), ID: 456 });
|
|
41
|
-
// Accessing embedded fields via pointer
|
|
42
|
-
console.log("Employee Pointer Name:", ep.Name);
|
|
43
|
-
console.log("Employee Pointer Age:", ep.Age);
|
|
44
|
-
console.log("Employee Pointer ID:", ep.ID);
|
|
45
|
-
// Calling embedded method via pointer
|
|
46
|
-
ep.Greet();
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=struct_embedding.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct_embedding.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/struct_embedding/struct_embedding.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Generated file based on struct_field_access.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
class MyStruct {
|
|
5
|
-
MyInt = 0;
|
|
6
|
-
MyString = "";
|
|
7
|
-
constructor(init) { if (init)
|
|
8
|
-
Object.assign(this, init); }
|
|
9
|
-
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
10
|
-
// Register this type with the runtime type system
|
|
11
|
-
static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
|
|
12
|
-
}
|
|
13
|
-
export async function main() {
|
|
14
|
-
// === Struct Field Access ===
|
|
15
|
-
let ms = new MyStruct({ MyInt: 42, MyString: "foo" });
|
|
16
|
-
console.log("MyInt: Expected: 42, Actual:", ms.MyInt);
|
|
17
|
-
console.log("MyString: Expected: foo, Actual:", ms.MyString);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=struct_field_access.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct_field_access.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/struct_field_access/struct_field_access.gs.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,8BAA8B;IAC9B,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
package/dist/compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Generated file based on struct_pointer_interface_fields.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
// Register this interface with the runtime type system
|
|
5
|
-
const MyInterface__typeInfo = goscript.registerType('MyInterface', goscript.TypeKind.Interface, null, new Set(['Method']), undefined);
|
|
6
|
-
class MyStruct {
|
|
7
|
-
PointerField = null;
|
|
8
|
-
InterfaceField = null;
|
|
9
|
-
constructor(init) { if (init)
|
|
10
|
-
Object.assign(this, init); }
|
|
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);
|
|
14
|
-
}
|
|
15
|
-
export async function main() {
|
|
16
|
-
let s = new MyStruct({});
|
|
17
|
-
console.log(s.PointerField);
|
|
18
|
-
console.log(s.InterfaceField);
|
|
19
|
-
let i = 10;
|
|
20
|
-
s.PointerField = i;
|
|
21
|
-
console.log(s.PointerField);
|
|
22
|
-
let mi = null;
|
|
23
|
-
s.InterfaceField = mi;
|
|
24
|
-
console.log(s.InterfaceField);
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=struct_pointer_interface_fields.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct_pointer_interface_fields.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/struct_pointer_interface_fields/struct_pointer_interface_fields.gs.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAM9C,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CACjD,aAAa,EACb,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EACnB,SAAS,CACV,CAAC;AAEF,MAAM,QAAQ;IACN,YAAY,GAAkB,IAAI,CAAC;IACnC,cAAc,GAAuB,IAAI,CAAC;IAEjD,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,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;IAE7B,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,CAAC,CAAC,YAAY,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAE3B,IAAI,EAAE,GAAuB,IAAI,CAAC;IAClC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAA;IACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// Generated file based on struct_value_init_clone.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
class Point {
|
|
5
|
-
X = 0;
|
|
6
|
-
Y = 0;
|
|
7
|
-
constructor(init) { if (init)
|
|
8
|
-
Object.assign(this, init); }
|
|
9
|
-
clone() { return Object.assign(Object.create(Point.prototype), this); }
|
|
10
|
-
// Register this type with the runtime type system
|
|
11
|
-
static __typeInfo = goscript.registerType('Point', goscript.TypeKind.Struct, new Point(), new Set([]), Point);
|
|
12
|
-
}
|
|
13
|
-
export async function main() {
|
|
14
|
-
// Initialize directly
|
|
15
|
-
let p1 = new Point({ X: 1, Y: 2 });
|
|
16
|
-
console.log("p1:", p1.X, p1.Y);
|
|
17
|
-
// Assign to another variable (should trigger clone)
|
|
18
|
-
let p2 = p1.clone();
|
|
19
|
-
p2.X = 10; // Modify the copy
|
|
20
|
-
// Print both to show they are independent
|
|
21
|
-
console.log("p1 after p2 mod:", p1.X, p1.Y);
|
|
22
|
-
console.log("p2:", p2.X, p2.Y);
|
|
23
|
-
// Initialize via variable assignment
|
|
24
|
-
let v = new Point({ X: 3, Y: 4 });
|
|
25
|
-
let p3 = v.clone(); // Should trigger clone
|
|
26
|
-
p3.Y = 40; // Modify the copy
|
|
27
|
-
console.log("v after p3 mod:", v.X, v.Y);
|
|
28
|
-
console.log("p3:", p3.X, p3.Y);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=struct_value_init_clone.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct_value_init_clone.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,MAAM,KAAK;IACH,CAAC,GAAW,CAAC,CAAC;IACd,CAAC,GAAW,CAAC,CAAC;IAErB,YAAY,IAAqB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC3E,KAAK,KAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE9F,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,OAAO,EACP,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,KAAK,EAAE,EACX,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,KAAK,CACN,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,sBAAsB;IACtB,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAE9B,oDAAoD;IACpD,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;IACnB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA,CAAC,kBAAkB;IAE5B,0CAA0C;IAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAE9B,qCAAqC;IACrC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;IAC/B,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA,CAAC,uBAAuB;IAC1C,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA,CAAC,kBAAkB;IAE5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
// Generated file based on switch_statement.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
export async function main() {
|
|
4
|
-
let i = 2;
|
|
5
|
-
console.log("Integer switch:");
|
|
6
|
-
switch (i) {
|
|
7
|
-
case 1:
|
|
8
|
-
console.log("one");
|
|
9
|
-
break;
|
|
10
|
-
case 2:
|
|
11
|
-
console.log("two");
|
|
12
|
-
break;
|
|
13
|
-
case 3:
|
|
14
|
-
console.log("three");
|
|
15
|
-
break;
|
|
16
|
-
default:
|
|
17
|
-
console.log("other integer");
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
let s = "hello";
|
|
21
|
-
console.log("\nString switch:");
|
|
22
|
-
switch (s) {
|
|
23
|
-
case "world":
|
|
24
|
-
console.log("world");
|
|
25
|
-
break;
|
|
26
|
-
case "hello":
|
|
27
|
-
console.log("hello");
|
|
28
|
-
break;
|
|
29
|
-
default:
|
|
30
|
-
console.log("other string");
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
let x = -5;
|
|
34
|
-
console.log("\nSwitch without expression:");
|
|
35
|
-
// x > 0
|
|
36
|
-
switch (true) {
|
|
37
|
-
case x < 0:
|
|
38
|
-
console.log("negative");
|
|
39
|
-
break;
|
|
40
|
-
case x == 0:
|
|
41
|
-
console.log("zero");
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
console.log("positive");
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
x = 0;
|
|
48
|
-
console.log("\nSwitch without expression (zero):");
|
|
49
|
-
// x > 0
|
|
50
|
-
switch (true) {
|
|
51
|
-
case x < 0:
|
|
52
|
-
console.log("negative");
|
|
53
|
-
break;
|
|
54
|
-
case x == 0:
|
|
55
|
-
console.log("zero");
|
|
56
|
-
break;
|
|
57
|
-
default:
|
|
58
|
-
console.log("positive");
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
x = 10;
|
|
62
|
-
console.log("\nSwitch without expression (positive):");
|
|
63
|
-
// x > 0
|
|
64
|
-
switch (true) {
|
|
65
|
-
case x < 0:
|
|
66
|
-
console.log("negative");
|
|
67
|
-
break;
|
|
68
|
-
case x == 0:
|
|
69
|
-
console.log("zero");
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
console.log("positive");
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=switch_statement.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch_statement.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/switch_statement/switch_statement.gs.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACX,KAAK,CAAC;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAClB,MAAK;QACN,KAAK,CAAC;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAClB,MAAK;QACN,KAAK,CAAC;YACL,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACpB,MAAK;QACN;YACC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC5B,MAAK;IACP,CAAC;IAED,IAAI,CAAC,GAAG,OAAO,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC;QACX,KAAK,OAAO;YACX,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACpB,MAAK;QACN,KAAK,OAAO;YACX,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACpB,MAAK;QACN;YACC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAC3B,MAAK;IACP,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACV,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,QAAQ;IACR,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;QACN,KAAK,CAAC,IAAI,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnB,MAAK;QACN;YACC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;IACP,CAAC;IAED,CAAC,GAAG,CAAC,CAAA;IACL,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAElD,QAAQ;IACR,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;QACN,KAAK,CAAC,IAAI,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnB,MAAK;QACN;YACC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;IACP,CAAC;IAED,CAAC,GAAG,EAAE,CAAA;IACN,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IAEtD,QAAQ;IACR,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;QACN,KAAK,CAAC,IAAI,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnB,MAAK;QACN;YACC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAK;IACP,CAAC;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function main(): Promise<void>;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// Generated file based on value_type_copy_behavior.go
|
|
2
|
-
// Updated when compliance tests are re-run, DO NOT EDIT!
|
|
3
|
-
import * as goscript from "@goscript/builtin";
|
|
4
|
-
class MyStruct {
|
|
5
|
-
MyInt = 0;
|
|
6
|
-
MyString = "";
|
|
7
|
-
constructor(init) { if (init)
|
|
8
|
-
Object.assign(this, init); }
|
|
9
|
-
clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
|
|
10
|
-
// Register this type with the runtime type system
|
|
11
|
-
static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set([]), MyStruct);
|
|
12
|
-
}
|
|
13
|
-
export async function main() {
|
|
14
|
-
let dereferencedStructCopy = new MyStruct({ MyString: "original" });
|
|
15
|
-
// === Value-Type Copy Behavior ===
|
|
16
|
-
// Assigning a struct (value type) creates independent copies.
|
|
17
|
-
let valueCopy1 = dereferencedStructCopy.clone();
|
|
18
|
-
let valueCopy2 = dereferencedStructCopy.clone();
|
|
19
|
-
let pointerCopy = dereferencedStructCopy;
|
|
20
|
-
// Modifications to one copy do not affect others or the original.
|
|
21
|
-
valueCopy1.MyString = "value copy 1";
|
|
22
|
-
dereferencedStructCopy.MyString = "original dereferenced copy modified"; // Modify the source of the copies
|
|
23
|
-
valueCopy2.MyString = "value copy 2";
|
|
24
|
-
// Expected: "value copy 1"
|
|
25
|
-
console.log("valueCopy1: Expected: value copy 1, Actual: " + valueCopy1.MyString);
|
|
26
|
-
// Expected: "original dereferenced copy modified"
|
|
27
|
-
console.log("dereferencedStructCopy (modified after copies were made): Expected: original dereferenced copy modified, Actual: " + dereferencedStructCopy.MyString);
|
|
28
|
-
// Expected: "value copy 2"
|
|
29
|
-
console.log("valueCopy2: Expected: value copy 2, Actual: " + valueCopy2.MyString);
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=value_type_copy_behavior.gs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value_type_copy_behavior.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,MAAM,QAAQ;IACN,KAAK,GAAW,CAAC,CAAC;IAClB,QAAQ,GAAW,EAAE,CAAC;IAE7B,YAAY,IAAwB,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,KAAe,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CACvC,UAAU,EACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,IAAI,QAAQ,EAAE,EACd,IAAI,GAAG,CAAC,EAAE,CAAC,EACX,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,sBAAsB,GAAG,IAAI,QAAQ,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAC,CAAC,CAAA;IACjE,mCAAmC;IACnC,8DAA8D;IAC9D,IAAI,UAAU,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAA;IAC/C,IAAI,UAAU,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAA;IAC/C,IAAI,WAAW,GAAG,sBAAsB,CAAA;IACxC,kEAAkE;IAClE,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAA;IACpC,sBAAsB,CAAC,QAAQ,GAAG,qCAAqC,CAAA,CAAC,kCAAkC;IAC1G,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAA;IACpC,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjF,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;AAClF,CAAC"}
|