From 7a383bf61b4fc42c3b7ea5a933a0e2beae3bb83b Mon Sep 17 00:00:00 2001 From: MatAtBread Date: Sun, 18 Sep 2016 18:26:21 +0100 Subject: [PATCH] Bump nodent to fix https://github.com/MatAtBread/fast-async/issues/12 --- package.json | 6 ++--- tests/test.js | 65 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 9250d3c..76383e7 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "fast-async", - "version": "6.0.32", + "version": "6.0.34", "dependencies": { - "nodent": "^2.6.3" + "nodent": "^2.6.7" }, "description": "fast-async/await transformer Babel plugin", "main": "plugin.js", "scripts": { - "test": "cd tests && npm i && node ." + "test": "cd tests && npm i && node --expose-gc ." }, "repository": { "type": "git", diff --git a/tests/test.js b/tests/test.js index cff53ad..60d25e3 100644 --- a/tests/test.js +++ b/tests/test.js @@ -15,7 +15,14 @@ try { process.exit(-1) ; } -console.log("\nStarting tests..."); +try { + global.gc() ; +} catch (ex) { + console.log("You get more accurate timings by running with the node option --expose-gc") ; + global.gc = function(){} ; +} + +console.log("\nNB:The timings here are only indicative. GC and poor sampling generate variable results. More detailed performance tests can be found in "+"nodent".cyan+"\nStarting tests..."); try { global.Promise = global.Promise || require('bluebird') ; @@ -25,7 +32,8 @@ try { var testCode = require('fs').readFileSync(__dirname+'/test-input.js').toString() ; var transformers = { - 'fast-async':{plugins:[[require('../plugin.js'),{runtimePatten:'directive',env:{dontMapStackTraces:true},compiler:{promises:true}}]]}, + 'fast-async (es7-lazy)':{plugins:[[require('../plugin.js'),{runtimePatten:'directive',env:{dontMapStackTraces:true},compiler:{promises:false,es7:true,lazyThenables:true}}]]}, + 'fast-async (promises)':{plugins:[[require('../plugin.js'),{runtimePatten:'directive',env:{dontMapStackTraces:true},compiler:{promises:true}}]]} }; var requires ; @@ -47,36 +55,41 @@ try { console.log("'"+("npm install "+requires.join(' ')).yellow+"' to compare against babel plugin 'transform-async-to-module-method'") ; } +function loadRegenerator(){ + try { + function walkSync(dir,match) { + if( dir[dir.length-1] != '/') dir=dir.concat('/') + var fs = fs || require('fs'), + files = fs.readdirSync(dir); + files.forEach(function(file) { + var stat = fs.lstatSync(dir + file) ; + if (!stat.isSymbolicLink()) { + if (file==match) + throw dir + file ; + if (stat.isDirectory()) + walkSync(dir + file + '/',match); + } + }); + }; + walkSync('node_modules','regenerator') ; + console.log("Couldn't locate regenerator runtime") ; + } catch (path) { + global.regeneratorRuntime = require("./"+path); + console.log("Loaded regenerator runtime from "+path+" ",regeneratorRuntime.toString().yellow) ; + } +} + var keys = Object.keys(transformers) ; (function nextTest(i){ try { - if (i===1) { - try { - function walkSync(dir,match) { - if( dir[dir.length-1] != '/') dir=dir.concat('/') - var fs = fs || require('fs'), - files = fs.readdirSync(dir); - files.forEach(function(file) { - var stat = fs.lstatSync(dir + file) ; - if (!stat.isSymbolicLink()) { - if (file==match) - throw dir + file ; - if (stat.isDirectory()) - walkSync(dir + file + '/',match); - } - }); - }; - walkSync('node_modules','regenerator') ; - console.log("Couldn't locate regenerator runtime") ; - } catch (path) { - console.log("Loading regenerator runtime from "+path) ; - global.regeneratorRuntime = require("./"+path); - } - } + if (i===2) + loadRegenerator() ; + console.log("Transforming with "+keys[i]); var t = babel.transform(testCode, transformers[keys[i]]); var f = new Function("require,resolve,reject",t.code) ; - + + global.gc() ; f(require, function(result){ console.log(keys[i],result.green) ;