Tests that perform-undo-perform of the mergeable action does not crash.

Initial value
[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
.container  { (perform-undo-perform-of-mergable-action.html:7)
font-weight: bold;

[expanded] 
div  { (user agent stylesheet)
display: block;


After changing property
[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
.container  { (perform-undo-perform-of-mergable-action.html:7)
font-weight: normal;

[expanded] 
div  { (user agent stylesheet)
display: block;


After undo
[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
.container  { (perform-undo-perform-of-mergable-action.html:7)
font-weight: bold;

[expanded] 
div  { (user agent stylesheet)
display: block;


After perform
[expanded] 
element.style  { ()

======== Matched CSS Rules ========
[expanded] 
.container  { (perform-undo-perform-of-mergable-action.html:7)
font-weight: normal;

[expanded] 
div  { (user agent stylesheet)
display: block;



