aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/customelementregistry.rs
diff options
context:
space:
mode:
authorConnor Brewster <connor.brewster@eagles.oc.edu>2017-07-07 15:18:23 -0600
committerConnor Brewster <connor.brewster@eagles.oc.edu>2017-07-17 22:23:47 -0600
commit9b587a4f2d1d8abc70fa6d6220ac31e6dac32c72 (patch)
tree56b448f2841d0dd44cf8ce34fc063fae88d85737 /components/script/dom/customelementregistry.rs
parent46659915036bb44e73e7ef2696ea9f35105f1659 (diff)
downloadservo-9b587a4f2d1d8abc70fa6d6220ac31e6dac32c72.tar.gz
servo-9b587a4f2d1d8abc70fa6d6220ac31e6dac32c72.zip
Invoke backup element queue via a microtask
Diffstat (limited to 'components/script/dom/customelementregistry.rs')
-rw-r--r--components/script/dom/customelementregistry.rs11
1 files changed, 4 insertions, 7 deletions
diff --git a/components/script/dom/customelementregistry.rs b/components/script/dom/customelementregistry.rs
index 6077130c6c4..0d151abb127 100644
--- a/components/script/dom/customelementregistry.rs
+++ b/components/script/dom/customelementregistry.rs
@@ -29,6 +29,8 @@ use js::conversions::ToJSValConvertible;
use js::jsapi::{Construct1, IsCallable, IsConstructor, HandleValueArray, HandleObject, MutableHandleValue};
use js::jsapi::{Heap, JS_GetProperty, JSAutoCompartment, JSContext};
use js::jsval::{JSVal, NullValue, ObjectValue, UndefinedValue};
+use microtask::Microtask;
+use script_thread::ScriptThread;
use std::cell::Cell;
use std::collections::{HashMap, VecDeque};
use std::ops::Deref;
@@ -532,13 +534,7 @@ impl CustomElementReactionStack {
self.processing_backup_element_queue.set(BackupElementQueueFlag::Processing);
// Step 4
- // TODO: Invoke Microtask
-
- // Step 4.1
- self.backup_queue.invoke_reactions();
-
- // Step 4.2
- self.processing_backup_element_queue.set(BackupElementQueueFlag::NotProcessing);
+ ScriptThread::enqueue_microtask(Microtask::CustomElementReaction);
}
/// https://html.spec.whatwg.org/multipage/#enqueue-a-custom-element-callback-reaction
@@ -630,6 +626,7 @@ impl ElementQueue {
while let Some(element) = self.next_element() {
element.invoke_reactions()
}
+ self.queue.borrow_mut().clear();
}
fn next_element(&self) -> Option<Root<Element>> {