<html>
<head>
<title>This test that we don't crash on a null text node with marker on it.</title>
<style>
div:before {
	content: "foobar";
	display: table;
}
</style>
</head>
<body>
<div>Pass if no crash or assert.</div>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

if (window.internals) {
	internals.settings.setSimpleLineLayoutEnabled(false);	
	var findOptions = ['CaseInsensitive', 'AtWordStarts', 'TreatMedialCapitalAsWordStart', 'WrapAround'];
	internals.countMatchesForText('assert', findOptions, 'mark');
}

document.body.offsetHeight;
if (window.internals)
	internals.settings.setSimpleLineLayoutEnabled(true);
document.body.offsetHeight;
</script>
</body>
</html>
