Change return type of parse#53
Open
jamiemlaw wants to merge 1 commit into
Open
Conversation
|
My first thought is that the proposal makes it so parse() still has to do a memory allocation for the return value (a 2-element array). If optimization (or allowing future optimization) is the goal, a better signature might be to make it a member function of Complex: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 PR aims to reduce the size of the library by changing the return type of the
parsefunction. Previously, it returned a newComplex; now, it returns a[re, im]tuple. This then allows us to write things like:and use
reandimas variables, rather thanz['re']andz['im'], saving quite a few bytes.By my calculations this reduces the minified size from 9861 to 9671 bytes (a roughly 2% saving); and after GZIP, from 2890 to 2845 bytes. It also reduces the overhead of instantiating a new
Complexobject with each parse.I was reticent at first to use destructuring assignment, in case it reduced browser compatibility in some way, but I see that in the
hypotfunction, it's already used, so I don't think it'll be an issue.Happy to hear your thoughts.