commit | 4994cd8aea8ce7f0373a87a8018908f0f713ca46 | [log] [tgz] |
---|---|---|
author | Leszek Swirski <leszeks@chromium.org> | Thu Nov 24 11:36:27 2022 |
committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Nov 24 13:31:57 2022 |
tree | 889c852182a152d215d3d7c4abcb1d92a0b8be37 | |
parent | b18d3e8c0609a42f172ea25649865d4b7a32f960 [diff] |
[maglev] Fix OOB in StringFromCharCode StringFromCharCode expects an int32 value, but maglev isn't careful about keeping the top 32 bits of the register valid (to avoid needing to sign extend after every 32-bit operation). This means the top bits of an int32 register might be invalid when it is used -- in particular, complex addressing uses its inputs as 64-bit values, including the index. Long story short, we need to zero the top bits of the int32 char_code used as the index into the single character table. Bug: v8:7700 Change-Id: I3540230c865a1d07c105f35d024d598cc8e15180 Fixed: chromium:1392585 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055502 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#84456}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies. To stay up to date, run
git pull origin gclient sync
For fetching all branches, add the following into your remote configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/*
Please follow the instructions mentioned at v8.dev/docs/contribute.