Index: src/compiler/js-intrinsic-lowering.cc |
diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc |
index fb4d95d134ffb10db094fca6ef76c9db1bd93efe..c497683f2a1ea69d690fbe47c1f064271240ac50 100644 |
--- a/src/compiler/js-intrinsic-lowering.cc |
+++ b/src/compiler/js-intrinsic-lowering.cc |
@@ -42,6 +42,10 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) { |
return ReduceDoubleLo(node); |
case Runtime::kInlineGeneratorClose: |
return ReduceGeneratorClose(node); |
+ case Runtime::kInlineGeneratorGetInput: |
+ return ReduceGeneratorGetInput(node); |
+ case Runtime::kInlineGeneratorGetResumeMode: |
+ return ReduceGeneratorGetResumeMode(node); |
case Runtime::kInlineIsArray: |
return ReduceIsInstanceType(node, JS_ARRAY_TYPE); |
case Runtime::kInlineIsTypedArray: |
@@ -168,6 +172,26 @@ Reduction JSIntrinsicLowering::ReduceGeneratorClose(Node* node) { |
return Change(node, op, generator, closed, effect, control); |
} |
+Reduction JSIntrinsicLowering::ReduceGeneratorGetInput(Node* node) { |
+ Node* const generator = NodeProperties::GetValueInput(node, 0); |
+ Node* const effect = NodeProperties::GetEffectInput(node); |
+ Node* const control = NodeProperties::GetControlInput(node); |
+ Operator const* const op = |
+ simplified()->LoadField(AccessBuilder::ForJSGeneratorObjectInput()); |
+ |
+ return Change(node, op, generator, effect, control); |
+} |
+ |
+Reduction JSIntrinsicLowering::ReduceGeneratorGetResumeMode(Node* node) { |
+ Node* const generator = NodeProperties::GetValueInput(node, 0); |
+ Node* const effect = NodeProperties::GetEffectInput(node); |
+ Node* const control = NodeProperties::GetControlInput(node); |
+ Operator const* const op = |
+ simplified()->LoadField(AccessBuilder::ForJSGeneratorObjectResumeMode()); |
+ |
+ return Change(node, op, generator, effect, control); |
+} |
+ |
Reduction JSIntrinsicLowering::ReduceIsInstanceType( |
Node* node, InstanceType instance_type) { |
// if (%_IsSmi(value)) { |