| Index: test/webkit/fast/js/kde/statements.js
|
| diff --git a/test/webkit/do-while-semicolon.js b/test/webkit/fast/js/kde/statements.js
|
| similarity index 51%
|
| copy from test/webkit/do-while-semicolon.js
|
| copy to test/webkit/fast/js/kde/statements.js
|
| index cd7cf4c1028ce794b17dbb326b77804aec0d5ac1..ecc6c321a47f0b1a119bd7c2a8fdd27f194e66e3 100644
|
| --- a/test/webkit/do-while-semicolon.js
|
| +++ b/test/webkit/fast/js/kde/statements.js
|
| @@ -21,47 +21,79 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
| // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -description(
|
| -"This test checks that toString() round-trip on a function that has do..while in JavaScript does not insert extra semicolon."
|
| -);
|
| -
|
| -function f1() {
|
| - do {} while(0);
|
| -}
|
| -
|
| -function f2() {
|
| - do {} while(0)
|
| -}
|
| -
|
| -function f3() {
|
| - do {} while(0) ;
|
| +description("KDE JS Test");
|
| +function testSwitch(v) {
|
| + var result = "";
|
| + switch (v) {
|
| + case 0:
|
| + result += 'a';
|
| + case 1:
|
| + result += 'b';
|
| + case 1:
|
| + result += 'c';
|
| + case 2:
|
| + result += 'd';
|
| + break;
|
| + }
|
| + return result;
|
| }
|
|
|
| -function f4() {
|
| - do {} while(0) /*empty*/ ;
|
| +shouldBe("testSwitch(0)", "'abcd'");
|
| +shouldBe("testSwitch(1)", "'bcd'"); // IE agrees, NS disagrees
|
| +shouldBe("testSwitch(2)", "'d'");
|
| +shouldBe("testSwitch(false)", "''");
|
| +
|
| +function testSwitch2(v) {
|
| + var result = "";
|
| + switch (v) {
|
| + case 1:
|
| + result += 'a';
|
| + break;
|
| + case 2:
|
| + result += 'b';
|
| + break;
|
| + default:
|
| + result += 'c';
|
| + case 3:
|
| + result += 'd';
|
| + break;
|
| + }
|
| + return result;
|
| }
|
|
|
| -
|
| -
|
| -if (typeof uneval == "undefined")
|
| - uneval = function(x) { return '(' + x.toString()+ ')'; }
|
| -
|
| -
|
| -uf1 = uneval(f1);
|
| -ueuf1 = uneval(eval(uneval(f1)));
|
| -
|
| -uf2 = uneval(f2);
|
| -ueuf2 = uneval(eval(uneval(f2)));
|
| -
|
| -uf3 = uneval(f3);
|
| -ueuf3 = uneval(eval(uneval(f3)));
|
| -
|
| -uf4 = uneval(f4);
|
| -ueuf4 = uneval(eval(uneval(f4)));
|
| -
|
| -
|
| -
|
| -shouldBe("ueuf1", "uf1");
|
| -shouldBe("ueuf2", "uf2");
|
| -shouldBe("ueuf3", "uf3");
|
| -shouldBe("ueuf4", "uf4");
|
| +shouldBe("testSwitch2(1)", "'a'");
|
| +shouldBe("testSwitch2(2)", "'b'");
|
| +shouldBe("testSwitch2(3)", "'d'");
|
| +shouldBe("testSwitch2(-1)", "'cd'");
|
| +shouldBe("testSwitch2('x')", "'cd'");
|
| +
|
| +function testSwitch3(v) {
|
| + var result = "";
|
| + switch (v) {
|
| + default:
|
| + result += 'c';
|
| + case 3:
|
| + result += 'd';
|
| + case 4:
|
| + result += 'e';
|
| + break;
|
| + }
|
| + return result;
|
| +};
|
| +
|
| +shouldBe("testSwitch3(0)", "'cde'");
|
| +shouldBe("testSwitch3(3)", "'de'");
|
| +shouldBe("testSwitch3(4)", "'e'");
|
| +
|
| +function testSwitch4(v) {
|
| + var result = "";
|
| + switch (v) {
|
| + case 0:
|
| + result += 'a';
|
| + result += 'b';
|
| + break;
|
| + }
|
| + return result;
|
| +};
|
| +
|
| +shouldBe("testSwitch4(0)", "'ab'");
|
|
|