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