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