2020-07-05 10:47:40 -07:00
|
|
|
test("basic functionality", () => {
|
2020-07-06 07:37:45 -07:00
|
|
|
function foo() {
|
|
|
|
i = 3;
|
|
|
|
expect(i).toBe(3);
|
|
|
|
var i;
|
|
|
|
}
|
2020-04-13 16:42:54 +02:00
|
|
|
|
2020-07-06 07:37:45 -07:00
|
|
|
foo();
|
2020-04-13 16:42:54 +02:00
|
|
|
|
2020-07-06 07:37:45 -07:00
|
|
|
var caught_exception;
|
|
|
|
try {
|
|
|
|
j = i;
|
|
|
|
} catch (e) {
|
|
|
|
caught_exception = e;
|
|
|
|
}
|
|
|
|
expect(caught_exception).not.toBeUndefined();
|
2020-07-05 10:47:40 -07:00
|
|
|
});
|
2021-10-07 01:08:19 +02:00
|
|
|
|
|
|
|
test("Issue #8198 arrow function escapes function scope", () => {
|
|
|
|
const b = 3;
|
|
|
|
|
|
|
|
function f() {
|
|
|
|
expect(b).toBe(3);
|
|
|
|
(() => {
|
|
|
|
expect(b).toBe(3);
|
|
|
|
var a = "wat";
|
|
|
|
eval("var b=a;");
|
|
|
|
expect(b).toBe("wat");
|
|
|
|
})();
|
|
|
|
expect(b).toBe(3);
|
|
|
|
}
|
|
|
|
|
|
|
|
f();
|
|
|
|
expect(b).toBe(3);
|
|
|
|
});
|
2024-03-01 12:54:50 +01:00
|
|
|
|
|
|
|
test("Referencing the declared var in the initializer of a duplicate var declaration", () => {
|
|
|
|
function c(e) {
|
|
|
|
e.foo;
|
|
|
|
}
|
|
|
|
function h() {}
|
|
|
|
function go() {
|
|
|
|
var p = true;
|
|
|
|
var p = h() || c(p);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
// It's all good as long as go() doesn't throw.
|
|
|
|
expect(go()).toBe(0);
|
|
|
|
});
|