Home | History | Annotate | Download | only in kde
      1 // Copyright 2013 the V8 project authors. All rights reserved.
      2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
      3 //
      4 // Redistribution and use in source and binary forms, with or without
      5 // modification, are permitted provided that the following conditions
      6 // are met:
      7 // 1.  Redistributions of source code must retain the above copyright
      8 //     notice, this list of conditions and the following disclaimer.
      9 // 2.  Redistributions in binary form must reproduce the above copyright
     10 //     notice, this list of conditions and the following disclaimer in the
     11 //     documentation and/or other materials provided with the distribution.
     12 //
     13 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
     14 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     16 // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
     20 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     23 
     24 description("KDE JS Test");
     25 function testSwitch(v) {
     26   var result = "";
     27   switch (v) {
     28      case 0:
     29         result += 'a';
     30      case 1:
     31  result += 'b';
     32      case 1:
     33         result += 'c';
     34      case 2:
     35         result += 'd';
     36         break;
     37   }
     38   return result;
     39 }
     40 
     41 shouldBe("testSwitch(0)", "'abcd'");
     42 shouldBe("testSwitch(1)", "'bcd'"); // IE agrees, NS disagrees
     43 shouldBe("testSwitch(2)", "'d'");
     44 shouldBe("testSwitch(false)", "''");
     45 
     46 function testSwitch2(v) {
     47   var result = "";
     48   switch (v) {
     49      case 1:
     50         result += 'a';
     51         break;
     52      case 2:
     53  result += 'b';
     54         break;
     55      default:
     56         result += 'c';
     57      case 3:
     58         result += 'd';
     59         break;
     60   }
     61   return result;
     62 }
     63 
     64 shouldBe("testSwitch2(1)", "'a'");
     65 shouldBe("testSwitch2(2)", "'b'");
     66 shouldBe("testSwitch2(3)", "'d'");
     67 shouldBe("testSwitch2(-1)", "'cd'");
     68 shouldBe("testSwitch2('x')", "'cd'");
     69 
     70 function testSwitch3(v) {
     71   var result = "";
     72   switch (v) {
     73      default:
     74         result += 'c';
     75      case 3:
     76         result += 'd';
     77      case 4:
     78         result += 'e';
     79         break;
     80   }
     81   return result;
     82 };
     83 
     84 shouldBe("testSwitch3(0)", "'cde'");
     85 shouldBe("testSwitch3(3)", "'de'");
     86 shouldBe("testSwitch3(4)", "'e'");
     87 
     88 function testSwitch4(v) {
     89   var result = "";
     90   switch (v) {
     91      case 0:
     92         result += 'a';
     93         result += 'b';
     94         break;
     95   }
     96   return result;
     97 };
     98 
     99 shouldBe("testSwitch4(0)", "'ab'");
    100