| Index: test/cctest/test-strings.cc
|
| ===================================================================
|
| --- test/cctest/test-strings.cc (revision 3397)
|
| +++ test/cctest/test-strings.cc (working copy)
|
| @@ -376,7 +376,7 @@
|
| ascii_external_strings->Set(v8::Integer::New(i), ascii_external_string);
|
| uc16* non_ascii = Zone::NewArray<uc16>(i + 1);
|
| for (int j = 0; j < i; j++) {
|
| - non_ascii[j] = 1234;
|
| + non_ascii[j] = 0x1234;
|
| }
|
| // Terminating '\0' is left out on purpose. It is not required for external
|
| // string data.
|
| @@ -389,20 +389,44 @@
|
|
|
| // Add the arrays with the short external strings in the global object.
|
| v8::Handle<v8::Object> global = env->Global();
|
| - global->Set(v8_str("ascii"), ascii_external_strings);
|
| - global->Set(v8_str("non_ascii"), non_ascii_external_strings);
|
| + global->Set(v8_str("external_ascii"), ascii_external_strings);
|
| + global->Set(v8_str("external_non_ascii"), non_ascii_external_strings);
|
| + global->Set(v8_str("max_length"), v8::Integer::New(kMaxLength));
|
|
|
| // Add short external ascii and non-ascii strings checking the result.
|
| static const char* source =
|
| "function test() {"
|
| - " for (var i = 0; i <= 20; i++) {"
|
| + " var ascii_chars = 'aaaaaaaaaaaaaaaaaaaa';"
|
| + " var non_ascii_chars = '\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234\u1234';" //NOLINT
|
| + " if (ascii_chars.length != max_length) return 1;"
|
| + " if (non_ascii_chars.length != max_length) return 2;"
|
| + " var ascii = Array(max_length + 1);"
|
| + " var non_ascii = Array(max_length + 1);"
|
| + " for (var i = 0; i <= max_length; i++) {"
|
| + " ascii[i] = ascii_chars.substring(0, i);"
|
| + " non_ascii[i] = non_ascii_chars.substring(0, i);"
|
| + " };"
|
| + " for (var i = 0; i <= max_length; i++) {"
|
| + " if (ascii[i] != external_ascii[i]) return 3;"
|
| + " if (non_ascii[i] != external_non_ascii[i]) return 4;"
|
| " for (var j = 0; j < i; j++) {"
|
| - " if (non_ascii[i] != (non_ascii[j] + non_ascii[i - j])) return false;"
|
| - " if (ascii[i] != (ascii[j] + ascii[i - j])) return false;"
|
| + " if (external_ascii[i] !="
|
| + " (external_ascii[j] + external_ascii[i - j])) return 5;"
|
| + " if (external_non_ascii[i] !="
|
| + " (external_non_ascii[j] + external_non_ascii[i - j])) return 6;"
|
| + " if (non_ascii[i] != (non_ascii[j] + non_ascii[i - j])) return 7;"
|
| + " if (ascii[i] != (ascii[j] + ascii[i - j])) return 8;"
|
| + " if (ascii[i] != (external_ascii[j] + ascii[i - j])) return 9;"
|
| + " if (ascii[i] != (ascii[j] + external_ascii[i - j])) return 10;"
|
| + " if (non_ascii[i] !="
|
| + " (external_non_ascii[j] + non_ascii[i - j])) return 11;"
|
| + " if (non_ascii[i] !="
|
| + " (non_ascii[j] + external_non_ascii[i - j])) return 12;"
|
| " }"
|
| " }"
|
| - " return true;"
|
| + " return 0;"
|
| "};"
|
| "test()";
|
| - CHECK(v8::Script::Compile(v8::String::New(source))->Run()->BooleanValue());
|
| + CHECK_EQ(0,
|
| + v8::Script::Compile(v8::String::New(source))->Run()->Int32Value());
|
| }
|
|
|