From 5a7d8e899ef0f99d362f1195851ee832ccabfd86 Mon Sep 17 00:00:00 2001
From: Siddharth Doshi <sidoshi510@gmail.com>
Date: Sat, 6 May 2017 04:29:49 +0530
Subject: [PATCH] Forbid using window properties as global variables (#1840)

* Forbid using window properties as global variables

* Change globals list to match Standard.

* Fix globals
---
 packages/eslint-config-react-app/index.js                 | 8 +++++++-
 packages/react-scripts/fixtures/kitchensink/src/App.js    | 4 ++--
 .../kitchensink/src/features/webpack/NoExtInclusion.js    | 2 +-
 .../src/features/webpack/UnknownExtInclusion.js           | 2 +-
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js
index 128b96e0d..338f4c9f2 100644
--- a/packages/eslint-config-react-app/index.js
+++ b/packages/eslint-config-react-app/index.js
@@ -26,13 +26,19 @@ module.exports = {
   plugins: ['import', 'flowtype', 'jsx-a11y', 'react'],
 
   env: {
-    browser: true,
     commonjs: true,
     es6: true,
     jest: true,
     node: true,
   },
 
+  globals: {
+    document: true,
+    window: true,
+    console: true,
+    navigator: true
+  },
+
   parserOptions: {
     ecmaVersion: 6,
     sourceType: 'module',
diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js
index 3e57c3c5a..1bf967d52 100644
--- a/packages/react-scripts/fixtures/kitchensink/src/App.js
+++ b/packages/react-scripts/fixtures/kitchensink/src/App.js
@@ -26,7 +26,7 @@ class BuiltEmitter extends Component {
   }
 
   handleReady() {
-    document.dispatchEvent(new Event('ReactFeatureDidMount'));
+    document.dispatchEvent(new window.Event('ReactFeatureDidMount'));
   }
 
   render() {
@@ -54,7 +54,7 @@ class App extends Component {
   }
 
   componentDidMount() {
-    const feature = location.hash.slice(1);
+    const feature = window.location.hash.slice(1);
     switch (feature) {
       case 'array-destructuring':
         import(
diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/NoExtInclusion.js b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/NoExtInclusion.js
index 7f824c2f2..e3d4c621f 100644
--- a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/NoExtInclusion.js
+++ b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/NoExtInclusion.js
@@ -11,7 +11,7 @@ import React from 'react';
 import aFileWithoutExt from './assets/aFileWithoutExt';
 
 const text = aFileWithoutExt.includes('base64')
-  ? atob(aFileWithoutExt.split('base64,')[1]).trim()
+  ? window.atob(aFileWithoutExt.split('base64,')[1]).trim()
   : aFileWithoutExt;
 
 export default () => (
diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/UnknownExtInclusion.js b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/UnknownExtInclusion.js
index 70b046e95..af88e96b6 100644
--- a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/UnknownExtInclusion.js
+++ b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/UnknownExtInclusion.js
@@ -11,7 +11,7 @@ import React from 'react';
 import aFileWithExtUnknown from './assets/aFileWithExt.unknown';
 
 const text = aFileWithExtUnknown.includes('base64')
-  ? atob(aFileWithExtUnknown.split('base64,')[1]).trim()
+  ? window.atob(aFileWithExtUnknown.split('base64,')[1]).trim()
   : aFileWithExtUnknown;
 
 export default () => (
-- 
GitLab