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

Unified Diff: test/mjsunit/regress/regress-seqstrsetchar-ex1.js

Issue 14895019: Fix code gen bug on arm and mips; SeqStringSetChar overwrites a register; Add better default PrintD… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Turn late dead code elimination back on. Created 7 years, 7 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/mjsunit/regress/regress-seqstrsetchar-ex1.js
diff --git a/test/mjsunit/regress/regress-grow-store-smi-check.js b/test/mjsunit/regress/regress-seqstrsetchar-ex1.js
similarity index 66%
copy from test/mjsunit/regress/regress-grow-store-smi-check.js
copy to test/mjsunit/regress/regress-seqstrsetchar-ex1.js
index 381141d52317c22cf19547a3626280fa2cb1ba9b..5799a3b8b1704ea947eb8359010130ea0c713fac 100644
--- a/test/mjsunit/regress/regress-grow-store-smi-check.js
+++ b/test/mjsunit/regress/regress-seqstrsetchar-ex1.js
@@ -27,27 +27,33 @@
// Flags: --allow-natives-syntax
-// The below test function was generated from part of a WebKit layout
-// test library setup routine: fast/canvas/webgl/resources/pnglib.js
+// stubbed version of ToNumber
+function ToNumber(x) {
+ return 311;
Jakob Kummerow 2013/05/16 13:18:57 nit: indentation
titzer 2013/05/16 14:28:44 Done.
+}
-function test(crc32) {
- for (var i = 0; i < 256; i++) {
- var c = i;
- for (var j = 0; j < 8; j++) {
- if (c & 1) {
- c = -306674912 ^ ((c >> 1) & 0x7fffffff);
- } else {
- c = (c >> 1) & 0x7fffffff;
- }
- }
- crc32[i] = c;
+// Reduced version of String.fromCharCode;
+// does not actually do the same calculation but exhibits untagging bug
Jakob Kummerow 2013/05/16 13:18:57 nit: trailing full stop please
+function StringFromCharCode(code) {
+ var n = %_ArgumentsLength();
+ var one_byte = %NewString(n, true);
+ var i;
+ for (i = 0; i < n; i++) {
+ var code = %_Arguments(i);
+ if (!%_IsSmi(code)) code = ToNumber(code) & 0xffff;
+ if (code > 0xff) break;
}
-}
-var a = [0.5];
-for (var i = 0; i < 256; ++i) a[i] = i;
+ var two_byte = %NewString(n - i, false);
+ for (var j = 0; i < n; i++, j++) {
+ var code = %_Arguments(i);
+ %_TwoByteSeqStringSetChar(two_byte, j, code);
+ }
+ return one_byte + two_byte;
+}
-test([0.5]);
-test(a);
-%OptimizeFunctionOnNextCall(test);
-test(a);
+StringFromCharCode(0xFFF, 0xFFF);
+StringFromCharCode(0x7C, 0x7C);
+%OptimizeFunctionOnNextCall(StringFromCharCode)
+StringFromCharCode(0x7C, 0x7C);
+StringFromCharCode(0xFFF, 0xFFF);

Powered by Google App Engine
This is Rietveld 408576698