Chromium Code Reviews| 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 597bdfe000ba0d2729ca3a41f4a04a23c9be2f0f..f0d36960e580a44c5a1647079c5ac1835c7a4290 100644 |
| --- a/test/cctest/test-code-stub-assembler.cc |
| +++ b/test/cctest/test-code-stub-assembler.cc |
| @@ -132,7 +132,7 @@ TEST(TryToName) { |
| Label passed(&m), failed(&m); |
| Label if_keyisindex(&m), if_keyisunique(&m), if_bailout(&m); |
| - Variable var_index(&m, MachineRepresentation::kWord32); |
| + Variable var_index(&m, MachineType::PointerRepresentation()); |
| m.TryToName(key, &if_keyisindex, &var_index, &if_keyisunique, &if_bailout); |
| @@ -140,8 +140,8 @@ TEST(TryToName) { |
| m.GotoUnless( |
| m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kKeyIsIndex))), |
| &failed); |
| - m.Branch(m.Word32Equal(m.SmiToWord32(expected_arg), var_index.value()), |
| - &passed, &failed); |
| + m.Branch(m.WordEqual(m.SmiUntag(expected_arg), var_index.value()), &passed, |
| + &failed); |
| m.Bind(&if_keyisunique); |
| m.GotoUnless( |
| @@ -181,9 +181,17 @@ TEST(TryToName) { |
| } |
| { |
| - // TryToName(<negative smi>) => bailout. |
| + // TryToName(<negative smi>) => if_keyisindex: smi value. |
| + // A subsequent bounds check needs to take care of this case. |
| Handle<Object> key(Smi::FromInt(-1), isolate); |
| - ft.CheckTrue(key, expect_bailout); |
| + ft.CheckTrue(key, expect_index, key); |
| + } |
| + |
| + { |
| + // TryToName(<heap number with int value>) => if_keyisindex: number. |
| + Handle<Object> key(isolate->factory()->NewHeapNumber(153)); |
| + Handle<Object> index(Smi::FromInt(153), isolate); |
| + ft.CheckTrue(key, expect_index, index); |
| } |
| { |
| @@ -206,6 +214,17 @@ TEST(TryToName) { |
| } |
| { |
| + // TryToName(<non-internalized number string>) => if_keyisindex: number. |
| + Handle<String> key = isolate->factory()->NewStringFromAsciiChecked("153"); |
| + uint32_t dummy; |
| + key->AsArrayIndex(&dummy); |
|
Igor Sheludko
2016/09/01 14:31:31
CHECK(...)?
Jakob Kummerow
2016/09/05 13:15:54
Done.
|
| + DCHECK(key->HasHashCode()); |
|
Igor Sheludko
2016/09/01 14:31:31
DCHECK -> CHECK
Jakob Kummerow
2016/09/05 13:15:54
Done. (I don't see the necessity, as that's not th
|
| + DCHECK(!key->IsInternalizedString()); |
|
Igor Sheludko
2016/09/01 14:31:31
Same here.
Jakob Kummerow
2016/09/05 13:15:54
Done.
|
| + Handle<Object> index(Smi::FromInt(153), isolate); |
| + ft.CheckTrue(key, expect_index, index); |
| + } |
| + |
| + { |
| // TryToName(<non-internalized string>) => bailout. |
| Handle<Object> key = isolate->factory()->NewStringFromAsciiChecked("test"); |
| ft.CheckTrue(key, expect_bailout); |