BridgeJS: Enable struct as default parameter and enable default parameters in struct init / methods #480
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduction
This PR extends support for default parameter values when exporting Swift functions and constructors to JavaScript/TypeScript using the BridgeJS plugin.
It adds ability to:
initand methodsAdditional Changes
Some minor refactor to
DefaultValueGeneratorwas needed, it got refactored intoDefaultValueUtils, moved outside ofBridgeJSLinkas it needs to be used in JSGlueGen.I considered moving it to separate module, considered using
BridgeJSUtilitiestoo, but it would require dependency onBridgeJSSkeletonso probably not worth it.I think I might eventually extract some
StackBasedThunkBuilderafter array implementation to extract some helper functionality and lowering / lifting fromJSGlueGenfor stack-based types, but let's see after Array implementation 😅Hope this is ok enough for now, but I'm happy to extract this into separate file, module or use different approach.