goscript 0.0.10 → 0.0.11

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 (34) hide show
  1. package/builtin/builtin.ts +161 -65
  2. package/cmd/goscript/cmd_compile.go +8 -6
  3. package/compiler/compile.go +28 -11
  4. package/compiler/compile_decls.go +12 -0
  5. package/compiler/compile_expr.go +59 -2
  6. package/compiler/compile_spec.go +110 -3
  7. package/compiler/compile_stmt.go +89 -15
  8. package/dist/builtin/builtin.d.ts +57 -1
  9. package/dist/builtin/builtin.js +73 -0
  10. package/dist/builtin/builtin.js.map +1 -1
  11. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.d.ts +1 -0
  12. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js +82 -0
  13. package/dist/compliance/tests/async_defer_statement/async_defer_statement.gs.js.map +1 -0
  14. package/dist/compliance/tests/defer_statement/defer_statement.gs.d.ts +1 -0
  15. package/dist/compliance/tests/defer_statement/defer_statement.gs.js +75 -0
  16. package/dist/compliance/tests/defer_statement/defer_statement.gs.js.map +1 -0
  17. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js +1 -1
  18. package/dist/compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.js.map +1 -1
  19. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.d.ts +1 -0
  20. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js +14 -0
  21. package/dist/compliance/tests/for_loop_infinite/for_loop_infinite.gs.js.map +1 -0
  22. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js +1 -1
  23. package/dist/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.js.map +1 -1
  24. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js +11 -1
  25. package/dist/compliance/tests/interface_type_assertion/interface_type_assertion.gs.js.map +1 -1
  26. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.d.ts +1 -0
  27. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js +51 -0
  28. package/dist/compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.js.map +1 -0
  29. package/dist/compliance/tests/slices/slices.gs.js +280 -7
  30. package/dist/compliance/tests/slices/slices.gs.js.map +1 -1
  31. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.d.ts +1 -0
  32. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js +48 -0
  33. package/dist/compliance/tests/struct_embedding/struct_embedding.gs.js.map +1 -0
  34. package/package.json +4 -3
