Release notes
On this page
Migration guide
Data binding
Array binding changes
Data binding now supports a wider range of array types, including:
- arrays of strings
- polymorphic arrays
- multidimensional arrays
- arrays containing other containers
Support for these arrays requires setting the BindElement field in the ArrayInfo struct.
Required changes
If you have:
- custom
Propertyimplementations, or - overrides of
GetArrayValue<>::Invoke
you must populate the BindElement field in the returned ArrayInfo. The callback is the same one passed to TryBindArrayByRef and can be reused directly.
Performance considerations
Arrays of boolean values, numbers, and user-defined types are directly evaluated without going through creating JavaScript values.
Arrays types that require using the BindElement callback have some overhead due to converting the elements to JavaScript values.
If this becomes a concern, you can continue using the previous workaround of wrapping nested containers in a user-defined type. For example, instead of std::vector<std::vector<Foo>> use std::vector<Wrapper>, where Wrapper contains std::vector<Foo>.
Changelog
Version 2.2.4
Released 05 May 2026
| Feature | Added complete support for binding dynamically typed values and implemented support for std::variant. |
| Enhancement | Simplified loading of the cohtml library on Linux by adding rpath. |
| EnhancementUnreal Engine | Update Gameface statistics only when the stats are visible. |
| FixUnreal Engine | Fixed warnings triggered when binding arrays of FVector instances in Unreal Engine. |
| Fix | Fixed text-stroke artifacts that occurred when the text-stroke-width property changed. |
| Fix | Fixed a flex gap issue that left extra trailing space. |
| Fix | Fixed text-stroke failing to apply width when styled dynamically. |
| Fix | Fixed a bug in WebP image decoding that caused artifacts in alpha values around the image boundaries. |
| Fix | Fixed lossy WebP alpha decoding for images with widths not divisible by the pixels-per-byte ratio. |
| Fix | Fixed a crash during view destruction when using animated pseudo-elements. |