--- sbbs/src/sbbs3/js_client.c 2018/04/24 16:41:23 1.1 +++ sbbs/src/sbbs3/js_client.c 2018/04/24 16:43:46 1.1.1.2 @@ -2,7 +2,7 @@ /* Synchronet JavaScript "Client" Object */ -/* $Id: js_client.c,v 1.1 2018/04/24 16:41:23 root Exp $ */ +/* $Id: js_client.c,v 1.1.1.2 2018/04/24 16:43:46 root Exp $ */ /**************************************************************************** * @format.tab-size 4 (Plain Text/Source Code File Header) * @@ -70,7 +70,7 @@ static JSBool js_client_set(JSContext *c static JSBool js_client_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { - char* p=NULL; + const char* p=NULL; ulong val=0; jsint tiny; JSString* js_str; @@ -127,6 +127,21 @@ static jsSyncPropertySpec js_client_prop {0} }; +static JSBool js_client_resolve(JSContext *cx, JSObject *obj, jsval id) +{ + char* name=NULL; + + if(id != JSVAL_NULL) + name=JS_GetStringBytes(JSVAL_TO_STRING(id)); + + return(js_SyncResolve(cx, obj, name, js_client_properties, NULL, NULL, 0)); +} + +static JSBool js_client_enumerate(JSContext *cx, JSObject *obj) +{ + return(js_client_resolve(cx, obj, JSVAL_NULL)); +} + static JSClass js_client_class = { "Client" /* name */ ,JSCLASS_HAS_PRIVATE /* flags */ @@ -134,8 +149,8 @@ static JSClass js_client_class = { ,JS_PropertyStub /* delProperty */ ,js_client_get /* getProperty */ ,js_client_set /* setProperty */ - ,JS_EnumerateStub /* enumerate */ - ,JS_ResolveStub /* resolve */ + ,js_client_enumerate /* enumerate */ + ,js_client_resolve /* resolve */ ,JS_ConvertStub /* convert */ ,JS_FinalizeStub /* finalize */ }; @@ -153,8 +168,6 @@ JSObject* DLLCALL js_CreateClientObject( JS_SetPrivate(cx, obj, client); /* Store a pointer to client_t */ - js_DefineSyncProperties(cx, obj, js_client_properties); - js_CreateSocketObject(cx, obj, "socket", sock); #ifdef BUILD_JSDOCS