@@ -0,0 +1,75 @@
1
+ // Generated file based on defer_statement.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
4
+ if (value !== null && value !== void 0) {
5
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
6
+ var dispose, inner;
7
+ if (async) {
8
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
9
+ dispose = value[Symbol.asyncDispose];
10
+ }
11
+ if (dispose === void 0) {
12
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
13
+ dispose = value[Symbol.dispose];
14
+ if (async) inner = dispose;
15
+ }
16
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
17
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
18
+ env.stack.push({ value: value, dispose: dispose, async: async });
19
+ }
20
+ else if (async) {
21
+ env.stack.push({ async: true });
22
+ }
23
+ return value;
24
+ };
25
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
26
+ return function (env) {
27
+ function fail(e) {
28
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
29
+ env.hasError = true;
30
+ }
31
+ var r, s = 0;
32
+ function next() {
33
+ while (r = env.stack.pop()) {
34
+ try {
35
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
36
+ if (r.dispose) {
37
+ var result = r.dispose.call(r.value);
38
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
39
+ }
40
+ else s |= 1;
41
+ }
42
+ catch (e) {
43
+ fail(e);
44
+ }
45
+ }
46
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
47
+ if (env.hasError) throw env.error;
48
+ }
49
+ return next();
50
+ };
51
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
52
+ var e = new Error(message);
53
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
54
+ });
55
+ import * as goscript from "@go/builtin";
56
+ export async function main() {
57
+ const env_1 = { stack: [], error: void 0, hasError: false };
58
+ try {
59
+ const __defer = __addDisposableResource(env_1, new goscript.AsyncDisposableStack(), true);
60
+ __defer.defer(() => {
61
+ console.log("deferred");
62
+ });
63
+ console.log("main");
64
+ }
65
+ catch (e_1) {
66
+ env_1.error = e_1;
67
+ env_1.hasError = true;
68
+ }
69
+ finally {
70
+ const result_1 = __disposeResources(env_1);
71
+ if (result_1)
72
+ await result_1;
73
+ }
74
+ }
75
+ //# sourceMappingURL=defer_statement.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defer_statement.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/defer_statement/defer_statement.gs.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,yDAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;;;QACzB,MAAY,OAAO,kCAAG,IAAI,QAAQ,CAAC,oBAAoB,EAAE,OAAA,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAAA,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;;;;;;;;;;;CACnB"}
@@ -26,7 +26,7 @@ export async function main() {
26
26
  let rwc;
27
27
  let s = new MyStruct({});
28
28
  rwc = s.clone();
29
- let { value: _, ok: ok } = goscript.typeAssert(rwc, 'ReadCloser');
29
+ let { ok: ok } = goscript.typeAssert(rwc, 'ReadCloser');
30
30
  if (ok) {
31
31
  console.log("Embedded interface assertion successful");
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_interface_assertion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EACjB,SAAS,CACV,CAAC;AAMF,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAClB,SAAS,CACV,CAAC;AAKF,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAChD,YAAY,EACZ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAC1B,SAAS,CACV,CAAC;AAEF,MAAM,QAAQ;IAEN,IAAI,CAAC,CAAW;QACtB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjB,CAAC;IAEM,KAAK;QACX,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,IAAI,CAAA;IACZ,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,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1B,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,GAAe,CAAC;IACpB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAI,CAAC,CAAA;IAC1B,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEf,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,GAAG,EAAE,YAAY,CAAC,CAAA;IAC7E,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IACnD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"embedded_interface_assertion.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/embedded_interface_assertion/embedded_interface_assertion.gs.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EACjB,SAAS,CACV,CAAC;AAMF,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAC5C,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAClB,SAAS,CACV,CAAC;AAKF,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAChD,YAAY,EACZ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAC1B,SAAS,CACV,CAAC;AAEF,MAAM,QAAQ;IAEN,IAAI,CAAC,CAAW;QACtB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjB,CAAC;IAEM,KAAK;QACX,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,IAAI,CAAA;IACZ,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,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1B,QAAQ,CACT,CAAC;;AAGH,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,GAAe,CAAC;IACpB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAI,CAAC,CAAA;IAC1B,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEf,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,GAAG,EAAE,YAAY,CAAC,CAAA;IACnE,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IACnD,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;
@@ -0,0 +1,14 @@
1
+ // Generated file based on for_loop_infinite.go
2
+ // Updated when compliance tests are re-run, DO NOT EDIT!
3
+ export async function main() {
4
+ let i = 0;
5
+ for (;;) {
6
+ console.log("Looping forever...");
7
+ i++;
8
+ if (i >= 3) {
9
+ break;
10
+ }
11
+ }
12
+ console.log("Loop finished");
13
+ }
14
+ //# sourceMappingURL=for_loop_infinite.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for_loop_infinite.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/for_loop_infinite/for_loop_infinite.gs.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,yDAAyD;AAIzD,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,SAAW,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,CAAC,EAAE,CAAA;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,MAAK;QACN,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC7B,CAAC"}
@@ -21,7 +21,7 @@ export async function main() {
21
21
  let i;
22
22
  let s = new MyStruct({ Value: 10 });
23
23
  i = s.clone();
24
- let { value: _, ok: ok } = goscript.typeAssert(i, 'MyOtherInterface');
24
+ let { ok: ok } = goscript.typeAssert(i, 'MyOtherInterface');
25
25
  if (ok) {
26
26
  console.log("Type assertion successful");
27
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;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
+ {"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,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAmB,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAC7E,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"}
@@ -19,12 +19,22 @@ export async function main() {
19
19
  let i;
20
20
  let s = new MyStruct({ Value: 10 });
21
21
  i = s.clone();
22
- let { value: _, ok: ok } = goscript.typeAssert(i, 'MyStruct');
22
+ let { ok: ok } = goscript.typeAssert(i, 'MyStruct');
23
23
  if (ok) {
24
24
  console.log("Type assertion successful");
25
25
  }
26
26
  else {
27
27
  console.log("Type assertion failed");
28
28
  }
29
+ // try a second time since this generates something different when using = and not :=
30
+ ({ ok: ok } = goscript.typeAssert(i, 'unknown'));
31
+ // expected
32
+ if (ok) {
33
+ console.log("Type assertion successful");
34
+ }
35
+ else {
36
+ // expected
37
+ console.log("Type assertion failed");
38
+ }
29
39
  }
30
40
  //# sourceMappingURL=interface_type_assertion.gs.js.map
@@ -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;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
+ {"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,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAW,CAAC,EAAE,UAAU,CAAC,CAAA;IAC7D,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;IAED,qFAAqF;IACrF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAkB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IAEjE,WAAW;IACX,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACP,WAAW;QACX,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACrC,CAAC;AACF,CAAC"}
@@ -0,0 +1,51 @@
1
+ // Generated file based on interface_type_assertion_signature_mismatch.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 InterfaceA__typeInfo = goscript.registerType('InterfaceA', goscript.TypeKind.Interface, null, new Set(['DoSomething']), undefined);
6
+ // Register this interface with the runtime type system
7
+ const InterfaceB__typeInfo = goscript.registerType('InterfaceB', goscript.TypeKind.Interface, null, new Set(['DoSomething']), undefined);
8
+ class MyStruct {
9
+ Name = "";
10
+ DoSomething(val) {
11
+ const m = this;
12
+ console.log("MyStruct.DoSomething called");
13
+ return "done";
14
+ }
15
+ constructor(init) { if (init)
16
+ Object.assign(this, init); }
17
+ clone() { return Object.assign(Object.create(MyStruct.prototype), this); }
18
+ // Register this type with the runtime type system
19
+ static __typeInfo = goscript.registerType('MyStruct', goscript.TypeKind.Struct, new MyStruct(), new Set(['DoSomething']), MyStruct);
20
+ }
21
+ export async function main() {
22
+ let a;
23
+ let s = new MyStruct({ Name: "TestStruct" });
24
+ a = s.clone();
25
+ // This assertion should fail at runtime because InterfaceB.DoSomething has a different signature
26
+ let { ok: ok } = goscript.typeAssert(a, 'InterfaceB');
27
+ if (ok) {
28
+ console.log("Type assertion to InterfaceB successful");
29
+ }
30
+ else {
31
+ console.log("Type assertion to InterfaceB failed");
32
+ }
33
+ // This assertion should succeed
34
+ ({ ok: ok } = goscript.typeAssert(a, 'InterfaceA'));
35
+ if (ok) {
36
+ console.log("Type assertion to InterfaceA successful");
37
+ }
38
+ else {
39
+ console.log("Type assertion to InterfaceA failed");
40
+ }
41
+ // Call the method on the asserted interface to ensure the generated code works
42
+ // This is not strictly necessary for the type assertion test but good practice
43
+ // if the assertion to InterfaceA succeeds.
44
+ {
45
+ let { value: assertedA, ok: ok } = goscript.typeAssert(a, 'InterfaceA');
46
+ if (ok) {
47
+ assertedA.DoSomething(123);
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=interface_type_assertion_signature_mismatch.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_type_assertion_signature_mismatch.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/interface_type_assertion_signature_mismatch/interface_type_assertion_signature_mismatch.gs.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAMxC,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAChD,YAAY,EACZ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EACxB,SAAS,CACV,CAAC;AAMF,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAChD,YAAY,EACZ,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAC3B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EACxB,SAAS,CACV,CAAC;AAEF,MAAM,QAAQ;IACN,IAAI,GAAW,EAAE,CAAC;IAElB,WAAW,CAAC,GAAW;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAA;IACd,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,CAAa,CAAC;IAClB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;IAC5C,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAEb,iGAAiG;IACjG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,CAAC,EAAE,YAAY,CAAC,CAAA;IACjE,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IACnD,CAAC;IAED,gCAAgC;IAChC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;IAC/D,IAAI,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IACnD,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,2CAA2C;IAC3C,CAAC;QAAA,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAa,CAAC,EAAE,YAAY,CAAC,CAAA;QACnF,IAAI,EAAE,EAAE,CAAC;YACR,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACF,CAAC;AAAA,CAAC"}
@@ -2,20 +2,293 @@
2
2
  // Updated when compliance tests are re-run, DO NOT EDIT!
3
3
  import * as goscript from "@go/builtin";
4
4
  export async function main() {
5
+ // --- Original Tests ---
6
+ console.log("--- Original Tests ---");
5
7
  // Create a slice of integers with length 5 and capacity 10
6
8
  let s = goscript.makeSlice(5, 10);
7
- console.log(goscript.len(s));
8
- console.log(goscript.cap(s));
9
+ console.log(goscript.len(s)); // 5
10
+ console.log(goscript.cap(s)); // 10
9
11
  // Create a slice of strings with length 3
10
12
  let s2 = goscript.makeSlice(3);
11
- console.log(goscript.len(s2));
12
- console.log(goscript.cap(s2));
13
+ console.log(goscript.len(s2)); // 3
14
+ console.log(goscript.cap(s2)); // 3
13
15
  // Assign values
14
16
  s[0] = 10;
15
17
  s[4] = 20;
16
18
  s2[1] = "hello";
17
- console.log(s[0]);
18
- console.log(s[4]);
19
- console.log(s2[1]);
19
+ console.log(s[0]); // 10
20
+ console.log(s[4]); // 20
21
+ console.log(s2[1]); // hello
22
+ // --- New Tests ---
23
+ console.log("--- New Tests ---");
24
+ // Create slice from array literal
25
+ let arrLit = [1, 2, 3, 4, 5];
26
+ let sliceFromLit = goscript.slice(arrLit, undefined, undefined);
27
+ console.log(goscript.len(sliceFromLit)); // 5
28
+ console.log(goscript.cap(sliceFromLit)); // 5
29
+ console.log(sliceFromLit[0]); // 1
30
+ console.log(sliceFromLit[4]); // 5
31
+ // Create slice from array variable
32
+ let arrVar = ["a", "b", "c", "d"];
33
+ let sliceFromVar = goscript.slice(arrVar, undefined, undefined);
34
+ console.log(goscript.len(sliceFromVar)); // 4
35
+ console.log(goscript.cap(sliceFromVar)); // 4
36
+ console.log(sliceFromVar[0]); // a
37
+ console.log(sliceFromVar[3]); // d
38
+ // Create slice with specific indices
39
+ let sliceIndices = goscript.slice(arrVar, 1, 3); // ["b", "c"]
40
+ console.log(goscript.len(sliceIndices)); // 2
41
+ console.log(goscript.cap(sliceIndices)); // 3 (cap is from start index to end of original array)
42
+ console.log(sliceIndices[0]); // b
43
+ console.log(sliceIndices[1]); // c
44
+ // Create slice with 0 len/cap and append
45
+ console.log("--- Zero len/cap append ---");
46
+ let zeroSlice = goscript.makeSlice(0, 0);
47
+ console.log(goscript.len(zeroSlice)); // 0
48
+ console.log(goscript.cap(zeroSlice)); // 0
49
+ zeroSlice = goscript.append(zeroSlice, 100);
50
+ console.log(goscript.len(zeroSlice)); // 1
51
+ console.log(goscript.cap(zeroSlice)); // 1 (or more, implementation dependent)
52
+ console.log(zeroSlice[0]); // 100
53
+ zeroSlice = goscript.append(zeroSlice, 200);
54
+ console.log(goscript.len(zeroSlice)); // 2
55
+ console.log(goscript.cap(zeroSlice)); // 2 (or more)
56
+ console.log(zeroSlice[1]); // 200
57
+ // Modify slice, check original array
58
+ console.log("--- Modify slice, check array ---");
59
+ let modArr = [10, 20, 30];
60
+ let modSlice = goscript.slice(modArr, undefined, undefined);
61
+ modSlice[1] = 25; // Modify slice
62
+ console.log(modArr[1]); // 25 (original array should be modified)
63
+ console.log(modSlice[1]); // 25
64
+ // Modify array, check slice
65
+ console.log("--- Modify array, check slice ---");
66
+ modArr[0] = 15; // Modify array
67
+ console.log(modArr[0]); // 15
68
+ console.log(modSlice[0]); // 15 (slice should reflect change)
69
+ // Append to sub-slice within capacity
70
+ console.log("--- Append sub-slice w/in capacity ---");
71
+ let appendArr = [1, 2, 3, 4, 5];
72
+ let appendSlice1 = goscript.slice(appendArr, 0, 2); // len 2, cap 5; [1, 2]
73
+ console.log(goscript.len(appendSlice1)); // 2
74
+ console.log(goscript.cap(appendSlice1)); // 5
75
+ let appendSlice2 = goscript.append(appendSlice1, 99); // Appends within original capacity
76
+ console.log(goscript.len(appendSlice2)); // 3
77
+ console.log(goscript.cap(appendSlice2)); // 5
78
+ console.log(appendSlice2[2]); // 99
79
+ console.log(appendArr[2]); // 99 (original array modified)
80
+ // Append to sub-slice exceeding capacity
81
+ console.log("--- Append sub-slice exceed capacity ---");
82
+ let appendSlice3 = goscript.slice(appendArr, 3, 5); // len 2, cap 2; [4, 5]
83
+ console.log(goscript.len(appendSlice3)); // 2
84
+ console.log(goscript.cap(appendSlice3)); // 2
85
+ let appendSlice4 = goscript.append(appendSlice3, 101); // Appends beyond original capacity
86
+ console.log(goscript.len(appendSlice4)); // 3
87
+ console.log(goscript.cap(appendSlice4)); // 4 (or more, new underlying array)
88
+ console.log(appendSlice4[0]); // 4
89
+ console.log(appendSlice4[1]); // 5
90
+ console.log(appendSlice4[2]); // 101
91
+ // Original array should NOT be modified beyond its bounds by this append
92
+ console.log(appendArr[0]); // 1
93
+ console.log(appendArr[1]); // 2
94
+ console.log(appendArr[2]); // 99 (from previous append)
95
+ console.log(appendArr[3]); // 4
96
+ console.log(appendArr[4]); // 5
97
+ // Slicing a slice
98
+ console.log("--- Slicing a slice ---");
99
+ let baseSlice = [0, 10, 20, 30, 40, 50];
100
+ let subSlice1 = goscript.slice(baseSlice, 1, 4); // [10, 20, 30], len 3, cap 5
101
+ console.log(goscript.len(subSlice1)); // 3
102
+ console.log(goscript.cap(subSlice1)); // 5
103
+ console.log(subSlice1[0]); // 10
104
+ let subSlice2 = goscript.slice(subSlice1, 1, 3); // [20, 30], len 2, cap 4 (cap from subSlice1's start)
105
+ console.log(goscript.len(subSlice2)); // 2
106
+ console.log(goscript.cap(subSlice2)); // 4
107
+ console.log(subSlice2[0]); // 20
108
+ console.log(subSlice2[1]); // 30
109
+ subSlice2[0] = 22; // Modify sub-sub-slice
110
+ console.log(subSlice1[1]); // 22 (subSlice1 modified)
111
+ console.log(baseSlice[2]); // 22 (baseSlice modified)
112
+ // Three-index slicing (if supported) - Check capacity
113
+ console.log("--- Three-index slicing ---");
114
+ let threeIndexArr = [0, 1, 2, 3, 4, 5];
115
+ let threeIndexSlice = goscript.slice(threeIndexArr, 1, 3, 4); // [1, 2], len 2, cap 3 (4-1)
116
+ console.log(goscript.len(threeIndexSlice)); // 2
117
+ console.log(goscript.cap(threeIndexSlice)); // 3
118
+ console.log(threeIndexSlice[0]); // 1
119
+ console.log(threeIndexSlice[1]); // 2
120
+ // Appending should modify original array up to new capacity limit
121
+ threeIndexSlice = goscript.append(threeIndexSlice, 99);
122
+ console.log(goscript.len(threeIndexSlice)); // 3
123
+ console.log(goscript.cap(threeIndexSlice)); // 3
124
+ console.log(threeIndexSlice[2]); // 99
125
+ console.log(threeIndexArr[3]); // 99 (original modified)
126
+ // Appending again should reallocate
127
+ threeIndexSlice = goscript.append(threeIndexSlice, 101);
128
+ console.log(goscript.len(threeIndexSlice)); // 4
129
+ console.log(goscript.cap(threeIndexSlice)); // 6 (or more)
130
+ console.log(threeIndexSlice[3]); // 101
131
+ console.log(threeIndexArr[4]); // 4 (original NOT modified by reallocating append)
132
+ // --- Additional Tests for Full Coverage ---
133
+ console.log("--- Additional Tests ---");
134
+ // Slice literal
135
+ let sliceLiteral = [10, 20, 30];
136
+ console.log("Slice literal len:", goscript.len(sliceLiteral)); // 3
137
+ console.log("Slice literal cap:", goscript.cap(sliceLiteral)); // 3
138
+ console.log("Slice literal[1]:", sliceLiteral[1]); // 20
139
+ // Nil slice
140
+ let nilSlice = [];
141
+ console.log("Nil slice len:", goscript.len(nilSlice)); // 0
142
+ console.log("Nil slice cap:", goscript.cap(nilSlice)); // 0
143
+ nilSlice = goscript.append(nilSlice, 5);
144
+ console.log("Append to nil slice len:", goscript.len(nilSlice)); // 1
145
+ console.log("Append to nil slice cap:", goscript.cap(nilSlice)); // 1 (or more)
146
+ console.log("Append to nil slice[0]:", nilSlice[0]); // 5
147
+ // Out-of-bounds indexing (should panic)
148
+ // Note: Testing panics in compliance tests requires specific handling in the test runner.
149
+ // For now, we'll add the code but expect it to fail if panics are not caught.
150
+ // The runner should ideally catch these panics and verify the error type/message.
151
+ // println("--- Testing out-of-bounds panic ---")
152
+ // smallSlice := []int{1}
153
+ // println(smallSlice[1]) // Index out of bounds (len 1, cap 1) - should panic
154
+ // smallSlice[1] = 10 // Index out of bounds - should panic
155
+ // println(smallSlice[-1]) // Negative index - should panic
156
+ // --- Slices of Slices Tests ---
157
+ console.log("--- Slices of Slices Tests ---");
158
+ // Create a slice of slices of integers
159
+ let sliceOfSlices = [[1, 2, 3], [4, 5], [6, 7, 8, 9]];
160
+ console.log("Length of sliceOfSlices:", goscript.len(sliceOfSlices)); // 3
161
+ console.log("Capacity of sliceOfSlices:", goscript.cap(sliceOfSlices)); // 3
162
+ // Access elements
163
+ console.log("sliceOfSlices[0][1]:", sliceOfSlices[0][1]); // 2
164
+ console.log("sliceOfSlices[1][0]:", sliceOfSlices[1][0]); // 4
165
+ console.log("sliceOfSlices[2][3]:", sliceOfSlices[2][3]); // 9
166
+ // Append to inner slice (should modify the inner slice)
167
+ console.log("--- Append to inner slice ---");
168
+ let innerSlice = sliceOfSlices[1]; // {4, 5}, len 2, cap 2
169
+ console.log("Length of innerSlice:", goscript.len(innerSlice)); // 2
170
+ console.log("Capacity of innerSlice:", goscript.cap(innerSlice)); // 2
171
+ innerSlice = goscript.append(innerSlice, 50); // {4, 5, 50}
172
+ console.log("Length of innerSlice after append:", goscript.len(innerSlice)); // 3
173
+ console.log("Capacity of innerSlice after append:", goscript.cap(innerSlice)); // 4 (or more)
174
+ console.log("innerSlice[2]:", innerSlice[2]); // 50
175
+ // Check if the original slice of slices reflects the change (it should, as innerSlice is a view)
176
+ // Note: Appending to innerSlice might reallocate its underlying array if capacity is exceeded.
177
+ // If reallocated, the original sliceOfSlices will *not* see the change at that index.
178
+ // This test case specifically checks the scenario where the append happens within the original capacity
179
+ // or if the reallocation behavior is correctly handled by GoScript.
180
+ // For this simple case, appending 50 to {4, 5} will likely cause reallocation.
181
+ // Let's test appending within capacity first.
182
+ // Create a slice of slices where inner slice has capacity for append
183
+ // {0, 0}, len 2, cap 5
184
+ let sliceOfSlicesWithCap = [[1, 2, 3], goscript.makeSlice(2, 5), [6, 7, 8, 9]];
185
+ sliceOfSlicesWithCap[1][0] = 40;
186
+ sliceOfSlicesWithCap[1][1] = 50;
187
+ console.log("--- Append to inner slice with capacity ---");
188
+ let innerSliceWithCap = sliceOfSlicesWithCap[1]; // {40, 50}, len 2, cap 5
189
+ console.log("Length of innerSliceWithCap:", goscript.len(innerSliceWithCap)); // 2
190
+ console.log("Capacity of innerSliceWithCap:", goscript.cap(innerSliceWithCap)); // 5
191
+ innerSliceWithCap = goscript.append(innerSliceWithCap, 60); // {40, 50, 60}
192
+ console.log("Length of innerSliceWithCap after append:", goscript.len(innerSliceWithCap)); // 3
193
+ console.log("Capacity of innerSliceWithCap after append:", goscript.cap(innerSliceWithCap)); // 5
194
+ console.log("innerSliceWithCap[2]:", innerSliceWithCap[2]); // 60
195
+ // Check if the original slice of slices reflects the change (it should, as append was within capacity)
196
+ console.log("sliceOfSlicesWithCap[1][2]:", sliceOfSlicesWithCap[1][2]); // 60
197
+ // Append to inner slice exceeding capacity
198
+ console.log("--- Append to inner slice exceeding capacity ---");
199
+ let innerSliceExceedCap = sliceOfSlices[0]; // {1, 2, 3}, len 3, cap 3
200
+ console.log("Length of innerSliceExceedCap:", goscript.len(innerSliceExceedCap)); // 3
201
+ console.log("Capacity of innerSliceExceedCap:", goscript.cap(innerSliceExceedCap)); // 3
202
+ innerSliceExceedCap = goscript.append(innerSliceExceedCap, 10, 20); // {1, 2, 3, 10, 20} - will reallocate
203
+ console.log("Length of innerSliceExceedCap after append:", goscript.len(innerSliceExceedCap)); // 5
204
+ console.log("Capacity of innerSliceExceedCap after append:", goscript.cap(innerSliceExceedCap)); // 6 (or more)
205
+ console.log("innerSliceExceedCap[3]:", innerSliceExceedCap[3]); // 10
206
+ console.log("innerSliceExceedCap[4]:", innerSliceExceedCap[4]); // 20
207
+ // Check if the original slice of slices reflects the change (it should NOT, due to reallocation)
208
+ // The original sliceOfSlices[0] should still be {1, 2, 3}
209
+ console.log("Original sliceOfSlices[0] after inner append:", sliceOfSlices[0][0], sliceOfSlices[0][1], sliceOfSlices[0][2]); // 1 2 3
210
+ // Slicing a slice of slices
211
+ console.log("--- Slicing a slice of slices ---");
212
+ let subSliceOfSlices = goscript.slice(sliceOfSlices, 1, 3); // {{4, 5}, {6, 7, 8, 9}}, len 2, cap 2
213
+ console.log("Length of subSliceOfSlices:", goscript.len(subSliceOfSlices)); // 2
214
+ console.log("Capacity of subSliceOfSlices:", goscript.cap(subSliceOfSlices)); // 2
215
+ console.log("subSliceOfSlices[0][0]:", subSliceOfSlices[0][0]); // 4
216
+ console.log("subSliceOfSlices[1][2]:", subSliceOfSlices[1][2]); // 8
217
+ // Modify element in sub-slice of slices (should affect original)
218
+ console.log("--- Modify element in sub-slice of slices ---");
219
+ subSliceOfSlices[0][1] = 55;
220
+ console.log("sliceOfSlices[1][1] after sub-slice modification:", sliceOfSlices[1][1]); // 55
221
+ // Append a new slice to the slice of slices
222
+ console.log("--- Append a new slice to slice of slices ---");
223
+ sliceOfSlices = goscript.append(sliceOfSlices, [100, 110]);
224
+ console.log("Length of sliceOfSlices after append:", goscript.len(sliceOfSlices)); // 4
225
+ console.log("Capacity of sliceOfSlices after append:", goscript.cap(sliceOfSlices)); // 6 (or more)
226
+ console.log("sliceOfSlices[3][0]:", sliceOfSlices[3][0]); // 100
227
+ // Append an existing slice to the slice of slices
228
+ console.log("--- Append an existing slice to slice of slices ---");
229
+ let existingSlice = [200, 210];
230
+ sliceOfSlices = goscript.append(sliceOfSlices, existingSlice);
231
+ console.log("Length of sliceOfSlices after appending existing:", goscript.len(sliceOfSlices)); // 5
232
+ console.log("Capacity of sliceOfSlices after appending existing:", goscript.cap(sliceOfSlices)); // 6 (or more)
233
+ console.log("sliceOfSlices[4][1]:", sliceOfSlices[4][1]); // 210
234
+ // Modify the appended existing slice (should NOT affect the slice in sliceOfSlices if it was copied)
235
+ // Go's append copies the slice header, but the underlying array is shared unless reallocation occurs.
236
+ // Modifying existingSlice *after* appending it should not affect the copy in sliceOfSlices
237
+ // unless they still share the underlying array and the modification is within the shared capacity.
238
+ // Let's test this carefully.
239
+ console.log("--- Modify appended existing slice ---");
240
+ existingSlice[0] = 205;
241
+ console.log("sliceOfSlices[4][0] after modifying existingSlice:", sliceOfSlices[4][0]); // Should still be 200 if copied or shared but not modified at index 0
242
+ // If we modify an element in the slice within sliceOfSlices, it *should* affect the original existingSlice
243
+ // if they share the underlying array.
244
+ console.log("--- Modify slice within sliceOfSlices ---");
245
+ sliceOfSlices[4][1] = 215;
246
+ console.log("existingSlice[1] after modifying slice within sliceOfSlices:", existingSlice[1]); // Should be 215
247
+ // Create a slice of slices using make
248
+ console.log("--- Make slice of slices ---");
249
+ let makeSliceOfSlices = goscript.makeSlice(2, 4); // len 2, cap 4
250
+ console.log("Length of makeSliceOfSlices:", goscript.len(makeSliceOfSlices)); // 2
251
+ console.log("Capacity of makeSliceOfSlices:", goscript.cap(makeSliceOfSlices)); // 4
252
+ // Initialize inner slices
253
+ makeSliceOfSlices[0] = [1000, 2000];
254
+ makeSliceOfSlices[1] = goscript.makeSlice(1, 3);
255
+ makeSliceOfSlices[1][0] = 3000;
256
+ console.log("makeSliceOfSlices[0][1]:", makeSliceOfSlices[0][1]); // 2000
257
+ console.log("makeSliceOfSlices[1][0]:", makeSliceOfSlices[1][0]); // 3000
258
+ // Append a new inner slice
259
+ makeSliceOfSlices = goscript.append(makeSliceOfSlices, [4000, 5000]);
260
+ console.log("Length of makeSliceOfSlices after append:", goscript.len(makeSliceOfSlices)); // 3
261
+ console.log("Capacity of makeSliceOfSlices after append:", goscript.cap(makeSliceOfSlices)); // 4
262
+ console.log("makeSliceOfSlices[2][1]:", makeSliceOfSlices[2][1]); // 5000
263
+ // Append another new inner slice (should exceed capacity and reallocate outer slice)
264
+ makeSliceOfSlices = goscript.append(makeSliceOfSlices, [6000]);
265
+ console.log("Length of makeSliceOfSlices after second append:", goscript.len(makeSliceOfSlices)); // 4
266
+ console.log("Capacity of makeSliceOfSlices after second append:", goscript.cap(makeSliceOfSlices)); // 8 (or more)
267
+ console.log("makeSliceOfSlices[3][0]:", makeSliceOfSlices[3][0]); // 6000
268
+ // Nil slice of slices
269
+ console.log("--- Nil slice of slices ---");
270
+ let nilSliceOfSlices = [];
271
+ console.log("Nil slice of slices len:", goscript.len(nilSliceOfSlices)); // 0
272
+ console.log("Nil slice of slices cap:", goscript.cap(nilSliceOfSlices)); // 0
273
+ // Append to nil slice of slices
274
+ nilSliceOfSlices = goscript.append(nilSliceOfSlices, [10000]);
275
+ console.log("Length of nilSliceOfSlices after append:", goscript.len(nilSliceOfSlices)); // 1
276
+ console.log("Capacity of nilSliceOfSlices after append:", goscript.cap(nilSliceOfSlices)); // 1 (or more)
277
+ console.log("nilSliceOfSlices[0][0]:", nilSliceOfSlices[0][0]); // 10000
278
+ // Append another slice to the nil slice of slices
279
+ nilSliceOfSlices = goscript.append(nilSliceOfSlices, [20000, 30000]);
280
+ console.log("Length of nilSliceOfSlices after second append:", goscript.len(nilSliceOfSlices)); // 2
281
+ console.log("Capacity of nilSliceOfSlices after second append:", goscript.cap(nilSliceOfSlices)); // 2 (or more)
282
+ console.log("nilSliceOfSlices[1][1]:", nilSliceOfSlices[1][1]); // 30000
283
+ // Empty slice of slices (not nil)
284
+ console.log("--- Empty slice of slices ---");
285
+ let emptySliceOfSlices = goscript.makeSlice(0);
286
+ console.log("Empty slice of slices len:", goscript.len(emptySliceOfSlices)); // 0
287
+ console.log("Empty slice of slices cap:", goscript.cap(emptySliceOfSlices)); // 0 (or more, implementation dependent)
288
+ // Append to empty slice of slices
289
+ emptySliceOfSlices = goscript.append(emptySliceOfSlices, [40000]);
290
+ console.log("Length of emptySliceOfSlices after append:", goscript.len(emptySliceOfSlices)); // 1
291
+ console.log("Capacity of emptySliceOfSlices after append:", goscript.cap(emptySliceOfSlices)); // 1 (or more)
292
+ console.log("emptySliceOfSlices[0][0]:", emptySliceOfSlices[0][0]); // 40000
20
293
  }
21
294
  //# sourceMappingURL=slices.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slices.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/slices/slices.gs.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yDAAyD;AAEzD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,2DAA2D;IAC3D,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5B,0CAA0C;IAC1C,IAAI,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAE7B,gBAAgB;IAChB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;IAEf,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"slices.gs.js","sourceRoot":"","sources":["../../../../compliance/tests/slices/slices.gs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;