Backed out changeset fcd3fcf8a35c. It broke deep wrapping.

This commit is contained in:
Blake Kaplan 2010-10-29 12:55:23 -07:00
parent 0b4a0f77a0
commit 1fdf3815f1
14 changed files with 65 additions and 120 deletions

View File

@ -688,7 +688,7 @@ js_GetDenseArrayElementValue(JSContext *cx, JSObject *obj, jsid id, Value *vp)
}
static JSBool
array_getProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
array_getProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
uint32 i;
@ -754,8 +754,7 @@ array_typeOf(JSContext *cx, JSObject *obj)
}
static JSBool
array_setProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict)
array_setProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
uint32 i;
@ -782,8 +781,7 @@ array_setProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Val
}
static JSBool
slowarray_setProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict)
slowarray_setProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
JS_ASSERT(obj->isSlowArray());
@ -851,7 +849,7 @@ array_defineProperty(JSContext *cx, JSObject *obj, jsid id, const Value *value,
}
Value tmp = *value;
return array_setProperty(cx, obj, obj, id, &tmp, false);
return array_setProperty(cx, obj, id, &tmp, false);
}
static JSBool

View File

@ -4422,7 +4422,7 @@ BEGIN_CASE(JSOP_SETMETHOD)
defineHow = JSDNP_CACHE_RESULT | JSDNP_UNQUALIFIED;
else
defineHow = JSDNP_CACHE_RESULT;
if (!js_SetPropertyHelper(cx, obj, obj, id, defineHow, &rval, script->strictModeCode))
if (!js_SetPropertyHelper(cx, obj, id, defineHow, &rval, script->strictModeCode))
goto error;
} else {
if (!obj->setProperty(cx, id, &rval, script->strictModeCode))
@ -5980,7 +5980,7 @@ BEGIN_CASE(JSOP_INITMETHOD)
? JSDNP_CACHE_RESULT | JSDNP_SET_METHOD
: JSDNP_CACHE_RESULT;
if (!(JS_UNLIKELY(atom == cx->runtime->atomState.protoAtom)
? js_SetPropertyHelper(cx, obj, obj, id, defineHow, &rval, script->strictModeCode)
? js_SetPropertyHelper(cx, obj, id, defineHow, &rval, script->strictModeCode)
: js_DefineNativeProperty(cx, obj, id, rval, NULL, NULL,
JSPROP_ENUMERATE, 0, 0, NULL,
defineHow))) {

View File

@ -3021,14 +3021,13 @@ with_LookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
}
static JSBool
with_GetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
with_GetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
return obj->getProto()->getProperty(cx, id, vp);
}
static JSBool
with_SetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict)
with_SetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
return obj->getProto()->setProperty(cx, id, vp, strict);
}
@ -4932,7 +4931,7 @@ js_NativeSet(JSContext *cx, JSObject *obj, const Shape *shape, bool added, Value
}
static JS_ALWAYS_INLINE bool
js_GetPropertyHelperWithShapeInline(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
js_GetPropertyHelperWithShapeInline(JSContext *cx, JSObject *obj, jsid id,
uintN getHow, Value *vp,
const Shape **shapeOut, JSObject **holderOut)
{
@ -5018,11 +5017,8 @@ js_GetPropertyHelperWithShapeInline(JSContext *cx, JSObject *obj, JSObject *rece
return JS_TRUE;
}
if (!obj2->isNative()) {
return obj2->isProxy()
? JSProxy::get(cx, obj2, receiver, id, vp)
: obj2->getProperty(cx, id, vp);
}
if (!obj2->isNative())
return obj2->getProperty(cx, id, vp);
shape = (Shape *) prop;
*shapeOut = shape;
@ -5033,41 +5029,39 @@ js_GetPropertyHelperWithShapeInline(JSContext *cx, JSObject *obj, JSObject *rece
}
/* This call site is hot -- use the always-inlined variant of js_NativeGet(). */
if (!js_NativeGetInline(cx, receiver, obj2, shape, getHow, vp))
if (!js_NativeGetInline(cx, obj, obj2, shape, getHow, vp))
return JS_FALSE;
return JS_TRUE;
}
bool
js_GetPropertyHelperWithShape(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
extern bool
js_GetPropertyHelperWithShape(JSContext *cx, JSObject *obj, jsid id,
uint32 getHow, Value *vp,
const Shape **shapeOut, JSObject **holderOut)
{
return js_GetPropertyHelperWithShapeInline(cx, obj, receiver, id, getHow, vp,
shapeOut, holderOut);
return js_GetPropertyHelperWithShapeInline(cx, obj, id, getHow, vp, shapeOut, holderOut);
}
static JS_ALWAYS_INLINE JSBool
js_GetPropertyHelperInline(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
uint32 getHow, Value *vp)
js_GetPropertyHelperInline(JSContext *cx, JSObject *obj, jsid id, uint32 getHow, Value *vp)
{
const Shape *shape;
JSObject *holder;
return js_GetPropertyHelperWithShapeInline(cx, obj, receiver, id, getHow, vp, &shape, &holder);
return js_GetPropertyHelperWithShapeInline(cx, obj, id, getHow, vp, &shape, &holder);
}
JSBool
extern JSBool
js_GetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, uint32 getHow, Value *vp)
{
return js_GetPropertyHelperInline(cx, obj, obj, id, getHow, vp);
return js_GetPropertyHelperInline(cx, obj, id, getHow, vp);
}
JSBool
js_GetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
js_GetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
/* This call site is hot -- use the always-inlined variant of js_GetPropertyHelper(). */
return js_GetPropertyHelperInline(cx, obj, receiver, id, JSGET_METHOD_BARRIER, vp);
return js_GetPropertyHelperInline(cx, obj, id, JSGET_METHOD_BARRIER, vp);
}
JSBool
@ -5103,7 +5097,7 @@ js_GetMethod(JSContext *cx, JSObject *obj, jsid id, uintN getHow, Value *vp)
if (obj->isXML())
return js_GetXMLMethod(cx, obj, id, vp);
#endif
return op(cx, obj, obj, id, vp);
return op(cx, obj, id, vp);
}
JS_FRIEND_API(bool)
@ -5158,7 +5152,7 @@ JSObject::reportNotExtensible(JSContext *cx, uintN report)
* (defineHow & JSDNP_CACHE_RESULT).
*/
JSBool
js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, uintN defineHow,
js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, uintN defineHow,
Value *vp, JSBool strict)
{
int protoIndex;
@ -5184,11 +5178,8 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
if (protoIndex < 0)
return JS_FALSE;
if (prop) {
if (!pobj->isNative()) {
if (pobj->isProxy())
return JSProxy::set(cx, pobj, receiver, id, vp);
if (!pobj->isNative())
prop = NULL;
}
} else {
/* We should never add properties to lexical blocks. */
JS_ASSERT(!obj->isBlock());
@ -5245,7 +5236,7 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
}
attrs = shape->attributes();
if (pobj != receiver) {
if (pobj != obj) {
/*
* We found id in a prototype object: prepare to share or shadow.
*
@ -5264,7 +5255,7 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
if (shape->hasDefaultSetter() && !shape->hasGetterValue())
return JS_TRUE;
return shape->set(cx, receiver, vp);
return shape->set(cx, obj, vp);
}
/* Restore attrs to the ECMA default for new properties. */
@ -5386,9 +5377,9 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
}
JSBool
js_SetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp, JSBool strict)
js_SetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
return js_SetPropertyHelper(cx, obj, receiver, id, 0, vp, strict);
return js_SetPropertyHelper(cx, obj, id, 0, vp, strict);
}
JSBool

