File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -130,10 +130,17 @@ var DOMPropertyOperations = {
130
130
} else if ( shouldIgnoreValue ( name , value ) ) {
131
131
this . deleteValueForProperty ( node , name ) ;
132
132
} else if ( DOMProperty . mustUseAttribute [ name ] ) {
133
+ // `setAttribute` with objects becomes only `[object]` in IE8/9,
134
+ // ('' + value) makes it output the correct toString()-value.
133
135
node . setAttribute ( DOMProperty . getAttributeName [ name ] , '' + value ) ;
134
136
} else {
135
137
var propName = DOMProperty . getPropertyName [ name ] ;
136
- if ( ! DOMProperty . hasSideEffects [ name ] || node [ propName ] !== value ) {
138
+ // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the
139
+ // property type before comparing; only `value` does and is string.
140
+ if ( ! DOMProperty . hasSideEffects [ name ] ||
141
+ ( '' + node [ propName ] ) !== ( '' + value ) ) {
142
+ // Contrary to `setAttribute`, object properties are properly
143
+ // `toString`ed by IE8/9.
137
144
node [ propName ] = value ;
138
145
}
139
146
}
@@ -168,7 +175,7 @@ var DOMPropertyOperations = {
168
175
propName
169
176
) ;
170
177
if ( ! DOMProperty . hasSideEffects [ name ] ||
171
- node [ propName ] !== defaultValue ) {
178
+ ( '' + node [ propName ] ) !== defaultValue ) {
172
179
node [ propName ] = defaultValue ;
173
180
}
174
181
}
You can’t perform that action at this time.
0 commit comments