blob: d5d3f94804786bff37392a24e9ff988434e2c1ed (
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
|
load(libdir + "evalInFrame.js");
// Test that computing the implicit 'this' in calls for D.F.eval is as if it
// were a pasted-in eval.
var G = this;
function globalFun(check, expectedThis) {
if (check)
assertEq(this, expectedThis);
return this;
}
var expectedGlobalFunThis = globalFun(false);
evalInFrame(0, "globalFun(true, expectedGlobalFunThis)");
(function testInnerFun() {
function innerFun(check, expectedThis) {
if (check)
assertEq(this, expectedThis);
return this;
}
var expectedInnerFunThis = innerFun(false);
evalInFrame(0, "innerFun(true, expectedInnerFunThis)");
return [innerFun, expectedInnerFunThis]; // To prevent the JIT from optimizing out vars.
})();
(function testWith() {
var o = {
withFun: function withFun(check, expectedThis) {
if (check)
assertEq(this, expectedThis);
return this;
}
};
with (o) {
var expectedWithFunThis = withFun(false);
evalInFrame(0, "withFun(true, expectedWithFunThis)");
}
})();
|