diff --git a/packages/basic.gblib/services/GBVMService.ts b/packages/basic.gblib/services/GBVMService.ts index 64e90814..c2d65b6c 100644 --- a/packages/basic.gblib/services/GBVMService.ts +++ b/packages/basic.gblib/services/GBVMService.ts @@ -549,7 +549,18 @@ export class GBVMService extends GBService { // Defines local utility BASIC functions. - const ubound = (gbarray) => {return gbarray ? gbarray.length - 1: 0}; + const ubound = (gbarray) => { + if (gbarray){ + let length = gbarray.length; + if (length > 0){ + if(gbarray[0].gbarray){ + return length - 1; + } + } + } + return length; + } + const isarray = (gbarray) => {return Array.isArray(gbarray) }; // Proxies remote functions as BASIC functions. @@ -782,7 +793,7 @@ export class GBVMService extends GBService { let line = lines[i - 1]; - // Remove lines before statments. + // Remove lines before statements. line = line.replace(/^\s*\d+\s*/gi, ''); diff --git a/src/app.ts b/src/app.ts index fa6eb9ac..9b986211 100644 --- a/src/app.ts +++ b/src/app.ts @@ -112,7 +112,8 @@ export class GBServer { process.on('uncaughtException', (err, p) => { if (err !== null) { err = err['e'] ? err['e'] : err; - GBLog.error(`UNCAUGHT_EXCEPTION: ${err.toString()} ${err['stack'] ? '\n' + err['stack'] : ''}`); + const msg = `${err['code']?err['code']:''} ${err.message?err.message:''} ${err['description']?err['description']:''}` + GBLog.error(`UNCAUGHT_EXCEPTION: ${err.toString()} ${err['stack'] ? '\n' + err['stack'] : ''} ${msg}`); } else { GBLog.error('UNCAUGHT_EXCEPTION: Unknown error (err is null)'); }