diff options
author | Connor Brewster <connor.brewster@eagles.oc.edu> | 2017-07-07 15:18:23 -0600 |
---|---|---|
committer | Connor Brewster <connor.brewster@eagles.oc.edu> | 2017-07-17 22:23:47 -0600 |
commit | 9b587a4f2d1d8abc70fa6d6220ac31e6dac32c72 (patch) | |
tree | 56b448f2841d0dd44cf8ce34fc063fae88d85737 /components/script/dom/customelementregistry.rs | |
parent | 46659915036bb44e73e7ef2696ea9f35105f1659 (diff) | |
download | servo-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.rs | 11 |
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>> { |