blob: 69613386cd8d37de498044b28d60796d93111476 [file] [log] [blame]
/*
* 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);