WebAssembly has a static type system

It has an up-front validation step, rather than just SIGILL on thy fly.

Two perspectives

Minimize the differences to maximize compatibility?

Or take advantages of the differences to do new things?