diff options
author | Ben Smith <binji@chromium.org> | 2018-09-06 19:06:00 -0700 |
---|---|---|
committer | Ben Smith <binjimin@gmail.com> | 2018-09-06 22:37:59 -0700 |
commit | 140224fb8692ed081c46a357052ccaaff81e71a2 (patch) | |
tree | 97d0177ac31ed7ef609ef41c8d24baa3ea0481e3 /src/interp/binary-reader-interp.cc | |
parent | e0719fe0fe504c497d9fb7510fe68499c08179f4 (diff) | |
download | wabt-140224fb8692ed081c46a357052ccaaff81e71a2.tar.gz wabt-140224fb8692ed081c46a357052ccaaff81e71a2.tar.bz2 wabt-140224fb8692ed081c46a357052ccaaff81e71a2.zip |
Fix some multi-value bugs; run spec tests
Running the multi-value spec tests found a few bugs:
* DropKeep needs to copy the kept values backward when the regions
overlap.
* Type names need to be resolved to indexes in block declarations
(e.g. `block (type $foo)`)
* `if` without an `else` is valid, it just behaves as though the `else`
is empty, which will pass the params through as results.
* When validating function signatures, we need to also check block
declaration signatures.
* Split `ResolveFuncType` into two functions:
`ResolveFuncTypeWithEmptySignature` and
`ResolveImplicitlyDefinedFunctionType`.
* When resolving implicitly defined function types, we only create an
implicit function type when the type is not inlinable; i.e. only for
block/loop/if with 0 or 1 result values and no params.
* Change `update-spec-tests` to include the `multi-value` proposal repo
from the testsuite.
Diffstat (limited to 'src/interp/binary-reader-interp.cc')
0 files changed, 0 insertions, 0 deletions