The 1.0.0-beta.5 release of Glint introduced support for {{helper}} and {{modifier}} by way of a new bind-invokable abstraction based on the existing {{component}} implementation. As folks have kicked the tires on that refactor, a few bugs and inconsistencies have come to light:
559: the type signature allowed for multiple arguments, but due to some strange interactions in TypeScript's context-sensitive inference, it would frequently infer a version of the signature that only accepted one positional arg. We fix this by wrapping the resolveForBind call in an IIFE, which acts as an opaque barrier to context propagation for inference.
556: we weren't constraining the results of bind-invokable calls with emitContent as we should have when they appeared in a top-level position
555: we were missing a special case for string-named DirectInvokables for environment-ember-loose
I've run some targeted sets of tests with these changes, but will let CI tell me if other further-reaching impacts need to be accounted for somewhere in our integration/acceptance tests.
The 1.0.0-beta.5 release of Glint introduced support for
{{helper}}
and{{modifier}}
by way of a newbind-invokable
abstraction based on the existing{{component}}
implementation. As folks have kicked the tires on that refactor, a few bugs and inconsistencies have come to light:559: the type signature allowed for multiple arguments, but due to some strange interactions in TypeScript's context-sensitive inference, it would frequently infer a version of the signature that only accepted one positional arg. We fix this by wrapping the
resolveForBind
call in an IIFE, which acts as an opaque barrier to context propagation for inference.556: we weren't constraining the results of
bind-invokable
calls withemitContent
as we should have when they appeared in a top-level position555: we were missing a special case for string-named
DirectInvokable
s forenvironment-ember-loose
I've run some targeted sets of tests with these changes, but will let CI tell me if other further-reaching impacts need to be accounted for somewhere in our integration/acceptance tests.