forked from v8/v8
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged: CLs related to TDZ elision var numbering bug
Merged: [interpreter] Don't number non-lexicals in TDZ elision Revision: 260b62d Merged: [interpreter] Refine hole check numbering for initialization Revision: f72cbd5 Merged: [interpreter] Use |= in Variable::ForceHoleInitialization Revision: dc628cc Bug: chromium:1448545,chromium:1450771,v8:13723 Change-Id: Ie08b443061b48545bb65b3acbe4044fe604aaae8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4610688 Commit-Queue: Shu-yu Guo <[email protected]> Reviewed-by: Leszek Swirski <[email protected]> Cr-Commit-Position: refs/branch-heads/11.5@{v8#16} Cr-Branched-From: 0c4044b-refs/heads/11.5.150@{#1} Cr-Branched-From: b71d303-refs/heads/main@{#87781}
- Loading branch information
Showing
5 changed files
with
222 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
// Copyright 2023 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: --fuzzing | ||
|
||
// --fuzzing is required to trigger the bug since it does a second compile | ||
// --that'll check for identical bytecode. | ||
|
||
// Make more lexical bindings that need hole checks due to uses in inner | ||
// functions than a 64-bitmap can hold. | ||
let v1 = 0; | ||
let v2 = 0; | ||
let v3 = 0; | ||
let v4 = 0; | ||
let v5 = 0; | ||
let v6 = 0; | ||
let v7 = 0; | ||
let v8 = 0; | ||
let v9 = 0; | ||
let v10 = 0; | ||
let v11 = 0; | ||
let v12 = 0; | ||
let v13 = 0; | ||
let v14 = 0; | ||
let v15 = 0; | ||
let v16 = 0; | ||
let v17 = 0; | ||
let v18 = 0; | ||
let v19 = 0; | ||
let v20 = 0; | ||
let v21 = 0; | ||
let v22 = 0; | ||
let v23 = 0; | ||
let v24 = 0; | ||
let v25 = 0; | ||
let v26 = 0; | ||
let v27 = 0; | ||
let v28 = 0; | ||
let v29 = 0; | ||
let v30 = 0; | ||
let v31 = 0; | ||
let v32 = 0; | ||
let v33 = 0; | ||
let v34 = 0; | ||
let v35 = 0; | ||
let v36 = 0; | ||
let v37 = 0; | ||
let v38 = 0; | ||
let v39 = 0; | ||
let v40 = 0; | ||
let v41 = 0; | ||
let v42 = 0; | ||
let v43 = 0; | ||
let v44 = 0; | ||
let v45 = 0; | ||
let v46 = 0; | ||
let v47 = 0; | ||
let v48 = 0; | ||
let v49 = 0; | ||
let v50 = 0; | ||
let v51 = 0; | ||
let v52 = 0; | ||
let v53 = 0; | ||
let v54 = 0; | ||
let v55 = 0; | ||
let v56 = 0; | ||
let v57 = 0; | ||
let v58 = 0; | ||
let v59 = 0; | ||
let v60 = 0; | ||
let v61 = 0; | ||
let v62 = 0; | ||
let v63 = 0; | ||
let v64 = 0; | ||
|
||
function someUses() { | ||
v1 = 0; | ||
v2 = 0; | ||
v3 = 0; | ||
v4 = 0; | ||
v5 = 0; | ||
v6 = 0; | ||
v7 = 0; | ||
v8 = 0; | ||
v9 = 0; | ||
v10 = 0; | ||
v11 = 0; | ||
v12 = 0; | ||
v13 = 0; | ||
v14 = 0; | ||
v15 = 0; | ||
v16 = 0; | ||
v17 = 0; | ||
v18 = 0; | ||
v19 = 0; | ||
v20 = 0; | ||
v21 = 0; | ||
v22 = 0; | ||
v23 = 0; | ||
v24 = 0; | ||
v25 = 0; | ||
v26 = 0; | ||
v27 = 0; | ||
v28 = 0; | ||
v29 = 0; | ||
v30 = 0; | ||
v31 = 0; | ||
v32 = 0; | ||
v33 = 0; | ||
v34 = 0; | ||
v35 = 0; | ||
v36 = 0; | ||
v37 = 0; | ||
v38 = 0; | ||
v39 = 0; | ||
v40 = 0; | ||
v41 = 0; | ||
v42 = 0; | ||
v43 = 0; | ||
v44 = 0; | ||
v45 = 0; | ||
v46 = 0; | ||
v47 = 0; | ||
v48 = 0; | ||
v49 = 0; | ||
v50 = 0; | ||
v51 = 0; | ||
v52 = 0; | ||
v53 = 0; | ||
v54 = 0; | ||
v55 = 0; | ||
v56 = 0; | ||
v57 = 0; | ||
v58 = 0; | ||
v59 = 0; | ||
v60 = 0; | ||
v61 = 0; | ||
v62 = 0; | ||
v63 = 0; | ||
v64 = 0; | ||
} | ||
|
||
// Make another lexical binding that needs hole checks in the same scope with | ||
// some uses that can be elided. Both the first and second compiles should be | ||
// able to elide the subsequent use. | ||
try { | ||
x = 42; | ||
x = 42; | ||
} catch (e) { | ||
} | ||
|
||
let x = 0; |