goscript 0.0.58 → 0.0.60

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 (44) hide show
  1. package/README.md +40 -33
  2. package/compiler/analysis.go +184 -43
  3. package/compiler/assignment.go +163 -217
  4. package/compiler/compiler.go +35 -31
  5. package/compiler/composite-lit.go +233 -196
  6. package/compiler/constraint.go +88 -0
  7. package/compiler/decl.go +82 -24
  8. package/compiler/expr-call-async.go +20 -34
  9. package/compiler/expr-call-builtins.go +19 -0
  10. package/compiler/expr-call-helpers.go +0 -28
  11. package/compiler/expr-call-make.go +93 -343
  12. package/compiler/expr-call-type-conversion.go +221 -249
  13. package/compiler/expr-call.go +70 -69
  14. package/compiler/expr-selector.go +21 -24
  15. package/compiler/expr.go +3 -60
  16. package/compiler/protobuf.go +180 -36
  17. package/compiler/spec-value.go +132 -24
  18. package/compiler/spec.go +14 -55
  19. package/compiler/stmt-assign.go +338 -356
  20. package/compiler/stmt-range.go +4 -24
  21. package/compiler/stmt.go +92 -203
  22. package/compiler/type-utils.go +185 -0
  23. package/compiler/type.go +26 -80
  24. package/dist/gs/builtin/slice.d.ts +1 -1
  25. package/dist/gs/builtin/slice.js +3 -0
  26. package/dist/gs/builtin/slice.js.map +1 -1
  27. package/dist/gs/builtin/type.js +8 -2
  28. package/dist/gs/builtin/type.js.map +1 -1
  29. package/dist/gs/fmt/fmt.js +113 -16
  30. package/dist/gs/fmt/fmt.js.map +1 -1
  31. package/dist/gs/runtime/runtime.d.ts +1 -1
  32. package/dist/gs/runtime/runtime.js +1 -1
  33. package/dist/gs/slices/slices.d.ts +23 -0
  34. package/dist/gs/slices/slices.js +61 -0
  35. package/dist/gs/slices/slices.js.map +1 -1
  36. package/go.mod +10 -10
  37. package/go.sum +22 -14
  38. package/gs/builtin/slice.ts +5 -2
  39. package/gs/builtin/type.ts +13 -6
  40. package/gs/fmt/fmt.test.ts +176 -0
  41. package/gs/fmt/fmt.ts +109 -18
  42. package/gs/runtime/runtime.ts +1 -1
  43. package/gs/slices/slices.ts +68 -0
  44. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,uEAAuE;AAEvE,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAsBnD,gDAAgD;AAChD,SAAS,WAAW,CAAC,KAAU,EAAE,IAAY;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,EAAE,iBAAiB;YACzB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;QAC7B,KAAK,GAAG,EAAE,kBAAkB;YAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC1C,KAAK,GAAG,EAAE,6BAA6B;YACrC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;QACjC,KAAK,GAAG,EAAE,SAAS;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,KAAK,GAAG,EAAE,UAAU;YAClB,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QACjC,KAAK,GAAG,EAAE,OAAO;YACf,OAAO,OAAO,KAAK,CAAA;QACrB,KAAK,GAAG,EAAE,iCAAiC;YACzC,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,KAAK,GAAG,EAAE,wBAAwB;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,GAAG,EAAE,wBAAwB;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QACjD,KAAK,GAAG,EAAE,QAAQ;YAChB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAClC,KAAK,GAAG,EAAE,SAAS;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAClC,KAAK,GAAG,EAAE,gCAAgC;YACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;QACtC,KAAK,GAAG,EAAE,gCAAgC;YACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAA;QACpD,KAAK,GAAG,EAAE,uCAAuC;YAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;QACpC,KAAK,GAAG,EAAE,uCAAuC;YAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAA;QAClD,KAAK,GAAG,EAAE,gBAAgB;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACtC,KAAK,GAAG,EAAE,oBAAoB;YAC5B,OAAO,IAAI,GAAI,KAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAA;QAC9D;YACE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAU;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAA;IACzD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,+BAA+B;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;QACvB,CAAC;QACD,gCAAgC;QAChC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAW;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9B,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,CAAA;oBACb,CAAC,EAAE,CAAA,CAAC,kBAAkB;oBACtB,SAAQ;gBACV,CAAC;gBAED,yBAAyB;gBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,IAAI,KAAK,GAAG,EAAE,CAAA;gBACd,IAAI,SAAS,GAAG,EAAE,CAAA;gBAClB,IAAI,KAAK,GAAG,EAAE,CAAA;gBAEd,kCAAkC;gBAClC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;oBAClB,CAAC,EAAE,CAAA;gBACL,CAAC;gBAED,cAAc;gBACd,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBACjE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;oBAClB,CAAC,EAAE,CAAA;gBACL,CAAC;gBAED,kBAAkB;gBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC3C,CAAC,EAAE,CAAA;oBACH,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACjE,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;wBACtB,CAAC,EAAE,CAAA;oBACL,CAAC;gBACH,CAAC;gBAED,eAAe;gBACf,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;oBAEtB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3B,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;wBAEjD,uCAAuC;wBACvC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;4BACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;4BACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gCACxB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;4BACjC,CAAC;iCAAM,CAAC;gCACN,SAAS,GAAG,SAAS,CAAC,QAAQ,CAC5B,CAAC,EACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAChC,CAAA;4BACH,CAAC;wBACH,CAAC;6BAAM,IACL,SAAS;4BACT,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAC9C,CAAC;4BACD,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;4BAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;4BAClC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gCACjB,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;4BAC5B,CAAC;iCAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gCACxB,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;4BAClC,CAAC;iCAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gCACxB,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;4BAChC,CAAC;4BAED,IAAI,KAAK,EAAE,CAAC;gCACV,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;gCACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oCACxB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;gCACjC,CAAC;qCAAM,CAAC;oCACN,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gCACnC,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,MAAM,IAAI,SAAS,CAAA;wBACnB,QAAQ,EAAE,CAAA;oBACZ,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,IAAI,WAAW,CAAA;oBAChC,CAAC;oBAED,CAAC,GAAG,CAAC,CAAA;gBACP,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,+CAA+C;AAC/C,IAAI,MAAM,GAAG;IACX,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;QACtB,qFAAqF;QACrF,mEAAmE;QACnE,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,EACpB,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,oFAAoF;YACpF,gFAAgF;YAChF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChB,2DAA2D;oBAC3D,mDAAmD;oBACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAED,kBAAkB;AAClB,MAAM,UAAU,KAAK,CAAC,GAAG,CAAQ;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,MAAc,EACd,GAAG,CAAQ;IAEX,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,CAAQ;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,MAAM,CAAC,GAAG,CAAQ;IAChC,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,GAAG,CAAQ;IACjD,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,CAAQ;IAClC,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;AAC9C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,MAAM,CAAC,CAAM,EAAE,GAAG,CAAQ;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,CAAM,EACN,MAAc,EACd,GAAG,CAAQ;IAEX,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAM,EAAE,GAAG,CAAQ;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACpD,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,MAAM,CAAC,CAAa,EAAE,GAAG,CAAQ;IAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,CAAa,EACb,MAAc,EACd,GAAG,CAAQ;IAEX,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAa,EAAE,GAAG,CAAQ;IACjD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,GAAG,CAAQ;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACtC,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,IAAY;IACrD,IAAI,MAAM,GAAG,GAAG,CAAA;IAEhB,YAAY;IACZ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA,CAAC,QAAQ;IAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA,CAAC,OAAO;IACzC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA,CAAC,QAAQ;IAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA,CAAC,OAAO;IACzC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA,CAAC,OAAO;IAEzC,YAAY;IACZ,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC;IAED,WAAW;IACX,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,IAAI,CAAC,GAAG,EAAS;IAC/B,sCAAsC;IACtC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,OAAe,EACf,GAAG,EAAS;IAEZ,gDAAgD;IAChD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG,EAAS;IACjC,2CAA2C;IAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,GAAG,EAAS;IAC9C,uCAAuC;IACvC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,OAAe,EACf,GAAG,EAAS;IAEZ,iDAAiD;IACjD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,GAAG,EAAS;IAEZ,4CAA4C;IAC5C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAO,EAAE,GAAG,EAAS;IACzC,uCAAuC;IACvC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,EAAO,EACP,OAAe,EACf,GAAG,EAAS;IAEZ,iDAAiD;IACjD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAO,EAAE,GAAG,EAAS;IAC3C,4CAA4C;IAC5C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../../gs/fmt/fmt.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare const GOOS = "js";
