summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/js-intrinsic-lowering.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/js-intrinsic-lowering.cc')
-rw-r--r--deps/v8/src/compiler/js-intrinsic-lowering.cc74
1 files changed, 58 insertions, 16 deletions
diff --git a/deps/v8/src/compiler/js-intrinsic-lowering.cc b/deps/v8/src/compiler/js-intrinsic-lowering.cc
index b132cfa6e9..0ba3e7dfda 100644
--- a/deps/v8/src/compiler/js-intrinsic-lowering.cc
+++ b/deps/v8/src/compiler/js-intrinsic-lowering.cc
@@ -38,6 +38,20 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) {
return ReduceGeneratorClose(node);
case Runtime::kInlineCreateJSGeneratorObject:
return ReduceCreateJSGeneratorObject(node);
+ case Runtime::kInlineAsyncFunctionAwaitCaught:
+ return ReduceAsyncFunctionAwaitCaught(node);
+ case Runtime::kInlineAsyncFunctionAwaitUncaught:
+ return ReduceAsyncFunctionAwaitUncaught(node);
+ case Runtime::kInlineAsyncFunctionEnter:
+ return ReduceAsyncFunctionEnter(node);
+ case Runtime::kInlineAsyncFunctionReject:
+ return ReduceAsyncFunctionReject(node);
+ case Runtime::kInlineAsyncFunctionResolve:
+ return ReduceAsyncFunctionResolve(node);
+ case Runtime::kInlineAsyncGeneratorAwaitCaught:
+ return ReduceAsyncGeneratorAwaitCaught(node);
+ case Runtime::kInlineAsyncGeneratorAwaitUncaught:
+ return ReduceAsyncGeneratorAwaitUncaught(node);
case Runtime::kInlineAsyncGeneratorReject:
return ReduceAsyncGeneratorReject(node);
case Runtime::kInlineAsyncGeneratorResolve:
@@ -54,10 +68,6 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) {
return ReduceIsJSReceiver(node);
case Runtime::kInlineIsSmi:
return ReduceIsSmi(node);
- case Runtime::kInlineRejectPromise:
- return ReduceRejectPromise(node);
- case Runtime::kInlineResolvePromise:
- return ReduceResolvePromise(node);
case Runtime::kInlineToLength:
return ReduceToLength(node);
case Runtime::kInlineToObject:
@@ -127,6 +137,50 @@ Reduction JSIntrinsicLowering::ReduceGeneratorClose(Node* node) {
return Change(node, op, generator, closed, effect, control);
}
+Reduction JSIntrinsicLowering::ReduceAsyncFunctionAwaitCaught(Node* node) {
+ return Change(
+ node,
+ Builtins::CallableFor(isolate(), Builtins::kAsyncFunctionAwaitCaught), 0);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncFunctionAwaitUncaught(Node* node) {
+ return Change(
+ node,
+ Builtins::CallableFor(isolate(), Builtins::kAsyncFunctionAwaitUncaught),
+ 0);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncFunctionEnter(Node* node) {
+ NodeProperties::ChangeOp(node, javascript()->AsyncFunctionEnter());
+ return Changed(node);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncFunctionReject(Node* node) {
+ RelaxControls(node);
+ NodeProperties::ChangeOp(node, javascript()->AsyncFunctionReject());
+ return Changed(node);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncFunctionResolve(Node* node) {
+ RelaxControls(node);
+ NodeProperties::ChangeOp(node, javascript()->AsyncFunctionResolve());
+ return Changed(node);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncGeneratorAwaitCaught(Node* node) {
+ return Change(
+ node,
+ Builtins::CallableFor(isolate(), Builtins::kAsyncGeneratorAwaitCaught),
+ 0);
+}
+
+Reduction JSIntrinsicLowering::ReduceAsyncGeneratorAwaitUncaught(Node* node) {
+ return Change(
+ node,
+ Builtins::CallableFor(isolate(), Builtins::kAsyncGeneratorAwaitUncaught),
+ 0);
+}
+
Reduction JSIntrinsicLowering::ReduceAsyncGeneratorReject(Node* node) {
return Change(
node, Builtins::CallableFor(isolate(), Builtins::kAsyncGeneratorReject),
@@ -206,18 +260,6 @@ Reduction JSIntrinsicLowering::ReduceIsSmi(Node* node) {
return Change(node, simplified()->ObjectIsSmi());
}
-Reduction JSIntrinsicLowering::ReduceRejectPromise(Node* node) {
- RelaxControls(node);
- NodeProperties::ChangeOp(node, javascript()->RejectPromise());
- return Changed(node);
-}
-
-Reduction JSIntrinsicLowering::ReduceResolvePromise(Node* node) {
- RelaxControls(node);
- NodeProperties::ChangeOp(node, javascript()->ResolvePromise());
- return Changed(node);
-}
-
Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op) {
// Replace all effect uses of {node} with the effect dependency.
RelaxEffectsAndControls(node);