Is it true that there are no guarantees across major browsers that the following script tags will always execute both sequentially AND in order of declaration? i.e. should I assume that the following code will not always yield x == 'ab' in alert?
<head>
<script type="text/javascript">
//tag A
var x = x || ''; x += 'a';
</script>
<script type="text/javascript">
//tag B
var x = x || ''; x += 'b';
</script>
</head>
<body>
<script type="text/javascript">
alert('x='+x);
<script>
</body>
... and it's possible that x will instead be one of the following:
- 'ba' - if tag B executes before A
- 'a' or 'b' - race condition where A and B execute in parallel (Though seems like this thread clearly says that browsers only allocate a single thread of JS)