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:
parent
60232cc770
commit
4b5291a519
|
@ -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;");
|
||||
|
|
Loading…
Reference in New Issue