goscript 0.0.37 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiler/analysis.go +129 -8
- package/compiler/compiler.go +4 -1
- package/compiler/composite-lit.go +2 -4
- package/compiler/expr-call.go +12 -0
- package/compiler/lit.go +100 -6
- package/compiler/protobuf.go +2 -2
- package/compiler/spec-value.go +3 -3
- package/compiler/spec.go +6 -3
- package/compiler/stmt-assign.go +1 -1
- package/dist/gs/builtin/builtin.d.ts +45 -0
- package/dist/gs/builtin/builtin.js +197 -0
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/slice.js +2 -1
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.d.ts +56 -0
- package/dist/gs/bytes/buffer.gs.js +611 -0
- package/dist/gs/bytes/buffer.gs.js.map +1 -0
- package/dist/gs/bytes/bytes.gs.d.ts +78 -0
- package/dist/gs/bytes/bytes.gs.js +1011 -0
- package/dist/gs/bytes/bytes.gs.js.map +1 -0
- package/dist/gs/bytes/index.d.ts +4 -0
- package/dist/gs/bytes/index.js +5 -0
- package/dist/gs/bytes/index.js.map +1 -0
- package/dist/gs/bytes/iter.gs.d.ts +9 -0
- package/dist/gs/bytes/iter.gs.js +143 -0
- package/dist/gs/bytes/iter.gs.js.map +1 -0
- package/dist/gs/bytes/reader.gs.d.ts +34 -0
- package/dist/gs/bytes/reader.gs.js +198 -0
- package/dist/gs/bytes/reader.gs.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/errors.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/errors.js +182 -23
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/go113.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/go113.js +1 -1
- package/dist/gs/github.com/pkg/errors/go113.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/index.d.ts +3 -3
- package/dist/gs/github.com/pkg/errors/index.js +3 -3
- package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/stack.d.ts +1 -1
- package/dist/gs/github.com/pkg/errors/stack.js +8 -5
- package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
- package/dist/gs/internal/abi/index.d.ts +20 -0
- package/dist/gs/internal/abi/index.js +20 -0
- package/dist/gs/internal/abi/index.js.map +1 -0
- package/dist/gs/internal/bytealg/index.d.ts +14 -0
- package/dist/gs/internal/bytealg/index.js +139 -0
- package/dist/gs/internal/bytealg/index.js.map +1 -0
- package/dist/gs/internal/byteorder/index.d.ts +1 -1
- package/dist/gs/internal/byteorder/index.js +4 -4
- package/dist/gs/internal/byteorder/index.js.map +1 -1
- package/dist/gs/math/index.d.ts +44 -44
- package/dist/gs/math/index.js +44 -44
- package/dist/gs/math/index.js.map +1 -1
- package/dist/gs/os/index.d.ts +19 -19
- package/dist/gs/os/index.js +19 -19
- package/dist/gs/os/index.js.map +1 -1
- package/dist/gs/reflect/deepequal.d.ts +2 -0
- package/dist/gs/reflect/deepequal.js +91 -0
- package/dist/gs/reflect/deepequal.js.map +1 -0
- package/dist/gs/reflect/index.d.ts +8 -0
- package/dist/gs/reflect/index.js +10 -0
- package/dist/gs/reflect/index.js.map +1 -0
- package/dist/gs/reflect/iter.d.ts +4 -0
- package/dist/gs/reflect/iter.js +24 -0
- package/dist/gs/reflect/iter.js.map +1 -0
- package/dist/gs/reflect/map.d.ts +20 -0
- package/dist/gs/reflect/map.js +74 -0
- package/dist/gs/reflect/map.js.map +1 -0
- package/dist/gs/reflect/swapper.d.ts +2 -0
- package/dist/gs/reflect/swapper.js +46 -0
- package/dist/gs/reflect/swapper.js.map +1 -0
- package/dist/gs/reflect/type.d.ts +134 -0
- package/dist/gs/reflect/type.js +825 -0
- package/dist/gs/reflect/type.js.map +1 -0
- package/dist/gs/reflect/types.d.ts +90 -0
- package/dist/gs/reflect/types.js +119 -0
- package/dist/gs/reflect/types.js.map +1 -0
- package/dist/gs/reflect/value.d.ts +13 -0
- package/dist/gs/reflect/value.js +202 -0
- package/dist/gs/reflect/value.js.map +1 -0
- package/dist/gs/reflect/visiblefields.d.ts +4 -0
- package/dist/gs/reflect/visiblefields.js +149 -0
- package/dist/gs/reflect/visiblefields.js.map +1 -0
- package/dist/gs/strconv/index.d.ts +6 -6
- package/dist/gs/strconv/index.js +6 -6
- package/dist/gs/strconv/index.js.map +1 -1
- package/dist/gs/strings/index.d.ts +1 -1
- package/dist/gs/strings/index.js +1 -1
- package/dist/gs/strings/index.js.map +1 -1
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/sync/atomic/index.d.ts +4 -4
- package/dist/gs/sync/atomic/index.js +4 -4
- package/dist/gs/sync/atomic/index.js.map +1 -1
- package/dist/gs/syscall/index.d.ts +6 -6
- package/dist/gs/syscall/index.js +34 -28
- package/dist/gs/syscall/index.js.map +1 -1
- package/dist/gs/unicode/utf8/utf8.d.ts +1 -1
- package/dist/gs/unicode/utf8/utf8.js +4 -2
- package/dist/gs/unicode/utf8/utf8.js.map +1 -1
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/gs/builtin/builtin.ts +219 -0
- package/gs/builtin/slice.ts +2 -1
- package/gs/bytes/buffer.gs.ts +614 -0
- package/gs/bytes/bytes.gs.ts +1180 -0
- package/gs/bytes/godoc.txt +69 -0
- package/gs/bytes/index.ts +69 -0
- package/gs/bytes/iter.gs.ts +149 -0
- package/gs/bytes/reader.gs.ts +230 -0
- package/gs/github.com/pkg/errors/errors.ts +408 -238
- package/gs/github.com/pkg/errors/go113.ts +5 -6
- package/gs/github.com/pkg/errors/index.ts +12 -3
- package/gs/github.com/pkg/errors/stack.ts +107 -105
- package/gs/internal/abi/index.ts +37 -0
- package/gs/internal/bytealg/index.ts +149 -0
- package/gs/internal/byteorder/index.ts +5 -5
- package/gs/math/abs.gs.test.ts +1 -1
- package/gs/math/acosh.gs.test.ts +4 -2
- package/gs/math/asin.gs.test.ts +1 -1
- package/gs/math/asinh.gs.test.ts +7 -3
- package/gs/math/atan.gs.test.ts +1 -1
- package/gs/math/atan2.gs.test.ts +17 -9
- package/gs/math/atanh.gs.test.ts +1 -1
- package/gs/math/bits.gs.test.ts +1 -1
- package/gs/math/cbrt.gs.test.ts +1 -1
- package/gs/math/const.gs.test.ts +34 -8
- package/gs/math/copysign.gs.test.ts +7 -3
- package/gs/math/dim.gs.test.ts +19 -7
- package/gs/math/erf.gs.test.ts +1 -1
- package/gs/math/erfinv.gs.test.ts +4 -2
- package/gs/math/exp.gs.test.ts +1 -1
- package/gs/math/expm1.gs.test.ts +6 -4
- package/gs/math/floor.gs.test.ts +17 -4
- package/gs/math/fma.gs.test.ts +53 -53
- package/gs/math/frexp.gs.test.ts +112 -117
- package/gs/math/gamma.gs.test.ts +1 -1
- package/gs/math/hypot.gs.test.ts +53 -53
- package/gs/math/index.ts +80 -44
- package/gs/math/j0.gs.test.ts +6 -2
- package/gs/math/j1.gs.test.ts +6 -2
- package/gs/math/jn.gs.test.ts +9 -5
- package/gs/math/ldexp.gs.test.ts +103 -86
- package/gs/math/lgamma.gs.test.ts +10 -10
- package/gs/math/log.gs.test.ts +1 -1
- package/gs/math/log10.gs.test.ts +1 -1
- package/gs/math/log1p.gs.test.ts +2 -2
- package/gs/math/logb.gs.test.ts +1 -1
- package/gs/math/mod.gs.test.ts +2 -2
- package/gs/math/modf.gs.test.ts +7 -7
- package/gs/math/nextafter.gs.test.ts +9 -7
- package/gs/math/pow.gs.test.ts +6 -4
- package/gs/math/pow10.gs.test.ts +1 -1
- package/gs/math/remainder.gs.test.ts +1 -1
- package/gs/math/signbit.gs.test.ts +1 -1
- package/gs/math/sin.gs.test.ts +1 -1
- package/gs/math/sincos.gs.test.ts +33 -14
- package/gs/math/sinh.gs.test.ts +1 -1
- package/gs/math/sqrt.gs.test.ts +1 -1
- package/gs/math/tan.gs.test.ts +3 -3
- package/gs/math/tanh.gs.test.ts +1 -1
- package/gs/os/index.ts +128 -19
- package/gs/reflect/ANALYSIS.md +278 -0
- package/gs/reflect/deepequal.test.ts +41 -0
- package/gs/reflect/deepequal.ts +169 -0
- package/gs/reflect/function-types.test.ts +146 -0
- package/gs/reflect/godoc.txt +67 -0
- package/gs/reflect/index.ts +83 -0
- package/gs/reflect/iter.ts +44 -0
- package/gs/reflect/map.test.ts +30 -0
- package/gs/reflect/map.ts +85 -0
- package/gs/reflect/swapper.ts +52 -0
- package/gs/reflect/type.ts +1016 -0
- package/gs/reflect/types.ts +214 -0
- package/gs/reflect/value.ts +270 -0
- package/gs/reflect/visiblefields.ts +177 -0
- package/gs/strconv/index.ts +39 -6
- package/gs/strings/index.ts +7 -1
- package/gs/strings/replace.ts +1 -9
- package/gs/sync/atomic/index.ts +53 -4
- package/gs/syscall/index.ts +45 -37
- package/gs/unicode/utf8/utf8.ts +8 -5
- package/gs/unsafe/unsafe.ts +1 -1
- package/package.json +2 -1
- package/dist/gs/internal/testlog/index.d.ts +0 -1
- package/dist/gs/internal/testlog/index.js +0 -5
- package/dist/gs/internal/testlog/index.js.map +0 -1
- package/dist/gs/maps/iter.gs.d.ts +0 -7
- package/dist/gs/maps/iter.gs.js +0 -65
- package/dist/gs/maps/iter.gs.js.map +0 -1
- package/dist/gs/maps/maps.gs.d.ts +0 -7
- package/dist/gs/maps/maps.gs.js +0 -79
- package/dist/gs/maps/maps.gs.js.map +0 -1
- package/dist/gs/stringslite/index.d.ts +0 -1
- package/dist/gs/stringslite/index.js +0 -2
- package/dist/gs/stringslite/index.js.map +0 -1
- package/dist/gs/stringslite/strings.d.ts +0 -11
- package/dist/gs/stringslite/strings.js +0 -67
- package/dist/gs/stringslite/strings.js.map +0 -1
- package/gs/internal/testlog/index.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../gs/reflect/type.ts"],"names":[],"mappings":"AAGA,oDAAoD;AACpD,MAAM,OAAO,KAAK;IACG;IAAnB,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEjC,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;IAED,QAAQ;QACN,qCAAqC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QAC7B,OAAO,CACL,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE;YACnB,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE;YACnB,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE;YACrB,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAC1B,CAAA;IACH,CAAC;CACF;AAED,sCAAsC;AACtC,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IAHT,YACE,IAAU,EACH,UAAkB,CAAC,EACnB,WAAmB,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,CAAA;QAHJ,YAAO,GAAP,OAAO,CAAY;QACnB,aAAQ,GAAR,QAAQ,CAAY;IAG7B,CAAC;CACF;AAED,6BAA6B;AAC7B,MAAM,OAAO,IAAI;IACK;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAChC,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9E,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,IAAI,CAAC,KAAoB;QAC9B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;CACF;AAED,wCAAwC;AACxC,MAAM,OAAO,SAAS;IACZ,IAAI,GAAa,EAAE,CAAA;IAE3B,GAAG,CAAC,KAAa;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAA;IACvC,CAAC;IAED,GAAG,CAAC,KAAa;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAA;QAC3B,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,OAAO,IAAI;IACK;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAa;QACvB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAEM,MAAM;QACX,MAAM,SAAS,GAAG;YAChB,SAAS;YACT,MAAM;YACN,KAAK;YACL,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,SAAS;YACT,SAAS;YACT,WAAW;YACX,YAAY;YACZ,OAAO;YACP,MAAM;YACN,MAAM;YACN,WAAW;YACX,KAAK;YACL,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,gBAAgB;SACjB,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,iBAAiB;AACjB,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AA6BzC,0FAA0F;AAC1F,MAAM,OAAO,KAAK;IAEN;IACA;IAFV,YACU,MAAoB,EACpB,KAAW;QADX,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAM;IAClB,CAAC;IAEG,KAAK;QACV,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,iEAAiE;IAC1D,GAAG;QACR,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wCAAwC;YACtC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,IAAI;QACT,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yCAAyC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,KAAK;QACV,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,IAAI;QACT,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yCAAyC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,MAAM;QACX,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,OAAO,cAAc,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IAC5B,CAAC;IAEM,GAAG;QACR,oDAAoD;QACpD,IACE,IAAI,CAAC,MAAM;YACX,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAC/B,UAAU,IAAI,IAAI,CAAC,MAAM,EACzB,CAAC;YACD,MAAM,IAAI,GAAI,IAAI,CAAC,MAA6C,CAAC,QAAQ,CAAA;YACzE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,MAAM,CAAA;YACpB,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IACE,IAAI,CAAC,MAAM,YAAY,UAAU;YACjC,IAAI,CAAC,MAAM,YAAY,SAAS;YAChC,IAAI,CAAC,MAAM,YAAY,WAAW;YAClC,IAAI,CAAC,MAAM,YAAY,UAAU;YACjC,IAAI,CAAC,MAAM,YAAY,WAAW;YAClC,IAAI,CAAC,MAAM,YAAY,UAAU;YACjC,IAAI,CAAC,MAAM,YAAY,YAAY;YACnC,IAAI,CAAC,MAAM,YAAY,YAAY,EACnC,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC3B,CAAC;QAED,2BAA2B;QAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC3B,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,wCAAwC;YACtC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA;IAC1D,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA;IAC1D,CAAC;IAEM,KAAK,CAAC,CAAS;QACpB,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,KAAK;QACV,IAAI,IAAI,CAAC,MAAM,YAAY,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;YAC1B,QAAQ,CACX,CAAA;IACH,CAAC;IAEM,IAAI;QACT,kDAAkD;QAClD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,EAAU;QACrB,oDAAoD;QACpD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,6DAA6D;IACtD,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,iDAAiD;IACjD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,mCAAmC;IAC5B,OAAO,CAAC,CAAO;QACpB,6EAA6E;QAC7E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,gDAAgD;IACzC,GAAG;QACR,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,IAAW,IAAI;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,QAAQ;QACb,gCAAgC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,IAAW;QACzB,6BAA6B;QAC7B,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAC3D,CAAC;IAEM,OAAO;QACZ,yCAAyC;QACzC,OAAO,IAAI,CAAC,MAAwD,CAAA;IACtE,CAAC;IAED,kCAAkC;IAC3B,IAAI,CAAC,CAAQ;QAClB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAI,CAAwC,CAAC,KAAK,CAAA;QAEnE,yDAAyD;QACzD,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAc,CAAA;QACjC,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,qDAAqD;YACrD,kDAAkD;YAClD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC3B,UAAU,CAAC,UAAU,GAAG,EAAE,CAAA;YAC5B,CAAC;YACD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,OAAO,SAAS;IAEV;IACA;IACA;IAHV,YACU,KAAW,EACX,KAAa,EACb,QAAgB,CAAC;QAFjB,UAAK,GAAL,KAAK,CAAM;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAY;IACxB,CAAC;IAEG,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,SAAS;IACO;IAApB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;IAAG,CAAC;IAEhC,MAAM;QACX,OAAO,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACvC,CAAC;IAEM,IAAI;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,IAAI;QACT,OAAO,EAAE,CAAA,CAAC,oBAAoB;IAChC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,SAAS;IAEH;IACA;IAFV,YACU,SAAe,EACf,IAAY;QADZ,cAAS,GAAT,SAAS,CAAM;QACf,SAAI,GAAJ,IAAI,CAAQ;IACnB,CAAC;IAEG,MAAM;QACX,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAA;IACnD,CAAC;IAEM,IAAI;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;IAC1C,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,8BAA8B;AAC9B,MAAM,WAAW;IACK;IAApB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;IAAG,CAAC;IAEhC,MAAM;QACX,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAEM,IAAI;QACT,OAAO,GAAG,CAAA;IACZ,CAAC;IAEM,IAAI;QACT,OAAO,CAAC,CAAA,CAAC,eAAe;IAC1B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,+BAA+B;AAC/B,MAAM,YAAY;IACI;IAApB,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEnC,MAAM;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,IAAI;QACT,OAAO,CAAC,CAAA,CAAC,wBAAwB;IACnC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,0BAA0B;AAC1B,MAAM,OAAO;IAED;IACA;IAFV,YACU,QAAc,EACd,SAAe;QADf,aAAQ,GAAR,QAAQ,CAAM;QACd,cAAS,GAAT,SAAS,CAAM;IACtB,CAAC;IAEG,MAAM;QACX,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAA;IACnE,CAAC;IAEM,IAAI;QACT,OAAO,GAAG,CAAA;IACZ,CAAC;IAEM,IAAI;QACT,OAAO,CAAC,CAAA,CAAC,kBAAkB;IAC7B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,6BAA6B;AAC7B,MAAM,UAAU;IAEJ;IACA;IAFV,YACU,KAAa,EACb,UAA+C,EAAE;QADjD,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAA0C;IACxD,CAAC;IAEG,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEM,IAAI;QACT,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,IAAI;QACT,wEAAwE;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,EAAU;QACtB,sBAAsB;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,WAAW;IAEL;IACA;IAFV,YACU,SAAe,EACf,IAAa;QADb,cAAS,GAAT,SAAS,CAAM;QACf,SAAI,GAAJ,IAAI,CAAS;IACpB,CAAC;IAEG,MAAM;QACX,wCAAwC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;QACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE,UAAU;gBAChB,OAAO,UAAU,IAAI,EAAE,CAAA;YACzB,KAAK,CAAC,EAAE,UAAU;gBAChB,OAAO,UAAU,IAAI,EAAE,CAAA;YACzB,KAAK,CAAC,CAAC,CAAC,UAAU;YAClB;gBACE,OAAO,QAAQ,IAAI,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,IAAI;QACT,wDAAwD;QACxD,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAEM,KAAK,CAAE,CAAS;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAED,SAAS,SAAS,CAAC,KAAmB;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QACvC,KAAK,QAAQ;YACX,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,CAAC;YACD,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7C,KAAK,QAAQ;YACX,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACzC,KAAK,QAAQ;YACX,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC5C,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,gEAAgE;YAChE,MAAM,YAAY,GAAG,KAAY,CAAA;YAEjC,mEAAmE;YACnE,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAA;gBACxC,IACE,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;oBAC9D,QAAQ,CAAC,MAAM;oBACf,QAAQ,CAAC,OAAO,EAChB,CAAC;oBACD,iDAAiD;oBACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;yBAC/B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;yBAC9D,IAAI,CAAC,IAAI,CAAC,CAAA;oBACb,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAClD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAC5C,CAAA;oBAED,IAAI,SAAS,GAAG,QAAQ,UAAU,GAAG,CAAA;oBACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,SAAS,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnC,CAAC;yBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,SAAS,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;oBAC7C,CAAC;oBAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9B,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAA;gBAE1C,2DAA2D;gBAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAA;gBAChD,CAAC;qBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAChC,OAAO,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAA;gBAC/C,CAAC;gBAED,uCAAuC;gBACvC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA,CAAC,2CAA2C;YAC7E,CAAC;YAED,oDAAoD;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAChC,IAAI,SAAS,GAAG,MAAM,CAAA;YAEtB,wDAAwD;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBACtD,2FAA2F;gBAC3F,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,SAAS,GAAG,QAAQ,CAAA;gBACtB,CAAC;qBAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;oBAC3C,SAAS,GAAG,QAAQ,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;gBAC5E,CAAC;qBAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC3B,SAAS,GAAG,WAAW,CAAA;gBACzB,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,SAAS,IAAI,MAAM,CAAA;YACrB,CAAC;YAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;YACpD,CAAC;YAED,mBAAmB;YACnB,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,oCAAoC;oBACpC,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;gBACnE,CAAC;gBACD,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;YAED,yBAAyB;YACzB,IAAI,KAAK,YAAY,UAAU;gBAC7B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YACxD,IAAI,KAAK,YAAY,SAAS;gBAC5B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;YACtD,IAAI,KAAK,YAAY,WAAW;gBAC9B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;YAC1D,IAAI,KAAK,YAAY,UAAU;gBAC7B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YACxD,IAAI,KAAK,YAAY,WAAW;gBAC9B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;YAC1D,IAAI,KAAK,YAAY,UAAU;gBAC7B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YACxD,IAAI,KAAK,YAAY,YAAY;gBAC/B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5D,IAAI,KAAK,YAAY,YAAY;gBAC/B,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAE5D,iBAAiB;YACjB,IAAI,KAAK,YAAY,UAAU,CAAC,GAAG,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACrB,gDAAgD;oBAChD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;oBAC3D,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACtC,CAAC;gBACD,6BAA6B;gBAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;gBAC/C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAiB,CAAC,CAAA;oBACxD,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAiB,CAAC,CAAA;oBAC1D,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;gBAC9D,MAAM,IAAI,GACR,KAQD,CAAC,QAAQ,CAAA;gBACV,IACE,IAAI;oBACJ,OAAO,IAAI,KAAK,QAAQ;oBACxB,SAAS,IAAI,IAAI;oBACjB,QAAQ,IAAI,IAAI;oBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EACtC,CAAC;oBACD,uEAAuE;oBACvE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,oCAAoC;wBACpC,OAAO,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;oBACnE,CAAC;oBACD,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAiB,CAAC,CAAA;oBAC3D,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,WAAW;gBACjB,YAAY,IAAI,KAAK,CAAC,WAAW,EACjC,CAAC;gBACD,MAAM,QAAQ,GACZ,KAAK,CAAC,WACP,CAAC,UAAU,CAAA;gBACZ,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC9B,6DAA6D;oBAC7D,MAAM,QAAQ,GACZ,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC3B,QAAQ,CAAC,IAAI;wBACf,CAAC,CAAC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAA;oBAC3B,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;YAED,2DAA2D;YAC3D,MAAM,eAAe,GAAI,KAAgB,CAAC,WAAW,EAAE,IAAI,CAAA;YAC3D,IAAI,eAAe,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;gBACpD,OAAO,IAAI,UAAU,CAAC,eAAe,CAAC,CAAA;YACxC,CAAC;YAED,2CAA2C;YAC3C,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;QACD;YACE,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,MAAM,CAAC,CAAe;IACpC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAe;IACrC,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,IAAU;IAChD,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAO;IAC7B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAO;IAC/B,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAO;IAC3B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,kCAAkC;AACxD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAS,EAAE,IAAU;IACzC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAY,EAAE,CAAO;IAC1C,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,YAAY,CAAC,CAAO;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,CAAA,CAAC,uBAAuB;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAO;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,IAAI,KAAK,EAAE,CAAA,CAAC,MAAM;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,EAAQ,EACR,KAAkB;IAElB,OAAO;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;KACZ,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export type uintptr = number;
|
|
2
|
+
export interface UnsafePointer {
|
|
3
|
+
readonly __unsafePointerBrand: unique symbol;
|
|
4
|
+
value: unknown;
|
|
5
|
+
}
|
|
6
|
+
export type Pointer = UnsafePointer | null;
|
|
7
|
+
export type ReflectValue = null | undefined | boolean | number | bigint | string | symbol | Function | object | unknown[] | Map<unknown, unknown> | Set<unknown> | Uint8Array | Int8Array | Uint16Array | Int16Array | Uint32Array | Int32Array | Float32Array | Float64Array;
|
|
8
|
+
export declare class ChanDir {
|
|
9
|
+
private _value;
|
|
10
|
+
constructor(_value: number);
|
|
11
|
+
valueOf(): number;
|
|
12
|
+
toString(): string;
|
|
13
|
+
}
|
|
14
|
+
export declare const RecvDir: ChanDir;
|
|
15
|
+
export declare const SendDir: ChanDir;
|
|
16
|
+
export declare const BothDir: ChanDir;
|
|
17
|
+
import { Type, Kind, Value } from './type.js';
|
|
18
|
+
export declare class StructField {
|
|
19
|
+
Name: string;
|
|
20
|
+
Type: Type;
|
|
21
|
+
Tag?: StructTag;
|
|
22
|
+
Offset?: uintptr;
|
|
23
|
+
Index?: number[];
|
|
24
|
+
Anonymous?: boolean;
|
|
25
|
+
constructor(init?: Partial<StructField>);
|
|
26
|
+
clone(): StructField;
|
|
27
|
+
}
|
|
28
|
+
export declare class StructTag {
|
|
29
|
+
private _value;
|
|
30
|
+
constructor(_value: string);
|
|
31
|
+
toString(): string;
|
|
32
|
+
Get(key: string): string;
|
|
33
|
+
}
|
|
34
|
+
export interface Method {
|
|
35
|
+
Name: string;
|
|
36
|
+
Type: Type;
|
|
37
|
+
Func: Function;
|
|
38
|
+
Index: number;
|
|
39
|
+
}
|
|
40
|
+
export interface Channel<T = unknown> {
|
|
41
|
+
readonly __channelBrand: unique symbol;
|
|
42
|
+
direction: ChanDir;
|
|
43
|
+
elementType: Type;
|
|
44
|
+
buffer: T[];
|
|
45
|
+
closed: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface SelectCase {
|
|
48
|
+
Dir: SelectDir;
|
|
49
|
+
Chan?: Value;
|
|
50
|
+
Send?: Value;
|
|
51
|
+
}
|
|
52
|
+
export declare class SelectDir {
|
|
53
|
+
private _value;
|
|
54
|
+
constructor(_value: number);
|
|
55
|
+
valueOf(): number;
|
|
56
|
+
}
|
|
57
|
+
export declare const SelectSend: SelectDir;
|
|
58
|
+
export declare const SelectRecv: SelectDir;
|
|
59
|
+
export declare const SelectDefault: SelectDir;
|
|
60
|
+
export interface SliceHeader {
|
|
61
|
+
Data: uintptr;
|
|
62
|
+
Len: number;
|
|
63
|
+
Cap: number;
|
|
64
|
+
}
|
|
65
|
+
export interface StringHeader {
|
|
66
|
+
Data: uintptr;
|
|
67
|
+
Len: number;
|
|
68
|
+
}
|
|
69
|
+
export interface MapIter<K = unknown, V = unknown> {
|
|
70
|
+
map: Map<K, V>;
|
|
71
|
+
iterator: Iterator<[K, V]>;
|
|
72
|
+
current: IteratorResult<[K, V]> | null;
|
|
73
|
+
Key(): K | null;
|
|
74
|
+
Value(): V | null;
|
|
75
|
+
Next(): boolean;
|
|
76
|
+
Reset(m: Map<K, V>): void;
|
|
77
|
+
}
|
|
78
|
+
export declare class bitVector {
|
|
79
|
+
private bits;
|
|
80
|
+
Set(index: number): void;
|
|
81
|
+
Get(index: number): boolean;
|
|
82
|
+
}
|
|
83
|
+
export declare class ValueError extends Error {
|
|
84
|
+
Kind: Kind;
|
|
85
|
+
Method: string;
|
|
86
|
+
constructor(init: {
|
|
87
|
+
Kind: Kind;
|
|
88
|
+
Method: string;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// Common types used throughout the reflect module
|
|
2
|
+
// Channel direction constants and type
|
|
3
|
+
export class ChanDir {
|
|
4
|
+
_value;
|
|
5
|
+
constructor(_value) {
|
|
6
|
+
this._value = _value;
|
|
7
|
+
}
|
|
8
|
+
valueOf() {
|
|
9
|
+
return this._value;
|
|
10
|
+
}
|
|
11
|
+
toString() {
|
|
12
|
+
switch (this._value) {
|
|
13
|
+
case 1:
|
|
14
|
+
return 'RecvDir';
|
|
15
|
+
case 2:
|
|
16
|
+
return 'SendDir';
|
|
17
|
+
case 3:
|
|
18
|
+
return 'BothDir';
|
|
19
|
+
default:
|
|
20
|
+
return 'InvalidDir';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const RecvDir = new ChanDir(1);
|
|
25
|
+
export const SendDir = new ChanDir(2);
|
|
26
|
+
export const BothDir = new ChanDir(3);
|
|
27
|
+
// Struct field representation
|
|
28
|
+
export class StructField {
|
|
29
|
+
Name = '';
|
|
30
|
+
Type;
|
|
31
|
+
Tag;
|
|
32
|
+
Offset;
|
|
33
|
+
Index;
|
|
34
|
+
Anonymous;
|
|
35
|
+
constructor(init) {
|
|
36
|
+
if (init) {
|
|
37
|
+
Object.assign(this, init);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
clone() {
|
|
41
|
+
return new StructField({
|
|
42
|
+
Name: this.Name,
|
|
43
|
+
Type: this.Type,
|
|
44
|
+
Tag: this.Tag,
|
|
45
|
+
Offset: this.Offset,
|
|
46
|
+
Index: this.Index ? [...this.Index] : undefined,
|
|
47
|
+
Anonymous: this.Anonymous,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Struct tag type
|
|
52
|
+
export class StructTag {
|
|
53
|
+
_value;
|
|
54
|
+
constructor(_value) {
|
|
55
|
+
this._value = _value;
|
|
56
|
+
}
|
|
57
|
+
toString() {
|
|
58
|
+
return this._value;
|
|
59
|
+
}
|
|
60
|
+
Get(key) {
|
|
61
|
+
// Simple tag parsing - in a real implementation this would be more sophisticated
|
|
62
|
+
const parts = this._value.split(' ');
|
|
63
|
+
for (const part of parts) {
|
|
64
|
+
if (part.startsWith(key + ':')) {
|
|
65
|
+
const value = part.substring(key.length + 1);
|
|
66
|
+
if (value.startsWith('"') && value.endsWith('"')) {
|
|
67
|
+
return value.slice(1, -1);
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return '';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Select direction constants
|
|
76
|
+
export class SelectDir {
|
|
77
|
+
_value;
|
|
78
|
+
constructor(_value) {
|
|
79
|
+
this._value = _value;
|
|
80
|
+
}
|
|
81
|
+
valueOf() {
|
|
82
|
+
return this._value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export const SelectSend = new SelectDir(1);
|
|
86
|
+
export const SelectRecv = new SelectDir(2);
|
|
87
|
+
export const SelectDefault = new SelectDir(3);
|
|
88
|
+
// Bit vector for tracking pointers
|
|
89
|
+
export class bitVector {
|
|
90
|
+
bits = [];
|
|
91
|
+
Set(index) {
|
|
92
|
+
const wordIndex = Math.floor(index / 32);
|
|
93
|
+
const bitIndex = index % 32;
|
|
94
|
+
while (this.bits.length <= wordIndex) {
|
|
95
|
+
this.bits.push(0);
|
|
96
|
+
}
|
|
97
|
+
this.bits[wordIndex] |= 1 << bitIndex;
|
|
98
|
+
}
|
|
99
|
+
Get(index) {
|
|
100
|
+
const wordIndex = Math.floor(index / 32);
|
|
101
|
+
const bitIndex = index % 32;
|
|
102
|
+
if (wordIndex >= this.bits.length) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return (this.bits[wordIndex] & (1 << bitIndex)) !== 0;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Value error type
|
|
109
|
+
export class ValueError extends Error {
|
|
110
|
+
Kind;
|
|
111
|
+
Method;
|
|
112
|
+
constructor(init) {
|
|
113
|
+
super(`reflect: call of reflect.Value.${init.Method} on ${init.Kind.String()} Value`);
|
|
114
|
+
this.Kind = init.Kind;
|
|
115
|
+
this.Method = init.Method;
|
|
116
|
+
this.name = 'ValueError';
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../gs/reflect/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Type, Value } from './type.js';
|
|
2
|
+
import { SelectCase } from './types.js';
|
|
3
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
4
|
+
export { ValueOf } from './type';
|
|
5
|
+
export declare function Zero(typ: Type): Value;
|
|
6
|
+
export declare function Copy(dst: Value, src: Value): number;
|
|
7
|
+
export declare function Indirect(v: Value): Value;
|
|
8
|
+
export declare function New(typ: Type): Value;
|
|
9
|
+
export declare function MakeSlice(typ: Type, len: number, _cap: number): Value;
|
|
10
|
+
export declare function MakeMap(typ: Type): Value;
|
|
11
|
+
export declare function Append(s: Value, x: Value): Value;
|
|
12
|
+
export declare function MakeChan(typ: Type, buffer: number): Value;
|
|
13
|
+
export declare function Select(cases: $.Slice<SelectCase>): [number, Value, boolean];
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Array, Bool, Float32, Float64, Int, Int16, Int32, Int64, Int8, Map, PointerTo, Ptr, Slice, String, Uint, Uint16, Uint32, Uint64, Uint8, Uintptr, Value, Chan, BasicType, Invalid, } from './type.js';
|
|
2
|
+
import { SelectRecv, SelectDefault } from './types.js';
|
|
3
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
4
|
+
// Re-export ValueOf from type.ts for compatibility
|
|
5
|
+
export { ValueOf } from './type';
|
|
6
|
+
// Zero returns a Value representing the zero value for the specified type.
|
|
7
|
+
export function Zero(typ) {
|
|
8
|
+
let zeroValue;
|
|
9
|
+
switch (typ.Kind().valueOf()) {
|
|
10
|
+
case Bool.valueOf():
|
|
11
|
+
zeroValue = false;
|
|
12
|
+
break;
|
|
13
|
+
case Int.valueOf():
|
|
14
|
+
case Int8.valueOf():
|
|
15
|
+
case Int16.valueOf():
|
|
16
|
+
case Int32.valueOf():
|
|
17
|
+
case Int64.valueOf():
|
|
18
|
+
case Uint.valueOf():
|
|
19
|
+
case Uint8.valueOf():
|
|
20
|
+
case Uint16.valueOf():
|
|
21
|
+
case Uint32.valueOf():
|
|
22
|
+
case Uint64.valueOf():
|
|
23
|
+
case Uintptr.valueOf():
|
|
24
|
+
case Float32.valueOf():
|
|
25
|
+
case Float64.valueOf():
|
|
26
|
+
zeroValue = 0;
|
|
27
|
+
break;
|
|
28
|
+
case String.valueOf():
|
|
29
|
+
zeroValue = '';
|
|
30
|
+
break;
|
|
31
|
+
case Slice.valueOf():
|
|
32
|
+
case Array.valueOf():
|
|
33
|
+
zeroValue = [];
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
zeroValue = null;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
return new Value(zeroValue, typ);
|
|
40
|
+
}
|
|
41
|
+
// Copy copies the contents of src to dst until either dst has been filled
|
|
42
|
+
// or src has been exhausted. It returns the number of elements copied.
|
|
43
|
+
export function Copy(dst, src) {
|
|
44
|
+
// Extract the underlying arrays from the Value objects
|
|
45
|
+
const dstArray = getArrayFromValue(dst);
|
|
46
|
+
const srcArray = getArrayFromValue(src);
|
|
47
|
+
if (!dstArray || !srcArray) {
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
const count = Math.min(dstArray.length, srcArray.length);
|
|
51
|
+
for (let i = 0; i < count; i++) {
|
|
52
|
+
dstArray[i] = srcArray[i];
|
|
53
|
+
}
|
|
54
|
+
return count;
|
|
55
|
+
}
|
|
56
|
+
// Helper function to extract the underlying array from a Value
|
|
57
|
+
function getArrayFromValue(value) {
|
|
58
|
+
const val = value.value;
|
|
59
|
+
// Check for GoScript slice objects created by $.arrayToSlice
|
|
60
|
+
if (val && typeof val === 'object' && '__meta__' in val) {
|
|
61
|
+
const meta = val.__meta__;
|
|
62
|
+
if (meta && meta.backing && globalThis.Array.isArray(meta.backing)) {
|
|
63
|
+
return meta.backing;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Check for regular JavaScript arrays
|
|
67
|
+
if (globalThis.Array.isArray(val)) {
|
|
68
|
+
return val;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
// Indirect returns the value that v points to.
|
|
73
|
+
export function Indirect(v) {
|
|
74
|
+
// Check if this is a pointer type
|
|
75
|
+
const type = v.Type();
|
|
76
|
+
if (type.Kind().valueOf() === Ptr.valueOf()) {
|
|
77
|
+
// Ptr kind
|
|
78
|
+
const elemType = type.Elem();
|
|
79
|
+
if (elemType) {
|
|
80
|
+
// Return a new Value with the same underlying value but the element type
|
|
81
|
+
return new Value(v.value, elemType);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// For non-pointer types, just return the value as-is
|
|
85
|
+
return v;
|
|
86
|
+
}
|
|
87
|
+
// New returns a Value representing a pointer to a new zero value for the specified type.
|
|
88
|
+
export function New(typ) {
|
|
89
|
+
const ptrType = PointerTo(typ);
|
|
90
|
+
// For the pointer value, we'll use the zero value but with pointer type
|
|
91
|
+
// In a real implementation, this would be a pointer to the zero value
|
|
92
|
+
return new Value(null, ptrType); // null represents the pointer value
|
|
93
|
+
}
|
|
94
|
+
// MakeSlice returns a Value representing a new slice with the specified type, length, and capacity.
|
|
95
|
+
export function MakeSlice(typ, len, _cap) {
|
|
96
|
+
if (typ.Kind().valueOf() !== Slice.valueOf()) {
|
|
97
|
+
throw new Error('reflect.MakeSlice of non-slice type');
|
|
98
|
+
}
|
|
99
|
+
// Create a slice with the specified length, filled with zero values
|
|
100
|
+
const elemType = typ.Elem();
|
|
101
|
+
if (!elemType) {
|
|
102
|
+
throw new Error('slice type missing element type');
|
|
103
|
+
}
|
|
104
|
+
const zeroValue = Zero(elemType);
|
|
105
|
+
const zeroVal = zeroValue.value;
|
|
106
|
+
const array = new globalThis.Array(len).fill(zeroVal);
|
|
107
|
+
return new Value(array, typ);
|
|
108
|
+
}
|
|
109
|
+
// MakeMap returns a Value representing a new map with the specified type.
|
|
110
|
+
export function MakeMap(typ) {
|
|
111
|
+
if (typ.Kind().valueOf() !== Map.valueOf()) {
|
|
112
|
+
throw new Error('reflect.MakeMap of non-map type');
|
|
113
|
+
}
|
|
114
|
+
const map = new globalThis.Map();
|
|
115
|
+
return new Value(map, typ);
|
|
116
|
+
}
|
|
117
|
+
// Append appends the values x to a slice and returns the resulting slice.
|
|
118
|
+
export function Append(s, x) {
|
|
119
|
+
if (s.Kind().valueOf() !== Slice.valueOf()) {
|
|
120
|
+
throw new Error('reflect.Append of non-slice');
|
|
121
|
+
}
|
|
122
|
+
const array = getArrayFromValue(s);
|
|
123
|
+
if (!array) {
|
|
124
|
+
throw new Error('cannot get array from slice value');
|
|
125
|
+
}
|
|
126
|
+
const newValue = x.value;
|
|
127
|
+
const newArray = [...array, newValue];
|
|
128
|
+
return new Value(newArray, s.Type());
|
|
129
|
+
}
|
|
130
|
+
// MakeChan returns a Value representing a new channel with the specified type.
|
|
131
|
+
export function MakeChan(typ, buffer) {
|
|
132
|
+
if (typ.Kind().valueOf() !== Chan.valueOf()) {
|
|
133
|
+
throw new Error('reflect.MakeChan of non-chan type');
|
|
134
|
+
}
|
|
135
|
+
const elemType = typ.Elem();
|
|
136
|
+
if (!elemType) {
|
|
137
|
+
throw new Error('channel type missing element type');
|
|
138
|
+
}
|
|
139
|
+
// Get the zero value for the channel element type
|
|
140
|
+
const zeroValue = Zero(elemType);
|
|
141
|
+
const zeroVal = zeroValue.value;
|
|
142
|
+
// Create a channel using the builtin makeChannel function
|
|
143
|
+
const channel = $.makeChannel(buffer, zeroVal);
|
|
144
|
+
return new Value(channel, typ);
|
|
145
|
+
}
|
|
146
|
+
// Select executes a select operation on the provided cases.
|
|
147
|
+
// It returns the index of the chosen case, the received value (if applicable), and whether the receive was successful.
|
|
148
|
+
export function Select(cases) {
|
|
149
|
+
// Extract the backing array from the GoScript slice
|
|
150
|
+
let selectCases = [];
|
|
151
|
+
if (cases && typeof cases === 'object' && '__meta__' in cases) {
|
|
152
|
+
// This is a GoScript slice, extract the backing array
|
|
153
|
+
const meta = cases.__meta__;
|
|
154
|
+
if (meta && meta.backing) {
|
|
155
|
+
selectCases = meta.backing;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Check for ready channels (channels with queued values)
|
|
159
|
+
for (let i = 0; i < selectCases.length; i++) {
|
|
160
|
+
const selectCase = selectCases[i];
|
|
161
|
+
if (selectCase.Dir.valueOf() === SelectRecv.valueOf() && selectCase.Chan) {
|
|
162
|
+
const channelValue = selectCase.Chan;
|
|
163
|
+
const channelObj = channelValue
|
|
164
|
+
.value;
|
|
165
|
+
// Check if there are queued values to receive
|
|
166
|
+
if (channelObj &&
|
|
167
|
+
channelObj._sendQueue &&
|
|
168
|
+
channelObj._sendQueue.length > 0) {
|
|
169
|
+
const receivedValue = channelObj._sendQueue.shift(); // Remove from queue
|
|
170
|
+
const elemType = channelValue.Type().Elem();
|
|
171
|
+
if (elemType) {
|
|
172
|
+
const recvVal = new Value(receivedValue, elemType);
|
|
173
|
+
return [i, recvVal, true];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Look for default case if no channels are ready
|
|
179
|
+
for (let i = 0; i < selectCases.length; i++) {
|
|
180
|
+
const selectCase = selectCases[i];
|
|
181
|
+
if (selectCase.Dir.valueOf() === SelectDefault.valueOf()) {
|
|
182
|
+
// Default case is immediately available
|
|
183
|
+
return [i, new Value(null, new BasicType(Invalid, 'invalid')), false];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// If no channels are ready and no default case, return first case as fallback
|
|
187
|
+
if (selectCases.length > 0) {
|
|
188
|
+
const firstCase = selectCases[0];
|
|
189
|
+
if (firstCase.Dir.valueOf() === SelectRecv.valueOf() && firstCase.Chan) {
|
|
190
|
+
// Simulate receiving a zero value
|
|
191
|
+
const elemType = firstCase.Chan.Type().Elem();
|
|
192
|
+
if (elemType) {
|
|
193
|
+
const zeroVal = Zero(elemType);
|
|
194
|
+
return [0, zeroVal, true];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return [0, new Value(null, new BasicType(Invalid, 'invalid')), false];
|
|
198
|
+
}
|
|
199
|
+
// Fallback
|
|
200
|
+
return [0, new Value(null, new BasicType(Invalid, 'invalid')), false];
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../gs/reflect/value.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
2
|
+
import { Ptr, Struct } from './type.js';
|
|
3
|
+
// VisibleFields returns all the visible fields in t, which must be a
|
|
4
|
+
// struct type. A field is defined as visible if it's accessible
|
|
5
|
+
// directly with a FieldByName call. The returned fields include fields
|
|
6
|
+
// inside anonymous struct members and unexported fields. They follow
|
|
7
|
+
// the same order found in the struct, with anonymous fields followed
|
|
8
|
+
// immediately by their promoted fields.
|
|
9
|
+
//
|
|
10
|
+
// For each element e of the returned slice, the corresponding field
|
|
11
|
+
// can be retrieved from a value v of type t by calling v.FieldByIndex(e.Index).
|
|
12
|
+
export function VisibleFields(t) {
|
|
13
|
+
if (t == null) {
|
|
14
|
+
$.panic('reflect: VisibleFields(nil)');
|
|
15
|
+
}
|
|
16
|
+
if (t.Kind().valueOf() != 25) {
|
|
17
|
+
$.panic('reflect.VisibleFields of non-struct type ' + t.String());
|
|
18
|
+
}
|
|
19
|
+
let w = new visibleFieldsWalker({
|
|
20
|
+
byName: $.makeMap(),
|
|
21
|
+
fields: $.makeSlice(0, t.NumField()),
|
|
22
|
+
index: $.makeSlice(0, 2, 'number'),
|
|
23
|
+
visiting: $.makeMap(),
|
|
24
|
+
});
|
|
25
|
+
w.walk(t);
|
|
26
|
+
// Remove all the fields that have been hidden.
|
|
27
|
+
// Use an in-place removal that avoids copying in
|
|
28
|
+
// the common case that there are no hidden fields.
|
|
29
|
+
let j = 0;
|
|
30
|
+
// A field has been removed. We need to shuffle
|
|
31
|
+
// all the subsequent elements up.
|
|
32
|
+
for (let i = 0; i < $.len(w.fields); i++) {
|
|
33
|
+
{
|
|
34
|
+
let f = w.fields[i];
|
|
35
|
+
if (f.Name == '') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// A field has been removed. We need to shuffle
|
|
39
|
+
// all the subsequent elements up.
|
|
40
|
+
if (i != j) {
|
|
41
|
+
// A field has been removed. We need to shuffle
|
|
42
|
+
// all the subsequent elements up.
|
|
43
|
+
w.fields[j] = f.clone();
|
|
44
|
+
}
|
|
45
|
+
j++;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return $.goSlice(w.fields, undefined, j);
|
|
49
|
+
}
|
|
50
|
+
class visibleFieldsWalker {
|
|
51
|
+
get byName() {
|
|
52
|
+
return this._fields.byName.value;
|
|
53
|
+
}
|
|
54
|
+
set byName(value) {
|
|
55
|
+
this._fields.byName.value = value;
|
|
56
|
+
}
|
|
57
|
+
get visiting() {
|
|
58
|
+
return this._fields.visiting.value;
|
|
59
|
+
}
|
|
60
|
+
set visiting(value) {
|
|
61
|
+
this._fields.visiting.value = value;
|
|
62
|
+
}
|
|
63
|
+
get fields() {
|
|
64
|
+
return this._fields.fields.value;
|
|
65
|
+
}
|
|
66
|
+
set fields(value) {
|
|
67
|
+
this._fields.fields.value = value;
|
|
68
|
+
}
|
|
69
|
+
get index() {
|
|
70
|
+
return this._fields.index.value;
|
|
71
|
+
}
|
|
72
|
+
set index(value) {
|
|
73
|
+
this._fields.index.value = value;
|
|
74
|
+
}
|
|
75
|
+
_fields;
|
|
76
|
+
constructor(init) {
|
|
77
|
+
this._fields = {
|
|
78
|
+
byName: $.varRef(init?.byName ?? $.makeMap()),
|
|
79
|
+
visiting: $.varRef(init?.visiting ?? $.makeMap()),
|
|
80
|
+
fields: $.varRef(init?.fields ?? $.makeSlice(0, 0)),
|
|
81
|
+
index: $.varRef(init?.index ?? $.makeSlice(0, 2, 'number')),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
clone() {
|
|
85
|
+
const cloned = new visibleFieldsWalker();
|
|
86
|
+
cloned._fields = {
|
|
87
|
+
byName: $.varRef(this._fields.byName.value),
|
|
88
|
+
visiting: $.varRef(this._fields.visiting.value),
|
|
89
|
+
fields: $.varRef(this._fields.fields.value),
|
|
90
|
+
index: $.varRef(this._fields.index.value),
|
|
91
|
+
};
|
|
92
|
+
return cloned;
|
|
93
|
+
}
|
|
94
|
+
// walk walks all the fields in the struct type t, visiting
|
|
95
|
+
// fields in index preorder and appending them to w.fields
|
|
96
|
+
// (this maintains the required ordering).
|
|
97
|
+
// Fields that have been overridden have their
|
|
98
|
+
// Name field cleared.
|
|
99
|
+
walk(t) {
|
|
100
|
+
const w = this;
|
|
101
|
+
if ($.mapGet(w.visiting, t, false)[0]) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
$.mapSet(w.visiting, t, true);
|
|
105
|
+
for (let i = 0; i < t.NumField(); i++) {
|
|
106
|
+
if (!t.Field)
|
|
107
|
+
continue;
|
|
108
|
+
const field = t.Field(i);
|
|
109
|
+
if (field) {
|
|
110
|
+
const f = field.clone();
|
|
111
|
+
f.Index = $.append(null, w.index);
|
|
112
|
+
if (f.Anonymous) {
|
|
113
|
+
if (f.Type && f.Type.Kind().valueOf() === Ptr.valueOf()) {
|
|
114
|
+
const elemType = f.Type.Elem();
|
|
115
|
+
if (elemType) {
|
|
116
|
+
f.Type = elemType;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (f.Type && f.Type.Kind().valueOf() === Struct.valueOf()) {
|
|
120
|
+
w.walk(f.Type);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
w.fields = $.append(w.fields, f);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
$.deleteMapEntry(w.visiting, t);
|
|
129
|
+
}
|
|
130
|
+
// Register this type with the runtime type system
|
|
131
|
+
static __typeInfo = $.registerStructType('visibleFieldsWalker', new visibleFieldsWalker(), [{ name: 'walk', args: [{ name: 't', type: 'Type' }], returns: [] }], visibleFieldsWalker, {
|
|
132
|
+
byName: {
|
|
133
|
+
kind: $.TypeKind.Map,
|
|
134
|
+
keyType: { kind: $.TypeKind.Basic, name: 'string' },
|
|
135
|
+
elemType: { kind: $.TypeKind.Basic, name: 'number' },
|
|
136
|
+
},
|
|
137
|
+
visiting: {
|
|
138
|
+
kind: $.TypeKind.Map,
|
|
139
|
+
keyType: 'Type',
|
|
140
|
+
elemType: { kind: $.TypeKind.Basic, name: 'boolean' },
|
|
141
|
+
},
|
|
142
|
+
fields: { kind: $.TypeKind.Slice, elemType: 'StructField' },
|
|
143
|
+
index: {
|
|
144
|
+
kind: $.TypeKind.Slice,
|
|
145
|
+
elemType: { kind: $.TypeKind.Basic, name: 'number' },
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=visiblefields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visiblefields.js","sourceRoot":"","sources":["../../../gs/reflect/visiblefields.ts"],"names":[],"mappings":"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"}
|