Skip to content

Instantly share code, notes, and snippets.

@KTakahiro1729
Last active December 31, 2016 06:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KTakahiro1729/7d29c73f43ae622e88ef062b78566d0e to your computer and use it in GitHub Desktop.
Save KTakahiro1729/7d29c73f43ae622e88ef062b78566d0e to your computer and use it in GitHub Desktop.
createWorld.nim をnim js createWindow.nimでコンパイル(?)した結果
/* 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];
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