* refactor: simply browserslists defaults overwriting
When `hasTargets` is `false`, `targets` is always an empty object by definition, `objectToBrowserslist({})` always return `[]` therefore we can remove `objectToBrowserslist`.
* test: apply external-helpers on preset-env test fixtures
* test: add ie 6 to force all transforms in corejs 3, debug, corejs 2 fixtures
* Add ie 6 as targets for test fixtures
* refactor: add @babel/helper-validator-option
* refactor: simplify validateTopLevelOptions
* perf: the recursive version is not practically fast
* Update packages/babel-helper-validator-option/README.md
Co-authored-by: Brian Ng <bng412@gmail.com>
* Update packages/babel-helper-validator-option/src/validator.js
* fix: incorrect type annotation
* refactor: use babel/helper-option-validator in babel/compat-data
* chore: fix flow types error
* Address review comments
* address review comments
Co-authored-by: Brian Ng <bng412@gmail.com>