This commit is contained in:
jband%netscape.com 1999-02-04 20:05:55 +00:00
Родитель 4cbdc68c5d
Коммит 871598ce02
2 изменённых файлов: 16 добавлений и 20 удалений

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

@ -235,9 +235,9 @@ int main()
char* txt[] = {
"print('foo = '+foo);",
"foo.toString = function(){return 'foo_baby';}",
"foo.toString = new Function('return \"foo_baby\";')",
"print('foo = '+foo);",
"print('foo = '+foo.toString());",
"print('foo.toString() = '+foo.toString());",
"print('foo.five = '+ foo.five);",
"print('foo.six = '+ foo.six);",
"print('foo.bogus = '+ foo.bogus);",
@ -250,6 +250,8 @@ int main()
// "bar.Test(5,7);",
"function QI(iid){print('QueryInterface called in JS with iid = '+iid); return this;}",
"bar.QueryInterface = QI;",
"print('foo properties:');",
"for(i in foo)print(' foo.'+i+' = '+foo[i]);",
0,
};

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

@ -318,7 +318,7 @@ nsXPCWrappedNativeClass::GetConstantAsJSVal(nsXPCWrappedNative* wrapper,
NS_ASSERTION(desc->category == XPCNativeMemberDescriptor::CONSTANT,"bad type");
if(NS_FAILED(mInfo->GetConstant(desc->index, &constant)))
{
// XX fail silently?
// XXX fail silently?
*vp = JSVAL_NULL;
return JS_TRUE;
}
@ -883,7 +883,6 @@ nsXPCWrappedNativeClass::DynamicEnumerate(nsXPCWrappedNative* wrapper,
return JS_TRUE;
}
case JSENUMERATE_NEXT:
{
holder = (EnumStateHolder*) JSVAL_TO_PRIVATE(*statep);
NS_ASSERTION(holder,"bad statep");
@ -893,23 +892,18 @@ nsXPCWrappedNativeClass::DynamicEnumerate(nsXPCWrappedNative* wrapper,
if(NS_FAILED(ds->Enumerate(cx, obj, JSENUMERATE_NEXT,
&holder->dstate, idp, wrapper,
GetArbitraryScriptable(), &retval)) || !retval)
{
*idp = holder->dstate = JSVAL_NULL;
}
}
else
{
NS_ASSERTION(holder->sstate != JSVAL_NULL,"bad statep");
if(holder->dstate == JSVAL_NULL && holder->sstate != JSVAL_NULL)
StaticEnumerate(wrapper, JSENUMERATE_NEXT, &holder->sstate, idp);
}
// perhaps we're done?
if(holder->dstate == JSVAL_NULL && holder->sstate == JSVAL_NULL)
{
delete holder;
*statep = JSVAL_NULL;
}
return JS_TRUE;
}
// are we done?
if(holder->dstate != JSVAL_NULL || holder->sstate != JSVAL_NULL)
return JS_TRUE;
/* Fall through ... */
case JSENUMERATE_DESTROY:
if(NULL != (holder = (EnumStateHolder*) JSVAL_TO_PRIVATE(*statep)))
{
@ -949,8 +943,8 @@ nsXPCWrappedNativeClass::StaticEnumerate(nsXPCWrappedNative* wrapper,
int count = GetMemberCount();
if (index < count) {
*idp = INT_TO_JSVAL(GetMemberDescriptor(index++)->id);
*statep = INT_TO_JSVAL(index < count ? index : 0);
*idp = GetMemberDescriptor(index)->id;
*statep = INT_TO_JSVAL(index+1);
return JS_TRUE;
}
}