return Option from GlobalScope::current

handles the case where GlobalScope::current calls CurrentGlobalOrNull
and the result is null
This commit is contained in:
Jyotsna Prakash 2017-06-21 20:34:21 -07:00
parent dfc44a0d35
commit 433cd90bc3
4 changed files with 10 additions and 6 deletions

View file

@ -543,12 +543,16 @@ impl GlobalScope {
///
/// ["current"]: https://html.spec.whatwg.org/multipage/#current
#[allow(unsafe_code)]
pub fn current() -> Root<Self> {
pub fn current() -> Option<Root<Self>> {
unsafe {
let cx = Runtime::get();
assert!(!cx.is_null());
let global = CurrentGlobalOrNull(cx);
global_scope_from_global(global)
if global.is_null() {
None
} else {
Some(global_scope_from_global(global))
}
}
}