@typeberry/lib 0.5.10-7338c21 → 0.5.10-9ffd7ac
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/README.md +2 -2
- package/bin/lib/examples/pvm-usage.test.js +2 -2
- package/package.json +1 -1
- package/packages/core/codec/descriptor.js +1 -1
- package/packages/core/codec/descriptors.js +7 -4
- package/packages/core/codec/index.test.js +1 -1
- package/packages/core/codec/skip.d.ts +2 -1
- package/packages/core/codec/skip.d.ts.map +1 -1
- package/packages/core/codec/skip.js +3 -0
- package/packages/core/codec/view.js +2 -2
- package/packages/core/collections/multi-map.d.ts +2 -1
- package/packages/core/collections/multi-map.d.ts.map +1 -1
- package/packages/core/collections/multi-map.js +3 -0
- package/packages/core/collections/multi-map.test.js +2 -2
- package/packages/core/concurrent/parent.js +4 -1
- package/packages/core/crypto/ed25519.d.ts +2 -5
- package/packages/core/crypto/ed25519.d.ts.map +1 -1
- package/packages/core/crypto/ed25519.js +4 -1
- package/packages/core/hash/hash.d.ts +4 -2
- package/packages/core/hash/hash.d.ts.map +1 -1
- package/packages/core/hash/hash.js +6 -1
- package/packages/core/networking/quic-network.d.ts +3 -2
- package/packages/core/networking/quic-network.d.ts.map +1 -1
- package/packages/core/networking/quic-network.js +3 -0
- package/packages/core/networking/quic-peer.d.ts +2 -1
- package/packages/core/networking/quic-peer.d.ts.map +1 -1
- package/packages/core/networking/quic-peer.js +5 -2
- package/packages/core/networking/quic-stream.d.ts +2 -1
- package/packages/core/networking/quic-stream.d.ts.map +1 -1
- package/packages/core/networking/quic-stream.js +3 -0
- package/packages/core/networking/setup.js +2 -2
- package/packages/core/pvm-host-calls/bin.js +2 -2
- package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
- package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
- package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls.js +9 -4
- package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
- package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
- package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
- package/packages/core/pvm-interpreter/bin.js +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
- package/packages/core/pvm-interpreter/gas.js +4 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/interpreter.js +19 -16
- package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
- package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
- package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/memory.js +4 -1
- package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
- package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
- package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
- package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
- package/packages/core/pvm-interpreter/program.js +3 -3
- package/packages/core/pvm-interpreter/registers.d.ts +5 -2
- package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/registers.js +10 -6
- package/packages/core/pvm-interpreter/registers.test.js +10 -10
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
- package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
- package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
- package/packages/core/pvm-interpreter-ananas/index.js +12 -3
- package/packages/core/trie/nodes.d.ts +7 -2
- package/packages/core/trie/nodes.d.ts.map +1 -1
- package/packages/core/trie/nodes.js +20 -11
- package/packages/core/trie/nodesDb.d.ts +3 -1
- package/packages/core/trie/nodesDb.d.ts.map +1 -1
- package/packages/core/trie/nodesDb.js +6 -0
- package/packages/core/trie/trie.js +2 -2
- package/packages/extensions/ipc/index.js +5 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
- package/packages/extensions/ipc/jamnp/handler.js +9 -3
- package/packages/extensions/ipc/jamnp/server.js +3 -3
- package/packages/extensions/ipc/server.d.ts +2 -1
- package/packages/extensions/ipc/server.d.ts.map +1 -1
- package/packages/extensions/ipc/server.js +4 -1
- package/packages/jam/block/header.js +1 -1
- package/packages/jam/config/chain-spec.d.ts +2 -1
- package/packages/jam/config/chain-spec.d.ts.map +1 -1
- package/packages/jam/config/chain-spec.js +5 -2
- package/packages/jam/config/network.d.ts +2 -7
- package/packages/jam/config/network.d.ts.map +1 -1
- package/packages/jam/config/network.js +3 -0
- package/packages/jam/config-node/jip-chain-spec.js +1 -1
- package/packages/jam/database/blocks.test.js +1 -1
- package/packages/jam/database/states.d.ts +2 -1
- package/packages/jam/database/states.d.ts.map +1 -1
- package/packages/jam/database/states.js +3 -0
- package/packages/jam/database/states.test.js +1 -1
- package/packages/jam/database-lmdb/blocks.d.ts +2 -1
- package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
- package/packages/jam/database-lmdb/blocks.js +3 -0
- package/packages/jam/database-lmdb/root.d.ts +2 -1
- package/packages/jam/database-lmdb/root.d.ts.map +1 -1
- package/packages/jam/database-lmdb/root.js +3 -0
- package/packages/jam/database-lmdb/states.d.ts +2 -1
- package/packages/jam/database-lmdb/states.d.ts.map +1 -1
- package/packages/jam/database-lmdb/states.js +3 -0
- package/packages/jam/database-lmdb/states.test.js +9 -9
- package/packages/jam/executor/pvm-executor.js +24 -24
- package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
- package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
- package/packages/jam/fuzz-proto/v1/handler.js +3 -0
- package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
- package/packages/jam/in-core/externalities/refine.js +1 -1
- package/packages/jam/in-core/externalities/refine.test.js +3 -3
- package/packages/jam/in-core/in-core.d.ts +2 -1
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +3 -0
- package/packages/jam/in-core/in-core.test.js +6 -6
- package/packages/jam/in-core/is-authorized.test.js +2 -2
- package/packages/jam/in-core/refine.js +1 -1
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
- package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
- package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
- package/packages/jam/jam-host-calls/general/fetch.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +3 -0
- package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
- package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/gas.js +3 -0
- package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
- package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/info.js +3 -0
- package/packages/jam/jam-host-calls/general/info.test.js +6 -7
- package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/log.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/lookup.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
- package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/read.js +3 -0
- package/packages/jam/jam-host-calls/general/read.test.js +11 -12
- package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/write.js +3 -0
- package/packages/jam/jam-host-calls/general/write.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/export.js +3 -0
- package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
- package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
- package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
- package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
- package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/machine.js +3 -0
- package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/pages.js +3 -0
- package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/peek.js +3 -0
- package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/poke.js +3 -0
- package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
- package/packages/jam/jamnp-s/network.js +1 -1
- package/packages/jam/jamnp-s/peers.d.ts +2 -1
- package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
- package/packages/jam/jamnp-s/peers.js +3 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
- package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
- package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
- package/packages/jam/jamnp-s/stream-manager.js +4 -1
- package/packages/jam/jamnp-s/tasks/sync.js +4 -4
- package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
- package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
- package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
- package/packages/jam/node/common.d.ts.map +1 -1
- package/packages/jam/node/common.js +3 -3
- package/packages/jam/rpc-client/index.d.ts +4 -2
- package/packages/jam/rpc-client/index.d.ts.map +1 -1
- package/packages/jam/rpc-client/index.js +7 -1
- package/packages/jam/state/in-memory-state-view.d.ts +2 -1
- package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state-view.js +3 -0
- package/packages/jam/state/in-memory-state.d.ts +16 -21
- package/packages/jam/state/in-memory-state.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state.js +10 -6
- package/packages/jam/state/in-memory-state.test.js +2 -2
- package/packages/jam/state/service.d.ts +2 -6
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/service.js +3 -0
- package/packages/jam/state/test.utils.js +3 -3
- package/packages/jam/state-json/accounts.js +5 -5
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state.js +10 -2
- package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +10 -3
- package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
- package/packages/jam/transition/block-verifier.d.ts +2 -1
- package/packages/jam/transition/block-verifier.d.ts.map +1 -1
- package/packages/jam/transition/block-verifier.js +3 -0
- package/packages/jam/transition/block-verifier.test.js +8 -8
- package/packages/jam/transition/chain-stf.d.ts +12 -4
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +7 -3
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts +20 -6
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +2 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +3 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +1 -1
- package/packages/jam/transition/hasher.d.ts +2 -1
- package/packages/jam/transition/hasher.d.ts.map +1 -1
- package/packages/jam/transition/hasher.js +5 -2
- package/packages/jam/transition/hasher.test.js +1 -1
- package/packages/jam/transition/preimages.test.js +4 -4
- package/packages/jam/transition/reports/test.utils.js +1 -1
- package/packages/workers/api-node/config.js +4 -4
- package/packages/workers/api-node/port.d.ts +2 -1
- package/packages/workers/api-node/port.d.ts.map +1 -1
- package/packages/workers/api-node/port.js +4 -1
- package/packages/workers/api-node/port.test.js +2 -2
- package/packages/workers/api-node/protocol.js +2 -2
- package/packages/workers/block-authorship/generator.d.ts +13 -2
- package/packages/workers/block-authorship/generator.d.ts.map +1 -1
- package/packages/workers/block-authorship/generator.js +13 -9
- package/packages/workers/block-authorship/generator.test.js +16 -2
- package/packages/workers/block-authorship/main.d.ts.map +1 -1
- package/packages/workers/block-authorship/main.js +8 -1
- package/packages/workers/importer/finality.test.js +1 -1
- package/packages/workers/importer/importer.d.ts +23 -6
- package/packages/workers/importer/importer.d.ts.map +1 -1
- package/packages/workers/importer/importer.js +34 -19
- package/packages/workers/importer/main.d.ts.map +1 -1
- package/packages/workers/importer/main.js +13 -5
|
@@ -21,7 +21,7 @@ const getExpectedPage = (address, contents, length) => {
|
|
|
21
21
|
describe("StoreOps", () => {
|
|
22
22
|
function prepareStoreData(valueToStore, noOfBytes) {
|
|
23
23
|
const instructionResult = new InstructionResult();
|
|
24
|
-
const regs =
|
|
24
|
+
const regs = Registers.empty();
|
|
25
25
|
const address = tryAsMemoryIndex(RESERVED_NUMBER_OF_PAGES * PAGE_SIZE + 1);
|
|
26
26
|
const registerIndex = 1;
|
|
27
27
|
regs.setU64(registerIndex, valueToStore);
|
|
@@ -30,9 +30,9 @@ describe("StoreOps", () => {
|
|
|
30
30
|
const memory = new MemoryBuilder()
|
|
31
31
|
.setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
|
|
32
32
|
.finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
|
|
33
|
-
const storeOps = new
|
|
33
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
34
34
|
const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
|
|
35
|
-
const immediate = new
|
|
35
|
+
const immediate = ImmediateDecoder.new();
|
|
36
36
|
immediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
|
|
37
37
|
return { storeOps, address, registerIndex, memory, expectedPage, immediate };
|
|
38
38
|
}
|
|
@@ -98,7 +98,7 @@ describe("StoreOps", () => {
|
|
|
98
98
|
});
|
|
99
99
|
function prepareStoreIndData(valueToStore, noOfBytes, addressRegisterValue, addressImmediateValue) {
|
|
100
100
|
const instructionResult = new InstructionResult();
|
|
101
|
-
const regs =
|
|
101
|
+
const regs = Registers.empty();
|
|
102
102
|
const address = tryAsMemoryIndex(Number(addressRegisterValue + addressImmediateValue));
|
|
103
103
|
const addressRegisterIndex = 0;
|
|
104
104
|
const valueRegisterIndex = 1;
|
|
@@ -109,11 +109,11 @@ describe("StoreOps", () => {
|
|
|
109
109
|
const memory = new MemoryBuilder()
|
|
110
110
|
.setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
|
|
111
111
|
.finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
|
|
112
|
-
const storeOps = new
|
|
112
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
113
113
|
const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
|
|
114
|
-
const valueImmediate = new
|
|
114
|
+
const valueImmediate = ImmediateDecoder.new();
|
|
115
115
|
valueImmediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
|
|
116
|
-
const addressImmediate = new
|
|
116
|
+
const addressImmediate = ImmediateDecoder.new();
|
|
117
117
|
addressImmediate.setBytes(bigintToUint8ArrayLE(addressImmediateValue));
|
|
118
118
|
return {
|
|
119
119
|
storeOps,
|
|
@@ -8,7 +8,7 @@ import { NoArgsOps } from "../ops/index.js";
|
|
|
8
8
|
import { NoArgsDispatcher } from "./no-args-dispatcher.js";
|
|
9
9
|
describe("NoArgsDispatcher", () => {
|
|
10
10
|
const instructionResult = new InstructionResult();
|
|
11
|
-
const noArgsOps = new
|
|
11
|
+
const noArgsOps = NoArgsOps.new(instructionResult);
|
|
12
12
|
const mockFn = mock.fn();
|
|
13
13
|
function mockAllMethods(obj) {
|
|
14
14
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -10,7 +10,7 @@ import { OneImmDispatcher } from "./one-imm-dispatcher.js";
|
|
|
10
10
|
describe("OneImmDispatcher", () => {
|
|
11
11
|
describe("check if it handles expected instructions", () => {
|
|
12
12
|
const instructionResult = new InstructionResult();
|
|
13
|
-
const hostCallOps = new
|
|
13
|
+
const hostCallOps = HostCallOps.new(instructionResult);
|
|
14
14
|
const hostCallMock = mock.fn();
|
|
15
15
|
after(() => {
|
|
16
16
|
mock.restoreAll();
|
|
@@ -22,7 +22,7 @@ describe("OneImmDispatcher", () => {
|
|
|
22
22
|
mock.method(hostCallOps, "hostCall", hostCallMock);
|
|
23
23
|
});
|
|
24
24
|
const argsMock = {
|
|
25
|
-
immediateDecoder: new
|
|
25
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
26
26
|
};
|
|
27
27
|
it("should call HostCallOps.hostCall", () => {
|
|
28
28
|
const dispatcher = new OneImmDispatcher(hostCallOps);
|
|
@@ -32,7 +32,7 @@ describe("OneImmDispatcher", () => {
|
|
|
32
32
|
});
|
|
33
33
|
describe("check if it handles other instructions than expected", () => {
|
|
34
34
|
const instructionResult = new InstructionResult();
|
|
35
|
-
const hostCallOps = new
|
|
35
|
+
const hostCallOps = HostCallOps.new(instructionResult);
|
|
36
36
|
const mockFn = mock.fn();
|
|
37
37
|
function mockAllMethods(obj) {
|
|
38
38
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -50,7 +50,7 @@ describe("OneImmDispatcher", () => {
|
|
|
50
50
|
mockFn.mock.resetCalls();
|
|
51
51
|
});
|
|
52
52
|
const argsMock = {
|
|
53
|
-
immediateDecoder: new
|
|
53
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
54
54
|
};
|
|
55
55
|
const otherInstructions = Object.entries(Instruction)
|
|
56
56
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
|
|
|
9
9
|
import { Registers } from "../registers.js";
|
|
10
10
|
import { OneOffsetDispatcher } from "./one-offset-dispatcher.js";
|
|
11
11
|
test("OneOffsetDispatcher", async (t) => {
|
|
12
|
-
const regs =
|
|
12
|
+
const regs = Registers.empty();
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
14
|
const basicBlocks = new BasicBlocks();
|
|
15
|
-
const branchOps = new
|
|
15
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
16
16
|
const mockFn = t.mock.fn();
|
|
17
17
|
function mockAllMethods(obj) {
|
|
18
18
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js
CHANGED
|
@@ -10,10 +10,10 @@ import { LoadOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { OneRegOneExtImmDispatcher } from "./one-reg-one-ext-imm-dispatcher.js";
|
|
12
12
|
describe("OneRegOneExtImmDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const loadOps = new
|
|
16
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,7 +31,7 @@ describe("OneRegOneExtImmDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
immediateDecoder: new
|
|
34
|
+
immediateDecoder: ExtendedWitdthImmediateDecoder.new(),
|
|
35
35
|
};
|
|
36
36
|
const relevantInstructions = Object.entries(Instruction)
|
|
37
37
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -12,14 +12,14 @@ import { JumpTable } from "../program-decoder/jump-table.js";
|
|
|
12
12
|
import { Registers } from "../registers.js";
|
|
13
13
|
import { OneRegOneImmDispatcher } from "./one-reg-one-imm-dispatcher.js";
|
|
14
14
|
describe("OneRegOneImmDispatcher", () => {
|
|
15
|
-
const regs =
|
|
16
|
-
const memory = new
|
|
17
|
-
const jumpTable =
|
|
15
|
+
const regs = Registers.empty();
|
|
16
|
+
const memory = Memory.new();
|
|
17
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
18
18
|
const instructionResult = new InstructionResult();
|
|
19
|
-
const storeOps = new
|
|
20
|
-
const loadOps = new
|
|
19
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
const basicBlocks = new BasicBlocks();
|
|
22
|
-
const dynamicJumpOps = new
|
|
22
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
23
23
|
const mockFn = mock.fn();
|
|
24
24
|
function mockAllMethods(obj) {
|
|
25
25
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -39,7 +39,7 @@ describe("OneRegOneImmDispatcher", () => {
|
|
|
39
39
|
mockFn.mock.resetCalls();
|
|
40
40
|
});
|
|
41
41
|
const argsMock = {
|
|
42
|
-
immediateDecoder: new
|
|
42
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
43
43
|
};
|
|
44
44
|
const relevantInstructions = Object.entries(Instruction)
|
|
45
45
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js
CHANGED
|
@@ -12,17 +12,17 @@ import { Registers } from "../registers.js";
|
|
|
12
12
|
import { OneRegOneImmOneOffsetDispatcher } from "./one-reg-one-imm-one-offset-dispatcher.js";
|
|
13
13
|
describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
14
14
|
describe("check if it handles expected instructions", () => {
|
|
15
|
-
const regs =
|
|
16
|
-
const memory = new
|
|
15
|
+
const regs = Registers.empty();
|
|
16
|
+
const memory = Memory.new();
|
|
17
17
|
const instructionResult = new InstructionResult();
|
|
18
18
|
const basicBlocks = new BasicBlocks();
|
|
19
|
-
const branchOps = new
|
|
20
|
-
const loadOps = new
|
|
19
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
after(() => {
|
|
22
22
|
mock.restoreAll();
|
|
23
23
|
});
|
|
24
24
|
const argsMock = {
|
|
25
|
-
immediateDecoder: new
|
|
25
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
26
26
|
};
|
|
27
27
|
it("it should call BranchOps.jump and LoadOps.loadImmediate", () => {
|
|
28
28
|
const jumpMockFunction = mock.fn();
|
|
@@ -106,12 +106,12 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
describe("check if it handles other instructions than expected", () => {
|
|
109
|
-
const regs =
|
|
110
|
-
const memory = new
|
|
109
|
+
const regs = Registers.empty();
|
|
110
|
+
const memory = Memory.new();
|
|
111
111
|
const instructionResult = new InstructionResult();
|
|
112
112
|
const basicBlocks = new BasicBlocks();
|
|
113
|
-
const branchOps = new
|
|
114
|
-
const loadOps = new
|
|
113
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
114
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
115
115
|
const mockFn = mock.fn();
|
|
116
116
|
function mockAllMethods(obj) {
|
|
117
117
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -130,7 +130,7 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
|
130
130
|
mockFn.mock.resetCalls();
|
|
131
131
|
});
|
|
132
132
|
const argsMock = {
|
|
133
|
-
immediateDecoder: new
|
|
133
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
134
134
|
};
|
|
135
135
|
const otherInstructions = Object.entries(Instruction)
|
|
136
136
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { OneRegTwoImmsDispatcher } from "./one-reg-two-imms-dispatcher.js";
|
|
12
12
|
describe("OneRegTwoImmsDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const storeOps = new
|
|
16
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,8 +31,8 @@ describe("OneRegTwoImmsDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
firstImmediateDecoder: new
|
|
35
|
-
secondImmediateDecoder: new
|
|
34
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
35
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
36
36
|
};
|
|
37
37
|
const relevantInstructions = Object.entries(Instruction)
|
|
38
38
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -7,13 +7,13 @@ import { BitOps, BitRotationOps, BooleanOps, MathOps, MoveOps, ShiftOps } from "
|
|
|
7
7
|
import { Registers } from "../registers.js";
|
|
8
8
|
import { ThreeRegsDispatcher } from "./three-regs-dispatcher.js";
|
|
9
9
|
test("ThreeRegsDispatcher", async (t) => {
|
|
10
|
-
const regs =
|
|
11
|
-
const mathOps = new
|
|
12
|
-
const bitOps = new
|
|
13
|
-
const shiftOps = new
|
|
14
|
-
const booleanOps = new
|
|
15
|
-
const moveOps = new
|
|
16
|
-
const bitRotationOps = new
|
|
10
|
+
const regs = Registers.empty();
|
|
11
|
+
const mathOps = MathOps.new(regs);
|
|
12
|
+
const bitOps = BitOps.new(regs);
|
|
13
|
+
const shiftOps = ShiftOps.new(regs);
|
|
14
|
+
const booleanOps = BooleanOps.new(regs);
|
|
15
|
+
const moveOps = MoveOps.new(regs);
|
|
16
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
17
17
|
const mockFn = t.mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { TwoImmsDispatcher } from "./two-imms-dispatcher.js";
|
|
12
12
|
describe("TwoImmsDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const storeOps = new
|
|
16
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,8 +31,8 @@ describe("TwoImmsDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
firstImmediateDecoder: new
|
|
35
|
-
secondImmediateDecoder: new
|
|
34
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
35
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
36
36
|
};
|
|
37
37
|
const relevantInstructions = Object.entries(Instruction)
|
|
38
38
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -10,12 +10,12 @@ import { Registers } from "../registers.js";
|
|
|
10
10
|
import { TwoRegsDispatcher } from "./two-regs-dispatcher.js";
|
|
11
11
|
describe("TwoRegsDispatcher", () => {
|
|
12
12
|
const instructionResult = new InstructionResult();
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
15
|
-
const memoryOps = new
|
|
16
|
-
const moveOps = new
|
|
17
|
-
const bitOps = new
|
|
18
|
-
const bitRotationOps = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
|
+
const memoryOps = MemoryOps.new(regs, memory, instructionResult);
|
|
16
|
+
const moveOps = MoveOps.new(regs);
|
|
17
|
+
const bitOps = BitOps.new(regs);
|
|
18
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
19
19
|
const mockFn = mock.fn();
|
|
20
20
|
function mockAllMethods(obj) {
|
|
21
21
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -11,16 +11,16 @@ import { Registers } from "../registers.js";
|
|
|
11
11
|
import { TwoRegsOneImmDispatcher } from "./two-regs-one-imm-dispatcher.js";
|
|
12
12
|
describe("TwoRegsOneImmDispatcher", () => {
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
|
-
const regs =
|
|
15
|
-
const memory = new
|
|
16
|
-
const mathOps = new
|
|
17
|
-
const shiftOps = new
|
|
18
|
-
const bitOps = new
|
|
19
|
-
const booleanOps = new
|
|
20
|
-
const moveOps = new
|
|
21
|
-
const storeOps = new
|
|
22
|
-
const loadOps = new
|
|
23
|
-
const bitRotationOps = new
|
|
14
|
+
const regs = Registers.empty();
|
|
15
|
+
const memory = Memory.new();
|
|
16
|
+
const mathOps = MathOps.new(regs);
|
|
17
|
+
const shiftOps = ShiftOps.new(regs);
|
|
18
|
+
const bitOps = BitOps.new(regs);
|
|
19
|
+
const booleanOps = BooleanOps.new(regs);
|
|
20
|
+
const moveOps = MoveOps.new(regs);
|
|
21
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
22
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
23
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
24
24
|
const mockFn = mock.fn();
|
|
25
25
|
function mockAllMethods(obj) {
|
|
26
26
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -45,7 +45,7 @@ describe("TwoRegsOneImmDispatcher", () => {
|
|
|
45
45
|
mockFn.mock.resetCalls();
|
|
46
46
|
});
|
|
47
47
|
const argsMock = {
|
|
48
|
-
immediateDecoder: new
|
|
48
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
49
49
|
};
|
|
50
50
|
const relevantInstructions = Object.entries(Instruction)
|
|
51
51
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js
CHANGED
|
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
|
|
|
9
9
|
import { Registers } from "../registers.js";
|
|
10
10
|
import { TwoRegsOneOffsetDispatcher } from "./two-regs-one-offset-dispatcher.js";
|
|
11
11
|
test("TwoRegsOneOffsetDispatcher", async (t) => {
|
|
12
|
-
const regs =
|
|
12
|
+
const regs = Registers.empty();
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
14
|
const basicBlocks = new BasicBlocks();
|
|
15
|
-
const branchOps = new
|
|
15
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
16
16
|
const mockFn = t.mock.fn();
|
|
17
17
|
function mockAllMethods(obj) {
|
|
18
18
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -13,13 +13,13 @@ import { Registers } from "../registers.js";
|
|
|
13
13
|
import { TwoRegsTwoImmsDispatcher } from "./two-regs-two-imms-dispatcher.js";
|
|
14
14
|
describe("TwoRegsTwoImmsDispatcher", () => {
|
|
15
15
|
describe("check if it handles expected instructions", () => {
|
|
16
|
-
const regs =
|
|
17
|
-
const memory = new
|
|
18
|
-
const jumpTable =
|
|
16
|
+
const regs = Registers.empty();
|
|
17
|
+
const memory = Memory.new();
|
|
18
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
19
19
|
const instructionResult = new InstructionResult();
|
|
20
|
-
const loadOps = new
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
const basicBlocks = new BasicBlocks();
|
|
22
|
-
const dynamicJumpOps = new
|
|
22
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
23
23
|
const loadImmediateMock = mock.fn();
|
|
24
24
|
const jumpIndMock = mock.fn();
|
|
25
25
|
after(() => {
|
|
@@ -36,8 +36,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
36
36
|
const argsMock = {
|
|
37
37
|
firstRegisterIndex: 1,
|
|
38
38
|
secondRegisterIndex: 2,
|
|
39
|
-
firstImmediateDecoder: new
|
|
40
|
-
secondImmediateDecoder: new
|
|
39
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
40
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
41
41
|
};
|
|
42
42
|
it("should call LoadOps.loadImmediate", () => {
|
|
43
43
|
const dispatcher = new TwoRegsTwoImmsDispatcher(loadOps, dynamicJumpOps);
|
|
@@ -52,12 +52,12 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
52
52
|
});
|
|
53
53
|
describe("check if it handles other instructions than expected", () => {
|
|
54
54
|
const instructionResult = new InstructionResult();
|
|
55
|
-
const regs =
|
|
56
|
-
const memory = new
|
|
57
|
-
const loadOps = new
|
|
58
|
-
const jumpTable =
|
|
55
|
+
const regs = Registers.empty();
|
|
56
|
+
const memory = Memory.new();
|
|
57
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
58
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
59
59
|
const basicBlocks = new BasicBlocks();
|
|
60
|
-
const dynamicJumpOps = new
|
|
60
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
61
61
|
const mockFn = mock.fn();
|
|
62
62
|
function mockAllMethods(obj) {
|
|
63
63
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -76,8 +76,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
76
76
|
mockFn.mock.resetCalls();
|
|
77
77
|
});
|
|
78
78
|
const argsMock = {
|
|
79
|
-
firstImmediateDecoder: new
|
|
80
|
-
secondImmediateDecoder: new
|
|
79
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
80
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
81
81
|
};
|
|
82
82
|
const otherInstructions = Object.entries(Instruction)
|
|
83
83
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export declare class JumpTable {
|
|
2
2
|
private indices;
|
|
3
|
-
|
|
3
|
+
/** Create an empty jump table. */
|
|
4
|
+
static empty(): JumpTable;
|
|
5
|
+
/** Decode a jump table from a raw bytes buffer. */
|
|
6
|
+
static fromRaw(itemByteLength: number, bytes: Uint8Array): JumpTable;
|
|
7
|
+
private constructor();
|
|
4
8
|
private decodeNext;
|
|
5
9
|
hasIndex(index: number): boolean;
|
|
6
10
|
getDestination(index: number): number;
|
|
7
|
-
static empty(): JumpTable;
|
|
8
11
|
getSize(): number;
|
|
9
12
|
copyFrom(jt: JumpTable): void;
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;
|
|
1
|
+
{"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;IAE7B,kCAAkC;IAClC,MAAM,CAAC,KAAK;IAIZ,mDAAmD;IACnD,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAQxD,OAAO;IAUP,OAAO,CAAC,UAAU;IAgBlB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,OAAO;IAIP,QAAQ,CAAC,EAAE,EAAE,SAAS;CAGvB"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { check } from "#@typeberry/utils";
|
|
2
2
|
export class JumpTable {
|
|
3
3
|
indices;
|
|
4
|
-
|
|
4
|
+
/** Create an empty jump table. */
|
|
5
|
+
static empty() {
|
|
6
|
+
return new JumpTable(0, new Uint8Array());
|
|
7
|
+
}
|
|
8
|
+
/** Decode a jump table from a raw bytes buffer. */
|
|
9
|
+
static fromRaw(itemByteLength, bytes) {
|
|
5
10
|
check `
|
|
6
11
|
${itemByteLength === 0 || bytes.length % itemByteLength === 0}
|
|
7
12
|
Length of jump table (${bytes.length}) should be a multiple of item lenght (${itemByteLength})!
|
|
8
13
|
`;
|
|
14
|
+
return new JumpTable(itemByteLength, bytes);
|
|
15
|
+
}
|
|
16
|
+
constructor(itemByteLength, bytes) {
|
|
9
17
|
const length = itemByteLength === 0 ? 0 : bytes.length / itemByteLength;
|
|
10
18
|
this.indices = new Uint32Array(length);
|
|
11
19
|
for (let i = 0; i < length; i++) {
|
|
@@ -31,9 +39,6 @@ export class JumpTable {
|
|
|
31
39
|
getDestination(index) {
|
|
32
40
|
return this.indices[index];
|
|
33
41
|
}
|
|
34
|
-
static empty() {
|
|
35
|
-
return new JumpTable(0, new Uint8Array());
|
|
36
|
-
}
|
|
37
42
|
getSize() {
|
|
38
43
|
return this.indices.length;
|
|
39
44
|
}
|
|
@@ -5,7 +5,7 @@ describe("JumpTable", () => {
|
|
|
5
5
|
it("should return true when an index exist in jump table", () => {
|
|
6
6
|
const jumpTableItemLength = 4;
|
|
7
7
|
const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12]);
|
|
8
|
-
const jumpTable =
|
|
8
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
9
9
|
const indexToCheck = 0;
|
|
10
10
|
const result = jumpTable.hasIndex(indexToCheck);
|
|
11
11
|
assert.strictEqual(result, true);
|
|
@@ -13,7 +13,7 @@ describe("JumpTable", () => {
|
|
|
13
13
|
it("should return false when an index not exist in jump table", () => {
|
|
14
14
|
const jumpTableItemLength = 4;
|
|
15
15
|
const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12]);
|
|
16
|
-
const jumpTable =
|
|
16
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
17
17
|
const indexToCheck = 5;
|
|
18
18
|
const result = jumpTable.hasIndex(indexToCheck);
|
|
19
19
|
assert.strictEqual(result, false);
|
|
@@ -22,7 +22,7 @@ describe("JumpTable", () => {
|
|
|
22
22
|
const jumpTableItemLength = 4;
|
|
23
23
|
const expectedValue = 0x12_34_56_78;
|
|
24
24
|
const bytes = new Uint8Array([0xff, 0xff, 0xff, 0xff, 0x78, 0x56, 0x34, 0x12]);
|
|
25
|
-
const jumpTable =
|
|
25
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
26
26
|
const indexToCheck = 1;
|
|
27
27
|
const result = jumpTable.getDestination(indexToCheck);
|
|
28
28
|
assert.strictEqual(result, expectedValue);
|
|
@@ -31,7 +31,7 @@ describe("JumpTable", () => {
|
|
|
31
31
|
const jumpTableItemLength = 8;
|
|
32
32
|
const expectedValue = 0xff_ff_ff_ff;
|
|
33
33
|
const bytes = new Uint8Array([0xff, 0xff, 0xff, 0xff, 0x78, 0x56, 0x34, 0x12]);
|
|
34
|
-
const jumpTable =
|
|
34
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
35
35
|
const indexToCheck = 0;
|
|
36
36
|
const result = jumpTable.getDestination(indexToCheck);
|
|
37
37
|
assert.strictEqual(result, expectedValue);
|
|
@@ -40,7 +40,7 @@ describe("JumpTable", () => {
|
|
|
40
40
|
const jumpTableItemLength = 8;
|
|
41
41
|
const expectedValue = 0x00_00_00_00_12_34_56_78;
|
|
42
42
|
const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12, 0, 0, 0, 0]);
|
|
43
|
-
const jumpTable =
|
|
43
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
44
44
|
const indexToCheck = 0;
|
|
45
45
|
const result = jumpTable.getDestination(indexToCheck);
|
|
46
46
|
assert.strictEqual(result, expectedValue);
|
|
@@ -50,7 +50,7 @@ describe("JumpTable", () => {
|
|
|
50
50
|
const expectedValue = 2 ** 32 - 1;
|
|
51
51
|
const bytes = new Uint8Array(255);
|
|
52
52
|
bytes.fill(1);
|
|
53
|
-
const jumpTable =
|
|
53
|
+
const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
|
|
54
54
|
const indexToCheck = 0;
|
|
55
55
|
const result = jumpTable.getDestination(indexToCheck);
|
|
56
56
|
assert.strictEqual(result, expectedValue);
|
|
@@ -17,7 +17,8 @@ export declare class Mask {
|
|
|
17
17
|
* There are instructions at indices `0, 3, 5, 9`.
|
|
18
18
|
*/
|
|
19
19
|
private lookupTableForward;
|
|
20
|
-
|
|
20
|
+
static new(mask: BitVec): Mask;
|
|
21
|
+
private constructor();
|
|
21
22
|
isInstruction(index: number): boolean;
|
|
22
23
|
getNoOfBytesToNextInstruction(index: number): number;
|
|
23
24
|
private buildLookupTableForward;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/mask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C;;;;GAIG;AACH,qBAAa,IAAI;IACf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB,CAAa;
|
|
1
|
+
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/mask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C;;;;GAIG;AACH,qBAAa,IAAI;IACf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB,CAAa;IAEvC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM;IAIvB,OAAO;IAIP,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,6BAA6B,CAAC,KAAK,EAAE,MAAM;IAK3C,OAAO,CAAC,uBAAuB;IAc/B,MAAM,CAAC,KAAK;CAGb"}
|
|
@@ -8,7 +8,7 @@ describe("Mask", () => {
|
|
|
8
8
|
const input = [0b0000_0001];
|
|
9
9
|
const index = 0;
|
|
10
10
|
const expectedResult = true;
|
|
11
|
-
const mask = new
|
|
11
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
|
|
12
12
|
const result = mask.isInstruction(index);
|
|
13
13
|
assert.strictEqual(result, expectedResult);
|
|
14
14
|
});
|
|
@@ -16,7 +16,7 @@ describe("Mask", () => {
|
|
|
16
16
|
const input = [0b0000_0001];
|
|
17
17
|
const index = 1;
|
|
18
18
|
const expectedResult = false;
|
|
19
|
-
const mask = new
|
|
19
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
|
|
20
20
|
const result = mask.isInstruction(index);
|
|
21
21
|
assert.strictEqual(result, expectedResult);
|
|
22
22
|
});
|
|
@@ -24,7 +24,7 @@ describe("Mask", () => {
|
|
|
24
24
|
const input = [0x0, 0b0000_0001];
|
|
25
25
|
const index = 8;
|
|
26
26
|
const expectedResult = true;
|
|
27
|
-
const mask = new
|
|
27
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 11));
|
|
28
28
|
const result = mask.isInstruction(index);
|
|
29
29
|
assert.strictEqual(result, expectedResult);
|
|
30
30
|
});
|
|
@@ -32,7 +32,7 @@ describe("Mask", () => {
|
|
|
32
32
|
const input = [0xff, 0b0000_0001];
|
|
33
33
|
const index = 10;
|
|
34
34
|
const expectedResult = false;
|
|
35
|
-
const mask = new
|
|
35
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 11));
|
|
36
36
|
const result = mask.isInstruction(index);
|
|
37
37
|
assert.strictEqual(result, expectedResult);
|
|
38
38
|
});
|
|
@@ -42,7 +42,7 @@ describe("Mask", () => {
|
|
|
42
42
|
const input = [0b0000_0001];
|
|
43
43
|
const index = 1;
|
|
44
44
|
const expectedResult = 2;
|
|
45
|
-
const mask = new
|
|
45
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
|
|
46
46
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
47
47
|
assert.strictEqual(result, expectedResult);
|
|
48
48
|
});
|
|
@@ -50,7 +50,7 @@ describe("Mask", () => {
|
|
|
50
50
|
const input = [0b0000_1001];
|
|
51
51
|
const index = 1;
|
|
52
52
|
const expectedResult = 2;
|
|
53
|
-
const mask = new
|
|
53
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 8));
|
|
54
54
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
55
55
|
assert.strictEqual(result, expectedResult);
|
|
56
56
|
});
|
|
@@ -58,7 +58,7 @@ describe("Mask", () => {
|
|
|
58
58
|
const input = [0b0000_0001];
|
|
59
59
|
const index = 0;
|
|
60
60
|
const expectedResult = 0;
|
|
61
|
-
const mask = new
|
|
61
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
|
|
62
62
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
63
63
|
assert.strictEqual(result, expectedResult);
|
|
64
64
|
});
|
|
@@ -66,7 +66,7 @@ describe("Mask", () => {
|
|
|
66
66
|
const input = [0b0001_1001, 0b0001_1000];
|
|
67
67
|
const index = 5;
|
|
68
68
|
const expectedResult = 6;
|
|
69
|
-
const mask = new
|
|
69
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 16));
|
|
70
70
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
71
71
|
assert.strictEqual(result, expectedResult);
|
|
72
72
|
});
|
|
@@ -74,7 +74,7 @@ describe("Mask", () => {
|
|
|
74
74
|
const input = [0b0001_1001];
|
|
75
75
|
const index = 5;
|
|
76
76
|
const expectedResult = 3;
|
|
77
|
-
const mask = new
|
|
77
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 8));
|
|
78
78
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
79
79
|
assert.strictEqual(result, expectedResult);
|
|
80
80
|
});
|
|
@@ -82,7 +82,7 @@ describe("Mask", () => {
|
|
|
82
82
|
const input = [0b0000_0001, 0b0000_0000, 0b0000_0000, 0b1000_0000];
|
|
83
83
|
const index = 1;
|
|
84
84
|
const expectedResult = 25;
|
|
85
|
-
const mask = new
|
|
85
|
+
const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), input.length * 8));
|
|
86
86
|
const result = mask.getNoOfBytesToNextInstruction(index);
|
|
87
87
|
assert.strictEqual(result, expectedResult);
|
|
88
88
|
});
|