Bug 573578: intern string before converting to jsid in PropertyOpForwarder

This commit is contained in:
David Mandelin
2010-06-21 16:07:31 -07:00
parent 070848573c
commit ebbd4ed392
3 changed files with 27 additions and 13 deletions

View File

@@ -111,6 +111,22 @@ using namespace js;
JS_PUBLIC_DATA(jsid) JSID_VOID = { (size_t)JSID_VOID_TYPE };
#endif
JS_FRIEND_API(JSBool)
JSVAL_TO_JSID(JSContext *cx, const jsval *vp, jsid *id)
{
const jsval &v = *vp;
if (JSVAL_IS_STRING(v))
return js_ValueToStringId(cx, js::Valueify(v), id);
if (JSVAL_IS_INT(v))
*id = INT_TO_JSID(JSVAL_TO_INT(v));
else if (JSVAL_IS_VOID(v))
*id = JSID_VOID;
else
*id = OBJECT_TO_JSID(JSVAL_TO_OBJECT(v));
return true;
}
JS_PUBLIC_API(int64)
JS_Now()
{