Support JS function calls with up to 7 arguments in Embedded Swift #281
+315
−14
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.
This fixes #279.
Notes:
The choice up to how many aguments to support before we can replace everything with a single varadic generics funtion is arbitrary. I chose to go up to 7 arguments because
JSFunction.new
already had some overloads with up to 7 arguments, so this seemed the most consistent.I used a different code style for the new overloads where each generic parameter is put on its own line. I'm aware that this doesn't follow the project's code style, but I found the alternative (the full function signature on a single line) pretty much unreadable. Please let me know if you want me to change this.
I didn't add any tests for the new functionality because the existing test suite isn't built/executed in Embedded Swift mode anyway, so the new code wouldn't even be built. I did a quick test locally to ensure the overloads work. I hope this is OK, but please let me know if you want more. If so, we have to integrate an Embedded Swift build into the testing process.