Bug 547087 - JS_EnumerateStandardClasses uses non-configurable, not non-configurable/non-writable, as attributes for global.undefined. r=jorendorff

This commit is contained in:
Jeff Walden 2010-02-18 19:51:57 -08:00
Родитель 3b2eafa186
Коммит 0dea5494a3
3 изменённых файлов: 28 добавлений и 1 удалений

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

@ -1480,7 +1480,8 @@ JS_EnumerateStandardClasses(JSContext *cx, JSObject *obj)
atom = rt->atomState.typeAtoms[JSTYPE_VOID];
if (!AlreadyHasOwnProperty(cx, obj, atom) &&
!obj->defineProperty(cx, ATOM_TO_JSID(atom), JSVAL_VOID,
JS_PropertyStub, JS_PropertyStub, JSPROP_PERMANENT)) {
JS_PropertyStub, JS_PropertyStub,
JSPROP_PERMANENT | JSPROP_READONLY)) {
return JS_FALSE;
}

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

@ -0,0 +1,25 @@
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
var gTestfile = 'enumerate-undefined.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 547087;
var summary = 'JS_EnumerateStandardClasses uses wrong attributes for undefined';
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
for (var p in this);
assertEq(Object.getOwnPropertyDescriptor(this, "undefined").writable, false);
/******************************************************************************/
reportCompare(true, true);
print("All tests passed!");

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

@ -1,3 +1,4 @@
url-prefix ../../jsreftest.html?test=ecma_5/misc/
script global-numeric-properties.js
script redeclare-var-non-writable-property.js
script enumerate-undefined.js