Blob Blame History Raw
From 6b988eec421f596754296e01dfc827649be22bfa Mon Sep 17 00:00:00 2001
From: Dan Callaghan <dcallagh@redhat.com>
Date: Wed, 17 Dec 2014 10:13:53 +1000
Subject: [PATCH] support jsmin.py from v8

---
 src/webassets/filter/jsmin.py | 8 +++++++-
 tests/test_filters.py         | 4 +++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/webassets/filter/jsmin.py b/src/webassets/filter/jsmin.py
index 3a06fb2..ff21d7f 100644
--- a/src/webassets/filter/jsmin.py
+++ b/src/webassets/filter/jsmin.py
@@ -35,4 +35,10 @@ class JSMin(Filter):
         self.jsmin = jsmin
 
     def output(self, _in, out, **kw):
-        self.jsmin.JavascriptMinify().minify(_in, out)
+        if hasattr(self.jsmin, 'JavaScriptMinifier'):
+            # jsmin.py from v8
+            minifier = self.jsmin.JavaScriptMinifier()
+            minified = minifier.JSMinify(_in.read())
+            out.write(minified)
+        else:
+            self.jsmin.JavascriptMinify().minify(_in, out)
diff --git a/tests/test_filters.py b/tests/test_filters.py
index 8f5fc0e..02f0ff1 100644
--- a/tests/test_filters.py
+++ b/tests/test_filters.py
@@ -549,7 +549,9 @@ class TestBuiltinFilters(TempEnvironmentHelper):
             # Builtin jsmin
             "\nfunction foo(bar){var dummy;document.write(bar);var a=\"Ünícôdè\"}",
             # jsmin from PyPI
-            ' function foo(bar){var dummy;document.write(bar);var a="\xc3\x9cn\xc3\xadc\xc3\xb4d\xc3\xa8";}'
+            ' function foo(bar){var dummy;document.write(bar);var a="\xc3\x9cn\xc3\xadc\xc3\xb4d\xc3\xa8";}',
+            # jsmin from v8
+            '\n\nfunction foo(a){\nvar b;\ndocument.write(a);\nvar c="\xc3\x9cn\xc3\xadc\xc3\xb4d\xc3\xa8";\n}\n\n',
         )
 
     def test_rjsmin(self):
-- 
1.9.3