0.3.5
This release brings many internal improvements, namely the support for Nim <-> JavaScript types (Nim objects can be converted to Mirage objects at runtime!).
We now stand at 2.5% of passing Test262 tests, a 0.5% increase from last release.
Fixes
- Local indexing would previously erase unequal identifiers if their owner function hash was the same, resulting in incorrect codegen and crashes
New Features
- Support for defining custom types
Breaking Changes
You should now define custom Nim types and pass it over to the runtime with registerType(name, typ)
instead of doing name mangling hackfests like <typ>.<functionName>
in defineFn
as a new overloadable variant of it exists which accepts registered types. The same goes for constructors. If a type is registered and defineConstructor
is not called on it, any attempts to construct an object with that type in JavaScript land will result in a TypeError
saying that the object is not a constructor.
Most of these changes are made in order to start implementing DOM manipulation functions in Ferus.