Yet another JS code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests. Supports all JS coverage use cases including unit tests, server side functional tests and browser tests. Built for scale.
Other
8.7k
stars
787
forks
source link
Failed to parse file with exponentiation operator #859
Issue
Istanbul cannot parse files that contain the exponentiation operator.
Context
Node: v9.2.1
Mocha: 4.1.0
Istanbul: 0.4.5
Minimal Example, istanbulTest.js
const example = 3 ** 5;
module.exports = c;
Log (personal information trimmed):
Failed to parse file: .../istanbulTest.js
.../node_modules/istanbul/lib/instrumenter.js:468
throw e;
^
Error: Line 1: Unexpected token *
at constructError (.../node_modules/istanbul/node_modules/esprima/esprima.js:2407:21)
at createError (.../node_modules/istanbul/node_modules/esprima/esprima.js:2426:17)
at unexpectedTokenError (.../node_modules/istanbul/node_modules/esprima/esprima.js:2500:13)
at throwUnexpectedToken (.../node_modules/istanbul/node_modules/esprima/esprima.js:2505:15)
at parsePrimaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3307:13)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseLeftHandSideExpressionAllowCall (.../node_modules/istanbul/node_modules/esprima/esprima.js:3414:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parsePostfixExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3490:16)
at parseUnaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3550:20)
at isolateCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2663:18)
at parseBinaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3651:17)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseConditionalExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3696:16)
at parseAssignmentExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3893:16)
at isolateCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2663:18)
at parseLexicalBinding (.../node_modules/istanbul/node_modules/esprima/esprima.js:4105:24)
at parseBindingList (.../node_modules/istanbul/node_modules/esprima/esprima.js:4116:21)
at parseLexicalDeclaration (.../node_modules/istanbul/node_modules/esprima/esprima.js:4181:24)
at parseStatementListItem (.../node_modules/istanbul/node_modules/esprima/esprima.js:3977:24)
at parseFunctionSourceElements (.../node_modules/istanbul/node_modules/esprima/esprima.js:4869:23)
at parseFunctionExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:5074:16)
at parsePrimaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3273:24)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseLeftHandSideExpressionAllowCall (.../node_modules/istanbul/node_modules/esprima/esprima.js:3414:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parsePostfixExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3490:16)
at parseUnaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3550:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseBinaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3639:16)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseConditionalExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3696:16)
at parseAssignmentExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3893:16)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseGroupExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3162:16)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parsePrimaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3239:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseLeftHandSideExpressionAllowCall (.../node_modules/istanbul/node_modules/esprima/esprima.js:3414:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parsePostfixExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3490:16)
at parseUnaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3550:20)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseBinaryExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3639:16)
at inheritCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2681:18)
at parseConditionalExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3696:16)
at parseAssignmentExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3893:16)
at isolateCoverGrammar (.../node_modules/istanbul/node_modules/esprima/esprima.js:2663:18)
at parseExpression (.../node_modules/istanbul/node_modules/esprima/esprima.js:3942:16)
at parseExpressionStatement (.../node_modules/istanbul/node_modules/esprima/esprima.js:4222:20)
at parseStatement (.../node_modules/istanbul/node_modules/esprima/esprima.js:4760:24)
at parseStatementListItem (.../node_modules/istanbul/node_modules/esprima/esprima.js:3989:16)
at parseScriptBody (.../node_modules/istanbul/node_modules/esprima/esprima.js:5490:25)
at parseProgram (.../node_modules/istanbul/node_modules/esprima/esprima.js:5506:16)
at Object.parse (.../node_modules/istanbul/node_modules/esprima/esprima.js:5690:23)
at Instrumenter.instrumentSync (.../node_modules/istanbul/lib/instrumenter.js:459:31)
at .../node_modules/istanbul/lib/command/common/run-with-cover.js:224:33
at Array.forEach (<anonymous>)
at process.<anonymous> (.../node_modules/istanbul/lib/command/common/run-with-cover.js:222:39)
at Object.onceWrapper (events.js:254:19)
at process.emit (events.js:164:20)
Issue Istanbul cannot parse files that contain the exponentiation operator.
Context Node: v9.2.1 Mocha: 4.1.0 Istanbul: 0.4.5
Minimal Example,
istanbulTest.js
Log (personal information trimmed):