JS: use options instead of null checks
JS: found sweet spot for conversion phase: between flatten and mixin (with lazyvals disabled)