summaryrefslogtreecommitdiff
path: root/lib/querystring.js
AgeCommit message (Collapse)AuthorFilesLines
2015-06-11lib: don't use global BufferRoman Reiss1-0/+1
Port of https://github.com/joyent/node/pull/8603 The race condition present in the original PR didn't occur, so no workaround was needed. PR-URL: https://github.com/nodejs/io.js/pull/1794 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-05-09lib: fix eslint stylesYosuke Furukawa1-1/+1
PR-URL: https://github.com/iojs/io.js/pull/1539 Fixes: https://github.com/iojs/io.js/issues/1253 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
2015-03-19querystring: fix broken stringifyPrimitiveJeremiah Senkpiel1-1/+3
stringifyPrimitive has always failed to stringify numbers since its introduction in 422d3c9. This went uncaught due to encodeURIComponent's string coercion. Fixes: https://github.com/iojs/io.js/issues/1208 PR-URL: https://github.com/iojs/io.js/pull/1213 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Brian White <mscdex@mscdex.net>
2015-03-19querystring: parse numbers correctlyJeremiah Senkpiel1-0/+3
Fixes a number parsing regression introduced in 85a92a3 Fixes: https://github.com/iojs/io.js/issues/1208 PR-URL: https://github.com/iojs/io.js/pull/1213 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Brian White <mscdex@mscdex.net>
2015-03-15querystring: optimize parse and stringifyBrian White1-35/+90
parse optimizations: * Move try-catch to separate function to keep entire function from being deoptimized. * Use key array lookup instead of using hasOwnProperty. * Avoid decoding known empty strings. * Avoid possibly unnecessary switch to slower decoder for values if key decoding throws. stringify optimizations: * Use manual loop for default encoder instead of encodeURIComponent. * Use string concatenation instead of joining an array of strings. * Avoid caching result of typeof. PR-URL: https://github.com/iojs/io.js/pull/847 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-01-31lib: reduce util.is*() usagecjihrig1-10/+10
Many of the util.is*() methods used to check data types simply compare against a single value or the result of typeof. This commit replaces calls to these methods with equivalent checks. This commit does not touch calls to the more complex methods (isRegExp(), isDate(), etc.). Fixes: https://github.com/iojs/io.js/issues/607 PR-URL: https://github.com/iojs/io.js/pull/647 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-21lib: use const to define constantscjihrig1-2/+2
This commit replaces a number of var statements throughout the lib code with const statements. PR-URL: https://github.com/iojs/io.js/pull/541 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-12Remove excessive copyright/license boilerplateisaacs1-21/+0
The copyright and license notice is already in the LICENSE file. There is no justifiable reason to also require that it be included in every file, since the individual files are not individually distributed except as part of the entire package.
2014-11-22lib: turn on strict modeBen Noordhuis1-0/+2
Turn on strict mode for the files in the lib/ directory. It helps catch bugs and can have a positive effect on performance. PR-URL: https://github.com/node-forward/node/pull/64 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-09-16Merge remote-tracking branch 'upstream/v0.10' into v0.12Timothy J Fontaine1-2/+6
Conflicts: ChangeLog deps/v8/src/hydrogen.cc lib/http.js lib/querystring.js src/node_crypto.cc src/node_version.h test/simple/test-querystring.js
2014-08-27querystring: fix unescape overrideTristan Berger1-8/+7
Documentation states that `querystring.unescape` may be overridden to replace unescaper during parsing. However, the function was only being used as a fallback for when the native decoder throws (on a malformed URL). This patch moves the call to the native function and the try/catch around it into querystring.unescape then has the parser always invoke it, so that an override will always be used. Fixes #4055 Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-07-24querystring: do not add sep for empty arraycjihrig1-10/+13
Currently, stringification of an empty array outputs a single separator character. This commit causes an empty array to output the empty string. Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-05-22querystring: custom encode and decodefengmk21-7/+16
Not all querystring are utf-8 encoding, make querystring can be used to encode / decode `non-utf8` encoding string if necessary. Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2013-12-30querystring: remove `name` from `stringify()`Yorkie1-5/+2
QueryString.stringify() allowed a fourth argument that was used as a conditional in the return value, but was undocumented, not used by core and always was always false/undefiend. So the argument and conditional have been removed. Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2013-12-20Revert "util: more strict check for bool/number/string"Trevor Norris1-1/+1
This reverts commit 95ee84fabe0b028ef964cc1032cd56a6cf89cb0e.
2013-12-18util: more strict check for bool/number/stringYorkie1-1/+1
2013-08-01src: Replace macros with util functionsisaacs1-9/+10
2013-07-24lib: macro-ify type checksBen Noordhuis1-19/+13
Increases the grep factor. Makes it easier to harmonize type checks across the code base.
2013-04-01querystring: Removing unnecessary bindingMitar1-1/+0
Binding of `http_parser` in querystring isn't used anywhere and should be removed.
2012-06-19trivial: Doc typo and lint fixisaacs1-1/+1
2012-06-16querystring: improved speed and code cleanupFelix Böhm1-38/+38
2012-05-11Fix #3058 querystring: Fix incorrect handling of empty keysisaacs1-0/+5
2012-02-22lint, missed in QS speed mergeisaacs1-1/+1
2012-02-21Make QueryString.parse() even fasterBrian White1-11/+13
2012-02-18Lint all the JavaScripts.isaacs1-3/+3
2012-02-06Merge remote-tracking branch 'ry/v0.6'isaacs1-3/+11
Conflicts: ChangeLog deps/v8/src/version.cc deps/v8/tools/gyp/v8.gyp doc/about/index.html doc/community/index.html doc/index.html doc/logos/index.html doc/template.html lib/path.js lib/querystring.js src/node_version.h
2012-02-01Make QueryString.parse run fasterPhilip Tellis1-3/+11
Use decodeURIComponent when appropriate, and only fall back to querystring.decode if it throws, or if the character is a '+'. Fix #2248
2012-01-16querystring: fix maxKeys = 0 is ignoredFedor Indutny1-1/+6
2012-01-16http, querystring: added limits to prevent DoSFedor Indutny1-3/+11
2011-09-15Fix #1707 hasOwnProperty usageisaacs1-2/+5
If hasOwnProperty is overridden, then calling `obj.hasOwnProperty(prop)` can fail. Any time a dictionary of user-generated items is built, we cannot rely on hasOwnProperty being safe, so must call it from the Object.prototype explicitly.
2011-09-15Fix #1707 hasOwnProperty usageisaacs1-1/+6
2011-08-11Fix #1497 querystring: Replace 'in' test with 'hasOwnProperty'isaacs1-1/+1
2011-03-14Update copyright headersRyan Dahl1-0/+21
2010-12-20url.parse(url, true) defaults query field to {}Jeremy Martin1-1/+1
2010-12-01more lintRyan Dahl1-41/+29
2010-11-18Add querystring.unescapeBufferRyan Dahl1-2/+7
2010-11-18query-string unescape moved to js landRyan Dahl1-1/+71
2010-09-13Get rid of PHP/Rails style parameter munging.Peter Griess1-73/+56
- Handle only the most basic of query string parsing and construction. Leave the rest (e.g. Rails/PHP behaviors) to modules higher up the stack, like Express.
2010-08-05querystring.parse: handle undefined value properlycloudhead1-0/+1
2010-07-19querystring: Removing typecasting of numeric strings to numbersMicheil Smith1-1/+0
The tests did not accurately test for a strict equality, meaning that the number == to the string.
2010-07-19querystring.stringify is now more solidJan Kassens1-29/+13
* handles NaN and Infinity * works with arrays from other contexts
2010-06-29Rewrote QueryString.parse to make it smaller and more effective.Dmitry Baranovskiy1-99/+67
Also added ability to parse foo.bar=4 equal to foo[bar]=4 Added tests for this as well
2010-06-29Refactored isA, isBool, etc functions to use some of ES5 goodness.Dmitry Baranovskiy1-30/+17
2010-06-15A replacement for decodeURIComponent that doesn't throw.isaacs1-23/+11
And add a few more tests.
2010-04-28Allow callers to disable PHP/Rails style parameter mungeing in ↵Thomas Lee1-4/+6
querystring.stringify
2010-04-12Replace slow and broken for..in loops with faster for loops over the keys.Tim Caswell1-6/+12
2010-04-11trailing whitespace fixesisaacs1-8/+8
2010-03-05Bugfix in querystringRyan Dahl1-1/+1
2010-01-04Add URL and QueryString modules, and tests for each.isaacs1-0/+177
Also, make a slight change from original on url-module to put the spacePattern into the function. On closer inspection, it turns out that the nonlocal-var cost is higher than the compiling-a-regexp cost. Also, documentation.