View File

@ -209,13 +209,7 @@ js_DefineProperty(JSContext *cx, JSObject *obj, jsid id, const js::Value *value,
js::PropertyOp getter, js::PropertyOp setter, uintN attrs);
extern JSBool
js_GetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, js::Value *vp);
inline JSBool
js_GetProperty(JSContext *cx, JSObject *obj, jsid id, js::Value *vp)
{
return js_GetProperty(cx, obj, obj, id, vp);
}
js_GetProperty(JSContext *cx, JSObject *obj, jsid id, js::Value *vp);
namespace js {
@ -225,14 +219,7 @@ GetPropertyDefault(JSContext *cx, JSObject *obj, jsid id, Value def, Value *vp);
} /* namespace js */
extern JSBool
js_SetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, js::Value *vp,
JSBool strict);
inline JSBool
js_SetProperty(JSContext *cx, JSObject *obj, jsid id, js::Value *vp, JSBool strict)
{
return js_SetProperty(cx, obj, obj, id, vp, strict);
}
js_SetProperty(JSContext *cx, JSObject *obj, jsid id, js::Value *vp, JSBool strict);
extern JSBool
js_GetAttributes(JSContext *cx, JSObject *obj, jsid id, uintN *attrsp);
@ -1077,23 +1064,14 @@ struct JSObject : js::gc::Cell {
return (op ? op : js_DefineProperty)(cx, this, id, &value, getter, setter, attrs);
}
JSBool getProperty(JSContext *cx, JSObject *receiver, jsid id, js::Value *vp) {
js::PropertyIdOp op = getOps()->getProperty;
return (op ? op : (js::PropertyIdOp)js_GetProperty)(cx, this, receiver, id, vp);
}
JSBool getProperty(JSContext *cx, jsid id, js::Value *vp) {
return getProperty(cx, this, id, vp);
}
JSBool setProperty(JSContext *cx, JSObject *receiver, jsid id, js::Value *vp, JSBool strict) {
js::StrictPropertyIdOp op = getOps()->setProperty;
return (op ? op : (js::StrictPropertyIdOp)js_SetProperty)(cx, this, receiver, id,
vp, strict);
js::PropertyIdOp op = getOps()->getProperty;
return (op ? op : js_GetProperty)(cx, this, id, vp);
}
JSBool setProperty(JSContext *cx, jsid id, js::Value *vp, JSBool strict) {
return setProperty(cx, this, id, vp, strict);
js::StrictPropertyIdOp op = getOps()->setProperty;
return (op ? op : js_SetProperty)(cx, this, id, vp, strict);
}
JSBool getAttributes(JSContext *cx, jsid id, uintN *attrsp) {
@ -1107,7 +1085,7 @@ struct JSObject : js::gc::Cell {
}
JSBool deleteProperty(JSContext *cx, jsid id, js::Value *rval, JSBool strict) {
js::DeleteIdOp op = getOps()->deleteProperty;
js::StrictPropertyIdOp op = getOps()->deleteProperty;
return (op ? op : js_DeleteProperty)(cx, this, id, rval, strict);
}
@ -1591,9 +1569,8 @@ extern JSBool
js_GetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, uint32 getHow, js::Value *vp);
extern bool
js_GetPropertyHelperWithShape(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id,
uint32 getHow, js::Value *vp,
const js::Shape **shapeOut, JSObject **holderOut);
js_GetPropertyHelperWithShape(JSContext *cx, JSObject *obj, jsid id, uint32 getHow,
js::Value *vp, const js::Shape **shapeOut, JSObject **holderOut);
extern JSBool
js_GetOwnPropertyDescriptor(JSContext *cx, JSObject *obj, jsid id, js::Value *vp);
@ -1611,7 +1588,7 @@ extern JS_FRIEND_API(bool)
js_CheckUndeclaredVarAssignment(JSContext *cx, JSString *propname);
extern JSBool
js_SetPropertyHelper(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, uintN defineHow,
js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, uintN defineHow,
js::Value *vp, JSBool strict);
/*

View File

@ -153,7 +153,7 @@ JSObject::methodReadBarrier(JSContext *cx, const js::Shape &shape, js::Value *vp
funobj->setMethodObj(*this);
vp->setObject(*funobj);
if (!js_SetPropertyHelper(cx, this, this, shape.id, 0, vp, false))
if (!js_SetPropertyHelper(cx, this, shape.id, 0, vp, false))
return false;
#ifdef DEBUG

View File

@ -127,7 +127,7 @@ JSProxyHandler::get(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id,
return true;
}
if (desc.attrs & JSPROP_GETTER) {
return ExternalGetOrSet(cx, receiver, id, CastAsObjectJsval(desc.getter),
return ExternalGetOrSet(cx, proxy, id, CastAsObjectJsval(desc.getter),
JSACC_READ, 0, NULL, vp);
}
if (!(desc.attrs & JSPROP_SHARED))
@ -136,7 +136,7 @@ JSProxyHandler::get(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id,
vp->setUndefined();
if (desc.attrs & JSPROP_SHORTID)
id = INT_TO_JSID(desc.shortid);
return CallJSPropertyOp(cx, desc.getter, receiver, id, vp);
return CallJSPropertyOp(cx, desc.getter, proxy, id, vp);
}
bool
@ -150,12 +150,12 @@ JSProxyHandler::set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id,
if (desc.obj) {
if (desc.setter && ((desc.attrs & JSPROP_SETTER) || desc.setter != PropertyStub)) {
if (desc.attrs & JSPROP_SETTER) {
return ExternalGetOrSet(cx, receiver, id, CastAsObjectJsval(desc.setter),
return ExternalGetOrSet(cx, proxy, id, CastAsObjectJsval(desc.setter),
JSACC_WRITE, 1, vp, vp);
}
if (desc.attrs & JSPROP_SHORTID)
id = INT_TO_JSID(desc.shortid);
return CallJSPropertyOpSetter(cx, desc.setter, receiver, id, vp);
return CallJSPropertyOpSetter(cx, desc.setter, proxy, id, vp);
}
if (desc.attrs & JSPROP_READONLY)
return true;
@ -167,12 +167,12 @@ JSProxyHandler::set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id,
if (desc.obj) {
if (desc.setter && ((desc.attrs & JSPROP_SETTER) || desc.setter != PropertyStub)) {
if (desc.attrs & JSPROP_SETTER) {
return ExternalGetOrSet(cx, receiver, id, CastAsObjectJsval(desc.setter),
return ExternalGetOrSet(cx, proxy, id, CastAsObjectJsval(desc.setter),
JSACC_WRITE, 1, vp, vp);
}
if (desc.attrs & JSPROP_SHORTID)
id = INT_TO_JSID(desc.shortid);
return CallJSPropertyOpSetter(cx, desc.setter, receiver, id, vp);
return CallJSPropertyOpSetter(cx, desc.setter, proxy, id, vp);
}
if (desc.attrs & JSPROP_READONLY)
return true;
@ -862,17 +862,16 @@ proxy_DefineProperty(JSContext *cx, JSObject *obj, jsid id, const Value *value,
}
static JSBool
proxy_GetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
proxy_GetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
return JSProxy::get(cx, obj, receiver, id, vp);
return JSProxy::get(cx, obj, obj, id, vp);
}
static JSBool
proxy_SetProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict)
proxy_SetProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
// FIXME (bug 596351): throwing away strict.
return JSProxy::set(cx, obj, receiver, id, vp);
// TODO: throwing away strict
return JSProxy::set(cx, obj, obj, id, vp);
}
static JSBool

View File

@ -12032,7 +12032,7 @@ GetPropertyByName(JSContext* cx, JSObject* obj, JSString** namep, Value* vp, PIC
/* Delegate to the op, if present. */
PropertyIdOp op = obj->getOps()->getProperty;
if (op) {
bool result = op(cx, obj, obj, id, vp);
bool result = op(cx, obj, id, vp);
if (!result)
SetBuiltinError(cx);
return cx->tracerState->builtinStatus == 0;
@ -12047,8 +12047,7 @@ GetPropertyByName(JSContext* cx, JSObject* obj, JSString** namep, Value* vp, PIC
const Shape *shape;
JSObject *holder;
if (!js_GetPropertyHelperWithShape(cx, obj, obj, id, JSGET_METHOD_BARRIER, vp, &shape,
&holder)) {
if (!js_GetPropertyHelperWithShape(cx, obj, id, JSGET_METHOD_BARRIER, vp, &shape, &holder)) {
SetBuiltinError(cx);
return false;
}

View File

@ -493,7 +493,7 @@ class TypedArrayTemplate
}
static JSBool
obj_getProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
obj_getProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
ThisTypeArray *tarray = ThisTypeArray::fromJSObject(obj);
JS_ASSERT(tarray);
@ -535,8 +535,7 @@ class TypedArrayTemplate
}
static JSBool
obj_setProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict)
obj_setProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
ThisTypeArray *tarray = ThisTypeArray::fromJSObject(obj);
JS_ASSERT(tarray);
@ -621,7 +620,7 @@ class TypedArrayTemplate
return true;
Value tmp = *v;
return obj_setProperty(cx, obj, obj, id, &tmp, false);
return obj_setProperty(cx, obj, id, &tmp, false);
}
static JSBool

