From 0e154f7e7098f75ea9dbe735dd8842970e6de183 Mon Sep 17 00:00:00 2001 From: Jordi Baylina Date: Sat, 11 Jul 2020 09:35:40 +0200 Subject: [PATCH] Test fixes --- package.json | 2 +- src/bls12381.js | 4 ++-- src/bn128.js | 4 ++-- src/engine_fft.js | 16 ++++++++-------- src/f1field_native.js | 2 +- src/threadman.js | 7 ++++++- src/wasm_field1.js | 4 +++- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index fbd7554..f7d9f5f 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "homepage": "https://github.com/iden3/ffjs#readme", "dependencies": { "big-integer": "^1.6.48", - "wasmcurves": "0.0.3", + "wasmcurves": "0.0.4", "worker-threads": "^1.0.0" }, "devDependencies": { diff --git a/src/bls12381.js b/src/bls12381.js index 7c56a1a..ecf8de2 100644 --- a/src/bls12381.js +++ b/src/bls12381.js @@ -21,9 +21,9 @@ export default async function buildBls12381() { curve = await buildEngine(params); - curve.terminate = function() { - this.tm.terminate(); + curve.terminate = async function() { curve = null; + await this.tm.terminate(); }; return curve; } diff --git a/src/bn128.js b/src/bn128.js index 07bd88b..e98a544 100644 --- a/src/bn128.js +++ b/src/bn128.js @@ -19,9 +19,9 @@ export default async function buildBn128() { }; curve = await buildEngine(params); - curve.terminate = function() { - this.tm.terminate(); + curve.terminate = async function() { curve = null; + await this.tm.terminate(); }; return curve; diff --git a/src/engine_fft.js b/src/engine_fft.js index 92e52bb..7e929c7 100644 --- a/src/engine_fft.js +++ b/src/engine_fft.js @@ -4,7 +4,7 @@ export default function buildFFT(curve, groupName) { const G = curve[groupName]; const Fr = curve.Fr; const tm = G.tm; - async function _fft(buff, inverse, inType, outType, log) { + async function _fft(buff, inverse, inType, outType, logger) { inType = inType || "affine"; outType = outType || "affine"; @@ -131,7 +131,7 @@ export default function buildFFT(curve, groupName) { } task.push({cmd: "GET", out:0, var: 0, len: sMid*pointsInChunk}); promises.push(tm.queueAction(task).then( (r) => { - if (log) log(`fft: ${i}/${nChunks}`); + if (logger) logger.debug(`fft: ${i}/${nChunks}`); return r; })); } @@ -140,7 +140,7 @@ export default function buildFFT(curve, groupName) { for (let i = 0; i< nChunks; i++) chunks[i] = chunks[i][0]; for (let i = MAX_BITS_THREAD+1; i<=bits; i++) { - if (log) log(`${i}/${bits}`); + if (logger) logger.debug(`fft join ${i}/${bits}`); const nGroups = 1 << (bits - i); const nChunksPerGroup = nChunks / nGroups; const opPromises = []; @@ -230,12 +230,12 @@ export default function buildFFT(curve, groupName) { } } - G.fft = async function(buff, inType, outType, log) { - return await _fft(buff, false, inType, outType, log); + G.fft = async function(buff, inType, outType, logger) { + return await _fft(buff, false, inType, outType, logger); }; - G.ifft = async function(buff, inType, outType, log) { - return await _fft(buff, true, inType, outType, log); + G.ifft = async function(buff, inType, outType, logger) { + return await _fft(buff, true, inType, outType, logger); }; G.fftMix = async function fftMix(buff) { @@ -422,7 +422,7 @@ export default function buildFFT(curve, groupName) { } const nPoints = Math.floor(buff.byteLength / sG); - if (nPoints == 1 << log2(nPoints)) { + if (nPoints != 1 << log2(nPoints)) { throw new Error("Invalid number of points"); } diff --git a/src/f1field_native.js b/src/f1field_native.js index 615038a..1cc4513 100644 --- a/src/f1field_native.js +++ b/src/f1field_native.js @@ -302,5 +302,5 @@ export default class ZqField { return v; } -}; +} diff --git a/src/threadman.js b/src/threadman.js index 86b0838..180c915 100644 --- a/src/threadman.js +++ b/src/threadman.js @@ -40,6 +40,10 @@ class Deferred { } } +function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + function base64ToArrayBuffer(base64) { if (process.browser) { var binary_string = window.atob(base64); @@ -240,10 +244,11 @@ class ThreadManager { return res; } - terminate() { + async terminate() { for (let i=0; i