diff options
Diffstat (limited to 'chromium/v8/src/wasm/graph-builder-interface.cc')
-rw-r--r-- | chromium/v8/src/wasm/graph-builder-interface.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/chromium/v8/src/wasm/graph-builder-interface.cc b/chromium/v8/src/wasm/graph-builder-interface.cc index 760e9669795..31a06d5a138 100644 --- a/chromium/v8/src/wasm/graph-builder-interface.cc +++ b/chromium/v8/src/wasm/graph-builder-interface.cc @@ -88,6 +88,7 @@ class WasmGraphBuildingInterface { struct TryInfo : public ZoneObject { SsaEnv* catch_env; TFNode* exception = nullptr; + bool first_catch = true; bool might_throw() const { return exception != nullptr; } @@ -924,6 +925,10 @@ class WasmGraphBuildingInterface { TFNode* exception = block->try_info->exception; SetEnv(block->try_info->catch_env); + if (block->try_info->first_catch) { + LoadContextIntoSsa(ssa_env_, decoder); + block->try_info->first_catch = false; + } TFNode* if_catch = nullptr; TFNode* if_no_catch = nullptr; @@ -1001,6 +1006,9 @@ class WasmGraphBuildingInterface { } SetEnv(block->try_info->catch_env); + if (block->try_info->first_catch) { + LoadContextIntoSsa(ssa_env_, decoder); + } } void AtomicOp(FullDecoder* decoder, WasmOpcode opcode, |