mishoo/UglifyJS — pull request #344 by mal (2012-03-31 04:48:47+00:00)
Title: Fixing strict mode with generic directive support

Improving `strict mode` support by ensuring functions do not get hoisted above directives. There's also support for arbitrary directives as [allowed for in the spec](http://twitter.com/#!/kangax/status/68022795614949376). It will preserve all semicolon terminated string literals until the first non-directive in each scope.

```js
(function(){
"use strict";
function x(){}
})();
```
now becomes

```js
(function(){"use strict";function a(){}})();
```

rather than

```js
(function(){function a(){}"use strict"})();
```

These will be new elements in the AST, replacing the current `strict-mode` specific element.
This fixes #130.