View File

@ -898,12 +898,9 @@ typedef JSBool
(* DefinePropOp)(JSContext *cx, JSObject *obj, jsid id, const Value *value,
PropertyOp getter, PropertyOp setter, uintN attrs);
typedef JSBool
(* PropertyIdOp)(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp);
(* PropertyIdOp)(JSContext *cx, JSObject *obj, jsid id, Value *vp);
typedef JSBool
(* StrictPropertyIdOp)(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp,
JSBool strict);
typedef JSBool
(* DeleteIdOp)(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict);
(* StrictPropertyIdOp)(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict);
typedef JSBool
(* CallOp)(JSContext *cx, uintN argc, Value *vp);
typedef JSBool
@ -1002,7 +999,7 @@ struct ObjectOps {
js::StrictPropertyIdOp setProperty;
js::AttributesOp getAttributes;
js::AttributesOp setAttributes;
js::DeleteIdOp deleteProperty;
js::StrictPropertyIdOp deleteProperty;
js::NewEnumerateOp enumerate;
js::TypeOfOp typeOf;
js::TraceOp trace;

View File

@ -204,14 +204,13 @@ JSWrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
bool
JSWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, Value *vp)
{
GET(wrappedObject(wrapper)->getProperty(cx, receiver, id, vp));
GET(JS_GetPropertyById(cx, wrappedObject(wrapper), id, Jsvalify(vp)));
}
bool
JSWrapper::set(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, Value *vp)
{
// FIXME (bug 596351): Need deal with strict mode.
SET(wrappedObject(wrapper)->setProperty(cx, receiver, id, vp, false));
SET(JS_SetPropertyById(cx, wrappedObject(wrapper), id, Jsvalify(vp)));
}
bool

