Chromium Code Reviews| 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); |