Bug 836949 - Remove obj parameter from ValueToId. r=njn

This commit is contained in:
Tom Schuster 2013-04-09 13:33:32 +02:00
Родитель ca281e5ea7
Коммит de620701c5
2 изменённых файлов: 8 добавлений и 17 удалений

Просмотреть файл

@ -63,8 +63,7 @@ ToAtom(JSContext *cx, const js::Value &v)
template <AllowGC allowGC>
inline bool
ValueToId(JSContext* cx, JSObject *obj, const Value &v,
typename MaybeRooted<jsid, allowGC>::MutableHandleType idp)
ValueToId(JSContext* cx, const Value &v, typename MaybeRooted<jsid, allowGC>::MutableHandleType idp)
{
int32_t i;
if (ValueFitsInInt32(v, &i) && INT_FITS_IN_JSID(i)) {
@ -80,14 +79,6 @@ ValueToId(JSContext* cx, JSObject *obj, const Value &v,
return true;
}
template <AllowGC allowGC>
inline bool
ValueToId(JSContext* cx, const Value &v,
typename MaybeRooted<jsid, allowGC>::MutableHandleType idp)
{
return ValueToId<allowGC>(cx, NULL, v, idp);
}
/*
* Write out character representing |index| to the memory just before |end|.
* Thus |*end| is not touched, but |end[-1]| and earlier are modified as

Просмотреть файл

@ -1648,10 +1648,10 @@ BEGIN_CASE(JSOP_AND)
}
END_CASE(JSOP_AND)
#define FETCH_ELEMENT_ID(obj, n, id) \
#define FETCH_ELEMENT_ID(n, id) \
JS_BEGIN_MACRO \
const Value &idval_ = regs.sp[n]; \
if (!ValueToId<CanGC>(cx, obj, idval_, &id)) \
if (!ValueToId<CanGC>(cx, idval_, &id)) \
goto error; \
JS_END_MACRO
@ -1681,7 +1681,7 @@ BEGIN_CASE(JSOP_IN)
RootedObject &obj = rootObject0;
obj = &rref.toObject();
RootedId &id = rootId0;
FETCH_ELEMENT_ID(obj, -2, id);
FETCH_ELEMENT_ID(-2, id);
RootedObject &obj2 = rootObject1;
RootedShape &prop = rootShape0;
if (!JSObject::lookupGeneric(cx, obj, id, &obj2, &prop))
@ -1804,7 +1804,7 @@ BEGIN_CASE(JSOP_ENUMCONSTELEM)
RootedObject &obj = rootObject0;
FETCH_OBJECT(cx, -2, obj);
RootedId &id = rootId0;
FETCH_ELEMENT_ID(obj, -1, id);
FETCH_ELEMENT_ID(-1, id);
if (!JSObject::defineGeneric(cx, obj, id, rval,
JS_PropertyStub, JS_StrictPropertyStub,
JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY)) {
@ -2308,7 +2308,7 @@ BEGIN_CASE(JSOP_SETELEM)
RootedObject &obj = rootObject0;
FETCH_OBJECT(cx, -3, obj);
RootedId &id = rootId0;
FETCH_ELEMENT_ID(obj, -2, id);
FETCH_ELEMENT_ID(-2, id);
Value &value = regs.sp[-1];
if (!SetObjectElementOperation(cx, obj, id, value, script->strict))
goto error;
@ -2325,7 +2325,7 @@ BEGIN_CASE(JSOP_ENUMELEM)
/* Funky: the value to set is under the [obj, id] pair. */
FETCH_OBJECT(cx, -2, obj);
RootedId &id = rootId0;
FETCH_ELEMENT_ID(obj, -1, id);
FETCH_ELEMENT_ID(-1, id);
rval = regs.sp[-3];
if (!JSObject::setGeneric(cx, obj, obj, id, &rval, script->strict))
goto error;
@ -2851,7 +2851,7 @@ BEGIN_CASE(JSOP_SETTER)
/* Ensure that id has a type suitable for use with obj. */
if (JSID_IS_VOID(id))
FETCH_ELEMENT_ID(obj, i, id);
FETCH_ELEMENT_ID(i, id);
if (!js_IsCallable(rval)) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_BAD_GETTER_OR_SETTER,