<html>
<head>
  <script type="text/javascript">
function assert(cond, msg) { if (!cond) { throw msg; } }
window.onload = function() {
    try {
        var ctx = document.getElementById("c1").getContext("2d");

        assert("nonzero" == ctx.mozFillRule,
               "Default fillRule is 'nonzero'");

        ctx.mozFillRule = "evenodd";
        assert("evenodd" == ctx.mozFillRule,
               "fillRule understands 'evenodd'");
        ctx.mozFillRule = "nonzero";

        ctx.mozFillRule = "garbageLSKJDF 29879234";
        assert("nonzero" == ctx.mozFillRule,
               "Garbage fillRule string has no effect");

        ctx.mozFillRule = "evenodd";
        ctx.mozFillRule = "garbageLSKJDF 29879234";
        assert("evenodd" == ctx.mozFillRule,
               "Garbage fillRule string has no effect");
        ctx.mozFillRule = "nonzero";

        ctx.save();
        ctx.mozFillRule = "evenodd";
        ctx.restore();
        assert("nonzero" == ctx.mozFillRule,
               "fillRule was saved then restored");
    } catch (e) {
        document.body.innerHTML = "FAIL: "+ e.toString();
        return;
    }
    document.body.innerHTML = "Pass";
}
  </script>
</head>
<body>
  <div><canvas id="c1" width="300" height="300"></canvas></div>
</body>
</html>