HomeWildfire Games

Reduce duplication in JSI GUI objects implementation.

Description

Reduce duplication in JSI GUI objects implementation.

  • Store the functions in an unordered_map. A no-container implementation is doable but likely not worth the added code complexity, maybe with C++20
  • Move more things into the _impl.h
  • Clear out the un-necessary friends declaration in the specific types by moving the functions to the public interface, which makes sense.
  • Fix a memory leak (JS::PersistentRootedObject weren't deleted).

This doesn't change what one needs to do to add a new type, but it does reduce the actual code that's necessary, and makes it less error prone.

Differential Revision: https://code.wildfiregames.com/D3214