Permalink
Browse files

Manipulation: Switch rnoInnerhtml to a version more performant in IE

IE versions greater than 9 do not handle the old regular expression well
with large html content. This is due to the use of a non-capturing group
after a very common html character (<).

Test suite: http://jsfiddle.net/Lwa0t5rp/3/
Microsoft bug: https://connect.microsoft.com/IE/feedback/details/1736512/

(cherry-picked from d4def22)

Fixes gh-2563
Closes gh-2574
  • Loading branch information...
SeanHenderson authored and mgol committed Sep 3, 2015
1 parent 1b48eef commit 29266e00e91b2ad42793f7c12965662917d8fce4
Showing with 5 additions and 1 deletion.
  1. +5 −1 src/manipulation.js
View
@@ -31,7 +31,11 @@ define( [
var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
rnoInnerhtml = /<(?:script|style|link)/i,
// Support: IE 10-11, Edge 10240+
// In IE/Edge using regex groups here causes severe slowdowns.
// See https://connect.microsoft.com/IE/feedback/details/1736512/
rnoInnerhtml = /<script|<style|<link/i,
// checked="checked" or checked
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,

0 comments on commit 29266e0

Please sign in to comment.