alert('hi')
would never fire, as the script
tag supports either inline code or external file code..
Read the specs at http://www.w3.org/TR/html4/interact/scripts.html#h-18.2.1
The script may be defined within the contents of the SCRIPT element or in an external file. If the src attribute is not set, user agents must interpret the contents of the element as the script. If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.