OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 the V8 project authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Flags: --harmony-strings | |
6 | |
7 (function testStringRawArity() { | |
8 assertEquals(1, String.raw.length); | |
9 })(); | |
10 | |
11 | |
12 (function testStringRawCallSiteToObject() { | |
13 assertThrows("String.raw()", TypeError); | |
14 })(); | |
15 | |
16 | |
17 (function testStringRawCallSiteRawToObject() { | |
18 assertThrows("String.raw([])", TypeError); | |
19 })(); | |
20 | |
21 | |
22 (function testStringRawUndefinedLength() { | |
23 var callSiteObj = []; | |
24 callSiteObj.raw = {}; | |
25 assertEquals("", String.raw(callSiteObj)); | |
26 | |
27 callSiteObj.raw = { lengt: 0 }; | |
28 assertEquals("", String.raw(callSiteObj)); | |
29 })(); | |
30 | |
31 | |
32 (function testStringRawZeroLength() { | |
33 var callSiteObj = []; | |
34 callSiteObj.raw = { length: 0 }; | |
35 assertEquals("", String.raw(callSiteObj)); | |
36 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
37 | |
38 callSiteObj.raw = []; | |
39 assertEquals("", String.raw(callSiteObj)); | |
40 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
41 })(); | |
42 | |
43 | |
44 (function testStringRawNegativeLength() { | |
45 var callSiteObj = []; | |
46 callSiteObj.raw = { length: -85 }; | |
47 assertEquals("", String.raw(callSiteObj)); | |
48 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
49 | |
50 callSiteObj.raw = []; | |
51 assertEquals("", String.raw(callSiteObj)); | |
52 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
53 })(); | |
54 | |
55 | |
56 (function testStringRawNaNLength() { | |
57 var callSiteObj = []; | |
58 callSiteObj.raw = { length: NaN }; | |
59 assertEquals("", String.raw(callSiteObj)); | |
60 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
61 | |
62 callSiteObj.raw = []; | |
63 assertEquals("", String.raw(callSiteObj)); | |
64 assertEquals("", String.raw(callSiteObj, "a", "b", "c")); | |
65 })(); | |
66 | |
67 | |
68 (function testStringRawBasic() { | |
69 var callSiteObj = []; | |
70 callSiteObj.raw = ["a"]; | |
71 assertEquals("a", String.raw(callSiteObj)); | |
72 })(); | |
73 | |
74 | |
75 (function testStringRawNoSubst() { | |
76 var callSiteObj = []; | |
77 callSiteObj.raw = ["a", "b"]; | |
78 assertEquals("ab", String.raw(callSiteObj)); | |
79 })(); | |
80 | |
81 | |
82 (function testStringRawSubst() { | |
83 var callSiteObj = []; | |
84 callSiteObj.raw = ["a", "b"]; | |
85 assertEquals("a!b", String.raw(callSiteObj, "!")); | |
86 | |
87 callSiteObj.raw = ["a", "b", "c"]; | |
88 assertEquals("abc", String.raw(callSiteObj)); | |
89 | |
90 callSiteObj.raw = ["a", "b", "c"]; | |
91 assertEquals("a!bc", String.raw(callSiteObj, "!")); | |
92 | |
93 callSiteObj.raw = ["a", "b", "c"]; | |
94 assertEquals("a!b?c", String.raw(callSiteObj, "!", "?")); | |
95 | |
96 callSiteObj.raw = ["\n", "\r\n", "\r"]; | |
97 assertEquals("\nx\r\ny\r", String.raw(callSiteObj, "x", "y")); | |
98 | |
99 callSiteObj.raw = ["\n", "\r\n", "\r"]; | |
100 assertEquals("\n\r\r\r\n\n\r", String.raw(callSiteObj, "\r\r", "\n")); | |
101 })(); | |
102 | |
103 | |
104 (function testStringRawArrayLikeSubst() { | |
105 var callSiteObj = []; | |
106 callSiteObj.raw = {length: 2, '0':"a", '1':"b", '2':"c"}; | |
107 assertEquals("axb", String.raw(callSiteObj, "x", "y")); | |
108 | |
109 callSiteObj.raw = {length: 4, '0':"a", '1':"b", '2':"c"}; | |
110 assertEquals("axbycundefined", String.raw(callSiteObj, "x", "y")); | |
111 })(); | |
arv (Not doing code reviews)
2014/11/14 22:54:25
You know I was going to ask for this...
Can you a
caitp (gmail)
2014/11/14 23:29:58
Great ideas =) I'll add these shortly.
arv (Not doing code reviews)
2014/11/14 23:42:18
Also some toString objects (with and without excep
| |
OLD | NEW |