From d26283c0650d2e748e9918dea155e7118ea3a8e2 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Thu, 4 Dec 2014 15:49:29 +0100 Subject: [PATCH] Implement MutNullableJS::or_init. This will make it easier to implement lazy getters. --- components/script/dom/bindings/js.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 17853287590..f24115a349a 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -248,6 +248,17 @@ impl MutNullableJS { pub unsafe fn get_inner(&self) -> Option> { self.ptr.get() } + + pub fn or_init(&self, cb: || -> Temporary) -> Temporary { + match self.get() { + Some(inner) => inner, + None => { + let inner = cb(); + self.assign(Some(inner)); + inner + }, + } + } } impl JS {