twada/espower

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
### [2.1.2](https://github.com/power-assert-js/espower/releases/tag/v2.1.2) (2019-01-11)


#### Bug Fixes

  * [Skip modifying argument if SpreadElement appears immediately beneath assert](https://github.com/power-assert-js/espower/pull/42)


#### Refactor

  * [remove xtend](https://github.com/power-assert-js/espower/pull/40) (by [jimmywarting](https://github.com/jimmywarting))


#### Chore

  * [Replace gulp with npm scripts](https://github.com/power-assert-js/espower/pull/41)


### [2.1.1](https://github.com/power-assert-js/espower/releases/tag/v2.1.1) (2018-05-15)


* Update default `ecmaVersion` to 2018 ([f315b49](https://github.com/power-assert-js/espower/commit/f315b49399200051f9ec47ad0c8877c2ff112463))


## [2.1.0](https://github.com/power-assert-js/espower/releases/tag/v2.1.0) (2017-05-21)


#### Features

* [Add `ecmaVersion` and `sourceType` to options to support ES Modules syntax](https://github.com/power-assert-js/espower/pull/37)


### [2.0.3](https://github.com/power-assert-js/espower/releases/tag/v2.0.3) (2017-02-19)


#### Bug Fixes

* [Store scopes in a stack to push/pop them in a consistent way](https://github.com/power-assert-js/espower/pull/36)


### [2.0.2](https://github.com/power-assert-js/espower/releases/tag/v2.0.2) (2017-01-12)


#### Bug Fixes

* [Value recorder should clean up captured values at the end of assertion expression](https://github.com/power-assert-js/espower/pull/35)


### [2.0.1](https://github.com/power-assert-js/espower/releases/tag/v2.0.1) (2016-11-16)


#### Bug Fixes

* [Dealing with assertion that also is a concise body of ArrowFunctionExpression](https://github.com/power-assert-js/espower/pull/34)


## [2.0.0](https://github.com/power-assert-js/espower/releases/tag/v2.0.0) (2016-11-11)


#### Features

  * [Embed value capturing helper into transpiled code](https://github.com/power-assert-js/espower/pull/26)
  * [Expose visitor object for estraverse](https://github.com/power-assert-js/espower/pull/31)
  * stop exposing Instrumentor and AssertionVisitor ([afa380f9](https://github.com/power-assert-js/espower/commit/afa380f949acf4366d9226c44d89cb7ccdfd72c5))
  * [Remove destructive option](https://github.com/power-assert-js/espower/pull/30)
  * [Drop support for prebuilt bundle, bower and Node v0.10](https://github.com/power-assert-js/espower/pull/32)


#### Breaking Changes

* [Drop support for prebuilt bundle, bower and Node v0.10](https://github.com/power-assert-js/espower/pull/32)

We stopped providing prebuilt bundle for browsers. Please build your own by using browserify, webpack and so on.
We also dropped bower support. Please use npm instead.


* Internal classes `espower.Instrumentor` and `espower.AssertionVisitor` are not exported any more.

 ([afa380f9](https://github.com/power-assert-js/espower/commit/afa380f949acf4366d9226c44d89cb7ccdfd72c5))


* [Remove destructive option](https://github.com/power-assert-js/espower/pull/30)

The `destructive` option has been removed.

New behavior is like `destructive: true`, means that passed AST is modified directly.
If you do not want your AST to be modified directly, you should deep-clone your AST by yourself.


### [1.3.2](https://github.com/power-assert-js/espower/releases/tag/v1.3.2) (2016-06-22)


#### Bug Fixes

  * fix breaking changes introduced in 1.3.0 and 1.3.1


### [1.3.1](https://github.com/power-assert-js/espower/releases/tag/v1.3.1) (2016-06-21)


#### Bug Fixes

  * stop capturing SequenceExpression itself since SequenceExpressions are not enclosed in parentheses in some cases ([e8acbc61](https://github.com/power-assert-js/espower/commit/e8acbc61810454da05098baf6624b57d68deb3f9))


## [1.3.0](https://github.com/power-assert-js/espower/releases/tag/v1.3.0) (2016-06-21)


#### Features

  * [Support SequenceExpression (i.e., comma operator)](https://github.com/power-assert-js/espower/pull/27)


### [1.2.1](https://github.com/power-assert-js/espower/releases/tag/v1.2.1) (2015-11-06)


  * [disambiguate between function calls and async/yield expressions](https://github.com/power-assert-js/espower/pull/23) (by [@jamestalmage](https://github.com/jamestalmage))


## [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)


  * [capture YieldExpressions](https://github.com/power-assert-js/espower/pull/20) (by [@jamestalmage](https://github.com/jamestalmage))
  * [make AssertionVisitor more overridable](https://github.com/power-assert-js/espower/pull/19)


### [1.0.7](https://github.com/power-assert-js/espower/releases/tag/v1.0.7) (2015-09-21)


  * update escodegen to 1.7.0 ([feb96b0](https://github.com/power-assert-js/espower/commit/feb96b004acd0c540ab76a2529d91582b2095433))
  * update source-map to 0.5.0 ([7bc824b](https://github.com/power-assert-js/espower/commit/7bc824ba9d808be7d25959822acceb9e04422373))


### [1.0.6](https://github.com/power-assert-js/espower/releases/tag/v1.0.6) (2015-06-07)


  * SourceMap's `sourceRoot` should have precedence over `options.sourceRoot` if `sourceRoot` is URL ([dcf9642d](https://github.com/power-assert-js/espower/commit/dcf9642de0becb8239d4c3a1b8366a980bddb585))


### [1.0.5](https://github.com/power-assert-js/espower/releases/tag/v1.0.5) (2015-06-05)


  * update escallmatch to 1.4.2 and espurify to 1.3.0 ([62973ed](https://github.com/power-assert-js/espower/commit/62973ed7392037e46dedf9d8c5e02a2c28ed95c2))
  * use licensify to prepend license header ([d3bc5e8](https://github.com/power-assert-js/espower/commit/d3bc5e860126826b60ef3108add145c5c076e9bf))


### [1.0.4](https://github.com/power-assert-js/espower/releases/tag/v1.0.4) (2015-06-04)


  * try to create relative path if sourceMap.sourceRoot is locating source files on on a server ([ec0a91ba](https://github.com/power-assert-js/espower/commit/ec0a91baac5f747bd49ca88ea963141485bdddde))
  * never show absolute path or URL in power-assert output ([252b043f](https://github.com/power-assert-js/espower/commit/252b043f32db00fbbd81b7a6eb98e9d85c5b9371))


### [1.0.3](https://github.com/power-assert-js/espower/releases/tag/v1.0.3) (2015-05-31)


  * use basename when `sourceRoot` in `options.sourceMap` is locating source files on a server ([7822df1b](https://github.com/power-assert-js/espower/commit/7822df1b2097625231b2d70f71c5909851399f1d))


### [1.0.2](https://github.com/power-assert-js/espower/releases/tag/v1.0.2) (2015-05-30)


  * use basename when incoming `options.path` is absolute and it conflicts with `options.sourceRoot` or `sourceRoot` in `options.sourceMap` ([02f7b35a](https://github.com/power-assert-js/espower/commit/02f7b35a5acad20994b745de32cf512c2b95f57a))


### [1.0.1](https://github.com/power-assert-js/espower/releases/tag/v1.0.1) (2015-05-29)


  * apply `options.sourceRoot` if and only if incoming `options.path` is absolute ([65b4012a](https://github.com/power-assert-js/espower/commit/65b4012ab4ef71131fa5c4ea3090ab3f625e32d9))


## [1.0.0](https://github.com/power-assert-js/espower/releases/tag/v1.0.0) (2015-05-25)


#### Features

  * transfer to power-assert-js organization ([c3b79559](https://github.com/power-assert-js/espower/commit/c3b79559d1d5cd8ea6d66406b36749bbafe33637))
  * support `deepStrictEqual` and `notDeepStrictEqual` ([9d98bc17](https://github.com/power-assert-js/espower/commit/9d98bc178c0a21f41ff4888fba9c89139f8af195))
  * [`sourceRoot` option](https://github.com/power-assert-js/espower/pull/18). If set, filepath in power-assert output will be relative from `sourceRoot`
  * [`visitorKeys` option](https://github.com/power-assert-js/espower/pull/17) to customize AST traversal


## [0.11.0](https://github.com/power-assert-js/espower/releases/tag/v0.11.0) (2015-04-18)


#### Bug Fixes

* throw Error if AST is already instrumented ([1d47bdc3](https://github.com/power-assert-js/espower/commit/1d47bdc3169de7865e176ceb708a07247ab17703))


#### Features

* [ES6 support](https://github.com/power-assert-js/espower/pull/16)


## [0.10.0](https://github.com/power-assert-js/espower/releases/tag/v0.10.0) (2014-11-11)


* **espower:**
  * update escodegen ([22b002e3](https://github.com/power-assert-js/espower/commit/22b002e3c8c99679f5b97ae104ed66d685a0ea59))
  * update estraverse ([ecb6c07d](https://github.com/power-assert-js/espower/commit/ecb6c07dec5fd3c9cbf2da4e82667d0077ef3909))
  * update espurify ([9a75c16f](https://github.com/power-assert-js/espower/commit/9a75c16ff91f952b26a373df4e96bdcc6e09cfd8))
  * update escallmatch ([dbf424b1](https://github.com/power-assert-js/espower/commit/dbf424b1d3236dd2ac9e4076aef1ecee3867e228))


### 0.9.1 (2014-09-15)


#### Bug Fixes

* **espower:** decide to be skipped first, then enter node ([9d0a778a](https://github.com/power-assert-js/espower/commit/9d0a778a1ae97bb5c522cbfc7b1b65250118f2ea))


## 0.9.0 (2014-08-21)


#### Features

* **espower:**
  * adjust filepath in power-assert output if sourceMap option is given ([f919d59d](https://github.com/power-assert-js/espower/commit/f919d59d6eea764881e0266f562724b7142f7695))
  * adjust line number in power-assert output if sourceMap option is given ([8c035d89](https://github.com/power-assert-js/espower/commit/8c035d89ae88c8554cb8ca0b6bd0f7d6fe2008b0))


## 0.8.0 (2014-08-12)


#### Features


* **espower:**
  * [built and modularized by browserify](https://github.com/power-assert-js/espower/pull/9)
  * [use escallmatch module to describe instrumentation target patterns](https://github.com/power-assert-js/espower/pull/10)
  * support chained callee like `browser.assert.element(selector)` ([ea0a3ce9](https://github.com/power-assert-js/espower/commit/ea0a3ce96f56034ab6735365184e1e397f6561c0))


#### Breaking Changes

  * option `powerAssertVariableName` is now deprecated and ignored. Please use `patterns` option instead ([2f023f91](https://github.com/power-assert-js/espower/commit/2f023f91f3bbe8c6d9038e7237541112f2eaf143))
  * option `targetMethods` is now deprecated and ignored. Please use `patterns` option instead ([e75e5d35](https://github.com/power-assert-js/espower/commit/e75e5d35c33a7c128f14db224c5387520665b55e))

If you already customize instrumentation pattern using `powerAssertVariableName` and `targetMethods`, you need to migarte. To migrate, change your code from the following:

```javascript
var options = {
    powerAssertVariableName: 'yourAssert',
    targetMethods: {
        oneArg: [
            'okay'
        ],
        twoArgs: [
            'equal',
            'customEqual'
        ]
    }
};
var modifiedAst = espower(jsAst, options);
```

To:

```javascript
var options = {
    patterns: [
        'yourAssert(value, [message])',
        'yourAssert.okay(value, [message])',
        'yourAssert.equal(actual, expected, [message])',
        'yourAssert.customEqual(actual, expected, [message])'
    ]
};
var modifiedAst = espower(jsAst, options);
```