Exact stack rooting for ScriptInterface::ToString.

I had to change a few other functions to take JS::MutableHandleValue
because JS::Stringify takes a JS::MutableHandleValue as input parameter.
That seems a bit strange because it should not change that value.
I assume it has historical reasons.

Refs #2415
Refs #2462

This was SVN commit r15605.
This commit is contained in:
Yves
2014-08-03 17:29:49 +00:00
parent 1561f55b27
commit 169174824f
16 changed files with 50 additions and 39 deletions
+2 -1
View File
@@ -265,7 +265,8 @@ public:
template<typename CHAR> bool Eval(const CHAR* code, JS::MutableHandleValue out);
template<typename T, typename CHAR> bool Eval(const CHAR* code, T& out);
std::wstring ToString(jsval obj, bool pretty = false);
// We have to use a mutable handle because JS_Stringify requires that for unknown reasons.
std::wstring ToString(JS::MutableHandleValue obj, bool pretty = false);
/**
* Parse a UTF-8-encoded JSON string. Returns the unmodified value on error and prints an error message.