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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: test/mjsunit/harmony/string-raw.js
diff --git a/test/mjsunit/harmony/string-raw.js b/test/mjsunit/harmony/string-raw.js
new file mode 100644
index 0000000000000000000000000000000000000000..947086e2e9384bdb079f64d00c33679c92762e15
--- /dev/null
+++ b/test/mjsunit/harmony/string-raw.js
@@ -0,0 +1,111 @@
+// Copyright 2014 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-strings
+
+(function testStringRawArity() {
+ assertEquals(1, String.raw.length);
+})();
+
+
+(function testStringRawCallSiteToObject() {
+ assertThrows("String.raw()", TypeError);
+})();
+
+
+(function testStringRawCallSiteRawToObject() {
+ assertThrows("String.raw([])", TypeError);
+})();
+
+
+(function testStringRawUndefinedLength() {
+ var callSiteObj = [];
+ callSiteObj.raw = {};
+ assertEquals("", String.raw(callSiteObj));
+
+ callSiteObj.raw = { lengt: 0 };
+ assertEquals("", String.raw(callSiteObj));
+})();
+
+
+(function testStringRawZeroLength() {
+ var callSiteObj = [];
+ callSiteObj.raw = { length: 0 };
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+
+ callSiteObj.raw = [];
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+})();
+
+
+(function testStringRawNegativeLength() {
+ var callSiteObj = [];
+ callSiteObj.raw = { length: -85 };
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+
+ callSiteObj.raw = [];
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+})();
+
+
+(function testStringRawNaNLength() {
+ var callSiteObj = [];
+ callSiteObj.raw = { length: NaN };
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+
+ callSiteObj.raw = [];
+ assertEquals("", String.raw(callSiteObj));
+ assertEquals("", String.raw(callSiteObj, "a", "b", "c"));
+})();
+
+
+(function testStringRawBasic() {
+ var callSiteObj = [];
+ callSiteObj.raw = ["a"];
+ assertEquals("a", String.raw(callSiteObj));
+})();
+
+
+(function testStringRawNoSubst() {
+ var callSiteObj = [];
+ callSiteObj.raw = ["a", "b"];
+ assertEquals("ab", String.raw(callSiteObj));
+})();
+
+
+(function testStringRawSubst() {
+ var callSiteObj = [];
+ callSiteObj.raw = ["a", "b"];
+ assertEquals("a!b", String.raw(callSiteObj, "!"));
+
+ callSiteObj.raw = ["a", "b", "c"];
+ assertEquals("abc", String.raw(callSiteObj));
+
+ callSiteObj.raw = ["a", "b", "c"];
+ assertEquals("a!bc", String.raw(callSiteObj, "!"));
+
+ callSiteObj.raw = ["a", "b", "c"];
+ assertEquals("a!b?c", String.raw(callSiteObj, "!", "?"));
+
+ callSiteObj.raw = ["\n", "\r\n", "\r"];
+ assertEquals("\nx\r\ny\r", String.raw(callSiteObj, "x", "y"));
+
+ callSiteObj.raw = ["\n", "\r\n", "\r"];
+ assertEquals("\n\r\r\r\n\n\r", String.raw(callSiteObj, "\r\r", "\n"));
+})();
+
+
+(function testStringRawArrayLikeSubst() {
+ var callSiteObj = [];
+ callSiteObj.raw = {length: 2, '0':"a", '1':"b", '2':"c"};
+ assertEquals("axb", String.raw(callSiteObj, "x", "y"));
+
+ callSiteObj.raw = {length: 4, '0':"a", '1':"b", '2':"c"};
+ assertEquals("axbycundefined", String.raw(callSiteObj, "x", "y"));
+})();
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

Powered by Google App Engine
This is Rietveld 408576698