Home | History | Annotate | Download | only in cctest

Lines Matching defs:string

103 class Resource: public v8::String::ExternalStringResource,
106 explicit Resource(Vector<const uc16> string): data_(string.start()) {
107 length_ = string.length();
118 class AsciiResource: public v8::String::ExternalAsciiStringResource,
121 explicit AsciiResource(Vector<const char> string): data_(string.start()) {
122 length_ = string.length();
133 static void InitializeBuildingBlocks(Handle<String>* building_blocks,
150 // Must truncate something for a slice string. Loop until
268 inline Handle<String> block(int offset);
269 inline Handle<String> block(uint32_t offset);
277 Handle<String> building_blocks_[kNumberOfBuildingBlocks];
278 String* empty_string_;
298 Handle<String> ConsStringGenerationData::block(uint32_t offset) {
303 Handle<String> ConsStringGenerationData::block(int offset) {
350 void AccumulateStats(Handle<String> cons_string, ConsStringStats* stats) {
355 // This string got flattened by gc.
366 String* string = op.Operate(cons_string, &offset, &type, &length);
367 CHECK(string != NULL);
369 ASSERT(!string->IsConsString());
372 stats->chars_ += string->length();
375 string = op.ContinueOperation(&type, &length);
376 if (string == NULL) return;
383 void VerifyConsString(Handle<String> root, ConsStringGenerationData* data) {
404 static Handle<String> ConstructRandomString(ConsStringGenerationData* data,
414 // Flat cons string terminate by definition.
423 // Generate left string.
424 Handle<String> left;
432 // Generate right string.
433 Handle<String> right;
452 // Build the cons string.
453 Handle<String> root = factory->NewConsString(left, right);
455 // Special work needed for flat string.
465 static Handle<String> ConstructLeft(
469 Handle<String> answer = factory->NewStringFromAscii(CStrVector(""));
472 Handle<String> block = data->block(i);
473 Handle<String> next = factory->NewConsString(answer, block);
483 static Handle<String> ConstructRight(
487 Handle<String> answer = factory->NewStringFromAscii(CStrVector(""));
490 Handle<String> block = data->block(i);
491 Handle<String> next = factory->NewConsString(block, answer);
501 static Handle<String> ConstructBalancedHelper(
516 Handle<String> part1 =
518 Handle<String> part2 =
526 static Handle<String> ConstructBalanced(
528 Handle<String> string = ConstructBalancedHelper(data, 0, depth);
531 return string;
538 static void Traverse(Handle<String> s1, Handle<String> s2) {
555 static void TraverseFirst(Handle<String> s1, Handle<String> s2, int chars) {
576 Handle<String> flat = ConstructBalanced(&data);
578 Handle<String> left_asymmetric = ConstructLeft(&data, DEEP_DEPTH);
579 Handle<String> right_asymmetric = ConstructRight(&data, DEEP_DEPTH);
580 Handle<String> symmetric = ConstructBalanced(&data);
588 Handle<String> left_deep_asymmetric =
590 Handle<String> right_deep_asymmetric =
615 String* flat_string, String* cons_string) {
616 // Do not want to test ConString traversal on flat string.
621 // Iterate start search in multiple places in the string.
670 // Build flat version of cons string.
671 Handle<String> flat_string = build(i, &data);
674 // Flatten string.
676 // Build unflattened version of cons string to test.
677 Handle<String> cons_string = build(i, &data);
682 // Full verify of cons string.
686 String* flat_string_ptr =
698 static Handle<String> BuildEdgeCaseConsString(
726 Handle<String> string =
728 FlattenString(string);
729 return string;
740 Handle<String> left =
756 Handle<String> left =
759 Handle<String> right =
766 return Handle<String>();
844 static Handle<String> BuildRandomConsString(
870 Handle<String> string =
872 Handle<String> foo_string = factory->NewStringFromAscii(CStrVector("foo"));
874 string = factory->NewConsString(string, foo_string);
876 Handle<String> flat_string = factory->NewConsString(string, foo_string);
880 TraverseFirst(flat_string, string, DEEP_ASCII_DEPTH);
890 // A simple ascii string
892 int len = v8::String::NewFromUtf8(CcTest::isolate(), ascii_string,
893 v8::String::kNormalString,
896 // A mixed ascii and non-ascii string
909 v8::Handle<v8::String> mixed = v8::String::NewFromTwoByte(
910 CcTest::isolate(), mixed_string, v8::String::kNormalString, 5);
912 // Try encoding the string with all capacities
957 // string data.
960 v8::Local<v8::String> ascii_external_string =
961 v8::String::NewExternal(CcTest::isolate(), ascii_resource);
969 // string data.
971 v8::Local<v8::String> non_ascii_external_string =
972 v8::String::NewExternal(CcTest::isolate(), resource);
1025 // Create a sliced string from a one-byte string. The latter is turned
1026 // into a two-byte external string. Check that JSON.stringify works.
1028 v8::Handle<v8::String> underlying =
1031 v8::Handle<v8::String> slice =
1047 *v8::String::Utf8Value(CompileRun("JSON.stringify(slice)")));
1088 v8::String::NewFromUtf8(CcTest::isolate(), line))->Run();
1104 Handle<String> string =
1106 Handle<String> parent = factory->NewConsString(string, string);
1109 Handle<String> slice = factory->NewSubString(parent, 1, 25);
1110 // After slicing, the original string becomes a flat cons.
1122 class AsciiVectorResource : public v8::String::ExternalAsciiStringResource {
1141 Handle<String> string = factory->NewExternalStringFromAscii(&resource);
1142 CHECK(string->IsExternalString());
1143 Handle<String> slice = factory->NewSubString(string, 1, 25);
1145 CHECK(string->IsExternalString());
1146 CHECK_EQ(SlicedString::cast(*slice)->parent(), *string);
1153 // This tests whether a slice that contains the entire parent string
1154 // actually creates a new string (it should not).
1160 Handle<String> string;
1169 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1170 CHECK(!string->IsSlicedString());
1172 string = factory->NewSubString(string, 0, 26);
1173 CHECK(!string->IsSlicedString());
1176 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1177 CHECK(string->IsSlicedString());
1178 CHECK_EQ("bcdefghijklmnopqrstuvwxy", *(string->ToCString()));
1183 // This tests whether a slice that contains the entire parent string
1184 // actually creates a new string (it should not).
1189 Handle<String> string;
1197 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1198 CHECK(string->IsSlicedString());
1199 CHECK(SlicedString::cast(*string)->parent()->IsSeqString());
1200 CHECK_EQ("bcdefghijklmnopqrstuvwxy", *(string->ToCString()));
1204 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1205 CHECK(string->IsSlicedString());
1206 CHECK(SlicedString::cast(*string)->parent()->IsSeqString());
1207 CHECK_EQ("cdefghijklmnopqrstuvwx", *(string->ToCString()));
1219 // String s is made of 2^17 = 131072 'c' characters and a is an array
1220 // starting with 'bad', followed by 2^14 times the string s. That means the
1235 v8::String::NewFromUtf8(CcTest::isolate(), join_causing_out_of_memory));
1257 Handle<String> string;
1267 // String arguments.
1271 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1272 CHECK_EQ("cde", *(string->ToCString()));
1282 // String arguments.
1286 string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1287 CHECK_EQ("cdefghijklmnopq", *(string->ToCString()));
1290 // would have been valid for the underlying string.
1297 // Result string has the length 2^32, causing a 32-bit integer overflow.
1318 "var subject = 'ascii~only~string~'; "
1322 Handle<String> string = v8::Utils::OpenHandle(v8::String::Cast(*result));
1323 CHECK(string->IsSeqTwoByteString());
1325 v8::Local<v8::String> expected = v8_str("ascii\x80only\x80string\x80");
1331 CHECK(String::IsAscii(static_cast<char*>(NULL), 0));
1332 CHECK(String::IsOneByte(static_cast<uc16*>(NULL), 0));