Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: test/cctest/test-code-stub-assembler.cc

Issue 2625073002: Revert of Internalize strings in-place (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/x87/macro-assembler-x87.cc ('k') | test/cctest/test-strings.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-code-stub-assembler.cc
diff --git a/test/cctest/test-code-stub-assembler.cc b/test/cctest/test-code-stub-assembler.cc
index d3b15310769df8855cf06184853c3a867c4199af..007121ca7ae67fad1cbd0bf68a902ca823641eb4 100644
--- a/test/cctest/test-code-stub-assembler.cc
+++ b/test/cctest/test-code-stub-assembler.cc
@@ -181,6 +181,47 @@
}
}
+TEST(FlattenString) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ const int kNumParams = 1;
+ CodeAssemblerTester data(isolate, kNumParams);
+ CodeStubAssembler m(data.state());
+ m.Return(m.FlattenString(m.Parameter(0)));
+
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code, kNumParams);
+
+ Handle<FixedArray> test_cases(isolate->factory()->NewFixedArray(4));
+ Handle<String> expected(
+ isolate->factory()->InternalizeUtf8String("hello, world!"));
+ test_cases->set(0, *expected);
+
+ Handle<String> string(
+ isolate->factory()->InternalizeUtf8String("filler hello, world! filler"));
+ Handle<String> sub_string(
+ isolate->factory()->NewProperSubString(string, 7, 20));
+ test_cases->set(1, *sub_string);
+
+ Handle<String> hello(isolate->factory()->InternalizeUtf8String("hello,"));
+ Handle<String> world(isolate->factory()->InternalizeUtf8String(" world!"));
+ Handle<String> cons_str(
+ isolate->factory()->NewConsString(hello, world).ToHandleChecked());
+ test_cases->set(2, *cons_str);
+
+ Handle<String> empty(isolate->factory()->InternalizeUtf8String(""));
+ Handle<String> fake_cons_str(
+ isolate->factory()->NewConsString(expected, empty).ToHandleChecked());
+ test_cases->set(3, *fake_cons_str);
+
+ for (int i = 0; i < 4; ++i) {
+ Handle<String> test = handle(String::cast(test_cases->get(i)));
+ Handle<Object> result = ft.Call(test).ToHandleChecked();
+ CHECK(result->IsString());
+ CHECK(Handle<String>::cast(result)->IsFlat());
+ CHECK(String::Equals(Handle<String>::cast(result), expected));
+ }
+}
+
TEST(TryToName) {
typedef CodeAssemblerLabel Label;
typedef CodeAssemblerVariable Variable;
@@ -198,26 +239,22 @@
Label passed(&m), failed(&m);
Label if_keyisindex(&m), if_keyisunique(&m), if_bailout(&m);
- {
- Variable var_index(&m, MachineType::PointerRepresentation());
- Variable var_unique(&m, MachineRepresentation::kTagged);
-
- m.TryToName(key, &if_keyisindex, &var_index, &if_keyisunique, &var_unique,
- &if_bailout);
-
- m.Bind(&if_keyisindex);
- m.GotoUnless(m.WordEqual(expected_result,
- m.SmiConstant(Smi::FromInt(kKeyIsIndex))),
- &failed);
- m.Branch(m.WordEqual(m.SmiUntag(expected_arg), var_index.value()),
- &passed, &failed);
-
- m.Bind(&if_keyisunique);
- m.GotoUnless(m.WordEqual(expected_result,
- m.SmiConstant(Smi::FromInt(kKeyIsUnique))),
- &failed);
- m.Branch(m.WordEqual(expected_arg, var_unique.value()), &passed, &failed);
- }
+ Variable var_index(&m, MachineType::PointerRepresentation());
+
+ m.TryToName(key, &if_keyisindex, &var_index, &if_keyisunique, &if_bailout);
+
+ m.Bind(&if_keyisindex);
+ m.GotoUnless(
+ m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kKeyIsIndex))),
+ &failed);
+ m.Branch(m.WordEqual(m.SmiUntag(expected_arg), var_index.value()), &passed,
+ &failed);
+
+ m.Bind(&if_keyisunique);
+ m.GotoUnless(
+ m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kKeyIsUnique))),
+ &failed);
+ m.Branch(m.WordEqual(expected_arg, key), &passed, &failed);
m.Bind(&if_bailout);
m.Branch(
@@ -312,23 +349,6 @@
// TryToName(<non-internalized string>) => bailout.
Handle<Object> key = isolate->factory()->NewStringFromAsciiChecked("test");
ft.CheckTrue(key, expect_bailout);
- }
-
- {
- // TryToName(<thin string>) => internalized version.
- Handle<String> s = isolate->factory()->NewStringFromAsciiChecked("foo");
- Handle<String> internalized = isolate->factory()->InternalizeString(s);
- ft.CheckTrue(s, expect_unique, internalized);
- }
-
- {
- // TryToName(<thin two-byte string>) => internalized version.
- uc16 array1[] = {2001, 2002, 2003};
- Vector<const uc16> str1(array1);
- Handle<String> s =
- isolate->factory()->NewStringFromTwoByte(str1).ToHandleChecked();
- Handle<String> internalized = isolate->factory()->InternalizeString(s);
- ft.CheckTrue(s, expect_unique, internalized);
}
}
« no previous file with comments | « src/x87/macro-assembler-x87.cc ('k') | test/cctest/test-strings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698