Don't add empty string value to valueless attributes
authorRemco Haszing <remcohaszing@gmail.com>
Tue, 25 Mar 2014 21:25:38 +0000 (22:25 +0100)
committerRemco Haszing <remcohaszing@gmail.com>
Tue, 25 Mar 2014 21:29:23 +0000 (22:29 +0100)
src/htmlminifier.js
src/htmlparser.js
tests/minifier.js

index bd7d928..950b9d1 100644 (file)
 
     attrValue = cleanAttributeValue(tag, attrName, attrValue, options);
 
-    if (!options.removeAttributeQuotes ||
+    if (attrValue !== undefined && !options.removeAttributeQuotes ||
         !canRemoveAttributeQuotes(attrValue)) {
       attrValue = '"' + attrValue + '"';
     }
       return '';
     }
 
-    if (options.collapseBooleanAttributes &&
-        isBooleanAttribute(attrName)) {
+    if (attrValue === undefined || (options.collapseBooleanAttributes &&
+        isBooleanAttribute(attrName))) {
       attrFragment = attrName;
     }
     else {
index d11272b..96d75ca 100644 (file)
           var value = arguments[2] ? arguments[2] :
             arguments[3] ? arguments[3] :
             arguments[4] ? arguments[4] :
-            fillAttrs[name] ? name : '';
+            fillAttrs[name] ? name : arguments[2];
           attrs.push({
             name: name,
             value: value,
-            escaped: value.replace(/(^|[^\\])"/g, '$1&quot;') //"
+            escaped: value && value.replace(/(^|[^\\])"/g, '$1&quot;') //"
           });
         });
 
index 5a42440..bd95345 100644 (file)
@@ -35,7 +35,7 @@
     equal(minify('<ng-include src="x"></ng-include>'), '<ng-include src="x"></ng-include>');
     equal(minify('<ng:include src="x"></ng:include>'), '<ng:include src="x"></ng:include>');
     equal(minify('<ng-include src="\'views/partial-notification.html\'"></ng-include><div ng-view></div>'),
-      '<ng-include src="\'views/partial-notification.html\'"></ng-include><div ng-view=""></div>'
+      '<ng-include src="\'views/partial-notification.html\'"></ng-include><div ng-view></div>'
     );
 
     // https://github.com/kangax/html-minifier/issues/41