mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-31 02:12:11 +00:00
Merge remote-tracking branch 'upstream/devel' into pr_base
This commit is contained in:
13
test.nim
Normal file
13
test.nim
Normal file
@@ -0,0 +1,13 @@
|
||||
type
|
||||
ChunkObj = object
|
||||
data: UncheckedArray[byte]
|
||||
|
||||
proc alloc(size: int): ref ChunkObj =
|
||||
unsafeNew(result, size)
|
||||
|
||||
proc main() =
|
||||
let buf = alloc(10)
|
||||
buf.data[9] = 100 # index out of bounds, because one byte is occupied by the 'dummy' field,
|
||||
# the actual usable size of data is 9 bytes
|
||||
|
||||
main()
|
||||
237
test2.js
Normal file
237
test2.js
Normal file
@@ -0,0 +1,237 @@
|
||||
/* Generated by the Nim Compiler v2.1.1 */
|
||||
var framePtr = null;
|
||||
var excHandler = 0;
|
||||
var lastJSError = null;
|
||||
|
||||
function toJSStr(s_33556886) {
|
||||
var result_33556887 = null;
|
||||
|
||||
var res_33556928 = newSeq_33556904((s_33556886).length);
|
||||
var i_33556929 = 0;
|
||||
var j_33556930 = 0;
|
||||
Label1: {
|
||||
Label2: while (true) {
|
||||
if (!(i_33556929 < (s_33556886).length)) break Label2;
|
||||
var c_33556931 = s_33556886[i_33556929];
|
||||
if ((c_33556931 < 128)) {
|
||||
res_33556928[j_33556930] = String.fromCharCode(c_33556931);
|
||||
i_33556929 += 1;
|
||||
}
|
||||
else {
|
||||
var helper_33556943 = newSeq_33556904(0);
|
||||
Label3: {
|
||||
Label4: while (true) {
|
||||
if (!true) break Label4;
|
||||
var code_33556944 = c_33556931.toString(16);
|
||||
if ((((code_33556944) == null ? 0 : (code_33556944).length) == 1)) {
|
||||
helper_33556943.push("%0");;
|
||||
}
|
||||
else {
|
||||
helper_33556943.push("%");;
|
||||
}
|
||||
|
||||
helper_33556943.push(code_33556944);;
|
||||
i_33556929 += 1;
|
||||
if ((((s_33556886).length <= i_33556929) || (s_33556886[i_33556929] < 128))) {
|
||||
break Label3;
|
||||
}
|
||||
|
||||
c_33556931 = s_33556886[i_33556929];
|
||||
}
|
||||
};
|
||||
++excHandler;
|
||||
try {
|
||||
res_33556928[j_33556930] = decodeURIComponent(helper_33556943.join(""));
|
||||
--excHandler;
|
||||
} catch (EXCEPTION) {
|
||||
var prevJSError = lastJSError;
|
||||
lastJSError = EXCEPTION;
|
||||
--excHandler;
|
||||
res_33556928[j_33556930] = helper_33556943.join("");
|
||||
lastJSError = prevJSError;
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
j_33556930 += 1;
|
||||
}
|
||||
};
|
||||
if (res_33556928.length < j_33556930) { for (var i = res_33556928.length ; i < j_33556930 ; ++i) res_33556928.push(null); }
|
||||
else { res_33556928.length = j_33556930; };
|
||||
result_33556887 = res_33556928.join("");
|
||||
|
||||
return result_33556887;
|
||||
|
||||
}
|
||||
|
||||
function rawEcho() {
|
||||
var buf = "";
|
||||
for (var i = 0; i < arguments.length; ++i) {
|
||||
buf += toJSStr(arguments[i]);
|
||||
}
|
||||
console.log(buf);
|
||||
|
||||
|
||||
|
||||
}
|
||||
var F = {procname: "module macros", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/core/macros.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module macros", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/core/macros.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module bitops_utils", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/std/private/bitops_utils.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module bitops_utils", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/std/private/bitops_utils.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module countbits_impl", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/system/countbits_impl.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module countbits_impl", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/system/countbits_impl.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module bitops", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/bitops.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module bitops", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/bitops.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module fenv", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/fenv.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module fenv", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/fenv.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module math", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/math.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module math", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/pure/math.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
|
||||
function newSeq_33556904(len_33556906) {
|
||||
var result_33556907 = [];
|
||||
|
||||
var F = {procname: "newSeq.newSeq", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/system.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 635;
|
||||
F.filename = "system.nim";
|
||||
result_33556907 = new Array(len_33556906); for (var i = 0 ; i < len_33556906 ; ++i) { result_33556907[i] = null; } framePtr = F.prev;
|
||||
|
||||
return result_33556907;
|
||||
|
||||
}
|
||||
|
||||
function add_33556361(x_33556362, x_33556362_Idx, y_33556363) {
|
||||
if (x_33556362[x_33556362_Idx] === null) { x_33556362[x_33556362_Idx] = []; }
|
||||
var off = x_33556362[x_33556362_Idx].length;
|
||||
x_33556362[x_33556362_Idx].length += y_33556363.length;
|
||||
for (var i = 0; i < y_33556363.length; ++i) {
|
||||
x_33556362[x_33556362_Idx][off+i] = y_33556363.charCodeAt(i);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function nimFloatToString_385876115(a_385876116) {
|
||||
var result_385876117 = null;
|
||||
|
||||
var F = {procname: "formatfloat.nimFloatToString", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/std/formatfloat.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 106;
|
||||
F.filename = "formatfloat.nim";
|
||||
function nimOnlyDigitsOrMinus(n) {
|
||||
return n.toString().match(/^-?\d+$/);
|
||||
}
|
||||
if (Number.isSafeInteger(a_385876116))
|
||||
result_385876117 = a_385876116 === 0 && 1 / a_385876116 < 0 ? "-0.0" : a_385876116+".0"
|
||||
else {
|
||||
result_385876117 = a_385876116+""
|
||||
if(nimOnlyDigitsOrMinus(result_385876117)){
|
||||
result_385876117 = a_385876116+".0"
|
||||
}
|
||||
}
|
||||
|
||||
framePtr = F.prev;
|
||||
|
||||
return result_385876117;
|
||||
|
||||
}
|
||||
|
||||
function addFloat_33557532(result_33557534, result_33557534_Idx, x_33557535) {
|
||||
var F = {procname: "addFloat.addFloat", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/std/formatfloat.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 136;
|
||||
F.filename = "formatfloat.nim";
|
||||
add_33556361(result_33557534, result_33557534_Idx, nimFloatToString_385876115(x_33557535));
|
||||
framePtr = F.prev;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function HEX24_33557528(x_33557530) {
|
||||
var result_33557531 = [[]];
|
||||
|
||||
var F = {procname: "$.$", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/system/dollars.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 14;
|
||||
F.filename = "dollars.nim";
|
||||
addFloat_33557532(result_33557531, 0, x_33557530);
|
||||
framePtr = F.prev;
|
||||
|
||||
return result_33557531[0];
|
||||
|
||||
}
|
||||
|
||||
function HEX2DHEX3D_520093703(x_520093705, x_520093705_Idx, y_520093706) {
|
||||
var F = {procname: "-=.-=", prev: framePtr, filename: "/home/wind/.choosenim/toolchains/nim-#devel/lib/system/arithmetics.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 335;
|
||||
F.filename = "arithmetics.nim";
|
||||
x_520093705[x_520093705_Idx] = (x_520093705[x_520093705_Idx] - y_520093706);
|
||||
framePtr = F.prev;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function round_520093699(x_520093701) {
|
||||
var result_520093702 = [0.0];
|
||||
|
||||
if ((0.0 <= x_520093701)) {
|
||||
result_520093702[0] = Math.round(x_520093701);
|
||||
}
|
||||
else {
|
||||
result_520093702[0] = Math.ceil(x_520093701);
|
||||
if ((0.5 <= (result_520093702[0] - x_520093701))) {
|
||||
HEX2DHEX3D_520093703(result_520093702, 0, 1.0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return result_520093702[0];
|
||||
|
||||
}
|
||||
|
||||
function hello_520093698() {
|
||||
var F = {procname: "test2.hello", prev: framePtr, filename: "/home/wind/prs/Nim/test2.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 4;
|
||||
F.filename = "test2.nim";
|
||||
rawEcho(HEX24_33557528(round_520093699(0.49999999999999994)));
|
||||
framePtr = F.prev;
|
||||
|
||||
|
||||
}
|
||||
var F = {procname: "module test2", prev: framePtr, filename: "/home/wind/prs/Nim/test2.nim", line: 0};
|
||||
framePtr = F;
|
||||
F.line = 7;
|
||||
F.filename = "test2.nim";
|
||||
hello_520093698();
|
||||
framePtr = F.prev;
|
||||
var F = {procname: "module test2", prev: framePtr, filename: "/home/wind/prs/Nim/test2.nim", line: 0};
|
||||
framePtr = F;
|
||||
framePtr = F.prev;
|
||||
13
test2.nim
Normal file
13
test2.nim
Normal file
@@ -0,0 +1,13 @@
|
||||
type
|
||||
ChunkObj = object
|
||||
data: UncheckedArray[byte]
|
||||
|
||||
proc alloc(size: int): ref ChunkObj =
|
||||
unsafeNew(result, size)
|
||||
|
||||
proc main() =
|
||||
let buf = alloc(10)
|
||||
buf.data[9] = 100 # index out of bounds, because one byte is occupied by the 'dummy' field,
|
||||
# the actual usable size of data is 9 bytes
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user