diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-11-15 15:33:14 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-11-15 15:33:14 -0800 |
commit | 6aff04516ecb627d7f8919b5d9dc082c3f9ceba8 (patch) | |
tree | 75c23faac20909a5d7753cfc91c865f174978577 | |
parent | 4f3b5af14cf6bff389765d0f6dd2e5b6c3ba7161 (diff) |
remove obsolete demos folder
66 files changed, 0 insertions, 324928 deletions
diff --git a/demos/cubescript.html b/demos/cubescript.html deleted file mode 100644 index 05e4f946..00000000 --- a/demos/cubescript.html +++ /dev/null @@ -1,65 +0,0 @@ -<html> -<head> - <title> - Emscripten: CubeScript - </title> - <script src="cubescript.js"></script> - <script> - // print function which the cubescript engine will call - function print(text) { - document.getElementById('output').innerHTML += text + '<br>'; - printed = true; - } - - function execute(text) { - printed = false; - executeCS(text); - if (!printed) { - print('<small><i>(no output)</i></small>'); - } - } - </script> -</head> -<body onload="document.getElementById('the_input').focus()"> - <p> - This is an <a href="http://emscripten.org">Emscriptened</a> <a href="http://sauerbraten.org/docs/config.html#cubescript">CubeScript</a> engine. - The CubeScript engine from <a href="http://sauerbraten.org">Sauerbraten</a>, which is about 2,500 lines of C++, was compiled by - <a href="http://llvm.org/cmds/llvmgcc.html">llvm-gcc</a> into <a href="http://llvm.org/">LLVM</a> bitcode, - which was translated by Emscripten into JavaScript, which - you can run in your browser here. In other words, it's a script engine (for one language, and written in C++) running in another script engine - (the JavaScript engine in your browser, which is incidentally also written in C++, most likely). - </p> - </p> - Why? <i>[insert Internet meme joke here]</i> Seriously, though, this is a test of the capabilities of - <a href="http://emscripten.org">Emscripten</a>, since the CubeScript engine uses fairly complicated C++ (even stuff like - manually copying vtable pointers), and since compiling an actual, complete script engine seems like a useful milestone. - Also, it's a potential first step - towards bringing <a href="http://www.syntensity.com">Syntensity</a> (which is based on Sauerbraten) to the web. - </p> - <hr> - <p> - <b>Instructions</b>: For example, try entering the following commands in the input field below: - <ul> - <li><div style="font-family: Courier New,Courier,monospace;">echo Hello world</div></li> - <li><div style="font-family: Courier New,Courier,monospace;">x = 3 </div> <small><i>(note the spaces around the '=')</i></small></li> - <li><div style="font-family: Courier New,Courier,monospace;">echo $x</div></li> - <li><div style="font-family: Courier New,Courier,monospace;">echo Another number: (+ $x (* 5 10)) </div><small><i>(note the prefix notation, that is the same as <b>$x + (5*10)</b>)</i></small></li> - <li><div style="font-family: Courier New,Courier,monospace;">if (> $x 2) [ echo "x is bigger than 2" ] [ echo "x is not bigger than 2" ]</div></li> - </ul> - Check out the CubeScript <a href="http://sauerbraten.org/docs/config.html#cubescript">docs</a> or - <a href="http://cube.wikispaces.com/Cubescript+Tutorial">tutorial</a> - for more (but, they mainly talk about using CubeScript in Sauerbraten itself - much like most - JavaScript tutorials talk about using JavaScript in a web browser). - </p> - <hr> - <!-- Call the cubescript engine's execute() function --> - <form onsubmit="execute(the_input.value); the_input.value = ''; return false"> - <b>Enter some CubeScript</b>: - <input type="text" id="the_input"> - <input type="submit" value="execute"> - </form> - <hr> - <div id="output" style="font-family: Courier New,Courier,monospace;"></div> -</body> -</html> - diff --git a/demos/cubescript.js b/demos/cubescript.js deleted file mode 100644 index da1bb5d3..00000000 --- a/demos/cubescript.js +++ /dev/null @@ -1,12791 +0,0 @@ -// License: The original CubeScript code is zlib licensed. -// The Emscripten code is MIT licensed. -// So, all of this is permissively licensed. - -// Forward requested command to cubescript engine -function executeCS(cmd) { - __Z7executePKc(Pointer_make(intArrayFromString(cmd))); -} - -arguments = []; // Needed since the Emscriptened code expects it - - -// === Auto-generated preamble library stuff === - -function __globalConstructor__() { -} - -var __THREW__ = false; // Used in checking for thrown exceptions. - -var __ATEXIT__ = []; - -var HEAP = intArrayFromString('(null)'); // So printing %s of NULL gives '(null)' -var HEAPTOP = HEAP.length+1; // Leave 0 as an invalid address, 'NULL' - - - -function abort(text) { - text = "ABORT: " + text; - print(text + "\n"); -// print((new Error).stack); // for stack traces - print("\n"); - throw text; -} - -function Pointer_niceify(ptr) { -// XXX hardcoded ptr impl - return { slab: HEAP, pos: ptr }; -// if (!ptr.slab) -// return { slab: ptr[0], pos: ptr[1] }; -// else -// return ptr; -} - -function Pointer_make(slab, pos) { - pos = pos ? pos : 0; -// XXX hardcoded ptr impl - if (slab === HEAP) return pos; - // Flatten out - needed for global consts/vars - function flatten(slab) { - if (!slab || slab.length === undefined || typeof slab === 'function') return [slab]; - return slab.map(flatten).reduce(function(a,b) { return a.concat(b) }, []); - } - var slab = flatten(slab); - // Finalize - var ret = _malloc(Math.max(slab.length - pos, 1)); - for (var i = 0; i < slab.length - pos; i++) { - HEAP[ret + i] = slab[pos + i]; - } - return ret; -// return { slab: slab, pos: pos ? pos : 0 }; -} - -function Pointer_stringify(ptr) { - ptr = Pointer_niceify(ptr); - - var ret = ""; - var i = 0; - var t; - while (1) { -// if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {} - if ((ptr.pos+i) >= ptr.slab.length) { break; } else {} - t = String.fromCharCode(ptr.slab[ptr.pos + i]); - if (t == "\0") { break; } else {} - ret = ret + t; - i = i + 1; - } - return ret; -} - -function _malloc(size) { -// XXX hardcoded ptr impl - var ret = HEAPTOP; - HEAPTOP += size; - return ret; - // We don't actually do new Array(size) - memory is uninitialized anyhow -// return Pointer_make([]); -} - -__Znwj = _malloc; // Mangled "new" -__Znaj = _malloc; // Mangled "new" - -function _free(ptr) { -// XXX hardcoded ptr impl - // XXX TODO - actual implementation! Currently we leak it all - - // Nothing needs to be done! But we mark the pointer - // as invalid. Note that we should do it for all other - // pointers of this slab too. -// ptr.slab = null; -// ptr[0] = null; -} - -__ZdlPv = _free; // Mangled "delete" -__ZdaPv = _free; // Mangled "delete" - -// stdio.h - -// C-style: we work on ints on the HEAP. -function __formatString() { - var textIndex = arguments[0]; - var argIndex = 1; - var ret = []; - var curr = -1; - while (curr != 0) { - curr = HEAP[textIndex]; - next = HEAP[textIndex+1]; - if (curr == '%'.charCodeAt(0) && ['d', 'f'].indexOf(String.fromCharCode(next)) != -1) { - String(arguments[argIndex]).split('').forEach(function(chr) { - ret.push(chr.charCodeAt(0)); - }); - argIndex += 1; - textIndex += 2; - } else if (curr == '%'.charCodeAt(0) && next == 's'.charCodeAt(0)) { - ret = ret.concat(String_copy(arguments[argIndex])); - argIndex += 1; - textIndex += 2; - } else { - ret.push(curr); - textIndex ++; - } - } - return Pointer_make(ret); -} - -function _printf() { - var text = Pointer_stringify(__formatString.apply(null, arguments)); - // Our print() will print a \n anyhow... remove dupes - if (text[text.length-1] == '\n') { - text = text.substr(0, text.length-1); - } - print(text); -} - -function _puts(p) { - _printf(p); -// print("\n"); // XXX print already always adds one -} - -function _putchar(p) { - print(String.fromCharCode(p)); -} - -function _strlen(p) { - // XXX hardcoded ptr impl - var q = p; - while (HEAP[q] != 0) q++; - return q - p; -// p = Pointer_niceify(p); -// return p.slab.length; // XXX might want to find the null terminator... -} - -// Copies a list of num items on the HEAP into a -// a normal JavaScript array of numbers -function Array_copy(ptr, num) { - // XXX hardcoded ptr impl - return HEAP.slice(ptr, ptr+num); -} - -// Copies a C-style string, terminated by a zero, from the HEAP into -// a normal JavaScript array of numbers -function String_copy(ptr, addZero) { - // XXX hardcoded ptr impl - return Array_copy(ptr, _strlen(ptr)).concat(addZero ? [0] : []); -} - -// stdlib.h - -// Get a pointer, return int value of the string it points to -function _atoi(s) { - return Math.floor(Number(Pointer_stringify(s))); -} - -function _llvm_memcpy_i32(dest, src, num, idunno) { -// XXX hardcoded ptr impl - for (var i = 0; i < num; i++) { - HEAP[dest + i] = HEAP[src + i]; - } -// dest = Pointer_niceify(dest); -// src = Pointer_niceify(src); -// dest.slab = src.slab.slice(src.pos); -} - -// Tools -// println((new Error).stack); // for stack traces - -function println(text) { - print(text);// + "\n"); // XXX print already always adds one -} - -function jrint(label, obj) { - if (!obj) { - obj = label; - label = ''; - } else - label = label + ' : '; - print(label + JSON.stringify(obj)); -} - -// This processes a 'normal' string into a C-line array of numbers. -// For LLVM-originating strings, see parser.js:parseLLVMString function -function intArrayFromString(stringy) { - var ret = []; - var t; - var i = 0; - while (i < stringy.length) { - ret.push(stringy.charCodeAt(i)); - i = i + 1; - } - ret.push(0); - return ret; -} - -// === Body === - - -var _0___FLATTENER = [0,1]; -var _struct___class_type_info_pseudo___FLATTENER = [0]; -var _struct___type_info_pseudo___FLATTENER = [0,1]; -var _struct_cline___FLATTENER = [0,1,2]; -var __struct_databuf_char_____FLATTENER = [0,1,2,3]; -var __struct_hashset_hashtableentry_const_char___ident_______FLATTENER = [0,1,2,3,4]; -var __struct_hashset_hashtableentry_const_char___ident_____chain____FLATTENER = [0,12]; -var __struct_hashset_hashtableentry_const_char___ident_____chainchunk____FLATTENER = [0,832]; -var __struct_hashtable_const_char__ident_____FLATTENER = [0]; -var __struct_hashtableentry_const_char__ident_____FLATTENER = [0,1]; -var _struct_ident___FLATTENER = [0,1,2,3,4,5,6,7,8,9,10]; -var _struct_identstack___FLATTENER = [0,1]; -var _struct_stringformatter___FLATTENER = [0]; -var __struct_vector_char______FLATTENER = [0,1,2]; -var __struct_vector_char_____FLATTENER = [0,1,2]; -var __struct_vector_cline_____FLATTENER = [0,1,2]; -var __struct_vector_ident______FLATTENER = [0,1,2]; -var __struct_vector_vector_char_______FLATTENER = [0,1,2]; -var _union__0__40___FLATTENER = [0]; -var __union_ident____34____FLATTENER = [0]; -var __union_ident____35____FLATTENER = [0]; -var __union_ident____36____FLATTENER = [0]; -var __union_ident____37____FLATTENER = [0]; -var __union_ident____38____FLATTENER = [0]; -var _union_identval___FLATTENER = [0]; -var _union_identvalptr___FLATTENER = [0]; -this.__defineGetter__("__ZTV5ident", function() { delete __ZTV5ident; __ZTV5ident = Pointer_make([ 0, __ZTI5ident, __ZN5identD1Ev, __ZN5identD0Ev, __ZN5ident7changedEv ], 0); return __ZTV5ident }); -this.__defineGetter__("__ZTI5ident", function() { delete __ZTI5ident; __ZTI5ident = Pointer_make([ [(__ZTVN10__cxxabiv117__class_type_infoE + 8), __ZTS5ident+0*1] ], 0); return __ZTI5ident }); -var __ZTVN10__cxxabiv117__class_type_infoE = 0; /* external value? */ -this.__defineGetter__("__ZTS5ident", function() { delete __ZTS5ident; __ZTS5ident = Pointer_make([53,105,100,101,110,116,0] /* 5ident\00*/, 0); return __ZTS5ident }); -this.__defineGetter__("__ZL5state", function() { delete __ZL5state; __ZL5state = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZL5state }); -this.__defineGetter__("__ZL4left", function() { delete __ZL4left; __ZL4left = Pointer_make([-1], 0); return __ZL4left }); -this.__defineGetter__("_conlines", function() { delete _conlines; _conlines = Pointer_make([0,0,0], 0); return _conlines }); -this.__defineGetter__("__ZL8wordbufs", function() { delete __ZL8wordbufs; __ZL8wordbufs = Pointer_make([0,0,0], 0); return __ZL8wordbufs }); -this.__defineGetter__("_maxcon", function() { delete _maxcon; _maxcon = Pointer_make([0], 0); return _maxcon }); -this.__defineGetter__("__ZZ10parsemacroRPKciR6vectorIcEE5ident", function() { delete __ZZ10parsemacroRPKciR6vectorIcEE5ident; __ZZ10parsemacroRPKciR6vectorIcEE5ident = Pointer_make([0,0,0], 0); return __ZZ10parsemacroRPKciR6vectorIcEE5ident }); -this.__defineGetter__("__ZZ10executeretPKcE6argids", function() { delete __ZZ10executeretPKcE6argids; __ZZ10executeretPKcE6argids = Pointer_make([0,0,0], 0); return __ZZ10executeretPKcE6argids }); -this.__defineGetter__("__ZZ5fatalPKczE6errors", function() { delete __ZZ5fatalPKczE6errors; __ZZ5fatalPKczE6errors = Pointer_make([0], 0); return __ZZ5fatalPKczE6errors }); -this.__defineGetter__("__ZL6retidx", function() { delete __ZL6retidx; __ZL6retidx = Pointer_make([0], 0); return __ZL6retidx }); -this.__defineGetter__("__str", function() { delete __str; __str = Pointer_make([37,46,49,102,0] /* %.1f\00*/, 0); return __str }); -this.__defineGetter__("__str1", function() { delete __str1; __str1 = Pointer_make([37,46,55,103,0] /* %.7g\00*/, 0); return __str1 }); -this.__defineGetter__("__ZL6retbuf", function() { delete __ZL6retbuf; __ZL6retbuf = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZL6retbuf }); -this.__defineGetter__("__str2", function() { delete __str2; __str2 = Pointer_make([37,100,0] /* %d\00*/, 0); return __str2 }); -this.__defineGetter__("__ZL4next", function() { delete __ZL4next; __ZL4next = Pointer_make([0], 0); return __ZL4next }); -this.__defineGetter__("__ZZN6vectorI5clineE6insertEiRKS0_E5C_237", function() { delete __ZZN6vectorI5clineE6insertEiRKS0_E5C_237; __ZZN6vectorI5clineE6insertEiRKS0_E5C_237 = Pointer_make([0,0,0], 0); return __ZZN6vectorI5clineE6insertEiRKS0_E5C_237 }); -this.__defineGetter__("__str3", function() { delete __str3; __str3 = Pointer_make([0], 0); return __str3 }); -this.__defineGetter__("_totalmillis", function() { delete _totalmillis; _totalmillis = Pointer_make([-1], 0); return _totalmillis }); -this.__defineGetter__("__ZZ8conoutfviPKcPcE3buf", function() { delete __ZZ8conoutfviPKcPcE3buf; __ZZ8conoutfviPKcPcE3buf = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZZ8conoutfviPKcPcE3buf }); -this.__defineGetter__("__str4", function() { delete __str4; __str4 = Pointer_make([118,97,114,105,97,98,108,101,32,37,115,32,105,115,32,114,101,97,100,45,111,110,108,121,0] /* variable %s is read-only\00*/, 0); return __str4 }); -this.__defineGetter__("_overrideidents", function() { delete _overrideidents; _overrideidents = Pointer_make([0], 0); return _overrideidents }); -this.__defineGetter__("__str5", function() { delete __str5; __str5 = Pointer_make([99,97,110,110,111,116,32,111,118,101,114,114,105,100,101,32,112,101,114,115,105,115,116,101,110,116,32,118,97,114,105,97,98,108,101,32,37,115,0] /* cannot override persistent variable %s\00*/, 0); return __str5 }); -this.__defineGetter__("__str6", function() { delete __str6; __str6 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,115,46,46,37,115,0] /* valid range for %s is %s..%s\00*/, 0); return __str6 }); -this.__defineGetter__("__str7", function() { delete __str7; __str7 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,100,46,46,48,120,37,88,0] /* valid range for %s is %d..0x%X\00*/, 0); return __str7 }); -this.__defineGetter__("__str8", function() { delete __str8; __str8 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,48,120,37,88,46,46,48,120,37,88,0] /* valid range for %s is 0x%X..0x%X\00*/, 0); return __str8 }); -this.__defineGetter__("__str9", function() { delete __str9; __str9 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,100,46,46,37,100,0] /* valid range for %s is %d..%d\00*/, 0); return __str9 }); -this.__defineGetter__("__str10", function() { delete __str10; __str10 = Pointer_make([37,115,0] /* %s\00*/, 0); return __str10 }); -this.__defineGetter__("_commandret", function() { delete _commandret; _commandret = Pointer_make([0], 0); return _commandret }); -this.__defineGetter__("_idents", function() { delete _idents; _idents = Pointer_make([0], 0); return _idents }); -this.__defineGetter__("__str11", function() { delete __str11; __str11 = Pointer_make([117,110,107,110,111,119,110,32,97,108,105,97,115,32,108,111,111,107,117,112,58,32,37,115,0] /* unknown alias lookup: %s\00*/, 0); return __str11 }); -this.__defineGetter__("__str12", function() { delete __str12; __str12 = Pointer_make([10,9,32,0] /* \0A\09 \00*/, 0); return __str12 }); -this.__defineGetter__("__str13", function() { delete __str13; __str13 = Pointer_make([34,10,0,0] /* \22\0A\00\00*/, 0); return __str13 }); -this.__defineGetter__("__str14", function() { delete __str14; __str14 = Pointer_make([10,9,32,0,0] /* \0A\09 \00\00*/, 0); return __str14 }); -this.__defineGetter__("__str15", function() { delete __str15; __str15 = Pointer_make([32,0] /* \00*/, 0); return __str15 }); -this.__defineGetter__("_persistidents", function() { delete _persistidents; _persistidents = Pointer_make([1], 0); return _persistidents }); -this.__defineGetter__("__str16", function() { delete __str16; __str16 = Pointer_make([99,97,110,110,111,116,32,114,101,100,101,102,105,110,101,32,98,117,105,108,116,105,110,32,37,115,32,119,105,116,104,32,97,110,32,97,108,105,97,115,0] /* cannot redefine builtin %s with an alias\00*/, 0); return __str16 }); -this.__defineGetter__("__str17", function() { delete __str17; __str17 = Pointer_make([112,117,115,104,0] /* push\00*/, 0); return __str17 }); -this.__defineGetter__("__str18", function() { delete __str18; __str18 = Pointer_make([115,115,0] /* ss\00*/, 0); return __str18 }); -this.__defineGetter__("__ZL12__dummy_push", function() { delete __ZL12__dummy_push; __ZL12__dummy_push = Pointer_make([0], 0); return __ZL12__dummy_push }); -this.__defineGetter__("__str19", function() { delete __str19; __str19 = Pointer_make([112,111,112,0] /* pop\00*/, 0); return __str19 }); -this.__defineGetter__("__str20", function() { delete __str20; __str20 = Pointer_make([115,0] /* s\00*/, 0); return __str20 }); -this.__defineGetter__("__ZL11__dummy_pop", function() { delete __ZL11__dummy_pop; __ZL11__dummy_pop = Pointer_make([0], 0); return __ZL11__dummy_pop }); -this.__defineGetter__("__str21", function() { delete __str21; __str21 = Pointer_make([114,101,115,101,116,118,97,114,0] /* resetvar\00*/, 0); return __str21 }); -this.__defineGetter__("__ZL16__dummy_resetvar", function() { delete __ZL16__dummy_resetvar; __ZL16__dummy_resetvar = Pointer_make([0], 0); return __ZL16__dummy_resetvar }); -this.__defineGetter__("__str22", function() { delete __str22; __str22 = Pointer_make([97,108,105,97,115,0] /* alias\00*/, 0); return __str22 }); -this.__defineGetter__("__ZL13__dummy_alias", function() { delete __ZL13__dummy_alias; __ZL13__dummy_alias = Pointer_make([0], 0); return __ZL13__dummy_alias }); -var ___dso_handle = 0; /* external value? */ -this.__defineGetter__("__str23", function() { delete __str23; __str23 = Pointer_make([110,117,109,97,114,103,115,0] /* numargs\00*/, 0); return __str23 }); -this.__defineGetter__("__numargs", function() { delete __numargs; __numargs = Pointer_make([0], 0); return __numargs }); -this.__defineGetter__("__str24", function() { delete __str24; __str24 = Pointer_make([105,102,0] /* if\00*/, 0); return __str24 }); -this.__defineGetter__("__str25", function() { delete __str25; __str25 = Pointer_make([115,115,115,0] /* sss\00*/, 0); return __str25 }); -this.__defineGetter__("__ZN7_stdcmdILi846EE4initE", function() { delete __ZN7_stdcmdILi846EE4initE; __ZN7_stdcmdILi846EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi846EE4initE }); -this.__defineGetter__("__str26", function() { delete __str26; __str26 = Pointer_make([63,0] /* ?\00*/, 0); return __str26 }); -this.__defineGetter__("__ZN7_stdcmdILi847EE4initE", function() { delete __ZN7_stdcmdILi847EE4initE; __ZN7_stdcmdILi847EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi847EE4initE }); -this.__defineGetter__("__str27", function() { delete __str27; __str27 = Pointer_make([108,111,111,112,0] /* loop\00*/, 0); return __str27 }); -this.__defineGetter__("__str28", function() { delete __str28; __str28 = Pointer_make([115,105,115,0] /* sis\00*/, 0); return __str28 }); -this.__defineGetter__("__ZN7_stdcmdILi860EE4initE", function() { delete __ZN7_stdcmdILi860EE4initE; __ZN7_stdcmdILi860EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi860EE4initE }); -this.__defineGetter__("__str29", function() { delete __str29; __str29 = Pointer_make([108,111,111,112,119,104,105,108,101,0] /* loopwhile\00*/, 0); return __str29 }); -this.__defineGetter__("__str30", function() { delete __str30; __str30 = Pointer_make([115,105,115,115,0] /* siss\00*/, |