Add eslint config

Change-Id: I63c2a798fc8e31b1efad7d295757dbd677f0e8a5
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..3a9c4b9
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,79 @@
+{
+    "extends": ["eslint:recommended", "google"],
+    "parserOptions": {
+      "ecmaVersion": 8
+    },
+    "env": {
+      "browser": true,
+      "es6": true
+    },
+    "globals": {
+      "__dirname": false,
+      "app": false,
+      "page": false,
+      "Polymer": false,
+      "process": false,
+      "require": false,
+      "Gerrit": false,
+      "Promise": false,
+      "assert": false,
+      "test": false,
+      "flushAsynchronousOperations": false
+    },
+    "rules": {
+      "arrow-parens": ["error", "as-needed"],
+      "block-spacing": ["error", "always"],
+      "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
+      "camelcase": "off",
+      "comma-dangle": ["error", "always-multiline"],
+      "eol-last": "off",
+      "indent": "off",
+      "indent-legacy": ["error", 2, {
+        "MemberExpression": 2,
+        "FunctionDeclaration": {"body": 1, "parameters": 2},
+        "FunctionExpression": {"body": 1, "parameters": 2},
+        "CallExpression": {"arguments": 2},
+        "ArrayExpression": 1,
+        "ObjectExpression": 1,
+        "SwitchCase": 1
+      }],
+      "keyword-spacing": ["error", { "after": true, "before": true }],
+      "max-len": [
+        "error",
+        80,
+        2,
+        {"ignoreComments": true}
+      ],
+      "new-cap": ["error", { "capIsNewExceptions": ["Polymer"] }],
+      "no-console": "off",
+      "no-restricted-syntax": [
+        "error",
+        {
+          "selector": "ExpressionStatement > CallExpression > MemberExpression[object.name='test'][property.name='only']",
+          "message": "Remove test.only."
+        },
+        {
+          "selector": "ExpressionStatement > CallExpression > MemberExpression[object.name='suite'][property.name='only']",
+          "message": "Remove suite.only."
+        }
+      ],
+      "no-undef": "off",
+      "no-useless-escape": "off",
+      "no-var": "error",
+      "object-shorthand": ["error", "always"],
+      "prefer-arrow-callback": "error",
+      "prefer-const": "error",
+      "prefer-spread": "error",
+      "quote-props": ["error", "consistent-as-needed"],
+      "require-jsdoc": "off",
+      "semi": [2, "always"],
+      "template-curly-spacing": "error",
+      "valid-jsdoc": "off"
+    },
+    "plugins": [
+      "html"
+    ],
+    "settings": {
+      "html/report-bad-indent": "error"
+    }
+  }