Bug 682298 - Calling shell-only clear() function with no arguments reads garbage. r=luke.

--HG--
extra : rebase_source : ac11611035f5ebfc0c3b898236f70f9e8d0205b8
This commit is contained in:
Jason Orendorff 2011-08-30 06:10:09 -05:00
Родитель 87b00dccdb
Коммит 2d3dda6542
1 изменённых файлов: 8 добавлений и 3 удалений

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

@ -2666,11 +2666,16 @@ static JSBool
Clear(JSContext *cx, uintN argc, jsval *vp) Clear(JSContext *cx, uintN argc, jsval *vp)
{ {
JSObject *obj; JSObject *obj;
if (argc != 0 && !JS_ValueToObject(cx, JS_ARGV(cx, vp)[0], &obj)) if (argc == 0) {
return JS_FALSE; obj = JS_GetGlobalForScopeChain(cx);
if (!obj)
return false;
} else if (!JS_ValueToObject(cx, JS_ARGV(cx, vp)[0], &obj)) {
return false;
}
JS_ClearScope(cx, obj); JS_ClearScope(cx, obj);
JS_SET_RVAL(cx, vp, JSVAL_VOID); JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE; return true;
} }
static JSBool static JSBool