Index: test/unittests/compiler/js-intrinsic-lowering-unittest.cc |
diff --git a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc |
index 4c99654a6878d4ed56e84495da7dd026ffe9d8e8..92be4e43e0b129c3afaf713407004cc969baf1e8 100644 |
--- a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc |
+++ b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc |
@@ -174,6 +174,37 @@ TEST_F(JSIntrinsicLoweringTest, InlineIsArray) { |
// ----------------------------------------------------------------------------- |
+// %_IsDate |
+ |
+ |
+TEST_F(JSIntrinsicLoweringTest, InlineIsDate) { |
+ Node* const input = Parameter(0); |
+ Node* const context = Parameter(1); |
+ Node* const effect = graph()->start(); |
+ Node* const control = graph()->start(); |
+ Reduction const r = Reduce( |
+ graph()->NewNode(javascript()->CallRuntime(Runtime::kInlineIsDate, 1), |
+ input, context, effect, control)); |
+ ASSERT_TRUE(r.Changed()); |
+ |
+ Node* phi = r.replacement(); |
+ Capture<Node*> branch, if_false; |
+ EXPECT_THAT( |
+ phi, |
+ IsPhi( |
+ static_cast<MachineType>(kTypeBool | kRepTagged), IsFalseConstant(), |
+ IsWord32Equal(IsLoadField(AccessBuilder::ForMapInstanceType(), |
+ IsLoadField(AccessBuilder::ForMap(), input, |
+ effect, CaptureEq(&if_false)), |
+ effect, _), |
+ IsInt32Constant(JS_DATE_TYPE)), |
+ IsMerge(IsIfTrue(AllOf(CaptureEq(&branch), |
+ IsBranch(IsObjectIsSmi(input), control))), |
+ AllOf(CaptureEq(&if_false), IsIfFalse(CaptureEq(&branch)))))); |
+} |
+ |
+ |
+// ----------------------------------------------------------------------------- |
// %_IsTypedArray |