aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/compress/screw-ie8.js114
-rw-r--r--test/mocha/screw-ie8.js23
-rwxr-xr-xtest/run-tests.js2
3 files changed, 137 insertions, 2 deletions
diff --git a/test/compress/screw-ie8.js b/test/compress/screw-ie8.js
index 527aea04..0a4e2323 100644
--- a/test/compress/screw-ie8.js
+++ b/test/compress/screw-ie8.js
@@ -15,4 +15,116 @@ dont_screw: {
input: f("\v");
expect_exact: 'f("\\x0B");';
-} \ No newline at end of file
+}
+
+do_screw_try_catch: {
+ options = { screw_ie8: true };
+ mangle = { screw_ie8: true };
+ beautify = { screw_ie8: true };
+ input: {
+ good = function(e){
+ return function(error){
+ try{
+ e()
+ } catch(e) {
+ error(e)
+ }
+ }
+ };
+ }
+ expect: {
+ good = function(n){
+ return function(t){
+ try{
+ n()
+ } catch(n) {
+ t(n)
+ }
+ }
+ };
+ }
+}
+
+dont_screw_try_catch: {
+ options = { screw_ie8: false };
+ mangle = { screw_ie8: false };
+ beautify = { screw_ie8: false };
+ input: {
+ bad = function(e){
+ return function(error){
+ try{
+ e()
+ } catch(e) {
+ error(e)
+ }
+ }
+ };
+ }
+ expect: {
+ bad = function(n){
+ return function(n){
+ try{
+ t()
+ } catch(t) {
+ n(t)
+ }
+ }
+ };
+ }
+}
+
+do_screw_try_catch_undefined: {
+ options = { screw_ie8: true };
+ mangle = { screw_ie8: true };
+ beautify = { screw_ie8: true };
+ input: {
+ function a(b){
+ try {
+ throw 'Stuff';
+ } catch (undefined) {
+ console.log('caught: ' + undefined);
+ }
+ console.log('undefined is ' + undefined);
+ return b === undefined;
+ };
+ }
+ expect: {
+ function a(o){
+ try{
+ throw "Stuff"
+ } catch (o) {
+ console.log("caught: "+o)
+ }
+ console.log("undefined is " + void 0);
+ return void 0===o
+ }
+ }
+}
+
+dont_screw_try_catch_undefined: {
+ options = { screw_ie8: false };
+ mangle = { screw_ie8: false };
+ beautify = { screw_ie8: false };
+ input: {
+ function a(b){
+ try {
+ throw 'Stuff';
+ } catch (undefined) {
+ console.log('caught: ' + undefined);
+ }
+ console.log('undefined is ' + undefined);
+ return b === undefined;
+ };
+ }
+ expect: {
+ function a(o){
+ try{
+ throw "Stuff"
+ } catch (n) {
+ console.log("caught: "+n)
+ }
+ console.log("undefined is " + void 0);
+ return void 0===o
+ }
+ }
+}
diff --git a/test/mocha/screw-ie8.js b/test/mocha/screw-ie8.js
new file mode 100644
index 00000000..28b092e9
--- /dev/null
+++ b/test/mocha/screw-ie8.js
@@ -0,0 +1,23 @@
+var assert = require("assert");
+var uglify = require("../../");
+
+describe("screw-ie8", function () {
+ it("Should be able to minify() with undefined as catch parameter in a try...catch statement", function () {
+ assert.strictEqual(
+ uglify.minify(
+ "function a(b){\
+ try {\
+ throw 'Stuff';\
+ } catch (undefined) {\
+ console.log('caught: ' + undefined);\
+ }\
+ console.log('undefined is ' + undefined);\
+ return b === undefined;\
+ };", {
+ fromString: true
+ }
+ ).code,
+ 'function a(o){try{throw"Stuff"}catch(o){console.log("caught: "+o)}return console.log("undefined is "+void 0),void 0===o}'
+ );
+ });
+});
diff --git a/test/run-tests.js b/test/run-tests.js
index 4063870a..8fb93c83 100755
--- a/test/run-tests.js
+++ b/test/run-tests.js
@@ -117,7 +117,7 @@ function run_compress_tests() {
input = U.mangle_properties(input, test.mangle_props);
}
var output = cmp.compress(input);
- output.figure_out_scope();
+ output.figure_out_scope(test.mangle);
if (test.mangle) {
output.compute_char_frequency(test.mangle);
output.mangle_names(test.mangle);