goscript 0.2.2 → 0.2.4

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 (160) hide show
  1. package/compiler/gotest/testdata/browserapi/browserapi_test.go +36 -0
  2. package/compiler/lowering.go +279 -16
  3. package/compiler/override-registry_test.go +175 -0
  4. package/compiler/protobuf-ts-binding.go +154 -6
  5. package/compiler/protobuf-ts-binding_test.go +7 -2
  6. package/compiler/runtime-contract.go +2 -0
  7. package/compiler/runtime-contract_test.go +1 -0
  8. package/compiler/semantic-model.go +16 -0
  9. package/compiler/semantic-model_test.go +38 -0
  10. package/compiler/skeleton_test.go +522 -17
  11. package/compiler/typescript-emitter.go +4 -0
  12. package/dist/gs/builtin/builtin.js +7 -9
  13. package/dist/gs/builtin/builtin.js.map +1 -1
  14. package/dist/gs/builtin/defer.js +2 -2
  15. package/dist/gs/builtin/hostio.js +5 -5
  16. package/dist/gs/builtin/hostio.js.map +1 -1
  17. package/dist/gs/builtin/map.js +2 -1
  18. package/dist/gs/builtin/map.js.map +1 -1
  19. package/dist/gs/builtin/slice.d.ts +3 -0
  20. package/dist/gs/builtin/slice.js +39 -0
  21. package/dist/gs/builtin/slice.js.map +1 -1
  22. package/dist/gs/builtin/type.js +49 -0
  23. package/dist/gs/builtin/type.js.map +1 -1
  24. package/dist/gs/compress/gzip/index.d.ts +41 -0
  25. package/dist/gs/compress/gzip/index.js +235 -0
  26. package/dist/gs/compress/gzip/index.js.map +1 -0
  27. package/dist/gs/compress/zlib/index.js +5 -2
  28. package/dist/gs/compress/zlib/index.js.map +1 -1
  29. package/dist/gs/crypto/ecdh/index.js +27 -8
  30. package/dist/gs/crypto/ecdh/index.js.map +1 -1
  31. package/dist/gs/crypto/ed25519/index.js +3 -3
  32. package/dist/gs/crypto/ed25519/index.js.map +1 -1
  33. package/dist/gs/crypto/rand/index.js +6 -3
  34. package/dist/gs/crypto/rand/index.js.map +1 -1
  35. package/dist/gs/embed/index.js +9 -3
  36. package/dist/gs/embed/index.js.map +1 -1
  37. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +1 -0
  38. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +33 -0
  39. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
  40. package/dist/gs/github.com/mr-tron/base58/base58/index.js +4 -1
  41. package/dist/gs/github.com/mr-tron/base58/base58/index.js.map +1 -1
  42. package/dist/gs/golang.org/x/crypto/scrypt/index.d.ts +2 -0
  43. package/dist/gs/golang.org/x/crypto/scrypt/index.js +39 -0
  44. package/dist/gs/golang.org/x/crypto/scrypt/index.js.map +1 -0
  45. package/dist/gs/hash/fnv/index.js +13 -5
  46. package/dist/gs/hash/fnv/index.js.map +1 -1
  47. package/dist/gs/io/fs/glob.d.ts +3 -3
  48. package/dist/gs/io/fs/glob.js +9 -9
  49. package/dist/gs/io/fs/glob.js.map +1 -1
  50. package/dist/gs/io/fs/readdir.d.ts +2 -2
  51. package/dist/gs/io/fs/readdir.js +13 -74
  52. package/dist/gs/io/fs/readdir.js.map +1 -1
  53. package/dist/gs/io/fs/readlink.d.ts +1 -1
  54. package/dist/gs/io/fs/readlink.js +2 -2
  55. package/dist/gs/io/fs/readlink.js.map +1 -1
  56. package/dist/gs/io/fs/stat.d.ts +4 -2
  57. package/dist/gs/io/fs/stat.js +12 -73
  58. package/dist/gs/io/fs/stat.js.map +1 -1
  59. package/dist/gs/io/fs/sub.d.ts +2 -2
  60. package/dist/gs/io/fs/sub.js +11 -11
  61. package/dist/gs/io/fs/sub.js.map +1 -1
  62. package/dist/gs/io/fs/walk.js +2 -2
  63. package/dist/gs/io/fs/walk.js.map +1 -1
  64. package/dist/gs/maps/iter.js.map +1 -1
  65. package/dist/gs/maps/maps.js.map +1 -1
  66. package/dist/gs/mime/index.js +5 -2
  67. package/dist/gs/mime/index.js.map +1 -1
  68. package/dist/gs/net/http/httptest/index.js +6 -3
  69. package/dist/gs/net/http/httptest/index.js.map +1 -1
  70. package/dist/gs/net/http/index.d.ts +34 -18
  71. package/dist/gs/net/http/index.js +280 -63
  72. package/dist/gs/net/http/index.js.map +1 -1
  73. package/dist/gs/net/http/pprof/index.d.ts +5 -5
  74. package/dist/gs/net/http/pprof/index.js +21 -21
  75. package/dist/gs/net/http/pprof/index.js.map +1 -1
  76. package/dist/gs/reflect/iter.js +1 -1
  77. package/dist/gs/reflect/iter.js.map +1 -1
  78. package/dist/gs/reflect/type.d.ts +2 -0
  79. package/dist/gs/reflect/type.js +53 -21
  80. package/dist/gs/reflect/type.js.map +1 -1
  81. package/dist/gs/runtime/pprof/index.js.map +1 -1
  82. package/dist/gs/runtime/runtime.js +2 -2
  83. package/dist/gs/runtime/runtime.js.map +1 -1
  84. package/dist/gs/runtime/trace/index.js.map +1 -1
  85. package/dist/gs/slices/slices.d.ts +1 -1
  86. package/dist/gs/slices/slices.js +37 -4
  87. package/dist/gs/slices/slices.js.map +1 -1
  88. package/gs/builtin/builtin.ts +11 -14
  89. package/gs/builtin/defer.ts +2 -2
  90. package/gs/builtin/hostio.ts +5 -5
  91. package/gs/builtin/map.ts +4 -1
  92. package/gs/builtin/runtime-contract.test.ts +25 -0
  93. package/gs/builtin/slice.test.ts +14 -0
  94. package/gs/builtin/slice.ts +64 -0
  95. package/gs/builtin/type.ts +72 -0
  96. package/gs/bytes/bytes.test.ts +14 -13
  97. package/gs/compress/gzip/index.test.ts +86 -0
  98. package/gs/compress/gzip/index.ts +297 -0
  99. package/gs/compress/gzip/meta.json +6 -0
  100. package/gs/compress/gzip/parity.json +45 -0
  101. package/gs/compress/zlib/index.test.ts +19 -5
  102. package/gs/compress/zlib/index.ts +16 -7
  103. package/gs/context/context.test.ts +3 -1
  104. package/gs/crypto/ecdh/index.test.ts +6 -2
  105. package/gs/crypto/ecdh/index.ts +49 -12
  106. package/gs/crypto/ed25519/index.ts +20 -7
  107. package/gs/crypto/rand/index.ts +6 -3
  108. package/gs/embed/index.test.ts +4 -4
  109. package/gs/embed/index.ts +9 -3
  110. package/gs/fmt/fmt.test.ts +29 -4
  111. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +126 -0
  112. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +46 -0
  113. package/gs/github.com/mr-tron/base58/base58/index.ts +9 -3
  114. package/gs/github.com/zeebo/blake3/internal/consts/index.test.ts +2 -8
  115. package/gs/golang.org/x/crypto/scrypt/index.test.ts +81 -0
  116. package/gs/golang.org/x/crypto/scrypt/index.ts +54 -0
  117. package/gs/golang.org/x/crypto/scrypt/meta.json +5 -0
  118. package/gs/hash/fnv/index.test.ts +1 -8
  119. package/gs/hash/fnv/index.ts +27 -10
  120. package/gs/io/fs/glob.ts +14 -11
  121. package/gs/io/fs/meta.json +5 -0
  122. package/gs/io/fs/readdir.test.ts +63 -2
  123. package/gs/io/fs/readdir.ts +33 -30
  124. package/gs/io/fs/readlink.test.ts +2 -2
  125. package/gs/io/fs/readlink.ts +5 -2
  126. package/gs/io/fs/stat.test.ts +79 -0
  127. package/gs/io/fs/stat.ts +24 -10
  128. package/gs/io/fs/sub.test.ts +93 -0
  129. package/gs/io/fs/sub.ts +13 -13
  130. package/gs/io/fs/walk.ts +2 -2
  131. package/gs/maps/iter.ts +9 -9
  132. package/gs/maps/maps.ts +4 -4
  133. package/gs/math/bits/index.test.ts +10 -1
  134. package/gs/mime/index.test.ts +33 -15
  135. package/gs/mime/index.ts +9 -2
  136. package/gs/net/http/httptest/index.test.ts +17 -3
  137. package/gs/net/http/httptest/index.ts +8 -3
  138. package/gs/net/http/index.test.ts +851 -124
  139. package/gs/net/http/index.ts +612 -146
  140. package/gs/net/http/meta.json +3 -1
  141. package/gs/net/http/pprof/index.test.ts +4 -4
  142. package/gs/net/http/pprof/index.ts +43 -22
  143. package/gs/os/file_unix_js.test.ts +22 -0
  144. package/gs/reflect/iter.ts +4 -2
  145. package/gs/reflect/map.test.ts +56 -1
  146. package/gs/reflect/type.ts +76 -37
  147. package/gs/runtime/pprof/index.test.ts +7 -1
  148. package/gs/runtime/pprof/index.ts +5 -1
  149. package/gs/runtime/runtime.test.ts +7 -0
  150. package/gs/runtime/runtime.ts +2 -4
  151. package/gs/runtime/trace/index.test.ts +9 -1
  152. package/gs/runtime/trace/index.ts +5 -1
  153. package/gs/slices/meta.json +3 -0
  154. package/gs/slices/slices.test.ts +59 -21
  155. package/gs/slices/slices.ts +61 -20
  156. package/gs/strconv/complex.test.ts +17 -3
  157. package/gs/sync/atomic/doc_64.test.ts +2 -9
  158. package/gs/sync/sync.test.ts +18 -8
  159. package/gs/syscall/js/index.test.ts +9 -4
  160. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,IAAI,GAAW,IAAI,CAAA;AAChC,MAAM,CAAC,MAAM,MAAM,GAAW,MAAM,CAAA;AACpC,MAAM,CAAC,MAAM,QAAQ,GAAW,IAAI,CAAA;AAEpC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAW,UAAU,CAAA;AAC3C,MAAM,UAAU,OAAO;IACrB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,iEAAiE;AACjE,EAAE;AACF,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,uDAAuD;IACvD,mDAAmD;IACnD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,MAAM;IACpB,yEAAyE;IACzE,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,mBAAmB,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC,mBAAmB,CAAA;IACtC,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,CAAA;AACV,CAAC;AAED,+DAA+D;AAC/D,qFAAqF;AACrF,MAAM,UAAU,EAAE;IAChB,mDAAmD;IACnD,wEAAwE;IACxE,MAAM,EAAE,GAAI,UAAkC,CAAC,EAAE,CAAA;IACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,EAAE,EAAE,CAAA;IACN,CAAC;IACD,6BAA6B;AAC/B,CAAC;AAED,kEAAkE;AAClE,+EAA+E;AAC/E,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,cAAc,CAAC,OAAO,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,sEAAsE;AACtE,0CAA0C;AAC1C,IAAI,cAAc,GAAG,CAAC,CAAA,CAAC,4BAA4B;AAEnD,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB;IACtC,cAAc,EAAE,CAAA;AAClB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,wBAAwB;IACtC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,cAAc,EAAE,CAAA;IAClB,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,4CAA4C;AAC5C,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,gEAAgE;IAChE,iDAAiD;IACjD,MAAM,EAAE,GAAG,CAAC,CAAA,CAAC,yCAAyC;IACtD,MAAM,IAAI,GAAG,SAAS,CAAA;IACtB,MAAM,IAAI,GAAG,CAAC,CAAA;IACd,MAAM,EAAE,GAAG,KAAK,CAAA,CAAC,yCAAyC;IAC1D,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED,4DAA4D;AAC5D,MAAM,OAAO,IAAI;IACR,KAAK;QACV,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,QAAQ,CAAC,GAAW;QACzB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChB,CAAC;IAEM,IAAI;QACT,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAA;AAC5E,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,SAAS,KAAU,CAAC;AAEpC,oDAAoD;AACpD,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,wCAAwC;AACxC,MAAM,OAAO,KAAK;IACT,EAAE,GAAG,CAAC,CAAA;IACN,IAAI,GAAgB,IAAI,CAAA;IACxB,QAAQ,GAAG,EAAE,CAAA;IACb,IAAI,GAAG,EAAE,CAAA;IACT,IAAI,GAAG,CAAC,CAAA;IACR,KAAK,GAAG,CAAC,CAAA;CACjB;AAED,oCAAoC;AACpC,MAAM,OAAO,MAAM;IACA,MAAM,CAAS;IACxB,KAAK,GAAG,CAAC,CAAA;IAEjB,YAAY,MAAM,GAAY,EAAE;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,GAAoB;IACzD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,OAAO,IAAI,MAAM,EAAE,CAAA;AACrB,CAAC;AAED,kEAAkE;AAClE,oCAAoC;AACpC,MAAM,UAAU,KAAK;IACnB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,yBAAyB,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,mDAAmD;AACnD,MAAM,OAAO,QAAQ;IACnB,uCAAuC;IAChC,KAAK,GAAW,CAAC,CAAA,CAAC,oCAAoC;IACtD,UAAU,GAAW,CAAC,CAAA,CAAC,kCAAkC;IACzD,GAAG,GAAW,CAAC,CAAA,CAAC,6BAA6B;IAC7C,OAAO,GAAW,CAAC,CAAA,CAAC,4BAA4B;IAChD,OAAO,GAAW,CAAC,CAAA,CAAC,oBAAoB;IACxC,KAAK,GAAW,CAAC,CAAA,CAAC,kBAAkB;IAE3C;QACE,sCAAsC;QACtC,qEAAqE;QACrE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAEO,iBAAiB;QACvB,oDAAoD;QACpD,IAAI,OAAO,WAAW,KAAK,WAAW,IAAK,WAAmB,CAAC,MAAM,EAAE,CAAC;YACtE,MAAM,GAAG,GAAI,WAAmB,CAAC,MAAM,CAAA;YACvC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,cAAc,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA,CAAC,aAAa;QAC5C,CAAC;IACH,CAAC;CACF;AAED,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,CAAW;IACtC,0DAA0D;IAC1D,IAAI,OAAO,WAAW,KAAK,WAAW,IAAK,WAAmB,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,GAAG,GAAI,WAAmB,CAAC,MAAM,CAAA;QACvC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,cAAc,IAAI,CAAC,CAAA;QACjC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAA,CAAC,aAAa;IACtC,CAAC;AACH,CAAC;AAOD,wDAAwD;AACxD,MAAM,OAAO,kBAAkB;IAEX,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,aAAa;IAJ/B,YACkB,aAAqB,EACrB,QAAgB,EAChB,YAAoB,EACpB,aAAsB;6BAHtB,aAAa;wBACb,QAAQ;4BACR,YAAY;6BACZ,aAAa;IAC5B,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,yBAAyB,IAAI,CAAC,aAAa,OAAO,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,aAAa,UAAU,CAAA;QAC3I,CAAC;QACD,OAAO,yBAAyB,IAAI,CAAC,aAAa,OAAO,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,YAAY,EAAE,CAAA;IACpG,CAAC;CACF;AAED,gCAAgC;AAChC,MAAM,OAAO,UAAU;IACO,KAAK;IAAjC,YAA4B,KAAU;qBAAV,KAAK;IAAQ,CAAC;IAE1C,KAAK;QACH,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,UAA0C;IAE1C,8EAA8E;IAC9E,+EAA+E;AACjF,CAAC;AAED,+DAA+D;AAC/D,MAAM,OAAO,OAAO;IACX,IAAI,KAAU,CAAC;IAEf,KAAK;QACV,OAAO,IAAI,OAAO,EAAE,CAAA;IACtB,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,UAAU,UAAU,CACxB,IAAO,EACP,QAA0C,EAC1C,IAAO;IAEP,4EAA4E;IAC5E,OAAO,IAAI,OAAO,EAAE,CAAA;AACtB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,GAAQ;IAChC,wEAAwE;IACxE,mFAAmF;IACnF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,oCAAoC;QACpC,KAAK,GAAG,CAAA;IACV,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/runtime/trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAGnD,MAAM,eAAe;CAAG;AAExB,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,CAAC;CACd,CAAA;AAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CACtC,6DAA6D,CAC9D,CAAA;AAED,MAAM,OAAO,IAAI;IACR,EAAE,CAAQ;IAEjB,YAAY,EAAE,GAAG,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAEM,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,OAAO,MAAM;IACV,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,UAAU,OAAO,CACrB,IAA4B,EAC5B,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAC9C,OAAO;QACL,OAAO,CAAC,SAAS,CACf,MAAM,EACN,CAAC,CAAC,cAAc,CAAC,IAAI,eAAe,EAAE,EAAE,uBAAuB,CAAC,EAChE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CACtC;QACD,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAA4B,EAAE,QAAgB,EAAE,OAAe;IACjF,KAAK,QAAQ,CAAA;IACb,KAAK,OAAO,CAAA;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,IAA4B,EAC5B,SAAiB,EACjB,OAAe,EACf,GAAG,KAAgB,IACZ,CAAC;AAEV,MAAM,UAAU,UAAU,CACxB,IAA4B,EAC5B,WAAmB,EACnB,EAAuB;IAEvB,EAAE,EAAE,EAAE,CAAA;AACR,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAA4B,EAC5B,WAAmB;IAEnB,OAAO,IAAI,MAAM,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAyC;IAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,IAAI,KAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/runtime/trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAGnD,MAAM,eAAe;CAAG;AAExB,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,CAAC;CACd,CAAA;AAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CACtC,6DAA6D,CAC9D,CAAA;AAED,MAAM,OAAO,IAAI;IACR,EAAE,CAAQ;IAEjB,YAAY,EAAE,GAAG,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAEM,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,OAAO,MAAM;IACV,GAAG,KAAU,CAAC;CACtB;AAED,MAAM,UAAU,OAAO,CACrB,IAA4B,EAC5B,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAC9C,OAAO;QACL,OAAO,CAAC,SAAS,CACf,MAAM,EACN,CAAC,CAAC,cAAc,CAAC,IAAI,eAAe,EAAE,EAAE,uBAAuB,CAAC,EAChE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CACtC;QACD,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CACjB,IAA4B,EAC5B,QAAgB,EAChB,OAAe;IAEf,KAAK,QAAQ,CAAA;IACb,KAAK,OAAO,CAAA;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,IAA4B,EAC5B,SAAiB,EACjB,OAAe,EACf,GAAG,KAAgB,IACZ,CAAC;AAEV,MAAM,UAAU,UAAU,CACxB,IAA4B,EAC5B,WAAmB,EACnB,EAAuB;IAEvB,EAAE,EAAE,EAAE,CAAA;AACR,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAA4B,EAC5B,WAAmB;IAEnB,OAAO,IAAI,MAAM,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAyC;IAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,IAAI,KAAU,CAAC"}
