Bug 558950 - Object.watch should always return undefined (r=Waldo)

This commit is contained in:
Luke Wagner 2010-04-12 17:47:35 -07:00
Родитель 98bb9e8f79
Коммит 98a8aede2d
2 изменённых файлов: 10 добавлений и 2 удалений

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

@ -1518,10 +1518,11 @@ obj_watch(JSContext *cx, uintN argc, jsval *vp)
obj = JS_THIS_OBJECT(cx, vp);
if (!obj || !obj->checkAccess(cx, propid, JSACC_WATCH, &value, &attrs))
return JS_FALSE;
if (attrs & JSPROP_READONLY)
return JS_TRUE;
*vp = JSVAL_VOID;
if (attrs & JSPROP_READONLY)
return JS_TRUE;
if (obj->isDenseArray() && !js_MakeArraySlow(cx, obj))
return JS_FALSE;
return JS_SetWatchPoint(cx, obj, userid, obj_watch_handler, callable);

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

@ -0,0 +1,7 @@
for (var i = 0; i < 5; ++i) {
var o = {}
Object.defineProperty(o, 'x', { value:"cow", writable:false });
var r = o.watch('x', function() {});
assertEq(r, undefined);
o.x = 4;
}