diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index bd5f0bd47456b8ff8d342628ff937be94e64d1f8..cf6e181c9c5fdb35cd1fade0e52a97778abfcb1b 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -242,15 +242,21 @@ DLLCALL js_CreateArrayOfStrings(JSContext* cx, JSObject* parent, const char* nam JSString* js_str; jsval val; size_t i; + jsuint len=0; - if((array=JS_NewArrayObject(cx, 0, NULL))==NULL) - return(JS_FALSE); + if(JS_GetProperty(cx,parent,name,&val) && val!=JSVAL_VOID) + array=JSVAL_TO_OBJECT(val); + else + if((array=JS_NewArrayObject(cx, 0, NULL))==NULL) + return(JS_FALSE); + + JS_GetArrayLength(cx, array, &len); for(i=0;str[i]!=NULL;i++) { if((js_str = JS_NewStringCopyZ(cx, str[i]))==NULL) break; val = STRING_TO_JSVAL(js_str); - if(!JS_SetElement(cx, array, i, &val)) + if(!JS_SetElement(cx, array, len+i, &val)) break; }