arnaucube
arnaucube/circomPublic Self-hosted repository
better info in runtime constraint assertion
Jordi Baylina jordi@baylina.cat
Sun, 15 Sep 2019 10:47:52 +0200
commit

67a35ee400b827862481782ef77d803fdba0eda9

parent

680e3fe1393c5bf5033004d867f8284de737f511

2 files changed, 6 insertions(+), 2 deletions(-)

jump to
M src/exec.js → src/exec.js

@@ -1046,6 +1046,8 @@ return vDest;

} function execConstrain(ctx, ast) { + ast.fileName = ctx.fileName; + ast.filePath = ctx.filePath; const a = exec(ctx, ast.values[0]); if (ctx.error) return; const b = exec(ctx, ast.values[1]);
M src/gencode.js → src/gencode.js

@@ -422,11 +422,13 @@ const a = gen(ctx, ast.values[0]);

if (ctx.error) return; const b = gen(ctx, ast.values[1]); if (ctx.error) return; - return `ctx.assert(${a}, ${b})`; + const strErr = ast.fileName +": "+ast.first_line; + return `ctx.assert(${a}, ${b}, \"${strErr}\")`; } function genSignalAssignConstrain(ctx, ast) { - return genVarAssignement(ctx, ast) + ";\n" + genConstrain(ctx, ast); +// return genVarAssignement(ctx, ast) + ";\n" + genConstrain(ctx, ast); + return genVarAssignement(ctx, ast); } function genVarAddAssignement(ctx, ast) {