Skip to content
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

Update to rust-url 1.0 #9840

Merged
merged 6 commits into from Apr 23, 2016
Merged

Correctly initialize URL.searchParams

  • Loading branch information
SimonSapin committed Apr 23, 2016
commit 85de5ec743b68a662d4921cb582cd7af133a1d93
@@ -42,6 +42,10 @@ impl URL {
global, URLBinding::Wrap)
}

pub fn query_pairs(&self) -> Vec<(String, String)> {
self.url.borrow().query_pairs().into_owned().collect()
}

pub fn set_query_pairs(&self, pairs: &[(String, String)]) {
let mut url = self.url.borrow_mut();
url.query_pairs_mut().clear().extend_pairs(pairs);
@@ -31,7 +31,7 @@ impl URLSearchParams {
fn new_inherited(url: Option<&URL>) -> URLSearchParams {
URLSearchParams {
reflector_: Reflector::new(),
list: DOMRefCell::new(vec![]),
list: DOMRefCell::new(url.map_or(Vec::new(), |url| url.query_pairs())),
url: MutableWeakRef::new(url),
}
}
@@ -111,26 +111,28 @@ impl URLSearchParamsMethods for URLSearchParams {

// https://url.spec.whatwg.org/#dom-urlsearchparams-set
fn Set(&self, name: USVString, value: USVString) {
// Step 1.
let mut list = self.list.borrow_mut();
let mut index = None;
let mut i = 0;
list.retain(|&(ref k, _)| {
if index.is_none() {
if k == &name.0 {
index = Some(i);
{
// Step 1.
let mut list = self.list.borrow_mut();
let mut index = None;
let mut i = 0;
list.retain(|&(ref k, _)| {
if index.is_none() {
if k == &name.0 {
index = Some(i);
} else {
i += 1;
}
true
} else {
i += 1;
k != &name.0
}
true
} else {
k != &name.0
}
});
match index {
Some(index) => list[index].1 = value.0,
None => list.push((name.0, value.0)), // Step 2.
};
});
match index {
Some(index) => list[index].1 = value.0,
None => list.push((name.0, value.0)), // Step 2.
};
} // Un-borrow self.list
// Step 3.
self.update_steps();
}
@@ -75,15 +75,6 @@
[Parsing: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank>]
expected: FAIL

[URL.searchParams updating, clearing]
expected: FAIL

[URL.searchParams and URL.search setters, update propagation]
expected: FAIL

[Parsing: <?a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL

[Parsing: <??a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.