Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Side by Side Diff: test/mjsunit/harmony/string-raw.js

Issue 731573004: Implement ES6 String.raw behind --harmony-templates (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: oops Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698