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); |