diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index d3ac4abb79ea2d34da9a42e9bf1d73638b7e7d95..c372fc49cad2f4cc0adafee84a5b8b64dafe1361 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)