Bug 880842 - Guard against null temporary drawing surface r=mattwoodrow

--HG--
extra : rebase_source : e6bf619b17c641ed33438ad43c1b0ba085a366b0
Bug 856410 - Implement futures - Part 0: ErrorResult::StealJSException. r=bz
Bug 856410 - Implement futures - Part 1: Constructor, webidl, Done(). r=mounir, r=bz
Bug 856410 - Implement futures - Part 2: Future.then() and Future.catch(). r=mounir, r=bz, r=smaug
Bug 856410 - Implement futures - Part 3: resolver.resolve(new Future(). r=mounir
Bug 856410 - Implement futures - Part 4: Future.accept, Future.reject, Future.resolve. r=mounir
Bug 856410 - Implement futures - Part 5: Put futures behind a pref. r=mounir
Bug 856410 - Implement futures - Part 6: Additional tests. r=mounir