Bug 1301189 - Use ExposeObjectToActiveJS in nsModuleScript. r=smaug
These GC things can be passed to the JS engine, so we should make sure
they are not marked gray.
MozReview-Commit-ID: GJDogXSuqYh
--- a/dom/base/nsScriptLoader.cpp
+++ b/dom/base/nsScriptLoader.cpp
@@ -309,18 +309,28 @@ public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsModuleScript)
nsModuleScript(nsScriptLoader* aLoader,
nsIURI* aBaseURL,
JS::Handle<JSObject*> aModuleRecord);
nsScriptLoader* Loader() const { return mLoader; }
- JSObject* ModuleRecord() const { return mModuleRecord; }
- JS::Value Exception() const { return mException; }
+ JSObject* ModuleRecord() const
+ {
+ if (mModuleRecord) {
+ JS::ExposeObjectToActiveJS(mModuleRecord);
+ }
+ return mModuleRecord;
+ }
+ JS::Value Exception() const
+ {
+ JS::ExposeValueToActiveJS(mException);
+ return mException;
+ }
nsIURI* BaseURL() const { return mBaseURL; }
void SetInstantiationResult(JS::Handle<JS::Value> aMaybeException);
bool IsUninstantiated() const {
return mInstantiationState == Uninstantiated;
}
bool IsInstantiated() const {
return mInstantiationState == Instantiated;