From 8a0d082b374d7bbf4c6ed6234bda501d7e2f0aa7 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 6 Jul 2006 18:14:14 +0000 Subject: [PATCH] Fix bug introduced in rev 1.198, don't [re]define argc unless A) there were additional args passed to load(), or B) it's a background-loaded script (in which case we always define argv now as well). This fixes the Deuce-reported bug: "When chat_sec.js calls irc.js, argc is apparently zero." --- src/sbbs3/js_global.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 59a2263aac..0727071879 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -302,7 +302,7 @@ js_load(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if((filename=js_ValueToStringBytes(cx, argv[argn++], NULL))==NULL) return(JS_FALSE); - if(argc>argn) { + if(argc>argn || background) { if((js_argv=JS_NewArrayObject(exec_cx, 0, NULL)) == NULL) return(JS_FALSE); @@ -312,9 +312,10 @@ js_load(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) for(i=argn; i<argc; i++) JS_SetElement(exec_cx, js_argv, i-argn, js_CopyValue(cx,argv[i],exec_cx,&val)); + + JS_DefineProperty(exec_cx, exec_obj, "argc", INT_TO_JSVAL(argc-argn) + ,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY); } - JS_DefineProperty(exec_cx, exec_obj, "argc", INT_TO_JSVAL(argc-argn) - ,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY); errno = 0; if(isfullpath(filename)) -- GitLab