@@ -83,7 +83,7 @@ export declare function Grow<T>(s: $.Slice<T>, n: number): $.Slice<T>;
83
83
  * @param s The slice to sort in place
84
84
  * @param cmp Comparison function
85
85
  */
86
- export declare function SortFunc<T>(s: $.Slice<T>, cmp: CompareCallback<T>): void;
86
+ export declare function SortFunc<T>(s: $.Slice<T>, cmp: CompareCallback<T>): globalThis.Promise<void>;
87
87
  export declare function IsSortedFunc<T>(x: $.Slice<T>, cmp: CompareCallback<T>): boolean;
88
88
  export declare function SortStableFunc<T>(s: $.Slice<T>, cmp: CompareCallback<T>): void;
89
89
  /**
@@ -483,15 +483,48 @@ export function Grow(s, n) {
483
483
  * @param s The slice to sort in place
484
484
  * @param cmp Comparison function
485
485
  */
486
- export function SortFunc(s, cmp) {
486
+ export async function SortFunc(s, cmp) {
487
487
  if (cmp == null) {
488
488
  throw new Error('slices.SortFunc: nil comparison function');
489
489
  }
490
- if (s === null || s === undefined) {
490
+ if (s === null || s === undefined || $.len(s) < 2) {
491
491
  return;
492
492
  }
493
- const arr = s;
494
- arr.sort((a, b) => syncNumber(cmp(a, b)));
493
+ const sorted = await asyncMergeSort(Array.from(s), cmp);
494
+ for (let i = 0; i < sorted.length; i++) {
495
+ ;
496
+ s[i] = sorted[i];
497
+ }
498
+ }
499
+ async function asyncMergeSort(values, cmp) {
500
+ if (values.length < 2) {
501
+ return values;
502
+ }
503
+ const mid = Math.floor(values.length / 2);
504
+ const left = await asyncMergeSort(values.slice(0, mid), cmp);
505
+ const right = await asyncMergeSort(values.slice(mid), cmp);
506
+ return asyncMerge(left, right, cmp);
507
+ }
508
+ async function asyncMerge(left, right, cmp) {
509
+ const out = [];
510
+ let li = 0;
511
+ let ri = 0;
512
+ while (li < left.length && ri < right.length) {
513
+ const order = await cmp(left[li], right[ri]);
514
+ if (order <= 0) {
515
+ out.push(left[li++]);
516
+ }
517
+ else {
518
+ out.push(right[ri++]);
519
+ }
520
+ }
521
+ while (li < left.length) {
522
+ out.push(left[li++]);
523
+ }
524
+ while (ri < right.length) {
525
+ out.push(right[ri++]);
526
+ }
527
+ return out;
495
528
  }
496
529
  export function IsSortedFunc(x, cmp) {
497
530
  if (cmp == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"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"}
@@ -151,9 +151,7 @@ export function pointerValue<T>(value: T | VarRef<T> | null | undefined): T {
151
151
  return value.value as T
152
152
  }
153
153
  const boxed =
154
- typeof value === 'object' &&
155
- value !== null &&
156
- '__goValue' in value ?
154
+ typeof value === 'object' && value !== null && '__goValue' in value ?
157
155
  (value as { __goType?: unknown; __goValue: T | VarRef<T> })
158
156
  : null
159
157
  if (
@@ -177,9 +175,7 @@ export function pointerValueOrNil<T>(
177
175
  return value.value as T
178
176
  }
179
177
  const boxed =
180
- typeof value === 'object' &&
181
- value !== null &&
182
- '__goValue' in value ?
178
+ typeof value === 'object' && value !== null && '__goValue' in value ?
183
179
  (value as { __goType?: unknown; __goValue: T | VarRef<T> })
184
180
  : null
185
181
  if (
@@ -234,7 +230,11 @@ export function comparableEqual(a: unknown, b: unknown): boolean {
234
230
  return false
235
231
  }
236
232
  if (hasGoValue(a) || hasGoValue(b)) {
237
- return hasGoValue(a) && hasGoValue(b) && comparableEqual(a.__goValue, b.__goValue)
233
+ return (
234
+ hasGoValue(a) &&
235
+ hasGoValue(b) &&
236
+ comparableEqual(a.__goValue, b.__goValue)
237
+ )
238
238
  }
239
239
  }
240
240
  if (isStructValue(a) && isStructValue(b)) {
@@ -595,10 +595,7 @@ export function uint64Or(
595
595
  return uint64Result(uint64Value(left) | uint64Value(right))
596
596
  }
597
597
 
598
- export function int64Or(
599
- left: number | bigint,
600
- right: number | bigint,
601
- ): number {
598
+ export function int64Or(left: number | bigint, right: number | bigint): number {
602
599
  return int64Result(int64Value(left) | int64Value(right))
603
600
  }
604
601
 
@@ -634,9 +631,9 @@ function int64Value(value: number | bigint): bigint {
634
631
 
635
632
  function int64Result(value: bigint): number {
636
633
  const normalized =
637
- value >= -0x8000000000000000n && value <= 0x7fffffffffffffffn
638
- ? value
639
- : BigInt.asIntN(64, value)
634
+ value >= -0x8000000000000000n && value <= 0x7fffffffffffffffn ?
635
+ value
636
+ : BigInt.asIntN(64, value)
640
637
  return Number(normalized)
641
638
  }
642
639
 
@@ -61,8 +61,8 @@ export class AsyncDisposableStack implements AsyncDisposable {
61
61
  while (this.stack.length) {
62
62
  const fn = this.stack.pop()!
63
63
  const result = fn()
64
- if (result && typeof (result as Promise<void>).then === "function") {
65
- throw new Error("async deferred function disposed synchronously")
64
+ if (result && typeof (result as Promise<void>).then === 'function') {
65
+ throw new Error('async deferred function disposed synchronously')
66
66
  }
67
67
  }
68
68
  }
@@ -265,9 +265,9 @@ function fileURLFromScriptPath(path: string): string | null {
265
265
  }
266
266
  }
267
267
 
268
- function fallbackConsoleWriter(method: 'error' | 'log'): HostTextWrite {
268
+ function fallbackConsoleLogWriter(): HostTextWrite {
269
269
  return (data: string) => {
270
- const consoleMethod = (globalThis as any).console?.[method]
270
+ const consoleMethod = (globalThis as any).console?.log
271
271
  if (!consoleMethod) {
272
272
  return
273
273
  }
@@ -344,7 +344,7 @@ function detectHostRuntime(): HostRuntime {
344
344
  )
345
345
  }
346
346
  if (fd === 1 || fd === 2) {
347
- fallbackConsoleWriter('log')(decoder.decode(buffer))
347
+ fallbackConsoleLogWriter()(decoder.decode(buffer))
348
348
  return buffer.length
349
349
  }
350
350
  throw new HostUnsupportedError()
@@ -363,7 +363,7 @@ function detectHostRuntime(): HostRuntime {
363
363
  )
364
364
  return
365
365
  }
366
- fallbackConsoleWriter('log')(data)
366
+ fallbackConsoleLogWriter()(data)
367
367
  }
368
368
  const writeStderrText: HostTextWrite = (data: string) => {
369
369
  const handle = getStdioHandle(2)
@@ -379,7 +379,7 @@ function detectHostRuntime(): HostRuntime {
379
379
  )
380
380
  return
381
381
  }
382
- fallbackConsoleWriter('log')(data)
382
+ fallbackConsoleLogWriter()(data)
383
383
  }
384
384
 
385
385
  return {
package/gs/builtin/map.ts CHANGED
@@ -77,7 +77,10 @@ function findMapEntry<K, V>(
77
77
  }
78
78
  if (isGoStringKey(key)) {
79
79
  for (const [candidate, value] of map.entries()) {
80
- if (isGoStringKey(candidate) && stringEqual(candidate as string, key as string)) {
80
+ if (
81
+ isGoStringKey(candidate) &&
82
+ stringEqual(candidate as string, key as string)
83
+ ) {
81
84
  return { found: true, key: candidate, value }
82
85
  }
83
86
  }
@@ -832,6 +832,31 @@ describe('builtin runtime contract helpers', () => {
832
832
  ).toBe(false)
833
833
  })
834
834
 
835
+ it('asserts raw function values after interface storage', () => {
836
+ const accessType = {
837
+ kind: TypeKind.Function,
838
+ params: [
839
+ 'context.Context',
840
+ { kind: TypeKind.Function, params: [], results: [] },
841
+ ],
842
+ results: [
843
+ { kind: TypeKind.Pointer, elemType: 'unixfs.FSHandle' },
844
+ { kind: TypeKind.Function, params: [], results: [] },
845
+ 'error',
846
+ ],
847
+ } as const
848
+ const accessFunc = functionValue(() => [null, null, null], accessType)
849
+ const storedAsAny: any = accessFunc
850
+
851
+ const [asserted, ok] = typeAssertTuple<typeof accessFunc>(
852
+ storedAsAny,
853
+ accessType,
854
+ )
855
+
856
+ expect(ok).toBe(true)
857
+ expect(asserted).toBe(accessFunc)
858
+ })
859
+
835
860
  it('exposes channel helpers used by future lowering', async () => {
836
861
  const channel = makeChannel<number>(1, 0, 'both')
837
862
  expect(cap(channel)).toBe(1)
@@ -2,6 +2,7 @@ import { describe, expect, it } from 'vitest'
2
2
 
3
3
  import { makeMap, mapGet, mapSet } from './map.js'
4
4
  import {
5
+ appendSlice,
5
6
  bytesToString,
6
7
  copy,
7
8
  indexString,
@@ -13,6 +14,19 @@ import {
13
14
  } from './slice.js'
14
15
 
15
16
  describe('builtin string byte representation', () => {
17
+ it('appends large byte slices without JavaScript argument spreading', () => {
18
+ const dst = new Uint8Array(0)
19
+ const src = new Uint8Array(200_000)
20
+ src[0] = 7
21
+ src[src.length - 1] = 9
22
+
23
+ const out = appendSlice(dst, src)
24
+
25
+ expect(out.length).toBe(src.length)
26
+ expect(out[0]).toBe(7)
27
+ expect(out[out.length - 1]).toBe(9)
28
+ })
29
+
16
30
  it('round-trips non-UTF-8 byte strings without external provenance', () => {
17
31
  const original = new Uint8Array([0, 255, 128, 65, 66])
18
32
  const str = bytesToString(original)
@@ -1008,6 +1008,70 @@ export function append<T>(
1008
1008
  return sliceProxyFromBacking(newBacking, 0, newLength, newCapacity) as any
1009
1009
  }
1010
1010
 
1011
+ export function appendSlice(
1012
+ slice: Uint8Array,
1013
+ elements: Uint8Array | Slice<number> | string | null | undefined,
1014
+ ): Uint8Array
1015
+ export function appendSlice<T>(
1016
+ slice: null,
1017
+ elements: Slice<T> | null | undefined,
1018
+ ): Slice<T>
1019
+ export function appendSlice<T>(
1020
+ slice: Slice<T>,
1021
+ elements: Slice<T> | null | undefined,
1022
+ ): Slice<T>
1023
+ export function appendSlice<T>(
1024
+ slice: Slice<T> | Uint8Array | null,
1025
+ elements: Slice<T> | Uint8Array | string | null | undefined,
1026
+ ): Slice<T> | Uint8Array {
1027
+ if (elements == null) {
1028
+ return slice as any
1029
+ }
1030
+ if (slice instanceof Uint8Array) {
1031
+ const source =
1032
+ typeof elements === 'string' ? stringToBytes(elements) : elements
1033
+ return appendByteSlice(slice, [source]) as any
1034
+ }
1035
+ const count = len(elements as Slice<T>)
1036
+ if (count === 0) {
1037
+ return slice as any
1038
+ }
1039
+
1040
+ let result = append(slice as Slice<T> | null)
1041
+ if (isComplexSlice(result)) {
1042
+ const meta = result.__meta__
1043
+ const oldLength = meta.length
1044
+ const newLength = oldLength + count
1045
+ if (newLength <= meta.capacity) {
1046
+ for (let i = 0; i < count; i++) {
1047
+ meta.backing[meta.offset + oldLength + i] = (elements as any)[i]
1048
+ }
1049
+ if (meta.target !== undefined) {
1050
+ for (let i = 0; i < count; i++) {
1051
+ meta.target[oldLength + i] = (elements as any)[i]
1052
+ }
1053
+ }
1054
+ return sliceProxyFromBacking(
1055
+ meta.backing,
1056
+ meta.offset,
1057
+ newLength,
1058
+ meta.capacity,
1059
+ meta.target,
1060
+ )
1061
+ }
1062
+ }
1063
+
1064
+ const baseLen = len(result as Slice<T>)
1065
+ const next = new Array<T>(baseLen + count)
1066
+ for (let i = 0; i < baseLen; i++) {
1067
+ next[i] = (result as any)[i]
1068
+ }
1069
+ for (let i = 0; i < count; i++) {
1070
+ next[baseLen + i] = (elements as any)[i]
1071
+ }
1072
+ return sliceProxyFromBacking(next, 0, next.length, next.length)
1073
+ }
1074
+
1011
1075
  function appendByteSlice(slice: Uint8Array, elements: any[]): Uint8Array {
1012
1076
  const meta = byteSliceMeta(slice)
1013
1077
  const metaBacking = meta?.backing as unknown
@@ -753,6 +753,16 @@ function matchesInterfaceType(value: any, info: TypeInfo): boolean {
753
753
  // Strict arity checking can be problematic in JS, so we'll be lenient
754
754
  // A method with fewer params than required is definitely incompatible
755
755
  if (declaredParamCount < requiredParamCount) {
756
+ if (!methodWrapperMatchesSignature(actualMethod, requiredMethodSig)) {
757
+ return false
758
+ }
759
+ }
760
+
761
+ const wrappedMethodSignature = methodWrapperSignature(actualMethod)
762
+ if (
763
+ wrappedMethodSignature &&
764
+ !methodSignaturesMatch(wrappedMethodSignature, requiredMethodSig)
765
+ ) {
756
766
  return false
757
767
  }
758
768
 
@@ -816,6 +826,40 @@ function matchesInterfaceType(value: any, info: TypeInfo): boolean {
816
826
  })
817
827
  }
818
828
 
829
+ function methodWrapperMatchesSignature(
830
+ method: unknown,
831
+ requiredMethodSig: MethodSignature,
832
+ ): boolean {
833
+ const signature = methodWrapperSignature(method)
834
+ return (
835
+ signature != null && methodSignaturesMatch(signature, requiredMethodSig)
836
+ )
837
+ }
838
+
839
+ function methodWrapperSignature(method: unknown): MethodSignature | null {
840
+ if (typeof method !== 'function') {
841
+ return null
842
+ }
843
+ const wrapper = method as {
844
+ __goscriptMethodWrapper?: boolean
845
+ __goscriptMethodSignature?: MethodSignature
846
+ }
847
+ if (wrapper.__goscriptMethodWrapper !== true) {
848
+ return null
849
+ }
850
+ return wrapper.__goscriptMethodSignature ?? null
851
+ }
852
+
853
+ function methodSignaturesMatch(
854
+ actual: MethodSignature,
855
+ required: MethodSignature,
856
+ ): boolean {
857
+ return (
858
+ actual.args.length === required.args.length &&
859
+ actual.returns.length === required.returns.length
860
+ )
861
+ }
862
+
819
863
  /**
820
864
  * Checks if a value matches a map type info.
821
865
  *
@@ -1611,10 +1655,38 @@ export function namedValueInterfaceValue<T>(
1611
1655
  }
1612
1656
  for (const [name, method] of Object.entries(methods)) {
1613
1657
  boxed[name] = (...args: any[]) => method(value, ...args)
1658
+ boxed[name].__goscriptMethodWrapper = true
1659
+ const signature = wrapperMethodSignatureFromTypeInfo(name, typeInfo)
1660
+ if (signature) {
1661
+ boxed[name].__goscriptMethodSignature = signature
1662
+ }
1614
1663
  }
1615
1664
  return boxed as T
1616
1665
  }
1617
1666
 
1667
+ function wrapperMethodSignatureFromTypeInfo(
1668
+ name: string,
1669
+ typeInfo?: TypeInfo | string,
1670
+ ): MethodSignature | null {
1671
+ if (typeof typeInfo === 'string') {
1672
+ typeInfo = typeRegistry.get(typeInfo)
1673
+ }
1674
+ if (!typeInfo) {
1675
+ return null
1676
+ }
1677
+ if (isFunctionTypeInfo(typeInfo)) {
1678
+ return {
1679
+ name,
1680
+ args: (typeInfo.params ?? []).map((type) => ({ type })),
1681
+ returns: (typeInfo.results ?? []).map((type) => ({ type })),
1682
+ }
1683
+ }
1684
+ if (isStructTypeInfo(typeInfo) || isInterfaceTypeInfo(typeInfo)) {
1685
+ return typeInfo.methods.find((method) => method.name === name) ?? null
1686
+ }
1687
+ return null
1688
+ }
1689
+
1618
1690
  export function namedFunction<T>(
1619
1691
  fn: T,
1620
1692
  typeName: string,
@@ -1,17 +1,18 @@
1
- import * as $ from "@goscript/builtin/index.js"
2
- import { IndexFunc } from "./index.js"
3
- import { describe, expect, test } from "vitest"
1
+ import * as $ from '@goscript/builtin/index.js'
2
+ import { IndexFunc } from './index.js'
3
+ import { describe, expect, test } from 'vitest'
4
4
 
5
- describe("bytes", () => {
6
- test("IndexFunc accepts generated async-shaped callbacks", () => {
7
- const predicate: (r: number) => boolean | Promise<boolean> = (r) => r === 0x62
5
+ describe('bytes', () => {
6
+ test('IndexFunc accepts generated async-shaped callbacks', () => {
7
+ const predicate: (r: number) => boolean | Promise<boolean> = (r) =>
8
+ r === 0x62
8
9
 
9
- expect(IndexFunc($.stringToBytes("abc"), predicate)).toBe(1)
10
- })
10
+ expect(IndexFunc($.stringToBytes('abc'), predicate)).toBe(1)
11
+ })
11
12
 
12
- test("IndexFunc rejects actual async callback results", () => {
13
- expect(() => IndexFunc($.stringToBytes("abc"), async (r) => r === 0x62)).toThrow(
14
- "bytes: asynchronous callback result is not supported",
15
- )
16
- })
13
+ test('IndexFunc rejects actual async callback results', () => {
14
+ expect(() =>
15
+ IndexFunc($.stringToBytes('abc'), async (r) => r === 0x62),
16
+ ).toThrow('bytes: asynchronous callback result is not supported')
17
+ })
17
18
  })