haikuwebkit/LayoutTests/js/script-tests/vardecl-blocks-init.js

55 lines
790 B
JavaScript

description(
"This test checks that variable declarations with initializers inside of catch and with blocks do not set values in a deeper scope."
);
function catchTest() {
var e = "foo";
try {
throw "bar";
} catch (e) {
var e = "baz";
}
return e;
}
function catchTest2() {
var e = "foo";
try {
throw "bar";
} catch (e) {
var e = "baz";
return e;
}
}
function withTest() {
var e = "foo"
var object = { 'e' : "bar" };
with (object) {
var e = "baz";
}
return e;
}
function withTest2() {
var e = "foo"
var object = { 'e' : "bar" };
with (object) {
var e = "baz";
return e;
}
}
shouldBe("catchTest()", "'foo'");
shouldBe("catchTest2()", "'baz'");
shouldBe("withTest()", "'foo'");
shouldBe("withTest2()", "'baz'");