| Index: test/cctest/test-strings.cc
|
| diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc
|
| index 0e30092dbbad90476188044a4821aa3945a8b684..aadb7d01beab0b9eaf50d091e9b31bb13029cd42 100644
|
| --- a/test/cctest/test-strings.cc
|
| +++ b/test/cctest/test-strings.cc
|
| @@ -347,6 +347,38 @@ TEST(Utf8Conversion) {
|
| }
|
|
|
|
|
| +TEST(StringConcatFlatten) {
|
| + InitializeVM();
|
| + v8::HandleScope handle_scope;
|
| +
|
| + const char* stringA = "0123456789";
|
| + const char* stringB = "ABCDEFGHIJ";
|
| +
|
| + v8::Local<v8::String> a = v8::String::New(stringA);
|
| + v8::Local<v8::String> b = v8::String::New(stringB);
|
| +
|
| + v8::Local<v8::String> cons = v8::String::Concat(a, b);
|
| +
|
| + i::Handle<i::String> str = v8::Utils::OpenHandle(*cons);
|
| + CHECK(!str->IsFlat());
|
| +
|
| + cons->Flatten();
|
| +
|
| + CHECK(str->IsFlat());
|
| +
|
| + char buffer[21];
|
| + cons->WriteUtf8(buffer);
|
| +
|
| + for (int i = 0; i < 10; i++) {
|
| + CHECK_EQ(stringA[i], buffer[i]);
|
| + }
|
| +
|
| + for (int i = 0; i < 10; i++) {
|
| + CHECK_EQ(stringB[i], buffer[i + 10]);
|
| + }
|
| +}
|
| +
|
| +
|
| TEST(ExternalShortStringAdd) {
|
| ZoneScope zone(DELETE_ON_EXIT);
|
|
|
|
|