1// Copyright 2008 the V8 project authors. All rights reserved. 2// Redistribution and use in source and binary forms, with or without 3// modification, are permitted provided that the following conditions are 4// met: 5// 6// * Redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer. 8// * Redistributions in binary form must reproduce the above 9// copyright notice, this list of conditions and the following 10// disclaimer in the documentation and/or other materials provided 11// with the distribution. 12// * Neither the name of Google Inc. nor the names of its 13// contributors may be used to endorse or promote products derived 14// from this software without specific prior written permission. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 28// Check that character escapes are understood as one char 29var escapes = ["\b", "\t", "\n", "\v", "\f", "\r", "\"", "\'", "\\", "\x4a", "\u005f"]; 30for (var i = 0; i < escapes.length; i++) { 31 var str = escapes[i]; 32 assertEquals(1, str.length); 33 assertEquals(str, str.charAt(0)); 34} 35 36function code(str) { 37 return str.charCodeAt(0); 38} 39 40// Do the single escape chars have the right value? 41assertEquals(0x08, code("\b")); 42assertEquals(0x09, code("\t")); 43assertEquals(0x0A, code("\n")); 44assertEquals(0x0B, code("\v")); 45assertEquals(0x0C, code("\f")); 46assertEquals(0x0D, code("\r")); 47assertEquals(0x22, code("\"")); 48assertEquals(0x27, code("\'")); 49assertEquals(0x5c, code("\\")); 50 51// Do the hex and unicode escape chars have the right value? 52assertEquals(0x4a, code("\x4a")); 53assertEquals(0x5f, code("\u005f")); 54