Chromium Code Reviews| Index: test/mjsunit/string-slices.js |
| diff --git a/test/mjsunit/string-slices.js b/test/mjsunit/string-slices.js |
| index 7c40229c75def951ac4379af31bf2754ae0bd5c3..0d205cc182d1ea396f530f2662cc7924c8198600 100755 |
| --- a/test/mjsunit/string-slices.js |
| +++ b/test/mjsunit/string-slices.js |
| @@ -25,7 +25,7 @@ |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| -// Flags: --string-slices --expose-externalize-string |
| +// Flags: --string-slices --expose-externalize-string --allow-natives-syntax |
|
Lasse Reichstein
2011/11/09 12:48:11
If string-slices is on by default now, we should r
|
| var s = 'abcdefghijklmn'; |
| assertEquals(s, s.substr()); |
| @@ -100,14 +100,7 @@ for (var i = 5; i < 25; i++) { |
| // Keep creating strings to to force allocation failure on substring creation. |
| var x = "0123456789ABCDEF"; |
| -x += x; // 2^5 |
| -x += x; |
| -x += x; |
| -x += x; |
| -x += x; |
| -x += x; // 2^10 |
| -x += x; |
| -x += x; |
| +for (var i = 0; i < 8; i++) x += x; |
| var xl = x.length; |
| var cache = []; |
| for (var i = 0; i < 1000; i++) { |
| @@ -119,14 +112,7 @@ for (var i = 0; i < 1000; i++) { |
| // Same with two-byte strings |
| var x = "\u2028123456789ABCDEF"; |
| -x += x; // 2^5 |
| -x += x; |
| -x += x; |
| -x += x; |
| -x += x; |
| -x += x; // 2^10 |
| -x += x; |
| -x += x; |
| +for (var i = 0; i < 8; i++) x += x; |
| var xl = x.length; |
| var cache = []; |
| for (var i = 0; i < 1000; i++) { |
| @@ -202,3 +188,21 @@ assertEquals(a.slice(1,-1), b); |
| assertTrue(/3456789qwe/.test(a)); |
| assertEquals(5, a.indexOf("678")); |
| assertEquals("12345", a.split("6")[0]); |
| + |
| +// Create a slice with an external string as parent string. |
| +var c = a.slice(1,-1); |
| + |
| +function test_crankshaft() { |
| + for (var i = 0; i < 20; i++) { |
| + assertEquals(b.charAt(i), a.charAt(i + 1)); |
| + assertEquals(b.charAt(i), c.charAt(i)); |
| + assertEquals(b.charAt(4), c.charAt(4)); |
| + assertTrue(/3456789qwe/.test(c)); |
| + assertEquals(4, c.indexOf("678")); |
| + assertEquals("2345", c.split("6")[0]); |
| + } |
| +} |
| + |
| +test_crankshaft(); |
| +%OptimizeFunctionOnNextCall(test_crankshaft); |
| +test_crankshaft(); |