@@ -142,25 +142,46 @@ var mediaQueryHelper = (function (cssMediaQuery) {
142
142
} ;
143
143
144
144
var substituteEmWithPx = function ( mediaQuery ) {
145
- var parsedQuery = cssMediaQuery . parse ( mediaQuery ) ;
145
+ var parsedQuery = cssMediaQuery . parse ( mediaQuery ) ,
146
+ hasChanges = false ;
146
147
147
148
parsedQuery . forEach ( function ( q ) {
148
149
q . expressions . forEach ( function ( exp ) {
149
- exp . value = replaceEmValueWithPx ( exp . value ) ;
150
+ var rewrittenValue = replaceEmValueWithPx ( exp . value ) ;
151
+
152
+ hasChanges |= rewrittenValue !== exp . value ;
153
+ exp . value = rewrittenValue ;
150
154
} ) ;
151
155
} ) ;
152
156
153
- return module . serializeQuery ( parsedQuery ) ;
157
+ if ( hasChanges ) {
158
+ mediaQuery = module . serializeQuery ( parsedQuery ) ;
159
+ }
160
+
161
+ return mediaQuery ;
154
162
} ;
155
163
156
164
var replaceEmsWithPx = function ( mediaQueryRules ) {
165
+ var anyRuleHasChanges = false ;
166
+
157
167
mediaQueryRules . forEach ( function ( rule ) {
168
+ var hasChanges = false ;
169
+
158
170
var reworkedMediaQueries = asArray ( rule . media ) . map ( function ( mediaQuery ) {
159
- return substituteEmWithPx ( mediaQuery ) ;
171
+ var rewrittenMediaQuery = substituteEmWithPx ( mediaQuery ) ;
172
+
173
+ hasChanges |= rewrittenMediaQuery !== mediaQuery ;
174
+ return rewrittenMediaQuery ;
160
175
} ) ;
161
176
162
- changeCssRule ( rule , mediaQueryRule ( reworkedMediaQueries , rule . cssRules ) ) ;
177
+ if ( hasChanges ) {
178
+ changeCssRule ( rule , mediaQueryRule ( reworkedMediaQueries , rule . cssRules ) ) ;
179
+ }
180
+
181
+ anyRuleHasChanges |= hasChanges ;
163
182
} ) ;
183
+
184
+ return anyRuleHasChanges ;
164
185
} ;
165
186
166
187
module . workAroundWebKitEmSizeIssue = function ( document ) {
@@ -171,8 +192,10 @@ var mediaQueryHelper = (function (cssMediaQuery) {
171
192
return rule . type === window . CSSRule . MEDIA_RULE ;
172
193
} ) ;
173
194
174
- replaceEmsWithPx ( mediaQueryRules ) ;
175
- rewriteStyleContent ( style ) ;
195
+ var hasChanges = replaceEmsWithPx ( mediaQueryRules ) ;
196
+ if ( hasChanges ) {
197
+ rewriteStyleContent ( style ) ;
198
+ }
176
199
} ) ;
177
200
} ;
178
201
0 commit comments