Comparing version 1.1.0 to 1.2.0
@@ -0,1 +1,7 @@ | ||
## [1.2.0](https://github.com/power-assert-js/espower/releases/tag/v1.2.0) (2015-11-05) | ||
* [Instrument ES7 AwaitExpression Nodes](https://github.com/power-assert-js/espower/pull/21) (by [@jamestalmage](https://github.com/jamestalmage)) | ||
## [1.1.0](https://github.com/power-assert-js/espower/releases/tag/v1.1.0) (2015-11-03) | ||
@@ -2,0 +8,0 @@ |
@@ -50,2 +50,8 @@ var gulp = require('gulp'); | ||
}, | ||
acorn_es7_plugin_bundle: { | ||
standalone: 'acornEs7Plugin', | ||
require: 'acorn-es7-plugin', | ||
destDir: './build', | ||
destName: 'acorn-es7-plugin.js' | ||
}, | ||
coverage: { | ||
@@ -61,3 +67,3 @@ filename: 'coverage.lcov' | ||
}; | ||
var BUILDS = ['assert', 'escodegen', 'estraverse', 'source_map']; | ||
var BUILDS = ['assert', 'escodegen', 'estraverse', 'source_map', 'acorn_es7_plugin']; | ||
@@ -64,0 +70,0 @@ |
@@ -23,3 +23,4 @@ 'use strict'; | ||
syntax.YieldExpression, | ||
syntax.AwaitExpression, | ||
syntax.Property | ||
]; |
@@ -20,2 +20,3 @@ 'use strict'; | ||
syntax.YieldExpression, | ||
syntax.AwaitExpression, | ||
syntax.TemplateLiteral, | ||
@@ -37,5 +38,5 @@ syntax.TaggedTemplateExpression | ||
function isYieldArgument(parentNode, currentKey) { | ||
// capture the yielded result, not the promise | ||
return parentNode.type === syntax.YieldExpression && currentKey === 'argument'; | ||
function isYieldOrAwaitArgument(parentNode, currentKey) { | ||
// capture the yielded/await result, not the promise | ||
return (parentNode.type === syntax.YieldExpression || parentNode.type === syntax.AwaitExpression) && currentKey === 'argument'; | ||
} | ||
@@ -45,5 +46,5 @@ | ||
return isCaputuringTargetType(currentNode) && | ||
!isYieldArgument(parentNode, currentKey) && | ||
!isYieldOrAwaitArgument(parentNode, currentKey) && | ||
!isCalleeOfParent(parentNode, currentKey) && | ||
!isChildOfTaggedTemplateExpression(parentNode); | ||
}; |
{ | ||
"name": "espower", | ||
"description": "Power Assert feature instrumentor based on the ECMAScript AST", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"author": { | ||
@@ -34,2 +34,3 @@ "name": "Takuto Wada", | ||
"acorn": "^2.4.0", | ||
"acorn-es7-plugin": "^1.0.7", | ||
"amdefine": "^1.0.0", | ||
@@ -36,0 +37,0 @@ "blanket": "^1.1.7", |
(function (root, factory) { | ||
'use strict'; | ||
if (typeof define === 'function' && define.amd) { | ||
define(['espower', 'acorn', 'escodegen', 'estraverse', 'source-map', 'assert'], factory); | ||
define(['espower', 'acorn', 'acorn-es7-plugin', 'escodegen', 'estraverse', 'source-map', 'assert'], factory); | ||
} else if (typeof exports === 'object') { | ||
factory(require('..'), require('acorn'), require('escodegen'), require('estraverse'), require('source-map'), require('assert')); | ||
factory(require('..'), require('acorn'), require('acorn-es7-plugin'), require('escodegen'), require('estraverse'), require('source-map'), require('assert')); | ||
} else { | ||
factory(root.espower, root.acorn, root.escodegen, root.estraverse, root.sourceMap, root.assert); | ||
factory(root.espower, root.acorn, root.acornEs7Plugin, root.escodegen, root.estraverse, root.sourceMap, root.assert); | ||
} | ||
@@ -13,2 +13,3 @@ }(this, function ( | ||
acorn, | ||
acornEs7Plugin, | ||
escodegen, | ||
@@ -20,6 +21,8 @@ estraverse, | ||
acornEs7Plugin(acorn); | ||
var EspowerError = espower.EspowerError; | ||
function instrument (jsCode, options) { | ||
var jsAST = acorn.parse(jsCode, {ecmaVersion: 6, locations: true}); | ||
var jsAST = acorn.parse(jsCode, {ecmaVersion: 7, locations: true, plugins: {asyncawait: true}}); | ||
var espoweredAST = espower(jsAST, options); | ||
@@ -26,0 +29,0 @@ var instrumentedCode = escodegen.generate(espoweredAST, {format: {compact: true}}); |
(function (root, factory) { | ||
'use strict'; | ||
if (typeof define === 'function' && define.amd) { | ||
define(['espower', 'acorn', 'escodegen', 'assert'], factory); | ||
define(['espower', 'acorn', 'acorn-es7-plugin', 'escodegen', 'assert'], factory); | ||
} else if (typeof exports === 'object') { | ||
factory(require('..'), require('acorn'), require('escodegen'), require('assert')); | ||
factory(require('..'), require('acorn'), require('acorn-es7-plugin'), require('escodegen'), require('assert')); | ||
} else { | ||
factory(root.espower, root.acorn, root.escodegen, root.assert); | ||
factory(root.espower, root.acorn, root.acornEs7Plugin, root.escodegen, root.assert); | ||
} | ||
@@ -13,2 +13,3 @@ }(this, function ( | ||
acorn, | ||
acornEs7Plugin, | ||
escodegen, | ||
@@ -18,2 +19,4 @@ assert | ||
acornEs7Plugin(acorn); | ||
describe('instrumentation spec', function () { | ||
@@ -32,7 +35,7 @@ function testWithParserOptions (jsCode, expected, options) { | ||
describe('with loc, range', function () { | ||
var options = {ecmaVersion: 6, locations: true, ranges: true}; | ||
var options = {ecmaVersion: 7, locations: true, ranges: true, plugins: {asyncawait: {awaitAnywhere: true}}}; | ||
testWithParserOptions(jsCode, expected, options); | ||
}); | ||
describe('with loc', function () { | ||
var options = {ecmaVersion: 6, locations: true}; | ||
var options = {ecmaVersion: 7, locations: true, plugins: {asyncawait: {awaitAnywhere: true}}}; | ||
testWithParserOptions(jsCode, expected, options); | ||
@@ -406,2 +409,7 @@ }); | ||
describe('AwaitExpression', function () { | ||
inst("function *gen() {assert((await bigOrSmall(size)) === 'big')}", | ||
"function*gen(){assert(assert._expr(assert._capt(assert._capt(await bigOrSmall(assert._capt(size,'arguments/0/left/argument/arguments/0')),'arguments/0/left')==='big','arguments/0'),{content:'assert((await bigOrSmall(size)) === \\'big\\')',filepath:'path/to/some_test.js',line:1}));}"); | ||
}); | ||
describe('Enhanced Object Literals', function () { | ||
@@ -408,0 +416,0 @@ |
@@ -7,2 +7,3 @@ var require = { | ||
acorn: '../node_modules/acorn/dist/acorn', | ||
"acorn-es7-plugin": '../build/acorn-es7-plugin', | ||
estraverse: '../build/estraverse', | ||
@@ -9,0 +10,0 @@ "source-map": '../build/source-map', |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
821149
19570
20