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>
|