goscript 0.0.36 → 0.0.38
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 +26 -0
- package/compiler/lit.go +83 -0
- package/compiler/protobuf.go +2 -2
- package/compiler/spec-value.go +3 -3
- package/compiler/spec.go +7 -4
- package/compiler/stmt-assign.go +1 -1
- package/compiler/stmt.go +26 -8
- package/dist/gs/builtin/slice.js +2 -1
- package/dist/gs/builtin/slice.js.map +1 -1
- 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 +2 -0
- package/dist/gs/internal/bytealg/index.js +33 -0
- package/dist/gs/internal/bytealg/index.js.map +1 -0
- package/dist/gs/internal/byteorder/index.d.ts +8 -0
- package/dist/gs/internal/byteorder/index.js +34 -0
- package/dist/gs/internal/byteorder/index.js.map +1 -0
- package/dist/gs/internal/testlog/index.d.ts +1 -0
- package/dist/gs/internal/testlog/index.js +5 -0
- package/dist/gs/internal/testlog/index.js.map +1 -0
- 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/dir.gs.d.ts +6 -0
- package/dist/gs/os/dir.gs.js +35 -0
- package/dist/gs/os/dir.gs.js.map +1 -0
- package/dist/gs/os/dir_unix.gs.d.ts +7 -0
- package/dist/gs/os/dir_unix.gs.js +113 -0
- package/dist/gs/os/dir_unix.gs.js.map +1 -0
- package/dist/gs/os/dirent_js.gs.d.ts +5 -0
- package/dist/gs/os/dirent_js.gs.js +20 -0
- package/dist/gs/os/dirent_js.gs.js.map +1 -0
- package/dist/gs/os/env.gs.d.ts +12 -0
- package/dist/gs/os/env.gs.js +157 -0
- package/dist/gs/os/env.gs.js.map +1 -0
- package/dist/gs/os/error.gs.d.ts +40 -0
- package/dist/gs/os/error.gs.js +158 -0
- package/dist/gs/os/error.gs.js.map +1 -0
- package/dist/gs/os/error_errno.gs.d.ts +1 -0
- package/dist/gs/os/error_errno.gs.js +5 -0
- package/dist/gs/os/error_errno.gs.js.map +1 -0
- package/dist/gs/os/exec.gs.d.ts +60 -0
- package/dist/gs/os/exec.gs.js +136 -0
- package/dist/gs/os/exec.gs.js.map +1 -0
- package/dist/gs/os/exec_nohandle.gs.d.ts +1 -0
- package/dist/gs/os/exec_nohandle.gs.js +2 -0
- package/dist/gs/os/exec_nohandle.gs.js.map +1 -0
- package/dist/gs/os/exec_posix.gs.d.ts +25 -0
- package/dist/gs/os/exec_posix.gs.js +67 -0
- package/dist/gs/os/exec_posix.gs.js.map +1 -0
- package/dist/gs/os/exec_unix.gs.d.ts +4 -0
- package/dist/gs/os/exec_unix.gs.js +46 -0
- package/dist/gs/os/exec_unix.gs.js.map +1 -0
- package/dist/gs/os/executable.gs.d.ts +2 -0
- package/dist/gs/os/executable.gs.js +16 -0
- package/dist/gs/os/executable.gs.js.map +1 -0
- package/dist/gs/os/executable_js.gs.d.ts +2 -0
- package/dist/gs/os/executable_js.gs.js +5 -0
- package/dist/gs/os/executable_js.gs.js.map +1 -0
- package/dist/gs/os/executable_wasm.gs.d.ts +2 -0
- package/dist/gs/os/executable_wasm.gs.js +6 -0
- package/dist/gs/os/executable_wasm.gs.js.map +1 -0
- package/dist/gs/os/file_constants_js.gs.d.ts +41 -0
- package/dist/gs/os/file_constants_js.gs.js +78 -0
- package/dist/gs/os/file_constants_js.gs.js.map +1 -0
- package/dist/gs/os/file_js.gs.d.ts +22 -0
- package/dist/gs/os/file_js.gs.js +73 -0
- package/dist/gs/os/file_js.gs.js.map +1 -0
- package/dist/gs/os/file_open_unix.gs.d.ts +6 -0
- package/dist/gs/os/file_open_unix.gs.js +10 -0
- package/dist/gs/os/file_open_unix.gs.js.map +1 -0
- package/dist/gs/os/file_posix_js.gs.d.ts +8 -0
- package/dist/gs/os/file_posix_js.gs.js +32 -0
- package/dist/gs/os/file_posix_js.gs.js.map +1 -0
- package/dist/gs/os/file_unix_js.gs.d.ts +27 -0
- package/dist/gs/os/file_unix_js.gs.js +64 -0
- package/dist/gs/os/file_unix_js.gs.js.map +1 -0
- package/dist/gs/os/getwd_js.gs.d.ts +6 -0
- package/dist/gs/os/getwd_js.gs.js +21 -0
- package/dist/gs/os/getwd_js.gs.js.map +1 -0
- package/dist/gs/os/index.d.ts +19 -0
- package/dist/gs/os/index.js +20 -0
- package/dist/gs/os/index.js.map +1 -0
- package/dist/gs/os/path.gs.d.ts +4 -0
- package/dist/gs/os/path.gs.js +32 -0
- package/dist/gs/os/path.gs.js.map +1 -0
- package/dist/gs/os/path_unix.gs.d.ts +4 -0
- package/dist/gs/os/path_unix.gs.js +40 -0
- package/dist/gs/os/path_unix.gs.js.map +1 -0
- package/dist/gs/os/pidfd_js.gs.d.ts +6 -0
- package/dist/gs/os/pidfd_js.gs.js +14 -0
- package/dist/gs/os/pidfd_js.gs.js.map +1 -0
- package/dist/gs/os/pipe_wasm.gs.d.ts +2 -0
- package/dist/gs/os/pipe_wasm.gs.js +14 -0
- package/dist/gs/os/pipe_wasm.gs.js.map +1 -0
- package/dist/gs/os/proc.gs.d.ts +11 -0
- package/dist/gs/os/proc.gs.js +68 -0
- package/dist/gs/os/proc.gs.js.map +1 -0
- package/dist/gs/os/proc_js.gs.d.ts +3 -0
- package/dist/gs/os/proc_js.gs.js +12 -0
- package/dist/gs/os/proc_js.gs.js.map +1 -0
- package/dist/gs/os/rawconn_js.gs.d.ts +10 -0
- package/dist/gs/os/rawconn_js.gs.js +26 -0
- package/dist/gs/os/rawconn_js.gs.js.map +1 -0
- package/dist/gs/os/removeall_js.gs.d.ts +2 -0
- package/dist/gs/os/removeall_js.gs.js +7 -0
- package/dist/gs/os/removeall_js.gs.js.map +1 -0
- package/dist/gs/os/root_js.gs.d.ts +23 -0
- package/dist/gs/os/root_js.gs.js +80 -0
- package/dist/gs/os/root_js.gs.js.map +1 -0
- package/dist/gs/os/root_nonwindows.gs.d.ts +2 -0
- package/dist/gs/os/root_nonwindows.gs.js +4 -0
- package/dist/gs/os/root_nonwindows.gs.js.map +1 -0
- package/dist/gs/os/root_noopenat.gs.d.ts +11 -0
- package/dist/gs/os/root_noopenat.gs.js +31 -0
- package/dist/gs/os/root_noopenat.gs.js.map +1 -0
- package/dist/gs/os/stat.gs.d.ts +24 -0
- package/dist/gs/os/stat.gs.js +20 -0
- package/dist/gs/os/stat.gs.js.map +1 -0
- package/dist/gs/os/stat_js.gs.d.ts +6 -0
- package/dist/gs/os/stat_js.gs.js +23 -0
- package/dist/gs/os/stat_js.gs.js.map +1 -0
- package/dist/gs/os/stat_unix_js.gs.d.ts +8 -0
- package/dist/gs/os/stat_unix_js.gs.js +16 -0
- package/dist/gs/os/stat_unix_js.gs.js.map +1 -0
- package/dist/gs/os/sticky_bsd.gs.d.ts +1 -0
- package/dist/gs/os/sticky_bsd.gs.js +3 -0
- package/dist/gs/os/sticky_bsd.gs.js.map +1 -0
- package/dist/gs/os/sys.gs.d.ts +2 -0
- package/dist/gs/os/sys.gs.js +10 -0
- package/dist/gs/os/sys.gs.js.map +1 -0
- package/dist/gs/os/sys_bsd.gs.d.ts +2 -0
- package/dist/gs/os/sys_bsd.gs.js +15 -0
- package/dist/gs/os/sys_bsd.gs.js.map +1 -0
- package/dist/gs/os/sys_js.gs.d.ts +2 -0
- package/dist/gs/os/sys_js.gs.js +6 -0
- package/dist/gs/os/sys_js.gs.js.map +1 -0
- package/dist/gs/os/tempfile.gs.d.ts +5 -0
- package/dist/gs/os/tempfile.gs.js +30 -0
- package/dist/gs/os/tempfile.gs.js.map +1 -0
- package/dist/gs/os/types.gs.d.ts +59 -0
- package/dist/gs/os/types.gs.js +123 -0
- package/dist/gs/os/types.gs.js.map +1 -0
- package/dist/gs/os/types_js.gs.d.ts +74 -0
- package/dist/gs/os/types_js.gs.js +147 -0
- package/dist/gs/os/types_js.gs.js.map +1 -0
- package/dist/gs/os/types_unix.gs.d.ts +40 -0
- package/dist/gs/os/types_unix.gs.js +87 -0
- package/dist/gs/os/types_unix.gs.js.map +1 -0
- package/dist/gs/os/wait_unimp.gs.d.ts +1 -0
- package/dist/gs/os/wait_unimp.gs.js +2 -0
- package/dist/gs/os/wait_unimp.gs.js.map +1 -0
- package/dist/gs/os/zero_copy_posix.gs.d.ts +4 -0
- package/dist/gs/os/zero_copy_posix.gs.js +27 -0
- package/dist/gs/os/zero_copy_posix.gs.js.map +1 -0
- package/dist/gs/os/zero_copy_stub.gs.d.ts +1 -0
- package/dist/gs/os/zero_copy_stub.gs.js +2 -0
- package/dist/gs/os/zero_copy_stub.gs.js.map +1 -0
- package/dist/gs/reflect/abi.d.ts +59 -0
- package/dist/gs/reflect/abi.gs.d.ts +59 -0
- package/dist/gs/reflect/abi.gs.js +79 -0
- package/dist/gs/reflect/abi.gs.js.map +1 -0
- package/dist/gs/reflect/abi.js +79 -0
- package/dist/gs/reflect/abi.js.map +1 -0
- package/dist/gs/reflect/badlinkname.d.ts +52 -0
- package/dist/gs/reflect/badlinkname.gs.d.ts +52 -0
- package/dist/gs/reflect/badlinkname.gs.js +72 -0
- package/dist/gs/reflect/badlinkname.gs.js.map +1 -0
- package/dist/gs/reflect/badlinkname.js +72 -0
- package/dist/gs/reflect/badlinkname.js.map +1 -0
- package/dist/gs/reflect/deepequal.d.ts +1 -0
- package/dist/gs/reflect/deepequal.gs.d.ts +25 -0
- package/dist/gs/reflect/deepequal.gs.js +308 -0
- package/dist/gs/reflect/deepequal.gs.js.map +1 -0
- package/dist/gs/reflect/deepequal.js +139 -0
- package/dist/gs/reflect/deepequal.js.map +1 -0
- package/dist/gs/reflect/float32reg_generic.gs.d.ts +2 -0
- package/dist/gs/reflect/float32reg_generic.gs.js +10 -0
- package/dist/gs/reflect/float32reg_generic.gs.js.map +1 -0
- package/dist/gs/reflect/index.d.ts +8 -0
- package/dist/gs/reflect/index.gs.d.ts +1 -0
- package/dist/gs/reflect/index.gs.js +3 -0
- package/dist/gs/reflect/index.gs.js.map +1 -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.gs.d.ts +3 -0
- package/dist/gs/reflect/iter.gs.js +24 -0
- package/dist/gs/reflect/iter.gs.js.map +1 -0
- package/dist/gs/reflect/iter.js +24 -0
- package/dist/gs/reflect/iter.js.map +1 -0
- package/dist/gs/reflect/makefunc.gs.d.ts +34 -0
- package/dist/gs/reflect/makefunc.gs.js +288 -0
- package/dist/gs/reflect/makefunc.gs.js.map +1 -0
- package/dist/gs/reflect/map.d.ts +14 -0
- package/dist/gs/reflect/map.js +70 -0
- package/dist/gs/reflect/map.js.map +1 -0
- package/dist/gs/reflect/map_swiss.gs.d.ts +14 -0
- package/dist/gs/reflect/map_swiss.gs.js +70 -0
- package/dist/gs/reflect/map_swiss.gs.js.map +1 -0
- package/dist/gs/reflect/reflect.gs.d.ts +132 -0
- package/dist/gs/reflect/reflect.gs.js +437 -0
- package/dist/gs/reflect/reflect.gs.js.map +1 -0
- package/dist/gs/reflect/swapper.d.ts +2 -0
- package/dist/gs/reflect/swapper.gs.d.ts +1 -0
- package/dist/gs/reflect/swapper.gs.js +32 -0
- package/dist/gs/reflect/swapper.gs.js.map +1 -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 +126 -0
- package/dist/gs/reflect/type.gs.d.ts +4 -0
- package/dist/gs/reflect/type.gs.js +21 -0
- package/dist/gs/reflect/type.gs.js.map +1 -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.gs.d.ts +4 -0
- package/dist/gs/reflect/value.gs.js +12 -0
- package/dist/gs/reflect/value.gs.js.map +1 -0
- package/dist/gs/reflect/value.js +201 -0
- package/dist/gs/reflect/value.js.map +1 -0
- package/dist/gs/reflect/visiblefields.d.ts +4 -0
- package/dist/gs/reflect/visiblefields.gs.d.ts +3 -0
- package/dist/gs/reflect/visiblefields.gs.js +123 -0
- package/dist/gs/reflect/visiblefields.gs.js.map +1 -0
- package/dist/gs/reflect/visiblefields.js +143 -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 +80 -0
- package/dist/gs/syscall/index.js +169 -0
- package/dist/gs/syscall/index.js.map +1 -0
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/gs/builtin/slice.ts +2 -1
- 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 +34 -0
- package/gs/internal/byteorder/index.ts +40 -0
- 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/dir.gs.ts +42 -0
- package/gs/os/dir_unix.gs.ts +155 -0
- package/gs/os/dirent_js.gs.ts +27 -0
- package/gs/os/env.gs.ts +179 -0
- package/gs/os/error.gs.ts +205 -0
- package/gs/os/error_errno.gs.ts +12 -0
- package/gs/os/exec.gs.ts +198 -0
- package/gs/os/exec_nohandle.gs.ts +2 -0
- package/gs/os/exec_posix.gs.ts +95 -0
- package/gs/os/exec_unix.gs.ts +64 -0
- package/gs/os/executable.gs.ts +18 -0
- package/gs/os/executable_js.gs.ts +6 -0
- package/gs/os/executable_wasm.gs.ts +10 -0
- package/gs/os/file_constants_js.gs.ts +98 -0
- package/gs/os/file_js.gs.ts +99 -0
- package/gs/os/file_open_unix.gs.ts +15 -0
- package/gs/os/file_posix_js.gs.ts +40 -0
- package/gs/os/file_unix_js.gs.ts +94 -0
- package/gs/os/getwd_js.gs.ts +28 -0
- package/gs/os/index.ts +128 -0
- package/gs/os/path.gs.ts +35 -0
- package/gs/os/path_unix.gs.ts +49 -0
- package/gs/os/pidfd_js.gs.ts +25 -0
- package/gs/os/pipe_wasm.gs.ts +17 -0
- package/gs/os/proc.gs.ts +84 -0
- package/gs/os/proc_js.gs.ts +15 -0
- package/gs/os/rawconn_js.gs.ts +30 -0
- package/gs/os/removeall_js.gs.ts +9 -0
- package/gs/os/root_js.gs.ts +111 -0
- package/gs/os/root_nonwindows.gs.ts +6 -0
- package/gs/os/root_noopenat.gs.ts +45 -0
- package/gs/os/stat.gs.ts +38 -0
- package/gs/os/stat_js.gs.ts +30 -0
- package/gs/os/stat_unix_js.gs.ts +27 -0
- package/gs/os/sticky_bsd.gs.ts +4 -0
- package/gs/os/sys.gs.ts +12 -0
- package/gs/os/sys_bsd.gs.ts +17 -0
- package/gs/os/sys_js.gs.ts +9 -0
- package/gs/os/tempfile.gs.ts +34 -0
- package/gs/os/types.gs.ts +170 -0
- package/gs/os/types_js.gs.ts +205 -0
- package/gs/os/types_unix.gs.ts +118 -0
- package/gs/os/wait_unimp.gs.ts +2 -0
- package/gs/os/zero_copy_posix.gs.ts +35 -0
- package/gs/os/zero_copy_stub.gs.ts +4 -0
- package/gs/reflect/ANALYSIS.md +278 -0
- package/gs/reflect/deepequal.ts +154 -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.ts +81 -0
- package/gs/reflect/swapper.ts +52 -0
- package/gs/reflect/type.ts +1012 -0
- package/gs/reflect/types.ts +214 -0
- package/gs/reflect/value.ts +264 -0
- package/gs/reflect/visiblefields.ts +173 -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 +212 -0
- package/gs/unsafe/unsafe.ts +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export type uintptr = number;
|
|
2
|
+
export type Pointer = any;
|
|
3
|
+
export declare class StructField {
|
|
4
|
+
Name: string;
|
|
5
|
+
Type: Type;
|
|
6
|
+
Tag?: string;
|
|
7
|
+
Offset?: uintptr;
|
|
8
|
+
Index?: number[];
|
|
9
|
+
Anonymous?: boolean;
|
|
10
|
+
constructor(init?: Partial<StructField>);
|
|
11
|
+
clone(): StructField;
|
|
12
|
+
}
|
|
13
|
+
export declare class bitVector {
|
|
14
|
+
private bits;
|
|
15
|
+
Set(index: number): void;
|
|
16
|
+
Get(index: number): boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare class flag {
|
|
19
|
+
private _value;
|
|
20
|
+
constructor(_value: number | Kind);
|
|
21
|
+
valueOf(): number;
|
|
22
|
+
static from(value: number | Kind): flag;
|
|
23
|
+
}
|
|
24
|
+
export declare class rtype {
|
|
25
|
+
kind: Kind;
|
|
26
|
+
constructor(kind: Kind);
|
|
27
|
+
Kind(): Kind;
|
|
28
|
+
String(): string;
|
|
29
|
+
Pointers(): boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare class funcType extends rtype {
|
|
32
|
+
inCount: number;
|
|
33
|
+
outCount: number;
|
|
34
|
+
constructor(kind: Kind, inCount?: number, outCount?: number);
|
|
35
|
+
}
|
|
36
|
+
export declare class Kind {
|
|
37
|
+
private _value;
|
|
38
|
+
constructor(_value: number);
|
|
39
|
+
valueOf(): number;
|
|
40
|
+
toString(): string;
|
|
41
|
+
static from(value: number): Kind;
|
|
42
|
+
String(): string;
|
|
43
|
+
}
|
|
44
|
+
export declare const Invalid: Kind;
|
|
45
|
+
export declare const Bool: Kind;
|
|
46
|
+
export declare const Int: Kind;
|
|
47
|
+
export declare const Int8: Kind;
|
|
48
|
+
export declare const Int16: Kind;
|
|
49
|
+
export declare const Int32: Kind;
|
|
50
|
+
export declare const Int64: Kind;
|
|
51
|
+
export declare const Uint: Kind;
|
|
52
|
+
export declare const Uint8: Kind;
|
|
53
|
+
export declare const Uint16: Kind;
|
|
54
|
+
export declare const Uint32: Kind;
|
|
55
|
+
export declare const Uint64: Kind;
|
|
56
|
+
export declare const Uintptr: Kind;
|
|
57
|
+
export declare const Float32: Kind;
|
|
58
|
+
export declare const Float64: Kind;
|
|
59
|
+
export declare const Complex64: Kind;
|
|
60
|
+
export declare const Complex128: Kind;
|
|
61
|
+
export declare const Array: Kind;
|
|
62
|
+
export declare const Chan: Kind;
|
|
63
|
+
export declare const Func: Kind;
|
|
64
|
+
export declare const Interface: Kind;
|
|
65
|
+
export declare const Map: Kind;
|
|
66
|
+
export declare const Ptr: Kind;
|
|
67
|
+
export declare const Slice: Kind;
|
|
68
|
+
export declare const String: Kind;
|
|
69
|
+
export declare const Struct: Kind;
|
|
70
|
+
export declare const UnsafePointer: Kind;
|
|
71
|
+
export interface Type {
|
|
72
|
+
String(): string;
|
|
73
|
+
Kind(): Kind;
|
|
74
|
+
Elem?(): Type | null;
|
|
75
|
+
NumField?(): number;
|
|
76
|
+
Field?(i: number): StructField;
|
|
77
|
+
PkgPath?(): string;
|
|
78
|
+
common?(): rtype;
|
|
79
|
+
}
|
|
80
|
+
export declare class Value {
|
|
81
|
+
private _value;
|
|
82
|
+
private _type;
|
|
83
|
+
constructor(_value?: any, _type?: Type);
|
|
84
|
+
clone(): Value;
|
|
85
|
+
Int(): number;
|
|
86
|
+
String(): string;
|
|
87
|
+
Len(): number;
|
|
88
|
+
Kind(): Kind;
|
|
89
|
+
Type(): Type;
|
|
90
|
+
typ(): rtype | null;
|
|
91
|
+
get flag(): number;
|
|
92
|
+
Convert(t: Type): Value;
|
|
93
|
+
IsValid(): boolean;
|
|
94
|
+
IsNil(): boolean;
|
|
95
|
+
UnsafePointer(): Pointer;
|
|
96
|
+
Index(i: number): Value;
|
|
97
|
+
Bytes(): Uint8Array;
|
|
98
|
+
Elem(): Value;
|
|
99
|
+
NumField(): number;
|
|
100
|
+
Field(i: number): Value;
|
|
101
|
+
MapRange(): any;
|
|
102
|
+
MapIndex(key: Value): Value;
|
|
103
|
+
Uint(): number;
|
|
104
|
+
Bool(): boolean;
|
|
105
|
+
Float(): number;
|
|
106
|
+
Complex(): any;
|
|
107
|
+
pointer(): Pointer;
|
|
108
|
+
get ptr(): Pointer;
|
|
109
|
+
}
|
|
110
|
+
export declare class BasicType implements Type {
|
|
111
|
+
private _kind;
|
|
112
|
+
private _name;
|
|
113
|
+
constructor(_kind: Kind, _name: string);
|
|
114
|
+
String(): string;
|
|
115
|
+
Kind(): Kind;
|
|
116
|
+
Elem?(): Type | null;
|
|
117
|
+
NumField?(): number;
|
|
118
|
+
Field?(i: number): StructField;
|
|
119
|
+
PkgPath?(): string;
|
|
120
|
+
common?(): rtype;
|
|
121
|
+
}
|
|
122
|
+
export declare function TypeOf(i: any): Type;
|
|
123
|
+
export declare function ValueOf(i: any): Value;
|
|
124
|
+
export declare function DeepEqual(x: any, y: any): boolean;
|
|
125
|
+
export declare function Zero(typ: Type): Value;
|
|
126
|
+
export declare class UintptrClass {
|
|
127
|
+
value: number;
|
|
128
|
+
constructor(value: number);
|
|
129
|
+
static from(ptr: any): UintptrClass;
|
|
130
|
+
static call(ptr: any): UintptrClass;
|
|
131
|
+
}
|
|
132
|
+
export declare const uintptr: (ptr: any) => UintptrClass;
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
// StructField represents a single field in a struct
|
|
2
|
+
export class StructField {
|
|
3
|
+
Name = "";
|
|
4
|
+
Type = new BasicType(Invalid, "invalid");
|
|
5
|
+
Tag;
|
|
6
|
+
Offset;
|
|
7
|
+
Index;
|
|
8
|
+
Anonymous;
|
|
9
|
+
constructor(init) {
|
|
10
|
+
if (init) {
|
|
11
|
+
Object.assign(this, init);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
clone() {
|
|
15
|
+
return new StructField({
|
|
16
|
+
Name: this.Name,
|
|
17
|
+
Type: this.Type,
|
|
18
|
+
Tag: this.Tag,
|
|
19
|
+
Offset: this.Offset,
|
|
20
|
+
Index: this.Index ? [...this.Index] : undefined,
|
|
21
|
+
Anonymous: this.Anonymous
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// bitVector class for tracking pointers
|
|
26
|
+
export class bitVector {
|
|
27
|
+
bits = [];
|
|
28
|
+
Set(index) {
|
|
29
|
+
const wordIndex = Math.floor(index / 32);
|
|
30
|
+
const bitIndex = index % 32;
|
|
31
|
+
while (this.bits.length <= wordIndex) {
|
|
32
|
+
this.bits.push(0);
|
|
33
|
+
}
|
|
34
|
+
this.bits[wordIndex] |= (1 << bitIndex);
|
|
35
|
+
}
|
|
36
|
+
Get(index) {
|
|
37
|
+
const wordIndex = Math.floor(index / 32);
|
|
38
|
+
const bitIndex = index % 32;
|
|
39
|
+
if (wordIndex >= this.bits.length) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
return (this.bits[wordIndex] & (1 << bitIndex)) !== 0;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// flag type for internal use
|
|
46
|
+
export class flag {
|
|
47
|
+
_value;
|
|
48
|
+
constructor(_value) {
|
|
49
|
+
this._value = _value;
|
|
50
|
+
if (typeof _value === 'number') {
|
|
51
|
+
this._value = _value;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this._value = _value.valueOf();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
valueOf() {
|
|
58
|
+
return typeof this._value === 'number' ? this._value : this._value.valueOf();
|
|
59
|
+
}
|
|
60
|
+
// Support arithmetic operations
|
|
61
|
+
static from(value) {
|
|
62
|
+
return new flag(value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// rtype is the common implementation of most values
|
|
66
|
+
export class rtype {
|
|
67
|
+
kind;
|
|
68
|
+
constructor(kind) {
|
|
69
|
+
this.kind = kind;
|
|
70
|
+
}
|
|
71
|
+
Kind() {
|
|
72
|
+
return this.kind;
|
|
73
|
+
}
|
|
74
|
+
String() {
|
|
75
|
+
return this.kind.String();
|
|
76
|
+
}
|
|
77
|
+
Pointers() {
|
|
78
|
+
// Return true for pointer-like types
|
|
79
|
+
const k = this.kind.valueOf();
|
|
80
|
+
return k === Ptr.valueOf() || k === Map.valueOf() || k === Slice.valueOf() || k === Interface.valueOf();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// funcType represents a function type
|
|
84
|
+
export class funcType extends rtype {
|
|
85
|
+
inCount;
|
|
86
|
+
outCount;
|
|
87
|
+
constructor(kind, inCount = 0, outCount = 0) {
|
|
88
|
+
super(kind);
|
|
89
|
+
this.inCount = inCount;
|
|
90
|
+
this.outCount = outCount;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export class Kind {
|
|
94
|
+
_value;
|
|
95
|
+
constructor(_value) {
|
|
96
|
+
this._value = _value;
|
|
97
|
+
}
|
|
98
|
+
valueOf() {
|
|
99
|
+
return this._value;
|
|
100
|
+
}
|
|
101
|
+
toString() {
|
|
102
|
+
return this.String();
|
|
103
|
+
}
|
|
104
|
+
static from(value) {
|
|
105
|
+
return new Kind(value);
|
|
106
|
+
}
|
|
107
|
+
String() {
|
|
108
|
+
const kindNames = [
|
|
109
|
+
"invalid", "bool", "int", "int8", "int16", "int32", "int64",
|
|
110
|
+
"uint", "uint8", "uint16", "uint32", "uint64", "uintptr",
|
|
111
|
+
"float32", "float64", "complex64", "complex128",
|
|
112
|
+
"array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"
|
|
113
|
+
];
|
|
114
|
+
if (this._value >= 0 && this._value < kindNames.length) {
|
|
115
|
+
return kindNames[this._value];
|
|
116
|
+
}
|
|
117
|
+
return "invalid";
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Kind constants
|
|
121
|
+
export const Invalid = new Kind(0);
|
|
122
|
+
export const Bool = new Kind(1);
|
|
123
|
+
export const Int = new Kind(2);
|
|
124
|
+
export const Int8 = new Kind(3);
|
|
125
|
+
export const Int16 = new Kind(4);
|
|
126
|
+
export const Int32 = new Kind(5);
|
|
127
|
+
export const Int64 = new Kind(6);
|
|
128
|
+
export const Uint = new Kind(7);
|
|
129
|
+
export const Uint8 = new Kind(8);
|
|
130
|
+
export const Uint16 = new Kind(9);
|
|
131
|
+
export const Uint32 = new Kind(10);
|
|
132
|
+
export const Uint64 = new Kind(11);
|
|
133
|
+
export const Uintptr = new Kind(12);
|
|
134
|
+
export const Float32 = new Kind(13);
|
|
135
|
+
export const Float64 = new Kind(14);
|
|
136
|
+
export const Complex64 = new Kind(15);
|
|
137
|
+
export const Complex128 = new Kind(16);
|
|
138
|
+
export const Array = new Kind(17);
|
|
139
|
+
export const Chan = new Kind(18);
|
|
140
|
+
export const Func = new Kind(19);
|
|
141
|
+
export const Interface = new Kind(20);
|
|
142
|
+
export const Map = new Kind(21);
|
|
143
|
+
export const Ptr = new Kind(22);
|
|
144
|
+
export const Slice = new Kind(23);
|
|
145
|
+
export const String = new Kind(24);
|
|
146
|
+
export const Struct = new Kind(25);
|
|
147
|
+
export const UnsafePointer = new Kind(26);
|
|
148
|
+
export class Value {
|
|
149
|
+
_value;
|
|
150
|
+
_type;
|
|
151
|
+
constructor(_value = null, _type = new BasicType(Invalid, "invalid")) {
|
|
152
|
+
this._value = _value;
|
|
153
|
+
this._type = _type;
|
|
154
|
+
}
|
|
155
|
+
clone() {
|
|
156
|
+
return new Value(this._value, this._type);
|
|
157
|
+
}
|
|
158
|
+
Int() {
|
|
159
|
+
if (typeof this._value === 'number' && Number.isInteger(this._value)) {
|
|
160
|
+
return this._value;
|
|
161
|
+
}
|
|
162
|
+
throw new Error("reflect: call of reflect.Value.Int on " + this._type.Kind().String() + " Value");
|
|
163
|
+
}
|
|
164
|
+
String() {
|
|
165
|
+
if (typeof this._value === 'string') {
|
|
166
|
+
return this._value;
|
|
167
|
+
}
|
|
168
|
+
return this._type.String();
|
|
169
|
+
}
|
|
170
|
+
Len() {
|
|
171
|
+
if (globalThis.Array.isArray(this._value)) {
|
|
172
|
+
return this._value.length;
|
|
173
|
+
}
|
|
174
|
+
if (typeof this._value === 'string') {
|
|
175
|
+
return this._value.length;
|
|
176
|
+
}
|
|
177
|
+
throw new Error("reflect: call of reflect.Value.Len on " + this._type.Kind().String() + " Value");
|
|
178
|
+
}
|
|
179
|
+
Kind() {
|
|
180
|
+
return this._type.Kind();
|
|
181
|
+
}
|
|
182
|
+
Type() {
|
|
183
|
+
return this._type;
|
|
184
|
+
}
|
|
185
|
+
// Add typ() method for compatibility
|
|
186
|
+
typ() {
|
|
187
|
+
return new rtype(this._type.Kind());
|
|
188
|
+
}
|
|
189
|
+
// Add flag property for compatibility
|
|
190
|
+
get flag() {
|
|
191
|
+
return 0;
|
|
192
|
+
}
|
|
193
|
+
// Add Convert method
|
|
194
|
+
Convert(t) {
|
|
195
|
+
// Simple conversion - just wrap the value with new type
|
|
196
|
+
return new Value(this._value, t);
|
|
197
|
+
}
|
|
198
|
+
// Additional methods needed by deepequal
|
|
199
|
+
IsValid() {
|
|
200
|
+
return this._value !== null && this._value !== undefined;
|
|
201
|
+
}
|
|
202
|
+
IsNil() {
|
|
203
|
+
return this._value === null || this._value === undefined;
|
|
204
|
+
}
|
|
205
|
+
UnsafePointer() {
|
|
206
|
+
return this._value;
|
|
207
|
+
}
|
|
208
|
+
Index(i) {
|
|
209
|
+
if (globalThis.Array.isArray(this._value)) {
|
|
210
|
+
return new Value(this._value[i], getTypeOf(this._value[i]));
|
|
211
|
+
}
|
|
212
|
+
throw new Error("reflect: call of reflect.Value.Index on " + this._type.Kind().String() + " Value");
|
|
213
|
+
}
|
|
214
|
+
Bytes() {
|
|
215
|
+
if (this._value instanceof Uint8Array) {
|
|
216
|
+
return this._value;
|
|
217
|
+
}
|
|
218
|
+
throw new Error("reflect: call of reflect.Value.Bytes on " + this._type.Kind().String() + " Value");
|
|
219
|
+
}
|
|
220
|
+
Elem() {
|
|
221
|
+
// For pointers and interfaces, return the element
|
|
222
|
+
return new Value(this._value, this._type);
|
|
223
|
+
}
|
|
224
|
+
NumField() {
|
|
225
|
+
// Placeholder for struct field count
|
|
226
|
+
return 0;
|
|
227
|
+
}
|
|
228
|
+
Field(i) {
|
|
229
|
+
// Placeholder for struct field access
|
|
230
|
+
return new Value(null, new BasicType(Invalid, "invalid"));
|
|
231
|
+
}
|
|
232
|
+
MapRange() {
|
|
233
|
+
// Placeholder for map iteration
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
MapIndex(key) {
|
|
237
|
+
// Placeholder for map access
|
|
238
|
+
return new Value(null, new BasicType(Invalid, "invalid"));
|
|
239
|
+
}
|
|
240
|
+
Uint() {
|
|
241
|
+
if (typeof this._value === 'number' && this._value >= 0) {
|
|
242
|
+
return this._value;
|
|
243
|
+
}
|
|
244
|
+
throw new Error("reflect: call of reflect.Value.Uint on " + this._type.Kind().String() + " Value");
|
|
245
|
+
}
|
|
246
|
+
Bool() {
|
|
247
|
+
if (typeof this._value === 'boolean') {
|
|
248
|
+
return this._value;
|
|
249
|
+
}
|
|
250
|
+
throw new Error("reflect: call of reflect.Value.Bool on " + this._type.Kind().String() + " Value");
|
|
251
|
+
}
|
|
252
|
+
Float() {
|
|
253
|
+
if (typeof this._value === 'number') {
|
|
254
|
+
return this._value;
|
|
255
|
+
}
|
|
256
|
+
throw new Error("reflect: call of reflect.Value.Float on " + this._type.Kind().String() + " Value");
|
|
257
|
+
}
|
|
258
|
+
Complex() {
|
|
259
|
+
// Placeholder for complex number support
|
|
260
|
+
return this._value;
|
|
261
|
+
}
|
|
262
|
+
pointer() {
|
|
263
|
+
return this._value;
|
|
264
|
+
}
|
|
265
|
+
get ptr() {
|
|
266
|
+
return this._value;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
export class BasicType {
|
|
270
|
+
_kind;
|
|
271
|
+
_name;
|
|
272
|
+
constructor(_kind, _name) {
|
|
273
|
+
this._kind = _kind;
|
|
274
|
+
this._name = _name;
|
|
275
|
+
}
|
|
276
|
+
String() {
|
|
277
|
+
return this._name;
|
|
278
|
+
}
|
|
279
|
+
Kind() {
|
|
280
|
+
return this._kind;
|
|
281
|
+
}
|
|
282
|
+
Elem() {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
NumField() {
|
|
286
|
+
return 0;
|
|
287
|
+
}
|
|
288
|
+
Field(i) {
|
|
289
|
+
return new StructField();
|
|
290
|
+
}
|
|
291
|
+
PkgPath() {
|
|
292
|
+
return "";
|
|
293
|
+
}
|
|
294
|
+
common() {
|
|
295
|
+
return new rtype(this._kind);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
class SliceType {
|
|
299
|
+
_elemType;
|
|
300
|
+
constructor(_elemType) {
|
|
301
|
+
this._elemType = _elemType;
|
|
302
|
+
}
|
|
303
|
+
String() {
|
|
304
|
+
return "[]" + this._elemType.String();
|
|
305
|
+
}
|
|
306
|
+
Kind() {
|
|
307
|
+
return Slice;
|
|
308
|
+
}
|
|
309
|
+
Elem() {
|
|
310
|
+
return this._elemType;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
function getTypeOf(value) {
|
|
314
|
+
if (value === null || value === undefined) {
|
|
315
|
+
return new BasicType(Invalid, "invalid");
|
|
316
|
+
}
|
|
317
|
+
switch (typeof value) {
|
|
318
|
+
case 'boolean':
|
|
319
|
+
return new BasicType(Bool, "bool");
|
|
320
|
+
case 'number':
|
|
321
|
+
if (Number.isInteger(value)) {
|
|
322
|
+
return new BasicType(Int, "int");
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
return new BasicType(Float64, "float64");
|
|
326
|
+
}
|
|
327
|
+
case 'string':
|
|
328
|
+
return new BasicType(String, "string");
|
|
329
|
+
case 'object':
|
|
330
|
+
if (globalThis.Array.isArray(value)) {
|
|
331
|
+
if (value.length > 0) {
|
|
332
|
+
const elemType = getTypeOf(value[0]);
|
|
333
|
+
return new SliceType(elemType);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Empty array, assume []interface{}
|
|
337
|
+
return new SliceType(new BasicType(Interface, "interface{}"));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
return new BasicType(Interface, "interface{}");
|
|
343
|
+
}
|
|
344
|
+
export function TypeOf(i) {
|
|
345
|
+
return getTypeOf(i);
|
|
346
|
+
}
|
|
347
|
+
export function ValueOf(i) {
|
|
348
|
+
const type = getTypeOf(i);
|
|
349
|
+
return new Value(i, type);
|
|
350
|
+
}
|
|
351
|
+
export function DeepEqual(x, y) {
|
|
352
|
+
if (x === y) {
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
if (x === null || y === null || x === undefined || y === undefined) {
|
|
356
|
+
return x === y;
|
|
357
|
+
}
|
|
358
|
+
if (typeof x !== typeof y) {
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
if (globalThis.Array.isArray(x) && globalThis.Array.isArray(y)) {
|
|
362
|
+
if (x.length !== y.length) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
for (let i = 0; i < x.length; i++) {
|
|
366
|
+
if (!DeepEqual(x[i], y[i])) {
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return true;
|
|
371
|
+
}
|
|
372
|
+
if (typeof x === 'object' && typeof y === 'object') {
|
|
373
|
+
const keysX = Object.keys(x);
|
|
374
|
+
const keysY = Object.keys(y);
|
|
375
|
+
if (keysX.length !== keysY.length) {
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
378
|
+
for (const key of keysX) {
|
|
379
|
+
if (!keysY.includes(key) || !DeepEqual(x[key], y[key])) {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return true;
|
|
384
|
+
}
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
export function Zero(typ) {
|
|
388
|
+
let zeroValue;
|
|
389
|
+
switch (typ.Kind().valueOf()) {
|
|
390
|
+
case Bool.valueOf():
|
|
391
|
+
zeroValue = false;
|
|
392
|
+
break;
|
|
393
|
+
case Int.valueOf():
|
|
394
|
+
case Int8.valueOf():
|
|
395
|
+
case Int16.valueOf():
|
|
396
|
+
case Int32.valueOf():
|
|
397
|
+
case Int64.valueOf():
|
|
398
|
+
case Uint.valueOf():
|
|
399
|
+
case Uint8.valueOf():
|
|
400
|
+
case Uint16.valueOf():
|
|
401
|
+
case Uint32.valueOf():
|
|
402
|
+
case Uint64.valueOf():
|
|
403
|
+
case Uintptr.valueOf():
|
|
404
|
+
case Float32.valueOf():
|
|
405
|
+
case Float64.valueOf():
|
|
406
|
+
zeroValue = 0;
|
|
407
|
+
break;
|
|
408
|
+
case String.valueOf():
|
|
409
|
+
zeroValue = "";
|
|
410
|
+
break;
|
|
411
|
+
case Slice.valueOf():
|
|
412
|
+
case Array.valueOf():
|
|
413
|
+
zeroValue = [];
|
|
414
|
+
break;
|
|
415
|
+
default:
|
|
416
|
+
zeroValue = null;
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
return new Value(zeroValue, typ);
|
|
420
|
+
}
|
|
421
|
+
// uintptr class for pointer operations
|
|
422
|
+
export class UintptrClass {
|
|
423
|
+
value;
|
|
424
|
+
constructor(value) {
|
|
425
|
+
this.value = value;
|
|
426
|
+
}
|
|
427
|
+
static from(ptr) {
|
|
428
|
+
return new UintptrClass(0);
|
|
429
|
+
}
|
|
430
|
+
// Make it callable like a function
|
|
431
|
+
static call(ptr) {
|
|
432
|
+
return new UintptrClass(0);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
// Make uintptr callable
|
|
436
|
+
export const uintptr = (ptr) => new UintptrClass(0);
|
|
437
|
+
//# sourceMappingURL=reflect.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect.gs.js","sourceRoot":"","sources":["../../../gs/reflect/reflect.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Swapper(slice: any): (i: number, j: number) => void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { ValueOf } from "./type.js";
|
|
3
|
+
import { ValueError } from "./types.js";
|
|
4
|
+
// Simple swapper implementation using JavaScript array operations
|
|
5
|
+
export function Swapper(slice) {
|
|
6
|
+
const v = ValueOf(slice);
|
|
7
|
+
if (v.Kind().valueOf() !== 23) { // Not a slice
|
|
8
|
+
$.panic(new ValueError({ Kind: v.Kind(), Method: "Swapper" }));
|
|
9
|
+
}
|
|
10
|
+
// For JavaScript arrays, we can use simple element swapping
|
|
11
|
+
if (Array.isArray(slice)) {
|
|
12
|
+
return (i, j) => {
|
|
13
|
+
if (i >= 0 && j >= 0 && i < slice.length && j < slice.length) {
|
|
14
|
+
const temp = slice[i];
|
|
15
|
+
slice[i] = slice[j];
|
|
16
|
+
slice[j] = temp;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
// For other slice-like objects, try to access via indexing
|
|
21
|
+
return (i, j) => {
|
|
22
|
+
try {
|
|
23
|
+
const temp = slice[i];
|
|
24
|
+
slice[i] = slice[j];
|
|
25
|
+
slice[j] = temp;
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
// Ignore errors for now
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=swapper.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapper.gs.js","sourceRoot":"","sources":["../../../gs/reflect/swapper.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAC,KAAU;IACjC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc;QAC9C,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC/B,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,wBAAwB;QACzB,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Swapper returns a function that swaps the elements in the provided slice.
|
|
2
|
+
// Swapper panics if the provided interface is not a slice.
|
|
3
|
+
export function Swapper(slice) {
|
|
4
|
+
let actualArray = null;
|
|
5
|
+
// Try to extract the underlying array
|
|
6
|
+
if (Array.isArray(slice)) {
|
|
7
|
+
actualArray = slice;
|
|
8
|
+
}
|
|
9
|
+
else if (slice && typeof slice === 'object' && '__meta__' in slice) {
|
|
10
|
+
// GoScript slice object
|
|
11
|
+
const meta = slice.__meta__;
|
|
12
|
+
if (meta && meta.backing && Array.isArray(meta.backing)) {
|
|
13
|
+
actualArray = meta.backing;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (!actualArray) {
|
|
17
|
+
// Return a no-op function if we can't extract an array
|
|
18
|
+
return () => { };
|
|
19
|
+
}
|
|
20
|
+
// Fast path for slices of size 0 and 1. Nothing to swap.
|
|
21
|
+
switch (actualArray.length) {
|
|
22
|
+
case 0:
|
|
23
|
+
return (_i, _j) => {
|
|
24
|
+
throw new Error('reflect: slice index out of range');
|
|
25
|
+
};
|
|
26
|
+
case 1:
|
|
27
|
+
return (i, j) => {
|
|
28
|
+
if (i !== 0 || j !== 0) {
|
|
29
|
+
throw new Error('reflect: slice index out of range');
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// Return the swapper function
|
|
34
|
+
return (i, j) => {
|
|
35
|
+
if (actualArray &&
|
|
36
|
+
i >= 0 &&
|
|
37
|
+
j >= 0 &&
|
|
38
|
+
i < actualArray.length &&
|
|
39
|
+
j < actualArray.length) {
|
|
40
|
+
const temp = actualArray[i];
|
|
41
|
+
actualArray[i] = actualArray[j];
|
|
42
|
+
actualArray[j] = temp;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=swapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapper.js","sourceRoot":"","sources":["../../../gs/reflect/swapper.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,IAAI,WAAW,GAAqB,IAAI,CAAA;IAExC,sCAAsC;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,WAAW,GAAG,KAAK,CAAA;IACrB,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACrE,wBAAwB;QACxB,MAAM,IAAI,GAAI,KAAgD,CAAC,QAAQ,CAAA;QACvE,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,uDAAuD;QACvD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IAED,yDAAyD;IACzD,QAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC;YACJ,OAAO,CAAC,EAAU,EAAE,EAAU,EAAQ,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YACtD,CAAC,CAAA;QACH,KAAK,CAAC;YACJ,OAAO,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;gBACtD,CAAC;YACH,CAAC,CAAA;IACL,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC9B,IACE,WAAW;YACX,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,CAAC;YACN,CAAC,GAAG,WAAW,CAAC,MAAM;YACtB,CAAC,GAAG,WAAW,CAAC,MAAM,EACtB,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC/B,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|