2
2
  export declare const GOARCH = "wasm";
3
- export declare const GOVERSION = "go1.24.4";
3
+ export declare const GOVERSION = "go1.25.3";
4
4
  export declare function Version(): string;
5
5
  export declare function GOMAXPROCS(_n: number): number;
6
6
  export declare function NumCPU(): number;
@@ -2,7 +2,7 @@
2
2
  export const GOOS = 'js';
3
3
  export const GOARCH = 'wasm';
4
4
  // Version returns the Go version as a string
5
- export const GOVERSION = 'go1.24.4';
5
+ export const GOVERSION = 'go1.25.3';
6
6
  export function Version() {
7
7
  return GOVERSION;
8
8
  }
@@ -12,3 +12,26 @@ export declare function All<T>(s: $.Slice<T>): (yieldFunc: (index: number, value
12
12
  * @param s The slice to sort in place
13
13
  */
14
14
  export declare function Sort<T extends string | number>(s: $.Slice<T>): void;
15
+ /**
16
+ * Delete removes the elements s[i:j] from s, returning the modified slice.
17
+ * Delete panics if j > len(s) or s[i:j] is not a valid slice of s.
18
+ * This is equivalent to Go's slices.Delete function.
19
+ * @param s The slice to delete from
20
+ * @param i The start index (inclusive)
21
+ * @param j The end index (exclusive)
22
+ * @returns The modified slice
23
+ */
24
+ export declare function Delete<T>(s: $.Slice<T>, i: number, j: number): $.Slice<T>;
25
+ /**
26
+ * BinarySearchFunc works like BinarySearch, but uses a custom comparison function.
27
+ * The slice must be sorted in increasing order, where "increasing" is defined by cmp.
28
+ * cmp should return 0 if the slice element matches the target, a negative number if
29
+ * the slice element precedes the target, or a positive number if the slice element
30
+ * follows the target.
31
+ * This is equivalent to Go's slices.BinarySearchFunc function.
32
+ * @param x The sorted slice to search
33
+ * @param target The target value to search for
34
+ * @param cmp Comparison function
35
+ * @returns A tuple of [index, found] where index is the position and found indicates if target was found
36
+ */
37
+ export declare function BinarySearchFunc<E, T>(x: $.Slice<E>, target: T, cmp: (a: E, b: T) => number): [number, boolean];
@@ -25,4 +25,65 @@ export function All(s) {
25
25
  export function Sort(s) {
26
26
  $.sortSlice(s);
27
27
  }
28
+ /**
29
+ * Delete removes the elements s[i:j] from s, returning the modified slice.
30
+ * Delete panics if j > len(s) or s[i:j] is not a valid slice of s.
31
+ * This is equivalent to Go's slices.Delete function.
32
+ * @param s The slice to delete from
33
+ * @param i The start index (inclusive)
34
+ * @param j The end index (exclusive)
35
+ * @returns The modified slice
36
+ */
37
+ export function Delete(s, i, j) {
38
+ const length = $.len(s);
39
+ if (j > length || i < 0 || j < i) {
40
+ throw new Error(`slice bounds out of range [${i}:${j}] with length ${length}`);
41
+ }
42
+ if (i === j) {
43
+ return s;
44
+ }
45
+ // Shift elements after j to position i
46
+ const deleteCount = j - i;
47
+ for (let k = j; k < length; k++) {
48
+ ;
49
+ s[k - deleteCount] = s[k];
50
+ }
51
+ // Zero out the elements at the end
52
+ for (let k = length - deleteCount; k < length; k++) {
53
+ ;
54
+ s[k] = null;
55
+ }
56
+ // Update the slice length
57
+ return $.goSlice(s, 0, length - deleteCount);
58
+ }
59
+ /**
60
+ * BinarySearchFunc works like BinarySearch, but uses a custom comparison function.
61
+ * The slice must be sorted in increasing order, where "increasing" is defined by cmp.
62
+ * cmp should return 0 if the slice element matches the target, a negative number if
63
+ * the slice element precedes the target, or a positive number if the slice element
64
+ * follows the target.
65
+ * This is equivalent to Go's slices.BinarySearchFunc function.
66
+ * @param x The sorted slice to search
67
+ * @param target The target value to search for
68
+ * @param cmp Comparison function
69
+ * @returns A tuple of [index, found] where index is the position and found indicates if target was found
70
+ */
71
+ export function BinarySearchFunc(x, target, cmp) {
72
+ let left = 0;
73
+ let right = $.len(x);
74
+ while (left < right) {
75
+ const mid = Math.floor((left + right) / 2);
76
+ const result = cmp(x[mid], target);
77
+ if (result < 0) {
78
+ left = mid + 1;
79
+ }
80
+ else if (result > 0) {
81
+ right = mid;
82
+ }
83
+ else {
84
+ return [mid, true];
85
+ }
86
+ }
87
+ return [left, false];
88
+ }
28
89
  //# sourceMappingURL=slices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,CAAa;IAEb,OAAO,UAAU,MAA4C;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAI,CAAS,CAAC,CAAC,CAAM,CAAA,CAAC,2CAA2C;YAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAA4B,CAAa;IAC3D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,CAAa;IAEb,OAAO,UAAU,MAA4C;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAI,CAAS,CAAC,CAAC,CAAM,CAAA,CAAC,2CAA2C;YAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAA4B,CAAa;IAC3D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAI,CAAa,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAC9D,CAAA;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,CAAA;IACV,CAAC;IACD,uCAAuC;IACvC,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC;QAAC,CAAS,CAAC,CAAC,GAAG,WAAW,CAAC,GAAI,CAAS,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,mCAAmC;IACnC,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,CAAC;QAAC,CAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACvB,CAAC;IACD,0BAA0B;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAAe,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,CAAa,EACb,MAAS,EACT,GAA2B;IAE3B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,IAAI,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAE,CAAS,CAAC,GAAG,CAAM,EAAE,MAAM,CAAC,CAAA;QAEhD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;QAChB,CAAC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,GAAG,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtB,CAAC"}
package/go.mod CHANGED
@@ -1,21 +1,21 @@
1
1
  module github.com/aperturerobotics/goscript
2
2
 
3
- go 1.24.4
3
+ go 1.25.3
4
4
 
5
5
  require (
6
- github.com/aperturerobotics/cli v1.0.0
7
- github.com/aperturerobotics/protobuf-go-lite v0.9.1
8
- github.com/aperturerobotics/util v1.30.1
6
+ github.com/aperturerobotics/cli v1.0.1
7
+ github.com/aperturerobotics/protobuf-go-lite v0.11.0
8
+ github.com/aperturerobotics/util v1.31.4
9
9
  github.com/pkg/errors v0.9.1
10
10
  github.com/sirupsen/logrus v1.9.3
11
- golang.org/x/tools v0.35.0
11
+ golang.org/x/tools v0.38.0
12
12
  )
13
13
 
14
14
  require (
15
- github.com/aperturerobotics/common v0.22.5 // indirect
15
+ github.com/aperturerobotics/common v0.22.12 // indirect
16
16
  github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 // indirect
17
- github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
18
- golang.org/x/mod v0.26.0 // indirect
19
- golang.org/x/sync v0.16.0 // indirect
20
- golang.org/x/sys v0.34.0 // indirect
17
+ github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
18
+ golang.org/x/mod v0.29.0 // indirect
19
+ golang.org/x/sync v0.17.0 // indirect
20
+ golang.org/x/sys v0.37.0 // indirect
21
21
  )
package/go.sum CHANGED
@@ -1,13 +1,19 @@
1
1
  github.com/aperturerobotics/cli v1.0.0 h1:s3xT2h7eBih4/4yZKTn/HQ6P+qpk6ygWZl2416xAI1M=
2
2
  github.com/aperturerobotics/cli v1.0.0/go.mod h1:wtlINjMcKuwyV1x4ftReuA6hHZcPB8kPMXHyQqGFCSc=
3
- github.com/aperturerobotics/common v0.22.5 h1:VhweXK3CVWfPdNXI2311EOMq9SUpdZAnWuinNYH7020=
4
- github.com/aperturerobotics/common v0.22.5/go.mod h1:wsPfDVCTNpGHddg/MSfm84rKoO4GAvb+TQtATXz+pKY=
3
+ github.com/aperturerobotics/cli v1.0.1 h1:9KsECHGESJ/iGU13Z4zNQzKFz5bMave4bA6lPXGjtOU=
4
+ github.com/aperturerobotics/cli v1.0.1/go.mod h1:s1Gh4eTOGGlrPqpyi/q8aIQwk0T6yDCF7C2xPyBMtek=
5
+ github.com/aperturerobotics/common v0.22.10 h1:XFfXq9NGrirjW6rtqq525qiY1IN+1siGBZwIsvBJGfQ=
6
+ github.com/aperturerobotics/common v0.22.10/go.mod h1:xMXHNN6oCvG0FfG1tY6+2Si7iWh1QfSSCSrqohFUeIk=
7
+ github.com/aperturerobotics/common v0.22.12 h1:uSo+fDQg6xCoNI34Y7gueW1cW9Cy4d/2FQb/T006LZQ=
8
+ github.com/aperturerobotics/common v0.22.12/go.mod h1:xMXHNN6oCvG0FfG1tY6+2Si7iWh1QfSSCSrqohFUeIk=
5
9
  github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 h1:So9JeziaWKx2Fw8sK4AUN/szqKtJ0jEMhS6bU4sHbxs=
6
10
  github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008/go.mod h1:snaApCEDtrHHP6UWSLKiYNOZU9A5NyzccKenx9oZEzg=
7
- github.com/aperturerobotics/protobuf-go-lite v0.9.1 h1:P1knXKnwLJpVE8fmeXYGckKu79IhqUvKRdCfJNR0MwQ=
8
- github.com/aperturerobotics/protobuf-go-lite v0.9.1/go.mod h1:fULrxQxEBWKQm7vvju9AfjTp9yfHoLgwMQWTiZQ2tg0=
9
- github.com/aperturerobotics/util v1.30.1 h1:4ssKO1TlfoBBcLXZwISAw8Yf8H9Mg9D0jnn+klMXAKY=
10
- github.com/aperturerobotics/util v1.30.1/go.mod h1:OLTwZiBfCVh9kirNhA1quJfnLuy4OW7CyIkvoFX62+A=
11
+ github.com/aperturerobotics/protobuf-go-lite v0.11.0 h1:IAaZISqrEpodqECYxk0yKWgROEbZtMhs7bErP+Zma9o=
12
+ github.com/aperturerobotics/protobuf-go-lite v0.11.0/go.mod h1:c4kGy7Dkfz6B1m0t4QBIMQoNeQ7m+nYj3Qxxnlwhygo=
13
+ github.com/aperturerobotics/util v1.31.3 h1:3irvlwlwwvOl4jD2lHg/N8bBp9B/3kx9Ec4qlJxQKEU=
14
+ github.com/aperturerobotics/util v1.31.3/go.mod h1:G5yKUDojt6uzVvs7kGByey0lBfKdDg4O4jXmdkSqO6Y=
15
+ github.com/aperturerobotics/util v1.31.4 h1:2F4j5CML/Hb4dQT1E1pjkZd3AdJhsAQiaRCR9pD/dwo=
16
+ github.com/aperturerobotics/util v1.31.4/go.mod h1:qfeWUnkC60QpjxH4yocO6Q/No+J1E488yzuconPgF8c=
11
17
  github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
12
18
  github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
13
19
  github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -25,15 +31,17 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
25
31
  github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
26
32
  github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
27
33
  github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
28
- golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
29
- golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
30
- golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
31
- golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
34
+ github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg=
35
+ github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
36
+ golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
37
+ golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
38
+ golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
39
+ golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
32
40
  golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
33
- golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
34
- golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
35
- golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
36
- golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=
41
+ golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
42
+ golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
43
+ golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
44
+ golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
37
45
  gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
38
46
  gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
39
47
  gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
@@ -1197,12 +1197,15 @@ export function stringToBytes(s: string): Uint8Array {
1197
1197
  * @returns The string representation
1198
1198
  */
1199
1199
  export function genericBytesOrStringToString(
1200
- value: string | Uint8Array,
1200
+ value: string | import('./builtin.js').Bytes | null | undefined,
1201
1201
  ): string {
1202
+ if (value === null || value === undefined) {
1203
+ return ''
1204
+ }
1202
1205
  if (typeof value === 'string') {
1203
1206
  return value
1204
1207
  }
1205
- return bytesToString(value as unknown as number[])
1208
+ return bytesToString(value)
1206
1209
  }
1207
1210
 
1208
1211
  /**
@@ -667,18 +667,20 @@ const STRUCT_VALUE_MARKER = Symbol('structValue')
667
667
  // Mark a struct instance as representing a value (not pointer)
668
668
  export function markAsStructValue<T>(value: T): T {
669
669
  if (typeof value === 'object' && value !== null) {
670
- (value as any)[STRUCT_VALUE_MARKER] = true
670
+ ;(value as any)[STRUCT_VALUE_MARKER] = true
671
671
  }
672
672
  return value
673
673
  }
674
674
 
675
675
  // Check if a struct instance is marked as a value
676
676
  function isMarkedAsStructValue(value: any): boolean {
677
- return typeof value === 'object' && value !== null && value[STRUCT_VALUE_MARKER] === true
677
+ return (
678
+ typeof value === 'object' &&
679
+ value !== null &&
680
+ value[STRUCT_VALUE_MARKER] === true
681
+ )
678
682
  }
679
683
 
680
-
681
-
682
684
  /**
683
685
  * Checks if a value matches a pointer type info.
684
686
  *
@@ -719,7 +721,7 @@ function matchesPointerType(value: any, info: TypeInfo): boolean {
719
721
  let elemTypeInfo = normalizeTypeInfo(elem)
720
722
  return matchesType(value.value, elemTypeInfo)
721
723
  }
722
-
724
+
723
725
  // Direct struct instance - with inversion, only match if NOT marked as value (i.e., is a pointer)
724
726
  return value instanceof registered.ctor && !isMarkedAsStructValue(value)
725
727
  } else {
@@ -932,7 +934,12 @@ export function typeAssert<T>(
932
934
  // Special handling for pointer type assertions:
933
935
  // If the value is a VarRef and we're asserting to a pointer type,
934
936
  // return the inner value (value.value), not the VarRef object itself
935
- if (isPointerTypeInfo(normalizedType) && typeof value === 'object' && value !== null && 'value' in value) {
937
+ if (
938
+ isPointerTypeInfo(normalizedType) &&
939
+ typeof value === 'object' &&
940
+ value !== null &&
941
+ 'value' in value
942
+ ) {
936
943
  return { value: value.value as T, ok: true }
937
944
  }
938
945
  return { value: value as T, ok: true }
@@ -0,0 +1,176 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import * as fmt from './fmt.js'
3
+
4
+ // Helper to capture stdout via internal stdout.write
5
+ // We will monkey-patch global process.stdout.write if available
6
+ function captureStdout(run: () => void): string {
7
+ let buf = ''
8
+ const hasProcess =
9
+ typeof process !== 'undefined' &&
10
+ (process as any).stdout &&
11
+ typeof (process as any).stdout.write === 'function'
12
+
13
+ if (hasProcess) {
14
+ const orig = (process as any).stdout.write
15
+ ;(process as any).stdout.write = (chunk: any) => {
16
+ buf += typeof chunk === 'string' ? chunk : String(chunk)
17
+ return true
18
+ }
19
+ try {
20
+ run()
21
+ } finally {
22
+ ;(process as any).stdout.write = orig
23
+ }
24
+ } else {
25
+ // Fallback: spy on console.log for environments without process
26
+ const origLog = console.log
27
+ ;(console as any).log = (msg: any) => {
28
+ buf += String(msg) + '\n'
29
+ }
30
+ try {
31
+ run()
32
+ } finally {
33
+ console.log = origLog
34
+ }
35
+ }
36
+
37
+ return buf
38
+ }
39
+
40
+ describe('fmt basic value formatting', () => {
41
+ it('%T approximations for primitives', () => {
42
+ // routed through Sprintf which uses format parsing
43
+ expect(fmt.Sprintf('Type: %T', 123)).toBe('Type: int')
44
+ expect(fmt.Sprintf('Type: %T', 3.14)).toBe('Type: float64')
45
+ expect(fmt.Sprintf('Type: %T', 'hello')).toBe('Type: string')
46
+ expect(fmt.Sprintf('Type: %T', true)).toBe('Type: bool')
47
+ })
48
+
49
+ it('%d truncation behavior including negatives', () => {
50
+ expect(fmt.Sprintf('%d', 42.9)).toBe('42')
51
+ expect(fmt.Sprintf('%d', -42.9)).toBe('-42')
52
+ })
53
+
54
+ it('%q quoted string and rune', () => {
55
+ expect(fmt.Sprintf('%q', 'hello')).toBe(JSON.stringify('hello'))
56
+ // rune-like number
57
+ expect(fmt.Sprintf('%q', 97)).toBe(JSON.stringify('a'))
58
+ })
59
+
60
+ it('%p pointer-ish formatting fallback', () => {
61
+ expect(fmt.Sprintf('%p', {})).toBe('0x0')
62
+ expect(fmt.Sprintf('%p', { __address: 255 })).toBe('0xff')
63
+ })
64
+
65
+ it('%v default formats for arrays/maps/sets', () => {
66
+ expect(fmt.Sprintf('%v', [1, 2, 3])).toBe('[1 2 3]')
67
+ const m = new Map<any, any>()
68
+ m.set('a', 1)
69
+ m.set('b', 2)
70
+ const out = fmt.Sprintf('%v', m)
71
+ // Order in Map iteration is insertion order; verify shape
72
+ expect(out.startsWith('{')).toBe(true)
73
+ expect(out.includes('a:1')).toBe(true)
74
+ expect(out.includes('b:2')).toBe(true)
75
+ expect(out.endsWith('}')).toBe(true)
76
+
77
+ const s = new Set<any>([1, 2, 3])
78
+ expect(fmt.Sprintf('%v', s)).toBe('[1 2 3]')
79
+ })
80
+
81
+ it('error and stringer precedence', () => {
82
+ const err = {
83
+ Error() {
84
+ return 'some error'
85
+ },
86
+ }
87
+ expect(fmt.Sprintf('%v', err)).toBe('some error')
88
+
89
+ const stringer = {
90
+ String() {
91
+ return 'I am stringer'
92
+ },
93
+ }
94
+ expect(fmt.Sprintf('%v', stringer)).toBe('I am stringer')
95
+
96
+ const goStringer = {
97
+ GoString() {
98
+ return '<go stringer>'
99
+ },
100
+ }
101
+ // We prefer GoString() first
102
+ expect(fmt.Sprintf('%v', goStringer)).toBe('<go stringer>')
103
+ })
104
+ })
105
+
106
+ describe('fmt spacing rules', () => {
107
+ it('Sprint: space only between non-strings', () => {
108
+ // Two non-strings => one space
109
+ expect(fmt.Sprint(1, 2)).toBe('1 2')
110
+ // If either is string => no automatic space
111
+ expect(fmt.Sprint('a', 'b')).toBe('ab')
112
+ expect(fmt.Sprint('a', 1)).toBe('a1')
113
+ expect(fmt.Sprint(1, 'b')).toBe('1b')
114
+ // Mixed 3 args
115
+ expect(fmt.Sprint('a', 1, 'b')).toBe('a1b')
116
+ // Go's Sprint inserts a space only when both adjacent operands are non-strings.
117
+ // Between 'b' (string) and 2 (number) there is no automatic space.
118
+ expect(fmt.Sprint(1, 'b', 2)).toBe('1b2')
119
+ })
120
+
121
+ it('Print: same spacing as Sprint, outputs to stdout', () => {
122
+ const output = captureStdout(() => {
123
+ fmt.Print(1, 2, 'x', 3)
124
+ })
125
+ expect(output).toBe('1 2x3')
126
+ })
127
+
128
+ it('Println: always separates by spaces and appends newline', () => {
129
+ const output = captureStdout(() => {
130
+ fmt.Println('hi', 'there', 1, 2)
131
+ })
132
+ expect(output).toBe('hi there 1 2\n')
133
+ })
134
+
135
+ it('Fprint/Fprintln behave like Print/Println with writers', () => {
136
+ const chunks: Uint8Array[] = []
137
+ const writer = {
138
+ Write(b: Uint8Array): [number, any] {
139
+ chunks.push(b)
140
+ return [b.length, null]
141
+ },
142
+ }
143
+
144
+ let [n, err] = fmt.Fprint(writer, 1, 2, 'x', 3)
145
+ expect(err).toBeNull()
146
+ expect(n).toBe(5) // "1 2x3".length
147
+ expect(new TextDecoder().decode(chunks[0])).toBe('1 2x3')
148
+ ;[n, err] = fmt.Fprintln(writer, 'hi', 'there', 1, 2)
149
+ expect(err).toBeNull()
150
+ expect(new TextDecoder().decode(chunks[1])).toBe('hi there 1 2\n')
151
+ })
152
+ })
153
+
154
+ describe('fmt parseFormat basic cases', () => {
155
+ it('Printf with %d, %s, %f, width and precision', () => {
156
+ expect(fmt.Sprintf('n=%d s=%s f=%f', 42, 'ok', 3.5)).toBe('n=42 s=ok f=3.5')
157
+ expect(fmt.Sprintf("'%5s'", 'hi')).toBe("' hi'")
158
+ expect(fmt.Sprintf("'%-.3f'", 3.14159)).toBe("'3.142'") // JS rounds
159
+ expect(fmt.Sprintf("'%6.2f'", 3.14159)).toBe("' 3.14'")
160
+ })
161
+
162
+ it('Printf with %% and missing args', () => {
163
+ expect(fmt.Sprintf('100%% done')).toBe('100% done')
164
+ // When the first argument is present but the second is missing,
165
+ // Go prints the formatted first arg followed by the missing marker for the second.
166
+ expect(fmt.Sprintf('%d %s', 1)).toBe('1 %!s(MISSING)')
167
+ })
168
+
169
+ it('Printf hex/octal/bin', () => {
170
+ expect(fmt.Sprintf('%x %X %o %b', 255, 255, 8, 5)).toBe('ff FF 10 101')
171
+ })
172
+
173
+ it('Printf %c for code points', () => {
174
+ expect(fmt.Sprintf('%c', 65)).toBe('A')
175
+ })
176
+ })