From 48e3910e83a36e201e87fa9754e8ef0fb6f49c26 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:18:35 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/top/.rcs/loader.js,v | 149 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 js/top/.rcs/loader.js,v diff --git a/js/top/.rcs/loader.js,v b/js/top/.rcs/loader.js,v new file mode 100644 index 0000000..67a90f7 --- /dev/null +++ b/js/top/.rcs/loader.js,v @@ -0,0 +1,149 @@ +head 1.2; +access; +symbols; +locks + sbosse:1.2; strict; +comment @# @; + + +1.2 +date 2017.05.27.18.20.44; author sbosse; state Exp; +branches; +next 1.1; + +1.1 +date 2017.05.23.07.00.54; author sbosse; state Exp; +branches; +next ; + + +desc +@@ + + +1.2 +log +@*** empty log message *** +@ +text +@/** + ** ================================== + ** OOOO OOOO OOOO O O OOOO + ** O O O O O O O O O + ** O O O O O O O O O + ** OOOO OOOO OOOO O OOO OOOO + ** O O O O O O O O O + ** O O O O O O O O O + ** OOOO OOOO OOOO OOOO O O OOOO + ** ================================== + ** BSSLAB, Dr. Stefan Bosse http://www.bsslab.de + ** + ** COPYRIGHT: THIS SOFTWARE, EXECUTABLE AND SOURCE CODE IS OWNED + ** BY THE AUTHOR. + ** THIS SOURCE CODE MAY NOT BE COPIED, EXTRACTED, + ** MODIFIED, OR OTHERWISE USED IN A CONTEXT + ** OUTSIDE OF THE SOFTWARE SYSTEM. + ** + ** $AUTHORS: Stefan Bosse + ** $INITIAL: (C) 2006-2016 BSSLAB + ** $CREATED: 1/7/16 by sbosse. + ** $RCS: $Id: aios.js,v 1.2 2017/05/19 05:13:27 sbosse Exp $ + ** $VERSION: 1.1.2 + ** + ** $INFO: + ** + ** Sandbox Loader + ** + ** $ENDOFINFO + */ +var log = function (arg) { + console.log(arg); +} + +if (global.TARGET=='node') { + var fs = require('fs'); + + /** Load a self-contained JS program in a sandbox environment. + * Returns a module object {main: function(args) {..}}. + * The program can be started by executing m.main([arg1,..]). + * File version + */ + function loadfile (file,maskext) { + var m = {}, + p, + mask = { + console:{ + log:log, + warn:log + }, + process:{ + argv:[], + cwd:process.cwd, + env:process.env, + exit:function () {}, + on:process.on + } + }, + text, reg; + if (maskext) for (p in maskext) { + mask[p]=maskext[p]; + } + text = fs.readFileSync(file,'utf8'); + + reg = /#!/ + text=text.replace(reg,'//'); + with (mask) { + m=eval('var x={main:function(args) {process.argv=args; '+text+'}}; x') + } + return m; + } +} +/** Load a self-contained JS program in a sandbox environment. + * Returns a module object {main: function(args) {..}}. + * The program can be started by executing m.main([arg1,..]). + * Text version. +*/ +function load (text,maskext) { + var m = {}, + p, + mask = { + console:{ + log:log, + warn:log + }, + process:{ + argv:[], + cwd:process.cwd, + env:process.env, + exit:function () {}, + on:(typeof process != 'undefined')?process.on:function () {} + } + }, + text, reg; + if (maskext) for (p in maskext) { + mask[p]=maskext[p]; + } + + reg = /#!/ + text=text.replace(reg,'//'); + with (mask) { + m=eval('var x={main:function(args) {process.argv=args; '+text+'}}; x') + } + return m; +} + + +module.exports = { + load:load, + loadfile:loadfile!=undefined?loadfile:undefined +} +@ + + +1.1 +log +@Initial revision +@ +text +@d22 1 +@