-
Notifications
You must be signed in to change notification settings - Fork 203
Using printing and parsing library from QuickJS. #987
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
Conversation
|
What about njs_dtoa.c supportability? We have no build time sync with changes in original quickjs/dtoa.c. |
VadimZhestikov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good except for mentioned concerns
This comment was marked as outdated.
This comment was marked as outdated.
VadimZhestikov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Otherwise looks good.
VadimZhestikov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good
This helps when some code requires a string value to be zero-terminated to avoid copying and adding \0 byte. It adds small overhead (less than 3% in worst case of an empty string value) to existing sizeof(njs_value_t) + sizeof(njs_string_t) = 32.
- Number.prototype.toString(radix)
Improved accuracy for edge cases
Reimplemented using njs_dtoa2() with JS_DTOA_FORMAT_FREE | JS_DTOA_EXP_DISABLED
- Number.prototype.toFixed(frac)
Reimplemented using njs_dtoa2() with JS_DTOA_FORMAT_FIXED
Removed old njs_fixed_dtoa() implementation
- Number.prototype.toPrecision(prec)
Reimplemented using njs_dtoa2() with precision format
Removed old njs_dtoa_precision() implementation
- Number.prototype.toExponential(frac)
Reimplemented using njs_dtoa2() with exponential format
Removed old njs_dtoa_exponential() implementation
- parseInt()
Simplified parsing implementation
Removed custom njs_number_radix_parse() helper
- parseFloat()
Simplified parsing implementation
Removed custom njs_number_bin_parse(), njs_number_oct_parse(),
njs_number_dec_parse() and njs_strtod.c module Better handling of large
numbers and denormal floats and invalid inputs.
VadimZhestikov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch
Removed custom njs_number_bin_parse(), njs_number_oct_parse(), njs_number_dec_parse() and njs_strtod.c module Better handling of large numbers and denormal floats and invalid inputs.
+4 test262 tests passed.