mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Remove leading question mark when constructing URLSearchParams
This commit is contained in:
parent
f4aafe8caa
commit
9de8e7adc0
3 changed files with 17 additions and 4 deletions
|
@ -54,9 +54,17 @@ impl URLSearchParams {
|
|||
match init {
|
||||
Some(USVStringOrURLSearchParams::USVString(init)) => {
|
||||
// Step 2.
|
||||
*query.list.borrow_mut() = form_urlencoded::parse(init.0.as_bytes())
|
||||
.into_owned()
|
||||
.collect();
|
||||
let init_bytes = match init.0.chars().next() {
|
||||
Some(first_char) if first_char == '?' => {
|
||||
let (_, other_bytes) = init.0.as_bytes().split_at(1);
|
||||
|
||||
other_bytes
|
||||
},
|
||||
_ => init.0.as_bytes(),
|
||||
};
|
||||
|
||||
*query.list.borrow_mut() =
|
||||
form_urlencoded::parse(init_bytes).into_owned().collect();
|
||||
},
|
||||
Some(USVStringOrURLSearchParams::URLSearchParams(init)) => {
|
||||
// Step 3.
|
||||
|
|
|
@ -674610,7 +674610,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"url/urlsearchparams-constructor.any.js": [
|
||||
"6fff03f00fdddd915f91bbec7973ebc1326b3b5a",
|
||||
"398021dde2f35f427399c639871bfbb8106a3279",
|
||||
"testharness"
|
||||
],
|
||||
"url/urlsearchparams-delete.any.js": [
|
||||
|
|
|
@ -14,6 +14,11 @@ test(function() {
|
|||
assert_equals(params.toString(), "")
|
||||
}, "URLSearchParams constructor, no arguments")
|
||||
|
||||
test(function () {
|
||||
var params = new URLSearchParams("?a=b")
|
||||
assert_equals(params.toString(), "a=b")
|
||||
}, 'URLSearchParams constructor, remove leading "?"')
|
||||
|
||||
test(() => {
|
||||
var params = new URLSearchParams(DOMException);
|
||||
assert_equals(params.toString(), "INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21"A_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue