diff options
author | alon@honor <none@none> | 2010-09-11 15:29:00 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-11 15:29:00 -0700 |
commit | b91f37774b3215e8d3c67c14ddd1400923dca178 (patch) | |
tree | b1bdda91dd868e7c5c2b023da9991ec82bf21393 | |
parent | ac805ebf0af3ad7873dbed0f0f28e5f6d481c464 (diff) |
cubescript web demo
-rw-r--r-- | demos/cubescript.html | 65 | ||||
-rw-r--r-- | demos/cubescript.js | 12783 |
2 files changed, 12848 insertions, 0 deletions
diff --git a/demos/cubescript.html b/demos/cubescript.html new file mode 100644 index 00000000..05e4f946 --- /dev/null +++ b/demos/cubescript.html @@ -0,0 +1,65 @@ +<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 new file mode 100644 index 00000000..2a75e583 --- /dev/null +++ b/demos/cubescript.js @@ -0,0 +1,12783 @@ +// 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 + + + +//=============================================== +// Emscripten-generated code +//=============================================== + + +// === 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 === + + +// type: %0 +var _struct___class_type_info_pseudo___FLATTENER = [0]; +// type: %struct.__type_info_pseudo +// type: %struct.cline +// type: %"struct.databuf<char>" +// type: %"struct.hashset<hashtableentry<const char*, ident> >" +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]; +// type: %struct.identstack +// type: %struct.stringformatter +// type: %"struct.vector<char*>" +// type: %"struct.vector<char>" +// type: %"struct.vector<cline>" +// type: %"struct.vector<ident*>" +// type: %"struct.vector<vector<char>*>" +// type: %union..0._40 +// type: %"union.ident::._34" +// type: %"union.ident::._35" +// type: %"union.ident::._36" +// type: %"union.ident::._37" +// type: %"union.ident::._38" +// type: %union.identval +// type: %union.identvalptr +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); 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*/, 0); return __str30 }); +this.__defineGetter__("__ZN7_stdcmdILi874EE4initE", function() { delete __ZN7_stdcmdILi874EE4initE; __ZN7_stdcmdILi874EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi874EE4initE }); +this.__defineGetter__("__str31", function() { delete __str31; __str31 = Pointer_make([119,104,105,108,101,0] /* while\00*/, 0); return __str31 }); +this.__defineGetter__("__ZN7_stdcmdILi875EE4initE", function() { delete __ZN7_stdcmdILi875EE4initE; __ZN7_stdcmdILi875EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi875EE4initE }); +this.__defineGetter__("__str32", function() { delete __str32; __str32 = Pointer_make([99,111,110,99,97,116,0] /* concat\00*/, 0); return __str32 }); +this.__defineGetter__("__str33", function() { delete __str33; __str33 = Pointer_make([67,0] /* C\00*/, 0); return __str33 }); +this.__defineGetter__("__ZL14__dummy_concat", function() { delete __ZL14__dummy_concat; __ZL14__dummy_concat = Pointer_make([0], 0); return __ZL14__dummy_concat }); +this.__defineGetter__("__str34", function() { delete __str34; __str34 = Pointer_make([114,101,115,117,108,116,0] /* result\00*/, 0); return __str34 }); +this.__defineGetter__("__ZL14__dummy_result", function() { delete __ZL14__dummy_result; __ZL14__dummy_result = Pointer_make([0], 0); return __ZL14__dummy_result }); +this.__defineGetter__("__str35", function() { delete __str35; __str35 = Pointer_make([99,111,110,99,97,116,119,111,114,100,0] /* concatword\00*/, 0); return __str35 }); +this.__defineGetter__("__str36", function() { delete __str36; __str36 = Pointer_make([86,0] /* V\00*/, 0); return __str36 }); +this.__defineGetter__("__ZL18__dummy_concatword", function() { delete __ZL18__dummy_concatword; __ZL18__dummy_concatword = Pointer_make([0], 0); return __ZL18__dummy_concatword }); +this.__defineGetter__("__str37", function() { delete __str37; __str37 = Pointer_make([102,111,114,109,97,116,0] /* format\00*/, 0); return __str37 }); +this.__defineGetter__("__ZL14__dummy_format", function() { delete __ZL14__dummy_format; __ZL14__dummy_format = Pointer_make([0], 0); return __ZL14__dummy_format }); +this.__defineGetter__("__str38", function() { delete __str38; __str38 = Pointer_make([97,116,0] /* at\00*/, 0); return __str38 }); +this.__defineGetter__("__str39", function() { delete __str39; __str39 = Pointer_make([115,105,0] /* si\00*/, 0); return __str39 }); +this.__defineGetter__("__ZL10__dummy_at", function() { delete __ZL10__dummy_at; __ZL10__dummy_at = Pointer_make([0], 0); return __ZL10__dummy_at }); +this.__defineGetter__("__str40", function() { delete __str40; __str40 = Pointer_make([115,117,98,115,116,114,0] /* substr\00*/, 0); return __str40 }); +this.__defineGetter__("__ZL14__dummy_substr", function() { delete __ZL14__dummy_substr; __ZL14__dummy_substr = Pointer_make([0], 0); return __ZL14__dummy_substr }); +this.__defineGetter__("__str41", function() { delete __str41; __str41 = Pointer_make([108,105,115,116,108,101,110,0] /* listlen\00*/, 0); return __str41 }); +this.__defineGetter__("__ZN7_stdcmdILi973EE4initE", function() { delete __ZN7_stdcmdILi973EE4initE; __ZN7_stdcmdILi973EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi973EE4initE }); +this.__defineGetter__("__str42", function() { delete __str42; __str42 = Pointer_make([103,101,116,97,108,105,97,115,0] /* getalias\00*/, 0); return __str42 }); +this.__defineGetter__("__ZL17__dummy_getalias_", function() { delete __ZL17__dummy_getalias_; __ZL17__dummy_getalias_ = Pointer_make([0], 0); return __ZL17__dummy_getalias_ }); +this.__defineGetter__("__str43", function() { delete __str43; __str43 = Pointer_make([112,114,101,116,116,121,108,105,115,116,0] /* prettylist\00*/, 0); return __str43 }); +this.__defineGetter__("__ZL18__dummy_prettylist", function() { delete __ZL18__dummy_prettylist; __ZL18__dummy_prettylist = Pointer_make([0], 0); return __ZL18__dummy_prettylist }); +this.__defineGetter__("__str44", function() { delete __str44; __str44 = Pointer_make([108,105,115,116,100,101,108,0] /* listdel\00*/, 0); return __str44 }); +this.__defineGetter__("__ZN7_stdcmdILi1070EE4initE", function() { delete __ZN7_stdcmdILi1070EE4initE; __ZN7_stdcmdILi1070EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1070EE4initE }); +this.__defineGetter__("__str45", function() { delete __str45; __str45 = Pointer_make([105,110,100,101,120,111,102,0] /* indexof\00*/, 0); return __str45 }); +this.__defineGetter__("__ZN7_stdcmdILi1071EE4initE", function() { delete __ZN7_stdcmdILi1071EE4initE; __ZN7_stdcmdILi1071EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1071EE4initE }); +this.__defineGetter__("__str46", function() { delete __str46; __str46 = Pointer_make([108,105,115,116,102,105,110,100,0] /* listfind\00*/, 0); return __str46 }); +this.__defineGetter__("__ZN7_stdcmdILi1072EE4initE", function() { delete __ZN7_stdcmdILi1072EE4initE; __ZN7_stdcmdILi1072EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1072EE4initE }); +this.__defineGetter__("__str47", function() { delete __str47; __str47 = Pointer_make([108,111,111,112,108,105,115,116,0] /* looplist\00*/, 0); return __str47 }); +this.__defineGetter__("__ZN7_stdcmdILi1073EE4initE", function() { delete __ZN7_stdcmdILi1073EE4initE; __ZN7_stdcmdILi1073EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1073EE4initE }); +this.__defineGetter__("__str48", function() { delete __str48; __str48 = Pointer_make([43,0] /* +\00*/, 0); return __str48 }); +this.__defineGetter__("__str49", function() { delete __str49; __str49 = Pointer_make([105,105,0] /* ii\00*/, 0); return __str49 }); +this.__defineGetter__("__ZN7_stdcmdILi1075EE4initE", function() { delete __ZN7_stdcmdILi1075EE4initE; __ZN7_stdcmdILi1075EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1075EE4initE }); +this.__defineGetter__("__str50", function() { delete __str50; __str50 = Pointer_make([42,0] /* *\00*/, 0); return __str50 }); +this.__defineGetter__("__ZN7_stdcmdILi1076EE4initE", function() { delete __ZN7_stdcmdILi1076EE4initE; __ZN7_stdcmdILi1076EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1076EE4initE }); +this.__defineGetter__("__str51", function() { delete __str51; __str51 = Pointer_make([45,0] /* -\00*/, 0); return __str51 }); +this.__defineGetter__("__ZN7_stdcmdILi1077EE4initE", function() { delete __ZN7_stdcmdILi1077EE4initE; __ZN7_stdcmdILi1077EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1077EE4initE }); +this.__defineGetter__("__str52", function() { delete __str52; __str52 = Pointer_make([43,102,0] /* +f\00*/, 0); return __str52 }); +this.__defineGetter__("__str53", function() { delete __str53; __str53 = Pointer_make([102,102,0] /* ff\00*/, 0); return __str53 }); +this.__defineGetter__("__ZN7_stdcmdILi1078EE4initE", function() { delete __ZN7_stdcmdILi1078EE4initE; __ZN7_stdcmdILi1078EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1078EE4initE }); +this.__defineGetter__("__str54", function() { delete __str54; __str54 = Pointer_make([42,102,0] /* *f\00*/, 0); return __str54 }); +this.__defineGetter__("__ZN7_stdcmdILi1079EE4initE", function() { delete __ZN7_stdcmdILi1079EE4initE; __ZN7_stdcmdILi1079EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1079EE4initE }); +this.__defineGetter__("__str55", function() { delete __str55; __str55 = Pointer_make([45,102,0] /* -f\00*/, 0); return __str55 }); +this.__defineGetter__("__ZN7_stdcmdILi1080EE4initE", function() { delete __ZN7_stdcmdILi1080EE4initE; __ZN7_stdcmdILi1080EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1080EE4initE }); +this.__defineGetter__("__str56", function() { delete __str56; __str56 = Pointer_make([61,0] /* =\00*/, 0); return __str56 }); +this.__defineGetter__("__ZN7_stdcmdILi1081EE4initE", function() { delete __ZN7_stdcmdILi1081EE4initE; __ZN7_stdcmdILi1081EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1081EE4initE }); +this.__defineGetter__("__str57", function() { delete __str57; __str57 = Pointer_make([33,61,0] /* !=\00*/, 0); return __str57 }); +this.__defineGetter__("__ZN7_stdcmdILi1082EE4initE", function() { delete __ZN7_stdcmdILi1082EE4initE; __ZN7_stdcmdILi1082EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1082EE4initE }); +this.__defineGetter__("__str58", function() { delete __str58; __str58 = Pointer_make([60,0] /* <\00*/, 0); return __str58 }); +this.__defineGetter__("__ZN7_stdcmdILi1083EE4initE", function() { delete __ZN7_stdcmdILi1083EE4initE; __ZN7_stdcmdILi1083EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1083EE4initE }); +this.__defineGetter__("__str59", function() { delete __str59; __str59 = Pointer_make([62,0] /* >\00*/, 0); return __str59 }); +this.__defineGetter__("__ZN7_stdcmdILi1084EE4initE", function() { delete __ZN7_stdcmdILi1084EE4initE; __ZN7_stdcmdILi1084EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1084EE4initE }); +this.__defineGetter__("__str60", function() { delete __str60; __str60 = Pointer_make([60,61,0] /* <=\00*/, 0); return __str60 }); +this.__defineGetter__("__ZN7_stdcmdILi1085EE4initE", function() { delete __ZN7_stdcmdILi1085EE4initE; __ZN7_stdcmdILi1085EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1085EE4initE }); +this.__defineGetter__("__str61", function() { delete __str61; __str61 = Pointer_make([62,61,0] /* >=\00*/, 0); return __str61 }); +this.__defineGetter__("__ZN7_stdcmdILi1086EE4initE", function() { delete __ZN7_stdcmdILi1086EE4initE; __ZN7_stdcmdILi1086EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1086EE4initE }); +this.__defineGetter__("__str62", function() { delete __str62; __str62 = Pointer_make([61,102,0] /* =f\00*/, 0); return __str62 }); +this.__defineGetter__("__ZN7_stdcmdILi1087EE4initE", function() { delete __ZN7_stdcmdILi1087EE4initE; __ZN7_stdcmdILi1087EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1087EE4initE }); +this.__defineGetter__("__str63", function() { delete __str63; __str63 = Pointer_make([33,61,102,0] /* !=f\00*/, 0); return __str63 }); +this.__defineGetter__("__ZN7_stdcmdILi1088EE4initE", function() { delete __ZN7_stdcmdILi1088EE4initE; __ZN7_stdcmdILi1088EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1088EE4initE }); +this.__defineGetter__("__str64", function() { delete __str64; __str64 = Pointer_make([60,102,0] /* <f\00*/, 0); return __str64 }); +this.__defineGetter__("__ZN7_stdcmdILi1089EE4initE", function() { delete __ZN7_stdcmdILi1089EE4initE; __ZN7_stdcmdILi1089EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1089EE4initE }); +this.__defineGetter__("__str65", function() { delete __str65; __str65 = Pointer_make([62,102,0] /* >f\00*/, 0); return __str65 }); +this.__defineGetter__("__ZN7_stdcmdILi1090EE4initE", function() { delete __ZN7_stdcmdILi1090EE4initE; __ZN7_stdcmdILi1090EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1090EE4initE }); +this.__defineGetter__("__str66", function() { delete __str66; __str66 = Pointer_make([60,61,102,0] /* <=f\00*/, 0); return __str66 }); +this.__defineGetter__("__ZN7_stdcmdILi1091EE4initE", function() { delete __ZN7_stdcmdILi1091EE4initE; __ZN7_stdcmdILi1091EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1091EE4initE }); +this.__defineGetter__("__str67", function() { delete __str67; __str67 = Pointer_make([62,61,102,0] /* >=f\00*/, 0); return __str67 }); +this.__defineGetter__("__ZN7_stdcmdILi1092EE4initE", function() { delete __ZN7_stdcmdILi1092EE4initE; __ZN7_stdcmdILi1092EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1092EE4initE }); +this.__defineGetter__("__str68", function() { delete __str68; __str68 = Pointer_make([94,0] /* ^\00*/, 0); return __str68 }); +this.__defineGetter__("__ZN7_stdcmdILi1093EE4initE", function() { delete __ZN7_stdcmdILi1093EE4initE; __ZN7_stdcmdILi1093EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1093EE4initE }); +this.__defineGetter__("__str69", function() { delete __str69; __str69 = Pointer_make([33,0] /* !\00*/, 0); return __str69 }); +this.__defineGetter__("__str70", function() { delete __str70; __str70 = Pointer_make([105,0] /* i\00*/, 0); return __str70 }); +this.__defineGetter__("__ZN7_stdcmdILi1094EE4initE", function() { delete __ZN7_stdcmdILi1094EE4initE; __ZN7_stdcmdILi1094EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1094EE4initE }); +this.__defineGetter__("__str71", function() { delete __str71; __str71 = Pointer_make([38,0] /* &\00*/, 0); return __str71 }); +this.__defineGetter__("__ZN7_stdcmdILi1095EE4initE", function() { delete __ZN7_stdcmdILi1095EE4initE; __ZN7_stdcmdILi1095EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1095EE4initE }); +this.__defineGetter__("__str72", function() { delete __str72; __str72 = Pointer_make([124,0] /* |\00*/, 0); return __str72 }); +this.__defineGetter__("__ZN7_stdcmdILi1096EE4initE", function() { delete __ZN7_stdcmdILi1096EE4initE; __ZN7_stdcmdILi1096EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1096EE4initE }); +this.__defineGetter__("__str73", function() { delete __str73; __str73 = Pointer_make([126,0] /* ~\00*/, 0); return __str73 }); +this.__defineGetter__("__ZN7_stdcmdILi1097EE4initE", function() { delete __ZN7_stdcmdILi1097EE4initE; __ZN7_stdcmdILi1097EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1097EE4initE }); +this.__defineGetter__("__str74", function() { delete __str74; __str74 = Pointer_make([94,126,0] /* ^~\00*/, 0); return __str74 }); +this.__defineGetter__("__ZN7_stdcmdILi1098EE4initE", function() { delete __ZN7_stdcmdILi1098EE4initE; __ZN7_stdcmdILi1098EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1098EE4initE }); +this.__defineGetter__("__str75", function() { delete __str75; __str75 = Pointer_make([38,126,0] /* &~\00*/, 0); return __str75 }); +this.__defineGetter__("__ZN7_stdcmdILi1099EE4initE", function() { delete __ZN7_stdcmdILi1099EE4initE; __ZN7_stdcmdILi1099EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1099EE4initE }); +this.__defineGetter__("__str76", function() { delete __str76; __str76 = Pointer_make([124,126,0] /* |~\00*/, 0); return __str76 }); +this.__defineGetter__("__ZN7_stdcmdILi1100EE4initE", function() { delete __ZN7_stdcmdILi1100EE4initE; __ZN7_stdcmdILi1100EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1100EE4initE }); +this.__defineGetter__("__str77", function() { delete __str77; __str77 = Pointer_make([60,60,0] /* <<\00*/, 0); return __str77 }); +this.__defineGetter__("__ZN7_stdcmdILi1101EE4initE", function() { delete __ZN7_stdcmdILi1101EE4initE; __ZN7_stdcmdILi1101EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1101EE4initE }); +this.__defineGetter__("__str78", function() { delete __str78; __str78 = Pointer_make([62,62,0] /* >>\00*/, 0); return __str78 }); +this.__defineGetter__("__ZN7_stdcmdILi1102EE4initE", function() { delete __ZN7_stdcmdILi1102EE4initE; __ZN7_stdcmdILi1102EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1102EE4initE }); +this.__defineGetter__("__str79", function() { delete __str79; __str79 = Pointer_make([38,38,0] /* &&\00*/, 0); return __str79 }); +this.__defineGetter__("__ZN7_stdcmdILi1108EE4initE", function() { delete __ZN7_stdcmdILi1108EE4initE; __ZN7_stdcmdILi1108EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1108EE4initE }); +this.__defineGetter__("__str80", function() { delete __str80; __str80 = Pointer_make([124,124,0] /* ||\00*/, 0); return __str80 }); +this.__defineGetter__("__ZN7_stdcmdILi1114EE4initE", function() { delete __ZN7_stdcmdILi1114EE4initE; __ZN7_stdcmdILi1114EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1114EE4initE }); +this.__defineGetter__("__str81", function() { delete __str81; __str81 = Pointer_make([100,105,118,0] /* div\00*/, 0); return __str81 }); +this.__defineGetter__("__ZN7_stdcmdILi1116EE4initE", function() { delete __ZN7_stdcmdILi1116EE4initE; __ZN7_stdcmdILi1116EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1116EE4initE }); +this.__defineGetter__("__str82", function() { delete __str82; __str82 = Pointer_make([109,111,100,0] /* mod\00*/, 0); return __str82 }); +this.__defineGetter__("__ZN7_stdcmdILi1117EE4initE", function() { delete __ZN7_stdcmdILi1117EE4initE; __ZN7_stdcmdILi1117EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1117EE4initE }); +this.__defineGetter__("__str83", function() { delete __str83; __str83 = Pointer_make([100,105,118,102,0] /* divf\00*/, 0); return __str83 }); +this.__defineGetter__("__ZN7_stdcmdILi1118EE4initE", function() { delete __ZN7_stdcmdILi1118EE4initE; __ZN7_stdcmdILi1118EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1118EE4initE }); +this.__defineGetter__("__str84", function() { delete __str84; __str84 = Pointer_make([109,111,100,102,0] /* modf\00*/, 0); return __str84 }); +this.__defineGetter__("__ZN7_stdcmdILi1119EE4initE", function() { delete __ZN7_stdcmdILi1119EE4initE; __ZN7_stdcmdILi1119EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1119EE4initE }); +this.__defineGetter__("__str85", function() { delete __str85; __str85 = Pointer_make([115,105,110,0] /* sin\00*/, 0); return __str85 }); +this.__defineGetter__("__str86", function() { delete __str86; __str86 = Pointer_make([102,0] /* f\00*/, 0); return __str86 }); +this.__defineGetter__("__ZN7_stdcmdILi1120EE4initE", function() { delete __ZN7_stdcmdILi1120EE4initE; __ZN7_stdcmdILi1120EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1120EE4initE }); +this.__defineGetter__("__str87", function() { delete __str87; __str87 = Pointer_make([99,111,115,0] /* cos\00*/, 0); return __str87 }); +this.__defineGetter__("__ZN7_stdcmdILi1121EE4initE", function() { delete __ZN7_stdcmdILi1121EE4initE; __ZN7_stdcmdILi1121EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1121EE4initE }); +this.__defineGetter__("__str88", function() { delete __str88; __str88 = Pointer_make([116,97,110,0] /* tan\00*/, 0); return __str88 }); +this.__defineGetter__("__ZN7_stdcmdILi1122EE4initE", function() { delete __ZN7_stdcmdILi1122EE4initE; __ZN7_stdcmdILi1122EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1122EE4initE }); +this.__defineGetter__("__str89", function() { delete __str89; __str89 = Pointer_make([97,115,105,110,0] /* asin\00*/, 0); return __str89 }); +this.__defineGetter__("__ZN7_stdcmdILi1123EE4initE", function() { delete __ZN7_stdcmdILi1123EE4initE; __ZN7_stdcmdILi1123EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1123EE4initE }); +this.__defineGetter__("__str90", function() { delete __str90; __str90 = Pointer_make([97,99,111,115,0] /* acos\00*/, 0); return __str90 }); +this.__defineGetter__("__ZN7_stdcmdILi1124EE4initE", function() { delete __ZN7_stdcmdILi1124EE4initE; __ZN7_stdcmdILi1124EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1124EE4initE }); +this.__defineGetter__("__str91", function() { delete __str91; __str91 = Pointer_make([97,116,97,110,0] /* atan\00*/, 0); return __str91 }); +this.__defineGetter__("__ZN7_stdcmdILi1125EE4initE", function() { delete __ZN7_stdcmdILi1125EE4initE; __ZN7_stdcmdILi1125EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1125EE4initE }); +this.__defineGetter__("__str92", function() { delete __str92; __str92 = Pointer_make([115,113,114,116,0] /* sqrt\00*/, 0); return __str92 }); +this.__defineGetter__("__ZN7_stdcmdILi1126EE4initE", function() { delete __ZN7_stdcmdILi1126EE4initE; __ZN7_stdcmdILi1126EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1126EE4initE }); +this.__defineGetter__("__str93", function() { delete __str93; __str93 = Pointer_make([112,111,119,0] /* pow\00*/, 0); return __str93 }); +this.__defineGetter__("__ZN7_stdcmdILi1127EE4initE", function() { delete __ZN7_stdcmdILi1127EE4initE; __ZN7_stdcmdILi1127EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1127EE4initE }); +this.__defineGetter__("__str94", function() { delete __str94; __str94 = Pointer_make([108,111,103,101,0] /* loge\00*/, 0); return __str94 }); +this.__defineGetter__("__ZN7_stdcmdILi1128EE4initE", function() { delete __ZN7_stdcmdILi1128EE4initE; __ZN7_stdcmdILi1128EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1128EE4initE }); +this.__defineGetter__("__str95", function() { delete __str95; __str95 = Pointer_make([108,111,103,50,0] /* log2\00*/, 0); return __str95 }); +this.__defineGetter__("__ZN7_stdcmdILi1129EE4initE", function() { delete __ZN7_stdcmdILi1129EE4initE; __ZN7_stdcmdILi1129EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1129EE4initE }); +this.__defineGetter__("__str96", function() { delete __str96; __str96 = Pointer_make([108,111,103,49,48,0] /* log10\00*/, 0); return __str96 }); +this.__defineGetter__("__ZN7_stdcmdILi1130EE4initE", function() { delete __ZN7_stdcmdILi1130EE4initE; __ZN7_stdcmdILi1130EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1130EE4initE }); +this.__defineGetter__("__str97", function() { delete __str97; __str97 = Pointer_make([101,120,112,0] /* exp\00*/, 0); return __str97 }); +this.__defineGetter__("__ZN7_stdcmdILi1131EE4initE", function() { delete __ZN7_stdcmdILi1131EE4initE; __ZN7_stdcmdILi1131EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1131EE4initE }); +this.__defineGetter__("__str98", function() { delete __str98; __str98 = Pointer_make([109,105,110,0] /* min\00*/, 0); return __str98 }); +this.__defineGetter__("__ZN7_stdcmdILi1137EE4initE", function() { delete __ZN7_stdcmdILi1137EE4initE; __ZN7_stdcmdILi1137EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1137EE4initE }); +this.__defineGetter__("__str99", function() { delete __str99; __str99 = Pointer_make([109,97,120,0] /* max\00*/, 0); return __str99 }); +this.__defineGetter__("__ZN7_stdcmdILi1143EE4initE", function() { delete __ZN7_stdcmdILi1143EE4initE; __ZN7_stdcmdILi1143EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1143EE4initE }); +this.__defineGetter__("__str100", function() { delete __str100; __str100 = Pointer_make([109,105,110,102,0] /* minf\00*/, 0); return __str100 }); +this.__defineGetter__("__ZN7_stdcmdILi1149EE4initE", function() { delete __ZN7_stdcmdILi1149EE4initE; __ZN7_stdcmdILi1149EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1149EE4initE }); +this.__defineGetter__("__str101", function() { delete __str101; __str101 = Pointer_make([109,97,120,102,0] /* maxf\00*/, 0); return __str101 }); +this.__defineGetter__("__ZN7_stdcmdILi1155EE4initE", function() { delete __ZN7_stdcmdILi1155EE4initE; __ZN7_stdcmdILi1155EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1155EE4initE }); +this.__defineGetter__("__str102", function() { delete __str10 |