summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/webappapis/scripting/events/onerroreventhandler-frame.html
blob: 79e4af3020681b074345e00f846925762a098acc (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<body></body>
<script>
function check1(args, callee) {
  parent.t.step(function() {
    parent.assert_equals(callee.length, 5);
    parent.assert_equals(args.length, 5);
    parent.assert_equals(args[0], reference_error.message);
    parent.assert_equals(args[1], reference_error.filename);
    parent.assert_equals(args[2], reference_error.lineno);
    parent.assert_equals(args[3], reference_error.colno);
    parent.assert_equals(args[4], reference_error.error);
    parent.t.done();
  });
}

var reference_error = new ErrorEvent("error", {
  filename: "error_file.js",
  lineno: 333,
  colno: 999,
  message: "there was an error",
  error: {nondefault: 'some unusual object'},
});

parent.t.step(function() {
  document.body.outerHTML = "<body onerror='check1(arguments, arguments.callee)'></body>"
  window.dispatchEvent(reference_error);
});

function check2(args, callee) {
  parent.t2.step(function() {
    parent.assert_equals(callee.length, 5);
    parent.assert_equals(args.length, 1);
    parent.assert_false(args[0] instanceof ErrorEvent);
    parent.t2.done()
  });
}

parent.t2.step(function() {
  document.body.outerHTML = "<body onerror='check2(arguments, arguments.callee)'></body>"
  window.dispatchEvent(new Event("error"));
});

function check3(args, callee) {
  parent.t3.step(function() {
    parent.assert_equals(args.length, 1);
    parent.assert_equals(callee.length, 1);
  });
}

parent.t3.step(function() {
  document.body.outerHTML = "<body><span onerror='check3(arguments, arguments.callee)'></span></body>"
  document.body.firstChild.dispatchEvent(reference_error);
  document.body.firstChild.dispatchEvent(new Event("error"));
  parent.t3.done();
});
</script>