diff --git a/advagg_js_minify/tests/src/Kernel/Asset/JsMinifierUnitTest.php b/advagg_js_minify/tests/src/Kernel/Asset/JsMinifierUnitTest.php
index 3676048..026eeb8 100644
--- a/advagg_js_minify/tests/src/Kernel/Asset/JsMinifierUnitTest.php
+++ b/advagg_js_minify/tests/src/Kernel/Asset/JsMinifierUnitTest.php
@@ -176,6 +176,12 @@ class JsMinifierUnitTest extends KernelTestBase {
    */
   public function testMinifyJsqueeze(array $js_asset, $contents) {
     $this->config('advagg_js_minify.settings')->set('minifier', 5)->save();
+
+    // Due to an odd bug we use a different test file for PHP5.6 comparison.
+    // See https://www.drupal.org/node/2916193.
+    if (version_compare(phpversion(), '7', '<')) {
+      $js_asset['data'] .= '.php5.6';
+    }
     $expected = file_get_contents($js_asset['data'] . '.jsqueeze.js');
     $this->assertEquals($expected, $this->optimizer->optimize($contents, $js_asset, []));
   }
diff --git a/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ToolbarVisualView.js.php5.6.jsqueeze.js b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ToolbarVisualView.js.php5.6.jsqueeze.js
new file mode 100644
index 0000000..5a40d2b
--- /dev/null
+++ b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ToolbarVisualView.js.php5.6.jsqueeze.js
@@ -0,0 +1,7 @@
+(function(t,e,a,o){\'use strict\';e.toolbar.ToolbarVisualView=o.View.extend({events:function(){var t=function(t){t.preventDefault();t.target.click()};return{\'click .toolbar-bar .toolbar-tab .trigger\':\'onTabClick\',\'click .toolbar-toggle-orientation button\':\'onOrientationToggleClick\',\'touchend .toolbar-bar .toolbar-tab .trigger\':t,\'touchend .toolbar-toggle-orientation button\':t}},initialize:function(t){this.strings=t.strings;this.listenTo(this.model,\'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible\',this.render);this.listenTo(this.model,\'change:mqMatches\',this.onMediaQueryChange);this.listenTo(this.model,\'change:offsets\',this.adjustPlacement);this.$el.find(\'.toolbar-tray .toolbar-lining\').append(e.theme(\'toolbarOrientationToggle\'));this.model.trigger(\'change:activeTab\')},render:function(){this.updateTabs();this.updateTrayOrientation();this.updateBarAttributes();if(this.model.changed.orientation===\'vertical\'||this.model.changed.activeTab){this.loadSubtrees()};window.setTimeout(function(){e.displace(!0)},0);return this},onTabClick:function(t){if(t.target.hasAttribute(\'data-toolbar-tray\')){var a=this.model.get(\'activeTab\'),e=t.target;this.model.set(\'activeTab\',(!a||e!==a)?e:null);t.preventDefault();t.stopPropagation()}},onOrientationToggleClick:function(t){var o=this.model.get(\'orientation\'),e=(o===\'vertical\')?\'horizontal\':\'vertical\',a=e===\'vertical\';if(a){localStorage.setItem(\'Drupal.toolbar.trayVerticalLocked\',\'true\')}
+else{localStorage.removeItem(\'Drupal.toolbar.trayVerticalLocked\')};this.model.set({locked:a,orientation:e},{validate:!0,override:!0});t.preventDefault();t.stopPropagation()},updateTabs:function(){var e=t(this.model.get(\'activeTab\'));t(this.model.previous(\'activeTab\')).removeClass(\'is-active\').prop(\'aria-pressed\',!1);t(this.model.previous(\'activeTray\')).removeClass(\'is-active\');if(e.length>0){e.addClass(\'is-active\').prop(\'aria-pressed\',!0);var r=e.attr(\'data-toolbar-tray\'),o=e.get(0).id;if(o){localStorage.setItem(\'Drupal.toolbar.activeTabID\',JSON.stringify(o))};var a=this.$el.find(\'[data-toolbar-tray="\'+r+\'"].toolbar-tray\');if(a.length){a.addClass(\'is-active\');this.model.set(\'activeTray\',a.get(0))}
+else{this.model.set(\'activeTray\',null)}}
+else{this.model.set(\'activeTray\',null);localStorage.removeItem(\'Drupal.toolbar.activeTabID\')}},updateBarAttributes:function(){var t=this.model.get(\'isOriented\');if(t){this.$el.find(\'.toolbar-bar\').attr(\'data-offset-top\',\'\')}
+else{this.$el.find(\'.toolbar-bar\').removeAttr(\'data-offset-top\')};this.$el.toggleClass(\'toolbar-oriented\',t)},updateTrayOrientation:function(){var e=this.model.get(\'orientation\'),t=(e===\'vertical\')?\'horizontal\':\'vertical\',a=this.$el.find(\'.toolbar-tray\').removeClass(\'toolbar-tray-horizontal toolbar-tray-vertical\').addClass(\'toolbar-tray-\'+e),i=\'toolbar-icon-toggle-\'+e,r=\'toolbar-icon-toggle-\'+t,o=this.$el.find(\'.toolbar-toggle-orientation\').toggle(this.model.get(\'isTrayToggleVisible\'));o.find(\'button\').val(t).attr(\'title\',this.strings[t]).text(this.strings[t]).removeClass(i).addClass(r);var s=document.documentElement.dir,l=(s===\'rtl\')?\'right\':\'left\';a.removeAttr(\'data-offset-left data-offset-right data-offset-top\');a.filter(\'.toolbar-tray-vertical.is-active\').attr(\'data-offset-\'+l,\'\');a.filter(\'.toolbar-tray-horizontal.is-active\').attr(\'data-offset-top\',\'\')},adjustPlacement:function(){var t=this.$el.find(\'.toolbar-tray\');if(!this.model.get(\'isOriented\')){t.css(\'margin-top\',0);t.removeClass(\'toolbar-tray-horizontal\').addClass(\'toolbar-tray-vertical\')}
+else{t.css(\'margin-top\',this.$el.find(\'.toolbar-bar\').outerHeight())}},loadSubtrees:function(){var n=t(this.model.get(\'activeTab\')),s=this.model.get(\'orientation\');if(!this.model.get(\'areSubtreesLoaded\')&&typeof n.data(\'drupal-subtrees\')!==\'undefined\'&&s===\'vertical\'){var r=a.toolbar.subtreesHash,o=a.ajaxPageState.theme,c=e.url(\'toolbar/subtrees/\'+r),d=localStorage.getItem(\'Drupal.toolbar.subtreesHash.\'+o),l=JSON.parse(localStorage.getItem(\'Drupal.toolbar.subtrees.\'+o)),i=this.model.get(\'orientation\')===\'vertical\';if(i&&r===d&&l){e.toolbar.setSubtrees.resolve(l)}
+else if(i){localStorage.removeItem(\'Drupal.toolbar.subtreesHash.\'+o);localStorage.removeItem(\'Drupal.toolbar.subtrees.\'+o);e.ajax({url:c}).execute();localStorage.setItem(\'Drupal.toolbar.subtreesHash.\'+o,r)}}}})}(jQuery,Drupal,drupalSettings,Backbone));
\ No newline at end of file
diff --git a/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ajax.js.php5.6.jsqueeze.js b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ajax.js.php5.6.jsqueeze.js
new file mode 100644
index 0000000..981bda2
--- /dev/null
+++ b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/ajax.js.php5.6.jsqueeze.js
@@ -0,0 +1,10 @@
+(function(e,s,t,r){'use strict';t.behaviors.AJAX={attach:function(s,r){function i(s){var a=r.ajax[s];if(typeof a.selector==='undefined'){a.selector='#'+s};e(a.selector).once('drupal-ajax').each(function(){a.element=this;a.base=s;t.ajax(a)})};for(var a in r.ajax){if(r.ajax.hasOwnProperty(a)){i(a)}};e('.use-ajax').once('ajax').each(function(){var s={};s.progress={type:'throbber'};var r=e(this).attr('href');if(r){s.url=r;s.event='click'};s.dialogType=e(this).data('dialog-type');s.dialog=e(this).data('dialog-options');s.base=e(this).attr('id');s.element=this;t.ajax(s)});e('.use-ajax-submit').once('ajax').each(function(){var s={};s.url=e(this.form).attr('action');s.setClick=!0;s.event='click';s.progress={type:'throbber'};s.base=e(this).attr('id');s.element=this;t.ajax(s)})},detach:function(e,s,r){if(r==='unload'){t.ajax.expired().forEach(function(e){t.ajax.instances[e.instanceIndex]=null})}}};t.AjaxError=function(s,r,a){var o,l,c,i,p;if(s.status){o='\n'+t.t('An AJAX HTTP error occurred.')+'\n'+t.t('HTTP Result Code: !status',{'!status':s.status})}
+else{o='\n'+t.t('An AJAX HTTP request terminated abnormally.')};o+='\n'+t.t('Debugging information follows.');c='\n'+t.t('Path: !uri',{'!uri':r});l='';try{l='\n'+t.t('StatusText: !statusText',{'!statusText':e.trim(s.statusText)})}catch(n){};i='';try{i='\n'+t.t('ResponseText: !responseText',{'!responseText':e.trim(s.responseText)})}catch(n){};i=i.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,'');i=i.replace(/[\n]+\s+/g,'\n');p=s.status===0?('\n'+t.t('ReadyState: !readyState',{'!readyState':s.readyState})):'';a=a?('\n'+t.t('CustomMessage: !customMessage',{'!customMessage':a})):'';this.message=o+c+l+a+i+p;this.name='AjaxError'};t.AjaxError.prototype=new Error();t.AjaxError.prototype.constructor=t.AjaxError;t.ajax=function(e){if(arguments.length!==1){throw new Error('Drupal.ajax() function must be called with one configuration object only')};var a=e.base||!1,r=e.element||!1;delete e.base;delete e.element;if(!e.progress&&!r){e.progress=!1};var s=new t.Ajax(a,r,e);s.instanceIndex=t.ajax.instances.length;t.ajax.instances.push(s);return s};t.ajax.instances=[];t.ajax.expired=function(){return t.ajax.instances.filter(function(e){return e&&e.element!==!1&&!document.body.contains(e.element)})};t.Ajax=function(s,a,o){var l={event:a?'mousedown':null,keypress:!0,selector:s?'#'+s:null,effect:'none',speed:'none',method:'replaceWith',progress:{type:'throbber',message:t.t('Please wait...')},submit:{js:!0}};e.extend(this,l,o);this.commands=new t.AjaxCommands();this.instanceIndex=!1;if(this.wrapper){this.wrapper='#'+this.wrapper};this.element=a;this.element_settings=o;if(this.element&&this.element.form){this.$form=e(this.element.form)};if(!this.url){var n=e(this.element);if(n.is('a')){this.url=n.attr('href')} 
+else if(this.element&&a.form){this.url=this.$form.attr('action')}};var c=this.url;this.url=this.url.replace(/\/nojs(\/|$|\?|#)/g,'/ajax$1');if(r.ajaxTrustedUrl[c]){r.ajaxTrustedUrl[this.url]=!0};var i=this;i.options={url:i.url,data:i.submit,beforeSerialize:function(e,t){return i.beforeSerialize(e,t)},beforeSubmit:function(e,t,s){i.ajaxing=!0;return i.beforeSubmit(e,t,s)},beforeSend:function(e,t){i.ajaxing=!0;return i.beforeSend(e,t)},success:function(s,a,o){if(typeof s==='string'){s=e.parseJSON(s)};if(s!==null&&!r.ajaxTrustedUrl[i.url]){if(o.getResponseHeader('X-Drupal-Ajax-Token')!=='1'){var n=t.t('The response failed verification so will not be processed.');return i.error(o,i.url,n)}};return i.success(s,a)},complete:function(e,t){i.ajaxing=!1;if(t==='error'||t==='parsererror'){return i.error(e,i.url)}},dataType:'json',type:'POST'};if(o.dialog){i.options.data.dialogOptions=o.dialog};if(i.options.url.indexOf('?')===-1){i.options.url+='?'}
+else{i.options.url+='&'};i.options.url+=t.ajax.WRAPPER_FORMAT+'=drupal_'+(o.dialogType||'ajax');e(i.element).on(o.event,function(e){if(!r.ajaxTrustedUrl[i.url]&&!t.url.isLocal(i.url)){throw new Error(t.t('The callback URL is not local and not trusted: !url',{'!url':i.url}))};return i.eventResponse(this,e)});if(o.keypress){e(i.element).on('keypress',function(e){return i.keypressResponse(this,e)})};if(o.prevent){e(i.element).on(o.prevent,!1)}};t.ajax.WRAPPER_FORMAT='_wrapper_format';t.Ajax.AJAX_REQUEST_PARAMETER='_drupal_ajax';t.Ajax.prototype.execute=function(){if(this.ajaxing){return};try{this.beforeSerialize(this.element,this.options);return e.ajax(this.options)}catch(t){this.ajaxing=!1;s.alert('An error occurred while attempting to process '+this.options.url+': '+t.message);return e.Deferred().reject()}};t.Ajax.prototype.keypressResponse=function(t,s){var r=this;if(s.which===13||(s.which===32&&t.type!=='text'&&t.type!=='textarea'&&t.type!=='tel'&&t.type!=='number')){s.preventDefault();s.stopPropagation();e(r.element_settings.element).trigger(r.element_settings.event)}};t.Ajax.prototype.eventResponse=function(t,r){r.preventDefault();r.stopPropagation();var a=this;if(a.ajaxing){return};try{if(a.$form){if(a.setClick){t.form.clk=t};a.$form.ajaxSubmit(a.options)}
+else{a.beforeSerialize(a.element,a.options);e.ajax(a.options)}}catch(i){a.ajaxing=!1;s.alert('An error occurred while attempting to process '+a.options.url+': '+i.message)}};t.Ajax.prototype.beforeSerialize=function(e,s){if(this.$form){var i=this.settings||r;t.detachBehaviors(this.$form.get(0),i,'serialize')};s.data[t.Ajax.AJAX_REQUEST_PARAMETER]=1;var a=r.ajaxPageState;s.data['ajax_page_state[theme]']=a.theme;s.data['ajax_page_state[theme_token]']=a.theme_token;s.data['ajax_page_state[libraries]']=a.libraries};t.Ajax.prototype.beforeSubmit=function(e,t,s){};t.Ajax.prototype.beforeSend=function(t,s){if(this.$form){s.extraData=s.extraData||{};s.extraData.ajax_iframe_upload='1';var a=e.fieldValue(this.element);if(a!==null){s.extraData[this.element.name]=a}};e(this.element).prop('disabled',!0);if(!this.progress||!this.progress.type){return};var r='setProgressIndicator'+this.progress.type.slice(0,1).toUpperCase()+this.progress.type.slice(1).toLowerCase();if(r in this&&typeof this[r]==='function'){this[r].call(this)}};t.Ajax.prototype.setProgressIndicatorBar=function(){var s=new t.ProgressBar('ajax-progress-'+this.element.id,e.noop,this.progress.method,e.noop);if(this.progress.message){s.setProgress(-1,this.progress.message)};if(this.progress.url){s.startMonitoring(this.progress.url,this.progress.interval||1500)};this.progress.element=e(s.element).addClass('ajax-progress ajax-progress-bar');this.progress.object=s;e(this.element).after(this.progress.element)};t.Ajax.prototype.setProgressIndicatorThrobber=function(){this.progress.element=e('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');if(this.progress.message){this.progress.element.find('.throbber').after('<div class="message">'+this.progress.message+'</div>')};e(this.element).after(this.progress.element)};t.Ajax.prototype.setProgressIndicatorFullscreen=function(){this.progress.element=e('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');e('body').after(this.progress.element)};t.Ajax.prototype.success=function(s,a){if(this.progress.element){e(this.progress.element).remove()};if(this.progress.object){this.progress.object.stopMonitoring()};e(this.element).prop('disabled',!1);var c=e(this.element).parents('[data-drupal-selector]').addBack().toArray(),l=!1;for(var i in s){if(s.hasOwnProperty(i)&&s[i].command&&this.commands[s[i].command]){this.commands[s[i].command](this,s[i],a);if(s[i].command==='invoke'&&s[i].method==='focus'){l=!0}}};if(!l&&this.element&&!e(this.element).data('disable-refocus')){var o=!1;for(var n=c.length-1;!o&&n>0;n--){o=document.querySelector('[data-drupal-selector="'+c[n].getAttribute('data-drupal-selector')+'"]')};if(o){e(o).trigger('focus')}};if(this.$form){var p=this.settings||r;t.attachBehaviors(this.$form.get(0),p)};this.settings=null};t.Ajax.prototype.getEffect=function(e){var s=e.effect||this.effect,r=e.speed||this.speed,t={};if(s==='none'){t.showEffect='show';t.hideEffect='hide';t.showSpeed=''}
+else if(s==='fade'){t.showEffect='fadeIn';t.hideEffect='fadeOut';t.showSpeed=r}
+else{t.showEffect=s+'Toggle';t.hideEffect=s+'Toggle';t.showSpeed=r};return t};t.Ajax.prototype.error=function(s,a,i){if(this.progress.element){e(this.progress.element).remove()};if(this.progress.object){this.progress.object.stopMonitoring()};e(this.wrapper).show();e(this.element).prop('disabled',!1);if(this.$form){var o=this.settings||r;t.attachBehaviors(this.$form.get(0),o)};throw new t.AjaxError(s,a,i)};t.AjaxCommands=function(){};t.AjaxCommands.prototype={insert:function(s,a,i){var h=a.selector?e(a.selector):e(s.wrapper),p=a.method||s.method,n=s.getEffect(a),l,c=e('<div></div>').html(a.data),o=c.contents();if(o.length!==1||o.get(0).nodeType!==1){o=c};switch(p){case'html':case'replaceWith':case'replaceAll':case'empty':case'remove':l=a.settings||s.settings||r;t.detachBehaviors(h.get(0),l)};h[p](o);if(n.showEffect!=='show'){o.hide()};if(o.find('.ajax-new-content').length>0){o.find('.ajax-new-content').hide();o.show();o.find('.ajax-new-content')[n.showEffect](n.showSpeed)}
+else if(n.showEffect!=='show'){o[n.showEffect](n.showSpeed)};if(o.parents('html').length>0){l=a.settings||s.settings||r;t.attachBehaviors(o.get(0),l)}},remove:function(s,a,i){var o=a.settings||s.settings||r;e(a.selector).each(function(){t.detachBehaviors(this,o)}).remove()},changed:function(s,r,a){var i=e(r.selector);if(!i.hasClass('ajax-changed')){i.addClass('ajax-changed');if(r.asterisk){i.find(r.asterisk).append(' <abbr class="ajax-changed" title="'+t.t('Changed')+'">*</abbr> ')}}},alert:function(e,t,r){s.alert(t.text,t.title)},redirect:function(e,t,r){s.location=t.url},css:function(t,s,r){e(s.selector).css(s.argument)},settings:function(s,a,i){var o=r.ajax;if(o){t.ajax.expired().forEach(function(e){if(e.selector){var t=e.selector.replace('#','');if(t in o){delete o[t]}}})};if(a.merge){e.extend(!0,r,a.settings)}
+else{s.settings=a.settings}},data:function(t,s,r){e(s.selector).data(s.name,s.value)},invoke:function(t,s,r){var a=e(s.selector);a[s.method].apply(a,s.args)},restripe:function(t,s,r){e(s.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even')},update_build_id:function(t,s,r){e('input[name="form_build_id"][value="'+s.old+'"]').val(s.new)},add_css:function(t,s,r){e('head').prepend(s.data);var i,a=/^@import url\("(.*)"\);$/igm;if(document.styleSheets[0].addImport&&a.test(s.data)){a.lastIndex=0;do{i=a.exec(s.data);document.styleSheets[0].addImport(i[1])}
+while(i);}}}})(jQuery,window,Drupal,drupalSettings);
\ No newline at end of file
diff --git a/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/drupal.js.php5.6.jsqueeze.js b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/drupal.js.php5.6.jsqueeze.js
new file mode 100644
index 0000000..2bc741b
--- /dev/null
+++ b/advagg_js_minify/tests/src/Kernel/Asset/js_test_files/drupal.js.php5.6.jsqueeze.js
@@ -0,0 +1,2 @@
+;window.Drupal={behaviors:{},locale:{}};(function(t,e,r){'use strict';t.throwError=function(t){setTimeout(function(){throw t},0)};t.attachBehaviors=function(r,n){r=r||document;n=n||e;var a=t.behaviors;for(var i in a){if(a.hasOwnProperty(i)&&typeof a[i].attach==='function'){try{a[i].attach(r,n)}catch(o){t.throwError(o)}}}};t.detachBehaviors=function(r,n,o){r=r||document;n=n||e;o=o||'unload';var i=t.behaviors;for(var c in i){if(i.hasOwnProperty(c)&&typeof i[c].detach==='function'){try{i[c].detach(r,n,o)}catch(a){t.throwError(a)}}}};t.checkPlain=function(t){t=t.toString().replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/</g,'&lt;').replace(/>/g,'&gt;');return t};t.formatString=function(r,e){var o={};for(var n in e){if(e.hasOwnProperty(n)){switch(n.charAt(0)){case'@':o[n]=t.checkPlain(e[n]);break;case'!':o[n]=e[n];break;default:o[n]=t.theme('placeholder',e[n]);break}}};return t.stringReplace(r,o,null)};t.stringReplace=function(r,n,e){if(r.length===0){return r};if(!Array.isArray(e)){e=[];for(var i in n){if(n.hasOwnProperty(i)){e.push(i)}};e.sort(function(t,r){return t.length-r.length})};if(e.length===0){return r};var c=e.pop(),o=r.split(c);if(e.length){for(var a=0;a<o.length;a++){o[a]=t.stringReplace(o[a],n,e.slice(0))}};return o.join(n[c])};t.t=function(e,o,n){n=n||{};n.context=n.context||'';if(typeof r!=='undefined'&&r.strings&&r.strings[n.context]&&r.strings[n.context][e]){e=r.strings[n.context][e]};if(o){e=t.formatString(e,o)};return e};t.url=function(t){return e.path.baseUrl+e.path.pathPrefix+t};t.url.toAbsolute=function(t){var e=document.createElement('a');try{t=decodeURIComponent(t)}catch(r){};e.setAttribute('href',t);return e.cloneNode(!1).href};t.url.isLocal=function(r){var n=t.url.toAbsolute(r),i=location.protocol;if(i==='http:'&&n.indexOf('https:')===0){i='https:'};var o=i+'//'+location.host+e.path.baseUrl.slice(0,-1);try{n=decodeURIComponent(n)}catch(a){};try{o=decodeURIComponent(o)}catch(a){};return n===o||n.indexOf(o+'/')===0};t.formatPlural=function(n,o,i,a,u){a=a||{};a['@count']=n;var l=e.pluralDelimiter,h=t.t(o+l+i,a,u).split(l),c=0;if(typeof r!=='undefined'&&r.pluralFormula){c=n in r.pluralFormula?r.pluralFormula[n]:r.pluralFormula['default']}
+else if(a['@count']!==1){c=1};return h[c]};t.encodePath=function(t){return window.encodeURIComponent(t).replace(/%2F/g,'/')};t.theme=function(r){var e=Array.prototype.slice.apply(arguments,[1]);if(r in t.theme){return t.theme[r].apply(this,e)}};t.theme.placeholder=function(r){return'<em class="placeholder">'+t.checkPlain(r)+'</em>'}})(Drupal,window.drupalSettings,window.drupalTranslations);
\ No newline at end of file