View File

@ -4743,7 +4743,7 @@ xml_defineProperty(JSContext *cx, JSObject *obj, jsid id, const Value *v,
}
static JSBool
xml_getProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp)
xml_getProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp)
{
if (JSID_IS_DEFAULT_XML_NAMESPACE(id)) {
vp->setUndefined();
@ -4754,7 +4754,7 @@ xml_getProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value
}
static JSBool
xml_setProperty(JSContext *cx, JSObject *obj, JSObject *receiver, jsid id, Value *vp, JSBool strict)
xml_setProperty(JSContext *cx, JSObject *obj, jsid id, Value *vp, JSBool strict)
{
return PutProperty(cx, obj, id, Jsvalify(vp));
}

View File

@ -257,7 +257,7 @@ stubs::SetName(VMFrame &f, JSAtom *origAtom)
defineHow = JSDNP_CACHE_RESULT | JSDNP_UNQUALIFIED;
else
defineHow = JSDNP_CACHE_RESULT;
if (!js_SetPropertyHelper(cx, obj, obj, id, defineHow, &rval, strict))
if (!js_SetPropertyHelper(cx, obj, id, defineHow, &rval, strict))
THROW();
} else {
if (!obj->setProperty(cx, id, &rval, strict))
@ -2209,7 +2209,7 @@ InitPropOrMethod(VMFrame &f, JSAtom *atom, JSOp op)
? JSDNP_CACHE_RESULT | JSDNP_SET_METHOD
: JSDNP_CACHE_RESULT;
if (!(JS_UNLIKELY(atom == cx->runtime->atomState.protoAtom)
? js_SetPropertyHelper(cx, obj, obj, id, defineHow, &rval, false)
? js_SetPropertyHelper(cx, obj, id, defineHow, &rval, false)
: js_DefineNativeProperty(cx, obj, id, rval, NULL, NULL,
JSPROP_ENUMERATE, 0, 0, NULL,
defineHow))) {

View File

@ -12,7 +12,7 @@ script regress-551763-0.js
script regress-551763-1.js
script regress-551763-2.js
script regress-555246-0.js
script regress-555246-1.js
fails-if(xulRuntime.shell) script regress-555246-1.js
script regress-559438.js
script regress-560101.js
script regress-560998-1.js
@ -48,4 +48,3 @@ script regress-598176.js
script regress-600067.js
script regress-600137.js
script regress-602621.js
fails-if(!xulRuntime.shell) script regress-607863.js

View File

@ -1,13 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
var sandbox = evalcx('');
var foreign = evalcx('({ get f() this, set x(v) { result = this } })', sandbox);
var local = Object.create(foreign);
reportCompare(local, local.f, "this should be set correctly in getters");
local.x = 42;
reportCompare(local, sandbox.result, "this should be set correctly in setters");