/*JSON{ "type" : "staticproperty", "class" : "process", "name" : "env", "generate" : "jswrap_process_env", "return" : ["JsVar","An object"] } Returns an Object containing various pre-defined variables. standard ones are BOARD, VERSION */ JsVar *jswrap_process_env() { JsVar *obj = jsvNewWithFlags(JSV_OBJECT); jsvObjectSetChildAndUnLock(obj, "VERSION", jsvNewFromString(JS_VERSION)); jsvObjectSetChildAndUnLock(obj, "BUILD_DATE", jsvNewFromString(__DATE__)); jsvObjectSetChildAndUnLock(obj, "BUILD_TIME", jsvNewFromString(__TIME__)); #ifdef GIT_COMMIT jsvObjectSetChildAndUnLock(obj, "GIT_COMMIT", jsvNewFromString(STRINGIFY(GIT_COMMIT))); #endif jsvObjectSetChildAndUnLock(obj, "BOARD", jsvNewFromString(PC_BOARD_ID)); jsvObjectSetChildAndUnLock(obj, "CHIP", jsvNewFromString(PC_BOARD_CHIP)); jsvObjectSetChildAndUnLock(obj, "CHIP_FAMILY", jsvNewFromString(PC_BOARD_CHIP_FAMILY)); jsvObjectSetChildAndUnLock(obj, "FLASH", jsvNewFromInteger(FLASH_TOTAL)); jsvObjectSetChildAndUnLock(obj, "RAM", jsvNewFromInteger(RAM_TOTAL)); jsvObjectSetChildAndUnLock(obj, "SERIAL", jswrap_interface_getSerial()); jsvObjectSetChildAndUnLock(obj, "CONSOLE", jsvNewFromString(jshGetDeviceString(jsiGetConsoleDevice()))); JsVar *arr = jsvNewWithFlags(JSV_OBJECT); if (arr) { const char *s = exportNames; void **p = (void**)exportPtrs; while (*s) { jsvObjectSetChildAndUnLock(arr, s, jsvNewFromInteger((JsVarInt)(size_t)*p)); p++; while (*s) s++; // skip until 0 s++; // skip over 0 } jsvObjectSetChildAndUnLock(obj, "EXPORTS", arr); } return obj; }
/*JSON{ "type":"staticproperty", "class" : "process", "name" : "env", "description" : "Returns an Object containing various pre-defined variables. standard ones are BOARD, VERSION", "generate" : "jswrap_process_env", "return" : ["JsVar", "An object"] }*/ JsVar *jswrap_process_env() { JsVar *obj = jsvNewWithFlags(JSV_OBJECT); jsvUnLock(jsvObjectSetChild(obj, "VERSION", jsvNewFromString(JS_VERSION))); jsvUnLock(jsvObjectSetChild(obj, "BUILD_DATE", jsvNewFromString(__DATE__))); jsvUnLock(jsvObjectSetChild(obj, "BUILD_TIME", jsvNewFromString(__TIME__))); #ifdef GIT_COMMIT jsvUnLock(jsvObjectSetChild(obj, "GIT_COMMIT", jsvNewFromString(STRINGIFY(GIT_COMMIT)))); #endif jsvUnLock(jsvObjectSetChild(obj, "BOARD", jsvNewFromString(PC_BOARD_ID))); jsvUnLock(jsvObjectSetChild(obj, "CHIP", jsvNewFromString(PC_BOARD_CHIP))); jsvUnLock(jsvObjectSetChild(obj, "CHIP_FAMILY", jsvNewFromString(PC_BOARD_CHIP_FAMILY))); jsvUnLock(jsvObjectSetChild(obj, "FLASH", jsvNewFromInteger(FLASH_TOTAL))); jsvUnLock(jsvObjectSetChild(obj, "RAM", jsvNewFromInteger(RAM_TOTAL))); jsvUnLock(jsvObjectSetChild(obj, "SERIAL", jswrap_interface_getSerial())); jsvUnLock(jsvObjectSetChild(obj, "CONSOLE", jsvNewFromString(jshGetDeviceString(jsiGetConsoleDevice())))); return obj; }
/*JSON{ "type" : "staticproperty", "class" : "process", "name" : "env", "generate" : "jswrap_process_env", "return" : ["JsVar","An object"] } Returns an Object containing various pre-defined variables. standard ones are BOARD, VERSION, FLASH, RAM, MODULES. For example, to get a list of built-in modules, you can use `process.env.MODULES.split(',')` */ JsVar *jswrap_process_env() { JsVar *obj = jsvNewObject(); jsvObjectSetChildAndUnLock(obj, "VERSION", jsvNewFromString(JS_VERSION)); #ifdef GIT_COMMIT jsvObjectSetChildAndUnLock(obj, "GIT_COMMIT", jsvNewFromString(STRINGIFY(GIT_COMMIT))); #endif jsvObjectSetChildAndUnLock(obj, "BOARD", jsvNewFromString(PC_BOARD_ID)); jsvObjectSetChildAndUnLock(obj, "FLASH", jsvNewFromInteger(FLASH_TOTAL)); jsvObjectSetChildAndUnLock(obj, "RAM", jsvNewFromInteger(RAM_TOTAL)); jsvObjectSetChildAndUnLock(obj, "SERIAL", jswrap_interface_getSerial()); jsvObjectSetChildAndUnLock(obj, "CONSOLE", jsvNewFromString(jshGetDeviceString(jsiGetConsoleDevice()))); jsvObjectSetChildAndUnLock(obj, "MODULES", jsvNewFromString(jswGetBuiltInLibraryNames())); #ifndef SAVE_ON_FLASH // Pointer to a list of predefined exports - eventually we'll get rid of the array above jsvObjectSetChildAndUnLock(obj, "EXPTR", jsvNewFromInteger((JsVarInt)(size_t)exportPtrs)); #endif return obj; }