Checking `exports !== undefined` can give false positives #238

fofr opened this Issue Dec 24, 2015 · 1 comment


None yet

1 participant

fofr commented Dec 24, 2015

Consider the following:

  • Content with a heading "Exports"
  • A publishing tool that dynamically creates IDs based on the value of that heading, id="exports"
  • A browser takes this heading and creates a global variable, window.exports returns the HTML element
  • The line typeof exports !== 'undefined' ? exports : Hogan now returns an HTML element and Hogan doesn't start properly
var Hogan = {};

(function(Hogan) {
  // The value of Hogan at this point is the HTML element
  // <h2 id="exports">Exports</h2>
})(typeof exports !== 'undefined' ? exports : Hogan);

This is what happened on GOV.UK on articles with content that refers to "Exports". This was one of the affected pages:

Here's the hot fix that was applied:

fofr commented May 25, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment