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
|
<script>
window.test_prop = 1;
</script>
<script>
onload = function() {
document.open();
document.write("<script>test_prop = 2; timeout_fired=false;<\/script>");
document.close();
setTimeout(function() {
parent.tests[0].step(function() {
parent.assert_equals(test_prop, 1, "Global scope from original window timeout");
parent.assert_equals(window.test_prop, 2, "Window property from original window timeout")
});
parent.tests[1].step(function() {
var t = get_this();
parent.assert_equals(t.test_prop, 2, "Window property from original window timeout");
parent.assert_equals(t, window, "Global scope from original window timeout");
});
}, 0);
window.setTimeout(function() {
parent.tests[2].step(function() {
parent.assert_equals(test_prop, 1, "Global scope from original window timeout");
parent.assert_equals(window.test_prop, 2, "Window property from original window timeout")
});
parent.tests[3].step(function() {
var t = get_this();
parent.assert_equals(t.test_prop, 2, "Window property from original window timeout");
parent.assert_equals(t, window, "Global scope from original window timeout");
});
parent.tests_done();
}, 100);
};
function get_this() {
return this;
}
</script>
|