aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/nodeiterator.rs
Commit message (Collapse)AuthorAgeFilesLines
* `cargo fix --edition`Simon Sapin2018-11-061-11/+11
|
* Format script componentchansuke2018-09-191-20/+22
|
* Update concept of node filter algorithmCYBAI2017-10-191-5/+21
|
* Replace all uses of the `heapsize` crate with `malloc_size_of`.Nicholas Nethercote2017-10-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`.
* Remove use of unstable box syntax.Simon Sapin2017-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | http://www.robohornet.org gives a score of 101.36 on master, and 102.68 with this PR. The latter is slightly better, but probably within noise level. So it looks like this PR does not affect DOM performance. This is expected since `Box::new` is defined as: ```rust impl<T> Box<T> { #[inline(always)] pub fn new(x: T) -> Box<T> { box x } } ``` With inlining, it should compile to the same as box syntax.
* Rename Root<T> to DomRoot<T>Anthony Ramine2017-09-261-8/+8
| | | | | | | In a later PR, DomRoot<T> will become a type alias of Root<Dom<T>>, where Root<T> will be able to handle all the things that need to be rooted that have a stable traceable address that doesn't move for the whole lifetime of the root. Stay tuned.
* Rename MutJS<T> to MutDom<T>Anthony Ramine2017-09-261-3/+3
|
* Rename JS<T> to Dom<T>Anthony Ramine2017-09-261-3/+3
|
* Rename dom::bindings::js to dom::bindings::rootAnthony Ramine2017-09-261-1/+1
|
* Untry scriptSimon Sapin2017-06-181-4/+4
|
* Make #[dom_struct] a proc_macro attributeAnthony Ramine2017-02-241-0/+1
|
* Remove and allow some dead code.Ms2ger2016-12-221-3/+0
|
* Remove HeapGCValueAnthony Ramine2016-12-121-3/+3
| | | | | | It could be used to have mutable JSVal fields without GC barriers. With the removal of that trait, MutHeap and MutNullableHeap can respectively be replaced by MutJS and MutNullableJS.
* Remove intrinsic Root::r()Anthony Ramine2016-10-111-8/+8
|
* Make reflect_dom_object take a &GlobalScopeAnthony Ramine2016-10-061-2/+1
|
* Remove empty lines following braces.Josh Matthews2016-05-271-1/+0
|
* Get rid of a bunch of explicit derefsDavid Zbarsky2015-11-031-2/+2
|
* merge from masterrohan.prinja2015-11-031-1/+1
|\
| * Removed JS::root Fixes #8251nxnfufunezn2015-10-311-1/+1
| |
* | more refactoringrohan.prinja2015-10-301-1/+1
|/
* Do not root NodeIterator::root_nodeAnthony Ramine2015-10-191-2/+2
|
* Return a reference in Document::window()Anthony Ramine2015-10-191-2/+1
|
* Fix remaining MutHeap methods not to expose JS<T>.Eli Friedman2015-10-151-8/+8
|
* Fix reported test-tidy errors for unmerged import blocksBrandon Fairchild2015-09-191-1/+0
| | | | This merges import blocks that were reported by tidy as unmerged.
* Make the traits for the IDL interfaces take &selfAnthony Ramine2015-08-271-9/+9
|
* Remove dead code that surfaced when moved outside helper traitAnthony Ramine2015-08-271-4/+0
|
* Remove helper traitsAnthony Ramine2015-08-271-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that JSRef<T> is gone, there is no need to have helper traits. On components/script/*.rs: # Remove imports. /^ *use dom::[a-z]+::\{.*Helpers/ { s/\{(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers, /\{/ s/, (Raw[^L]|[^L][^a])[a-zA-Z]+Helpers([,}])/\2/g s/\{([a-zA-Z]+)\}/\1/ /\{\}/d s/::self;$/;/ } /^ *use dom::[a-z]+::\{?(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers\}?;$/d On components/script/dom/*.rs: # Ignore layout things. /^(pub )?(impl|trait).*Layout.* \{/,/^}$/ { P; D; } # Delete helpers traits. /^(pub )?trait ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? \{$/,/^\}$/D # Patch private helpers. /^impl.*Private.*Helpers/,/^\}$/ { s/^impl<'a> Private([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for &'a ([^ ]+) \{$/impl \3 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, /</g } /^ *(unsafe )?fn /s/\(self([,)])/\(\&self\1/ } # Patch public helpers. /^impl.*Helpers/,/^\}$/ { s/^impl(<'a>)? ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for (&'a )?([^ ]+) \{$/impl \5 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, /</g } /^ *(unsafe )?fn .*\(&?self[,)]/s/(unsafe )?fn/pub &/ /^ *pub (unsafe )?fn /s/\(self([,)])/\(\&self\1/ } The few error cases were then fixed by hand.
* make dom_struct derive HeapSizeOf,João Oliveira2015-08-271-1/+0
| | | | closes #7357
* sort all usesJohann Tuffe2015-08-201-2/+2
|
* Cleanup NodeIterator, Range, ServoHTMLParser, TextEncoder, URLHelper, URL, ↵Manish Goregaokar2015-08-181-2/+2
| | | | VirtualMethods
* Measure heap memory usage for more types. Fixes #6951Bogdan Cuza2015-08-131-0/+3
|
* Refactor #[jstraceable] to #[derive(JSTraceable)]David Winslow2015-07-011-1/+1
| | | | fixes #6524
* Upgrade to SM 39Michael Wu2015-06-191-40/+38
|
* Update NodeIterator code to apply review comments.Jinwoo Song2015-05-281-186/+104
|
* Implement nextNode(), previousNode() and detach() in NodeIteratorJinwoo Song2015-05-271-8/+193
| | | | | First patch to resolve #1235. We need more implementation for handling node removals, and I'll implement in next patch.
* Implement Document.createNodeIterator and rebase patchJinwoo Song2015-05-271-7/+5
|
* Implement more NodeIterator attribute and methodsJinwoo Song2015-05-271-0/+43
| | | | | | Just implement the skelectons - referenceNode attribute - nextNode() and previousNode()
* Implement NodeIterator's attributesJinwoo Song2015-05-271-6/+64
| | | | - root, whatToShow, and filter
* Don't define empty FooMethods traits.Ms2ger2015-03-131-6/+1
|
* Remove manual impls of Reflectors (autogen)Manish Goregaokar2014-12-271-6/+1
| | | | | | | | | Obtained via: `find . -maxdepth 1 -type f -print0 | xargs -0 sed -z -i "s/\\nimpl Reflectable for[^{]*{[^}]*}[^}]*}\\n//"` `find . -maxdepth 1 -type f -print0 |xargs -0 grep -lZ dom_struct | xargs -0 grep -LZ "reflector()\\|Reflector::new" |xargs -0 sed -z -i "s/use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};/use dom::bindings::utils::reflect_dom_object;/"` followed by semi-automated removal of leftover imports
* Updated reflect_dom_object to be passed by valueMichael Booth2014-11-301-1/+1
|
* Use #[dom_struct] everywhereManish Goregaokar2014-10-161-3/+1
|
* Simple privatizationsTim Taubert2014-10-131-1/+2
|
* Made some DOM fields private.ProgramFOX2014-09-261-1/+1
| | | | Relevant to #2242.
* Use JSTraceable everywhereManish Goregaokar2014-09-241-1/+1
|
* Make Reflector #[must_root], propagate to non-HTMLElementsManish Goregaokar2014-09-171-0/+1
|
* Cargoify servoJack Moffitt2014-09-081-0/+35