blob: 69613386cd8d37de498044b28d60796d93111476 (
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
|
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
function strictThis() { 'use strict'; return this; }
/* Check that calls of flat closure slots get the right |this|. */
function flat(g) {
function h() { return g(); }
return h;
}
assertEq(flat(strictThis)(), undefined);
/* Check that calls up upvars get the right |this|. */
function upvar(f) {
function h() {
return f();
}
return h();
}
assertEq(upvar(strictThis), undefined);
/* Check that calls to with-object properties get an appropriate 'this'. */
var obj = { f: strictThis };
with (obj) {
/*
* The method won't compile anything containing a 'with', but it can
* compile 'g'.
*/
function g() { return f(); }
assertEq(g(), obj);
}
reportCompare(true, true);
|