diff --git a/index.js b/index.js index d39414b7..9889ac5a 100644 --- a/index.js +++ b/index.js @@ -105,8 +105,10 @@ function parse (args, opts) { var argv = { _: [] } Object.keys(flags.bools).forEach(function (key) { - setArg(key, !(key in defaults) ? false : defaults[key]) - setDefaulted(key) + if (Object.prototype.hasOwnProperty.call(defaults, key)) { + setArg(key, defaults[key]) + setDefaulted(key) + } }) var notFlags = [] diff --git a/test/yargs-parser.js b/test/yargs-parser.js index b9bc91c9..2a4ebc74 100644 --- a/test/yargs-parser.js +++ b/test/yargs-parser.js @@ -199,7 +199,7 @@ describe('yargs-parser', function () { boolean: ['x', 'y', 'z'] }) parse.should.have.property('x', true).and.be.a('boolean') - parse.should.have.property('y', false).and.be.a('boolean') + parse.should.not.have.property('y') parse.should.have.property('z', true).and.be.a('boolean') parse.should.have.property('_').and.deep.equal(['one', 'two', 'three']) }) @@ -1101,7 +1101,7 @@ describe('yargs-parser', function () { }) it('should set false if no flag in arg', function () { - parser([], opts).flag.should.be.false // eslint-disable-line + expect(parser([], opts).flag).to.be.undefined // eslint-disable-line }) })