diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-01-28 01:48:52 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-01-28 01:48:52 -0700 |
commit | 1a2a08aa501dd0da8bcdf362b55acb31093f5c9c (patch) | |
tree | 46be47bee1de40ff664a8c3469c1b47350d0391d /components/script | |
parent | e122d76fa914375e13e7f3983bfe9d0f660b4d04 (diff) | |
parent | 238f3e2d9189238145151be84b3e3496fabf6853 (diff) | |
download | servo-1a2a08aa501dd0da8bcdf362b55acb31093f5c9c.tar.gz servo-1a2a08aa501dd0da8bcdf362b55acb31093f5c9c.zip |
auto merge of #4717 : Ms2ger/servo/doc-proxy, r=saneyuki
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/bindings/callback.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/cell.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/error.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/global.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/js.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/proxyhandler.rs | 31 | ||||
-rw-r--r-- | components/script/dom/bindings/refcounted.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/str.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/structuredclone.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/utils.rs | 2 | ||||
-rw-r--r-- | components/script/lib.rs | 2 |
13 files changed, 23 insertions, 32 deletions
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs index 3bfc0c107a4..5df336d3fe5 100644 --- a/components/script/dom/bindings/callback.rs +++ b/components/script/dom/bindings/callback.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! Base classes to work with IDL callbacks. use dom::bindings::global::global_object_for_js_object; diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs index 9df1e448cc6..e064bf25bea 100644 --- a/components/script/dom/bindings/cell.rs +++ b/components/script/dom/bindings/cell.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! A shareable mutable container for the DOM. use dom::bindings::trace::JSTraceable; diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 27e9c1682d1..13efe243929 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! Conversions of Rust values to and from `JSVal`. use dom::bindings::codegen::PrototypeList; diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index e6e62473a76..bed13bcc32d 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -4,8 +4,6 @@ //! Utilities to throw exceptions from Rust bindings. -#![deny(missing_docs)] - use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::global::GlobalRef; use dom::domexception::DOMException; diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs index 0343771c77e..b53ab37c880 100644 --- a/components/script/dom/bindings/global.rs +++ b/components/script/dom/bindings/global.rs @@ -7,8 +7,6 @@ //! This module contains smart pointers to global scopes, to simplify writing //! code that works in workers as well as window scopes. -#[deny(missing_docs)] - use dom::bindings::conversions::FromJSValConvertible; use dom::bindings::js::{JS, JSRef, Root}; use dom::bindings::utils::{Reflectable, Reflector}; diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 637ee079a4d..b768489122d 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -44,8 +44,6 @@ //! - `TemporaryPushable`: allows mutating vectors of `JS<T>` with new elements of `JSRef`/`Temporary` //! - `RootedReference`: makes obtaining an `Option<JSRef<T>>` from an `Option<Root<T>>` easy -#![deny(missing_docs)] - use dom::bindings::trace::JSTraceable; use dom::bindings::utils::{Reflector, Reflectable}; use dom::node::Node; diff --git a/components/script/dom/bindings/proxyhandler.rs b/components/script/dom/bindings/proxyhandler.rs index 20bf723513f..53e69c48e84 100644 --- a/components/script/dom/bindings/proxyhandler.rs +++ b/components/script/dom/bindings/proxyhandler.rs @@ -2,7 +2,9 @@ * 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/. */ -///! Utilities for the implementation of JSAPI proxy handlers. +//! Utilities for the implementation of JSAPI proxy handlers. + +#![deny(missing_docs)] use dom::bindings::conversions::is_dom_proxy; use dom::bindings::utils::delete_property_by_id; @@ -25,6 +27,10 @@ use std::ptr; static JSPROXYSLOT_EXPANDO: u32 = 0; +/// Invoke the [[GetOwnProperty]] trap (`getOwnPropertyDescriptor`) on `proxy`, +/// with argument `id` and return the result, if it is not `undefined`. +/// Otherwise, walk along the prototype chain to find a property with that +/// name. pub unsafe extern fn getPropertyDescriptor(cx: *mut JSContext, proxy: *mut JSObject, id: jsid, set: bool, desc: *mut JSPropertyDescriptor) @@ -47,6 +53,7 @@ pub unsafe extern fn getPropertyDescriptor(cx: *mut JSContext, proxy: *mut JSObj JS_GetPropertyDescriptorById(cx, proto, id, JSRESOLVE_QUALIFIED, desc) != 0 } +/// Defines an expando on the given `proxy`. pub unsafe extern fn defineProperty_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid, desc: *mut JSPropertyDescriptor) -> bool { static JSMSG_GETTER_ONLY: libc::c_uint = 160; @@ -63,24 +70,23 @@ pub unsafe extern fn defineProperty_(cx: *mut JSContext, proxy: *mut JSObject, i } let expando = EnsureExpandoObject(cx, proxy); - if expando.is_null() { - return false; - } - return JS_DefinePropertyById(cx, expando, id, (*desc).value, (*desc).getter, (*desc).setter, (*desc).attrs) != 0; } +/// Deletes an expando off the given `proxy`. pub unsafe extern fn delete_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid, bp: *mut bool) -> bool { - let expando = EnsureExpandoObject(cx, proxy); + let expando = GetExpandoObject(proxy); if expando.is_null() { - return false; + *bp = true; + return true; } return delete_property_by_id(cx, expando, id, &mut *bp); } +/// Returns the stringification of an object with class `name`. pub fn _obj_toString(cx: *mut JSContext, name: &str) -> *mut JSString { unsafe { let result = format!("[object {}]", name); @@ -94,6 +100,7 @@ pub fn _obj_toString(cx: *mut JSContext, name: &str) -> *mut JSString { } } +/// Get the expando object, or null if there is none. pub fn GetExpandoObject(obj: *mut JSObject) -> *mut JSObject { unsafe { assert!(is_dom_proxy(obj)); @@ -106,6 +113,8 @@ pub fn GetExpandoObject(obj: *mut JSObject) -> *mut JSObject { } } +/// Get the expando object, or create it if it doesn't exist yet. +/// Fails on JSAPI failure. pub fn EnsureExpandoObject(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObject { unsafe { assert!(is_dom_proxy(obj)); @@ -114,9 +123,7 @@ pub fn EnsureExpandoObject(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObj expando = JS_NewObjectWithGivenProto(cx, ptr::null_mut(), ptr::null_mut(), GetObjectParent(obj)); - if expando.is_null() { - return ptr::null_mut(); - } + assert!(!expando.is_null()); SetProxyExtra(obj, JSPROXYSLOT_EXPANDO, ObjectValue(&*expando)); } @@ -124,6 +131,8 @@ pub fn EnsureExpandoObject(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObj } } +/// Set the property descriptor's object to `obj` and set it to enumerable, +/// and writable if `readonly` is true. pub fn FillPropertyDescriptor(desc: &mut JSPropertyDescriptor, obj: *mut JSObject, readonly: bool) { desc.obj = obj; desc.attrs = if readonly { JSPROP_READONLY } else { 0 } | JSPROP_ENUMERATE; @@ -132,12 +141,14 @@ pub fn FillPropertyDescriptor(desc: &mut JSPropertyDescriptor, obj: *mut JSObjec desc.shortid = 0; } +/// No-op required hook. pub unsafe extern fn getOwnPropertyNames_(_cx: *mut JSContext, _obj: *mut JSObject, _v: *mut AutoIdVector) -> bool { true } +/// No-op required hook. pub unsafe extern fn enumerate_(_cx: *mut JSContext, _obj: *mut JSObject, _v: *mut AutoIdVector) -> bool { true diff --git a/components/script/dom/bindings/refcounted.rs b/components/script/dom/bindings/refcounted.rs index 5a23e7f2027..742f187e061 100644 --- a/components/script/dom/bindings/refcounted.rs +++ b/components/script/dom/bindings/refcounted.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! A generic, safe mechnanism by which DOM objects can be pinned and transferred //! between tasks (or intra-task for asynchronous events). Akin to Gecko's //! nsMainThreadPtrHandle, this uses thread-safe reference counting and ensures diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs index 77653513717..f9ac9947af8 100644 --- a/components/script/dom/bindings/str.rs +++ b/components/script/dom/bindings/str.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! The `ByteString` struct. use std::borrow::ToOwned; diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs index e7baa868187..bdcdc140028 100644 --- a/components/script/dom/bindings/structuredclone.rs +++ b/components/script/dom/bindings/structuredclone.rs @@ -5,8 +5,6 @@ //! This module implements structured cloning, as defined by [HTML] //! (https://html.spec.whatwg.org/multipage/#safe-passing-of-structured-data). -#![deny(missing_docs)] - use dom::bindings::error::Fallible; use dom::bindings::error::Error::DataClone; use dom::bindings::global::GlobalRef; diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index ff329ce6165..1d19d5d8c41 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! Utilities for tracing JS-managed values. //! //! The lifetime of DOM objects is managed by the SpiderMonkey Garbage diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index eef06a16a3b..47543b1f61f 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -2,8 +2,6 @@ * 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/. */ -#![deny(missing_docs)] - //! Various utilities to glue JavaScript and the DOM implementation together. use dom::bindings::codegen::PrototypeList; diff --git a/components/script/lib.rs b/components/script/lib.rs index f24bd11a82e..aab99ec9106 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -56,6 +56,7 @@ pub mod dom { /// The code to expose the DOM to JavaScript through IDL bindings. #[allow(unsafe_blocks)] + #[deny(missing_docs)] pub mod bindings { pub mod cell; pub mod global; @@ -71,6 +72,7 @@ pub mod dom { pub mod trace; /// Generated JS-Rust bindings. + #[allow(missing_docs)] pub mod codegen { #[allow(unrooted_must_root)] pub mod Bindings; |