istanbuljs / istanbuljs.github.io

the Istanbul community website
https://istanbul.js.org
ISC License
22 stars 24 forks source link

nyc silently fails with this weird code #139

Open hyrsky opened 6 years ago

hyrsky commented 6 years ago

Observed Behavior

I was working an a small side project today and had a frustrating experience with nyc. After everything I tried all i got for output was:

----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|

My code had function like this: function myFunc(obj, ...arguments). Turns out arguments is a reserved keyword that does exactly the thing I was trying to do! 😄 I discovered this when I added 'use strict' to my code and node gave an error. I'm not sure if this case is within the scope of this project but anyway I wanted to document this in case someone else is struggling with similar problem!

Expected Behavior

Nyc should fail with a meaningful error message.

Bonus Points! Code (or Repository) that Reproduces Issue

/** @file: weird.js */

function myFunc(obj, ...arguments) {
    console.log('Hello world!');
}

myFunc({}, 'foo', 'bar');
╭─user@computer ~/Documents/test
╰─$ node weird.js
Hello world!
╭─user@computer ~/Documents/test
╰─$ yarn run nyc node weird.js
yarn run v1.5.1
$ /mnt/c/Users/User/Documents/test/node_modules/.bin/nyc node weird.js
Hello world!
----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|
Done in 3.51s.

Rename arguments to args and everything works as it should.

Forensic Information

Operating System: Ubuntu on Windows subsystem for linux. Node version: v8.10.0 Nyc version: 11.6.0 Yarn version: 1.5.1

JaKXz commented 5 years ago

Thanks for this issue, and sorry for the late reply! I appreciate the documentation, and I think it could be captured on the wiki site in a gotchas/troubleshooting section. Feel free to make a PR if you are able.