33e90400d0
Ignition remembers the correct context to restore when entering an exception handler by moving the context to an interpreter register when entering a try block, and restoring it from there when unwinding the frame and entering the catch block. Maglev code has to do the same by taking the context from the appropriate register for the handler's frame state. Bug: v8:7700 Change-Id: I294fcccc845c660b2289b6d7b40f49f1aa46283d Fixed: chromium:1359928 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3892352 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#83181}
29 lines
671 B
JavaScript
29 lines
671 B
JavaScript
// Copyright 2022 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
//
|
|
// Flags: --allow-natives-syntax --no-concurrent-recompilation
|
|
|
|
function __f_0() {
|
|
var __v_1;
|
|
try {
|
|
class __c_0 extends (__v_4) {}
|
|
} catch {
|
|
console.log("soozie");
|
|
}
|
|
try {
|
|
Object.defineProperty(__v_2, 'x');
|
|
} catch {}
|
|
try {
|
|
console.log("foozie");
|
|
class __c_2 extends (eval('delete obj.x'), class {}) {}
|
|
} catch (__v_7) {
|
|
console.log("boozie");
|
|
__v_1 = __v_7;
|
|
}
|
|
}
|
|
%PrepareFunctionForOptimization(__f_0);
|
|
__f_0();
|
|
%OptimizeMaglevOnNextCall(__f_0);
|
|
__f_0();
|