jscript/tests: Added more exception tests.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2017-05-01 18:31:13 +02:00 committed by Alexandre Julliard
parent 60232cc770
commit 4b5291a519
1 changed files with 158 additions and 0 deletions

View File

@ -981,6 +981,164 @@ case 3:
return i;
})();
(function() {
var ret, x;
function unreachable() {
ok(false, "unreachable");
}
function expect(value, expect_value) {
ok(value === expect_value, "got " + value + " expected " + expect_value);
}
ret = (function() {
try {
return "try";
unreachable();
}catch(e) {
unreachable();
}finally {
return "finally";
unreachable();
}
unreachable();
})();
expect(ret, "finally");
x = "";
ret = (function() {
try {
x += "try,";
return x;
unreachable();
}catch(e) {
unreachable();
}finally {
x += "finally,";
}
unreachable();
})();
expect(ret, "try,");
expect(x, "try,finally,");
x = "";
ret = (function() {
try {
x += "try,"
throw 1;
unreachable();
}catch(e) {
x += "catch,";
return "catch";
unreachable();
}finally {
x += "finally,";
return "finally";
unreachable();
}
unreachable();
})();
expect(ret, "finally");
expect(x, "try,catch,finally,");
x = "";
ret = (function() {
try {
x += "try,"
throw 1;
unreachable();
}catch(e) {
x += "catch,";
return "catch";
unreachable();
}finally {
x += "finally,";
}
unreachable();
})();
expect(ret, "catch");
expect(x, "try,catch,finally,");
x = "";
ret = (function() {
try {
x += "try,"
try {
x += "try2,";
return "try2";
}catch(e) {
unreachable();
}finally {
x += "finally2,";
}
unreachable();
}catch(e) {
unreachable();
}finally {
x += "finally,";
}
unreachable();
})();
expect(ret, "try2");
expect(x, "try,try2,finally2,finally,");
x = "";
ret = (function() {
while(true) {
try {
x += "try,"
try {
x += "try2,";
break;
}catch(e) {
unreachable();
}finally {
x += "finally2,";
}
unreachable();
}catch(e) {
unreachable();
}finally {
x += "finally,";
}
unreachable();
}
x += "ret";
return "ret";
})();
expect(ret, "ret");
expect(x, "try,try2,finally2,finally,ret");
x = "";
ret = (function() {
while(true) {
try {
x += "try,"
try {
x += "try2,";
continue;
}catch(e) {
unreachable();
}finally {
x += "finally2,";
}
unreachable();
}catch(e) {
unreachable();
}finally {
x += "finally,";
break;
}
unreachable();
}
x += "ret";
return "ret";
})();
expect(ret, "ret");
expect(x, "try,try2,finally2,finally,ret");
})();
tmp = eval("1");
ok(tmp === 1, "eval(\"1\") !== 1");
eval("{ ok(tmp === 1, 'eval: tmp !== 1'); } tmp = 2;");