diff --git a/src/jsdom.cpp b/src/jsdom.cpp index 7f3eef3..9c12bd7 100644 --- a/src/jsdom.cpp +++ b/src/jsdom.cpp @@ -1243,13 +1243,13 @@ Yeah, it makes my head spin too. } else { v = JS_NewObject(jcx, cp, NULL, owner_root); } - vv = OBJECT_TO_JSVAL(v); + JS::RootedValue rvv(jcx, OBJECT_TO_JSVAL(v)); /* if no name, then use id as name */ if(!symname && idname) { - JS_DefineProperty(jcx, owner_root, idname, vv, NULL, NULL, attr); + JS_DefineProperty(jcx, owner_root, idname, rvv, NULL, NULL, attr); } else if(symname && !dupname) { - JS_DefineProperty(jcx, owner_root, symname, vv, NULL, NULL, attr); + JS_DefineProperty(jcx, owner_root, symname, rvv, NULL, NULL, attr); if(stringEqual(symname, "action")) establish_property_bool(v, "actioncrash", eb_true, eb_true); @@ -1259,7 +1259,7 @@ Yeah, it makes my head spin too. establish_property_object(master, symname, v); } else { /* tie this to something, to protect it from gc */ - JS_DefineProperty(jcx, owner_root, fakePropName(), vv, + JS_DefineProperty(jcx, owner_root, fakePropName(), rvv, NULL, NULL, JSPROP_READONLY | JSPROP_PERMANENT); }