JSScript * FreezeThaw(JSContext *cx, JSScript *script) { // freeze uint32_t nbytes; void *memory = JS_EncodeScript(cx, script, &nbytes); if (!memory) return NULL; // thaw script = JS_DecodeScript(cx, memory, nbytes, script->principals, script->originPrincipals); js_free(memory); return script; }
static JSScript * FreezeThaw(JSContext *cx, JS::HandleScript script) { // freeze uint32_t nbytes; void *memory = JS_EncodeScript(cx, script, &nbytes); if (!memory) return nullptr; // thaw JSScript *script2 = JS_DecodeScript(cx, memory, nbytes, script->principals(), script->originPrincipals()); js_free(memory); return script2; }