mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Add XPath parser/evaluator (#34463)
* Add XPath parser/evaluator Signed-off-by: Ville Lindholm <ville@lindholm.dev> * Correctly annotate XPathEvaluator IDL Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: have bindings pass in `can_gc` Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: add docstrings Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: implement PartialEq for Value for readability Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: add docstrings for CoreFunctions Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: simplify node test code Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: add unit tests for string handling xpath functions Signed-off-by: Ville Lindholm <ville@lindholm.dev> * put xpath features behind dom.xpath.enabled pref Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review] remove rstest and insta dev-deps Signed-off-by: Ville Lindholm <ville@lindholm.dev> * update wpt test expectations Signed-off-by: Ville Lindholm <ville@lindholm.dev> * [PR review]: tweak metadata files Signed-off-by: Ville Lindholm <ville@lindholm.dev> * update wpt test expectations AGAIN Signed-off-by: Ville Lindholm <ville@lindholm.dev> --------- Signed-off-by: Ville Lindholm <ville@lindholm.dev>
This commit is contained in:
parent
264c0f972f
commit
bc7fe41a02
36 changed files with 6426 additions and 314 deletions
|
@ -10,7 +10,7 @@ use std::default::Default;
|
|||
use std::ops::Range;
|
||||
use std::slice::from_ref;
|
||||
use std::sync::Arc as StdArc;
|
||||
use std::{cmp, iter};
|
||||
use std::{cmp, fmt, iter};
|
||||
|
||||
use app_units::Au;
|
||||
use base::id::{BrowsingContextId, PipelineId};
|
||||
|
@ -168,6 +168,23 @@ pub struct Node {
|
|||
layout_data: DomRefCell<Option<Box<GenericLayoutData>>>,
|
||||
}
|
||||
|
||||
impl fmt::Debug for Node {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
if matches!(self.type_id(), NodeTypeId::Element(_)) {
|
||||
let el = self.downcast::<Element>().unwrap();
|
||||
el.fmt(f)
|
||||
} else {
|
||||
write!(f, "[Node({:?})]", self.type_id())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Debug for DomRoot<Node> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
(**self).fmt(f)
|
||||
}
|
||||
}
|
||||
|
||||
/// Flags for node items
|
||||
#[derive(Clone, Copy, JSTraceable, MallocSizeOf)]
|
||||
pub struct NodeFlags(u16);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue