diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index 377126f21026d3ee9d1957bc60e2c9604ced9167..3827976f31efee74023d6a6b17b9337658f0f843 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -430,7 +430,7 @@ js_prompt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(!fgets(instr,sizeof(instr),stdin)) return(JS_TRUE); - if((str=JS_NewStringCopyZ(cx, instr))==NULL) + if((str=JS_NewStringCopyZ(cx, truncnl(instr)))==NULL) return(JS_FALSE); *rval = STRING_TO_JSVAL(str); @@ -613,6 +613,8 @@ long js_exec(const char *fname, char** args) jsval val; jsval rval=JSVAL_VOID; int32 result=0; + clock_t start; + clock_t diff; if(fname!=NULL) { if(strcspn(fname,"/\\")==strlen(fname)) { @@ -707,14 +709,27 @@ long js_exec(const char *fname, char** args) if(fp!=NULL && fp!=stdin) fclose(fp); + start=msclock(); if((js_script=JS_CompileScript(js_cx, js_glob, js_buf, js_buflen, fname==NULL ? NULL : path, 1))==NULL) { lprintf(LOG_ERR,"!Error compiling script from %s",path); return(-1); } - JS_ExecuteScript(js_cx, js_glob, js_script, &rval); + if((diff=msclock()-start) > 0) + fprintf(statfp,"%s compiled in %u.%03u seconds\n" + ,path + ,diff/MSCLOCKS_PER_SEC + ,diff%MSCLOCKS_PER_SEC); + start=msclock(); + JS_ExecuteScript(js_cx, js_glob, js_script, &rval); js_EvalOnExit(js_cx, js_glob, &branch); + if((diff=msclock()-start) > 0) + fprintf(statfp,"%s executed in %u.%03u seconds\n" + ,path + ,diff/MSCLOCKS_PER_SEC + ,diff%MSCLOCKS_PER_SEC); + JS_GetProperty(js_cx, js_glob, "exit_code", &rval); if(rval!=JSVAL_VOID) {