| Index: test/mjsunit/string-externalize.js
|
| diff --git a/test/mjsunit/string-externalize.js b/test/mjsunit/string-externalize.js
|
| index da897869c557703db7c923784702f1aff4763334..0a2e0efc4ffec03f15f17d8976287134aa779c0f 100644
|
| --- a/test/mjsunit/string-externalize.js
|
| +++ b/test/mjsunit/string-externalize.js
|
| @@ -39,7 +39,7 @@ function test() {
|
| assertTrue(isAsciiString(str));
|
|
|
| var twoByteExternalWithAsciiData =
|
| - "AA" + (function() { return "A"; })();
|
| + "AAAA" + (function() { return "A"; })();
|
| externalizeString(twoByteExternalWithAsciiData, true /* force two-byte */);
|
| assertFalse(isAsciiString(twoByteExternalWithAsciiData));
|
|
|
| @@ -87,6 +87,30 @@ function test() {
|
|
|
| // Flattened string should still be two-byte.
|
| assertFalse(isAsciiString(str2));
|
| +
|
| + // Test buffered external strings.
|
| + var charat_str = new Array(5);
|
| + charat_str[0] = "0123456789ABCDEF0123456789ABCDEF\
|
| +0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\
|
| +0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\
|
| +0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\
|
| +0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
|
| + charat_str[1] = "0123456789ABCDEF";
|
| + for (var i = 0; i < 6; i++) charat_str[1] += charat_str[1];
|
| + try { // String can only be externalized once
|
| + externalizeString(charat_str[0], false);
|
| + externalizeString(charat_str[1], true);
|
| + } catch (ex) { }
|
| + charat_str[2] = charat_str[0].slice(0, -1);
|
| + charat_str[3] = charat_str[1].slice(0, -1);
|
| + charat_str[4] = charat_str[0] + charat_str[0];
|
| +
|
| + for (var i = 0; i < 5; i++) {
|
| + assertEquals('B', charat_str[i].charAt(6*16 + 11));
|
| + assertEquals('C', charat_str[i].charAt(6*16 + 12));
|
| + assertEquals('A', charat_str[i].charAt(3*16 + 10));
|
| + assertEquals('B', charat_str[i].charAt(3*16 + 11));
|
| + }
|
| }
|
|
|
| // Run the test many times to ensure IC-s don't break things.
|
|
|