Commit 4b5291a5 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

jscript/tests: Added more exception tests.

parent 60232cc7
...@@ -981,6 +981,164 @@ case 3: ...@@ -981,6 +981,164 @@ case 3:
return i; 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"); tmp = eval("1");
ok(tmp === 1, "eval(\"1\") !== 1"); ok(tmp === 1, "eval(\"1\") !== 1");
eval("{ ok(tmp === 1, 'eval: tmp !== 1'); } tmp = 2;"); eval("{ ok(tmp === 1, 'eval: tmp !== 1'); } tmp = 2;");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment