Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
querystring: using toString for objects on querystring.escape#5341
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
mscdex commented Feb 20, 2016
I just ran some quick benchmarks and it seems that using the |
silentroach commented Feb 20, 2016
@mscdex rewritten with typecheck |
jacobp100 commented Feb 20, 2016
Not quite. |
silentroach commented Feb 20, 2016
@jacobp100 the same with so the current solution is better than String constructor. Thank you for additional test case :) |
jacobp100 commented Feb 20, 2016
You’re correct, good catch. Just checked, per spec, |
jasnell commented Feb 21, 2016
LGTM |
Fishrock123 commented Feb 23, 2016
Are there any cases we can test where this would make a difference even if you are not setting |
mscdex commented Feb 23, 2016
@Fishrock123 What do you mean? There will always be a |
jacobp100 commented Feb 23, 2016
Nah, he's right. If toString is not callable, then you need to try valueOf. If that's also not callable, you need to throw an error. |
silentroach commented Feb 23, 2016
Fixed. + more tests Seems like it is better to use |
jasnell commented Mar 21, 2016
@mscdex @nodejs/ctc ... ping |
lib/querystring.js Outdated
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.
This should be moved to the next line.
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.
but why? is there any reason to add empty string to str if it is already a string?
please check out tests below, maybe I forgot some cases?
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.
No, I meant this as a style nit: moving the str += ''; to the next line instead of on the same line as the else.
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.
oh. will fix in 5 minutes, thank you
silentroach commented Mar 24, 2016
@mscdex your variant will fail for this test and in my version there is no problem with encoding symbols - it will throw as with encodeURIComponent |
mscdex commented Mar 24, 2016
LGTM with one minor nit |
mscdex commented Mar 24, 2016
jasnell commented Mar 24, 2016
One failure in CI that looks unrelated. |
jasnell commented Apr 4, 2016
@mscdex ... any further comments on this one? |
jasnell commented Apr 4, 2016
@silentroach ... can you update the commit log to follow our style guidelines here: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#step-3-commit |
mscdex commented Apr 4, 2016
@jasnell Nope, other than commit message needs to be formatted correctly |
silentroach commented Apr 5, 2016
jasnell commented Apr 12, 2016
Yep, LGTM |
jasnell commented Apr 12, 2016
New CI, just to be extra careful ;-) https://ci.nodejs.org/job/node-test-pull-request/2244/ |
This commit fixes an inconsistency in querystring.escape objects handling compared to native encodeURIComponent function. Fixes: #5309 PR-URL: #5341 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Brian White <[email protected]>
jasnell commented Apr 12, 2016
Landed in 5dafb43 |
silentroach commented Apr 12, 2016
Thank you :} |
This commit fixes an inconsistency in querystring.escape objects handling compared to native encodeURIComponent function. Fixes: #5309 PR-URL: #5341 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Brian White <[email protected]>
querystring.encodeunexpected behavior on objects, see #5309here is specs for
encodeURIComponent- http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4, so object must be casted to string viatoString, not viavalueOf.Here is why: