diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-06-04 14:27:41 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-06-04 14:27:41 -0700 |
commit | 304221e18f276e5bd539f9b0238c854274074021 (patch) | |
tree | 2594e1adaa80df634ba5e4f45d4490654e8e6c0d /third_party | |
parent | 0428d4846f0cca7b28f1f22a1f50d5f3a12ec03e (diff) |
update gcc_demangler.js, which no longer worked on latest js engines
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/gcc_demangler.js | 26829 |
1 files changed, 21064 insertions, 5765 deletions
diff --git a/third_party/gcc_demangler.js b/third_party/gcc_demangler.js index 614a1cb3..ac9dcfc3 100644 --- a/third_party/gcc_demangler.js +++ b/third_party/gcc_demangler.js @@ -1,5983 +1,21282 @@ -// Autogenerated by Emscripten and Closure Compiler +"use strict"; -var h = false; -FUNCTION_TABLE = []; -var i = h, aa = []; -function l(a, e) { - if(!a) { - e = "Assertion failed: " + e; - print(e + ":\n" + Error().stack); - throw"Assertion: " + e; - } +// Capture the output of this into a variable, if you want +//(function(Module, args) { +// Module = Module || {}; +// args = args || []; + +// Runs much faster, for some reason +if (!this['Module']) { + this['Module'] = {}; } -ALLOC_NORMAL = 0; -ALLOC_STACK = 1; -ALLOC_STATIC = 2; -function n(a, e, c) { - function b(k) { - if(!k || k.length === undefined || typeof k === "function") { - return[k] - } - return k.map(b).reduce(function(j, r) { - return j.concat(r) - }, []) +try { + Module.arguments = arguments; +} catch(e) { + Module.arguments = []; +} + + +// === Auto-generated preamble library stuff === + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + stackAlloc: function stackAlloc(size) { var ret = STACKTOP; STACKTOP += size;STACKTOP = Math.ceil(STACKTOP/4)*4;; return ret; }, + staticAlloc: function staticAlloc(size) { var ret = STATICTOP; STATICTOP += size;STATICTOP = Math.ceil(STATICTOP/4)*4;; return ret; }, + alignMemory: function alignMemory(size,quantum) { var ret = size = Math.ceil(size/(quantum ? quantum : 4))*(quantum ? quantum : 4);; return ret; }, + isNumberType: function (type) { + return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES; + }, + isPointerType: function isPointerType(type) { + return pointingLevels(type) > 0; +}, + isStructType: function isStructType(type) { + if (isPointerType(type)) return false; + if (new RegExp(/^\[\d+\ x\ (.*)\]/g).test(type)) return true; // [15 x ?] blocks. Like structs + // See comment in isStructPointerType() + return !Runtime.isNumberType(type) && type[0] == '%'; +}, + INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0}, + FLOAT_TYPES: {"float":0,"double":0}, + or64: function (x, y) { + var l = (x | 0) | (y | 0); + var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + and64: function (x, y) { + var l = (x | 0) & (y | 0); + var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + xor64: function (x, y) { + var l = (x | 0) ^ (y | 0); + var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + getNativeFieldSize: function getNativeFieldSize(field, alone) { + if (4 == 1) return 1; + var size = { + '_i1': 1, + '_i8': 1, + '_i16': 2, + '_i32': 4, + '_i64': 8, + "_float": 4, + "_double": 8 + }['_'+field]; // add '_' since float&double confuse closure compiler as keys + if (!size && field[field.length-1] == '*') { + size = 4; // A pointer } - e = e ? e : 0; - if(a === HEAP) { - return e + if (!alone) size = Math.max(size, 4); + return size; +}, + dedup: function dedup(items, ident) { + var seen = {}; + if (ident) { + return items.filter(function(item) { + if (seen[item[ident]]) return false; + seen[item[ident]] = true; + return true; + }); + } else { + return items.filter(function(item) { + if (seen[item]) return false; + seen[item] = true; + return true; + }); } - a = b(a); - c = [_malloc, ba, ca][c ? c : ALLOC_STATIC](Math.max(a.length - e, 1)); - for(var f = 0;f < a.length - e;f++) { - var g = a[e + f]; - if(typeof g === "number" || typeof g === "boolean") { - IHEAP[c + f] = g; - FHEAP[c + f] = g - }else { - HEAP[c + f] = g - } +}, + set: function set() { + var args = typeof arguments[0] === 'object' ? arguments[0] : arguments; + var ret = {}; + for (var i = 0; i < args.length; i++) { + ret[args[i]] = 0; } - return c + return ret; +}, + calculateStructAlignment: function calculateStructAlignment(type) { + type.flatSize = 0; + type.alignSize = 0; + var diffs = []; + var prev = -1; + type.flatIndexes = type.fields.map(function(field) { + var size, alignSize; + if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) { + size = Runtime.getNativeFieldSize(field, true); // pack char; char; in structs, also char[X]s. + alignSize = size; + } else if (Runtime.isStructType(field)) { + size = Types.types[field].flatSize; + alignSize = Types.types[field].alignSize; + } else { + dprint('Unclear type in struct: ' + field + ', in ' + type.name_); + assert(0); + } + alignSize = type.packed ? 1 : Math.min(alignSize, 4); + type.alignSize = Math.max(type.alignSize, alignSize); + var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory + type.flatSize = curr + size; + if (prev >= 0) { + diffs.push(curr-prev); + } + prev = curr; + return curr; + }); + type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize); + if (diffs.length == 0) { + type.flatFactor = type.flatSize; + } else if (Runtime.dedup(diffs).length == 1) { + type.flatFactor = diffs[0]; + } + type.needsFlattening = (type.flatFactor != 1); + return type.flatIndexes; + }, + generateStructInfo: function (struct) { + var fields = struct.map(function(item) { return item[0] }); + var type = { fields: fields }; + var alignment = Runtime.calculateStructAlignment(type); + var ret = { + __size__: type.flatSize + }; + struct.forEach(function(item, i) { + ret[item[1]] = alignment[i]; + }); + return ret; + }, + __dummy__: 0 } -function da(a) { - a = {c:IHEAP, b:a}; - for(var e = "", c = 0, b;;) { - if(a.b + c >= a.c.length) { - break - } - b = String.fromCharCode(a.c[a.b + c]); - if(b == "\u0000") { - break - } - e += b; - c += 1 + + + +var CorrectionsMonitor = { + MAX_ALLOWED: 0, // XXX + corrections: 0, + sigs: {}, + + note: function(type, succeed, sig) { + if (!succeed) { + this.corrections++; + if (this.corrections >= this.MAX_ALLOWED) abort('\n\nToo many corrections!'); + } + }, + + print: function() { + var items = []; + for (var sig in this.sigs) { + items.push({ + sig: sig, + fails: this.sigs[sig][0], + succeeds: this.sigs[sig][1], + total: this.sigs[sig][0] + this.sigs[sig][1] + }); + } + items.sort(function(x, y) { return y.total - x.total; }); + for (var i = 0; i < items.length; i++) { + var item = items[i]; + print(item.sig + ' : ' + item.total + ' hits, %' + (Math.floor(100*item.fails/item.total)) + ' failures'); + } } - return e +}; + + + + + +//======================================== +// Runtime essentials +//======================================== + +function __globalConstructor__() { } -PAGE_SIZE = 4096; -if(!this.d) { - _malloc = ca; - _free = function() { - } + +var __THREW__ = false; // Used in checking for thrown exceptions. + +var __ATEXIT__ = []; + +var ABORT = false; + +var undef = 0; + +function abort(text) { + print(text + ':\n' + (new Error).stack); + ABORT = true; + throw "Assertion: " + text; } -__Znwm = __Znam = __Znaj = __Znwj = _malloc; -__ZdaPv = __ZdlPv = _free; -function ea() { - HEAP = o("(null)"); - this.TOTAL_MEMORY || (TOTAL_MEMORY = 52428800); - if(this.Int32Array) { - IHEAP = new Int32Array(TOTAL_MEMORY); - for(var a = 0;a < HEAP.length;a++) { - IHEAP[a] = HEAP[a] - } - }else { - IHEAP = HEAP + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); } - FHEAP = this.Float64Array ? new Float64Array(TOTAL_MEMORY) : HEAP; - STACK_ROOT = STACKTOP = Math.ceil(10 / PAGE_SIZE) * PAGE_SIZE; - this.TOTAL_STACK || (TOTAL_STACK = 1048576); - STACK_MAX = STACK_ROOT + TOTAL_STACK; - STATICTOP = Math.ceil(STACK_MAX / PAGE_SIZE) * PAGE_SIZE } -function fa() { - for(var a = arguments[0], e = 1, c = [], b = -1;b != 0;) { - b = IHEAP[a]; - next = IHEAP[a + 1]; - if(b == "%".charCodeAt(0) && ["d", "u", "f", "."].indexOf(String.fromCharCode(next)) != -1) { - var f = String(+arguments[e]); - if(next == ".".charCodeAt(0)) { - var g = parseInt(String.fromCharCode(IHEAP[a + 2])), k = f.indexOf("."); - if(k == -1) { - k = f.length; - f += "." - } - f += "00000000000"; - f = f.substr(0, k + 1 + g); - a += 2 - }else { - if(next == "u".charCodeAt(0)) { - f = String(p(arguments[e], 32)) - } - } - f.split("").forEach(function(j) { - c.push(j.charCodeAt(0)) - }); - e += 1; - a += 2 - }else { - if(b == "%".charCodeAt(0) && next == "s".charCodeAt(0)) { - c = c.concat(Array.prototype.slice.call(IHEAP.slice(arguments[e], arguments[e] + _strlen(arguments[e]))).concat([])); - e += 1; - a += 2 - }else { - if(b == "%".charCodeAt(0) && next == "c".charCodeAt(0)) { - c = c.concat(arguments[e]); - e += 1; - a += 2 - }else { - c.push(b); - a += 1 - } - } + +// Creates a pointer for a certain slab and a certain address in that slab. +// If just a slab is given, will allocate room for it and copy it there. In +// other words, do whatever is necessary in order to return a pointer, that +// points to the slab (and possibly position) we are given. + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed + +function Pointer_make(slab, pos, allocator, types) { + pos = pos ? pos : 0; + assert(pos === 0); // TODO: remove 'pos' + if (slab === HEAP) return pos; + var size = slab.length; + + var i; + + // Finalize + var ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc][allocator ? allocator : ALLOC_STATIC](Math.max(size, 1)); + + var type = typeof types === 'string' ? types : null; + + for (i = 0; i < size; i++) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + if (type || types[i]) { + IHEAP[ret+i]=curr; FHEAP[ret+i]=curr; } } - return n(c, 0, ALLOC_STACK) + + return ret; } -function ha(a, e, c) { - for(var b = 0;b < c;b++) { - HEAP[a + b] = HEAP[e + b]; - IHEAP[a + b] = IHEAP[e + b]; - FHEAP[a + b] = FHEAP[e + b] +Module['Pointer_make'] = Pointer_make; + +function Pointer_stringify(ptr) { + var ret = ""; + var i = 0; + var t; + while (1) { + t = String.fromCharCode(IHEAP[ptr+i]); + if (t == "\0") { break; } else {} + ret += t; + i += 1; } + return ret; } -_llvm_memcpy_p0i8_p0i8_i32 = _llvm_memcpy_i64 = ha; -_llvm_memset_p0i8_i32 = function(a, e, c) { - for(var b = 0;b < c;b++) { - HEAP[a + b] = IHEAP[a + b] = FHEAP[a + b] = e + +// Memory management + +var PAGE_SIZE = 4096; +function alignMemoryPage(x) { + return Math.ceil(x/PAGE_SIZE)*PAGE_SIZE; +} + +var HEAP; +var IHEAP, FHEAP; + +var STACK_ROOT, STACKTOP, STACK_MAX; +var STATICTOP; + +var HAS_TYPED_ARRAYS = false; +var TOTAL_MEMORY = 50*1024*1024; + +function __initializeRuntime__() { + HAS_TYPED_ARRAYS = false; + try { + HAS_TYPED_ARRAYS = !!Int32Array && !!Float64Array && !!(new Int32Array()['subarray']); // check for full engine support (use string 'subarray' to avoid closure compiler confusion) + } catch(e) {} + + if (HAS_TYPED_ARRAYS) { + HEAP = IHEAP = new Int32Array(TOTAL_MEMORY); + FHEAP = new Float64Array(TOTAL_MEMORY); + } else + { + // Without this optimization, Chrome is slow. Sadly, the constant here needs to be tweaked depending on the code being run... + var FAST_MEMORY = TOTAL_MEMORY/32; + HEAP = new Array(FAST_MEMORY); + for (var i = 0; i < FAST_MEMORY; i++) { + HEAP[i] = 0; // XXX We do *not* use IHEAP[i]=0; FHEAP[i]=0; here, since this is done just to optimize runtime speed + } + IHEAP = FHEAP = HEAP; } -}; -PRINTBUFFER = ""; -function o(a) { - for(var e = [], c = 0;c < a.length;) { - e.push(a.charCodeAt(c)); - c += 1 + + var base = intArrayFromString('(null)'); // So printing %s of NULL gives '(null)' + // Also this ensures we leave 0 as an invalid address, 'NULL' + for (var i = 0; i < base.length; i++) { + IHEAP[i]=base[i]; } - e.push(0); - return e + + Module['HEAP'] = HEAP; + + STACK_ROOT = STACKTOP = alignMemoryPage(10); + var TOTAL_STACK = 1024*1024; // XXX: Changing this value can lead to bad perf on v8! + STACK_MAX = STACK_ROOT + TOTAL_STACK; + + STATICTOP = alignMemoryPage(STACK_MAX); } -function p(a, e) { - if(a >= 0) { - return a + +function __shutdownRuntime__() { + while( __ATEXIT__.length > 0) { + var atexit = __ATEXIT__.pop(); + var func = atexit.func; + if (typeof func === 'number') { + func = FUNCTION_TABLE[func]; + } + func(atexit.arg); } - return 2 * Math.abs(1 << e - 1) + a + + // allow browser to GC, set heaps to null? + + // Print summary of correction activity + CorrectionsMonitor.print(); } -function ba(a) { - var e = STACKTOP; - l(a > 0); - STACKTOP += a; - STACKTOP = Math.ceil(STACKTOP / 4) * 4; - l(STACKTOP < STACK_ROOT + STACK_MAX); - return e + + +// Copies a list of num items on the HEAP into a +// a normal JavaScript array of numbers +function Array_copy(ptr, num) { + // TODO: In the SAFE_HEAP case, do some reading here, for debugging purposes - currently this is an 'unnoticed read'. + if (HAS_TYPED_ARRAYS) { + return Array.prototype.slice.call(IHEAP.subarray(ptr, ptr+num)); // Make a normal array out of the typed 'view' + // Consider making a typed array here, for speed? + } else { + return IHEAP.slice(ptr, ptr+num); + } + return HEAP.slice(ptr, ptr+num); } -function ca(a) { - var e = STATICTOP; - l(a > 0); - STATICTOP += a; - STATICTOP = Math.ceil(STATICTOP / 4) * 4; - return e + +function String_len(ptr) { + var i = 0; + while (IHEAP[ptr+i]) i++; // Note: should be |!= 0|, technically. But this helps catch bugs with undefineds + return i; } -this.__defineGetter__("__ZL13standard_subs", function() { - delete __ZL13standard_subs; - return __ZL13standard_subs = n([[116, 0, 0, 0, __str, 0, 0, 0, 3, 0, 0, 0, __str, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [97, 0, 0, 0, __str1, 0, 0, 0, 14, 0, 0, 0, __str1, 0, 0, 0, 14, 0, 0, 0, __str2, 0, 0, 0, 9, 0, 0, 0], [98, 0, 0, 0, __str3, 0, 0, 0, 17, 0, 0, 0, __str3, 0, 0, 0, 17, 0, 0, 0, __str4, 0, 0, 0, 12, 0, 0, 0], [115, 0, 0, 0, __str5, 0, 0, 0, 11, 0, 0, 0, __str6, 0, 0, 0, 70, 0, 0, 0, __str4, 0, 0, 0, 12, 0, 0, 0], [105, 0, 0, 0, __str7, 0, 0, 0, 12, 0, 0, 0, __str8, 0, - 0, 0, 49, 0, 0, 0, __str9, 0, 0, 0, 13, 0, 0, 0], [111, 0, 0, 0, __str10, 0, 0, 0, 12, 0, 0, 0, __str11, 0, 0, 0, 49, 0, 0, 0, __str12, 0, 0, 0, 13, 0, 0, 0], [100, 0, 0, 0, __str13, 0, 0, 0, 13, 0, 0, 0, __str14, 0, 0, 0, 50, 0, 0, 0, __str15, 0, 0, 0, 14, 0, 0, 0]], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str", function() { - delete __str; - return __str = n([115, 116, 100, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str1", function() { - delete __str1; - return __str1 = n([115, 116, 100, 58, 58, 97, 108, 108, 111, 99, 97, 116, 111, 114, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str2", function() { - delete __str2; - return __str2 = n([97, 108, 108, 111, 99, 97, 116, 111, 114, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str3", function() { - delete __str3; - return __str3 = n([115, 116, 100, 58, 58, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str4", function() { - delete __str4; - return __str4 = n([98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str5", function() { - delete __str5; - return __str5 = n([115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str6", function() { - delete __str6; - return __str6 = n([115, 116, 100, 58, 58, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 60, 99, 104, 97, 114, 44, 32, 115, 116, 100, 58, 58, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 60, 99, 104, 97, 114, 62, 44, 32, 115, 116, 100, 58, 58, 97, 108, 108, 111, 99, 97, 116, 111, 114, 60, 99, 104, 97, 114, 62, 32, 62, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str7", function() { - delete __str7; - return __str7 = n([115, 116, 100, 58, 58, 105, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str8", function() { - delete __str8; - return __str8 = n([115, 116, 100, 58, 58, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 60, 99, 104, 97, 114, 44, 32, 115, 116, 100, 58, 58, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 60, 99, 104, 97, 114, 62, 32, 62, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str9", function() { - delete __str9; - return __str9 = n([98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str10", function() { - delete __str10; - return __str10 = n([115, 116, 100, 58, 58, 111, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str11", function() { - delete __str11; - return __str11 = n([115, 116, 100, 58, 58, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 60, 99, 104, 97, 114, 44, 32, 115, 116, 100, 58, 58, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 60, 99, 104, 97, 114, 62, 32, 62, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str12", function() { - delete __str12; - return __str12 = n([98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str13", function() { - delete __str13; - return __str13 = n([115, 116, 100, 58, 58, 105, 111, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str14", function() { - delete __str14; - return __str14 = n([115, 116, 100, 58, 58, 98, 97, 115, 105, 99, 95, 105, 111, 115, 116, 114, 101, 97, 109, 60, 99, 104, 97, 114, 44, 32, 115, 116, 100, 58, 58, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 60, 99, 104, 97, 114, 62, 32, 62, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str15", function() { - delete __str15; - return __str15 = n([98, 97, 115, 105, 99, 95, 105, 111, 115, 116, 114, 101, 97, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str16", function() { - delete __str16; - return __str16 = n([58, 58, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str17", function() { - delete __str17; - return __str17 = n([118, 116, 97, 98, 108, 101, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str18", function() { - delete __str18; - return __str18 = n([86, 84, 84, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str19", function() { - delete __str19; - return __str19 = n([99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 118, 116, 97, 98, 108, 101, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str20", function() { - delete __str20; - return __str20 = n([45, 105, 110, 45, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str21", function() { - delete __str21; - return __str21 = n([116, 121, 112, 101, 105, 110, 102, 111, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str22", function() { - delete __str22; - return __str22 = n([116, 121, 112, 101, 105, 110, 102, 111, 32, 110, 97, 109, 101, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str23", function() { - delete __str23; - return __str23 = n([116, 121, 112, 101, 105, 110, 102, 111, 32, 102, 110, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str24", function() { - delete __str24; - return __str24 = n([110, 111, 110, 45, 118, 105, 114, 116, 117, 97, 108, 32, 116, 104, 117, 110, 107, 32, 116, 111, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str25", function() { - delete __str25; - return __str25 = n([118, 105, 114, 116, 117, 97, 108, 32, 116, 104, 117, 110, 107, 32, 116, 111, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str26", function() { - delete __str26; - return __str26 = n([99, 111, 118, 97, 114, 105, 97, 110, 116, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 117, 110, 107, 32, 116, 111, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str27", function() { - delete __str27; - return __str27 = n([106, 97, 118, 97, 32, 67, 108, 97, 115, 115, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str28", function() { - delete __str28; - return __str28 = n([103, 117, 97, 114, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str29", function() { - delete __str29; - return __str29 = n([114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 121, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str30", function() { - delete __str30; - return __str30 = n([104, 105, 100, 100, 101, 110, 32, 97, 108, 105, 97, 115, 32, 102, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str31", function() { - delete __str31; - return __str31 = n([58, 58, 42, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str32", function() { - delete __str32; - return __str32 = n([44, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str33", function() { - delete __str33; - return __str33 = n([111, 112, 101, 114, 97, 116, 111, 114, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str34", function() { - delete __str34; - return __str34 = n([111, 112, 101, 114, 97, 116, 111, 114, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str35", function() { - delete __str35; - return __str35 = n([41, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str36", function() { - delete __str36; - return __str36 = n([32, 40, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str37", function() { - delete __str37; - return __str37 = n([41, 32, 58, 32, 40, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str38", function() { - delete __str38; - return __str38 = n([117, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str39", function() { - delete __str39; - return __str39 = n([108, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str40", function() { - delete __str40; - return __str40 = n([117, 108, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str41", function() { - delete __str41; - return __str41 = n([102, 97, 108, 115, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str42", function() { - delete __str42; - return __str42 = n([116, 114, 117, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str43", function() { - delete __str43; - return __str43 = n([32, 114, 101, 115, 116, 114, 105, 99, 116, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str44", function() { - delete __str44; - return __str44 = n([32, 118, 111, 108, 97, 116, 105, 108, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str45", function() { - delete __str45; - return __str45 = n([32, 99, 111, 110, 115, 116, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str46", function() { - delete __str46; - return __str46 = n([99, 111, 109, 112, 108, 101, 120, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str47", function() { - delete __str47; - return __str47 = n([105, 109, 97, 103, 105, 110, 97, 114, 121, 32, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str48", function() { - delete __str48; - return __str48 = n([95, 71, 76, 79, 66, 65, 76, 95, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str49", function() { - delete __str49; - return __str49 = n([40, 97, 110, 111, 110, 121, 109, 111, 117, 115, 32, 110, 97, 109, 101, 115, 112, 97, 99, 101, 41, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("_cplus_demangle_operators", function() { - delete _cplus_demangle_operators; - return _cplus_demangle_operators = n([[__str50, 0, 0, 0, __str51, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str52, 0, 0, 0, __str53, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str54, 0, 0, 0, __str55, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str56, 0, 0, 0, __str57, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str58, 0, 0, 0, __str57, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str59, 0, 0, 0, __str60, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0], [__str61, 0, 0, 0, __str62, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str63, 0, 0, 0, __str64, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str65, 0, 0, 0, __str66, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str67, 0, 0, 0, __str68, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0], [__str69, 0, 0, 0, __str70, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str71, 0, 0, 0, __str72, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0], [__str73, 0, 0, 0, __str74, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str75, 0, 0, 0, __str76, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str77, 0, 0, 0, __str78, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str79, 0, 0, 0, __str80, 0, - 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str81, 0, 0, 0, __str82, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str83, 0, 0, 0, __str84, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str85, 0, 0, 0, __str86, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str87, 0, 0, 0, __str88, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0], [__str89, 0, 0, 0, __str90, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str91, 0, 0, 0, __str92, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str93, 0, 0, 0, __str94, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str95, 0, 0, 0, __str96, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str97, 0, 0, 0, __str98, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str99, 0, 0, 0, __str100, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str101, 0, 0, 0, __str70, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str102, 0, 0, 0, __str103, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0], [__str104, 0, 0, 0, __str105, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0], [__str106, 0, 0, 0, __str107, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str108, 0, 0, 0, __str100, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str109, 0, 0, 0, __str110, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str111, 0, 0, 0, __str112, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0], [__str113, 0, 0, 0, __str114, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str115, 0, 0, 0, __str116, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str117, 0, 0, 0, __str118, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str119, 0, 0, 0, __str120, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str121, 0, 0, 0, __str122, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str123, 0, 0, 0, __str124, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0], [__str125, 0, 0, - 0, __str126, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0], [__str127, 0, 0, 0, __str122, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [__str128, 0, 0, 0, __str129, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str130, 0, 0, 0, __str131, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0], [__str132, 0, 0, 0, __str133, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str134, 0, 0, 0, __str135, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0], [__str136, 0, 0, 0, __str137, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0], [__str138, 0, 0, 0, __str139, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0], [__str140, - 0, 0, 0, __str141, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0], [__str142, 0, 0, 0, __str141, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str50", function() { - delete __str50; - return __str50 = n([97, 78, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str51", function() { - delete __str51; - return __str51 = n([38, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str52", function() { - delete __str52; - return __str52 = n([97, 83, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str53", function() { - delete __str53; - return __str53 = n([61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str54", function() { - delete __str54; - return __str54 = n([97, 97, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str55", function() { - delete __str55; - return __str55 = n([38, 38, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str56", function() { - delete __str56; - return __str56 = n([97, 100, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str57", function() { - delete __str57; - return __str57 = n([38, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str58", function() { - delete __str58; - return __str58 = n([97, 110, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str59", function() { - delete __str59; - return __str59 = n([99, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str60", function() { - delete __str60; - return __str60 = n([40, 41, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str61", function() { - delete __str61; - return __str61 = n([99, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str62", function() { - delete __str62; - return __str62 = n([44, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str63", function() { - delete __str63; - return __str63 = n([99, 111, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str64", function() { - delete __str64; - return __str64 = n([126, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str65", function() { - delete __str65; - return __str65 = n([100, 86, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str66", function() { - delete __str66; - return __str66 = n([47, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str67", function() { - delete __str67; - return __str67 = n([100, 97, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str68", function() { - delete __str68; - return __str68 = n([100, 101, 108, 101, 116, 101, 91, 93, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str69", function() { - delete __str69; - return __str69 = n([100, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str70", function() { - delete __str70; - return __str70 = n([42, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str71", function() { - delete __str71; - return __str71 = n([100, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str72", function() { - delete __str72; - return __str72 = n([100, 101, 108, 101, 116, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str73", function() { - delete __str73; - return __str73 = n([100, 118, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str74", function() { - delete __str74; - return __str74 = n([47, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str75", function() { - delete __str75; - return __str75 = n([101, 79, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str76", function() { - delete __str76; - return __str76 = n([94, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str77", function() { - delete __str77; - return __str77 = n([101, 111, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str78", function() { - delete __str78; - return __str78 = n([94, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str79", function() { - delete __str79; - return __str79 = n([101, 113, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str80", function() { - delete __str80; - return __str80 = n([61, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str81", function() { - delete __str81; - return __str81 = n([103, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str82", function() { - delete __str82; - return __str82 = n([62, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str83", function() { - delete __str83; - return __str83 = n([103, 116, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str84", function() { - delete __str84; - return __str84 = n([62, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str85", function() { - delete __str85; - return __str85 = n([105, 120, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str86", function() { - delete __str86; - return __str86 = n([91, 93, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str87", function() { - delete __str87; - return __str87 = n([108, 83, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str88", function() { - delete __str88; - return __str88 = n([60, 60, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str89", function() { - delete __str89; - return __str89 = n([108, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str90", function() { - delete __str90; - return __str90 = n([60, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str91", function() { - delete __str91; - return __str91 = n([108, 115, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str92", function() { - delete __str92; - return __str92 = n([60, 60, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str93", function() { - delete __str93; - return __str93 = n([108, 116, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str94", function() { - delete __str94; - return __str94 = n([60, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str95", function() { - delete __str95; - return __str95 = n([109, 73, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str96", function() { - delete __str96; - return __str96 = n([45, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str97", function() { - delete __str97; - return __str97 = n([109, 76, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str98", function() { - delete __str98; - return __str98 = n([42, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str99", function() { - delete __str99; - return __str99 = n([109, 105, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str100", function() { - delete __str100; - return __str100 = n([45, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str101", function() { - delete __str101; - return __str101 = n([109, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str102", function() { - delete __str102; - return __str102 = n([109, 109, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str103", function() { - delete __str103; - return __str103 = n([45, 45, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str104", function() { - delete __str104; - return __str104 = n([110, 97, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str105", function() { - delete __str105; - return __str105 = n([110, 101, 119, 91, 93, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str106", function() { - delete __str106; - return __str106 = n([110, 101, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str107", function() { - delete __str107; - return __str107 = n([33, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str108", function() { - delete __str108; - return __str108 = n([110, 103, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str109", function() { - delete __str109; - return __str109 = n([110, 116, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str110", function() { - delete __str110; - return __str110 = n([33, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str111", function() { - delete __str111; - return __str111 = n([110, 119, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str112", function() { - delete __str112; - return __str112 = n([110, 101, 119, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str113", function() { - delete __str113; - return __str113 = n([111, 82, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str114", function() { - delete __str114; - return __str114 = n([124, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str115", function() { - delete __str115; - return __str115 = n([111, 111, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str116", function() { - delete __str116; - return __str116 = n([124, 124, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str117", function() { - delete __str117; - return __str117 = n([111, 114, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str118", function() { - delete __str118; - return __str118 = n([124, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str119", function() { - delete __str119; - return __str119 = n([112, 76, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str120", function() { - delete __str120; - return __str120 = n([43, 61, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str121", function() { - delete __str121; - return __str121 = n([112, 108, 0], 0, ALLOC_STATIC) -}); -this.__defineGetter__("__str122", fu |