From 0c2d8f0871f2d9f2409d75648473617f42437f0e Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 1 Oct 2003 03:48:16 +0000 Subject: [PATCH] No longer users a scope object to execute scripts, more closely resembles how service scripts are executed - fixes if(this.method==undefined) checks. --- src/sbbs3/jsexec.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index d3ac4abb79..c372fc49ca 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -512,7 +512,6 @@ long js_exec(const char *fname, char** args) size_t len; char* js_buf=NULL; size_t js_buflen; - JSObject* js_scope=NULL; JSScript* js_script=NULL; JSString* arg; JSObject* argv; @@ -541,15 +540,9 @@ long js_exec(const char *fname, char** args) } JS_ClearPendingException(js_cx); - js_scope=JS_NewObject(js_cx, NULL, NULL, js_glob); - - if(js_scope==NULL) { - fprintf(errfp,"!Error creating JS scope\n"); - return(-1); - } argv=JS_NewArrayObject(js_cx, 0, NULL); - JS_DefineProperty(js_cx, js_scope, "argv", OBJECT_TO_JSVAL(argv) + JS_DefineProperty(js_cx, js_glob, "argv", OBJECT_TO_JSVAL(argv) ,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE); for(argc=0;args[argc];argc++) { @@ -560,7 +553,7 @@ long js_exec(const char *fname, char** args) if(!JS_SetElement(js_cx, argv, argc, &val)) break; } - JS_DefineProperty(js_cx, js_scope, "argc", INT_TO_JSVAL(argc) + JS_DefineProperty(js_cx, js_glob, "argc", INT_TO_JSVAL(argc) ,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE); JS_SetBranchCallback(js_cx, js_BranchCallback); @@ -591,11 +584,11 @@ long js_exec(const char *fname, char** args) if(fp!=NULL && fp!=stdin) fclose(fp); - if((js_script=JS_CompileScript(js_cx, js_scope, js_buf, js_buflen, fname==NULL ? NULL : path, 1))==NULL) { + if((js_script=JS_CompileScript(js_cx, js_glob, js_buf, js_buflen, fname==NULL ? NULL : path, 1))==NULL) { fprintf(errfp,"!Error compiling script from %s\n",path); return(-1); } - JS_ExecuteScript(js_cx, js_scope, js_script, &rval); + JS_ExecuteScript(js_cx, js_glob, js_script, &rval); JS_GetProperty(js_cx, js_glob, "exit_code", &rval); @@ -606,8 +599,6 @@ long js_exec(const char *fname, char** args) JS_DestroyScript(js_cx, js_script); - JS_ClearScope(js_cx, js_scope); - JS_GC(js_cx); if(js_buf!=NULL) -- GitLab