{
  "plugins": [
    "html"
  ],
  "env": {
    "node": false,
    "browser": true
  },
  "rules": {
    "padded-blocks": "off", // we like to add spaces around the main test block
    "no-multiple-empty-lines": "off", // some bug with the eslint-plugin-html package makes this spuriously trigger
    "camelcase": "off", // setting options like allow_uncaught_exception requires this
    "no-implicit-globals": "off", // it doesn't much matter if we use top-level function declarations here
    "new-cap": ["error", { "capIsNewExceptions": ["AddSearchProvider", "IsSearchProviderInstalled"] }] // window.external
  },
  "globals": {
    "EventWatcher": false,
    "test": false,
    "async_test": false,
    "promise_test": false,
    "promise_rejects": false,
    "generate_tests": false,
    "setup": false,
    "done": false,
    "on_event": false,
    "step_timeout": false,
    "format_value": false,
    "assert_true": false,
    "assert_false": false,
    "assert_equals": false,
    "assert_not_equals": false,
    "assert_in_array": false,
    "assert_object_equals": false,
    "assert_array_equals": false,
    "assert_approx_equals": false,
    "assert_less_than": false,
    "assert_greater_than": false,
    "assert_between_exclusive": false,
    "assert_less_than_equal": false,
    "assert_greater_than_equal": false,
    "assert_between_inclusive": false,
    "assert_regexp_match": false,
    "assert_class_string": false,
    "assert_exists": false,
    "assert_own_property": false,
    "assert_not_exists": false,
    "assert_inherits": false,
    "assert_idl_attribute": false,
    "assert_readonly": false,
    "assert_throws_dom": false,
    "assert_throws_js": false,
    "assert_unreached": false,
    "assert_any": false,
    "fetch_tests_from_worker": false,
    "timeout": false,
    "add_start_callback": false,
    "add_test_state_callback": false,
    "add_result_callback": false,
    "add_completion_callback": false
  }
}
