| Index: test/cctest/compiler/test-js-typed-lowering.cc
|
| diff --git a/test/cctest/compiler/test-js-typed-lowering.cc b/test/cctest/compiler/test-js-typed-lowering.cc
|
| index fb63583f88a6d60ac45d977a68919d5127f38fe0..861cf3932b67e395f3c9001133e2d84fe4bb1c43 100644
|
| --- a/test/cctest/compiler/test-js-typed-lowering.cc
|
| +++ b/test/cctest/compiler/test-js-typed-lowering.cc
|
| @@ -684,12 +684,14 @@ TEST(NumberComparison) {
|
|
|
| for (size_t i = 0; i < arraysize(kJSTypes); i++) {
|
| Type* t0 = kJSTypes[i];
|
| - if (t0->Is(Type::String())) continue; // skip Type::String
|
| + // Skip Type::String and Type::Receiver which might coerce into a string.
|
| + if (t0->Is(Type::String()) || t0->Is(Type::Receiver())) continue;
|
| Node* p0 = R.Parameter(t0, 0);
|
|
|
| for (size_t j = 0; j < arraysize(kJSTypes); j++) {
|
| Type* t1 = kJSTypes[j];
|
| - if (t1->Is(Type::String())) continue; // skip Type::String
|
| + // Skip Type::String and Type::Receiver which might coerce into a string.
|
| + if (t1->Is(Type::String()) || t0->Is(Type::Receiver())) continue;
|
| Node* p1 = R.Parameter(t1, 1);
|
|
|
| for (size_t k = 0; k < arraysize(ops); k += 2) {
|
| @@ -746,7 +748,7 @@ TEST(MixedComparison1) {
|
| TEST(ObjectComparison) {
|
| JSTypedLoweringTester R;
|
|
|
| - Node* p0 = R.Parameter(Type::Object(), 0);
|
| + Node* p0 = R.Parameter(Type::Number(), 0);
|
| Node* p1 = R.Parameter(Type::Object(), 1);
|
|
|
| Node* cmp = R.Binop(R.javascript.LessThan(), p0, p1);
|
| @@ -762,14 +764,13 @@ TEST(ObjectComparison) {
|
| Node* i0 = r->InputAt(0);
|
| Node* i1 = r->InputAt(1);
|
|
|
| - CHECK_NE(p0, i0);
|
| + CHECK_EQ(p0, i0);
|
| CHECK_NE(p1, i1);
|
| - CHECK_EQ(IrOpcode::kJSToNumber, i0->opcode());
|
| + CHECK_EQ(IrOpcode::kParameter, i0->opcode());
|
| CHECK_EQ(IrOpcode::kJSToNumber, i1->opcode());
|
|
|
| // Check effect chain is correct.
|
| - R.CheckEffectInput(R.start(), i0);
|
| - R.CheckEffectInput(i0, i1);
|
| + R.CheckEffectInput(R.start(), i1);
|
| R.CheckEffectInput(i1, effect_use);
|
| }
|
|
|
| @@ -1084,7 +1085,7 @@ TEST(OrderCompareEffects) {
|
| };
|
|
|
| for (size_t j = 0; j < arraysize(ops); j += 2) {
|
| - BinopEffectsTester B(ops[j], Type::Object(), Type::String());
|
| + BinopEffectsTester B(ops[j], Type::Boolean(), Type::String());
|
| CHECK_EQ(ops[j + 1]->opcode(), B.result->op()->opcode());
|
|
|
| Node* i0 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 0, true);
|
| @@ -1099,7 +1100,7 @@ TEST(OrderCompareEffects) {
|
| }
|
|
|
| for (size_t j = 0; j < arraysize(ops); j += 2) {
|
| - BinopEffectsTester B(ops[j], Type::Number(), Type::Object());
|
| + BinopEffectsTester B(ops[j], Type::Number(), Type::Boolean());
|
|
|
| Node* i0 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 0, true);
|
| Node* i1 = B.result->InputAt(1);
|
| @@ -1112,7 +1113,7 @@ TEST(OrderCompareEffects) {
|
| }
|
|
|
| for (size_t j = 0; j < arraysize(ops); j += 2) {
|
| - BinopEffectsTester B(ops[j], Type::Object(), Type::Number());
|
| + BinopEffectsTester B(ops[j], Type::Boolean(), Type::Number());
|
|
|
| Node* i0 = B.result->InputAt(0);
|
| Node* i1 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 1, true);
|
|
|