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

Unified Diff: test/webkit/fast/js/numeric-escapes-in-string-literals.js

Issue 20280003: Migrate more tests from blink repository. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 months 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/webkit/fast/js/numeric-escapes-in-string-literals.js
diff --git a/test/webkit/dfg-put-by-id-prototype-check.js b/test/webkit/fast/js/numeric-escapes-in-string-literals.js
similarity index 54%
copy from test/webkit/dfg-put-by-id-prototype-check.js
copy to test/webkit/fast/js/numeric-escapes-in-string-literals.js
index a8b61374ef5af987f1741f22c72db35cfa69c872..8ecd70b7f9e218977619f5453f12b9236f3c602c 100644
--- a/test/webkit/dfg-put-by-id-prototype-check.js
+++ b/test/webkit/fast/js/numeric-escapes-in-string-literals.js
@@ -22,31 +22,48 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
description(
-"Tests that the DFG CFA is not overzealous in removing prototype structure checks for put_by_id transitions."
+"Test numeric escapes in string literals - https://bugs.webkit.org/show_bug.cgi?id=51724"
);
-function foo(a, b)
+function test(_stringLiteral, _nonStrictResult, _strictResult)
{
- a.f = b;
+ stringLiteral = '"' + _stringLiteral + '"';
+ nonStrictResult = _nonStrictResult;
+ shouldBe("eval(stringLiteral)", "nonStrictResult");
+
+ stringLiteral = '"use strict"; ' + stringLiteral;
+ if (_strictResult) {
+ strictResult = _strictResult;
+ shouldBe("eval(stringLiteral)", "strictResult");
+ } else
+ shouldThrow("eval(stringLiteral)");
}
-var Empty = "";
+// Tests for single digit octal and decimal escapes.
+// In non-strict mode 0-7 are octal escapes, 8-9 are NonEscapeCharacters.
+// In strict mode only "\0" is permitted.
+test("\\0", "\x00", "\x00");
+test("\\1", "\x01");
+test("\\7", "\x07");
+test("\\8", "8");
+test("\\9", "9");
-function Foo() {
-}
+// Tests for multi-digit octal values outside strict mode;
+// Octal literals may be 1-3 digits long. In strict more all multi-digit sequences are illegal.
+test("\\00", "\x00");
+test("\\000", "\x00");
+test("\\0000", "\x000");
-var stuff;
+test("\\01", "\x01");
+test("\\001", "\x01");
+test("\\0001", "\x001");
-for (var i = 0; i < 1000; ++i) {
- if (i >= 900)
- Foo.prototype.__defineSetter__("f", function(value) { stuff = value; });
+test("\\10", "\x08");
+test("\\100", "\x40");
+test("\\1000", "\x400");
- var o = new Foo();
- eval(Empty + "foo(o, i)");
- if (i >= 900) {
- shouldBe("stuff", "" + i);
- shouldBe("o.f", "" + (void 0));
- } else
- shouldBe("o.f", "" + i);
-}
+test("\\19", "\x019");
+test("\\109", "\x089");
+test("\\1009", "\x409");
+test("\\99", "99");

Powered by Google App Engine
This is Rietveld 408576698