diff --git a/grails-app/resourceMappers/org/grails/plugin/resource/minified/js/uglify/UglifyJsResourceMapper.groovy b/grails-app/resourceMappers/org/grails/plugin/resource/minified/js/uglify/UglifyJsResourceMapper.groovy index b9b175a..3bb862d 100644 --- a/grails-app/resourceMappers/org/grails/plugin/resource/minified/js/uglify/UglifyJsResourceMapper.groovy +++ b/grails-app/resourceMappers/org/grails/plugin/resource/minified/js/uglify/UglifyJsResourceMapper.groovy @@ -38,7 +38,7 @@ class UglifyJsResourceMapper implements GrailsApplicationAware { try { Date start = new Date() - def output = new UglifyEngine().minify(original.text, [filename: original.name, noMunge: config?.noMunge ?: false]) + def output = new UglifyEngine().minify(original.text, [filename: original.name] + config) target.write(output) resource.processedFile = target diff --git a/src/groovy/org/grails/plugin/resource/minified/js/uglify/UglifyEngine.groovy b/src/groovy/org/grails/plugin/resource/minified/js/uglify/UglifyEngine.groovy index aef74bc..0a11cce 100644 --- a/src/groovy/org/grails/plugin/resource/minified/js/uglify/UglifyEngine.groovy +++ b/src/groovy/org/grails/plugin/resource/minified/js/uglify/UglifyEngine.groovy @@ -1,5 +1,6 @@ package org.grails.plugin.resource.minified.js.uglify +import groovy.json.JsonBuilder import org.springframework.core.io.ClassPathResource import org.mozilla.javascript.Context import org.mozilla.javascript.Scriptable @@ -66,8 +67,9 @@ class UglifyEngine { compressedAst.mangle_names() """ + def printOptions = new JsonBuilder(options?.beautifierOptions ?: [:]).toString() uglifyCommand += """\ - return compressedAst.print_to_string() + return compressedAst.print_to_string($printOptions) }()) """ diff --git a/test/unit/org/grails/plugins/resource/minified/js/uglify/UglifyEngineTests.groovy b/test/unit/org/grails/plugins/resource/minified/js/uglify/UglifyEngineTests.groovy index 2a15641..3ab50fd 100644 --- a/test/unit/org/grails/plugins/resource/minified/js/uglify/UglifyEngineTests.groovy +++ b/test/unit/org/grails/plugins/resource/minified/js/uglify/UglifyEngineTests.groovy @@ -33,5 +33,14 @@ class UglifyEngineTests extends GrailsUnitTestCase { assert output.contains("Private") assert !output.contains("comment") } + + void testBeautifier() { + def input = "var unicodeChar = '\u24b6';" + def output = uglifyEngine.minify(input, [filename: "In memory file"]) + assert !output.contains("u24b6") + + output = uglifyEngine.minify(input, [filename: "In memory file", beautifierOptions: [ascii_only: true]]) + assert output.contains("u24b6") + } }