Last active
December 31, 2016 06:25
-
-
Save KTakahiro1729/7d29c73f43ae622e88ef062b78566d0e to your computer and use it in GitHub Desktop.
createWorld.nim をnim js createWindow.nimでコンパイル(?)した結果
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Generated by the Nim Compiler v0.15.2 */ | |
/* (c) 2016 Andreas Rumpf */ | |
var framePtr = null; | |
var excHandler = 0; | |
var lastJSError = null; | |
if (typeof Int8Array === 'undefined') Int8Array = Array; | |
if (typeof Int16Array === 'undefined') Int16Array = Array; | |
if (typeof Int32Array === 'undefined') Int32Array = Array; | |
if (typeof Uint8Array === 'undefined') Uint8Array = Array; | |
if (typeof Uint16Array === 'undefined') Uint16Array = Array; | |
if (typeof Uint32Array === 'undefined') Uint32Array = Array; | |
if (typeof Float32Array === 'undefined') Float32Array = Array; | |
if (typeof Float64Array === 'undefined') Float64Array = Array; | |
var NTI3438 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; | |
var NTI104 = {size: 0,kind: 31,base: null,node: null,finalizer: null}; | |
var NTI12409 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; | |
var NTI3408 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; | |
var NTI138 = {size: 0,kind: 28,base: null,node: null,finalizer: null}; | |
var NTI140 = {size: 0,kind: 29,base: null,node: null,finalizer: null}; | |
var NTI3485 = {size: 0,kind: 22,base: null,node: null,finalizer: null}; | |
var NTI3424 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; | |
var NTI3436 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; | |
var NTI3440 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; | |
var NNI3440 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; | |
NTI3440.node = NNI3440; | |
var NNI3436 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; | |
NTI3436.node = NNI3436; | |
NTI3485.base = NTI3424; | |
var NNI3424 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI3485, name: "parent", sons: null}, | |
{kind: 1, offset: "name", len: 0, typ: NTI140, name: "name", sons: null}, | |
{kind: 1, offset: "message", len: 0, typ: NTI138, name: "msg", sons: null}, | |
{kind: 1, offset: "trace", len: 0, typ: NTI138, name: "trace", sons: null}]}; | |
NTI3424.node = NNI3424; | |
var NNI3408 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; | |
NTI3408.node = NNI3408; | |
NTI3424.base = NTI3408; | |
NTI3436.base = NTI3424; | |
NTI3440.base = NTI3436; | |
var NNI12409 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI140, name: "Field0", sons: null}, | |
{kind: 1, offset: "Field1", len: 0, typ: NTI104, name: "Field1", sons: null}]}; | |
NTI12409.node = NNI12409; | |
var NNI3438 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; | |
NTI3438.node = NNI3438; | |
NTI3438.base = NTI3436; | |
function makeNimstrLit(c_13403) { | |
var ln = c_13403.length; | |
var result = new Array(ln + 1); | |
var i = 0; | |
for (; i < ln; ++i) { | |
result[i] = c_13403.charCodeAt(i); | |
} | |
result[i] = 0; // terminating zero | |
return result; | |
} | |
function SetConstr() { | |
var result = {}; | |
for (var i = 0; i < arguments.length; ++i) { | |
var x = arguments[i]; | |
if (typeof(x) == "object") { | |
for (var j = x[0]; j <= x[1]; ++j) { | |
result[j] = true; | |
} | |
} else { | |
result[x] = true; | |
} | |
} | |
return result; | |
} | |
function nimCopy(dest_18515, src_18516, ti_18517) { | |
var result_18829 = null; | |
switch (ti_18517.kind) { | |
case 21: case 22: case 23: case 5: if (!(isfatpointer_18498(ti_18517))) { | |
result_18829 = src_18516; | |
} | |
else { | |
result_18829 = [src_18516[0], src_18516[1]];} | |
break; | |
case 19: if (dest_18515 === null || dest_18515 === undefined) { | |
dest_18515 = {}; | |
} | |
else { | |
for (var key in dest_18515) { delete dest_18515[key]; } | |
} | |
for (var key in src_18516) { dest_18515[key] = src_18516[key]; } | |
result_18829 = dest_18515; | |
break; | |
case 18: case 17: if (!((ti_18517.base == null))) { | |
result_18829 = nimCopy(dest_18515, src_18516, ti_18517.base); | |
} | |
else { | |
if ((ti_18517.kind == 17)) { | |
result_18829 = (dest_18515 === null || dest_18515 === undefined) ? {m_type: ti_18517} : dest_18515;} | |
else { | |
result_18829 = (dest_18515 === null || dest_18515 === undefined) ? {} : dest_18515;} | |
} | |
nimCopyAux(result_18829, src_18516, ti_18517.node); | |
break; | |
case 24: case 4: case 27: case 16: if (src_18516 === null) { | |
result_18829 = null; | |
} | |
else { | |
if (dest_18515 === null || dest_18515 === undefined) { | |
dest_18515 = new Array(src_18516.length); | |
} | |
else { | |
dest_18515.length = src_18516.length; | |
} | |
result_18829 = dest_18515; | |
for (var i = 0; i < src_18516.length; ++i) { | |
result_18829[i] = nimCopy(result_18829[i], src_18516[i], ti_18517.base); | |
} | |
} | |
break; | |
case 28: if (src_18516 !== null) { | |
result_18829 = src_18516.slice(0); | |
} | |
break; | |
default: | |
result_18829 = src_18516; | |
break; | |
} | |
return result_18829; | |
} | |
function eqStrings(a_16003, b_16004) { | |
if (a_16003 == b_16004) return true; | |
if ((!a_16003) || (!b_16004)) return false; | |
var alen = a_16003.length; | |
if (alen != b_16004.length) return false; | |
for (var i = 0; i < alen; ++i) | |
if (a_16003[i] != b_16004[i]) return false; | |
return true; | |
} | |
function arrayConstr(len_19003, value_19004, typ_19005) { | |
var result = new Array(len_19003); | |
for (var i = 0; i < len_19003; ++i) result[i] = nimCopy(null, value_19004, typ_19005); | |
return result; | |
} | |
function cstrToNimstr(c_13603) { | |
var ln = c_13603.length; | |
var result = new Array(ln); | |
var r = 0; | |
for (var i = 0; i < ln; ++i) { | |
var ch = c_13603.charCodeAt(i); | |
if (ch < 128) { | |
result[r] = ch; | |
} | |
else if((ch > 127) && (ch < 2048)) { | |
result[r] = (ch >> 6) | 192; | |
++r; | |
result[r] = (ch & 63) | 128; | |
} | |
else { | |
result[r] = (ch >> 12) | 224; | |
++r; | |
result[r] = ((ch >> 6) & 63) | 128; | |
++r; | |
result[r] = (ch & 63) | 128; | |
} | |
++r; | |
} | |
result[r] = 0; // terminating zero | |
return result; | |
} | |
function toJSStr(s_13803) { | |
var len = s_13803.length-1; | |
var asciiPart = new Array(len); | |
var fcc = String.fromCharCode; | |
var nonAsciiPart = null; | |
var nonAsciiOffset = 0; | |
for (var i = 0; i < len; ++i) { | |
if (nonAsciiPart !== null) { | |
var offset = (i - nonAsciiOffset) * 2; | |
var code = s_13803[i].toString(16); | |
if (code.length == 1) { | |
code = "0"+code; | |
} | |
nonAsciiPart[offset] = "%"; | |
nonAsciiPart[offset + 1] = code; | |
} | |
else if (s_13803[i] < 128) | |
asciiPart[i] = fcc(s_13803[i]); | |
else { | |
asciiPart.length = i; | |
nonAsciiOffset = i; | |
nonAsciiPart = new Array((len - i) * 2); | |
--i; | |
} | |
} | |
asciiPart = asciiPart.join(""); | |
return (nonAsciiPart === null) ? | |
asciiPart : asciiPart + decodeURIComponent(nonAsciiPart.join("")); | |
} | |
function raiseException(e_12806, ename_12807) { | |
e_12806.name = ename_12807; | |
if ((excHandler == 0)) { | |
unhandledException(e_12806); | |
} | |
e_12806.trace = nimCopy(null, rawwritestacktrace_12628(), NTI138); | |
throw e_12806;} | |
var nimvm_5554 = false; | |
var nim_program_result = 0; | |
var globalraisehook_10414 = [null]; | |
var localraisehook_10419 = [null]; | |
var outofmemhook_10422 = [null]; | |
function isfatpointer_18498(ti_18500) { | |
var result_18501 = false; | |
BeforeRet: do { | |
result_18501 = !((SetConstr(17, 16, 4, 18, 27, 19, 23, 22, 21)[ti_18500.base.kind] != undefined)); | |
break BeforeRet; | |
} while (false); | |
return result_18501; | |
} | |
function nimCopyAux(dest_18520, src_18521, n_18523) { | |
switch (n_18523.kind) { | |
case 0: | |
break; | |
case 1: dest_18520[n_18523.offset] = nimCopy(dest_18520[n_18523.offset], src_18521[n_18523.offset], n_18523.typ); | |
break; | |
case 2: L1: do { | |
var i_18815 = 0; | |
var HEX3Atmp_18817 = 0; | |
HEX3Atmp_18817 = (n_18523.len - 1); | |
var res_18820 = 0; | |
L2: do { | |
L3: while (true) { | |
if (!(res_18820 <= HEX3Atmp_18817)) break L3; | |
i_18815 = res_18820; | |
nimCopyAux(dest_18520, src_18521, n_18523.sons[i_18815]); | |
res_18820 += 1; | |
} | |
} while(false); | |
} while(false); | |
break; | |
case 3: dest_18520[n_18523.offset] = nimCopy(dest_18520[n_18523.offset], src_18521[n_18523.offset], n_18523.typ); | |
for (var i = 0; i < n_18523.sons.length; ++i) { | |
nimCopyAux(dest_18520, src_18521, n_18523.sons[i][1]); | |
} | |
break; | |
} | |
} | |
function add_10438(x_10441, x_10441_Idx, y_10442) { | |
var len = x_10441[0].length-1; | |
for (var i = 0; i < y_10442.length; ++i) { | |
x_10441[0][len] = y_10442.charCodeAt(i); | |
++len; | |
} | |
x_10441[0][len] = 0 | |
} | |
function auxwritestacktrace_12404(f_12406) { | |
var Tmp3; | |
var result_12407 = [null]; | |
var it_12415 = f_12406; | |
var i_12416 = 0; | |
var total_12417 = 0; | |
var tempframes_12421 = arrayConstr(64, {Field0: null, Field1: 0}, NTI12409); | |
L1: do { | |
L2: while (true) { | |
if (!!((it_12415 == null))) Tmp3 = false; else {Tmp3 = (i_12416 <= 63); }if (!Tmp3) break L2; | |
tempframes_12421[i_12416].Field0 = it_12415.procname; | |
tempframes_12421[i_12416].Field1 = it_12415.line; | |
i_12416 += 1; | |
total_12417 += 1; | |
it_12415 = it_12415.prev; | |
} | |
} while(false); | |
L4: do { | |
L5: while (true) { | |
if (!!((it_12415 == null))) break L5; | |
total_12417 += 1; | |
it_12415 = it_12415.prev; | |
} | |
} while(false); | |
result_12407[0] = nimCopy(null, makeNimstrLit(""), NTI138); | |
if (!((total_12417 == i_12416))) { | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(makeNimstrLit("(")); } else { result_12407[0] = makeNimstrLit("(");}; | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(cstrToNimstr(((total_12417 - i_12416))+"")); } else { result_12407[0] = cstrToNimstr(((total_12417 - i_12416))+"");}; | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(makeNimstrLit(" calls omitted) ...\x0A")); } else { result_12407[0] = makeNimstrLit(" calls omitted) ...\x0A");}; | |
} | |
L6: do { | |
var j_12615 = 0; | |
var HEX3Atmp_12621 = 0; | |
HEX3Atmp_12621 = (i_12416 - 1); | |
var res_12624 = HEX3Atmp_12621; | |
L7: do { | |
L8: while (true) { | |
if (!(0 <= res_12624)) break L8; | |
j_12615 = res_12624; | |
add_10438(result_12407, 0, tempframes_12421[j_12615].Field0); | |
if ((0 < tempframes_12421[j_12615].Field1)) { | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(makeNimstrLit(", line: ")); } else { result_12407[0] = makeNimstrLit(", line: ");}; | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(cstrToNimstr((tempframes_12421[j_12615].Field1)+"")); } else { result_12407[0] = cstrToNimstr((tempframes_12421[j_12615].Field1)+"");}; | |
} | |
if (result_12407[0] != null) { result_12407[0] = (result_12407[0].slice(0, -1)).concat(makeNimstrLit("\x0A")); } else { result_12407[0] = makeNimstrLit("\x0A");}; | |
res_12624 -= 1; | |
} | |
} while(false); | |
} while(false); | |
return result_12407[0]; | |
} | |
function rawwritestacktrace_12628() { | |
var result_12630 = null; | |
if (!((framePtr == null))) { | |
result_12630 = nimCopy(null, (makeNimstrLit("Traceback (most recent call last)\x0A").slice(0,-1)).concat(auxwritestacktrace_12404(framePtr)), NTI138); | |
} | |
else { | |
result_12630 = nimCopy(null, makeNimstrLit("No stack traceback available\x0A"), NTI138); | |
} | |
return result_12630; | |
} | |
function unhandledException(e_12654) { | |
var Tmp1; | |
var buf_12655 = /**/[makeNimstrLit("")]; | |
if (!!(eqStrings(e_12654.message, null))) Tmp1 = false; else {Tmp1 = !((e_12654.message[0] == 0)); }if (Tmp1) { | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(makeNimstrLit("Error: unhandled exception: ")); } else { buf_12655[0] = makeNimstrLit("Error: unhandled exception: ");}; | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(e_12654.message); } else { buf_12655[0] = e_12654.message;}; | |
} | |
else { | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(makeNimstrLit("Error: unhandled exception")); } else { buf_12655[0] = makeNimstrLit("Error: unhandled exception");}; | |
} | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(makeNimstrLit(" [")); } else { buf_12655[0] = makeNimstrLit(" [");}; | |
add_10438(buf_12655, 0, e_12654.name); | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(makeNimstrLit("]\x0A")); } else { buf_12655[0] = makeNimstrLit("]\x0A");}; | |
if (buf_12655[0] != null) { buf_12655[0] = (buf_12655[0].slice(0, -1)).concat(rawwritestacktrace_12628()); } else { buf_12655[0] = rawwritestacktrace_12628();}; | |
var cbuf_12801 = toJSStr(buf_12655[0]); | |
framePtr = null; | |
if (typeof(Error) !== "undefined") { | |
throw new Error(cbuf_12801); | |
} | |
else { | |
throw cbuf_12801; | |
} | |
} | |
function raiseOverflow() { | |
var e_13236 = null; | |
e_13236 = {m_type: NTI3440, parent: null, name: null, message: null, trace: null}; | |
e_13236.message = nimCopy(null, makeNimstrLit("over- or underflow"), NTI138); | |
raiseException(e_13236, "OverflowError"); | |
} | |
function raiseDivByZero() { | |
var e_13252 = null; | |
e_13252 = {m_type: NTI3438, parent: null, name: null, message: null, trace: null}; | |
e_13252.message = nimCopy(null, makeNimstrLit("division by zero"), NTI138); | |
raiseException(e_13252, "DivByZeroError"); | |
} | |
function createwindow_26001(x_26003, y_26004, width_26005, height_26006, title_26007, show_26008) { | |
var result_26009 = null; | |
var F={procname:"createwindow.createWindow",prev:framePtr,filename:"createwindow.nim",line:0}; | |
framePtr = F; | |
framePtr = F.prev; | |
return result_26009; | |
} | |
var w_26012 = /**/[createwindow_26001(0, 0, 800, 600, makeNimstrLit("My Application"), true)]; | |
w_26012[0]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import dom | |
proc createWindow(x, y, width, height: int; title: string; | |
show: bool): Window = | |
discard | |
var w = createWindow(show = true, title = "My Application", | |
x = 0, y = 0, height = 600, width = 800) | |
discard w |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment