summaryrefslogtreecommitdiffstats
path: root/dom/canvas/crashtests/421715-1.html
blob: c2ea9b28ad3acde1e3f8e74c5ddf4e923acae4dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function stringify(a) {
        if (a)
          return a.toSource();
        return ''+a;
      }
      var args = [undefined, null, [], {}, 0, "0"];
      var stringArgs = args.map(stringify);

      function test_method(context, method, arity) {
        function testParams(existingParams, depth) {
          for (var arg of stringArgs) {
            var code = "context[method](" + existingParams + arg + ")";
            try {
              eval(code);
            } catch (ex) {
              // Exceptions are expected
            }

            if (depth < arity)
              testParams(existingParams + arg + ",", depth + 1);
          }
        }
        testParams("", 1);
      }

      function startTest() {
        var canvas = document.getElementById("img");
        var context = canvas.getContext('2d');;
        test_method(context, "getImageData", 4);
        test_method(context, "putImageData", 3);
      }
    </script>
  </head>
  <body onload="startTest()">
    <canvas id="img">No canvas support.</canvas>
  </body>
</html>