@@ -43,6 +43,19 @@ var cssToTree = function (tree, css, selector, prelude) {
43
43
44
44
exports . cssToTree = cssToTree ;
45
45
46
+ function removeRule ( sh , rule ) {
47
+ var maxIndex = rule . index ;
48
+ var rules = sh . cssRules || sh . rules ;
49
+ maxIndex = Math . max ( maxIndex , rules . length - 1 ) ;
50
+ while ( maxIndex >= 0 ) {
51
+ if ( rules [ maxIndex ] === rule ) {
52
+ sh . deleteRule ( maxIndex ) ;
53
+ break ;
54
+ }
55
+ maxIndex -- ;
56
+ }
57
+ }
58
+
46
59
exports . addon = function ( renderer ) {
47
60
if ( process . env . NODE_ENV !== 'production' ) {
48
61
require ( './__dev__/warnOnMissingDependencies' ) ( 'pipe' , renderer , [ 'createRule' ] ) ; // cssom
@@ -94,7 +107,7 @@ exports.addon = function (renderer) {
94
107
if ( newTree [ prelude ] === undefined ) {
95
108
var rules = oldTree [ prelude ] ;
96
109
for ( var selector in rules ) {
97
- msh . deleteRule ( rules [ selector ] . index ) ;
110
+ removeRule ( msh , rules [ selector ] ) ;
98
111
}
99
112
}
100
113
}
@@ -113,10 +126,9 @@ exports.addon = function (renderer) {
113
126
var newRules = newTree [ prelude ] ;
114
127
115
128
// Remove rules not present in new tree.
116
- for ( var selector in oldRules ) {
129
+ for ( var selector in oldRules )
117
130
if ( ! newRules [ selector ] )
118
- sh . deleteRule ( oldRules [ selector ] . index )
119
- }
131
+ deleteRule ( sh , oldRules [ selector ] ) ;
120
132
121
133
// Apply new rules.
122
134
for ( var selector in newRules ) {
0 commit comments