{"componentChunkName":"component---src-templates-docs-js","path":"/docs/javascript-environment-requirements.html","result":{"data":{"markdownRemark":{"html":"<p>React 16 depends on the collection types <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Map</a> and <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Set</a>. If you support older browsers and devices which may not yet provide these natively (e.g. IE &#x3C; 11) or which have non-compliant implementations (e.g. IE 11), consider including a global polyfill in your bundled application, such as <a href=\"https://github.com/zloirock/core-js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">core-js</a>.</p>\n<p>A polyfilled environment for React 16 using core-js to support older browsers might look like:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">import</span> <span class=\"token string\">'core-js/es/map'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> <span class=\"token string\">'core-js/es/set'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">'react'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> ReactDOM <span class=\"token keyword\">from</span> <span class=\"token string\">'react-dom'</span><span class=\"token punctuation\">;</span>\n\nReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h1</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Hello, world!</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h1</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">,</span>\n  document<span class=\"token punctuation\">.</span><span class=\"token function\">getElementById</span><span class=\"token punctuation\">(</span><span class=\"token string\">'root'</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>React also depends on <code class=\"gatsby-code-text\">requestAnimationFrame</code> (even in test environments).<br>\nYou can use the <a href=\"https://www.npmjs.com/package/raf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">raf</a> package to shim <code class=\"gatsby-code-text\">requestAnimationFrame</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">import</span> <span class=\"token string\">'raf/polyfill'</span><span class=\"token punctuation\">;</span></code></pre></div>","frontmatter":{"title":"JavaScript Environment Requirements","next":null,"prev":null},"fields":{"path":"content/docs/reference-javascript-environment-requirements.md","slug":"docs/javascript-environment-requirements.html"}}},"pageContext":{"slug":"docs/javascript-environment-requirements.html"}},"staticQueryHashes":[]}