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
24description(
25"This page tests handling of malformed escape sequences."
26);
27
28var regexp;
29
30regexp = /\ug/gm;
31debug("\nTesting regexp: " + regexp);
32shouldBeTrue("regexp.test('ug')");
33shouldBe("regexp.lastIndex", "2");
34
35regexp = /\xg/gm;
36debug("\nTesting regexp: " + regexp);
37shouldBeTrue("regexp.test('xg')");
38shouldBe("regexp.lastIndex", "2");
39
40regexp = /\c_/gm;
41debug("\nTesting regexp: " + regexp);
42shouldBeTrue("regexp.test('\\\\c_')");
43shouldBe("regexp.lastIndex", "3");
44
45regexp = /[\B]/gm;
46debug("\nTesting regexp: " + regexp);
47shouldBeTrue("regexp.test('B')");
48shouldBe("regexp.lastIndex", "1");
49
50regexp = /[\b]/gm;
51debug("\nTesting regexp: " + regexp);
52shouldBeTrue("regexp.test('\\b')");
53shouldBe("regexp.lastIndex", "1");
54
55regexp = /\8/gm;
56debug("\nTesting regexp: " + regexp);
57shouldBeTrue("regexp.test('\\\\8')");
58shouldBe("regexp.lastIndex", "2");
59
60regexp = /^[\c]$/;
61debug("\nTesting regexp: " + regexp);
62shouldBeTrue("regexp.test('c')");
63
64regexp = /^[\c_]$/;
65debug("\nTesting regexp: " + regexp);
66shouldBeFalse("regexp.test('c')");
67
68regexp = /^[\c]]$/;
69debug("\nTesting regexp: " + regexp);
70shouldBeTrue("regexp.test('c]')");
71