Wrap ValidityState eagerly.

This commit is contained in:
Ms2ger 2013-10-21 20:04:10 +02:00
parent f3f6e62f7f
commit 66a76961cc
6 changed files with 26 additions and 13 deletions

View file

@ -104,7 +104,8 @@ impl HTMLButtonElement {
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
let global = self.htmlelement.element.node.owner_doc().document().window;
ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {

View file

@ -47,7 +47,8 @@ impl HTMLFieldSetElement {
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
let global = self.htmlelement.element.node.owner_doc().document().window;
ValidityState::new(global)
}
pub fn ValidationMessage(&self) -> DOMString {

View file

@ -79,7 +79,8 @@ impl HTMLObjectElement {
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
let global = self.htmlelement.element.node.owner_doc().document().window;
ValidityState::new(global)
}
pub fn ValidationMessage(&self) -> DOMString {

View file

@ -52,7 +52,8 @@ impl HTMLOutputElement {
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
let global = self.htmlelement.element.node.owner_doc().document().window;
ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {

View file

@ -121,7 +121,8 @@ impl HTMLSelectElement {
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
let global = self.htmlelement.element.node.owner_doc().document().window;
ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {

View file

@ -2,22 +2,30 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::utils::{Reflectable, Reflector};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::bindings::codegen::ValidityStateBinding;
use dom::window::Window;
use js::jsapi::{JSContext, JSObject};
pub struct ValidityState {
reflector_: Reflector,
state: u8
window: @mut Window,
state: u8,
}
impl ValidityState {
pub fn valid() -> ValidityState {
pub fn new_inherited(window: @mut Window) -> ValidityState {
ValidityState {
reflector_: Reflector::new(),
state: 0
window: window,
state: 0,
}
}
pub fn new(window: @mut Window) -> @mut ValidityState {
reflect_dom_object(@mut ValidityState::new_inherited(window), window,
ValidityStateBinding::Wrap)
}
}
impl ValidityState {
@ -67,11 +75,11 @@ impl Reflectable for ValidityState {
&mut self.reflector_
}
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
ValidityStateBinding::Wrap(cx, scope, self)
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
unreachable!();
}
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
None
Some(self.window as @mut Reflectable)
}
}