-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider merging LiteralInfinityExpression into LiteralNumericExpression #71
Comments
As far as codegen, Another consideration you may have is JSON representation, which is the original motivator for the Shift AST to have these two nodes separated. |
Aside from stringification, currently other cases (like the one mentioned above) seem to actually benefit from having these represented in the same way.
But this is a good point. While (I believe) JSON is a second-class citizen for BinaryAST and is mostly intended for debugging purposes, this would have to be solved somehow if the change is adopted. |
At the moment, that's true, because we used a strongly-typed internal representation, but that's no written in stone. |
As discussed on Gitter, we might want to do this to simplify handling and provide optimised representations (like binast/binjs-ref#239) more easily for both kinds of numbers.
Some points from the discussion:
double
can store infinity values just fine in any IEEE.754 compatible representation, so this shouldn't be an issue, although one voiced concern is that WebIDL definesdouble
as finite floating 64-bit numbers, but this likely shouldn't be a problem due to how we use it.LiteralNumericExpression
that would produce something like1e111111111...
(see https://bugzilla.mozilla.org/show_bug.cgi?id=1524302#c2), but implementors would need to do the same forLiteralInfinityExpression
as well, so it's only a matter of place where to put the branching.cc @syg @Yoric @arai-a
The text was updated successfully, but these errors were encountered: