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,72 @@
|
|
|
1
|
+
// ifaceIndir reports whether t is stored indirectly in an interface value.
|
|
2
|
+
// It is no longer used by this package and is here entirely for the
|
|
3
|
+
// linkname uses.
|
|
4
|
+
//
|
|
5
|
+
//go:linkname unusedIfaceIndir reflect.ifaceIndir
|
|
6
|
+
export function unusedIfaceIndir(t) {
|
|
7
|
+
// return (t.Kind_ & abi.KindDirectIface) == 0
|
|
8
|
+
return false; // placeholder
|
|
9
|
+
}
|
|
10
|
+
//go:linkname badlinkname_rtype_Align reflect.(*rtype).Align
|
|
11
|
+
export function badlinkname_rtype_Align() { return 0; }
|
|
12
|
+
//go:linkname badlinkname_rtype_AssignableTo reflect.(*rtype).AssignableTo
|
|
13
|
+
export function badlinkname_rtype_AssignableTo(u) { return false; }
|
|
14
|
+
//go:linkname badlinkname_rtype_Bits reflect.(*rtype).Bits
|
|
15
|
+
export function badlinkname_rtype_Bits() { return 0; }
|
|
16
|
+
//go:linkname badlinkname_rtype_ChanDir reflect.(*rtype).ChanDir
|
|
17
|
+
export function badlinkname_rtype_ChanDir() { return { valueOf: () => 0 }; }
|
|
18
|
+
//go:linkname badlinkname_rtype_Comparable reflect.(*rtype).Comparable
|
|
19
|
+
export function badlinkname_rtype_Comparable() { return false; }
|
|
20
|
+
//go:linkname badlinkname_rtype_ConvertibleTo reflect.(*rtype).ConvertibleTo
|
|
21
|
+
export function badlinkname_rtype_ConvertibleTo(u) { return false; }
|
|
22
|
+
//go:linkname badlinkname_rtype_Elem reflect.(*rtype).Elem
|
|
23
|
+
export function badlinkname_rtype_Elem() { throw new Error("not implemented"); }
|
|
24
|
+
//go:linkname badlinkname_rtype_Field reflect.(*rtype).Field
|
|
25
|
+
export function badlinkname_rtype_Field(i) { throw new Error("not implemented"); }
|
|
26
|
+
//go:linkname badlinkname_rtype_FieldAlign reflect.(*rtype).FieldAlign
|
|
27
|
+
export function badlinkname_rtype_FieldAlign() { return 0; }
|
|
28
|
+
//go:linkname badlinkname_rtype_FieldByIndex reflect.(*rtype).FieldByIndex
|
|
29
|
+
export function badlinkname_rtype_FieldByIndex(index) { throw new Error("not implemented"); }
|
|
30
|
+
//go:linkname badlinkname_rtype_FieldByName reflect.(*rtype).FieldByName
|
|
31
|
+
export function badlinkname_rtype_FieldByName(name) { throw new Error("not implemented"); }
|
|
32
|
+
//go:linkname badlinkname_rtype_FieldByNameFunc reflect.(*rtype).FieldByNameFunc
|
|
33
|
+
export function badlinkname_rtype_FieldByNameFunc(match) { throw new Error("not implemented"); }
|
|
34
|
+
//go:linkname badlinkname_rtype_Implements reflect.(*rtype).Implements
|
|
35
|
+
export function badlinkname_rtype_Implements(u) { return false; }
|
|
36
|
+
//go:linkname badlinkname_rtype_In reflect.(*rtype).In
|
|
37
|
+
export function badlinkname_rtype_In(i) { throw new Error("not implemented"); }
|
|
38
|
+
//go:linkname badlinkname_rtype_IsVariadic reflect.(*rtype).IsVariadic
|
|
39
|
+
export function badlinkname_rtype_IsVariadic() { return false; }
|
|
40
|
+
//go:linkname badlinkname_rtype_Key reflect.(*rtype).Key
|
|
41
|
+
export function badlinkname_rtype_Key() { throw new Error("not implemented"); }
|
|
42
|
+
//go:linkname badlinkname_rtype_Kind reflect.(*rtype).Kind
|
|
43
|
+
export function badlinkname_rtype_Kind() { throw new Error("not implemented"); }
|
|
44
|
+
//go:linkname badlinkname_rtype_Len reflect.(*rtype).Len
|
|
45
|
+
export function badlinkname_rtype_Len() { return 0; }
|
|
46
|
+
//go:linkname badlinkname_rtype_Method reflect.(*rtype).Method
|
|
47
|
+
export function badlinkname_rtype_Method(i) { throw new Error("not implemented"); }
|
|
48
|
+
//go:linkname badlinkname_rtype_MethodByName reflect.(*rtype).MethodByName
|
|
49
|
+
export function badlinkname_rtype_MethodByName(name) { throw new Error("not implemented"); }
|
|
50
|
+
//go:linkname badlinkname_rtype_Name reflect.(*rtype).Name
|
|
51
|
+
export function badlinkname_rtype_Name() { return ""; }
|
|
52
|
+
//go:linkname badlinkname_rtype_NumField reflect.(*rtype).NumField
|
|
53
|
+
export function badlinkname_rtype_NumField() { return 0; }
|
|
54
|
+
//go:linkname badlinkname_rtype_NumIn reflect.(*rtype).NumIn
|
|
55
|
+
export function badlinkname_rtype_NumIn() { return 0; }
|
|
56
|
+
//go:linkname badlinkname_rtype_NumMethod reflect.(*rtype).NumMethod
|
|
57
|
+
export function badlinkname_rtype_NumMethod() { return 0; }
|
|
58
|
+
//go:linkname badlinkname_rtype_NumOut reflect.(*rtype).NumOut
|
|
59
|
+
export function badlinkname_rtype_NumOut() { return 0; }
|
|
60
|
+
//go:linkname badlinkname_rtype_Out reflect.(*rtype).Out
|
|
61
|
+
export function badlinkname_rtype_Out(i) { throw new Error("not implemented"); }
|
|
62
|
+
//go:linkname badlinkname_rtype_PkgPath reflect.(*rtype).PkgPath
|
|
63
|
+
export function badlinkname_rtype_PkgPath() { return ""; }
|
|
64
|
+
//go:linkname badlinkname_rtype_Size reflect.(*rtype).Size
|
|
65
|
+
export function badlinkname_rtype_Size() { return 0; }
|
|
66
|
+
//go:linkname badlinkname_rtype_String reflect.(*rtype).String
|
|
67
|
+
export function badlinkname_rtype_String() { return ""; }
|
|
68
|
+
//go:linkname badlinkname_rtype_ptrTo reflect.(*rtype).ptrTo
|
|
69
|
+
export function badlinkname_rtype_ptrTo() { return null; }
|
|
70
|
+
//go:linkname badlinkname_Value_pointer reflect.(*Value).pointer
|
|
71
|
+
export function badlinkname_Value_pointer() { return {}; }
|
|
72
|
+
//# sourceMappingURL=badlinkname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badlinkname.js","sourceRoot":"","sources":["../../../gs/reflect/badlinkname.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DeepEqual(x: null | any, y: null | any): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { Type, Value, Pointer } from "./reflect.gs.js";
|
|
3
|
+
declare class visit {
|
|
4
|
+
get a1(): Pointer;
|
|
5
|
+
set a1(value: Pointer);
|
|
6
|
+
get a2(): Pointer;
|
|
7
|
+
set a2(value: Pointer);
|
|
8
|
+
get typ(): Type;
|
|
9
|
+
set typ(value: Type);
|
|
10
|
+
_fields: {
|
|
11
|
+
a1: $.VarRef<Pointer>;
|
|
12
|
+
a2: $.VarRef<Pointer>;
|
|
13
|
+
typ: $.VarRef<Type>;
|
|
14
|
+
};
|
|
15
|
+
constructor(init?: Partial<{
|
|
16
|
+
a1?: Pointer;
|
|
17
|
+
a2?: Pointer;
|
|
18
|
+
typ?: Type;
|
|
19
|
+
}>);
|
|
20
|
+
clone(): visit;
|
|
21
|
+
static __typeInfo: $.StructTypeInfo;
|
|
22
|
+
}
|
|
23
|
+
export declare function deepValueEqual(v1: Value, v2: Value, visited: Map<visit, boolean>): boolean;
|
|
24
|
+
export declare function DeepEqual(x: null | any, y: null | any): boolean;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { ValueOf, valueInterface } from "./value.gs.js";
|
|
3
|
+
import { BasicType, Invalid } from "./reflect.gs.js";
|
|
4
|
+
import * as bytealg from "@goscript/internal/bytealg/index.js";
|
|
5
|
+
class visit {
|
|
6
|
+
get a1() {
|
|
7
|
+
return this._fields.a1.value;
|
|
8
|
+
}
|
|
9
|
+
set a1(value) {
|
|
10
|
+
this._fields.a1.value = value;
|
|
11
|
+
}
|
|
12
|
+
get a2() {
|
|
13
|
+
return this._fields.a2.value;
|
|
14
|
+
}
|
|
15
|
+
set a2(value) {
|
|
16
|
+
this._fields.a2.value = value;
|
|
17
|
+
}
|
|
18
|
+
get typ() {
|
|
19
|
+
return this._fields.typ.value;
|
|
20
|
+
}
|
|
21
|
+
set typ(value) {
|
|
22
|
+
this._fields.typ.value = value;
|
|
23
|
+
}
|
|
24
|
+
_fields;
|
|
25
|
+
constructor(init) {
|
|
26
|
+
this._fields = {
|
|
27
|
+
a1: $.varRef(init?.a1 ?? 0),
|
|
28
|
+
a2: $.varRef(init?.a2 ?? 0),
|
|
29
|
+
typ: $.varRef(init?.typ ?? new BasicType(Invalid, "invalid"))
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
clone() {
|
|
33
|
+
const cloned = new visit();
|
|
34
|
+
cloned._fields = {
|
|
35
|
+
a1: $.varRef(this._fields.a1.value),
|
|
36
|
+
a2: $.varRef(this._fields.a2.value),
|
|
37
|
+
typ: $.varRef(this._fields.typ.value)
|
|
38
|
+
};
|
|
39
|
+
return cloned;
|
|
40
|
+
}
|
|
41
|
+
// Register this type with the runtime type system
|
|
42
|
+
static __typeInfo = $.registerStructType('visit', new visit(), [], visit, { "a1": { kind: $.TypeKind.Basic, name: "Pointer" }, "a2": { kind: $.TypeKind.Basic, name: "Pointer" }, "typ": "Type" });
|
|
43
|
+
}
|
|
44
|
+
// Tests for deep equality using reflected types. The map argument tracks
|
|
45
|
+
// comparisons that have already been seen, which allows short circuiting on
|
|
46
|
+
// recursive types.
|
|
47
|
+
export function deepValueEqual(v1, v2, visited) {
|
|
48
|
+
if (!v1.IsValid() || !v2.IsValid()) {
|
|
49
|
+
return v1.IsValid() == v2.IsValid();
|
|
50
|
+
}
|
|
51
|
+
if (v1.Type() != v2.Type()) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
// We want to avoid putting more in the visited map than we need to.
|
|
55
|
+
// For any possible reference cycle that might be encountered,
|
|
56
|
+
// hard(v1, v2) needs to return true for at least one of the types in the cycle,
|
|
57
|
+
// and it's safe and valid to get Value's internal pointer.
|
|
58
|
+
// not-in-heap pointers can't be cyclic.
|
|
59
|
+
// At least, all of our current uses of internal/runtime/sys.NotInHeap
|
|
60
|
+
// have that property. The runtime ones aren't cyclic (and we don't use
|
|
61
|
+
// DeepEqual on them anyway), and the cgo-generated ones are
|
|
62
|
+
// all empty structs.
|
|
63
|
+
// Nil pointers cannot be cyclic. Avoid putting them in the visited map.
|
|
64
|
+
let hard = (v1, v2) => {
|
|
65
|
+
// not-in-heap pointers can't be cyclic.
|
|
66
|
+
// At least, all of our current uses of internal/runtime/sys.NotInHeap
|
|
67
|
+
// have that property. The runtime ones aren't cyclic (and we don't use
|
|
68
|
+
// DeepEqual on them anyway), and the cgo-generated ones are
|
|
69
|
+
// all empty structs.
|
|
70
|
+
// Nil pointers cannot be cyclic. Avoid putting them in the visited map.
|
|
71
|
+
switch (v1.Kind().valueOf()) {
|
|
72
|
+
case 22:
|
|
73
|
+
if (!v1.typ().Pointers()) {
|
|
74
|
+
// not-in-heap pointers can't be cyclic.
|
|
75
|
+
// At least, all of our current uses of internal/runtime/sys.NotInHeap
|
|
76
|
+
// have that property. The runtime ones aren't cyclic (and we don't use
|
|
77
|
+
// DeepEqual on them anyway), and the cgo-generated ones are
|
|
78
|
+
// all empty structs.
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
// fallthrough // fallthrough statement skipped
|
|
82
|
+
break;
|
|
83
|
+
case 21:
|
|
84
|
+
case 23:
|
|
85
|
+
case 20:
|
|
86
|
+
return !v1.IsNil() && !v2.IsNil();
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
};
|
|
91
|
+
// For a Pointer or Map value, we need to check flagIndir,
|
|
92
|
+
// which we do by calling the pointer method.
|
|
93
|
+
// For Slice or Interface, flagIndir is always set,
|
|
94
|
+
// and using v.ptr suffices.
|
|
95
|
+
// Canonicalize order to reduce number of entries in visited.
|
|
96
|
+
// Assumes non-moving garbage collector.
|
|
97
|
+
// Short circuit if references are already seen.
|
|
98
|
+
// Remember for later.
|
|
99
|
+
if (hard(v1, v2)) {
|
|
100
|
+
// For a Pointer or Map value, we need to check flagIndir,
|
|
101
|
+
// which we do by calling the pointer method.
|
|
102
|
+
// For Slice or Interface, flagIndir is always set,
|
|
103
|
+
// and using v.ptr suffices.
|
|
104
|
+
let ptrval = (v) => {
|
|
105
|
+
switch (v.Kind().valueOf()) {
|
|
106
|
+
case 22:
|
|
107
|
+
case 21:
|
|
108
|
+
return v.pointer();
|
|
109
|
+
break;
|
|
110
|
+
default:
|
|
111
|
+
return v.ptr;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
let addr1 = ptrval(v1);
|
|
116
|
+
let addr2 = ptrval(v2);
|
|
117
|
+
// Canonicalize order to reduce number of entries in visited.
|
|
118
|
+
// Assumes non-moving garbage collector.
|
|
119
|
+
if (addr1 > addr2) {
|
|
120
|
+
// Canonicalize order to reduce number of entries in visited.
|
|
121
|
+
// Assumes non-moving garbage collector.
|
|
122
|
+
[addr1, addr2] = [addr2, addr1];
|
|
123
|
+
}
|
|
124
|
+
// Short circuit if references are already seen.
|
|
125
|
+
let typ = v1.Type();
|
|
126
|
+
let v = new visit({});
|
|
127
|
+
if ($.mapGet(visited, v, false)[0]) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
// Remember for later.
|
|
131
|
+
$.mapSet(visited, v, true);
|
|
132
|
+
}
|
|
133
|
+
// Special case for []byte, which is common.
|
|
134
|
+
// Can't do better than this:
|
|
135
|
+
// Normal equality suffices
|
|
136
|
+
switch (v1.Kind().valueOf()) {
|
|
137
|
+
case 17:
|
|
138
|
+
for (let i = 0; i < v1.Len(); i++) {
|
|
139
|
+
if (!deepValueEqual(v1.Index(i), v2.Index(i), visited)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return true;
|
|
144
|
+
break;
|
|
145
|
+
case 23:
|
|
146
|
+
if (v1.IsNil() != v2.IsNil()) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
if (v1.Len() != v2.Len()) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
if (v1.UnsafePointer() == v2.UnsafePointer()) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
const elemType = v1.Type().Elem;
|
|
156
|
+
if (elemType && elemType()?.Kind().valueOf() == 8) {
|
|
157
|
+
return bytealg.Equal(v1.Bytes(), v2.Bytes());
|
|
158
|
+
}
|
|
159
|
+
for (let i = 0; i < v1.Len(); i++) {
|
|
160
|
+
if (!deepValueEqual(v1.Index(i), v2.Index(i), visited)) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return true;
|
|
165
|
+
break;
|
|
166
|
+
case 20:
|
|
167
|
+
if (v1.IsNil() || v2.IsNil()) {
|
|
168
|
+
return v1.IsNil() == v2.IsNil();
|
|
169
|
+
}
|
|
170
|
+
return deepValueEqual(v1.Elem(), v2.Elem(), visited);
|
|
171
|
+
break;
|
|
172
|
+
case 22:
|
|
173
|
+
if (v1.UnsafePointer() == v2.UnsafePointer()) {
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
return deepValueEqual(v1.Elem(), v2.Elem(), visited);
|
|
177
|
+
break;
|
|
178
|
+
case 25:
|
|
179
|
+
for (let i = 0, n = v1.NumField(); i < n; i++) {
|
|
180
|
+
if (!deepValueEqual(v1.Field(i), v2.Field(i), visited)) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return true;
|
|
185
|
+
break;
|
|
186
|
+
case 21:
|
|
187
|
+
if (v1.IsNil() != v2.IsNil()) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
if (v1.Len() != v2.Len()) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
if (v1.UnsafePointer() == v2.UnsafePointer()) {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
let iter = v1.MapRange();
|
|
197
|
+
for (; iter.Next();) {
|
|
198
|
+
let val1 = iter.Value().clone();
|
|
199
|
+
let val2 = v2.MapIndex(iter.Key()).clone();
|
|
200
|
+
if (!val1.IsValid() || !val2.IsValid() || !deepValueEqual(val1, val2, visited)) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
break;
|
|
206
|
+
case 19:
|
|
207
|
+
if (v1.IsNil() && v2.IsNil()) {
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
return false;
|
|
211
|
+
break;
|
|
212
|
+
case 2:
|
|
213
|
+
case 3:
|
|
214
|
+
case 4:
|
|
215
|
+
case 5:
|
|
216
|
+
case 6:
|
|
217
|
+
return v1.Int() == v2.Int();
|
|
218
|
+
break;
|
|
219
|
+
case 7:
|
|
220
|
+
case 8:
|
|
221
|
+
case 9:
|
|
222
|
+
case 10:
|
|
223
|
+
case 11:
|
|
224
|
+
case 12:
|
|
225
|
+
return v1.Uint() == v2.Uint();
|
|
226
|
+
break;
|
|
227
|
+
case 24:
|
|
228
|
+
return v1.String() == v2.String();
|
|
229
|
+
break;
|
|
230
|
+
case 1:
|
|
231
|
+
return v1.Bool() == v2.Bool();
|
|
232
|
+
break;
|
|
233
|
+
case 13:
|
|
234
|
+
case 14:
|
|
235
|
+
return v1.Float() == v2.Float();
|
|
236
|
+
break;
|
|
237
|
+
case 15:
|
|
238
|
+
case 16:
|
|
239
|
+
return v1.Complex() == v2.Complex();
|
|
240
|
+
break;
|
|
241
|
+
default:
|
|
242
|
+
return valueInterface(v1, false) == valueInterface(v2, false);
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// DeepEqual reports whether x and y are "deeply equal," defined as follows.
|
|
247
|
+
// Two values of identical type are deeply equal if one of the following cases applies.
|
|
248
|
+
// Values of distinct types are never deeply equal.
|
|
249
|
+
//
|
|
250
|
+
// Array values are deeply equal when their corresponding elements are deeply equal.
|
|
251
|
+
//
|
|
252
|
+
// Struct values are deeply equal if their corresponding fields,
|
|
253
|
+
// both exported and unexported, are deeply equal.
|
|
254
|
+
//
|
|
255
|
+
// Func values are deeply equal if both are nil; otherwise they are not deeply equal.
|
|
256
|
+
//
|
|
257
|
+
// Interface values are deeply equal if they hold deeply equal concrete values.
|
|
258
|
+
//
|
|
259
|
+
// Map values are deeply equal when all of the following are true:
|
|
260
|
+
// they are both nil or both non-nil, they have the same length,
|
|
261
|
+
// and either they are the same map object or their corresponding keys
|
|
262
|
+
// (matched using Go equality) map to deeply equal values.
|
|
263
|
+
//
|
|
264
|
+
// Pointer values are deeply equal if they are equal using Go's == operator
|
|
265
|
+
// or if they point to deeply equal values.
|
|
266
|
+
//
|
|
267
|
+
// Slice values are deeply equal when all of the following are true:
|
|
268
|
+
// they are both nil or both non-nil, they have the same length,
|
|
269
|
+
// and either they point to the same initial entry of the same underlying array
|
|
270
|
+
// (that is, &x[0] == &y[0]) or their corresponding elements (up to length) are deeply equal.
|
|
271
|
+
// Note that a non-nil empty slice and a nil slice (for example, []byte{} and []byte(nil))
|
|
272
|
+
// are not deeply equal.
|
|
273
|
+
//
|
|
274
|
+
// Other values - numbers, bools, strings, and channels - are deeply equal
|
|
275
|
+
// if they are equal using Go's == operator.
|
|
276
|
+
//
|
|
277
|
+
// In general DeepEqual is a recursive relaxation of Go's == operator.
|
|
278
|
+
// However, this idea is impossible to implement without some inconsistency.
|
|
279
|
+
// Specifically, it is possible for a value to be unequal to itself,
|
|
280
|
+
// either because it is of func type (uncomparable in general)
|
|
281
|
+
// or because it is a floating-point NaN value (not equal to itself in floating-point comparison),
|
|
282
|
+
// or because it is an array, struct, or interface containing
|
|
283
|
+
// such a value.
|
|
284
|
+
// On the other hand, pointer values are always equal to themselves,
|
|
285
|
+
// even if they point at or contain such problematic values,
|
|
286
|
+
// because they compare equal using Go's == operator, and that
|
|
287
|
+
// is a sufficient condition to be deeply equal, regardless of content.
|
|
288
|
+
// DeepEqual has been defined so that the same short-cut applies
|
|
289
|
+
// to slices and maps: if x and y are the same slice or the same map,
|
|
290
|
+
// they are deeply equal regardless of content.
|
|
291
|
+
//
|
|
292
|
+
// As DeepEqual traverses the data values it may find a cycle. The
|
|
293
|
+
// second and subsequent times that DeepEqual compares two pointer
|
|
294
|
+
// values that have been compared before, it treats the values as
|
|
295
|
+
// equal rather than examining the values to which they point.
|
|
296
|
+
// This ensures that DeepEqual terminates.
|
|
297
|
+
export function DeepEqual(x, y) {
|
|
298
|
+
if (x == null || y == null) {
|
|
299
|
+
return x == y;
|
|
300
|
+
}
|
|
301
|
+
let v1 = ValueOf(x).clone();
|
|
302
|
+
let v2 = ValueOf(y).clone();
|
|
303
|
+
if (v1.Type() != v2.Type()) {
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
return deepValueEqual(v1, v2, $.makeMap());
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=deepequal.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepequal.gs.js","sourceRoot":"","sources":["../../../gs/reflect/deepequal.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// DeepEqual reports whether x and y are "deeply equal," defined as follows.
|
|
2
|
+
// Two values of identical type are deeply equal if one of the following cases applies.
|
|
3
|
+
// Values of distinct types are never deeply equal.
|
|
4
|
+
//
|
|
5
|
+
// Array values are deeply equal when their corresponding elements are deeply equal.
|
|
6
|
+
//
|
|
7
|
+
// Struct values are deeply equal if their corresponding fields,
|
|
8
|
+
// both exported and unexported, are deeply equal.
|
|
9
|
+
//
|
|
10
|
+
// Func values are deeply equal if both are nil; otherwise they are not deeply equal.
|
|
11
|
+
//
|
|
12
|
+
// Interface values are deeply equal if they hold deeply equal concrete values.
|
|
13
|
+
//
|
|
14
|
+
// Map values are deeply equal when all of the following are true:
|
|
15
|
+
// they are both nil or both non-nil, they have the same length,
|
|
16
|
+
// and either they are the same map object or their corresponding keys
|
|
17
|
+
// (matched using Go equality) map to deeply equal values.
|
|
18
|
+
//
|
|
19
|
+
// Pointer values are deeply equal if they are equal using Go's == operator
|
|
20
|
+
// or if they point to deeply equal values.
|
|
21
|
+
//
|
|
22
|
+
// Slice values are deeply equal when all of the following are true:
|
|
23
|
+
// they are both nil or both non-nil, they have the same length,
|
|
24
|
+
// and either they point to the same initial entry of the same underlying array
|
|
25
|
+
// (that is, &x[0] == &y[0]) or their corresponding elements (up to length) are deeply equal.
|
|
26
|
+
// Note that a non-nil empty slice and a nil slice (for example, []byte{} and []byte(nil))
|
|
27
|
+
// are not deeply equal.
|
|
28
|
+
//
|
|
29
|
+
// Other values - numbers, bools, strings, and channels - are deeply equal
|
|
30
|
+
// if they are equal using Go's == operator.
|
|
31
|
+
//
|
|
32
|
+
// In general DeepEqual is a recursive relaxation of Go's == operator.
|
|
33
|
+
// However, this idea is impossible to implement without some inconsistency.
|
|
34
|
+
// Specifically, it is possible for a value to be unequal to itself,
|
|
35
|
+
// either because it is of func type (uncomparable in general)
|
|
36
|
+
// or because it is a floating-point NaN value (not equal to itself in floating-point comparison),
|
|
37
|
+
// or because it is an array, struct, or interface containing
|
|
38
|
+
// such a value.
|
|
39
|
+
// On the other hand, pointer values are always equal to themselves,
|
|
40
|
+
// even if they point at or contain such problematic values,
|
|
41
|
+
// because they compare equal using Go's == operator, and that
|
|
42
|
+
// is a sufficient condition to be deeply equal, regardless of content.
|
|
43
|
+
// DeepEqual has been defined so that the same short-cut applies
|
|
44
|
+
// to slices and maps: if x and y are the same slice or the same map,
|
|
45
|
+
// they are deeply equal regardless of content.
|
|
46
|
+
//
|
|
47
|
+
// As DeepEqual traverses the data values it may find a cycle. The
|
|
48
|
+
// second and subsequent times that DeepEqual compares two pointer
|
|
49
|
+
// values that have been compared before, it treats the values as
|
|
50
|
+
// equal rather than examining the values to which they point.
|
|
51
|
+
// This ensures that DeepEqual terminates.
|
|
52
|
+
export function DeepEqual(x, y) {
|
|
53
|
+
// Handle null/undefined cases
|
|
54
|
+
if (x === y) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (x === null || y === null || x === undefined || y === undefined) {
|
|
58
|
+
return x === y;
|
|
59
|
+
}
|
|
60
|
+
// Check for identical references first
|
|
61
|
+
if (x === y) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
// Different types are never equal
|
|
65
|
+
if (typeof x !== typeof y) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
// Handle arrays (including GoScript slices)
|
|
69
|
+
if (globalThis.Array.isArray(x) && globalThis.Array.isArray(y)) {
|
|
70
|
+
if (x.length !== y.length) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
for (let i = 0; i < x.length; i++) {
|
|
74
|
+
if (!DeepEqual(x[i], y[i])) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
// Handle GoScript slice objects with __meta__ structure
|
|
81
|
+
if (x && y && typeof x === 'object' && typeof y === 'object') {
|
|
82
|
+
// Check if both are GoScript slices
|
|
83
|
+
if ('__meta__' in x && '__meta__' in y) {
|
|
84
|
+
const xMeta = x.__meta__;
|
|
85
|
+
const yMeta = y.__meta__;
|
|
86
|
+
if (xMeta &&
|
|
87
|
+
yMeta &&
|
|
88
|
+
'backing' in xMeta &&
|
|
89
|
+
'backing' in yMeta &&
|
|
90
|
+
'length' in xMeta &&
|
|
91
|
+
'length' in yMeta &&
|
|
92
|
+
globalThis.Array.isArray(xMeta.backing) &&
|
|
93
|
+
globalThis.Array.isArray(yMeta.backing) &&
|
|
94
|
+
typeof xMeta.length === 'number' &&
|
|
95
|
+
typeof yMeta.length === 'number') {
|
|
96
|
+
// Compare lengths
|
|
97
|
+
if (xMeta.length !== yMeta.length) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
// Compare elements
|
|
101
|
+
for (let i = 0; i < xMeta.length; i++) {
|
|
102
|
+
if (!DeepEqual(xMeta.backing[i], yMeta.backing[i])) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Handle Maps
|
|
111
|
+
if (x instanceof globalThis.Map && y instanceof globalThis.Map) {
|
|
112
|
+
if (x.size !== y.size) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
for (const [key, value] of x) {
|
|
116
|
+
if (!y.has(key) || !DeepEqual(value, y.get(key))) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
// Handle objects (structs)
|
|
123
|
+
if (typeof x === 'object' && typeof y === 'object') {
|
|
124
|
+
const keysX = Object.keys(x);
|
|
125
|
+
const keysY = Object.keys(y);
|
|
126
|
+
if (keysX.length !== keysY.length) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
for (const key of keysX) {
|
|
130
|
+
if (!keysY.includes(key) || !DeepEqual(x[key], y[key])) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
// For primitive values, use direct comparison
|
|
137
|
+
return x === y;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=deepequal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepequal.js","sourceRoot":"","sources":["../../../gs/reflect/deepequal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Stub implementations for float32 register operations
|
|
2
|
+
export function archFloat32FromReg(i) {
|
|
3
|
+
// Simple stub - just return the number as-is
|
|
4
|
+
return i;
|
|
5
|
+
}
|
|
6
|
+
export function archFloat32ToReg(val) {
|
|
7
|
+
// Simple stub - just return the number as-is
|
|
8
|
+
return val;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=float32reg_generic.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"float32reg_generic.gs.js","sourceRoot":"","sources":["../../../gs/reflect/float32reg_generic.gs.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC3C,6CAA6C;IAC7C,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC3C,+CAA+C;IAC/C,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { TypeOf, ValueOf, Value, Kind, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, } from './type';
|
|
2
|
+
export type { Type } from './type';
|
|
3
|
+
export { DeepEqual } from './deepequal';
|
|
4
|
+
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value';
|
|
5
|
+
export { Swapper } from './swapper';
|
|
6
|
+
export { ChanDir, RecvDir, SendDir, BothDir, StructTag, ValueError, SelectDir, SelectSend, SelectRecv, SelectDefault, bitVector, } from './types';
|
|
7
|
+
export type { uintptr, Pointer, StructField, Method, SelectCase, SliceHeader, StringHeader, MapIter, } from './types';
|
|
8
|
+
export { Invalid, Bool, Int, Int8, Int16, Int32, Int64, Uint, Uint8, Uint16, Uint32, Uint64, Uintptr, Float32, Float64, Complex64, Complex128, Array, Chan, Func, Interface, Map, Ptr, Slice, String, Struct, UnsafePointer, } from './type';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TypeOf, ValueOf, DeepEqual, Zero, Kind, Type, Value } from "./reflect.gs.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.gs.js","sourceRoot":"","sources":["../../../gs/reflect/index.gs.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAQ,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Export the main reflect functions organized like Go stdlib
|
|
2
|
+
export { TypeOf, ValueOf, Value, Kind, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, } from './type';
|
|
3
|
+
export { DeepEqual } from './deepequal';
|
|
4
|
+
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value';
|
|
5
|
+
export { Swapper } from './swapper';
|
|
6
|
+
// Export new types and constants
|
|
7
|
+
export { ChanDir, RecvDir, SendDir, BothDir, StructTag, ValueError, SelectDir, SelectSend, SelectRecv, SelectDefault, bitVector, } from './types';
|
|
8
|
+
// Export kind constants
|
|
9
|
+
export { Invalid, Bool, Int, Int8, Int16, Int32, Int64, Uint, Uint8, Uint16, Uint32, Uint64, Uintptr, Float32, Float64, Complex64, Complex128, Array, Chan, Func, Interface, Map, Ptr, Slice, String, Struct, UnsafePointer, } from './type';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/reflect/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,GACP,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,iCAAiC;AACjC,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,GACV,MAAM,SAAS,CAAA;AAYhB,wBAAwB;AACxB,OAAO,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,GAAG,EACH,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,GACd,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Type, Value } from './type.js';
|
|
2
|
+
import { uintptr } from './types.js';
|
|
3
|
+
import * as iter from '@goscript/iter/index.js';
|
|
4
|
+
export declare function rangeNum<T extends number | number | number | number | number | number | number | number | number | number | uintptr, N extends number | number>(num: N, t: Type): iter.Seq<Value>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Type, Value, uintptr } from "./reflect.gs.js";
|
|
2
|
+
import * as iter from "@goscript/iter/index.js";
|
|
3
|
+
export declare function rangeNum<T extends number | number | number | number | number | number | number | number | number | number | uintptr, N extends number | number>(num: N, t: Type): iter.Seq<Value>;
|