layout: Profile the CSS cascade as well as selector matching.

It's slow.
auto merge of #1563 : pcwalton/servo/profile-cascade, r=larsbergstrom

It's slow.

r? @metajack
Disable 3 broken ref tests so that we can start blocking on check-ref again
Enable ref tests on darwin
auto merge of #1565 : larsbergstrom/servo/ref-tests-enable, r=pcwalton

Ref tests should now be stable enough to put them back in the list of checked tests that we run at checkin. This will at least ensure ACID1 no longer breaks.

I had to disable three tests that have regressed since ref tests first became unstable. I will open separate issues for each of them if we agree to land this PR.
implement inline border
add comment & add ref test
disable ref test :(
auto merge of #1546 : ksh8281/servo/inline_add2, r=larsbergstrom

implement inline border.
it gives same result in "src/test/html/test_inline_border.html" with chrome,firefox

r? @pcwalton
layout: Switch parallel selector matching over to using work stealing.

10% speedup over what we had before.
auto merge of #1559 : pcwalton/servo/parallel-selector-matching, r=metajack

10% speedup over what we had before.

r? @metajack
Change the values emitted for incorrect pixels to make small errors visible
auto merge of #1570 : larsbergstrom/servo/reftest_better, r=metajack

Previously, small errors were very hard to see because they would only have a value that was off by a few points from solid white. Now, they will show up vibrantly!

I considered reconstructing the pixels and using either black/white or a scaling "red" but in practice this gives good results on a wide variety of errors and has the bonus that if you've got chroma-power you can tell if there's an R, G, or B error :-)

r? @metajack
layout: Perform cascading in parallel.

Speeds up the cascade by 3x.
auto merge of #1571 : pcwalton/servo/combine-cascading, r=metajack

Speeds up the cascade by 3x.

r? @metajack
style: Short-circuit the selector matching process if the map is empty.

125% win on selector matching (!)
style: Stop allocating when lowercasing element names for lookup in the
hash.

31% win on selector matching.
Fix white-space property(pre)

If html has empty line, it is not handled currently.
Because pending line is empty in such case, flushing current line doesn't care empty line.
For example, below html has two empty line(line 2 and line 4)
<div>
test1

test2

</div>

To handle empty line, added empty box to pending line.
auto merge of #1574 : pcwalton/servo/cheat-before-after, r=SimonSapin

125% win on selector matching (!)

r? @SimonSapin
auto merge of #1547 : deokjinkim/servo/fix_white_space, r=metajack

If html has empty line, it is not handled currently.
Because pending line is empty in such case, flushing current line doesn't care empty line.
For example, below html has two empty line(line 2 and line 4)
<div>
test1

test2

</div>

To handle empty line, added empty box to pending line.