Using latest Panels IPE, and latest clientside_validation, Internet Explorer 8 is completely crashing on every page load. I have tracked the problem down the the introduction of the Array.prototype.map function in clientside_validation.ie8.js. Other than that, it's beyond me why that would be causing such a serious issue.

Comments

attiks’s picture

Probably related to #1776242: Clientside Validation Webform stops Geofield Formatter Map display in versions of IE below 9

The cause is that some other javascript library is also declaring Array.prototype.map, can you check please?

mrfelton’s picture

The only place that "Array.prototype.map" appears in my codebase is in clientside_validation.ie8.js.

mrfelton’s picture

For now, I've fixed my problem with the following:

/**
 * Implements hook_js_alter().
 */
function cw_core_js_alter(&$javascript) {
  // Due to #1796544, remove the IE8 support
  // clientside_validation seems to work fine in IE8 without this anyway.
  if (isset($javascript['profiles/abc/modules/contrib/clientside_validation/clientside_validation.ie8.js'])) {
   unset($javascript['profiles/abc/modules/contrib/clientside_validation/clientside_validation.ie8.js']);
  }
}

clientside

It may break the IE8 support in some way, but it all looks to be working ok to me so far. But after 4 hours of debugging, I'd rather have slightly broken validation in IE8, than an IE8 that crashes on every page load!

attiks’s picture

Isn't it defined in an external javascript library?

Do you get an error?

mrfelton’s picture

Grepping through our codebase shows the string "Array.prototype.map" in only clientside_validation.ie8.js. The only external js in use is http://html5shiv.googlecode.com/svn/trunk/html5.js, which also doesn't define that function.

I don't get an error. because the browser will not load that far. Literally the whole browser crashes and the only way to do anything else is to force quit it.

attiks’s picture